refactor(cli): run nemo setup on typed clients - #2003
Draft
maxdubrinsky wants to merge 1 commit into
Draft
maxdubrinsky wants to merge 1 commit into
maxdubrinsky wants to merge 1 commit into
Conversation
This was referenced Sep 11, 2026
maxdubrinsky
force-pushed
the
cli-setup-typed-clients/mdubrinsky
branch
from
September 11, 2026 18:37
e144287 to
dbf2f79
Compare
maxdubrinsky
changed the base branch from
cli-typed-client-plumbing/mdubrinsky
to
main
September 11, 2026 18:50
Contributor
|
maxdubrinsky
force-pushed
the
cli-setup-typed-clients/mdubrinsky
branch
7 times, most recently
from
September 14, 2026 19:51
0010470 to
4fbf3c5
Compare
15 tasks
setup builds a frozen SetupClients bundle (ModelsClient, SecretsClient, InferenceGatewayClient) from the CLI context instead of walking the generated SDK's resource tree, so the wizard no longer depends on nemo_platform for provider, secret and gateway readiness calls. The same probes, prompts, telemetry events and error paths, with two deliberate differences: model discovery walks every page of the provider's models instead of the first page the generated client returned, and the provider request body is built inside the telemetry try block, so a locally invalid provider name emits the same ERROR event a server rejection does. Adds wire-level tests for the setup calls over a recorded transport and retargets the onboarding telemetry tests at the typed bundle. The Kind e2e for auto model selection drove _run_auto_mode with a raw NeMoPlatform handle; it now builds SetupClients from the same handle with client_from_platform, as the rest of the e2e suite already does. The wire recorder asserts on raw_path so percent-encoded segments (the gateway's trailing_uri) are visible to the tests instead of being decoded away by httpx. Signed-off-by: Max Dubrinsky <[email protected]>
maxdubrinsky
force-pushed
the
cli-setup-typed-clients/mdubrinsky
branch
from
September 15, 2026 17:33
4fbf3c5 to
ef5d732
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Run
nemo setupon the typed clients (SetupClients: models, secrets, inference gateway) instead of aNeMoPlatforminstance. Same prompts, same created entities, same idempotency on re-run.Part of the series moving the
nemoCLI off the Stainless SDK onto the typed clients innemo_platform_plugin(plumbing landed in #1986; #2004 is the final flip).Changes
cli/commands/setup.py:SetupClientsbuilt from the CLI context; each step calls the typed client it needs; errors map through the sharederrorsmodule.tryso a locally invalid provider name emits the same ERROR event a server rejection does.tests/cli/commands/test_setup_wire.pydrives setup against a recordedhttpx.MockTransport, asserting onraw_pathso percent-encoded segments are visible. The Kind e2e buildsSetupClientsfrom its SDK handle withclient_from_platform.Related Issue
AIRCORE-893
Type of Change
Quality Gates
Verification
Signed-off-by:traileruv run pre-commit run -apasses, or any blocked checks are identified below