diff --git a/.github/workflows/e2e-script.yaml b/.github/workflows/e2e-script.yaml index 0b729fead78..177e30ff954 100644 --- a/.github/workflows/e2e-script.yaml +++ b/.github/workflows/e2e-script.yaml @@ -229,8 +229,8 @@ jobs: printf 'NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1\n' printf 'NEMOCLAW_PROVIDER=custom\n' printf 'NEMOCLAW_ENDPOINT_URL=https://inference-api.nvidia.com/v1\n' - printf 'NEMOCLAW_MODEL=nvidia/nvidia/nemotron-3-super-v3\n' - printf 'NEMOCLAW_COMPAT_MODEL=nvidia/nvidia/nemotron-3-super-v3\n' + printf 'NEMOCLAW_MODEL=nvidia/nvidia/nemotron-3-ultra\n' + printf 'NEMOCLAW_COMPAT_MODEL=nvidia/nvidia/nemotron-3-ultra\n' printf 'NEMOCLAW_PREFERRED_API=openai-completions\n' printf 'COMPATIBLE_API_KEY=%s\n' "${NVIDIA_INFERENCE_API_KEY}" } >> "$GITHUB_ENV" diff --git a/.github/workflows/e2e-vitest-scenarios.yaml b/.github/workflows/e2e-vitest-scenarios.yaml index afd930af581..04415d83873 100644 --- a/.github/workflows/e2e-vitest-scenarios.yaml +++ b/.github/workflows/e2e-vitest-scenarios.yaml @@ -1415,8 +1415,8 @@ jobs: NVIDIA_INFERENCE_API_KEY: ${{ secrets.NVIDIA_INFERENCE_API_KEY }} NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions run: | set -euo pipefail @@ -2135,8 +2135,8 @@ jobs: NEMOCLAW_NON_INTERACTIVE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions NEMOCLAW_SANDBOX_NAME: e2e-rebuild-hermes OPENSHELL_GATEWAY: nemoclaw @@ -2218,8 +2218,8 @@ jobs: NEMOCLAW_NON_INTERACTIVE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions NEMOCLAW_SANDBOX_NAME: e2e-rebuild-hermes-base OPENSHELL_GATEWAY: nemoclaw @@ -2970,8 +2970,8 @@ jobs: NEMOCLAW_SANDBOX_NAME: "e2e-resume" NEMOCLAW_PROVIDER: "custom" NEMOCLAW_ENDPOINT_URL: "https://inference-api.nvidia.com/v1" - NEMOCLAW_MODEL: "nvidia/nvidia/nemotron-3-super-v3" - NEMOCLAW_COMPAT_MODEL: "nvidia/nvidia/nemotron-3-super-v3" + NEMOCLAW_MODEL: "nvidia/nvidia/nemotron-3-ultra" + NEMOCLAW_COMPAT_MODEL: "nvidia/nvidia/nemotron-3-ultra" steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: diff --git a/.github/workflows/nightly-e2e.yaml b/.github/workflows/nightly-e2e.yaml index db76a3cf1bf..b47644dff88 100644 --- a/.github/workflows/nightly-e2e.yaml +++ b/.github/workflows/nightly-e2e.yaml @@ -468,8 +468,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -544,8 +544,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_ISSUE_4434_LIVE: "1" @@ -1003,8 +1003,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1301,8 +1301,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1608,8 +1608,8 @@ jobs: NVIDIA_INFERENCE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} E2E_ARTIFACT_DIR: ${{ github.workspace }}/e2e-artifacts/vitest/credential-migration @@ -1834,8 +1834,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1847,8 +1847,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1886,8 +1886,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1899,8 +1899,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1938,8 +1938,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1951,8 +1951,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -1991,8 +1991,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -2004,8 +2004,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -2044,8 +2044,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -2058,8 +2058,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -2100,8 +2100,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -2114,8 +2114,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" @@ -2194,8 +2194,8 @@ jobs: NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1" NEMOCLAW_PROVIDER: custom NEMOCLAW_ENDPOINT_URL: https://inference-api.nvidia.com/v1 - NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-super-v3 - NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-super-v3 + NEMOCLAW_MODEL: nvidia/nvidia/nemotron-3-ultra + NEMOCLAW_COMPAT_MODEL: nvidia/nvidia/nemotron-3-ultra NEMOCLAW_PREFERRED_API: openai-completions COMPATIBLE_API_KEY: ${{ (github.event_name != 'workflow_dispatch' || inputs.target_ref == '') && secrets.NVIDIA_INFERENCE_API_KEY || '' }} NEMOCLAW_NON_INTERACTIVE: "1" diff --git a/src/lib/inference/onboard-probes.test.ts b/src/lib/inference/onboard-probes.test.ts index 7230f5fef3f..14e00c29c22 100644 --- a/src/lib/inference/onboard-probes.test.ts +++ b/src/lib/inference/onboard-probes.test.ts @@ -293,8 +293,8 @@ describe("OpenAI-compatible inference probes", () => { }); it("bounds the hosted compatible inference probe for the served Nemotron model", () => { - expect(getChatCompletionsProbePayload("nvidia/nvidia/nemotron-3-super-v3")).toEqual({ - model: "nvidia/nvidia/nemotron-3-super-v3", + expect(getChatCompletionsProbePayload("nvidia/nvidia/nemotron-3-ultra")).toEqual({ + model: "nvidia/nvidia/nemotron-3-ultra", messages: [{ role: "user", content: "Reply with exactly: OK" }], max_tokens: 8, }); diff --git a/src/lib/onboard/providers.ts b/src/lib/onboard/providers.ts index 18f835cb1ba..5362ba1c897 100644 --- a/src/lib/onboard/providers.ts +++ b/src/lib/onboard/providers.ts @@ -26,7 +26,7 @@ const HERMES_INFERENCE_ENDPOINT_URL = "https://inference-api.nousresearch.com/v1 const HOSTED_INFERENCE_SOURCE_ENV = "NVIDIA_INFERENCE_API_KEY"; const HOSTED_INFERENCE_CREDENTIAL_ENV = "COMPATIBLE_API_KEY"; const HOSTED_INFERENCE_ENDPOINT_URL = "https://inference-api.nvidia.com/v1"; -const HOSTED_INFERENCE_MODEL = "nvidia/nvidia/nemotron-3-super-v3"; +const HOSTED_INFERENCE_MODEL = "nvidia/nvidia/nemotron-3-ultra"; const REMOTE_PROVIDER_CONFIG = { build: { diff --git a/test/e2e-scenario/fixtures/hosted-inference.ts b/test/e2e-scenario/fixtures/hosted-inference.ts index f46b446bf71..4efcbbddbd5 100644 --- a/test/e2e-scenario/fixtures/hosted-inference.ts +++ b/test/e2e-scenario/fixtures/hosted-inference.ts @@ -6,7 +6,7 @@ const HOSTED_INFERENCE_CREDENTIAL_ENV = "COMPATIBLE_API_KEY"; const HOSTED_INFERENCE_PROVIDER = "custom"; const HOSTED_INFERENCE_PROVIDER_NAME = "compatible-endpoint"; const DEFAULT_HOSTED_INFERENCE_BASE_URL = "https://inference-api.nvidia.com/v1"; -const DEFAULT_HOSTED_INFERENCE_MODEL = "nvidia/nvidia/nemotron-3-super-v3"; +const DEFAULT_HOSTED_INFERENCE_MODEL = "nvidia/nvidia/nemotron-3-ultra"; export interface HostedInferenceSecrets { required(name: string): string; diff --git a/test/e2e-scenario/live/agent-turn-latency-helpers.ts b/test/e2e-scenario/live/agent-turn-latency-helpers.ts index 9fde9c79fc5..327ebdfdc44 100644 --- a/test/e2e-scenario/live/agent-turn-latency-helpers.ts +++ b/test/e2e-scenario/live/agent-turn-latency-helpers.ts @@ -23,7 +23,7 @@ export const HERMES_SANDBOX = validateSandboxName(OPENCLAW_SANDBOX); validateSandboxName(HERMES_SANDBOX); const DEFAULT_NVIDIA_MODEL = "nvidia/nemotron-3-super-120b-a12b"; -const DEFAULT_COMPAT_MODEL = "nvidia/nvidia/nemotron-3-super-v3"; +const DEFAULT_COMPAT_MODEL = "nvidia/nvidia/nemotron-3-ultra"; const USE_COMPATIBLE_HOSTED = process.env.NEMOCLAW_E2E_USE_HOSTED_INFERENCE === "1"; export const MODEL = process.env.NEMOCLAW_TURN_LATENCY_MODEL ?? diff --git a/test/e2e-scenario/live/hermes-discord.test.ts b/test/e2e-scenario/live/hermes-discord.test.ts index a64f89ff91a..d6ad565b889 100644 --- a/test/e2e-scenario/live/hermes-discord.test.ts +++ b/test/e2e-scenario/live/hermes-discord.test.ts @@ -47,11 +47,11 @@ function commandEnv(apiKey?: string, extra: NodeJS.ProcessEnv = {}): NodeJS.Proc NEMOCLAW_PROVIDER: process.env.NEMOCLAW_PROVIDER ?? "custom", NEMOCLAW_ENDPOINT_URL: process.env.NEMOCLAW_ENDPOINT_URL ?? "https://inference-api.nvidia.com/v1", - NEMOCLAW_MODEL: process.env.NEMOCLAW_MODEL ?? "nvidia/nvidia/nemotron-3-super-v3", + NEMOCLAW_MODEL: process.env.NEMOCLAW_MODEL ?? "nvidia/nvidia/nemotron-3-ultra", NEMOCLAW_COMPAT_MODEL: process.env.NEMOCLAW_COMPAT_MODEL ?? process.env.NEMOCLAW_MODEL ?? - "nvidia/nvidia/nemotron-3-super-v3", + "nvidia/nvidia/nemotron-3-ultra", NEMOCLAW_PREFERRED_API: process.env.NEMOCLAW_PREFERRED_API ?? "openai-completions", DISCORD_BOT_TOKEN: DISCORD_TOKEN, DISCORD_SERVER_IDS, diff --git a/test/e2e-scenario/live/hermes-slack-e2e-helpers.ts b/test/e2e-scenario/live/hermes-slack-e2e-helpers.ts index 695ba57e9bd..adf999f6d94 100644 --- a/test/e2e-scenario/live/hermes-slack-e2e-helpers.ts +++ b/test/e2e-scenario/live/hermes-slack-e2e-helpers.ts @@ -40,12 +40,11 @@ function hermesSlackEnv(apiKey?: string): NodeJS.ProcessEnv { apiKey, extra: { ...(apiKey ? { COMPATIBLE_API_KEY: apiKey } : {}), - NEMOCLAW_COMPAT_MODEL: - process.env.NEMOCLAW_COMPAT_MODEL ?? "nvidia/nvidia/nemotron-3-super-v3", + NEMOCLAW_COMPAT_MODEL: process.env.NEMOCLAW_COMPAT_MODEL ?? "nvidia/nvidia/nemotron-3-ultra", NEMOCLAW_E2E_USE_HOSTED_INFERENCE: "1", NEMOCLAW_ENDPOINT_URL: process.env.NEMOCLAW_ENDPOINT_URL ?? "https://inference-api.nvidia.com/v1", - NEMOCLAW_MODEL: process.env.NEMOCLAW_MODEL ?? "nvidia/nvidia/nemotron-3-super-v3", + NEMOCLAW_MODEL: process.env.NEMOCLAW_MODEL ?? "nvidia/nvidia/nemotron-3-ultra", NEMOCLAW_POLICY_TIER: process.env.NEMOCLAW_POLICY_TIER ?? "open", NEMOCLAW_PREFERRED_API: process.env.NEMOCLAW_PREFERRED_API ?? "openai-completions", NEMOCLAW_PROVIDER: process.env.NEMOCLAW_PROVIDER ?? "custom", diff --git a/test/e2e-scenario/live/rebuild-hermes.test.ts b/test/e2e-scenario/live/rebuild-hermes.test.ts index c5ee26333d2..2df0fe7b052 100644 --- a/test/e2e-scenario/live/rebuild-hermes.test.ts +++ b/test/e2e-scenario/live/rebuild-hermes.test.ts @@ -56,7 +56,7 @@ const HOSTED_ENDPOINT_URL = const HOSTED_MODEL = process.env.NEMOCLAW_MODEL ?? process.env.NEMOCLAW_COMPAT_MODEL ?? - "nvidia/nvidia/nemotron-3-super-v3"; + "nvidia/nvidia/nemotron-3-ultra"; const OLD_BASE_TAG = `nemoclaw-hermes-old-base:${SANDBOX_NAME.toLowerCase().replace(/[^a-z0-9_.-]+/g, "-")}`; const CURRENT_BASE_TAG = "ghcr.io/nvidia/nemoclaw/hermes-sandbox-base:latest"; diff --git a/test/e2e-scenario/live/upgrade-stale-sandbox-helpers.ts b/test/e2e-scenario/live/upgrade-stale-sandbox-helpers.ts index 9e49e87e438..8b6fecc2ffb 100644 --- a/test/e2e-scenario/live/upgrade-stale-sandbox-helpers.ts +++ b/test/e2e-scenario/live/upgrade-stale-sandbox-helpers.ts @@ -122,7 +122,7 @@ export function writeStaleRegistryEntry(): void { (typeof session.model === "string" && session.model) || process.env.NEMOCLAW_MODEL || process.env.NEMOCLAW_COMPAT_MODEL || - "nvidia/nvidia/nemotron-3-super-v3"; + "nvidia/nvidia/nemotron-3-ultra"; const registry = readJsonFile<{ sandboxes?: Record>; defaultSandbox?: string; diff --git a/test/e2e-script-workflow.test.ts b/test/e2e-script-workflow.test.ts index 1da46728c7b..f966b53f988 100644 --- a/test/e2e-script-workflow.test.ts +++ b/test/e2e-script-workflow.test.ts @@ -546,8 +546,8 @@ describe("E2E reusable workflow contract", () => { expect(runStep?.env?.NVIDIA_INFERENCE_API_KEY).toBe(GUARDED_HOSTED_INFERENCE_SECRET); expect(runStep?.env?.NEMOCLAW_PROVIDER).toBe("custom"); expect(runStep?.env?.NEMOCLAW_ENDPOINT_URL).toBe("https://inference-api.nvidia.com/v1"); - expect(runStep?.env?.NEMOCLAW_MODEL).toBe("nvidia/nvidia/nemotron-3-super-v3"); - expect(runStep?.env?.NEMOCLAW_COMPAT_MODEL).toBe("nvidia/nvidia/nemotron-3-super-v3"); + expect(runStep?.env?.NEMOCLAW_MODEL).toBe("nvidia/nvidia/nemotron-3-ultra"); + expect(runStep?.env?.NEMOCLAW_COMPAT_MODEL).toBe("nvidia/nvidia/nemotron-3-ultra"); expect(runStep?.env?.NEMOCLAW_PREFERRED_API).toBe("openai-completions"); expect(runStep?.env?.COMPATIBLE_API_KEY).toBe(GUARDED_HOSTED_INFERENCE_SECRET); expect(runStep?.env?.GITHUB_TOKEN).toBeUndefined(); @@ -926,8 +926,8 @@ describe("E2E reusable workflow contract", () => { expect(exportStep?.run).toContain("NEMOCLAW_E2E_USE_HOSTED_INFERENCE=1"); expect(exportStep?.run).toContain("NEMOCLAW_PROVIDER=custom"); expect(exportStep?.run).toContain("NEMOCLAW_ENDPOINT_URL=https://inference-api.nvidia.com/v1"); - expect(exportStep?.run).toContain("NEMOCLAW_MODEL=nvidia/nvidia/nemotron-3-super-v3"); - expect(exportStep?.run).toContain("NEMOCLAW_COMPAT_MODEL=nvidia/nvidia/nemotron-3-super-v3"); + expect(exportStep?.run).toContain("NEMOCLAW_MODEL=nvidia/nvidia/nemotron-3-ultra"); + expect(exportStep?.run).toContain("NEMOCLAW_COMPAT_MODEL=nvidia/nvidia/nemotron-3-ultra"); expect(exportStep?.run).toContain("NEMOCLAW_PREFERRED_API=openai-completions"); expect(exportStep?.run).toContain("COMPATIBLE_API_KEY=%s"); @@ -950,7 +950,7 @@ describe("E2E reusable workflow contract", () => { expect(body, fixture).toContain("if env_provider == 'custom'"); expect(body, fixture).toContain("'provider': provider"); expect(body, fixture).toContain("'model': model"); - expect(body, fixture).toContain("nvidia/nvidia/nemotron-3-super-v3"); + expect(body, fixture).toContain("nvidia/nvidia/nemotron-3-ultra"); expect(body, fixture).not.toContain("'provider': 'nvidia-prod'"); expect(body, fixture).not.toContain("'model': 'nvidia/nemotron-3-super-120b-a12b'"); } @@ -1003,8 +1003,8 @@ describe("E2E reusable workflow contract", () => { } expect(step.env?.NEMOCLAW_PROVIDER, jobName).toBe("custom"); expect(step.env?.NEMOCLAW_ENDPOINT_URL, jobName).toBe("https://inference-api.nvidia.com/v1"); - expect(step.env?.NEMOCLAW_MODEL, jobName).toBe("nvidia/nvidia/nemotron-3-super-v3"); - expect(step.env?.NEMOCLAW_COMPAT_MODEL, jobName).toBe("nvidia/nvidia/nemotron-3-super-v3"); + expect(step.env?.NEMOCLAW_MODEL, jobName).toBe("nvidia/nvidia/nemotron-3-ultra"); + expect(step.env?.NEMOCLAW_COMPAT_MODEL, jobName).toBe("nvidia/nvidia/nemotron-3-ultra"); expect(step.env?.NEMOCLAW_PREFERRED_API, jobName).toBe("openai-completions"); expect(step.env?.COMPATIBLE_API_KEY, jobName).toBe(GUARDED_HOSTED_INFERENCE_SECRET); } diff --git a/test/e2e/lib/ci-compatible-inference.sh b/test/e2e/lib/ci-compatible-inference.sh index 01ae3c99328..12cdb94bcb1 100755 --- a/test/e2e/lib/ci-compatible-inference.sh +++ b/test/e2e/lib/ci-compatible-inference.sh @@ -7,7 +7,7 @@ # at inference-api.nvidia.com. Keep this helper in test/e2e so the # product-facing provider/default endpoint remain unchanged. -NEMOCLAW_E2E_COMPATIBLE_INFERENCE_MODEL_DEFAULT="nvidia/nvidia/nemotron-3-super-v3" +NEMOCLAW_E2E_COMPATIBLE_INFERENCE_MODEL_DEFAULT="nvidia/nvidia/nemotron-3-ultra" NEMOCLAW_E2E_HOSTED_INFERENCE_PROVIDER_DEFAULT="compatible-endpoint" NEMOCLAW_E2E_NVIDIA_INFERENCE_MODEL_DEFAULT="nvidia/nemotron-3-super-120b-a12b" diff --git a/test/e2e/test-rebuild-hermes.sh b/test/e2e/test-rebuild-hermes.sh index a6ec7e7c0e2..f5d83266e91 100755 --- a/test/e2e/test-rebuild-hermes.sh +++ b/test/e2e/test-rebuild-hermes.sh @@ -261,7 +261,7 @@ model = ( sess.get('model') or os.environ.get('NEMOCLAW_MODEL') or os.environ.get('NEMOCLAW_COMPAT_MODEL') - or 'nvidia/nvidia/nemotron-3-super-v3' + or 'nvidia/nvidia/nemotron-3-ultra' ) credential_hash = hashlib.sha256('${DISCORD_FAKE_TOKEN}'.encode()).hexdigest() plan = { @@ -397,7 +397,7 @@ fi # Inference works after rebuild (proves credential chain is intact) info "Verifying inference after rebuild..." -POST_REBUILD_INFERENCE_MODEL="${NEMOCLAW_MODEL:-${NEMOCLAW_COMPAT_MODEL:-nvidia/nvidia/nemotron-3-super-v3}}" +POST_REBUILD_INFERENCE_MODEL="${NEMOCLAW_MODEL:-${NEMOCLAW_COMPAT_MODEL:-nvidia/nvidia/nemotron-3-ultra}}" INFERENCE_RESPONSE=$(openshell sandbox exec --name "${SANDBOX_NAME}" -- \ curl -s --max-time 60 https://inference.local/v1/chat/completions \ -H 'Content-Type: application/json' \ diff --git a/test/e2e/test-rebuild-openclaw.sh b/test/e2e/test-rebuild-openclaw.sh index 1cbbcc86bcd..7535602b3f9 100755 --- a/test/e2e/test-rebuild-openclaw.sh +++ b/test/e2e/test-rebuild-openclaw.sh @@ -230,7 +230,7 @@ model = ( sess.get('model') or os.environ.get('NEMOCLAW_MODEL') or os.environ.get('NEMOCLAW_COMPAT_MODEL') - or 'nvidia/nvidia/nemotron-3-super-v3' + or 'nvidia/nvidia/nemotron-3-ultra' ) reg = {'sandboxes': {'${SANDBOX_NAME}': { 'name': '${SANDBOX_NAME}', @@ -446,7 +446,7 @@ fi # Inference works after rebuild (proves credential chain is intact) info "Verifying inference after rebuild..." -POST_REBUILD_INFERENCE_MODEL="${NEMOCLAW_MODEL:-${NEMOCLAW_COMPAT_MODEL:-nvidia/nvidia/nemotron-3-super-v3}}" +POST_REBUILD_INFERENCE_MODEL="${NEMOCLAW_MODEL:-${NEMOCLAW_COMPAT_MODEL:-nvidia/nvidia/nemotron-3-ultra}}" INFERENCE_RESPONSE=$(openshell sandbox exec --name "${SANDBOX_NAME}" -- \ curl -s --max-time 60 https://inference.local/v1/chat/completions \ -H 'Content-Type: application/json' \ diff --git a/test/e2e/test-upgrade-stale-sandbox.sh b/test/e2e/test-upgrade-stale-sandbox.sh index 9af15e7e3ff..e06c03d53b7 100755 --- a/test/e2e/test-upgrade-stale-sandbox.sh +++ b/test/e2e/test-upgrade-stale-sandbox.sh @@ -170,7 +170,7 @@ model = ( sess.get('model') or os.environ.get('NEMOCLAW_MODEL') or os.environ.get('NEMOCLAW_COMPAT_MODEL') - or 'nvidia/nvidia/nemotron-3-super-v3' + or 'nvidia/nvidia/nemotron-3-ultra' ) reg = {'sandboxes': {'${SANDBOX_NAME}': { 'name': '${SANDBOX_NAME}', diff --git a/tools/e2e-scenarios/workflow-boundary.mts b/tools/e2e-scenarios/workflow-boundary.mts index 7fc5008d37d..6811e3bb65a 100644 --- a/tools/e2e-scenarios/workflow-boundary.mts +++ b/tools/e2e-scenarios/workflow-boundary.mts @@ -1771,10 +1771,10 @@ function validateRebuildHermesVitestJob( if (jobEnv.NEMOCLAW_ENDPOINT_URL !== "https://inference-api.nvidia.com/v1") { errors.push(`${jobName} job must target hosted CI inference endpoint`); } - if (jobEnv.NEMOCLAW_MODEL !== "nvidia/nvidia/nemotron-3-super-v3") { + if (jobEnv.NEMOCLAW_MODEL !== "nvidia/nvidia/nemotron-3-ultra") { errors.push(`${jobName} job must pin the CI-safe Hermes rebuild model`); } - if (jobEnv.NEMOCLAW_COMPAT_MODEL !== "nvidia/nvidia/nemotron-3-super-v3") { + if (jobEnv.NEMOCLAW_COMPAT_MODEL !== "nvidia/nvidia/nemotron-3-ultra") { errors.push(`${jobName} job must pin the CI-safe compatible model`); } if (jobEnv.OPENSHELL_GATEWAY !== "nemoclaw") {