@namzu/sdk 0.6.0 → 1.1.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 +529 -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 +7 -0
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +22 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +54 -14
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/__tests__/supervisor-ledger.test.d.ts +2 -0
- package/dist/agents/__tests__/supervisor-ledger.test.d.ts.map +1 -0
- package/dist/agents/__tests__/supervisor-ledger.test.js +131 -0
- package/dist/agents/__tests__/supervisor-ledger.test.js.map +1 -0
- package/dist/bridge/sse/mapper.test.js +2 -2
- package/dist/config/runtime.d.ts +24 -0
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +9 -0
- package/dist/config/runtime.js.map +1 -1
- package/dist/connector/builtins/webhook.test.js +17 -0
- package/dist/connector/builtins/webhook.test.js.map +1 -1
- package/dist/connector/index.d.ts +1 -0
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +1 -0
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +4 -0
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +1 -0
- package/dist/connector/mcp/index.d.ts.map +1 -1
- package/dist/connector/mcp/index.js +1 -0
- package/dist/connector/mcp/index.js.map +1 -1
- package/dist/connector/mcp/streamable-http.d.ts +22 -0
- package/dist/connector/mcp/streamable-http.d.ts.map +1 -0
- package/dist/connector/mcp/streamable-http.js +128 -0
- package/dist/connector/mcp/streamable-http.js.map +1 -0
- package/dist/connector/mcp/streamable-http.test.d.ts +2 -0
- package/dist/connector/mcp/streamable-http.test.d.ts.map +1 -0
- package/dist/connector/mcp/streamable-http.test.js +132 -0
- package/dist/connector/mcp/streamable-http.test.js.map +1 -0
- 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 +37 -6
- package/dist/persona/assembler.js.map +1 -1
- package/dist/provider/collect.d.ts.map +1 -1
- package/dist/provider/collect.js +4 -1
- package/dist/provider/collect.js.map +1 -1
- package/dist/provider/collect.test.js +2 -2
- package/dist/public-runtime.d.ts +6 -5
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +6 -5
- 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 +27 -0
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +192 -7
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/execute.test.d.ts +9 -4
- package/dist/registry/tool/execute.test.d.ts.map +1 -1
- package/dist/registry/tool/execute.test.js +178 -7
- 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 +147 -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 +185 -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__/long-document-flow.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/long-document-flow.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/long-document-flow.test.js +154 -0
- package/dist/runtime/query/__tests__/long-document-flow.test.js.map +1 -0
- package/dist/runtime/query/__tests__/prompt.test.js +51 -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 +9 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +42 -5
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +24 -0
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +326 -66
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/checkpoint.js +2 -2
- package/dist/runtime/query/iteration/phases/checkpoint.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts +8 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +84 -3
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +22 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js +53 -0
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/hitl-abort-race.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/hitl-abort-race.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/hitl-abort-race.test.js +73 -0
- package/dist/runtime/query/iteration/phases/hitl-abort-race.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/hitl-answer-question.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/hitl-answer-question.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/hitl-answer-question.test.js +120 -0
- package/dist/runtime/query/iteration/phases/hitl-answer-question.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/tool-review.d.ts +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +7 -2
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/phases/working-memory-compaction.test.d.ts +19 -0
- package/dist/runtime/query/iteration/phases/working-memory-compaction.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/working-memory-compaction.test.js +177 -0
- package/dist/runtime/query/iteration/phases/working-memory-compaction.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/working-memory.d.ts +31 -0
- package/dist/runtime/query/iteration/phases/working-memory.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/working-memory.js +81 -0
- package/dist/runtime/query/iteration/phases/working-memory.js.map +1 -0
- 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 +252 -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/streaming/coalesce.test.js.map +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 +70 -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 +33 -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 +73 -10
- 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 +35 -7
- 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__/approve-plan.test.d.ts +2 -0
- package/dist/tools/coordinator/__tests__/approve-plan.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/approve-plan.test.js +114 -0
- package/dist/tools/coordinator/__tests__/approve-plan.test.js.map +1 -0
- package/dist/tools/coordinator/__tests__/ask-user-question.test.d.ts +2 -0
- package/dist/tools/coordinator/__tests__/ask-user-question.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/ask-user-question.test.js +309 -0
- package/dist/tools/coordinator/__tests__/ask-user-question.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 +15 -0
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +305 -35
- 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/index.d.ts +1 -0
- package/dist/types/agent/index.d.ts.map +1 -1
- package/dist/types/agent/index.js +1 -0
- package/dist/types/agent/index.js.map +1 -1
- package/dist/types/agent/reactive.d.ts +38 -0
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +32 -0
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/agent/working-memory.d.ts +29 -0
- package/dist/types/agent/working-memory.d.ts.map +1 -0
- package/dist/types/agent/working-memory.js +2 -0
- package/dist/types/agent/working-memory.js.map +1 -0
- package/dist/types/common/index.d.ts +10 -0
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/index.js +18 -0
- package/dist/types/common/index.js.map +1 -1
- package/dist/types/common/usage-merge.test.d.ts +2 -0
- package/dist/types/common/usage-merge.test.d.ts.map +1 -0
- package/dist/types/common/usage-merge.test.js +48 -0
- package/dist/types/common/usage-merge.test.js.map +1 -0
- package/dist/types/connector/mcp.d.ts +9 -2
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/hitl/index.d.ts +42 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js +11 -0
- package/dist/types/hitl/index.js.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 +11 -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/dist/version.d.ts.map +1 -1
- package/dist/version.js +25 -4
- package/dist/version.js.map +1 -1
- 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 +7 -0
- package/src/agents/SupervisorAgent.ts +63 -16
- package/src/agents/__tests__/supervisor-ledger.test.ts +185 -0
- package/src/bridge/sse/mapper.test.ts +2 -2
- package/src/config/runtime.ts +9 -0
- package/src/connector/builtins/webhook.test.ts +21 -0
- package/src/connector/index.ts +1 -0
- package/src/connector/mcp/client.ts +4 -0
- package/src/connector/mcp/index.ts +1 -0
- package/src/connector/mcp/streamable-http.test.ts +169 -0
- package/src/connector/mcp/streamable-http.ts +152 -0
- 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 +43 -8
- package/src/provider/collect.test.ts +2 -2
- package/src/provider/collect.ts +4 -1
- package/src/public-runtime.ts +15 -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 +211 -7
- package/src/registry/tool/execute.ts +199 -11
- package/src/registry/toolset/catalog.test.ts +165 -0
- package/src/registry/toolset/catalog.ts +283 -0
- package/src/runtime/query/__tests__/deferred-tools.test.ts +230 -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__/long-document-flow.test.ts +180 -0
- package/src/runtime/query/__tests__/prompt.test.ts +55 -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 +58 -5
- package/src/runtime/query/iteration/index.ts +361 -74
- package/src/runtime/query/iteration/phases/checkpoint.ts +7 -2
- package/src/runtime/query/iteration/phases/compaction.ts +89 -3
- package/src/runtime/query/iteration/phases/context.ts +68 -0
- package/src/runtime/query/iteration/phases/hitl-abort-race.test.ts +86 -0
- package/src/runtime/query/iteration/phases/hitl-answer-question.test.ts +139 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +7 -3
- package/src/runtime/query/iteration/phases/working-memory-compaction.test.ts +215 -0
- package/src/runtime/query/iteration/phases/working-memory.ts +86 -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 +317 -0
- package/src/skills/loader.test.ts +89 -0
- package/src/skills/loader.ts +37 -6
- package/src/streaming/coalesce.test.ts +4 -4
- package/src/tools/builtins/__tests__/edit.test.ts +57 -0
- package/src/tools/builtins/__tests__/payload-budget.test.ts +92 -0
- package/src/tools/builtins/__tests__/read-file.test.ts +43 -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 +81 -10
- package/src/tools/builtins/search-tools.ts +42 -7
- 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__/approve-plan.test.ts +139 -0
- package/src/tools/coordinator/__tests__/ask-user-question.test.ts +370 -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 +355 -39
- package/src/types/agent/base.ts +8 -0
- package/src/types/agent/index.ts +1 -0
- package/src/types/agent/reactive.ts +42 -0
- package/src/types/agent/supervisor.ts +36 -0
- package/src/types/agent/working-memory.ts +29 -0
- package/src/types/common/index.ts +19 -0
- package/src/types/common/usage-merge.test.ts +53 -0
- package/src/types/connector/mcp.ts +14 -2
- package/src/types/hitl/index.ts +52 -1
- package/src/types/message/index.ts +32 -2
- package/src/types/provider/chat.ts +12 -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/src/version.ts +26 -4
|
@@ -7,13 +7,18 @@ import { type ProbeRegistry, probe as defaultProbeRegistry } from '../../probe/r
|
|
|
7
7
|
import type { ActivityStore } from '../../store/activity/memory.js'
|
|
8
8
|
import type { RunId } from '../../types/ids/index.js'
|
|
9
9
|
import type { InvocationState } from '../../types/invocation/index.js'
|
|
10
|
-
import { type Message, createToolMessage } from '../../types/message/index.js'
|
|
10
|
+
import { type Message, type ToolCall, createToolMessage } from '../../types/message/index.js'
|
|
11
11
|
import type { PermissionMode } from '../../types/permission/index.js'
|
|
12
12
|
import type { PluginHookResult } from '../../types/plugin/index.js'
|
|
13
13
|
import type { ChatCompletionResponse } from '../../types/provider/index.js'
|
|
14
14
|
import type { RunEvent } from '../../types/run/index.js'
|
|
15
15
|
import type { Sandbox } from '../../types/sandbox/index.js'
|
|
16
|
-
import type {
|
|
16
|
+
import type {
|
|
17
|
+
FileReadTracker,
|
|
18
|
+
ToolContext,
|
|
19
|
+
ToolRegistryContract,
|
|
20
|
+
ToolResult,
|
|
21
|
+
} from '../../types/tool/index.js'
|
|
17
22
|
import type { Logger } from '../../utils/logger.js'
|
|
18
23
|
import { compressShellOutput } from '../../utils/shell-compress.js'
|
|
19
24
|
|
|
@@ -26,6 +31,7 @@ export interface ToolExecutorConfig {
|
|
|
26
31
|
permissionMode: PermissionMode
|
|
27
32
|
env: Record<string, string>
|
|
28
33
|
abortSignal: AbortSignal
|
|
34
|
+
allowedTools?: readonly string[]
|
|
29
35
|
sandbox?: Sandbox
|
|
30
36
|
invocationState?: InvocationState
|
|
31
37
|
pluginManager?: PluginLifecycleManager
|
|
@@ -48,6 +54,13 @@ export class ToolExecutor {
|
|
|
48
54
|
private log: Logger
|
|
49
55
|
private workingStateManager?: WorkingStateManager
|
|
50
56
|
private probes: ProbeRegistry
|
|
57
|
+
private readonly readPaths: Set<string> = new Set()
|
|
58
|
+
private readonly fileReadTracker: FileReadTracker = {
|
|
59
|
+
recordRead: (key: string) => {
|
|
60
|
+
this.readPaths.add(key)
|
|
61
|
+
},
|
|
62
|
+
hasRead: (key: string) => this.readPaths.has(key),
|
|
63
|
+
}
|
|
51
64
|
|
|
52
65
|
constructor(
|
|
53
66
|
config: ToolExecutorConfig,
|
|
@@ -83,11 +96,38 @@ export class ToolExecutor {
|
|
|
83
96
|
tools: toolCalls.map((tc) => tc.function.name),
|
|
84
97
|
})
|
|
85
98
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
99
|
+
// One context per call so each execution can see its own
|
|
100
|
+
// `toolUseId`. The base context is built once; we spread + add
|
|
101
|
+
// per-call to keep allocations cheap.
|
|
102
|
+
const baseContext = this.buildToolContext()
|
|
103
|
+
|
|
104
|
+
// Respect each tool's `concurrencySafe` flag. Read-only tools
|
|
105
|
+
// (ls/grep/glob/…) run in parallel; tools that mutate shared state
|
|
106
|
+
// (edit/write/append/bash — `concurrencySafe: false`) are serialized in
|
|
107
|
+
// a single chain, so e.g. several `edit` calls to the SAME file in one
|
|
108
|
+
// turn apply one-after-another instead of racing read→modify→write
|
|
109
|
+
// (which let the last writer clobber the rest). Results are written by
|
|
110
|
+
// index to preserve the original tool-call order.
|
|
111
|
+
const results: Array<{ toolCallId: string; output: string }> = new Array(toolCalls.length)
|
|
112
|
+
const parallel: Promise<void>[] = []
|
|
113
|
+
let serial: Promise<void> = Promise.resolve()
|
|
114
|
+
toolCalls.forEach((toolCall, i) => {
|
|
115
|
+
const ctx = { ...baseContext, toolUseId: toolCall.id }
|
|
116
|
+
const run = async () => {
|
|
117
|
+
results[i] = await this.executeSingle(toolCall, ctx)
|
|
118
|
+
}
|
|
119
|
+
let input: unknown = {}
|
|
120
|
+
try {
|
|
121
|
+
input = JSON.parse(toolCall.function.arguments || '{}')
|
|
122
|
+
} catch {
|
|
123
|
+
// non-JSON args → treat as unsafe (serialize), the conservative path
|
|
124
|
+
}
|
|
125
|
+
const safe =
|
|
126
|
+
this.config.tools.get(toolCall.function.name)?.isConcurrencySafe?.(input) === true
|
|
127
|
+
if (safe) parallel.push(run())
|
|
128
|
+
else serial = serial.then(run)
|
|
129
|
+
})
|
|
130
|
+
await Promise.all([...parallel, serial])
|
|
91
131
|
|
|
92
132
|
const messages: Message[] = results.map((r) => createToolMessage(r.output, r.toolCallId))
|
|
93
133
|
|
|
@@ -108,19 +148,38 @@ export class ToolExecutor {
|
|
|
108
148
|
},
|
|
109
149
|
invocationState: this.config.invocationState,
|
|
110
150
|
toolRegistry: this.config.tools,
|
|
151
|
+
allowedTools: this.config.allowedTools,
|
|
111
152
|
sandbox: this.config.sandbox,
|
|
153
|
+
fileReadTracker: this.fileReadTracker,
|
|
112
154
|
}
|
|
113
155
|
}
|
|
114
156
|
|
|
115
157
|
private async executeSingle(
|
|
116
|
-
toolCall:
|
|
117
|
-
id: string
|
|
118
|
-
type: string
|
|
119
|
-
function: { name: string; arguments: string }
|
|
120
|
-
},
|
|
158
|
+
toolCall: ToolCall,
|
|
121
159
|
toolContext: ToolContext,
|
|
122
160
|
): Promise<{ toolCallId: string; output: string }> {
|
|
123
161
|
const toolName = toolCall.function.name
|
|
162
|
+
|
|
163
|
+
if (toolCall.metadata?.inputTruncated === true) {
|
|
164
|
+
const message = truncatedToolInputMessage(toolName)
|
|
165
|
+
await this.emitEvent({
|
|
166
|
+
type: 'tool_executing',
|
|
167
|
+
runId: this.config.runId,
|
|
168
|
+
toolUseId: toolCall.id,
|
|
169
|
+
toolName,
|
|
170
|
+
input: {},
|
|
171
|
+
})
|
|
172
|
+
await this.emitEvent({
|
|
173
|
+
type: 'tool_completed',
|
|
174
|
+
runId: this.config.runId,
|
|
175
|
+
toolUseId: toolCall.id,
|
|
176
|
+
toolName,
|
|
177
|
+
result: message,
|
|
178
|
+
isError: true,
|
|
179
|
+
})
|
|
180
|
+
return { toolCallId: toolCall.id, output: message }
|
|
181
|
+
}
|
|
182
|
+
|
|
124
183
|
let input: unknown
|
|
125
184
|
|
|
126
185
|
try {
|
|
@@ -238,7 +297,7 @@ export class ToolExecutor {
|
|
|
238
297
|
|
|
239
298
|
const rawOutput = result.success
|
|
240
299
|
? result.output
|
|
241
|
-
:
|
|
300
|
+
: formatFailedToolOutput(result.output, result.error)
|
|
242
301
|
|
|
243
302
|
let output = result.success ? this.maybeCompress(toolName, rawOutput) : rawOutput
|
|
244
303
|
|
|
@@ -430,3 +489,13 @@ export class ToolExecutor {
|
|
|
430
489
|
return compressed
|
|
431
490
|
}
|
|
432
491
|
}
|
|
492
|
+
|
|
493
|
+
function formatFailedToolOutput(output: string | undefined, error: string | undefined): string {
|
|
494
|
+
const errorText = `Error: ${error ?? 'Tool execution failed'}`
|
|
495
|
+
if (!output || output.trim().length === 0) return errorText
|
|
496
|
+
return `${output}\n\n${errorText}`
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
function truncatedToolInputMessage(toolName: string): string {
|
|
500
|
+
return `Error: Tool "${toolName}" call was cut off while the model was streaming JSON arguments. The tool was NOT executed. Retry with a much shorter input. Self-budget any content/newStr payload under 12000 characters before calling file tools. For long files, create a short opening with write, then extend it with edit using insertLine: "end" in bounded section chunks; for delegated work, pass a shared workspace filename/reference instead of embedding the content in the tool call.`
|
|
501
|
+
}
|
|
@@ -16,6 +16,7 @@ import { buildTaskTools } from '../../tools/task/index.js'
|
|
|
16
16
|
import type { AdvisoryConfig } from '../../types/advisory/index.js'
|
|
17
17
|
import type { AgentRuntimeContext, RuntimeToolOverrides } from '../../types/agent/base.js'
|
|
18
18
|
import type { AgentContextLevel } from '../../types/agent/factory.js'
|
|
19
|
+
import type { WorkingMemoryProvider } from '../../types/agent/working-memory.js'
|
|
19
20
|
import {
|
|
20
21
|
type CheckpointId,
|
|
21
22
|
type ResumeHandler,
|
|
@@ -42,6 +43,8 @@ import { RunContextFactory } from './context.js'
|
|
|
42
43
|
import { EventTranslator } from './events.js'
|
|
43
44
|
import { GuardCoordinator } from './guard.js'
|
|
44
45
|
import { IterationOrchestrator } from './iteration/index.js'
|
|
46
|
+
import { isCompactionMessage } from './iteration/phases/compaction.js'
|
|
47
|
+
import { isWorkingMemoryMessage } from './iteration/phases/working-memory.js'
|
|
45
48
|
import { applyLifecycleHookResults } from './plugin-hooks.js'
|
|
46
49
|
import { PromptBuilder } from './prompt.js'
|
|
47
50
|
import type { PromptSegments } from './prompt.js'
|
|
@@ -127,6 +130,15 @@ export interface QueryParams {
|
|
|
127
130
|
|
|
128
131
|
compactionConfig?: CompactionConfig
|
|
129
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Optional neutral working-memory seam. When set, the iteration loop
|
|
135
|
+
* re-renders the provider's string into a single pinned leading system
|
|
136
|
+
* message every turn (the primacy-edge, compaction-preserved slot).
|
|
137
|
+
* Absent ⇒ `refreshWorkingMemory` early-returns and the run path is
|
|
138
|
+
* byte-identical.
|
|
139
|
+
*/
|
|
140
|
+
workingMemoryProvider?: WorkingMemoryProvider
|
|
141
|
+
|
|
130
142
|
agentBus?: import('../../bus/index.js').AgentBus
|
|
131
143
|
|
|
132
144
|
verificationGate?: VerificationGateConfig
|
|
@@ -187,7 +199,15 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
187
199
|
})
|
|
188
200
|
|
|
189
201
|
if (decision.action === 'approve_plan') {
|
|
190
|
-
|
|
202
|
+
// Optional approve-with-edits channel: the host may attach
|
|
203
|
+
// feedback to an approval. `PlanApprovalResponse.feedback`
|
|
204
|
+
// already exists on the type; threading it through lets the
|
|
205
|
+
// coordinator's approve_plan tool surface the user's edits in
|
|
206
|
+
// the same tool_result that unblocks the park. Bare approvals
|
|
207
|
+
// stay byte-identical (`{ approved: true }`).
|
|
208
|
+
return decision.feedback
|
|
209
|
+
? { approved: true, feedback: decision.feedback }
|
|
210
|
+
: { approved: true }
|
|
191
211
|
}
|
|
192
212
|
if (decision.action === 'reject_plan') {
|
|
193
213
|
return { approved: false, feedback: decision.feedback }
|
|
@@ -224,6 +244,8 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
224
244
|
}
|
|
225
245
|
}
|
|
226
246
|
|
|
247
|
+
const effectiveAllowedTools = withDeferredDiscoveryTool(params.tools, params.allowedTools)
|
|
248
|
+
|
|
227
249
|
const toolExecutor = ToolingBootstrap.init(
|
|
228
250
|
{
|
|
229
251
|
tools: params.tools,
|
|
@@ -232,6 +254,7 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
232
254
|
permissionMode: ctx.permissionMode,
|
|
233
255
|
env: params.runConfig.env ?? {},
|
|
234
256
|
abortSignal: ctx.abortController.signal,
|
|
257
|
+
allowedTools: effectiveAllowedTools,
|
|
235
258
|
invocationState: params.invocationState,
|
|
236
259
|
pluginManager: params.pluginManager,
|
|
237
260
|
},
|
|
@@ -252,7 +275,7 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
252
275
|
skills: params.skills,
|
|
253
276
|
basePrompt: params.basePrompt,
|
|
254
277
|
tools: params.tools,
|
|
255
|
-
allowedTools:
|
|
278
|
+
allowedTools: effectiveAllowedTools,
|
|
256
279
|
runtimeContext: params.runtimeContext,
|
|
257
280
|
})
|
|
258
281
|
|
|
@@ -312,13 +335,14 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
312
335
|
provider: params.provider,
|
|
313
336
|
runConfig: params.runConfig,
|
|
314
337
|
tools: params.tools,
|
|
315
|
-
allowedTools:
|
|
338
|
+
allowedTools: effectiveAllowedTools,
|
|
316
339
|
taskGateway: params.taskGateway,
|
|
317
340
|
taskStore: params.taskStore,
|
|
318
341
|
launchedTasks: params.launchedTasks,
|
|
319
342
|
advisoryCtx,
|
|
320
343
|
compactionConfig: params.compactionConfig,
|
|
321
344
|
workingStateManager,
|
|
345
|
+
workingMemoryProvider: params.workingMemoryProvider,
|
|
322
346
|
agentBus: params.agentBus,
|
|
323
347
|
verificationGate: verificationGate,
|
|
324
348
|
pluginManager: params.pluginManager,
|
|
@@ -370,7 +394,7 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
370
394
|
skills: params.skills,
|
|
371
395
|
basePrompt: contextLevel === 'full' ? params.basePrompt : undefined,
|
|
372
396
|
tools: params.tools,
|
|
373
|
-
allowedTools:
|
|
397
|
+
allowedTools: effectiveAllowedTools,
|
|
374
398
|
runtimeContext: params.runtimeContext,
|
|
375
399
|
}
|
|
376
400
|
|
|
@@ -405,7 +429,18 @@ export async function* query(params: QueryParams): AsyncGenerator<RunEvent, Run>
|
|
|
405
429
|
|
|
406
430
|
pushSystemMessages()
|
|
407
431
|
for (const msg of checkpoint.messages) {
|
|
408
|
-
if (msg.role === 'system')
|
|
432
|
+
if (msg.role === 'system') {
|
|
433
|
+
// Re-push the FRESH static/dynamic floor (done above) but PRESERVE
|
|
434
|
+
// the two system messages that carry irreplaceable run state: the
|
|
435
|
+
// `[COMPACTED CONTEXT]` summary is the only surviving record of the
|
|
436
|
+
// older history a compaction pass deleted, and the working-memory
|
|
437
|
+
// slot pins the produced-artifact ledger. Dropping every system
|
|
438
|
+
// message on restore silently lost both on resume.
|
|
439
|
+
if (isCompactionMessage(msg.content) || isWorkingMemoryMessage(msg.content)) {
|
|
440
|
+
ctx.runMgr.pushMessage(msg)
|
|
441
|
+
}
|
|
442
|
+
continue
|
|
443
|
+
}
|
|
409
444
|
ctx.runMgr.pushMessage(msg)
|
|
410
445
|
}
|
|
411
446
|
} else if (params.continuationMode) {
|
|
@@ -536,3 +571,21 @@ export async function drainQuery(
|
|
|
536
571
|
|
|
537
572
|
return result.value
|
|
538
573
|
}
|
|
574
|
+
|
|
575
|
+
function withDeferredDiscoveryTool(
|
|
576
|
+
tools: ToolRegistryContract,
|
|
577
|
+
allowedTools?: string[],
|
|
578
|
+
): string[] | undefined {
|
|
579
|
+
if (!allowedTools) return undefined
|
|
580
|
+
if (allowedTools.includes(SearchToolsTool.name)) return allowedTools
|
|
581
|
+
|
|
582
|
+
const allowedHasDeferred = allowedTools.some(
|
|
583
|
+
(name) => tools.has(name) && tools.getAvailability(name) === 'deferred',
|
|
584
|
+
)
|
|
585
|
+
if (!allowedHasDeferred) return allowedTools
|
|
586
|
+
|
|
587
|
+
if (!tools.has(SearchToolsTool.name)) return allowedTools
|
|
588
|
+
if (tools.getAvailability(SearchToolsTool.name) !== 'active') return allowedTools
|
|
589
|
+
|
|
590
|
+
return [...allowedTools, SearchToolsTool.name]
|
|
591
|
+
}
|