feat(sdk): stage extension packages at wheel build time - #1137
feat(sdk): stage extension packages at wheel build time#1137mckornfield wants to merge 1 commit into
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughChangesThe SDK now supports source-package aliases, bundled workspace packages, generated Hatch build hooks, delegated file resources, updated package imports, and synchronous and asynchronous client copying. SDK integration
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.py`:
- Around line 51-63: Replace the initializer-file generation flow in
_ensure_parent_alias_init_files and its callers with an alias mechanism
compatible with implicit namespace packages, so no __init__.py files are
created. Remove GENERATED_ALIAS_INIT_TEMPLATE, GENERATED_BETA_INIT, and
_ensure_parent_alias_init_files, then update related tests to stop expecting
generated alias or parent initializers.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 0a7b9f67-ee18-4dec-8f9f-3caac5701cfd
⛔ Files ignored due to path filters (283)
sdk/python/nemo-platform/hatch_build.pyis excluded by!sdk/**sdk/python/nemo-platform/pyproject.tomlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/_alias.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/device_flow.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/helpers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/token_provider.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/workload_exchange.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/dashboard.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/evaluator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/metrics.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/persistence.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/callable_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/codex/runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/docker_sandbox.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/environment.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/_common.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/container_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/hook_loading.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/hooks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/hooks_mcp_binding.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/image.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/sandbox.Dockerfileis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/skills.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/gym_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/harbor_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/api.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_contracts.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_inspection.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_lifecycle.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_provider.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_state.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_transfer.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/compose.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/docker.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/scores.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/tasks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/trials.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/workspace_seeds.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_inference.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_stream_translation.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/constants.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/dataset_schemas/common.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/dataset_schemas/compatibility.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/dataset_schemas/templates.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/datasets/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/datasets/loader.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/enums.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/_protocols.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/backends/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/backends/local/backend.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/benchmark_execution.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/evaluator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/job_poll.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/metric_execution.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/pipeline.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/runs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/samples.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/scoring.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/utils.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/values.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/inference.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/aggregation.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/bleu.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/exact_match.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/f1.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/hooks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/llm_judge.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/llm_judge_defaults.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/number_check.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/protocol.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/git_patch.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/imports.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/metrics.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/remote.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/resolution.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/rouge.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/string_check.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/template_rendering.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/tool_calling.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/tunable_rag_defaults.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/tunable_rag_evaluator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/utils.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/api.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/classifier.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/errors.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/policy.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/scheduler.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resolver_protocols.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resolvers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/structured_output.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/templates.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/agents.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/atif.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/common.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/dataset_schemas.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/datasets.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/evidence.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/llm_judge_defaults.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/metrics.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/multi_metric_results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/params.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/protocol.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/scores.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/app.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/adapters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/experiments.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/filesets.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/otlp/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/otlp/logs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/guardrail/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/guardrail/configs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/iam/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/iam/role_bindings.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployment_configs/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployment_configs/versions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployments/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployments/versions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/model.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/openai/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/openai/v1/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/openai/v1/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/provider.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/providers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/virtual_models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/annotations.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/evaluator_results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/atif.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/chat_completions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/otlp/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/otlp/v1/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/otlp/v1/traces.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/sessions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/spans/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/spans/evaluator_results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/spans/groups.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/traces.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/steps.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/tasks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/models/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/models/adapters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/projects.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/secrets/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/secrets/admin.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/workspaces/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/workspaces/members.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/auth.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/docs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/manifest_registry.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/plugins.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/quickstart/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/quickstart/cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/services/cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/setup.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/claude.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/codex.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/cursor.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/opencode.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/installer.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/registry.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/agent.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/chat.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/wait.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/agent_helpers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/api.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/autocomplete.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/code_generator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/context.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/errors.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/formatters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/help_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/lazy_load.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/logging.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/pagination.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/stdin_utils.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/streaming.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/table_config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/timestamp_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/waiters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/manifest.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/emit.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/events.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/handler.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/session.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/client/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/client/factory.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/client/tls.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/README.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/filesystem/callbacks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/filesystem/filesystem.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/resources.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/_service_child.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/process.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/services.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/transport.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/models/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/models/resources.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/_registry.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/cluster.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/container.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/gpu_config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/platform_config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/preflight.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/storage.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/validators.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/inference/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/references/templates/agent.yamlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/agent.ymlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/data-designer-config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/eval-job.jsonis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/benchmark-reproduction.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/metric-selection.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/sdk-execution.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/troubleshooting.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/references/harbor-quickstart.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/references/troubleshooting.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-explore/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-files/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-guardrails/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/references/ingest-formats.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-model-selection/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-model-selection/references/benchmark_cache.jsonis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-secrets/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-skill-selection/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-spec/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-spec/references/templates/agent-spec.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-status/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-teardown/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-try-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/ui/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/ui/output.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/ui/prompts.pyis excluded by!sdk/**sdk/python/overrides/nemo-platform/hatch_build.pyis excluded by!sdk/**
📒 Files selected for processing (8)
packages/filesets/pyproject.tomlpackages/models/pyproject.tomlpackages/nemo_evaluator_sdk/pyproject.tomlpackages/nemo_platform/pyproject.tomlpackages/nemo_platform_ext/pyproject.tomltools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.pytools/nemo-platform-sdk-tools/tests/sdk/vendor/test_vendor_package.py
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py`:
- Around line 201-254: Update sync NeMoPlatform.copy in
packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py:201-254 and
AsyncNeMoPlatform.copy in
packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py:424-477 so
self._client is not reused when access_token, context_name, or config_path
overrides require bootstrap; preserve reuse only when no such override is
provided. Apply the same mirrored generator change in
tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.py:424-477
so regeneration retains the fix.
- Around line 137-139: Preserve the omitted-argument state in both NeMoPlatform
and AsyncNeMoPlatform before _should_bootstrap_config evaluates it, while still
using NEMO_PLATFORM_BASE_URL as the bootstrap URL override. Update
packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py lines
137-139 and 357-359 so zero-argument clients bootstrap configured authentication
rather than entering direct mode.
In
`@tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.py`:
- Around line 295-305: The post-generation update must validate that the build
hook exists before configuring it. In the flow that creates the custom hook
configuration near copy_build_hook and the wheel_target hook assignment, check
for the expected hatch_build.py file and fail immediately when absent, before
writing path = "hatch_build.py" or persisting the updated pyproject.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 8f671a81-9a8c-4d55-ba89-e216d0d415cd
⛔ Files ignored due to path filters (98)
sdk/python/nemo-platform/hatch_build.pyis excluded by!sdk/**sdk/python/nemo-platform/pyproject.tomlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/_alias.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/_client.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_device_flow.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_token_provider.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_utils.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_workload_exchange.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_claude.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_codex.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_cursor.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_opencode.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_base.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_installer.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_registry.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_skill_content.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_agent.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_auth.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_auth_password_grant.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_create_wait.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_plugins.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_services.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_services_lifecycle.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_services_process.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_setup.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_setup_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/use_cases/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/use_cases/test_chat.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_api.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_code_generator.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_context.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_errors.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_formatters.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_help_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_pagination.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_stdin_utils.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_table_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_timestamp_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_waiters.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_basic.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_cli_integration.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_error_handling.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_filesets.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_format_combinations.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_stdin_integration.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_command_hook.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_emit.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_events.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_handler.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_job_events.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_onboarding_events.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_wire_contract_smoke.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_agent_mode.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_app.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_docs.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_docs_generator.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/utils.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/client/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/client/test_client.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/config/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/config/test_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_config_environment.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_daemon_lifecycle.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_health_child.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_port_socket.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_services.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_services_contract.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_sidecar_integration.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_transport.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_cluster_info_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_container.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_gpu_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_preflight.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_quickstart_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_quickstart_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/ui/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/ui/test_prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/ui/test_prompts_multiselect.pyis excluded by!sdk/**sdk/python/overrides/nemo-platform/hatch_build.pyis excluded by!sdk/**sdk/python/overrides/nemo-platform/src/nemo_platform/_alias.pyis excluded by!sdk/**
📒 Files selected for processing (5)
packages/filesets/src/filesets/resources.pypackages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.pytools/nemo-platform-sdk-tools/tests/sdk/vendor/test_vendor_package.py
🚧 Files skipped from review as they are similar to previous changes (1)
- tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.py
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py (1)
247-255: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick winPreserve
_strict_response_validationin bothcopymethods.Both methods omit
self._strict_response_validation, so copying a strict client disables response validation. Pass the current value to each constructor.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py` around lines 247 - 255, Update both copy methods to pass self._strict_response_validation into the constructed client, preserving the current strict response validation setting across copies while leaving other copy behavior unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py`:
- Around line 247-255: Update both copy methods to pass
self._strict_response_validation into the constructed client, preserving the
current strict response validation setting across copies while leaving other
copy behavior unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 7360af5f-5fc6-4a16-a94c-cf11bb034bdf
⛔ Files ignored due to path filters (3)
sdk/python/nemo-platform/src/nemo_platform/_alias.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/_client.pyis excluded by!sdk/**sdk/python/overrides/nemo-platform/src/nemo_platform/_alias.pyis excluded by!sdk/**
📒 Files selected for processing (1)
packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.py (1)
731-734: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick winCopy
hatch_build.pybefore writingpyproject.toml.
update_pyproject()configurespath = "hatch_build.py"but does not copy the hook into the SDK. A direct update can leave Hatch with a missing hook untilupdate-allruns. Copy the hook before writing the configuration, or make both operations atomic. Add a regression test for directupdate_pyproject()invocation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.py` around lines 731 - 734, Update the generation flow around update_pyproject() so copy_build_hook() runs before pyproject.toml is written, ensuring the configured hatch_build.py exists after a direct update. Preserve the existing update-all behavior and add a regression test that invokes update_pyproject() directly and verifies the hook is copied.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In
`@tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.py`:
- Around line 731-734: Update the generation flow around update_pyproject() so
copy_build_hook() runs before pyproject.toml is written, ensuring the configured
hatch_build.py exists after a direct update. Preserve the existing update-all
behavior and add a regression test that invokes update_pyproject() directly and
verifies the hook is copied.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 05b513e6-b362-404b-985b-df332789118f
⛔ Files ignored due to path filters (1)
sdk/python/nemo-platform/src/nemo_platform/_client.pyis excluded by!sdk/**
📒 Files selected for processing (5)
packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.pypackages/nemo_platform_ext/tests/client/test_client.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.pytools/nemo-platform-sdk-tools/tests/sdk/test_post_generation_update.py
🚧 Files skipped from review as they are similar to previous changes (1)
- tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.py
|
ace4261 to
5f8f197
Compare
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.py (1)
935-955: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick winClear generated groups when they become empty.
If every package in a generated
deps_grouphas nofiltered_deps, this branch does not reset the group. Old regular dependencies remain in the generatedpyproject.toml.Reset and write the group on its first encounter before the
if filtered_depsbranch. Add a regression case where a previously populated generated group has no remaining dependencies.Proposed fix
+ existing = list(optional.get(deps_group, [])) + reset_group = deps_group in generated_optional_groups and deps_group not in reset_generated_optional_groups + if reset_group: + existing_regular = [] + existing_self_refs = [d for d in existing if d.startswith(self_ref_prefix)] + reset_generated_optional_groups.add(deps_group) + optional[deps_group] = _build_dependency_array(existing_self_refs) + else: + existing_regular = [d for d in existing if not d.startswith(self_ref_prefix)] + existing_self_refs = [d for d in existing if d.startswith(self_ref_prefix)] + if filtered_deps: - existing = list(optional.get(deps_group, [])) - if deps_group in generated_optional_groups and deps_group not in reset_generated_optional_groups: - existing_regular = [] - existing_self_refs = [d for d in existing if d.startswith(self_ref_prefix)] - reset_generated_optional_groups.add(deps_group) - else: - existing_regular = [d for d in existing if not d.startswith(self_ref_prefix)] - existing_self_refs = [d for d in existing if d.startswith(self_ref_prefix)] - merged_regular = merge_dependencies(existing_regular, regular_deps)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.py` around lines 935 - 955, Update the generated dependency-group handling before the if filtered_deps branch so the first encounter of each generated deps_group resets and writes its entry even when filtered_deps is empty. Ensure stale regular and self-referencing dependencies are cleared, while preserving existing merge behavior for groups with dependencies. Add a regression case covering a previously populated generated group becoming dependency-free.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In
`@tools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.py`:
- Around line 935-955: Update the generated dependency-group handling before the
if filtered_deps branch so the first encounter of each generated deps_group
resets and writes its entry even when filtered_deps is empty. Ensure stale
regular and self-referencing dependencies are cleared, while preserving existing
merge behavior for groups with dependencies. Add a regression case covering a
previously populated generated group becoming dependency-free.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: ef8687d8-bcc0-450e-ae7e-60f55a89c1b5
⛔ Files ignored due to path filters (377)
sdk/python/nemo-platform/hatch_build.pyis excluded by!sdk/**sdk/python/nemo-platform/pyproject.tomlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/_alias.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/_client.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/device_flow.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/helpers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/token_provider.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/auth/workload_exchange.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/dashboard.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/evaluator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/metrics.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/persistence.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/callable_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/codex/runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/docker_sandbox.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/environment.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/_common.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/container_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/hook_loading.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/hooks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/hooks_mcp_binding.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/image.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/sandbox.Dockerfileis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/fabric/skills.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/gym_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/harbor_runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/api.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_contracts.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_inspection.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_lifecycle.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_provider.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_state.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/_compose_transfer.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/compose.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/runtimes/sandbox/providers/docker.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/scores.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/tasks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/trials.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_eval/workspace_seeds.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_inference.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/agent_stream_translation.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/constants.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/dataset_schemas/common.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/dataset_schemas/compatibility.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/dataset_schemas/templates.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/datasets/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/datasets/loader.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/enums.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/_protocols.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/backends/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/backends/local/backend.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/benchmark_execution.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/evaluator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/job_poll.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/metric_execution.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/pipeline.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/runs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/samples.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/scoring.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/utils.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/execution/values.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/inference.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/aggregation.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/bleu.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/exact_match.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/f1.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/hooks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/llm_judge.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/llm_judge_defaults.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/number_check.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/protocol.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/git_patch.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/imports.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/ragas/metrics.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/remote.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/resolution.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/rouge.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/string_check.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/template_rendering.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/tool_calling.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/tunable_rag_defaults.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/tunable_rag_evaluator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/metrics/utils.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/api.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/classifier.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/errors.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/policy.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/scheduler.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resilience/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resolver_protocols.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/resolvers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/structured_output.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/templates.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/agents.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/atif.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/common.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/dataset_schemas.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/datasets.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/evidence.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/llm_judge_defaults.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/metrics.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/multi_metric_results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/params.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/protocol.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/beta/evaluator/values/scores.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/app.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/adapters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/experiments.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/filesets.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/otlp/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/files/otlp/logs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/guardrail/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/guardrail/configs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/iam/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/iam/role_bindings.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployment_configs/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployment_configs/versions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployments/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/deployments/versions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/model.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/openai/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/openai/v1/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/openai/v1/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/gateway/provider.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/providers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/inference/virtual_models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/annotations.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/evaluator_results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/atif.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/chat_completions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/otlp/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/otlp/v1/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/ingest/otlp/v1/traces.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/sessions.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/spans/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/spans/evaluator_results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/spans/groups.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/intake/traces.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/results.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/steps.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/jobs/tasks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/models/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/models/adapters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/projects.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/secrets/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/secrets/admin.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/workspaces/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/api/workspaces/members.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/auth.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/docs.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/manifest_registry.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/plugins.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/quickstart/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/quickstart/cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/services/cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/setup.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/claude.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/codex.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/cursor.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/agents/opencode.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/base.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/cli.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/installer.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/skills/registry.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/agent.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/chat.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/commands/use_cases/wait.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/agent_helpers.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/api.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/autocomplete.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/code_generator.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/context.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/errors.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/formatters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/help_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/lazy_load.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/logging.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/pagination.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/stdin_utils.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/streaming.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/table_config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/timestamp_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/core/waiters.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/manifest.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/emit.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/events.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/handler.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/runtime.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/cli/telemetry/session.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/client/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/client/factory.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/client/tls.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/README.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/models.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/config/types.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/filesystem/callbacks.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/filesystem/filesystem.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/filesets/resources.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/_service_child.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/process.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/services.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/local/transport.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/models/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/models/resources.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/_registry.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/cluster.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/container.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/gpu_config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/platform_config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/preflight.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/storage.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/quickstart/validators.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/inference/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/references/templates/agent.yamlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/agent.ymlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/data-designer-config.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/eval-job.jsonis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/benchmark-reproduction.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/metric-selection.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/sdk-execution.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-evaluator/references/troubleshooting.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/references/harbor-quickstart.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-experiments-upload/references/troubleshooting.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-explore/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-files/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-guardrails/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-intake/references/ingest-formats.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-model-selection/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-model-selection/references/benchmark_cache.jsonis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-secrets/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-skill-selection/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-spec/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-spec/references/templates/agent-spec.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-status/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-teardown/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-try-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/ui/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/ui/output.pyis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/ui/prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_device_flow.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_token_provider.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_utils.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/auth/test_workload_exchange.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_claude.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_codex.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_cursor.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/agents/test_opencode.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_base.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_installer.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_registry.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_skill_content.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_agent.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_auth.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_auth_password_grant.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_create_wait.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_plugins.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_services.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_services_lifecycle.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_services_process.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_setup.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/test_setup_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/use_cases/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/use_cases/test_chat.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_api.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_code_generator.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_context.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_errors.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_formatters.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_help_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_pagination.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_stdin_utils.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_table_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_timestamp_formatter.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/core/test_waiters.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_basic.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_cli_integration.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_error_handling.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_filesets.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_format_combinations.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/integration/test_stdin_integration.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_command_hook.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_emit.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_events.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_handler.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_job_events.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_onboarding_events.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/telemetry/test_wire_contract_smoke.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_agent_mode.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_app.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_docs.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/test_docs_generator.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/utils.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/client/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/client/test_client.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/config/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/config/test_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/conftest.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_config_environment.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_daemon_lifecycle.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_health_child.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_port_socket.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_services.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_services_contract.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_sidecar_integration.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/local/test_transport.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_cluster_info_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_container.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_gpu_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_preflight.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_quickstart_cli.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/quickstart/test_quickstart_config.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/ui/__init__.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/ui/test_prompts.pyis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/ui/test_prompts_multiselect.pyis excluded by!sdk/**sdk/python/overrides/nemo-platform/hatch_build.pyis excluded by!sdk/**sdk/python/overrides/nemo-platform/src/nemo_platform/_alias.pyis excluded by!sdk/**
📒 Files selected for processing (50)
packages/data_designer_nemo/src/data_designer_nemo/fileset_filesystem_provider.pypackages/data_designer_nemo/src/data_designer_nemo/filesystem.pypackages/data_designer_nemo/src/data_designer_nemo/seed.pypackages/filesets/pyproject.tomlpackages/filesets/src/filesets/resources.pypackages/models/pyproject.tomlpackages/models/tests/test_client.pypackages/nemo_evaluator_sdk/pyproject.tomlpackages/nemo_evaluator_sdk/tests/agent_eval/test_evidence.pypackages/nemo_evaluator_sdk/tests/agent_eval/test_sandbox_compose_vendored_import.pypackages/nemo_platform/pyproject.tomlpackages/nemo_platform_ext/pyproject.tomlpackages/nemo_platform_ext/src/nemo_platform_ext/cli/commands/api/files/__init__.pypackages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.pypackages/nemo_platform_ext/tests/client/test_client.pypackages/nemo_platform_plugin/pyproject.tomlpackages/nemo_platform_plugin/src/nemo_platform_plugin/commands.pypackages/nemo_platform_plugin/src/nemo_platform_plugin/jobs/file_manager.pypackages/nemo_platform_plugin/src/nemo_platform_plugin/jobs/result_manager.pypackages/nemo_platform_plugin/tests/test_commands.pypackages/nmp_common/src/nmp/common/auth/testing.pypackages/nmp_common/tests/sdk_factory/test_sdk.pypackages/nmp_testing/src/nmp/testing/client.pyplugins/nemo-agents/src/nemo_agents_plugin/cli.pyplugins/nemo-agents/src/nemo_agents_plugin/leaderboard/cli.pyplugins/nemo-agents/src/nemo_agents_plugin/leaderboard/render.pyplugins/nemo-agents/src/nemo_agents_plugin/utils.pyplugins/nemo-anonymizer/src/nemo_anonymizer_plugin/app/input.pyplugins/nemo-data-designer/src/nemo_data_designer_plugin/sdk/resources.pyplugins/nemo-evaluator/src/nemo_evaluator/filesets.pyplugins/nemo-experimentalist/src/nemo_experimentalist_plugin/client.pyplugins/nemo-experimentalist/tests/test_client.pyplugins/nemo-insights/src/nemo_insights_plugin/analyst/observability.pyplugins/nemo-insights/src/nemo_insights_plugin/client.pyplugins/nemo-insights/testbed/export.pyplugins/nemo-insights/testbed/ingest.pyplugins/nemo-insights/tests/test_client.pyplugins/nemo-safe-synthesizer/src/nemo_safe_synthesizer_plugin/api/v2/jobs/endpoints.pyplugins/nemo-safe-synthesizer/src/nemo_safe_synthesizer_plugin/tasks/safe_synthesizer/__main__.pyservices/core/files/tests/integration/conftest.pyservices/core/files/tests/integration/external_storage/test_huggingface_storage.pyservices/core/files/tests/integration/test_files_sdk.pyservices/core/files/tests/integration/test_fileset_filesystem.pytools/lint/lint-sdk-vendored.shtools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/cli_generator/overrides/files/download.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/cli_generator/overrides/files/upload.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/post_generation_update.pytools/nemo-platform-sdk-tools/src/nemo_platform_sdk_tools/sdk/vendor/vendor_package.pytools/nemo-platform-sdk-tools/tests/sdk/test_post_generation_update.pytools/nemo-platform-sdk-tools/tests/sdk/vendor/test_vendor_package.py
🚧 Files skipped from review as they are similar to previous changes (8)
- packages/nemo_platform_ext/pyproject.toml
- packages/filesets/pyproject.toml
- packages/nemo_evaluator_sdk/pyproject.toml
- packages/models/pyproject.toml
- packages/filesets/src/filesets/resources.py
- packages/nemo_platform_ext/src/nemo_platform_ext/client/enhanced.py
- tools/nemo-platform-sdk-tools/tests/sdk/vendor/test_vendor_package.py
- packages/nemo_platform/pyproject.toml
e626839 to
5dbfb55
Compare
|
|
||
| [project.optional-dependencies] | ||
| # Generated from [tool.bundle-package]; do not edit by hand. | ||
| nemo-evaluator-sdk = [ |
There was a problem hiding this comment.
both agents I sent after this flagged this as missing httpx, minor gripe imo.
[P1] Generated bundle metadata is stale — packages/nemo_platform_plugin/pyproject.toml:43
Regenerating bundling output adds the missing httpx>=0.27.0,<1 constraint to nemo-evaluator-sdk and removes stale vendored SDK files. Without that constraint, the bundled evaluator may resolve against the SDK’s weaker httpx>=0.23 requirement.
Signed-off-by: Matt Kornfield <mkornfield@nvidia.com>
5dbfb55 to
e941c7e
Compare
Summary
This changes SDK extension vendoring from copied source trees to build-time staging while preserving the existing
nemo_platform.*import paths through lightweight alias packages. It also fixes the plugin wheel fallout by bundling the SDK's native source packages intonemo-platform-pluginand preserving the SDK runtime dependency extra needed by the CI import smoke.The canonical implementation remains committed under the source packages in
packages/*; this removes only the duplicate committed snapshot undersdk/python/nemo-platform/src/nemo_platform/.... Services and plugins still depend on the standalone workspace packages (nemo-platform-sdk,nemo-platform-plugin,nemo-platform-ext, etc.) without needing the wrapper distribution as a source dependency.Changes
nemo_platform_ext,models,filesets, andnemo_evaluator_sdkinto the SDK wheel from source at build time, with generated alias packages for legacy SDK import paths.pyproject.toml, copy the SDK build hook duringupdate-pyproject, and remove the generated docs force-include from the SDK hook config.nemo-platform-pluginwheel bundling so CI-installed plugin wheels include the SDK package and required native source packages without pulling evaluator dependencies into the default SDK runtime extra.nemo_platform_ext.configimports inside the plugin client where the source package is required for type checking.lint-sdk-vendoredso it validates all tracked[tool.bundle-package]pyprojects thatmake vendorcan update.tomlkitversion used by CI.Type of Change
Quality Gates
Verification
Signed-off-by:traileruv run pre-commit run -apasses, or any blocked checks are identified belowTargeted validation after rebasing onto
origin/mainatc0dbe8581ceb46a59e3087ba0fcc0ad44895fa4dand pushing headfc00446c12cedb564ef4ee2cafba9887e8e4fc4e:NMP_SKIP_MISE=1 UV_PROJECT_ENVIRONMENT=/home/mkornfield/nemo-platform/.venv PYTHONPATH=/home/mkornfield/wt-np-relocatable-sdk/tools/nemo-platform-sdk-tools/src make vendor— passed and left the worktree clean.bash -n tools/lint/lint-sdk-vendored.sh— passed.git diff --check origin/main...HEAD,git diff --check, andgit diff --cached --check— passed.uv run --no-sync ruff check <changed non-SDK Python files>— passed.uv run --no-sync ruff format --check <changed non-SDK Python files>— passed; 43 files already formatted before the final import fix.tools/lint/lint-python-types.sh— passed after fixing the plugin client import; remaining diagnostics are warning-level issues already ignored by CI.uv run --no-sync pytest packages/nemo_platform_plugin/tests/test_nooa_model_client.py -qwithPYTHONPATHpinned to this worktree's plugin/extension/SDK sources — 15 passed.uv run --no-sync pytest tools/nemo-platform-sdk-tools/tests/sdk/test_post_generation_update.py tools/nemo-platform-sdk-tools/tests/sdk/vendor/test_vendor_package.py -q— 31 passed.uv run --no-sync pytest packages/nemo_platform_ext/tests/client/test_client.py packages/nmp_common/tests/sdk_factory/test_sdk.py packages/models/tests/test_client.py packages/nemo_evaluator_sdk/tests/agent_eval/test_evidence.py packages/nemo_evaluator_sdk/tests/agent_eval/test_sandbox_compose_vendored_import.py -qwithPYTHONPATHpinned to this worktree's source packages — 156 passed.uv run --no-sync pytest packages/nemo_platform_ext/tests/cli/commands/test_config.py packages/nemo_platform_ext/tests/config/test_config.py packages/nemo_platform_ext/tests/cli/commands/test_setup.py -qwithPYTHONPATHpinned to this worktree's source packages — 337 passed, 1 failed because this local machine already hasnemolistening on port 8080 and the upstream setup test hardcodeshttp://localhost:8080.no-nmp-common-in-plugins— passed.origin/main..HEAD— passed for all ten PR commits.Blocked local checks:
uv run pre-commit run -a— blocked before repository hooks run because pre-commit cannot initialize the externalhttps://github.com/norwoodj/helm-docshook; GitHub returned HTTP 503 ongit fetch origin --tagstwice.uv lock && git diff --exit-code uv.lock—uv lockcompleted, but local resolution rewrote platform-specific wheel metadata inuv.lock; that local churn was not included. Hosted CI is the authoritative lock-drift check for this PR.