@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAGvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AAMjF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAGvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AAMjF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EAEd,eAAe,EACf,mBAAmB,EAEnB,WAAW,EACX,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,EAGb,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EAEd,eAAe,EACf,mBAAmB,EAEnB,WAAW,EACX,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,EAGb,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAa3D,qBAAa,SAAS;IACrB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAA;IACxB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,UAAU,CAAC,CAAoC;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,eAAe,CAMpB;IACH,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,oBAAoB,CACzB;IACH,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAO7B,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA6CvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,cAAc;IAYpB,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAMzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAS9E,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAMvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQrD,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAQ7D,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIzF,OAAO,CAAC,eAAe;YAcT,OAAO;YAkBP,MAAM;IASpB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,gBAAgB;CAOxB"}
|
|
@@ -3,6 +3,7 @@ import { generateMCPClientId } from '../../utils/id.js';
|
|
|
3
3
|
import { getRootLogger } from '../../utils/logger.js';
|
|
4
4
|
import { HttpSseTransport } from './http-sse.js';
|
|
5
5
|
import { StdioTransport } from './stdio.js';
|
|
6
|
+
import { StreamableHttpTransport } from './streamable-http.js';
|
|
6
7
|
import { MCP_PROTOCOL_VERSION } from '../../constants/mcp/index.js';
|
|
7
8
|
import { VERSION } from '../../version.js';
|
|
8
9
|
const NAMZU_CLIENT_INFO = { name: 'namzu-sdk', version: VERSION };
|
|
@@ -125,6 +126,9 @@ export class MCPClient {
|
|
|
125
126
|
return new StdioTransport(config);
|
|
126
127
|
case 'http-sse':
|
|
127
128
|
return new HttpSseTransport(config);
|
|
129
|
+
case 'streamable_http':
|
|
130
|
+
case 'streamable-http':
|
|
131
|
+
return new StreamableHttpTransport(config);
|
|
128
132
|
default:
|
|
129
133
|
throw new Error(`Unsupported MCP transport type: ${config.type}`);
|
|
130
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAe,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { StdioTransport } from './stdio.js';
|
|
2
2
|
export { HttpSseTransport } from './http-sse.js';
|
|
3
|
+
export { StreamableHttpTransport } from './streamable-http.js';
|
|
3
4
|
export { MCPClient } from './client.js';
|
|
4
5
|
export { mcpToolToToolDefinition, toolDefinitionToMCPTool, mcpJsonSchemaToZod, zodToMCPJsonSchema, mcpToolResultToToolResult, toolResultToMCPToolResult, } from './adapter.js';
|
|
5
6
|
export { MCPToolDiscovery } from './discovery.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,YAAY,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { StdioTransport } from './stdio.js';
|
|
2
2
|
export { HttpSseTransport } from './http-sse.js';
|
|
3
|
+
export { StreamableHttpTransport } from './streamable-http.js';
|
|
3
4
|
export { MCPClient } from './client.js';
|
|
4
5
|
export { mcpToolToToolDefinition, toolDefinitionToMCPTool, mcpJsonSchemaToZod, zodToMCPJsonSchema, mcpToolResultToToolResult, toolResultToMCPToolResult, } from './adapter.js';
|
|
5
6
|
export { MCPToolDiscovery } from './discovery.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MCPJsonRpcMessage, MCPStreamableHttpTransportConfig, MCPTransport } from '../../types/connector/index.js';
|
|
2
|
+
export declare class StreamableHttpTransport implements MCPTransport {
|
|
3
|
+
private readonly config;
|
|
4
|
+
private messageHandlers;
|
|
5
|
+
private closeHandlers;
|
|
6
|
+
private errorHandlers;
|
|
7
|
+
private connected;
|
|
8
|
+
private sessionId;
|
|
9
|
+
private log;
|
|
10
|
+
constructor(config: MCPStreamableHttpTransportConfig);
|
|
11
|
+
connect(): Promise<void>;
|
|
12
|
+
close(): Promise<void>;
|
|
13
|
+
send(message: MCPJsonRpcMessage): Promise<void>;
|
|
14
|
+
onMessage(handler: (message: MCPJsonRpcMessage) => void): void;
|
|
15
|
+
onClose(handler: () => void): void;
|
|
16
|
+
onError(handler: (error: Error) => void): void;
|
|
17
|
+
isConnected(): boolean;
|
|
18
|
+
private buildHeaders;
|
|
19
|
+
private captureSessionId;
|
|
20
|
+
private dispatchResponseMessages;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=streamable-http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,gCAAgC,EAChC,YAAY,EACZ,MAAM,gCAAgC,CAAA;AAKvC,qBAAa,uBAAwB,YAAW,YAAY;IAQ/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPnC,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,GAAG,CAAQ;gBAEU,MAAM,EAAE,gCAAgC;IAI/D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCrD,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAI9D,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI9C,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;YAQV,wBAAwB;CAatC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { getRootLogger } from '../../utils/logger.js';
|
|
2
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
3
|
+
export class StreamableHttpTransport {
|
|
4
|
+
config;
|
|
5
|
+
messageHandlers = [];
|
|
6
|
+
closeHandlers = [];
|
|
7
|
+
errorHandlers = [];
|
|
8
|
+
connected = false;
|
|
9
|
+
sessionId = null;
|
|
10
|
+
log;
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.log = getRootLogger().child({ component: 'StreamableHttpTransport' });
|
|
14
|
+
}
|
|
15
|
+
async connect() {
|
|
16
|
+
if (this.connected)
|
|
17
|
+
return;
|
|
18
|
+
this.connected = true;
|
|
19
|
+
this.log.info(`StreamableHttpTransport connected to ${this.config.url}`);
|
|
20
|
+
}
|
|
21
|
+
async close() {
|
|
22
|
+
if (!this.connected)
|
|
23
|
+
return;
|
|
24
|
+
this.connected = false;
|
|
25
|
+
for (const handler of this.closeHandlers)
|
|
26
|
+
handler();
|
|
27
|
+
}
|
|
28
|
+
async send(message) {
|
|
29
|
+
if (!this.connected) {
|
|
30
|
+
throw new Error('StreamableHttpTransport: not connected');
|
|
31
|
+
}
|
|
32
|
+
const controller = new AbortController();
|
|
33
|
+
const timeout = setTimeout(() => controller.abort(), this.config.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
34
|
+
try {
|
|
35
|
+
const response = await fetch(this.config.url, {
|
|
36
|
+
method: 'POST',
|
|
37
|
+
headers: this.buildHeaders(),
|
|
38
|
+
body: JSON.stringify(message),
|
|
39
|
+
signal: controller.signal,
|
|
40
|
+
});
|
|
41
|
+
this.captureSessionId(response);
|
|
42
|
+
if (!response.ok) {
|
|
43
|
+
throw new Error(`StreamableHttpTransport: HTTP ${response.status}: ${response.statusText}`);
|
|
44
|
+
}
|
|
45
|
+
await this.dispatchResponseMessages(response);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
49
|
+
for (const handler of this.errorHandlers)
|
|
50
|
+
handler(error);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
clearTimeout(timeout);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
onMessage(handler) {
|
|
58
|
+
this.messageHandlers.push(handler);
|
|
59
|
+
}
|
|
60
|
+
onClose(handler) {
|
|
61
|
+
this.closeHandlers.push(handler);
|
|
62
|
+
}
|
|
63
|
+
onError(handler) {
|
|
64
|
+
this.errorHandlers.push(handler);
|
|
65
|
+
}
|
|
66
|
+
isConnected() {
|
|
67
|
+
return this.connected;
|
|
68
|
+
}
|
|
69
|
+
buildHeaders() {
|
|
70
|
+
const headers = {
|
|
71
|
+
'Content-Type': 'application/json',
|
|
72
|
+
Accept: 'application/json, text/event-stream',
|
|
73
|
+
...this.config.headers,
|
|
74
|
+
};
|
|
75
|
+
if (this.sessionId) {
|
|
76
|
+
headers['Mcp-Session-Id'] = this.sessionId;
|
|
77
|
+
}
|
|
78
|
+
return headers;
|
|
79
|
+
}
|
|
80
|
+
captureSessionId(response) {
|
|
81
|
+
const sessionId = response.headers.get('mcp-session-id') ?? response.headers.get('Mcp-Session-Id');
|
|
82
|
+
if (sessionId && sessionId.length > 0) {
|
|
83
|
+
this.sessionId = sessionId;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async dispatchResponseMessages(response) {
|
|
87
|
+
const text = await response.text();
|
|
88
|
+
if (text.trim().length === 0)
|
|
89
|
+
return;
|
|
90
|
+
const contentType = response.headers.get('content-type') ?? '';
|
|
91
|
+
const messages = contentType.includes('text/event-stream')
|
|
92
|
+
? parseSseMessages(text)
|
|
93
|
+
: parseJsonMessages(text);
|
|
94
|
+
for (const message of messages) {
|
|
95
|
+
for (const handler of this.messageHandlers)
|
|
96
|
+
handler(message);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function parseJsonMessages(raw) {
|
|
101
|
+
const parsed = JSON.parse(raw);
|
|
102
|
+
return Array.isArray(parsed) ? parsed : [parsed];
|
|
103
|
+
}
|
|
104
|
+
function parseSseMessages(raw) {
|
|
105
|
+
const normalized = raw.replace(/\r\n/g, '\n');
|
|
106
|
+
const events = normalized.split(/\n\n+/);
|
|
107
|
+
const messages = [];
|
|
108
|
+
for (const event of events) {
|
|
109
|
+
const dataLines = event
|
|
110
|
+
.split('\n')
|
|
111
|
+
.filter((line) => line.startsWith('data:'))
|
|
112
|
+
.map((line) => line.slice('data:'.length).trimStart());
|
|
113
|
+
if (dataLines.length === 0)
|
|
114
|
+
continue;
|
|
115
|
+
const data = dataLines.join('\n').trim();
|
|
116
|
+
if (data.length === 0 || data === '[DONE]')
|
|
117
|
+
continue;
|
|
118
|
+
const parsed = JSON.parse(data);
|
|
119
|
+
if (Array.isArray(parsed)) {
|
|
120
|
+
messages.push(...parsed);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
messages.push(parsed);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return messages;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=streamable-http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamable-http.js","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamable-http.test.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { MCPClient } from './client.js';
|
|
3
|
+
afterEach(() => {
|
|
4
|
+
vi.unstubAllGlobals();
|
|
5
|
+
});
|
|
6
|
+
describe('Streamable HTTP MCP transport', () => {
|
|
7
|
+
it('connects through MCPClient, preserves session headers, and parses SSE responses', async () => {
|
|
8
|
+
const fetchMock = vi.fn();
|
|
9
|
+
fetchMock
|
|
10
|
+
.mockResolvedValueOnce(jsonResponse({
|
|
11
|
+
jsonrpc: '2.0',
|
|
12
|
+
id: 1,
|
|
13
|
+
result: {
|
|
14
|
+
protocolVersion: '2024-11-05',
|
|
15
|
+
capabilities: { tools: { listChanged: true } },
|
|
16
|
+
serverInfo: { name: 'github' },
|
|
17
|
+
},
|
|
18
|
+
}, { 'mcp-session-id': 'sid_123' }))
|
|
19
|
+
.mockResolvedValueOnce(new Response('', { status: 202 }))
|
|
20
|
+
.mockResolvedValueOnce(sseResponse([
|
|
21
|
+
{ jsonrpc: '2.0', method: 'notifications/progress', params: { pct: 50 } },
|
|
22
|
+
{
|
|
23
|
+
jsonrpc: '2.0',
|
|
24
|
+
id: 2,
|
|
25
|
+
result: {
|
|
26
|
+
tools: [
|
|
27
|
+
{
|
|
28
|
+
name: 'search_repositories',
|
|
29
|
+
description: 'Search repositories',
|
|
30
|
+
inputSchema: { type: 'object' },
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
]));
|
|
36
|
+
vi.stubGlobal('fetch', fetchMock);
|
|
37
|
+
const client = new MCPClient({
|
|
38
|
+
serverName: 'github',
|
|
39
|
+
transport: {
|
|
40
|
+
type: 'streamable_http',
|
|
41
|
+
url: 'https://mcp.example.test/mcp',
|
|
42
|
+
headers: { Authorization: 'Bearer token' },
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
const notifications = [];
|
|
46
|
+
client.onNotification((method) => notifications.push(method));
|
|
47
|
+
await client.connect();
|
|
48
|
+
const tools = await client.listTools();
|
|
49
|
+
expect(tools.map((tool) => tool.name)).toEqual(['search_repositories']);
|
|
50
|
+
expect(notifications).toEqual(['notifications/progress']);
|
|
51
|
+
expect(fetchMock).toHaveBeenCalledTimes(3);
|
|
52
|
+
const initialize = requestAt(fetchMock, 0);
|
|
53
|
+
expect(initialize.input).toBe('https://mcp.example.test/mcp');
|
|
54
|
+
expect(initialize.body.method).toBe('initialize');
|
|
55
|
+
expect(initialize.headers.Authorization).toBe('Bearer token');
|
|
56
|
+
expect(initialize.headers.Accept).toBe('application/json, text/event-stream');
|
|
57
|
+
const initialized = requestAt(fetchMock, 1);
|
|
58
|
+
expect(initialized.body.method).toBe('notifications/initialized');
|
|
59
|
+
expect(initialized.headers['Mcp-Session-Id']).toBe('sid_123');
|
|
60
|
+
const listTools = requestAt(fetchMock, 2);
|
|
61
|
+
expect(listTools.body.method).toBe('tools/list');
|
|
62
|
+
expect(listTools.headers['Mcp-Session-Id']).toBe('sid_123');
|
|
63
|
+
});
|
|
64
|
+
it('supports the streamable-http alias without non-standard hint headers', async () => {
|
|
65
|
+
const fetchMock = vi.fn();
|
|
66
|
+
fetchMock
|
|
67
|
+
.mockResolvedValueOnce(jsonResponse({
|
|
68
|
+
jsonrpc: '2.0',
|
|
69
|
+
id: 1,
|
|
70
|
+
result: {
|
|
71
|
+
protocolVersion: '2024-11-05',
|
|
72
|
+
capabilities: { tools: {} },
|
|
73
|
+
serverInfo: { name: 'linear' },
|
|
74
|
+
},
|
|
75
|
+
}, { 'Mcp-Session-Id': 'sid_alias' }))
|
|
76
|
+
.mockResolvedValueOnce(new Response(null, { status: 204 }))
|
|
77
|
+
.mockResolvedValueOnce(jsonResponse({
|
|
78
|
+
jsonrpc: '2.0',
|
|
79
|
+
id: 2,
|
|
80
|
+
result: { content: [{ type: 'text', text: 'ok' }] },
|
|
81
|
+
}));
|
|
82
|
+
vi.stubGlobal('fetch', fetchMock);
|
|
83
|
+
const client = new MCPClient({
|
|
84
|
+
serverName: 'linear',
|
|
85
|
+
transport: {
|
|
86
|
+
type: 'streamable-http',
|
|
87
|
+
url: 'https://mcp.example.test/linear',
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
await client.connect();
|
|
91
|
+
const result = await client.callTool('create_issue', { title: 'Bug' });
|
|
92
|
+
expect(result.content).toEqual([{ type: 'text', text: 'ok' }]);
|
|
93
|
+
const callTool = requestAt(fetchMock, 2);
|
|
94
|
+
expect(callTool.body.method).toBe('tools/call');
|
|
95
|
+
expect(callTool.headers).toEqual({
|
|
96
|
+
'Content-Type': 'application/json',
|
|
97
|
+
Accept: 'application/json, text/event-stream',
|
|
98
|
+
'Mcp-Session-Id': 'sid_alias',
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
function jsonResponse(body, headers) {
|
|
103
|
+
return new Response(JSON.stringify(body), {
|
|
104
|
+
status: 200,
|
|
105
|
+
headers: {
|
|
106
|
+
'content-type': 'application/json',
|
|
107
|
+
...headers,
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function sseResponse(messages) {
|
|
112
|
+
return new Response(messages.map((message) => `data: ${JSON.stringify(message)}\n\n`).join(''), {
|
|
113
|
+
status: 200,
|
|
114
|
+
headers: {
|
|
115
|
+
'content-type': 'text/event-stream',
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function requestAt(fetchMock, index) {
|
|
120
|
+
const call = fetchMock.mock.calls[index];
|
|
121
|
+
if (!call) {
|
|
122
|
+
throw new Error(`No fetch call at index ${index}`);
|
|
123
|
+
}
|
|
124
|
+
const [input, init] = call;
|
|
125
|
+
if (!init) {
|
|
126
|
+
throw new Error(`Fetch call at index ${index} had no init`);
|
|
127
|
+
}
|
|
128
|
+
const headers = init.headers;
|
|
129
|
+
const body = JSON.parse(String(init.body));
|
|
130
|
+
return { input, headers, body };
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=streamable-http.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamable-http.test.js","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/compaction/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/compaction/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,aAAoB,CAAA;AAE3C,eAAO,MAAM,UAAU,aAA6B,CAAA;AAEpD,eAAO,MAAM,WAAW,aAAoB,CAAA;AAE5C,eAAO,MAAM,YAAY,aAA4B,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;CAWlB,CAAA"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// Tool-name buckets used by the compaction extractor to classify
|
|
2
|
+
// captured tool results. Lowercase to match the canonical builtin
|
|
3
|
+
// tool names (Anthropic Claude emits `tool_use.name` lowercase, see
|
|
4
|
+
// ses_008-tool-name-case-fix). `edit` is grouped with `write`
|
|
5
|
+
// because both mutate file content.
|
|
6
|
+
export const READ_TOOLS = new Set(['read']);
|
|
7
|
+
export const EDIT_TOOLS = new Set(['write', 'edit']);
|
|
3
8
|
export const SHELL_TOOLS = new Set(['bash']);
|
|
4
|
-
export const SEARCH_TOOLS = new Set(['glob', '
|
|
9
|
+
export const SEARCH_TOOLS = new Set(['glob', 'grep']);
|
|
5
10
|
export const SECTION_HEADERS = {
|
|
6
11
|
task: '## Task',
|
|
7
12
|
userRequirements: '## User Requirements',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/compaction/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/compaction/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,kEAAkE;AAClE,oEAAoE;AACpE,8DAA8D;AAC9D,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,IAAI,EAAE,SAAS;IACf,gBAAgB,EAAE,sBAAsB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,gBAAgB;IAC7B,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,kBAAkB;IAC7B,cAAc,EAAE,oBAAoB;IACpC,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE,sBAAsB;IAChC,WAAW,EAAE,gBAAgB;CACpB,CAAA"}
|
|
@@ -15,4 +15,25 @@ export declare const SANDBOX_KILL_GRACE_MS = 3000;
|
|
|
15
15
|
* Everything else is stripped.
|
|
16
16
|
*/
|
|
17
17
|
export declare const SANDBOX_SAFE_ENV_KEYS: Set<string>;
|
|
18
|
+
/** Default container path for the user-visible outputs (RW) bind. */
|
|
19
|
+
export declare const SANDBOX_DEFAULT_OUTPUTS_PATH = "/mnt/user-data/outputs";
|
|
20
|
+
/** Default container path for user-uploaded files (RO). */
|
|
21
|
+
export declare const SANDBOX_DEFAULT_UPLOADS_PATH = "/mnt/user-data/uploads";
|
|
22
|
+
/**
|
|
23
|
+
* Default container path for the agent's working/scratch space (RW).
|
|
24
|
+
* Sibling mount to {@link SANDBOX_DEFAULT_OUTPUTS_PATH} — anything
|
|
25
|
+
* written here is invisible to the output collector by design,
|
|
26
|
+
* mirroring the Anthropic Cowork pattern (`/home/claude` scratch vs.
|
|
27
|
+
* `/mnt/user-data/outputs` user-visible).
|
|
28
|
+
*/
|
|
29
|
+
export declare const SANDBOX_DEFAULT_SCRATCH_PATH = "/mnt/user-data/scratch";
|
|
30
|
+
/** Default container path for cached tool fetches (RO). */
|
|
31
|
+
export declare const SANDBOX_DEFAULT_TOOL_RESULTS_PATH = "/mnt/user-data/tool_results";
|
|
32
|
+
/** Default container path for prior-conversation transcripts (RO). */
|
|
33
|
+
export declare const SANDBOX_DEFAULT_TRANSCRIPTS_PATH = "/mnt/transcripts";
|
|
34
|
+
/**
|
|
35
|
+
* Default parent path under which each skill bundle binds.
|
|
36
|
+
* Per-skill default is `${SANDBOX_DEFAULT_SKILLS_PARENT}/<skill-id>`.
|
|
37
|
+
*/
|
|
38
|
+
export declare const SANDBOX_DEFAULT_SKILLS_PARENT = "/mnt/skills";
|
|
18
39
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/sandbox/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD,uCAAuC;AACvC,eAAO,MAAM,+BAA+B,MAAM,CAAA;AAElD,wCAAwC;AACxC,eAAO,MAAM,6BAA6B,KAAK,CAAA;AAE/C,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,QAAmB,CAAA;AAExD,8CAA8C;AAC9C,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD,gDAAgD;AAChD,eAAO,MAAM,qBAAqB,OAAQ,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAQhC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/sandbox/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD,uCAAuC;AACvC,eAAO,MAAM,+BAA+B,MAAM,CAAA;AAElD,wCAAwC;AACxC,eAAO,MAAM,6BAA6B,KAAK,CAAA;AAE/C,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,QAAmB,CAAA;AAExD,8CAA8C;AAC9C,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD,gDAAgD;AAChD,eAAO,MAAM,qBAAqB,OAAQ,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAQhC,CAAA;AAYF,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,2BAA2B,CAAA;AAEpE,2DAA2D;AAC3D,eAAO,MAAM,4BAA4B,2BAA2B,CAAA;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,2BAA2B,CAAA;AAEpE,2DAA2D;AAC3D,eAAO,MAAM,iCAAiC,gCAAgC,CAAA;AAE9E,sEAAsE;AACtE,eAAO,MAAM,gCAAgC,qBAAqB,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,gBAAgB,CAAA"}
|
|
@@ -23,4 +23,34 @@ export const SANDBOX_SAFE_ENV_KEYS = new Set([
|
|
|
23
23
|
'LC_ALL',
|
|
24
24
|
'LC_CTYPE',
|
|
25
25
|
]);
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// ContainerSandboxLayout default container paths
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
//
|
|
30
|
+
// Mirrors the taxonomy Anthropic's container architecture exposes to
|
|
31
|
+
// the model (Claude container blueprint, Code Interpreter, "skills").
|
|
32
|
+
// Exported so prompt-template consumers can write
|
|
33
|
+
// `Outputs go to ${SANDBOX_DEFAULT_OUTPUTS_PATH}` instead of
|
|
34
|
+
// hard-coding the string in two places that drift.
|
|
35
|
+
/** Default container path for the user-visible outputs (RW) bind. */
|
|
36
|
+
export const SANDBOX_DEFAULT_OUTPUTS_PATH = '/mnt/user-data/outputs';
|
|
37
|
+
/** Default container path for user-uploaded files (RO). */
|
|
38
|
+
export const SANDBOX_DEFAULT_UPLOADS_PATH = '/mnt/user-data/uploads';
|
|
39
|
+
/**
|
|
40
|
+
* Default container path for the agent's working/scratch space (RW).
|
|
41
|
+
* Sibling mount to {@link SANDBOX_DEFAULT_OUTPUTS_PATH} — anything
|
|
42
|
+
* written here is invisible to the output collector by design,
|
|
43
|
+
* mirroring the Anthropic Cowork pattern (`/home/claude` scratch vs.
|
|
44
|
+
* `/mnt/user-data/outputs` user-visible).
|
|
45
|
+
*/
|
|
46
|
+
export const SANDBOX_DEFAULT_SCRATCH_PATH = '/mnt/user-data/scratch';
|
|
47
|
+
/** Default container path for cached tool fetches (RO). */
|
|
48
|
+
export const SANDBOX_DEFAULT_TOOL_RESULTS_PATH = '/mnt/user-data/tool_results';
|
|
49
|
+
/** Default container path for prior-conversation transcripts (RO). */
|
|
50
|
+
export const SANDBOX_DEFAULT_TRANSCRIPTS_PATH = '/mnt/transcripts';
|
|
51
|
+
/**
|
|
52
|
+
* Default parent path under which each skill bundle binds.
|
|
53
|
+
* Per-skill default is `${SANDBOX_DEFAULT_SKILLS_PARENT}/<skill-id>`.
|
|
54
|
+
*/
|
|
55
|
+
export const SANDBOX_DEFAULT_SKILLS_PARENT = '/mnt/skills';
|
|
26
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/sandbox/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD,uCAAuC;AACvC,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAA;AAElD,wCAAwC;AACxC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAA;AAE/C,sDAAsD;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAExD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAA;AAEnD,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC5C,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,UAAU;CACV,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/sandbox/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD,uCAAuC;AACvC,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAA;AAElD,wCAAwC;AACxC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAA;AAE/C,sDAAsD;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAExD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAA;AAEnD,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC5C,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,UAAU;CACV,CAAC,CAAA;AAEF,8EAA8E;AAC9E,iDAAiD;AACjD,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,kDAAkD;AAClD,6DAA6D;AAC7D,mDAAmD;AAEnD,qEAAqE;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAA;AAEpE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAA;AAEpE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAA;AAEpE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iCAAiC,GAAG,6BAA6B,CAAA;AAE9E,sEAAsE;AACtE,MAAM,CAAC,MAAM,gCAAgC,GAAG,kBAAkB,CAAA;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,UAiB9B,CAAA;AAED,eAAO,MAAM,gBAAgB,aAA6C,CAAA"}
|
|
@@ -1,3 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// Patterns the verification gate's `deny_dangerous_patterns` rule
|
|
2
|
+
// matches against the JSON-serialised tool input. The list is
|
|
3
|
+
// intentionally short and high-signal: the goal is to catch the
|
|
4
|
+
// canonical "I will brick the host" mistakes (filesystem wipes,
|
|
5
|
+
// disk reformat, fork bomb) plus the most common shell-side
|
|
6
|
+
// privilege/escape patterns (root sudo, world-writable chmod, the
|
|
7
|
+
// classic curl|bash / wget|bash exfil-then-exec pipe, raw eval).
|
|
8
|
+
//
|
|
9
|
+
// This is NOT a security boundary — Cursor learned the hard way
|
|
10
|
+
// that bash denylists are bypassed via shell tricks like `e""cho`
|
|
11
|
+
// (see Backslash Security 2025). Sandbox enforcement (FS isolation,
|
|
12
|
+
// network egress proxy) is the real boundary; these patterns only
|
|
13
|
+
// catch the most blatant attempts and turn them into an explicit
|
|
14
|
+
// review prompt instead of a silent execute.
|
|
15
|
+
export const DANGEROUS_PATTERNS = [
|
|
16
|
+
// Filesystem wipe / fork bomb / raw disk write.
|
|
17
|
+
/rm\s+-rf\s+\//,
|
|
18
|
+
/mkfs/,
|
|
19
|
+
/dd\s+if=/,
|
|
20
|
+
/:(){ :\|:& };:/,
|
|
21
|
+
// Privilege escalation + world-writable chmod on /.
|
|
22
|
+
/\bsudo\b/,
|
|
23
|
+
/\bsu\s+-/,
|
|
24
|
+
/chmod\s+(?:-R\s+)?777\s+\//,
|
|
25
|
+
// Pipe-to-shell from network — exfil-then-exec staging.
|
|
26
|
+
/\bcurl\b[^|]*\|\s*(?:sh|bash|zsh)\b/,
|
|
27
|
+
/\bwget\b[^|]*\|\s*(?:sh|bash|zsh)\b/,
|
|
28
|
+
// Remote shell / outbound SSH.
|
|
29
|
+
/\bssh\s+\S+@/,
|
|
30
|
+
// Raw eval of dynamic strings.
|
|
31
|
+
/\beval\s+["'`$]/,
|
|
32
|
+
];
|
|
33
|
+
export const FILESYSTEM_TOOLS = new Set(['glob', 'read', 'write', 'bash']);
|
|
3
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/tools/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,8DAA8D;AAC9D,gEAAgE;AAChE,gEAAgE;AAChE,4DAA4D;AAC5D,kEAAkE;AAClE,iEAAiE;AACjE,EAAE;AACF,gEAAgE;AAChE,kEAAkE;AAClE,oEAAoE;AACpE,kEAAkE;AAClE,iEAAiE;AACjE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,gDAAgD;IAChD,eAAe;IACf,MAAM;IACN,UAAU;IACV,gBAAgB;IAChB,oDAAoD;IACpD,UAAU;IACV,UAAU;IACV,4BAA4B;IAC5B,wDAAwD;IACxD,qCAAqC;IACrC,qCAAqC;IACrC,+BAA+B;IAC/B,cAAc;IACd,+BAA+B;IAC/B,iBAAiB;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAwB,MAAM,6BAA6B,CAAA;AAClG,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAKrE,qBAAa,cAAc;IAC1B,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAE1B,MAAM,EAAE,oBAAoB;IAgCxC,IAAI,EAAE,IAAI,KAAK,CAEd;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,MAAM,sDAET;IAED,IAAI,UAAU,2BAEb;IAED,IAAI,QAAQ,IAAI,OAAO,EAAE,CAExB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC;IAIvB,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC;IAI3B,WAAW,IAAI,YAAY;IAI3B,SAAS,IAAI,MAAM,GAAG,IAAI;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,WAAW,IAAI,IAAI;IAInB,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAS5C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/B,aAAa,IAAI,IAAI;IAMrB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAIvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,kBAAkB,IAAI,MAAM;IAK5B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQxC,OAAO,CAAC,aAAa;IAqCrB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAchD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc9B"}
|