refactor(inference): make the catalog own vLLM profiles - #9648
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
PR Review Advisor — InformationalAdvisor assessment: Informational / low confidence Model lanes
Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests. E2E guidanceAdvisory only. A maintainer can dispatch the default E2E suite for the commit under review. Recommended E2E: Manual-only E2E: This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
|
🌿 Preview your docs: https://nvidia-preview-pr-9648.docs.buildwithfern.com/nemoclaw |
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
da9cef9
into
agent/refresh-llama-curl-pins
## Summary Managed vLLM now honors `NEMOCLAW_VLLM_PORT` across fixed DGX Spark, managed-cluster, dual-DGX Station, recovery, and sandbox policy paths. The default remains `8000`; managed llama.cpp remains on its existing fixed port pending the separate product decision in #9644. ## Related Issue Related: #684 ## Changes - Treat the vLLM listener as deployment-owned configuration while preserving each declarative serving recipe's portable default and container port. A direct recipe edit is insufficient because one catalog recipe can be deployed on different hosts and ports; managed-cluster materialization/executor tests protect the overlay and plan identity. - Recover the exact bounded host-local Docker port, validate it as canonical loopback state, and materialize the matching OpenShell `local-inference` policy endpoint. Recovery and policy tests cover configured port `19000` and unsafe receipt values. - Permit the fixed DGX Spark profile and dual-DGX Station lifecycle to use the configured port, including Station host-preparation conflict checks, Express disclosure, immutable starter-prompt assets, and operator docs. - Add a narrow vLLM port facade so new consumers do not increase the shared `core/ports.ts` dependency fan-in. This PR is independent of the declarative catalog foundation in #9648 and can merge in either order. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [x] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Maintainer review is required before this draft is promoted. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## DGX Station Hardware Evidence - [ ] Tested on physical DGX Station - Current head: `8d206e9ddabba73e72541d1eee1eff3fca1b3223` - Automated Station scenario: Dual-Station lifecycle and host-preparation fixtures with `NEMOCLAW_VLLM_PORT=19000`. - Automated result: The Station source and fixture validation passed on `52c2ce127b439df607b9204d8dea9877474f8c7c`; the Station source has not changed since that commit. Current-head `npm run docs:validate` passes with 0 errors and 2 existing Fern warnings. - Physical result: Pending. A physical Station run or an accepted governance bypass remains required before approval or merge. - Supporting evidence: [current-head checks](https://github.com/NVIDIA/NemoClaw/pull/9655/checks) ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — build/typecheck passed; 442 CLI tests, 157 installer tests (1 skipped), and 32 local-profile/docs tests passed. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: Diff-scoped `npm run validate:pr` passed; a full `npm test` was not run locally. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added configurable vLLM host-port support through `NEMOCLAW_VLLM_PORT`, defaulting to port 8000. * Custom ports now work across local, managed, and distributed serving setups. * Added safe validation for ports 1024–65535. * Added compatibility handling for previously launched managed serving containers. * **Bug Fixes** * Improved endpoint recovery and port-conflict detection. * Ensured loopback and private network bindings use the selected host port. * **Documentation** * Clarified port configuration, firewall requirements, override rules, and updated platform instruction links. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com> Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary
Move the existing managed vLLM model and hardware profile matrix into the compiled managed-inference catalog. Runtime selection, profile listing, model preparation, and probe policy now derive from the same declarative source instead of duplicating model-specific TypeScript branches.
This foundation preserves the current supported matrix. It does not add Linux Muse Glimmer or Nemotron 3.5 Lightning profiles and does not change vLLM or llama.cpp port behavior.
Depends on #9660, which refreshes the llama.cpp image's Ubuntu curl package tuple. This PR does not otherwise change the llama.cpp image.
Design context: managed inference catalog and declarative profile migration.
Changes
The compiler boundary is required because catalog resources are consumed by the CLI, packaged artifact, profile list, resolver, and runtime launcher. Keeping independent TypeScript model tables would allow those consumers to drift and would continue requiring code changes for each profile.
Type of Change
Quality Gates
DGX Station Hardware Evidence
scripts/prepare-dgx-station-host.shis unchanged.Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailable460/460focused CLI tests,52/52integration tests, and2/2package-contract tests passed. CI-regression coverage also passed for112/112llama.cpp image tests,80/80Station preparation tests,14/14Station controller tests,3/3onboarder tests, and1/1Docker-authority test.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Additional verification:
npm run catalog:compilenpm run catalog:checknpm run build:clinpm run typecheck:clinpm run validate:prSigned-off-by: Prekshi Vyas prekshiv@nvidia.com