@namzu/sdk 0.5.0 → 1.0.0
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.
- package/CHANGELOG.md +393 -0
- package/dist/advisory/executor.d.ts.map +1 -1
- package/dist/advisory/executor.js +9 -2
- package/dist/advisory/executor.js.map +1 -1
- package/dist/advisory/executor.test.d.ts +2 -1
- package/dist/advisory/executor.test.d.ts.map +1 -1
- package/dist/advisory/executor.test.js +7 -4
- package/dist/advisory/executor.test.js.map +1 -1
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +2 -0
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +13 -0
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/bridge/sse/mapper.test.js +2 -2
- package/dist/constants/compaction/index.d.ts.map +1 -1
- package/dist/constants/compaction/index.js +8 -3
- package/dist/constants/compaction/index.js.map +1 -1
- package/dist/constants/sandbox/index.d.ts +21 -0
- package/dist/constants/sandbox/index.d.ts.map +1 -1
- package/dist/constants/sandbox/index.js +30 -0
- package/dist/constants/sandbox/index.js.map +1 -1
- package/dist/constants/tools/index.d.ts.map +1 -1
- package/dist/constants/tools/index.js +33 -2
- package/dist/constants/tools/index.js.map +1 -1
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +35 -5
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/persona/assembler.d.ts +1 -0
- package/dist/persona/assembler.d.ts.map +1 -1
- package/dist/persona/assembler.js +28 -6
- package/dist/persona/assembler.js.map +1 -1
- package/dist/provider/collect.test.js +2 -2
- package/dist/public-runtime.d.ts +5 -4
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +5 -4
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +2 -0
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +2 -0
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +3 -0
- package/dist/public-types.d.ts.map +1 -1
- package/dist/registry/index.d.ts +2 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -0
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +87 -5
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/execute.test.d.ts +4 -2
- package/dist/registry/tool/execute.test.d.ts.map +1 -1
- package/dist/registry/tool/execute.test.js +112 -3
- package/dist/registry/tool/execute.test.js.map +1 -1
- package/dist/registry/toolset/catalog.d.ts +42 -0
- package/dist/registry/toolset/catalog.d.ts.map +1 -0
- package/dist/registry/toolset/catalog.js +217 -0
- package/dist/registry/toolset/catalog.js.map +1 -0
- package/dist/registry/toolset/catalog.test.d.ts +2 -0
- package/dist/registry/toolset/catalog.test.d.ts.map +1 -0
- package/dist/registry/toolset/catalog.test.js +85 -0
- package/dist/registry/toolset/catalog.test.js.map +1 -0
- package/dist/runtime/query/__tests__/deferred-tools.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/deferred-tools.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/deferred-tools.test.js +147 -0
- package/dist/runtime/query/__tests__/deferred-tools.test.js.map +1 -0
- package/dist/runtime/query/__tests__/executor-concurrency.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/executor-concurrency.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/executor-concurrency.test.js +98 -0
- package/dist/runtime/query/__tests__/executor-concurrency.test.js.map +1 -0
- package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js +38 -3
- package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js.map +1 -1
- package/dist/runtime/query/__tests__/prompt.test.js +47 -2
- package/dist/runtime/query/__tests__/prompt.test.js.map +1 -1
- package/dist/runtime/query/__tests__/stream-recovery.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/stream-recovery.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/stream-recovery.test.js +126 -0
- package/dist/runtime/query/__tests__/stream-recovery.test.js.map +1 -0
- package/dist/runtime/query/continuation.d.ts +16 -0
- package/dist/runtime/query/continuation.d.ts.map +1 -0
- package/dist/runtime/query/continuation.js +16 -0
- package/dist/runtime/query/continuation.js.map +1 -0
- package/dist/runtime/query/executor.d.ts +3 -0
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +71 -3
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +19 -3
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +22 -0
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +227 -60
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +21 -1
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +1 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +1 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/sandbox/provider/local.d.ts.map +1 -1
- package/dist/sandbox/provider/local.js +32 -1
- package/dist/sandbox/provider/local.js.map +1 -1
- package/dist/session/workspace/__tests__/shared-run.test.d.ts +2 -0
- package/dist/session/workspace/__tests__/shared-run.test.d.ts.map +1 -0
- package/dist/session/workspace/__tests__/shared-run.test.js +147 -0
- package/dist/session/workspace/__tests__/shared-run.test.js.map +1 -0
- package/dist/session/workspace/index.d.ts +2 -0
- package/dist/session/workspace/index.d.ts.map +1 -1
- package/dist/session/workspace/index.js +1 -0
- package/dist/session/workspace/index.js.map +1 -1
- package/dist/session/workspace/shared-run.d.ts +81 -0
- package/dist/session/workspace/shared-run.d.ts.map +1 -0
- package/dist/session/workspace/shared-run.js +251 -0
- package/dist/session/workspace/shared-run.js.map +1 -0
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +36 -6
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/loader.test.d.ts +2 -0
- package/dist/skills/loader.test.d.ts.map +1 -0
- package/dist/skills/loader.test.js +65 -0
- package/dist/skills/loader.test.js.map +1 -0
- package/dist/streaming/coalesce.test.js +1 -1
- package/dist/tools/builtins/__tests__/edit.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/edit.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/edit.test.js +38 -0
- package/dist/tools/builtins/__tests__/edit.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/payload-budget.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/payload-budget.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/payload-budget.test.js +22 -0
- package/dist/tools/builtins/__tests__/payload-budget.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/read-file.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/read-file.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/read-file.test.js +24 -0
- package/dist/tools/builtins/__tests__/read-file.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/verify-outputs.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/verify-outputs.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/verify-outputs.test.js +52 -0
- package/dist/tools/builtins/__tests__/verify-outputs.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/write-file.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/write-file.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/write-file.test.js +74 -0
- package/dist/tools/builtins/__tests__/write-file.test.js.map +1 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +40 -7
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts +5 -2
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +114 -18
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +1 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +13 -13
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts +1 -0
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +23 -8
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/search-tools.d.ts.map +1 -1
- package/dist/tools/builtins/search-tools.js +4 -1
- package/dist/tools/builtins/search-tools.js.map +1 -1
- package/dist/tools/builtins/verify-outputs.d.ts +5 -0
- package/dist/tools/builtins/verify-outputs.d.ts.map +1 -0
- package/dist/tools/builtins/verify-outputs.js +103 -0
- package/dist/tools/builtins/verify-outputs.js.map +1 -0
- package/dist/tools/builtins/write-file.d.ts +3 -2
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +72 -12
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/__tests__/agent.test.d.ts +15 -0
- package/dist/tools/coordinator/__tests__/agent.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/agent.test.js +142 -0
- package/dist/tools/coordinator/__tests__/agent.test.js.map +1 -0
- package/dist/tools/coordinator/__tests__/task-list.test.d.ts +13 -0
- package/dist/tools/coordinator/__tests__/task-list.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/task-list.test.js +162 -0
- package/dist/tools/coordinator/__tests__/task-list.test.js.map +1 -0
- package/dist/tools/coordinator/agent.d.ts +34 -0
- package/dist/tools/coordinator/agent.d.ts.map +1 -0
- package/dist/tools/coordinator/agent.js +107 -0
- package/dist/tools/coordinator/agent.js.map +1 -0
- package/dist/tools/coordinator/index.d.ts +7 -0
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +111 -21
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/types/agent/base.d.ts +8 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/reactive.d.ts +23 -0
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +41 -0
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/message/index.d.ts +22 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +7 -2
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/provider/chat.d.ts +2 -9
- package/dist/types/provider/chat.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +6 -0
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/events.js.map +1 -1
- package/dist/types/sandbox/index.d.ts +193 -0
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/skills/index.d.ts +2 -0
- package/dist/types/skills/index.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +22 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/toolset/index.d.ts +71 -0
- package/dist/types/toolset/index.d.ts.map +1 -0
- package/dist/types/toolset/index.js +2 -0
- package/dist/types/toolset/index.js.map +1 -0
- package/dist/types/workspace/index.d.ts +1 -0
- package/dist/types/workspace/index.d.ts.map +1 -1
- package/dist/types/workspace/shared-run.d.ts +61 -0
- package/dist/types/workspace/shared-run.d.ts.map +1 -0
- package/dist/types/workspace/shared-run.js +2 -0
- package/dist/types/workspace/shared-run.js.map +1 -0
- package/dist/verification/index.d.ts +1 -0
- package/dist/verification/index.d.ts.map +1 -1
- package/dist/verification/index.js +1 -0
- package/dist/verification/index.js.map +1 -1
- package/dist/verification/presets.d.ts +53 -0
- package/dist/verification/presets.d.ts.map +1 -0
- package/dist/verification/presets.js +70 -0
- package/dist/verification/presets.js.map +1 -0
- package/dist/verification/presets.test.d.ts +16 -0
- package/dist/verification/presets.test.d.ts.map +1 -0
- package/dist/verification/presets.test.js +79 -0
- package/dist/verification/presets.test.js.map +1 -0
- package/package.json +3 -2
- package/src/advisory/executor.test.ts +7 -4
- package/src/advisory/executor.ts +11 -2
- package/src/agents/ReactiveAgent.ts +2 -0
- package/src/agents/SupervisorAgent.ts +13 -0
- package/src/bridge/sse/mapper.test.ts +2 -2
- package/src/constants/compaction/index.ts +8 -3
- package/src/constants/sandbox/index.ts +37 -0
- package/src/constants/tools/index.ts +33 -2
- package/src/manager/run/persistence.ts +34 -6
- package/src/persona/assembler.ts +31 -8
- package/src/provider/collect.test.ts +2 -2
- package/src/public-runtime.ts +14 -1
- package/src/public-tools.ts +2 -0
- package/src/public-types.ts +7 -0
- package/src/registry/index.ts +7 -0
- package/src/registry/tool/execute.test.ts +132 -3
- package/src/registry/tool/execute.ts +94 -9
- package/src/registry/toolset/catalog.test.ts +97 -0
- package/src/registry/toolset/catalog.ts +283 -0
- package/src/runtime/query/__tests__/deferred-tools.test.ts +183 -0
- package/src/runtime/query/__tests__/executor-concurrency.test.ts +122 -0
- package/src/runtime/query/__tests__/executor-plugin-hooks.test.ts +48 -3
- package/src/runtime/query/__tests__/prompt.test.ts +51 -2
- package/src/runtime/query/__tests__/stream-recovery.test.ts +156 -0
- package/src/runtime/query/continuation.ts +16 -0
- package/src/runtime/query/executor.ts +82 -13
- package/src/runtime/query/index.ts +24 -3
- package/src/runtime/query/iteration/index.ts +263 -68
- package/src/runtime/query/iteration/phases/context.ts +10 -0
- package/src/runtime/query/prompt.ts +17 -1
- package/src/runtime/query/tooling.ts +2 -0
- package/src/sandbox/provider/local.ts +33 -0
- package/src/session/workspace/__tests__/shared-run.test.ts +181 -0
- package/src/session/workspace/index.ts +6 -0
- package/src/session/workspace/shared-run.ts +316 -0
- package/src/skills/loader.test.ts +89 -0
- package/src/skills/loader.ts +37 -6
- package/src/streaming/coalesce.test.ts +1 -1
- package/src/tools/builtins/__tests__/edit.test.ts +57 -0
- package/src/tools/builtins/__tests__/payload-budget.test.ts +29 -0
- package/src/tools/builtins/__tests__/read-file.test.ts +31 -0
- package/src/tools/builtins/__tests__/verify-outputs.test.ts +71 -0
- package/src/tools/builtins/__tests__/write-file.test.ts +97 -0
- package/src/tools/builtins/bash.ts +48 -7
- package/src/tools/builtins/edit.ts +162 -27
- package/src/tools/builtins/index.ts +13 -13
- package/src/tools/builtins/read-file.ts +31 -8
- package/src/tools/builtins/search-tools.ts +5 -1
- package/src/tools/builtins/verify-outputs.ts +126 -0
- package/src/tools/builtins/write-file.ts +83 -14
- package/src/tools/coordinator/__tests__/agent.test.ts +172 -0
- package/src/tools/coordinator/__tests__/task-list.test.ts +182 -0
- package/src/tools/coordinator/agent.ts +157 -0
- package/src/tools/coordinator/index.ts +128 -22
- package/src/types/agent/base.ts +8 -0
- package/src/types/agent/reactive.ts +25 -0
- package/src/types/agent/supervisor.ts +45 -0
- package/src/types/message/index.ts +32 -2
- package/src/types/provider/chat.ts +2 -9
- package/src/types/run/events.ts +6 -0
- package/src/types/sandbox/index.ts +219 -0
- package/src/types/skills/index.ts +4 -0
- package/src/types/tool/index.ts +24 -0
- package/src/types/toolset/index.ts +86 -0
- package/src/types/workspace/index.ts +9 -0
- package/src/types/workspace/shared-run.ts +65 -0
- package/src/verification/index.ts +1 -0
- package/src/verification/presets.test.ts +112 -0
- package/src/verification/presets.ts +72 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,398 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- df09910: fix(sdk)!: drop plan-task lifecycle from `buildAgentTool`
|
|
8
|
+
|
|
9
|
+
`buildAgentTool` used to auto-create a plan task in the supplied
|
|
10
|
+
`taskStore` and flip it to `'in_progress'` before invoking the
|
|
11
|
+
subagent. On success it flipped to `'completed'`, but on failure
|
|
12
|
+
the plan task was left stuck in `'in_progress'` forever — the
|
|
13
|
+
`TaskStatus` enum has no `'failed'` value to transition to, so
|
|
14
|
+
there was no honest way to close it from inside the tool.
|
|
15
|
+
|
|
16
|
+
Removed `taskStore` and `runId` from `AgentToolOptions` entirely.
|
|
17
|
+
The `Agent` tool's job is "invoke a subagent and return the
|
|
18
|
+
result"; plan-task tracking is the parent's responsibility via
|
|
19
|
+
`TaskCreate` / `TaskUpdate`, where the host owns the status
|
|
20
|
+
semantics. This avoids the leak class entirely instead of
|
|
21
|
+
patching it.
|
|
22
|
+
|
|
23
|
+
Breaking change for any consumer that was relying on the auto-
|
|
24
|
+
plan-task behaviour. Migrate by creating the plan task on the
|
|
25
|
+
host side before calling `Agent`, and updating it on the host
|
|
26
|
+
side once the tool result is in hand.
|
|
27
|
+
|
|
28
|
+
- ea21863: feat(sdk)!: rename builtin tools to Claude Code canonical names
|
|
29
|
+
|
|
30
|
+
**Breaking change.** Builtin tool names now mirror Claude Code's canonical
|
|
31
|
+
tool table verbatim (per `code.claude.com/docs/en/tools-reference`):
|
|
32
|
+
|
|
33
|
+
- `bash` → `Bash`
|
|
34
|
+
- `edit` → `Edit`
|
|
35
|
+
- `glob` → `Glob`
|
|
36
|
+
- `grep` → `Grep`
|
|
37
|
+
- `read_file` → `Read`
|
|
38
|
+
- `write_file` → `Write`
|
|
39
|
+
|
|
40
|
+
`LsTool` and `SearchToolsTool` are still exported but **removed from the
|
|
41
|
+
default `getBuiltinTools()` set**. Claude Code's training distribution
|
|
42
|
+
does not include `LS` (directory listing is `Bash` + `Glob`) and has no
|
|
43
|
+
`search_tools` analogue at all. Including them in the defaults gave the
|
|
44
|
+
model two tools that looked right but degraded alignment. Hosts that
|
|
45
|
+
genuinely want either can register them explicitly.
|
|
46
|
+
|
|
47
|
+
Why this is breaking and worth it: Namzu is a peer to Claude Code's
|
|
48
|
+
native agentic surface, not a wrapper around the Anthropic Beta Agents
|
|
49
|
+
API. Mirroring the canonical names verbatim means Claude's pretrained
|
|
50
|
+
agentic instincts apply for free — no system-prompt argument needed to
|
|
51
|
+
explain what `Read` or `Bash` does. Idiosyncratic snake_case names threw
|
|
52
|
+
that alignment away on every call.
|
|
53
|
+
|
|
54
|
+
**Migration:** consumers that hard-code tool-name strings in their
|
|
55
|
+
prompt overlays, friendly-label maps, or per-tool deny rules need to
|
|
56
|
+
update them to the new PascalCase names. The runtime registry contracts
|
|
57
|
+
(register / get / has) are unchanged; only the literal string names of
|
|
58
|
+
the builtin tools moved.
|
|
59
|
+
|
|
60
|
+
- 8fd9349: feat(sandbox)!: Anthropic-style multi-mount container sandbox layout
|
|
61
|
+
|
|
62
|
+
Adds a declarative `ContainerSandboxLayout` shape that maps onto
|
|
63
|
+
Anthropic's container architecture (Claude container blueprint,
|
|
64
|
+
Code Interpreter, "skills"). The `Container` prefix is load-bearing
|
|
65
|
+
— this layout is specific to the container tier; future microVM /
|
|
66
|
+
process tiers will carry their own layout types when their adapters
|
|
67
|
+
land. Layout is supplied at provider construction — not per
|
|
68
|
+
`provider.create()` call — so the type system catches missing-layout
|
|
69
|
+
mistakes at compile time:
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
import {
|
|
73
|
+
createSandboxProvider,
|
|
74
|
+
SANDBOX_DEFAULT_OUTPUTS_PATH, // re-exported from @namzu/sdk
|
|
75
|
+
} from "@namzu/sandbox";
|
|
76
|
+
|
|
77
|
+
const provider = createSandboxProvider({
|
|
78
|
+
backend: { tier: "container", image: "namzu-worker:latest" },
|
|
79
|
+
layout: {
|
|
80
|
+
outputs: {
|
|
81
|
+
source: {
|
|
82
|
+
type: "hostDir",
|
|
83
|
+
hostPath: "/var/lib/vandal/sessions/<task>/outputs",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
uploads: {
|
|
87
|
+
source: {
|
|
88
|
+
type: "hostDir",
|
|
89
|
+
hostPath: "/var/lib/vandal/sessions/<task>/uploads",
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
skills: [
|
|
93
|
+
{
|
|
94
|
+
id: "pdf-tools",
|
|
95
|
+
source: { type: "hostDir", hostPath: "/opt/skills/pdf-tools" },
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Each mount carries a discriminated `ContainerSandboxMountSource`.
|
|
103
|
+
The single variant today is `{ type: 'hostDir'; hostPath: string }`;
|
|
104
|
+
future variants (squashfs skill bundles, managed volumes attached
|
|
105
|
+
to a container backend) land additively as minor bumps without
|
|
106
|
+
reshaping the consumer call site.
|
|
107
|
+
|
|
108
|
+
Layout fields and their defaults:
|
|
109
|
+
|
|
110
|
+
- `outputs` — RW. Default `/mnt/user-data/outputs`. **Required**.
|
|
111
|
+
- `uploads` — RO. Default `/mnt/user-data/uploads`.
|
|
112
|
+
- `toolResults` — RO. Default `/mnt/user-data/tool_results`.
|
|
113
|
+
- `skills` — RO list, default `/mnt/skills/<id>` per entry.
|
|
114
|
+
- `transcripts` — RO. Default `/mnt/transcripts`.
|
|
115
|
+
|
|
116
|
+
The defaults are exported as constants from `@namzu/sdk`'s root
|
|
117
|
+
barrel (`SANDBOX_DEFAULT_OUTPUTS_PATH`,
|
|
118
|
+
`SANDBOX_DEFAULT_UPLOADS_PATH`, `SANDBOX_DEFAULT_TOOL_RESULTS_PATH`,
|
|
119
|
+
`SANDBOX_DEFAULT_TRANSCRIPTS_PATH`, `SANDBOX_DEFAULT_SKILLS_PARENT`)
|
|
120
|
+
and re-exported from `@namzu/sandbox`, so prompt-template generators
|
|
121
|
+
and the backend agree on a single source of truth. Both import
|
|
122
|
+
paths (`@namzu/sdk` and `@namzu/sandbox`) are pinned by tests.
|
|
123
|
+
|
|
124
|
+
There is intentionally **no `scratchpad` field**: the
|
|
125
|
+
container-internal RW area (`/home/<imageUser>`) is image-bake
|
|
126
|
+
responsibility, not a runtime knob.
|
|
127
|
+
|
|
128
|
+
**Validation** runs synchronously inside `createSandboxProvider` and
|
|
129
|
+
collects every violation in one
|
|
130
|
+
`ContainerSandboxLayoutValidationError.reasons[]`:
|
|
131
|
+
|
|
132
|
+
- `outputs` must be present.
|
|
133
|
+
- Skill IDs match `/^[a-zA-Z0-9_.-]+$/`, and `id.includes('..')` is
|
|
134
|
+
rejected (path-traversal guard — covers `..`, `foo..bar`,
|
|
135
|
+
`..foo`, `foo..`). Isolated dots (`pdf-tools.v2`) pass.
|
|
136
|
+
- Skill IDs are unique.
|
|
137
|
+
- Resolved `containerPath`s are unique across every mount slot.
|
|
138
|
+
|
|
139
|
+
**Error transport.** `ContainerSandboxLayoutValidationError`
|
|
140
|
+
carries a `cause` field (Error native), `toJSON()` keeps `reasons`
|
|
141
|
+
(and `cause` when set), and a new helper
|
|
142
|
+
`serializeSandboxError(err: unknown): SerializedSandboxError`
|
|
143
|
+
returns a plain object that survives `structuredClone`,
|
|
144
|
+
`postMessage`, and `JSON.stringify` round-trips uniformly. The
|
|
145
|
+
helper is **cycle-safe** — a `WeakSet`-threaded recursion detects
|
|
146
|
+
self-cycles (`a.cause = a`), two-node cycles (`a.cause = b;
|
|
147
|
+
b.cause = a`), and longer loops, replacing the offending node with
|
|
148
|
+
a `{ name: 'CircularReference', message: '[circular]' }` sentinel
|
|
149
|
+
rather than overflowing the stack. The helper is also
|
|
150
|
+
**transport-safe** — non-Error causes (Function, Symbol, BigInt,
|
|
151
|
+
NaN, ±Infinity, undefined, null, primitives, plain objects) are
|
|
152
|
+
converted to a typed envelope by `serializeNonErrorCause` BEFORE
|
|
153
|
+
they enter the wire shape, so values that `JSON.stringify` drops
|
|
154
|
+
silently or `structuredClone` throws on never appear.
|
|
155
|
+
`SerializedSandboxError.cause` is strictly typed
|
|
156
|
+
`SerializedSandboxError | undefined`. Use the helper at any
|
|
157
|
+
worker / IPC / log-shipper boundary; cloning the Error subclass
|
|
158
|
+
itself is not supported.
|
|
159
|
+
|
|
160
|
+
**Breaking changes** — the legacy single-mount paradigm is removed:
|
|
161
|
+
|
|
162
|
+
- `SandboxCreateConfig.hostWorkspaceDir` is removed. Pass the host
|
|
163
|
+
path on `layout.outputs.source.hostPath` at provider construction.
|
|
164
|
+
- `ContainerBackendConfig.workspaceMount` is removed. Pass the
|
|
165
|
+
in-container path on `layout.outputs.containerPath`.
|
|
166
|
+
- `SandboxProviderConfig` is now a discriminated union: the
|
|
167
|
+
container variant requires `layout: ContainerSandboxLayout`, the
|
|
168
|
+
other variants do not carry the field. Constructing a docker
|
|
169
|
+
provider without a layout fails at compile time.
|
|
170
|
+
- `SandboxCreateConfig.layout` does NOT exist; layout is
|
|
171
|
+
factory-baked. The SDK runtime cannot accidentally call a
|
|
172
|
+
container provider without a layout.
|
|
173
|
+
- The docker backend no longer allocates host directories
|
|
174
|
+
(`mkdtemp`) or removes them on `destroy()`. Every bind source is
|
|
175
|
+
consumer-owned. This also fixes an `EACCES: permission denied,
|
|
176
|
+
mkdir '/Users'` crash that hit sibling-container deployments
|
|
177
|
+
(Vandal Cowork).
|
|
178
|
+
- The worker no longer reads `NAMZU_SANDBOX_LAYOUT` (it never
|
|
179
|
+
branched on the env, only logged it; size grew with the skill
|
|
180
|
+
list). Only `NAMZU_SANDBOX_WORKSPACE` is forwarded today.
|
|
181
|
+
|
|
182
|
+
The reference Dockerfile pre-creates **only the parent directories**
|
|
183
|
+
`/mnt`, `/mnt/user-data`, `/mnt/skills` — root-owned, mode 0555.
|
|
184
|
+
Leaf paths (`outputs/`, `uploads/`, `tool_results/`, `transcripts/`,
|
|
185
|
+
`<skill-id>/`) are intentionally NOT pre-created. When a bind is
|
|
186
|
+
attached the docker daemon creates the leaf as the bind target;
|
|
187
|
+
when not attached, the leaf does not exist — the model gets ENOENT
|
|
188
|
+
instead of an empty writable dir that looks "mounted but uploaded
|
|
189
|
+
nothing".
|
|
190
|
+
|
|
191
|
+
`pnpm sandbox:smoke` (alias for `pnpm --filter @namzu/sandbox
|
|
192
|
+
test:smoke`) runs an opt-in docker integration test exercising the
|
|
193
|
+
leaf-permission contract against a real docker daemon. Excluded
|
|
194
|
+
from the default `pnpm test`; gated by a dedicated
|
|
195
|
+
`.github/workflows/sandbox-smoke.yml` workflow that builds the
|
|
196
|
+
reference image and runs the smoke test on PR / push when the
|
|
197
|
+
sandbox surface changes. On CI (`process.env.CI === 'true'`), the
|
|
198
|
+
smoke test fails fast if docker / the image are absent rather than
|
|
199
|
+
silently skipping.
|
|
200
|
+
|
|
201
|
+
`@namzu/sdk` exports `ContainerSandboxLayout`,
|
|
202
|
+
`ContainerSandboxLayoutMount`, `ContainerSandboxMountSource`,
|
|
203
|
+
`ContainerSandboxSkillMount`, `ResolvedContainerSandboxLayout`,
|
|
204
|
+
and the five `SANDBOX_DEFAULT_*_PATH` constants from its root
|
|
205
|
+
barrel. `@namzu/sandbox` re-exports those names plus
|
|
206
|
+
`ContainerSandboxLayoutValidationError`, `serializeSandboxError`,
|
|
207
|
+
and the `SerializedSandboxError` shape. The packed-tarball shape
|
|
208
|
+
is verified by `.github/scripts/verify-consumer-install.sh`'s
|
|
209
|
+
`@namzu/sandbox public-surface fixture`, which installs the
|
|
210
|
+
package from a tarball into a clean project and asserts every
|
|
211
|
+
documented constant + runtime export comes back via both
|
|
212
|
+
`@namzu/sandbox` and `@namzu/sdk` import paths. `@namzu/sandbox`
|
|
213
|
+
is also added to `ci.yml`'s `publint` and ATTW (Are The Types
|
|
214
|
+
Wrong) gates.
|
|
215
|
+
|
|
216
|
+
### Minor Changes
|
|
217
|
+
|
|
218
|
+
- 542f057: feat(sdk): canonical `Agent` tool for synchronous subagent delegation
|
|
219
|
+
|
|
220
|
+
Adds `buildAgentTool({ gateway, workingDirectory, allowedAgentIds, ... })`
|
|
221
|
+
that builds a single tool named `Agent` with the input shape
|
|
222
|
+
`{ description, prompt, subagent_type }`. This mirrors Claude Code's
|
|
223
|
+
training distribution verbatim (per `code.claude.com/docs/en/sub-agents`):
|
|
224
|
+
the parent's tool call BLOCKS on `gateway.waitForTask(handle.taskId)`,
|
|
225
|
+
the subagent runs in its own context window, and the subagent's final
|
|
226
|
+
text comes back as the tool result.
|
|
227
|
+
|
|
228
|
+
Why this matters: the existing `buildCoordinatorTools` shipped a
|
|
229
|
+
non-blocking `create_task` / `continue_task` / `cancel_task` trio that
|
|
230
|
+
returned immediately and surfaced subagent completion via a
|
|
231
|
+
`<task-notification>` callback. That pattern is useful for fire-and-
|
|
232
|
+
forget multi-task fan-out but is **not** what Claude was trained on.
|
|
233
|
+
Models calling the async coordinator tools waste tokens reasoning
|
|
234
|
+
about whether the task completed yet; with the canonical `Agent`
|
|
235
|
+
tool, the model just receives the result and continues. Free
|
|
236
|
+
alignment, no system-prompt argument needed.
|
|
237
|
+
|
|
238
|
+
Both surfaces remain available — the coordinator trio is the right
|
|
239
|
+
choice for genuine work-queue surfaces, the `Agent` tool is the
|
|
240
|
+
right choice when the host wants Claude Code parity.
|
|
241
|
+
|
|
242
|
+
- 265150b: feat(sdk): default sandboxed verification gate preset + expanded brick-pattern denylist
|
|
243
|
+
|
|
244
|
+
Ship `defaultSandboxedGateConfig()` and `defaultSandboxedShellGateConfig()` from `@namzu/sdk` so
|
|
245
|
+
hosts running an agent inside an isolated workspace don't have to hand-roll a `VerificationRule[]`
|
|
246
|
+
just to keep in-sandbox file mutation from triggering a review prompt on every call. The first
|
|
247
|
+
preset auto-allows read-only tools and `category: 'filesystem' | 'analysis' | 'custom'`; the
|
|
248
|
+
second extends auto-allow to `category: 'shell'` for hosts with real OS-level isolation. Both
|
|
249
|
+
keep the dangerous-patterns hard-deny in place.
|
|
250
|
+
|
|
251
|
+
`DANGEROUS_PATTERNS` (consumed by the `deny_dangerous_patterns` rule) gains entries for `sudo`,
|
|
252
|
+
`su -`, world-writable `chmod 777 /`, `curl|sh` / `wget|sh` exfil-then-exec pipes, outbound
|
|
253
|
+
`ssh user@host`, and raw dynamic `eval`. The list is still high-signal, not exhaustive — the
|
|
254
|
+
README in `verification/presets.ts` is explicit that the sandbox itself is the safety boundary
|
|
255
|
+
and the patterns only catch blatant attempts.
|
|
256
|
+
|
|
257
|
+
- 52af97e: **Paste images into the conversation (vision input).**
|
|
258
|
+
|
|
259
|
+
A user message can now carry image attachments. `@namzu/sdk` adds an optional `attachments` field to user messages (`ImageAttachment { data, mediaType }`, additive — text messages are unchanged), and the Anthropic provider sends them as image content blocks so the model can see them. In the CLI, press `Ctrl+V` to paste an image from the clipboard — it shows as an `⎘ Image #N` chip in the composer and is sent to the model as vision input when you submit.
|
|
260
|
+
|
|
261
|
+
- a71422a: feat(sdk): ReactiveAgent forwards verificationGate to drainQuery
|
|
262
|
+
|
|
263
|
+
Adds an optional `verificationGate?: VerificationGateConfig` field on
|
|
264
|
+
`ReactiveAgentConfig` and forwards it through `ReactiveAgent.run()` into
|
|
265
|
+
`drainQuery`, mirroring the existing `SupervisorAgentConfig.verificationGate`
|
|
266
|
+
plumbing. Without this, child agents running under `ReactiveAgent` could not
|
|
267
|
+
opt into the same capability-aware deny/allow rules the supervisor already
|
|
268
|
+
uses — the only path was `drainQuery`'s `autoApproveHandler` default, which
|
|
269
|
+
approves every tool call silently. Hosts that want defense-in-depth at the
|
|
270
|
+
child level (deny dangerous shell patterns, restrict by category) can now
|
|
271
|
+
pass the same preset they pass to the supervisor.
|
|
272
|
+
|
|
273
|
+
- d6b5bc1: **Remove the legacy `append` file tool.** `AppendFileTool` is gone — it was already excluded from `getBuiltinTools()` (Claude Code's tool distribution has no `Append`), and appending is canonical `edit` with `insertLine: "end"`. The export is removed from the public surface; hosts that relied on it should switch to `edit`. namzu's CLI no longer needs to filter `append` out of its tool set.
|
|
274
|
+
- 63b4885: feat(sdk): forward sandboxProvider through reactive/supervisor agents
|
|
275
|
+
|
|
276
|
+
`ReactiveAgentConfig` and `SupervisorAgentConfig` gain an optional
|
|
277
|
+
`sandboxProvider?: SandboxProvider` field. When set, the agent's
|
|
278
|
+
`runConfig` builder forwards the provider into `drainQuery`'s
|
|
279
|
+
`sandboxProvider` slot, so the supervisor — and every child
|
|
280
|
+
specialist run that inherits the supervisor's run config — gets
|
|
281
|
+
the same per-task ephemeral container.
|
|
282
|
+
|
|
283
|
+
Without this plumbing, a host that wires `sandboxProvider` only on
|
|
284
|
+
the supervisor sees the field silently dropped before child
|
|
285
|
+
specialists are spawned, and each child runs without a sandbox.
|
|
286
|
+
The forwarding closes that gap so multi-agent hosts can pass a
|
|
287
|
+
single per-task provider instance and have supervisor + every
|
|
288
|
+
child share one container.
|
|
289
|
+
|
|
290
|
+
Pure additive change — `SupervisorAgent` / `ReactiveAgent`
|
|
291
|
+
constructors that don't pass `sandboxProvider` behave exactly as
|
|
292
|
+
before.
|
|
293
|
+
|
|
294
|
+
- d86b161: **namzu can now delegate to sub-agents.**
|
|
295
|
+
|
|
296
|
+
The CLI wires the SDK's native delegation: the model gets the canonical `Agent({ description, prompt, subagent_type })` tool and can hand a self-contained task to a fresh `general-purpose` sub-agent that runs in its own context window with its own tools, then returns its result. Delegations show in the transcript as a normal `Agent(...)` tool call with a live spinner and result.
|
|
297
|
+
|
|
298
|
+
To support this from a host, `@namzu/sdk` now exports `ThreadManager` and `InMemoryThreadStore` from its public runtime surface (alongside the already-public `AgentManager`, `AgentRegistry`, `ReactiveAgent`, `LocalTaskGateway`, `buildAgentTool`, and the session/summary/capacity/workspace primitives) so a consumer can stand up an `AgentManager` end to end.
|
|
299
|
+
|
|
300
|
+
### Patch Changes
|
|
301
|
+
|
|
302
|
+
- 140bcc0: fix(sdk): Agent tool no longer reports failed subagents as successful
|
|
303
|
+
|
|
304
|
+
`buildAgentTool` was treating `gateway.waitForTask(handle.taskId)`'s
|
|
305
|
+
returned `state === 'completed'` as proof of success and ignoring
|
|
306
|
+
the underlying `BaseAgentResult.status`. That was wrong: some
|
|
307
|
+
gateways (the SDK's `LocalTaskGateway` for one) forward
|
|
308
|
+
`task.state` directly from the agent manager without re-deriving it
|
|
309
|
+
from the run's `status`, so a subagent run with `status: 'failed'`
|
|
310
|
+
plus a non-empty `lastError` could surface as `state: 'completed'`
|
|
311
|
+
and fool the parent into receiving `success: true` with garbage
|
|
312
|
+
output.
|
|
313
|
+
|
|
314
|
+
The check now requires BOTH layers to agree before reporting
|
|
315
|
+
success: gateway state must be `'completed'` AND the run's
|
|
316
|
+
`BaseAgentResult.status` (when present) must be `'completed'`. On
|
|
317
|
+
failure the tool surfaces `lastError` and the disagreement state in
|
|
318
|
+
both `error` and `data` so the parent can debug.
|
|
319
|
+
|
|
320
|
+
Adds three pinned cases in
|
|
321
|
+
`packages/sdk/src/tools/coordinator/__tests__/agent.test.ts`
|
|
322
|
+
covering: both-agree-success, run-status-failed-but-state-completed
|
|
323
|
+
(the regression case), and gateway-state-failed.
|
|
324
|
+
|
|
325
|
+
- 38c4b62: Harden two paths flagged by an adversarial review: `ToolRegistry.searchDeferred` no longer over-activates deferred tools — batched-query tokens match the tool name only (not descriptions) and short/generic tokens like `clawtool` are ignored, so a common word can't activate the whole catalog. The dynamic `Agent` sub-agent now unregisters its per-call `dyn-N` definition in a `finally`, so long sessions don't leak persona registrations on success, failure, or throw.
|
|
326
|
+
- a1c6694: **Fix a race when multiple file-mutating tools run in one turn.**
|
|
327
|
+
|
|
328
|
+
The tool executor ran every tool call in a batch with `Promise.all`, ignoring each tool's `concurrencySafe` flag. Several `edit`/`write` calls to the same file in one assistant turn therefore raced on read→modify→write — each read the same starting content and the last writer clobbered the others, even though every call reported success. The executor now honors `concurrencySafe`: read-only tools (ls/grep/glob/…) still run in parallel, but concurrency-unsafe tools (edit/write/append/bash) are serialized within the batch, so same-file edits apply one-after-another.
|
|
329
|
+
|
|
330
|
+
- 63e44f7: Worker `handleExecute` no longer crashes the per-task container when a
|
|
331
|
+
single request body is rejected by `resolveWithinWorkspace` (e.g. a host
|
|
332
|
+
path forwarded as `cwd`) or by the workspace `mkdir`. Each fallible step
|
|
333
|
+
now returns a typed `400` (or a terminal NDJSON `error` event for
|
|
334
|
+
post-headers failures) and the worker stays alive for the next call —
|
|
335
|
+
prior behaviour was an unhandled rejection on the `http.createServer`
|
|
336
|
+
callback, which on Node ≥ 15 exits the process and gives every
|
|
337
|
+
subsequent SDK call the bare `fetch failed` from `UND_ERR_SOCKET`.
|
|
338
|
+
|
|
339
|
+
The docker backend's host-side `execViaWorker` and `writeFile` fetches
|
|
340
|
+
now surface `error.cause.code` / `cause.message` instead of the
|
|
341
|
+
stripped `fetch failed`. The bash builtin no longer forwards
|
|
342
|
+
`context.workingDirectory` (a host-side path that has no meaning
|
|
343
|
+
inside the sandbox container) as `cwd`; tools that need a sub-cwd
|
|
344
|
+
inside the sandbox can be added later via an explicit
|
|
345
|
+
`SandboxExecOptions` field.
|
|
346
|
+
|
|
347
|
+
The SDK's iteration aggregator now derives
|
|
348
|
+
`ChatCompletionResponse.toolCalls[i].function.arguments` from each
|
|
349
|
+
bucket's parsed input rather than the raw `argsBuf` buffer. When a
|
|
350
|
+
provider stream truncates with `stop_reason: "max_tokens"` mid-
|
|
351
|
+
`input_json_delta`, downstream `JSON.parse` in
|
|
352
|
+
`runtime/query/executor.ts:executeSingle` no longer rejects with the
|
|
353
|
+
generic "Invalid JSON in tool arguments" — the tool runs against the
|
|
354
|
+
empty parsed object and the input zod schema produces a readable
|
|
355
|
+
"<field> is required" error instead.
|
|
356
|
+
|
|
357
|
+
- 38c4b62: Fix `search_tools` failing to load deferred tools when the model names several at once. `ToolRegistry.searchDeferred` matched the entire query as a single substring, so a batched query like `"A2aCard PeerRegister PeerList"` matched no tool and activated nothing — the subsequent call then failed with "deferred and cannot be executed". The query is now tokenized: a tool matches if its name or description contains the whole phrase OR any single term, so a batch activates each named tool.
|
|
358
|
+
- 6b74cd0: **Sub-agents do real work, and tool tracking is keyed on the SDK's tool-use id.**
|
|
359
|
+
|
|
360
|
+
- Sub-agents now get the same tool set as the parent — builtins, memory, and clawtool's catalog (deferred, incl. web search/fetch and peer dispatch) — so a delegated research/work task can actually use tools instead of answering from memory alone.
|
|
361
|
+
- The transcript's live tool tracking now matches each call by the SDK's stable `toolUseId` rather than by name/order, so parallel tool calls (even same-named) are attributed correctly.
|
|
362
|
+
- Stronger anti-fabrication instruction for both the main agent and sub-agents: never claim to have run a tool, written a file, or produced a result without actually doing it; if a capability is unavailable, say so instead of inventing output.
|
|
363
|
+
- `@namzu/sdk`: the `Agent` tool's `subagent_type` is now optional when only one sub-agent is registered (defaults to it), so the model can't trip a "subagent_type required" validation error on the common single-sub-agent setup.
|
|
364
|
+
|
|
365
|
+
## 0.6.0
|
|
366
|
+
|
|
367
|
+
### Minor Changes
|
|
368
|
+
|
|
369
|
+
- 1df23b1: `SupervisorAgentConfig` accepts `resumeHandler` and `verificationGate`.
|
|
370
|
+
|
|
371
|
+
The supervisor's existing tool-review pipeline (drainQuery's
|
|
372
|
+
`runToolReview` phase) was reachable only by callers that constructed
|
|
373
|
+
`drainQuery` arguments by hand — `SupervisorAgent.run` ignored them
|
|
374
|
+
entirely and always fell back to `autoApproveHandler`. Hosts that
|
|
375
|
+
wanted "Ask before acting" semantics had no way to plug in.
|
|
376
|
+
|
|
377
|
+
`SupervisorAgent.run` now forwards both fields verbatim to
|
|
378
|
+
`drainQuery` when the caller supplies them. Behaviour is unchanged
|
|
379
|
+
for callers that omit them — the SDK still defaults to auto-approve.
|
|
380
|
+
|
|
381
|
+
Migration:
|
|
382
|
+
|
|
383
|
+
```ts
|
|
384
|
+
new SupervisorAgent({...}).run(input, {
|
|
385
|
+
...config,
|
|
386
|
+
// surface tool_review_requested events to the user; resolve when
|
|
387
|
+
// they approve / modify / reject.
|
|
388
|
+
resumeHandler: async ({ runId, toolCalls, ... }) => {
|
|
389
|
+
return await waitForUserDecision(runId, toolCalls)
|
|
390
|
+
},
|
|
391
|
+
// optionally pre-classify tools so trivial reads bypass review.
|
|
392
|
+
verificationGate: { enabled: true, rules: [...] },
|
|
393
|
+
})
|
|
394
|
+
```
|
|
395
|
+
|
|
3
396
|
## 0.5.0
|
|
4
397
|
|
|
5
398
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/advisory/executor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,KAAK,OAAO,EAA0C,MAAM,2BAA2B,CAAA;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,MAAM,CAAC,EAAE,MAAM;IAIrB,OAAO,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,uBAAuB,CAAC;IAkDnC,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/advisory/executor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,KAAK,OAAO,EAA0C,MAAM,2BAA2B,CAAA;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,MAAM,CAAC,EAAE,MAAM;IAIrB,OAAO,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,uBAAuB,CAAC;IAkDnC,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,gBAAgB;IAqBxB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAMnB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAQnB"}
|
|
@@ -72,8 +72,15 @@ export class AdvisoryExecutor {
|
|
|
72
72
|
contextParts.push(`## Working State\n${callCtx.workingStateSummary}`);
|
|
73
73
|
}
|
|
74
74
|
if (callCtx.toolCatalog && callCtx.toolCatalog.length > 0) {
|
|
75
|
-
const
|
|
76
|
-
|
|
75
|
+
const toolLines = callCtx.toolCatalog.map((tool) => {
|
|
76
|
+
const description = tool.function.description?.trim();
|
|
77
|
+
return description ? `- ${tool.function.name}: ${description}` : `- ${tool.function.name}`;
|
|
78
|
+
});
|
|
79
|
+
contextParts.push([
|
|
80
|
+
'## Runtime Tool Summary',
|
|
81
|
+
'These tools are available to the executor. Their executable schemas remain owned by the runtime tool catalogue; use this as advisory context only.',
|
|
82
|
+
toolLines.join('\n'),
|
|
83
|
+
].join('\n'));
|
|
77
84
|
}
|
|
78
85
|
const messagesToInclude = this.truncateMessages(callCtx.messages, advisor.maxContextTokens);
|
|
79
86
|
if (messagesToInclude.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/advisory/executor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/advisory/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
* - `buildContext`:
|
|
22
22
|
* - Returns [] when `request.includeContext === false`.
|
|
23
23
|
* - Includes workingStateSummary when present.
|
|
24
|
-
* - Includes
|
|
24
|
+
* - Includes a runtime tool summary when a toolCatalog is present
|
|
25
|
+
* + non-empty; executable schemas remain runtime-owned.
|
|
25
26
|
* - Includes truncated conversation context (most-recent-first
|
|
26
27
|
* walk, bounded by `advisor.maxContextTokens * CHARS_PER_TOKEN`).
|
|
27
28
|
* - Returns [] when no context parts were assembled.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/advisory/executor.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/advisory/executor.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG"}
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
* - `buildContext`:
|
|
22
22
|
* - Returns [] when `request.includeContext === false`.
|
|
23
23
|
* - Includes workingStateSummary when present.
|
|
24
|
-
* - Includes
|
|
24
|
+
* - Includes a runtime tool summary when a toolCatalog is present
|
|
25
|
+
* + non-empty; executable schemas remain runtime-owned.
|
|
25
26
|
* - Includes truncated conversation context (most-recent-first
|
|
26
27
|
* walk, bounded by `advisor.maxContextTokens * CHARS_PER_TOKEN`).
|
|
27
28
|
* - Returns [] when no context parts were assembled.
|
|
@@ -173,7 +174,7 @@ describe('AdvisoryExecutor — buildContext', () => {
|
|
|
173
174
|
// Only system + user(question)
|
|
174
175
|
expect(call.messages).toHaveLength(2);
|
|
175
176
|
});
|
|
176
|
-
it('includes workingStateSummary +
|
|
177
|
+
it('includes workingStateSummary + runtime tool summary when present', async () => {
|
|
177
178
|
const provider = mockProvider();
|
|
178
179
|
const e = new AdvisoryExecutor();
|
|
179
180
|
await e.consult(advisor({ provider }), req, {
|
|
@@ -195,8 +196,10 @@ describe('AdvisoryExecutor — buildContext', () => {
|
|
|
195
196
|
const contextMsg = call.messages[1]?.content ?? '';
|
|
196
197
|
expect(contextMsg).toContain('Working State');
|
|
197
198
|
expect(contextMsg).toContain('state summary here');
|
|
198
|
-
expect(contextMsg).toContain('
|
|
199
|
-
expect(contextMsg).toContain('
|
|
199
|
+
expect(contextMsg).toContain('Runtime Tool Summary');
|
|
200
|
+
expect(contextMsg).toContain('executable schemas remain owned by the runtime tool catalogue');
|
|
201
|
+
expect(contextMsg).toContain('- read_file: read');
|
|
202
|
+
expect(contextMsg).toContain('- write_file: write');
|
|
200
203
|
});
|
|
201
204
|
it('includes conversation context (no truncation when no maxContextTokens)', async () => {
|
|
202
205
|
const provider = mockProvider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.test.js","sourceRoot":"","sources":["../../src/advisory/executor.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"executor.test.js","sourceRoot":"","sources":["../../src/advisory/executor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveAgent.d.ts","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,aAAc,SAAQ,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACzF,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;gBAEvB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactiveAgent.d.ts","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,aAAc,SAAQ,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACzF,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;gBAEvB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,mBAAmB,CAAC;IA4EhB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
|
|
@@ -26,6 +26,8 @@ export class ReactiveAgent extends AbstractAgent {
|
|
|
26
26
|
basePrompt: config.basePrompt,
|
|
27
27
|
provider: config.provider,
|
|
28
28
|
tools: config.tools,
|
|
29
|
+
...(config.verificationGate ? { verificationGate: config.verificationGate } : {}),
|
|
30
|
+
...(config.sandboxProvider ? { sandboxProvider: config.sandboxProvider } : {}),
|
|
29
31
|
runConfig: {
|
|
30
32
|
model: config.model,
|
|
31
33
|
tokenBudget: config.tokenBudget,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveAgent.js","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReactiveAgent.js","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupervisorAgent.d.ts","sourceRoot":"","sources":["../../src/agents/SupervisorAgent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,yBAAyB,CAAA;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,eAAgB,SAAQ,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAC/F,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;gBAEzB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"SupervisorAgent.d.ts","sourceRoot":"","sources":["../../src/agents/SupervisorAgent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,yBAAyB,CAAA;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,eAAgB,SAAQ,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAC/F,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;gBAEzB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;CAyKjC"}
|
|
@@ -86,12 +86,18 @@ export class SupervisorAgent extends AbstractAgent {
|
|
|
86
86
|
},
|
|
87
87
|
});
|
|
88
88
|
const tools = new ToolRegistry();
|
|
89
|
+
if (config.tools) {
|
|
90
|
+
for (const tool of config.tools.getAll()) {
|
|
91
|
+
tools.register(tool, config.tools.getAvailability(tool.name));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
89
94
|
for (const tool of coordinatorToolDefs) {
|
|
90
95
|
tools.register(tool);
|
|
91
96
|
}
|
|
92
97
|
const childInvocationState = deriveChildState(config.invocationState ?? { tenantId }, this.metadata.id);
|
|
93
98
|
const run = await drainQuery({
|
|
94
99
|
systemPrompt: config.systemPrompt,
|
|
100
|
+
skills: config.skills,
|
|
95
101
|
provider: config.provider,
|
|
96
102
|
tools,
|
|
97
103
|
runConfig: {
|
|
@@ -125,6 +131,13 @@ export class SupervisorAgent extends AbstractAgent {
|
|
|
125
131
|
launchedTasks,
|
|
126
132
|
advisory: config.advisory,
|
|
127
133
|
invocationState: childInvocationState,
|
|
134
|
+
// HITL surface: forward optional review-time hooks so hosts can
|
|
135
|
+
// run "Ask before acting" supervisors instead of the default
|
|
136
|
+
// auto-approve. drainQuery falls back to autoApproveHandler
|
|
137
|
+
// when resumeHandler is omitted (= same behaviour as before).
|
|
138
|
+
...(config.resumeHandler ? { resumeHandler: config.resumeHandler } : {}),
|
|
139
|
+
...(config.verificationGate ? { verificationGate: config.verificationGate } : {}),
|
|
140
|
+
...(config.sandboxProvider ? { sandboxProvider: config.sandboxProvider } : {}),
|
|
128
141
|
}, listener);
|
|
129
142
|
const taskHandles = gateway.listTasks();
|
|
130
143
|
const taskResults = taskHandles.map((handle, index) => ({
|