nooa-cli 0.0.8__tar.gz → 0.0.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/.gitignore +2 -3
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/PKG-INFO +23 -5
- nooa_cli-0.0.10/README.md +43 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/AGENTS.md +29 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/__init__.py +10 -3
- nooa_cli-0.0.10/src/nooa_cli/coding/__init__.py +32 -0
- nooa_cli-0.0.10/src/nooa_cli/coding/activity.py +531 -0
- nooa_cli-0.0.10/src/nooa_cli/coding/agent.py +193 -0
- nooa_cli-0.0.10/src/nooa_cli/coding/instructions.py +80 -0
- nooa_cli-0.0.10/src/nooa_cli/coding/settings.py +140 -0
- nooa_cli-0.0.10/src/nooa_cli/coding/slash_commands.py +124 -0
- nooa_cli-0.0.10/src/nooa_cli/commands/__init__.py +208 -0
- nooa_cli-0.0.10/src/nooa_cli/commands/_otlp_helpers.py +387 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/commands/delete_traces.py +11 -6
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/commands/import_harbor.py +22 -5
- nooa_cli-0.0.10/src/nooa_cli/commands/import_traces.py +406 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/commands/start_dev.py +23 -0
- nooa_cli-0.0.10/src/nooa_cli/sessions/__init__.py +31 -0
- nooa_cli-0.0.10/src/nooa_cli/sessions/events.py +43 -0
- nooa_cli-0.0.10/src/nooa_cli/sessions/store.py +436 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/_tree_sitter_backend.py +21 -10
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/repo_tools.py +13 -2
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/tests/test_cli_smoke.py +18 -0
- nooa_cli-0.0.10/tests/test_coding_activity.py +390 -0
- nooa_cli-0.0.10/tests/test_coding_agent.py +218 -0
- nooa_cli-0.0.10/tests/test_coding_settings.py +229 -0
- nooa_cli-0.0.10/tests/test_coding_slash_commands.py +177 -0
- nooa_cli-0.0.10/tests/test_command_plugins.py +238 -0
- nooa_cli-0.0.10/tests/test_import_traces.py +576 -0
- nooa_cli-0.0.10/tests/test_sessions.py +270 -0
- nooa_cli-0.0.10/tests/test_tree_sitter_backend.py +85 -0
- nooa_cli-0.0.8/README.md +0 -25
- nooa_cli-0.0.8/src/nooa_cli/commands/__init__.py +0 -106
- nooa_cli-0.0.8/src/nooa_cli/commands/_otlp_helpers.py +0 -122
- nooa_cli-0.0.8/src/nooa_cli/commands/import_traces.py +0 -189
- nooa_cli-0.0.8/tests/__init__.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/docs/activity-introspection-design.md +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/pyproject.toml +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/__main__.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/_common.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/commands/_template.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/commands/config.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/commands/eval.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/commands/traces.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/completion.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/__init__.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/pyp/__init__.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/pyp/errors.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/pyp/sources.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/pyp/stream.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/pyp/tests/__init__.py +0 -0
- {nooa_cli-0.0.8 → nooa_cli-0.0.10}/src/nooa_cli/tools/pyp/tests/test_pyp.py +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Rust toolchain (installed for
|
|
1
|
+
# Rust toolchain (installed for nemo_relay PyO3 build)
|
|
2
2
|
.cargo/
|
|
3
3
|
.rustup/
|
|
4
4
|
|
|
@@ -296,7 +296,7 @@ agents/**/traces/
|
|
|
296
296
|
.config/
|
|
297
297
|
.local/
|
|
298
298
|
|
|
299
|
-
# Rust toolchain (installed by rustup for nemo-
|
|
299
|
+
# Rust toolchain (installed by rustup for nemo-relay build)
|
|
300
300
|
.cargo/
|
|
301
301
|
.rustup/
|
|
302
302
|
|
|
@@ -366,7 +366,6 @@ sft_data/**/*.jsonl
|
|
|
366
366
|
|
|
367
367
|
# Git credentials (must not be committed)
|
|
368
368
|
.git-credentials
|
|
369
|
-
-e
|
|
370
369
|
# Bridge watchpoint file — per-worktree, never committed
|
|
371
370
|
.bridge_watch.json
|
|
372
371
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: nooa-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.10
|
|
4
4
|
Summary: CLI for nemo-oo-agents (`nooa` command: eval runner, trace viewer, config)
|
|
5
5
|
Project-URL: Homepage, https://github.com/NVIDIA-NeMo/labs-OO-Agents
|
|
6
6
|
Project-URL: Repository, https://github.com/NVIDIA-NeMo/labs-OO-Agents
|
|
@@ -44,9 +44,27 @@ uv add "nooa-cli[datascience]"
|
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
nooa --help
|
|
47
|
-
nooa start-dev
|
|
48
|
-
nooa eval ...
|
|
49
|
-
nooa traces ...
|
|
47
|
+
nooa start-dev # launch the trace viewer
|
|
48
|
+
nooa eval ... # eval pipeline runner
|
|
49
|
+
nooa traces ... # inspect/manage trace files
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Install the separate `nooa-acp` package to add the `nooa acp` plugin command and
|
|
53
|
+
run the NOOA coding agent from an ACP-compatible client:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
uv add nooa-acp
|
|
57
|
+
export NOOA_MODEL=nvidia_nim/nvidia/nemotron-3-super-120b-a12b
|
|
58
|
+
export NVIDIA_API_KEY=nvapi-...
|
|
59
|
+
uv run nooa-acp
|
|
50
60
|
```
|
|
51
61
|
|
|
52
62
|
See the main repo [README](https://github.com/NVIDIA-NeMo/labs-OO-Agents/blob/main/README.md) for the framework documentation.
|
|
63
|
+
|
|
64
|
+
## Interactive coding sessions
|
|
65
|
+
|
|
66
|
+
`nooa_cli.sessions` owns durable coding-agent session identity, metadata, and
|
|
67
|
+
conversation replay shared by CLI hosts such as the native TUI and ACP. The
|
|
68
|
+
process running an agent owns the writable session handle; other hosts attach
|
|
69
|
+
through their transport or use read-only discovery. Generic event and SQLite
|
|
70
|
+
storage primitives remain in the core `nooa` package.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# nooa-cli
|
|
2
|
+
|
|
3
|
+
CLI for [nemo-oo-agents](https://github.com/NVIDIA-NeMo/labs-OO-Agents). Ships the `nooa` command with subcommands for running evaluations, browsing traces, and managing config.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv add nooa-cli
|
|
9
|
+
|
|
10
|
+
# ...with numpy/pandas/plotly/scipy/sklearn pre-loaded into the LLM REPL
|
|
11
|
+
uv add "nooa-cli[datascience]"
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
`nooa-cli` automatically pulls in matching `nemo-oo-agents` (the core framework). The `[datascience]` extra adds libraries the LLM can use in REPL-generated code.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
nooa --help
|
|
20
|
+
nooa start-dev # launch the trace viewer
|
|
21
|
+
nooa eval ... # eval pipeline runner
|
|
22
|
+
nooa traces ... # inspect/manage trace files
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Install the separate `nooa-acp` package to add the `nooa acp` plugin command and
|
|
26
|
+
run the NOOA coding agent from an ACP-compatible client:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
uv add nooa-acp
|
|
30
|
+
export NOOA_MODEL=nvidia_nim/nvidia/nemotron-3-super-120b-a12b
|
|
31
|
+
export NVIDIA_API_KEY=nvapi-...
|
|
32
|
+
uv run nooa-acp
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
See the main repo [README](https://github.com/NVIDIA-NeMo/labs-OO-Agents/blob/main/README.md) for the framework documentation.
|
|
36
|
+
|
|
37
|
+
## Interactive coding sessions
|
|
38
|
+
|
|
39
|
+
`nooa_cli.sessions` owns durable coding-agent session identity, metadata, and
|
|
40
|
+
conversation replay shared by CLI hosts such as the native TUI and ACP. The
|
|
41
|
+
process running an agent owns the writable session handle; other hosts attach
|
|
42
|
+
through their transport or use read-only discovery. Generic event and SQLite
|
|
43
|
+
storage primitives remain in the core `nooa` package.
|
|
@@ -101,6 +101,35 @@ def command(args: tuple[str, ...]):
|
|
|
101
101
|
subprocess.run([sys.executable, "-m", "some_other_tool", *args])
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
+
## Commands From Another Package
|
|
105
|
+
|
|
106
|
+
If your command lives in a *different* installed package (not in this repo),
|
|
107
|
+
register it in the `nooa_cli.commands` entry-point group instead of dropping a
|
|
108
|
+
file here. The entry-point name becomes the subcommand name:
|
|
109
|
+
|
|
110
|
+
```toml
|
|
111
|
+
# pyproject.toml of your package
|
|
112
|
+
[project.entry-points."nooa_cli.commands"]
|
|
113
|
+
tui = "my_package.cli.tui:command"
|
|
114
|
+
term = "my_package.cli.term:command"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`my_package.cli.tui:command` must be a `click.Command` or `click.Group` — the
|
|
118
|
+
same contract as an in-repo command module.
|
|
119
|
+
|
|
120
|
+
- **Built-ins win name collisions.** A plugin can't shadow `eval`, `config`,
|
|
121
|
+
or anything else shipped here; it's logged and skipped.
|
|
122
|
+
- **A broken plugin is skipped, not fatal.** An entry point that fails to
|
|
123
|
+
import, or that resolves to a non-`click.Command`, logs a warning and is
|
|
124
|
+
left out. `nooa` keeps working.
|
|
125
|
+
- Plugins register in entry-point-name order, so `nooa --help` is stable
|
|
126
|
+
regardless of install order.
|
|
127
|
+
- The **Performance Rule** below applies with extra force: every registered
|
|
128
|
+
entry point is loaded on *every* `nooa` invocation, including `nooa --help`.
|
|
129
|
+
Keep heavy imports inside the handler.
|
|
130
|
+
|
|
131
|
+
This mirrors the existing `nooa.skills` and `nooa.bundled_configs` groups.
|
|
132
|
+
|
|
104
133
|
## Shared Utilities
|
|
105
134
|
|
|
106
135
|
Common helpers live in `src/nooa_cli/_common.py`:
|
|
@@ -9,7 +9,10 @@ Usage:
|
|
|
9
9
|
nooa completion install # Set up shell completions
|
|
10
10
|
|
|
11
11
|
Adding new commands:
|
|
12
|
-
|
|
12
|
+
In this package: drop a .py file in nooa_cli/commands/ — see
|
|
13
|
+
commands/_template.py
|
|
14
|
+
From another package: register an entry point in the
|
|
15
|
+
"nooa_cli.commands" group — see nooa_cli/commands/__init__.py
|
|
13
16
|
|
|
14
17
|
Shell completion:
|
|
15
18
|
eval "$(_NOOA_COMPLETE=bash_source nooa)" # bash
|
|
@@ -36,7 +39,8 @@ def oo(ctx):
|
|
|
36
39
|
"""OO Agents — agent toolkit.
|
|
37
40
|
|
|
38
41
|
Extensible CLI for running agents, evaluations, and trace management.
|
|
39
|
-
Add new commands by dropping a .py file in nooa_cli/commands
|
|
42
|
+
Add new commands by dropping a .py file in nooa_cli/commands/, or from
|
|
43
|
+
another package via the "nooa_cli.commands" entry-point group.
|
|
40
44
|
"""
|
|
41
45
|
if ctx.invoked_subcommand in _SKIP_SECRETS_PRELOAD:
|
|
42
46
|
return
|
|
@@ -57,11 +61,14 @@ def oo(ctx):
|
|
|
57
61
|
)
|
|
58
62
|
|
|
59
63
|
|
|
60
|
-
# -- Auto-discover and register all commands
|
|
64
|
+
# -- Auto-discover and register all commands (built-ins + entry-point plugins) --
|
|
61
65
|
for _name, _cmd in discover_commands():
|
|
62
66
|
oo.add_command(_cmd, name=_name)
|
|
63
67
|
|
|
64
68
|
# -- Built-in infrastructure commands (not in commands/ because they're meta) -
|
|
69
|
+
# Registered *after* discovery on purpose: `completion` is not part of
|
|
70
|
+
# discover_commands(), so this ordering is what stops a third-party plugin
|
|
71
|
+
# named "completion" from taking the name.
|
|
65
72
|
oo.add_command(completion)
|
|
66
73
|
|
|
67
74
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
"""Shared coding-agent components used by terminal and protocol hosts."""
|
|
4
|
+
|
|
5
|
+
from nooa_cli.coding.activity import (
|
|
6
|
+
ActivityShellTools,
|
|
7
|
+
FileEdit,
|
|
8
|
+
TerminalCommandFinished,
|
|
9
|
+
TerminalCommandOutput,
|
|
10
|
+
TerminalCommandStarted,
|
|
11
|
+
)
|
|
12
|
+
from nooa_cli.coding.agent import CodingAgent
|
|
13
|
+
from nooa_cli.coding.instructions import (
|
|
14
|
+
discover_agent_instruction_files,
|
|
15
|
+
render_agent_instructions,
|
|
16
|
+
)
|
|
17
|
+
from nooa_cli.coding.settings import load_coding_skills_dirs
|
|
18
|
+
from nooa_cli.coding.slash_commands import CodingSlashCommand, CodingSlashCommandRegistry
|
|
19
|
+
|
|
20
|
+
__all__ = [
|
|
21
|
+
"ActivityShellTools",
|
|
22
|
+
"CodingAgent",
|
|
23
|
+
"CodingSlashCommand",
|
|
24
|
+
"CodingSlashCommandRegistry",
|
|
25
|
+
"FileEdit",
|
|
26
|
+
"TerminalCommandFinished",
|
|
27
|
+
"TerminalCommandOutput",
|
|
28
|
+
"TerminalCommandStarted",
|
|
29
|
+
"discover_agent_instruction_files",
|
|
30
|
+
"load_coding_skills_dirs",
|
|
31
|
+
"render_agent_instructions",
|
|
32
|
+
]
|