Skip to content

Commit fc38989

Browse files
committed
refactor(cua): use standard terminal agent path
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
1 parent e231409 commit fc38989

70 files changed

Lines changed: 371 additions & 7459 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

agents/nemocua/Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
ARG BASE_IMAGE
5+
FROM ${BASE_IMAGE}

agents/nemocua/manifest.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
name: nemocua
5+
display_name: NemoCUA
6+
description: Experimental computer-use agent supplied by the active scenario
7+
language: python
8+
install_method: external
9+
binary_path: /app/run_with_harness.py
10+
version_command: "python3 /app/run_with_harness.py --help"
11+
runtime:
12+
kind: terminal
13+
interactive_command: /bin/bash
14+
headless_command: python3 /app/run_with_harness.py
15+
smoke_commands:
16+
- test -f /app/run_with_harness.py
17+
- test -f /app/run.py
18+
- test -s /app/config/config.toml
19+
config:
20+
dir: /app/config
21+
config_file: config.toml
22+
format: toml
23+
state_lock_plan_in_image: false
24+
state_dirs: []
25+
device_pairing: false
26+
inference:
27+
provider_type: openai_compatible
28+
default_model: nvidia/nemotron-3-super-120b-a12b
29+
proxy_support: implicit
30+
mcp:
31+
support: disabled
32+
reason: The experimental browser MVP does not use an MCP bridge
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
version: 1
5+
6+
filesystem_policy:
7+
include_workdir: true
8+
read_only:
9+
- /usr
10+
- /lib
11+
- /app
12+
- /proc
13+
- /etc
14+
- /run/nemoclaw/managed-startup-ca-bundle.pem
15+
read_write:
16+
- /sandbox
17+
- /tmp
18+
- /dev/null
19+
- /dev/pts
20+
21+
landlock:
22+
compatibility: best_effort
23+
24+
process:
25+
run_as_user: sandbox
26+
run_as_group: sandbox
27+
28+
network_policies:
29+
managed_inference:
30+
name: managed_inference
31+
endpoints:
32+
- host: inference.local
33+
port: 443
34+
protocol: rest
35+
enforcement: enforce
36+
rules:
37+
- allow: { method: POST, path: "/v1/chat/completions" }
38+
- allow: { method: POST, path: "/v1/responses" }
39+
- allow: { method: GET, path: "/v1/models" }
40+
- allow: { method: GET, path: "/v1/models/**" }
41+
binaries:
42+
- { path: /usr/bin/python3 }
43+
- { path: /usr/local/bin/python3 }
44+
- { path: /usr/bin/curl }

ci/source-architecture-budget.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
"src/lib/actions/inference-set.ts": 32,
4040
"src/lib/actions/sandbox/connect.ts": 42,
4141
"src/lib/actions/sandbox/destroy.ts": 29,
42-
"src/lib/actions/sandbox/doctor.ts": 30,
43-
"src/lib/actions/sandbox/status-snapshot.ts": 21,
42+
"src/lib/actions/sandbox/doctor.ts": 29,
43+
"src/lib/actions/sandbox/status-snapshot.ts": 20,
4444
"src/lib/actions/sandbox/policy-channel.ts": 30,
4545
"src/lib/actions/sandbox/process-recovery.ts": 21,
4646
"src/lib/actions/sandbox/rebuild-pipeline.ts": 29,

docs/reference/commands.mdx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5003,6 +5003,15 @@ On upgrades, NemoClaw rejects `user` because a user-local install cannot replace
50035003
On upgrades, NemoClaw also rejects `system` under `NEMOCLAW_NON_INTERACTIVE=1` when passwordless `sudo` is unavailable because the installer would hang on a hidden sudo prompt.
50045004
The run exits with an actionable diagnostic instead.
50055005

5006+
### Experimental NemoCUA
5007+
5008+
Keep `NEMOCLAW_CUA_ENABLED=1` set whenever NemoClaw uses the experimental `nemocua` agent, including discovery, launch, agent commands, sandbox creation, and rebuild.
5009+
5010+
| Variable | Format | Effect |
5011+
|----------|--------|--------|
5012+
| `NEMOCLAW_CUA_ENABLED` | exactly `1` to enable | Exposes the experimental `nemocua` agent. Other values keep it absent from agent discovery and prevent its manifest from loading. |
5013+
| `NEMOCLAW_CUA_SANDBOX_IMAGE_REF` | image reference | Selects the caller-prepared NemoCUA sandbox image when `NEMOCLAW_CUA_ENABLED=1`. NemoClaw uses this reference directly and does not resolve a private package source. The value is required whenever NemoClaw creates or rebuilds the NemoCUA sandbox; whitespace and shell syntax are rejected. |
5014+
50065015
### Onboarding Behavior Flags
50075016

50085017
The following flags toggle optional behaviors during onboarding.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@
107107
"agents/*/manifest.yaml",
108108
"agents/*/state-lock-plan.json",
109109
"agents/hermes/host/",
110+
"agents/nemocua/Dockerfile",
111+
"agents/nemocua/policy-additions.yaml",
110112
"bin/",
111113
"dist/",
112114
"src/lib/messaging/channels/**/policy/*.{yaml,yml}",
@@ -116,8 +118,6 @@
116118
"nemoclaw-blueprint/",
117119
"managed-inference/",
118120
"schemas/network-policy.schema.json",
119-
"schemas/cua-lifecycle.schema.json",
120-
"schemas/cua-target-manifest.schema.json",
121121
"schemas/sandbox-policy.schema.json",
122122
"scripts/",
123123
"docs/resources/local-credential-form.html",

schemas/cua-lifecycle.schema.json

Lines changed: 0 additions & 192 deletions
This file was deleted.

0 commit comments

Comments
 (0)