@namzu/sdk 45.1.0 → 48.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +436 -8
- package/README.md +7 -8
- package/dist/advisory/history.d.ts.map +1 -1
- package/dist/advisory/history.js +21 -1
- package/dist/advisory/history.js.map +1 -1
- package/dist/advisory/index.d.ts +1 -1
- package/dist/advisory/index.d.ts.map +1 -1
- package/dist/advisory/index.js +1 -1
- package/dist/advisory/index.js.map +1 -1
- package/dist/advisory/registry.d.ts +17 -0
- package/dist/advisory/registry.d.ts.map +1 -1
- package/dist/advisory/registry.js +26 -0
- package/dist/advisory/registry.js.map +1 -1
- package/dist/agents/PipelineAgent.d.ts +2 -46
- package/dist/agents/PipelineAgent.d.ts.map +1 -1
- package/dist/agents/PipelineAgent.js +2 -242
- package/dist/agents/PipelineAgent.js.map +1 -1
- package/dist/agents/QueryAgent.d.ts +21 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -0
- package/dist/agents/QueryAgent.js +214 -0
- package/dist/agents/QueryAgent.js.map +1 -0
- package/dist/agents/ReactiveAgent.d.ts +4 -16
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +4 -183
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/RouterAgent.d.ts +2 -20
- package/dist/agents/RouterAgent.d.ts.map +1 -1
- package/dist/agents/RouterAgent.js +2 -266
- package/dist/agents/RouterAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +3 -43
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +3 -418
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/defineAgent.d.ts +2 -1
- package/dist/agents/defineAgent.d.ts.map +1 -1
- package/dist/agents/defineAgent.js +6 -1
- package/dist/agents/defineAgent.js.map +1 -1
- package/dist/agents/examples/PipelineAgent.d.ts +46 -0
- package/dist/agents/examples/PipelineAgent.d.ts.map +1 -0
- package/dist/agents/examples/PipelineAgent.js +242 -0
- package/dist/agents/examples/PipelineAgent.js.map +1 -0
- package/dist/agents/examples/RouterAgent.d.ts +22 -0
- package/dist/agents/examples/RouterAgent.d.ts.map +1 -0
- package/dist/agents/examples/RouterAgent.js +268 -0
- package/dist/agents/examples/RouterAgent.js.map +1 -0
- package/dist/agents/examples/SupervisorAgent.d.ts +45 -0
- package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -0
- package/dist/agents/examples/SupervisorAgent.js +406 -0
- package/dist/agents/examples/SupervisorAgent.js.map +1 -0
- package/dist/agents/explore.d.ts +6 -3
- package/dist/agents/explore.d.ts.map +1 -1
- package/dist/agents/explore.js +6 -3
- package/dist/agents/explore.js.map +1 -1
- package/dist/agents/forward-options.d.ts +11 -0
- package/dist/agents/forward-options.d.ts.map +1 -0
- package/dist/agents/forward-options.js +15 -0
- package/dist/agents/forward-options.js.map +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/runAgent.d.ts +19 -8
- package/dist/agents/runAgent.d.ts.map +1 -1
- package/dist/agents/runAgent.js +99 -29
- package/dist/agents/runAgent.js.map +1 -1
- package/dist/authorization/command-line.d.ts +2 -0
- package/dist/authorization/command-line.d.ts.map +1 -1
- package/dist/authorization/command-line.js +2 -2
- package/dist/authorization/command-line.js.map +1 -1
- package/dist/authorization/gate.d.ts +13 -2
- package/dist/authorization/gate.d.ts.map +1 -1
- package/dist/authorization/gate.js +37 -5
- package/dist/authorization/gate.js.map +1 -1
- package/dist/authorization/program.d.ts +151 -0
- package/dist/authorization/program.d.ts.map +1 -0
- package/dist/authorization/program.js +713 -0
- package/dist/authorization/program.js.map +1 -0
- package/dist/authorization/reexec-wrapper.d.ts +106 -0
- package/dist/authorization/reexec-wrapper.d.ts.map +1 -0
- package/dist/authorization/reexec-wrapper.js +532 -0
- package/dist/authorization/reexec-wrapper.js.map +1 -0
- package/dist/authorization/rules.d.ts +9 -0
- package/dist/authorization/rules.d.ts.map +1 -1
- package/dist/authorization/rules.js +27 -1
- package/dist/authorization/rules.js.map +1 -1
- package/dist/authorization/shell-lexer.d.ts +39 -0
- package/dist/authorization/shell-lexer.d.ts.map +1 -1
- package/dist/authorization/shell-lexer.js +113 -69
- package/dist/authorization/shell-lexer.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +6 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/capabilities/index.d.ts +54 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +92 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/config/registry.d.ts +2 -1
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +3 -2
- package/dist/config/registry.js.map +1 -1
- package/dist/connector/index.d.ts +4 -4
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +3 -3
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/mcp/adapter.d.ts +16 -1
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +60 -4
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/mcp/client.d.ts +13 -4
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +20 -3
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/discovery.d.ts +24 -1
- package/dist/connector/mcp/discovery.d.ts.map +1 -1
- package/dist/connector/mcp/discovery.js +44 -0
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +2 -0
- package/dist/connector/mcp/index.d.ts.map +1 -1
- package/dist/connector/mcp/index.js +11 -0
- package/dist/connector/mcp/index.js.map +1 -1
- package/dist/connector/mcp/mcp-toolset.d.ts +133 -0
- package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -0
- package/dist/connector/mcp/mcp-toolset.js +399 -0
- package/dist/connector/mcp/mcp-toolset.js.map +1 -0
- package/dist/connector/tools/index.d.ts +2 -2
- package/dist/connector/tools/index.d.ts.map +1 -1
- package/dist/connector/tools/index.js +1 -1
- package/dist/connector/tools/index.js.map +1 -1
- package/dist/connector/tools/router.d.ts +15 -13
- package/dist/connector/tools/router.d.ts.map +1 -1
- package/dist/connector/tools/router.js +30 -51
- package/dist/connector/tools/router.js.map +1 -1
- package/dist/contracts/a2a.d.ts +2 -2
- package/dist/directory/derive-supervisor.d.ts +2 -2
- package/dist/directory/derive-supervisor.d.ts.map +1 -1
- package/dist/directory/derive-supervisor.js +6 -7
- package/dist/directory/derive-supervisor.js.map +1 -1
- package/dist/directory/derive.d.ts.map +1 -1
- package/dist/directory/derive.js +5 -5
- package/dist/directory/derive.js.map +1 -1
- package/dist/execution/code-runtime/types.d.ts +2 -2
- package/dist/execution/code-runtime/types.js +1 -1
- package/dist/invariants/index.d.ts +2 -1
- package/dist/invariants/index.d.ts.map +1 -1
- package/dist/invariants/index.js +3 -2
- package/dist/invariants/index.js.map +1 -1
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +9 -0
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/connector/environment.d.ts +6 -0
- package/dist/manager/connector/environment.d.ts.map +1 -1
- package/dist/manager/connector/environment.js +11 -4
- package/dist/manager/connector/environment.js.map +1 -1
- package/dist/manager/connector/index.d.ts +2 -2
- package/dist/manager/connector/index.d.ts.map +1 -1
- package/dist/manager/connector/index.js +2 -2
- package/dist/manager/connector/index.js.map +1 -1
- package/dist/manager/connector/tenant.d.ts +6 -0
- package/dist/manager/connector/tenant.d.ts.map +1 -1
- package/dist/manager/connector/tenant.js +11 -4
- package/dist/manager/connector/tenant.js.map +1 -1
- package/dist/manager/index.d.ts +2 -2
- package/dist/manager/index.d.ts.map +1 -1
- package/dist/manager/index.js +2 -2
- package/dist/manager/index.js.map +1 -1
- package/dist/manager/resident/learning-observation.d.ts +4 -4
- package/dist/manager/resident/learning.d.ts +36 -36
- package/dist/manager/session/attribution.d.ts +22 -0
- package/dist/manager/session/attribution.d.ts.map +1 -0
- package/dist/manager/session/attribution.js +64 -0
- package/dist/manager/session/attribution.js.map +1 -0
- package/dist/manager/session/turn-recorder.d.ts +14 -0
- package/dist/manager/session/turn-recorder.d.ts.map +1 -1
- package/dist/manager/session/turn-recorder.js +208 -55
- package/dist/manager/session/turn-recorder.js.map +1 -1
- package/dist/peers/address.d.ts +36 -0
- package/dist/peers/address.d.ts.map +1 -0
- package/dist/peers/address.js +52 -0
- package/dist/peers/address.js.map +1 -0
- package/dist/peers/client.d.ts +47 -0
- package/dist/peers/client.d.ts.map +1 -0
- package/dist/peers/client.js +132 -0
- package/dist/peers/client.js.map +1 -0
- package/dist/peers/dir.d.ts +88 -0
- package/dist/peers/dir.d.ts.map +1 -0
- package/dist/peers/dir.js +139 -0
- package/dist/peers/dir.js.map +1 -0
- package/dist/peers/endpoint.d.ts +144 -0
- package/dist/peers/endpoint.d.ts.map +1 -0
- package/dist/peers/endpoint.js +420 -0
- package/dist/peers/endpoint.js.map +1 -0
- package/dist/peers/envelope.d.ts +42 -0
- package/dist/peers/envelope.d.ts.map +1 -0
- package/dist/peers/envelope.js +110 -0
- package/dist/peers/envelope.js.map +1 -0
- package/dist/peers/index.d.ts +30 -0
- package/dist/peers/index.d.ts.map +1 -0
- package/dist/peers/index.js +22 -0
- package/dist/peers/index.js.map +1 -0
- package/dist/peers/protocol.d.ts +645 -0
- package/dist/peers/protocol.d.ts.map +1 -0
- package/dist/peers/protocol.js +151 -0
- package/dist/peers/protocol.js.map +1 -0
- package/dist/peers/record.d.ts +71 -0
- package/dist/peers/record.d.ts.map +1 -0
- package/dist/peers/record.js +45 -0
- package/dist/peers/record.js.map +1 -0
- package/dist/peers/registry.d.ts +54 -0
- package/dist/peers/registry.d.ts.map +1 -0
- package/dist/peers/registry.js +213 -0
- package/dist/peers/registry.js.map +1 -0
- package/dist/plugin/define.d.ts +24 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/define.js +42 -0
- package/dist/plugin/define.js.map +1 -0
- package/dist/plugin/index.d.ts +2 -0
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +1 -0
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/lifecycle.d.ts +27 -3
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +242 -92
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/resolver.d.ts +2 -2
- package/dist/plugin/resolver.d.ts.map +1 -1
- package/dist/plugin/resolver.js.map +1 -1
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +17 -3
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/pricing/catalogue.generated.d.ts.map +1 -1
- package/dist/pricing/catalogue.generated.js +28 -4
- package/dist/pricing/catalogue.generated.js.map +1 -1
- package/dist/probe/errors.d.ts +2 -1
- package/dist/probe/errors.d.ts.map +1 -1
- package/dist/probe/errors.js +3 -2
- package/dist/probe/errors.js.map +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts +18 -7
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
- package/dist/prompt/coding-agent-doctrine.js +11 -6
- package/dist/prompt/coding-agent-doctrine.js.map +1 -1
- package/dist/prompt/contributions.d.ts +4 -1
- package/dist/prompt/contributions.d.ts.map +1 -1
- package/dist/prompt/contributions.js +7 -2
- package/dist/prompt/contributions.js.map +1 -1
- package/dist/prompt/index.d.ts +1 -1
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +1 -1
- package/dist/prompt/index.js.map +1 -1
- package/dist/provider/collect-chat-completion.d.ts +6 -1
- package/dist/provider/collect-chat-completion.d.ts.map +1 -1
- package/dist/provider/collect-chat-completion.js +88 -10
- package/dist/provider/collect-chat-completion.js.map +1 -1
- package/dist/provider/mock.d.ts.map +1 -1
- package/dist/provider/mock.js +23 -6
- package/dist/provider/mock.js.map +1 -1
- package/dist/provider/registry.d.ts +2 -1
- package/dist/provider/registry.d.ts.map +1 -1
- package/dist/provider/registry.js +3 -2
- package/dist/provider/registry.js.map +1 -1
- package/dist/provider/tool-call-framing.d.ts +164 -0
- package/dist/provider/tool-call-framing.d.ts.map +1 -0
- package/dist/provider/tool-call-framing.js +163 -0
- package/dist/provider/tool-call-framing.js.map +1 -0
- package/dist/public-runtime.d.ts +27 -14
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +49 -11
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +9 -6
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +13 -5
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +16 -5
- package/dist/public-types.d.ts.map +1 -1
- package/dist/read-model/registry.d.ts +2 -1
- package/dist/read-model/registry.d.ts.map +1 -1
- package/dist/read-model/registry.js +3 -2
- package/dist/read-model/registry.js.map +1 -1
- package/dist/registry/ManagedRegistry.d.ts +30 -0
- package/dist/registry/ManagedRegistry.d.ts.map +1 -1
- package/dist/registry/ManagedRegistry.js +45 -6
- package/dist/registry/ManagedRegistry.js.map +1 -1
- package/dist/registry/collision.d.ts +57 -0
- package/dist/registry/collision.d.ts.map +1 -0
- package/dist/registry/collision.js +41 -0
- package/dist/registry/collision.js.map +1 -0
- package/dist/registry/command/index.d.ts +5 -3
- package/dist/registry/command/index.d.ts.map +1 -1
- package/dist/registry/command/index.js +6 -4
- package/dist/registry/command/index.js.map +1 -1
- package/dist/registry/index.d.ts +3 -4
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +2 -2
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/plugin/index.d.ts.map +1 -1
- package/dist/registry/plugin/index.js +14 -1
- package/dist/registry/plugin/index.js.map +1 -1
- package/dist/registry/tool/callable.d.ts +22 -0
- package/dist/registry/tool/callable.d.ts.map +1 -0
- package/dist/registry/tool/callable.js +28 -0
- package/dist/registry/tool/callable.js.map +1 -0
- package/dist/registry/tool/execute.d.ts +14 -77
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +15 -720
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/portable.d.ts +25 -0
- package/dist/registry/tool/portable.d.ts.map +1 -1
- package/dist/registry/tool/portable.js +50 -0
- package/dist/registry/tool/portable.js.map +1 -1
- package/dist/registry/tool/presentation.d.ts +6 -5
- package/dist/registry/tool/presentation.d.ts.map +1 -1
- package/dist/registry/tool/presentation.js +3 -3
- package/dist/registry/tool/presentation.js.map +1 -1
- package/dist/runtime/bidi/session.d.ts +5 -4
- package/dist/runtime/bidi/session.d.ts.map +1 -1
- package/dist/runtime/bidi/session.js +18 -1
- package/dist/runtime/bidi/session.js.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts +82 -13
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +227 -17
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +37 -5
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +103 -14
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/file-evidence-replay.d.ts +1 -1
- package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -1
- package/dist/runtime/query/file-evidence-replay.js +8 -7
- package/dist/runtime/query/file-evidence-replay.js.map +1 -1
- package/dist/runtime/query/fork/prepare.d.ts +4 -1
- package/dist/runtime/query/fork/prepare.d.ts.map +1 -1
- package/dist/runtime/query/fork/prepare.js +4 -0
- package/dist/runtime/query/fork/prepare.js.map +1 -1
- package/dist/runtime/query/guardrail-presets.d.ts +4 -3
- package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
- package/dist/runtime/query/guardrail-presets.js +4 -3
- package/dist/runtime/query/guardrail-presets.js.map +1 -1
- package/dist/runtime/query/index.d.ts +23 -10
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +149 -70
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +8 -1
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +55 -2
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +342 -116
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/iteration/tool-input.d.ts +79 -0
- package/dist/runtime/query/iteration/tool-input.d.ts.map +1 -0
- package/dist/runtime/query/iteration/tool-input.js +291 -0
- package/dist/runtime/query/iteration/tool-input.js.map +1 -0
- package/dist/runtime/query/observation-context.d.ts +2 -2
- package/dist/runtime/query/observation-context.d.ts.map +1 -1
- package/dist/runtime/query/observation-context.js.map +1 -1
- package/dist/runtime/query/prelude-lease.d.ts +18 -0
- package/dist/runtime/query/prelude-lease.d.ts.map +1 -0
- package/dist/runtime/query/prelude-lease.js +121 -0
- package/dist/runtime/query/prelude-lease.js.map +1 -0
- package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
- package/dist/runtime/query/prepare-turn.js +386 -187
- package/dist/runtime/query/prepare-turn.js.map +1 -1
- package/dist/runtime/query/prompt-cache.d.ts +2 -2
- package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
- package/dist/runtime/query/prompt.d.ts +2 -2
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +1 -1
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/resume-session.d.ts.map +1 -1
- package/dist/runtime/query/resume-session.js +37 -2
- package/dist/runtime/query/resume-session.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +65 -3
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +143 -22
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +3 -2
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/runtime/query/turn-state.d.ts.map +1 -1
- package/dist/runtime/query/turn-state.js +5 -0
- package/dist/runtime/query/turn-state.js.map +1 -1
- package/dist/runtime/system-events.d.ts +112 -0
- package/dist/runtime/system-events.d.ts.map +1 -0
- package/dist/runtime/system-events.js +183 -0
- package/dist/runtime/system-events.js.map +1 -0
- package/dist/scheduler/delegating.d.ts +2 -1
- package/dist/scheduler/delegating.d.ts.map +1 -1
- package/dist/scheduler/delegating.js +3 -2
- package/dist/scheduler/delegating.js.map +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/registry.d.ts +18 -0
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +20 -0
- package/dist/skills/registry.js.map +1 -1
- package/dist/store/evidence/index-page.d.ts +2 -2
- package/dist/store/session-log/conformance.d.ts +1 -1
- package/dist/store/session-log/conformance.d.ts.map +1 -1
- package/dist/store/session-log/conformance.js +49 -8
- package/dist/store/session-log/conformance.js.map +1 -1
- package/dist/store/session-log/core.d.ts +8 -3
- package/dist/store/session-log/core.d.ts.map +1 -1
- package/dist/store/session-log/core.js +2 -1
- package/dist/store/session-log/core.js.map +1 -1
- package/dist/store/session-log/fold.d.ts +12 -0
- package/dist/store/session-log/fold.d.ts.map +1 -1
- package/dist/store/session-log/fold.js +57 -7
- package/dist/store/session-log/fold.js.map +1 -1
- package/dist/store/session-log/index.d.ts +2 -2
- package/dist/store/session-log/index.d.ts.map +1 -1
- package/dist/store/session-log/index.js +1 -1
- package/dist/store/session-log/index.js.map +1 -1
- package/dist/test-support/toolset.d.ts +19 -0
- package/dist/test-support/toolset.d.ts.map +1 -0
- package/dist/test-support/toolset.js +20 -0
- package/dist/test-support/toolset.js.map +1 -0
- package/dist/tools/builtins/bash.d.ts +29 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +19 -9
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/browser-url.d.ts +1 -1
- package/dist/tools/builtins/browser-url.js +1 -1
- package/dist/tools/builtins/browser.d.ts +6 -6
- package/dist/tools/builtins/computer-use-coordinates.d.ts +65 -0
- package/dist/tools/builtins/computer-use-coordinates.d.ts.map +1 -0
- package/dist/tools/builtins/computer-use-coordinates.js +123 -0
- package/dist/tools/builtins/computer-use-coordinates.js.map +1 -0
- package/dist/tools/builtins/computer-use-image.d.ts +77 -0
- package/dist/tools/builtins/computer-use-image.d.ts.map +1 -0
- package/dist/tools/builtins/computer-use-image.js +223 -0
- package/dist/tools/builtins/computer-use-image.js.map +1 -0
- package/dist/tools/builtins/computer-use.d.ts +519 -14
- package/dist/tools/builtins/computer-use.d.ts.map +1 -1
- package/dist/tools/builtins/computer-use.js +1196 -183
- package/dist/tools/builtins/computer-use.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +9 -1
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +2 -1
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +1 -1
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/json-string-hint.d.ts +15 -0
- package/dist/tools/builtins/json-string-hint.d.ts.map +1 -0
- package/dist/tools/builtins/json-string-hint.js +17 -0
- package/dist/tools/builtins/json-string-hint.js.map +1 -0
- package/dist/tools/builtins/search-tools.d.ts.map +1 -1
- package/dist/tools/builtins/search-tools.js +7 -15
- package/dist/tools/builtins/search-tools.js.map +1 -1
- package/dist/tools/builtins/skill.d.ts +74 -0
- package/dist/tools/builtins/skill.d.ts.map +1 -1
- package/dist/tools/builtins/skill.js +214 -174
- package/dist/tools/builtins/skill.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +11 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/command-shell.d.ts +10 -0
- package/dist/tools/command-shell.d.ts.map +1 -1
- package/dist/tools/command-shell.js +45 -1
- package/dist/tools/command-shell.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js +5 -0
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
- package/dist/tools/coordinator/ask-user-question.js +26 -13
- package/dist/tools/coordinator/ask-user-question.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +5 -0
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/question-options.d.ts +78 -0
- package/dist/tools/coordinator/question-options.d.ts.map +1 -0
- package/dist/tools/coordinator/question-options.js +153 -0
- package/dist/tools/coordinator/question-options.js.map +1 -0
- package/dist/tools/defineTool.d.ts +12 -0
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +24 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/memory/search.d.ts.map +1 -1
- package/dist/tools/memory/search.js +4 -1
- package/dist/tools/memory/search.js.map +1 -1
- package/dist/tools/memory/update.d.ts.map +1 -1
- package/dist/tools/memory/update.js +8 -5
- package/dist/tools/memory/update.js.map +1 -1
- package/dist/tools/render-nonce.d.ts +47 -0
- package/dist/tools/render-nonce.d.ts.map +1 -0
- package/dist/tools/render-nonce.js +63 -0
- package/dist/tools/render-nonce.js.map +1 -0
- package/dist/tools/roster.d.ts +46 -19
- package/dist/tools/roster.d.ts.map +1 -1
- package/dist/tools/roster.js +63 -33
- package/dist/tools/roster.js.map +1 -1
- package/dist/tools/schedules/present.d.ts.map +1 -1
- package/dist/tools/schedules/present.js +2 -0
- package/dist/tools/schedules/present.js.map +1 -1
- package/dist/tools/schedules/schedule-tool.d.ts +6 -5
- package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
- package/dist/tools/schedules/schedule-tool.js +208 -37
- package/dist/tools/schedules/schedule-tool.js.map +1 -1
- package/dist/tools/schedules/types.d.ts +120 -6
- package/dist/tools/schedules/types.d.ts.map +1 -1
- package/dist/tools/trusted-read-only.d.ts +9 -5
- package/dist/tools/trusted-read-only.d.ts.map +1 -1
- package/dist/tools/trusted-read-only.js +14 -10
- package/dist/tools/trusted-read-only.js.map +1 -1
- package/dist/tools/untrusted-envelope.d.ts +67 -28
- package/dist/tools/untrusted-envelope.d.ts.map +1 -1
- package/dist/tools/untrusted-envelope.js +108 -59
- package/dist/tools/untrusted-envelope.js.map +1 -1
- package/dist/toolsets/combine.d.ts +44 -0
- package/dist/toolsets/combine.d.ts.map +1 -0
- package/dist/toolsets/combine.js +153 -0
- package/dist/toolsets/combine.js.map +1 -0
- package/dist/toolsets/manager.d.ts +201 -0
- package/dist/toolsets/manager.d.ts.map +1 -0
- package/dist/toolsets/manager.js +837 -0
- package/dist/toolsets/manager.js.map +1 -0
- package/dist/toolsets/source-glob.d.ts +15 -0
- package/dist/toolsets/source-glob.d.ts.map +1 -0
- package/dist/toolsets/source-glob.js +23 -0
- package/dist/toolsets/source-glob.js.map +1 -0
- package/dist/toolsets/toolset.d.ts +20 -0
- package/dist/toolsets/toolset.d.ts.map +1 -0
- package/dist/toolsets/toolset.js +28 -0
- package/dist/toolsets/toolset.js.map +1 -0
- package/dist/toolsets/types.d.ts +128 -0
- package/dist/toolsets/types.d.ts.map +1 -0
- package/dist/toolsets/types.js +33 -0
- package/dist/toolsets/types.js.map +1 -0
- package/dist/toolsets/wrappers.d.ts +59 -0
- package/dist/toolsets/wrappers.d.ts.map +1 -0
- package/dist/toolsets/wrappers.js +165 -0
- package/dist/toolsets/wrappers.js.map +1 -0
- package/dist/types/agent/base.d.ts +27 -16
- 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/pipeline.d.ts +2 -0
- package/dist/types/agent/pipeline.d.ts.map +1 -1
- package/dist/types/agent/query.d.ts +117 -0
- package/dist/types/agent/query.d.ts.map +1 -0
- package/dist/types/agent/query.js +2 -0
- package/dist/types/agent/query.js.map +1 -0
- package/dist/types/agent/reactive.d.ts +2 -129
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/router.d.ts +2 -0
- package/dist/types/agent/router.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +5 -2
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/authorization/index.d.ts +70 -12
- package/dist/types/authorization/index.d.ts.map +1 -1
- package/dist/types/authorization/index.js +11 -0
- package/dist/types/authorization/index.js.map +1 -1
- package/dist/types/computer-use/index.d.ts +176 -0
- package/dist/types/computer-use/index.d.ts.map +1 -1
- package/dist/types/computer-use/index.js.map +1 -1
- package/dist/types/connector/mcp.d.ts +32 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/errors/index.d.ts +15 -0
- package/dist/types/errors/index.d.ts.map +1 -1
- package/dist/types/errors/index.js.map +1 -1
- package/dist/types/hitl/index.d.ts +57 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/message/index.d.ts +130 -9
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +4 -1
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +22 -4
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +1 -0
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/provider/chat.d.ts +5 -0
- package/dist/types/provider/chat.d.ts.map +1 -1
- package/dist/types/provider/config.d.ts +8 -3
- package/dist/types/provider/config.d.ts.map +1 -1
- package/dist/types/provider/stream.d.ts +39 -0
- package/dist/types/provider/stream.d.ts.map +1 -1
- package/dist/types/sandbox/index.d.ts +1 -1
- package/dist/types/session/events.d.ts +14 -3
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/tool/index.d.ts +171 -91
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/toolset/index.d.ts +10 -40
- package/dist/types/toolset/index.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/advisory/history.ts +27 -2
- package/src/advisory/index.ts +1 -1
- package/src/advisory/registry.ts +33 -0
- package/src/agents/AGENTS.md +14 -7
- package/src/agents/PipelineAgent.ts +2 -303
- package/src/agents/QueryAgent.ts +269 -0
- package/src/agents/ReactiveAgent.ts +6 -216
- package/src/agents/RouterAgent.ts +2 -337
- package/src/agents/SupervisorAgent.ts +3 -476
- package/src/agents/defineAgent.ts +13 -2
- package/src/agents/examples/PipelineAgent.ts +302 -0
- package/src/agents/examples/RouterAgent.ts +338 -0
- package/src/agents/examples/SupervisorAgent.ts +472 -0
- package/src/agents/explore.ts +6 -3
- package/src/agents/forward-options.ts +37 -0
- package/src/agents/index.ts +2 -0
- package/src/agents/runAgent.ts +144 -37
- package/src/authorization/command-line.ts +2 -2
- package/src/authorization/gate.ts +46 -5
- package/src/authorization/program.ts +773 -0
- package/src/authorization/reexec-wrapper.ts +589 -0
- package/src/authorization/rules.ts +36 -1
- package/src/authorization/shell-lexer.ts +136 -63
- package/src/bridge/sse/mapper.ts +6 -0
- package/src/capabilities/index.ts +157 -0
- package/src/config/registry.ts +4 -1
- package/src/connector/index.ts +9 -2
- package/src/connector/mcp/adapter.ts +58 -3
- package/src/connector/mcp/client.ts +20 -4
- package/src/connector/mcp/discovery.ts +60 -0
- package/src/connector/mcp/index.ts +13 -0
- package/src/connector/mcp/mcp-toolset.ts +515 -0
- package/src/connector/tools/index.ts +2 -2
- package/src/connector/tools/router.ts +35 -58
- package/src/directory/derive-supervisor.ts +12 -8
- package/src/directory/derive.ts +8 -5
- package/src/execution/code-runtime/types.ts +2 -2
- package/src/invariants/index.ts +4 -1
- package/src/manager/agent/lifecycle.ts +9 -0
- package/src/manager/connector/environment.ts +17 -4
- package/src/manager/connector/index.ts +2 -2
- package/src/manager/connector/tenant.ts +17 -4
- package/src/manager/index.ts +2 -2
- package/src/manager/session/attribution.ts +79 -0
- package/src/manager/session/turn-recorder.ts +211 -55
- package/src/peers/address.ts +58 -0
- package/src/peers/client.ts +202 -0
- package/src/peers/dir.ts +176 -0
- package/src/peers/endpoint.ts +564 -0
- package/src/peers/envelope.ts +121 -0
- package/src/peers/index.ts +96 -0
- package/src/peers/protocol.ts +196 -0
- package/src/peers/record.ts +56 -0
- package/src/peers/registry.ts +241 -0
- package/src/plugin/define.ts +68 -0
- package/src/plugin/index.ts +2 -0
- package/src/plugin/lifecycle.ts +286 -106
- package/src/plugin/resolver.ts +6 -3
- package/src/plugin/shell-hook.ts +21 -5
- package/src/pricing/catalogue.generated.ts +28 -4
- package/src/pricing/rates.source.json +27 -6
- package/src/probe/errors.ts +4 -1
- package/src/prompt/coding-agent-doctrine.ts +22 -10
- package/src/prompt/contributions.ts +12 -2
- package/src/prompt/index.ts +1 -0
- package/src/provider/collect-chat-completion.ts +96 -11
- package/src/provider/mock.ts +24 -6
- package/src/provider/registry.ts +4 -1
- package/src/provider/tool-call-framing.ts +226 -0
- package/src/public-runtime.ts +152 -9
- package/src/public-tools.ts +43 -5
- package/src/public-types.ts +65 -6
- package/src/read-model/registry.ts +7 -2
- package/src/registry/ManagedRegistry.ts +57 -6
- package/src/registry/collision.ts +64 -0
- package/src/registry/command/index.ts +7 -3
- package/src/registry/index.ts +3 -9
- package/src/registry/plugin/index.ts +14 -1
- package/src/registry/tool/callable.ts +36 -0
- package/src/registry/tool/execute.ts +16 -839
- package/src/registry/tool/portable.ts +59 -0
- package/src/registry/tool/presentation.ts +6 -5
- package/src/runtime/bidi/session.ts +24 -5
- package/src/runtime/query/executor/tool-call-admission.ts +288 -22
- package/src/runtime/query/executor.ts +129 -16
- package/src/runtime/query/file-evidence-replay.ts +8 -7
- package/src/runtime/query/fork/prepare.ts +6 -1
- package/src/runtime/query/guardrail-presets.ts +4 -3
- package/src/runtime/query/index.ts +199 -101
- package/src/runtime/query/iteration/index.ts +13 -3
- package/src/runtime/query/iteration/phases/compaction.ts +1 -1
- package/src/runtime/query/iteration/phases/context.ts +2 -2
- package/src/runtime/query/iteration/phases/tool-review.ts +59 -2
- package/src/runtime/query/iteration/stream-turn.ts +390 -136
- package/src/runtime/query/iteration/tool-input.ts +284 -0
- package/src/runtime/query/observation-context.ts +2 -2
- package/src/runtime/query/prelude-lease.ts +132 -0
- package/src/runtime/query/prepare-turn.ts +477 -198
- package/src/runtime/query/prompt-cache.ts +2 -2
- package/src/runtime/query/prompt.ts +4 -4
- package/src/runtime/query/resume-session.ts +42 -3
- package/src/runtime/query/review-policy.ts +190 -24
- package/src/runtime/query/tooling.ts +3 -6
- package/src/runtime/query/turn-state.ts +4 -0
- package/src/runtime/system-events.ts +246 -0
- package/src/scheduler/delegating.ts +7 -2
- package/src/skills/index.ts +1 -1
- package/src/skills/registry.ts +33 -0
- package/src/store/session-log/conformance.ts +51 -8
- package/src/store/session-log/core.ts +10 -4
- package/src/store/session-log/fold.ts +33 -7
- package/src/store/session-log/index.ts +2 -0
- package/src/test-support/toolset.ts +23 -0
- package/src/tools/builtins/bash.ts +27 -10
- package/src/tools/builtins/browser-url.ts +1 -1
- package/src/tools/builtins/computer-use-coordinates.ts +144 -0
- package/src/tools/builtins/computer-use-image.ts +278 -0
- package/src/tools/builtins/computer-use.ts +1495 -191
- package/src/tools/builtins/edit.ts +12 -2
- package/src/tools/builtins/index.ts +7 -1
- package/src/tools/builtins/json-string-hint.ts +16 -0
- package/src/tools/builtins/search-tools.ts +7 -20
- package/src/tools/builtins/skill.ts +304 -174
- package/src/tools/builtins/write-file.ts +12 -0
- package/src/tools/command-shell.ts +46 -1
- package/src/tools/coordinator/agent.ts +6 -0
- package/src/tools/coordinator/ask-user-question.ts +29 -15
- package/src/tools/coordinator/index.ts +6 -0
- package/src/tools/coordinator/question-options.ts +195 -0
- package/src/tools/defineTool.ts +38 -0
- package/src/tools/memory/search.ts +4 -1
- package/src/tools/memory/update.ts +8 -5
- package/src/tools/render-nonce.ts +69 -0
- package/src/tools/roster.ts +84 -33
- package/src/tools/schedules/present.ts +2 -0
- package/src/tools/schedules/schedule-tool.ts +238 -39
- package/src/tools/schedules/types.ts +120 -6
- package/src/tools/trusted-read-only.ts +19 -10
- package/src/tools/untrusted-envelope.ts +121 -57
- package/src/toolsets/combine.ts +181 -0
- package/src/toolsets/manager.ts +996 -0
- package/src/toolsets/source-glob.ts +22 -0
- package/src/toolsets/toolset.ts +31 -0
- package/src/toolsets/types.ts +154 -0
- package/src/toolsets/wrappers.ts +191 -0
- package/src/types/agent/base.ts +29 -16
- package/src/types/agent/index.ts +1 -0
- package/src/types/agent/pipeline.ts +2 -0
- package/src/types/agent/query.ts +129 -0
- package/src/types/agent/reactive.ts +5 -142
- package/src/types/agent/router.ts +2 -0
- package/src/types/agent/supervisor.ts +5 -2
- package/src/types/authorization/index.ts +33 -0
- package/src/types/computer-use/index.ts +202 -0
- package/src/types/connector/mcp.ts +32 -0
- package/src/types/errors/index.ts +15 -0
- package/src/types/hitl/index.ts +57 -0
- package/src/types/message/index.ts +135 -7
- package/src/types/plugin/index.ts +44 -21
- package/src/types/provider/chat.ts +5 -0
- package/src/types/provider/config.ts +8 -3
- package/src/types/provider/stream.ts +39 -0
- package/src/types/sandbox/index.ts +1 -1
- package/src/types/session/events.ts +14 -3
- package/src/types/tool/index.ts +173 -105
- package/src/types/toolset/index.ts +10 -47
- package/dist/registry/toolset/catalog.d.ts +0 -42
- package/dist/registry/toolset/catalog.d.ts.map +0 -1
- package/dist/registry/toolset/catalog.js +0 -234
- package/dist/registry/toolset/catalog.js.map +0 -1
- package/src/registry/toolset/catalog.ts +0 -308
|
@@ -9,10 +9,29 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/** A rule effect, in the vocabulary of the CLI's `[permissions]` table. */
|
|
11
11
|
export type ScheduleRuleEffect = 'allow' | 'ask' | 'deny';
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* What the model proposes. Validated by the tool's schema, then by the host.
|
|
14
|
+
*
|
|
15
|
+
* `runKind` absent means `'agent'`, unchanged from before this field
|
|
16
|
+
* existed — every existing host keeps compiling and behaving the same.
|
|
17
|
+
* `prompt` is optional ONLY because a pure `'script'` draft has none; a
|
|
18
|
+
* `ScheduleToolHost` that read it as a bare `string` before this field
|
|
19
|
+
* existed now needs a null check under `strictNullChecks` (see the SDK's
|
|
20
|
+
* changeset for this release: this is a breaking change to the type, not a
|
|
21
|
+
* free widening).
|
|
22
|
+
*/
|
|
13
23
|
export interface ScheduleJobDraft {
|
|
14
24
|
readonly name: string;
|
|
15
|
-
|
|
25
|
+
/** Required unless `runKind` is `'script'`, whose prompt is unused. */
|
|
26
|
+
readonly prompt?: string;
|
|
27
|
+
/** Absent: `'agent'`. */
|
|
28
|
+
readonly runKind?: 'agent' | 'script' | 'script+agent';
|
|
29
|
+
/** Required when `runKind` is `'script'` or `'script+agent'` (the wake-gate). */
|
|
30
|
+
readonly script?: {
|
|
31
|
+
readonly body: string;
|
|
32
|
+
readonly shell: 'bash' | 'sh';
|
|
33
|
+
readonly timeoutMs?: number;
|
|
34
|
+
};
|
|
16
35
|
/** Schedule words: `every 30m`, `0 9 * * 1-5`, `at 09:00`, `in 2h`. */
|
|
17
36
|
readonly when: string;
|
|
18
37
|
/** Folder the job runs in. Absent: the session's working directory. */
|
|
@@ -71,7 +90,16 @@ export interface ScheduleJobPreview {
|
|
|
71
90
|
readonly folder: string;
|
|
72
91
|
/** True when `folder` is outside the session's working directory and added directories. */
|
|
73
92
|
readonly outsideSessionRoots: boolean;
|
|
93
|
+
/** Empty for a pure `'script'` job, whose prompt is unused. */
|
|
74
94
|
readonly prompt: string;
|
|
95
|
+
/** Absent: `'agent'`. */
|
|
96
|
+
readonly runKind?: 'agent' | 'script' | 'script+agent';
|
|
97
|
+
/** Present for `runKind: 'script'`/`'script+agent'`: the exact confirmed text. */
|
|
98
|
+
readonly script?: {
|
|
99
|
+
readonly body: string;
|
|
100
|
+
readonly shell: 'bash' | 'sh';
|
|
101
|
+
readonly timeoutMs: number;
|
|
102
|
+
};
|
|
75
103
|
/** The schedule in words, with its zone. */
|
|
76
104
|
readonly schedule: string;
|
|
77
105
|
/** The next fire times, ISO-8601 UTC. */
|
|
@@ -80,8 +108,11 @@ export interface ScheduleJobPreview {
|
|
|
80
108
|
readonly rules: readonly string[];
|
|
81
109
|
readonly unmatched: 'park' | 'deny' | 'allow';
|
|
82
110
|
readonly execution: 'host' | 'sandbox';
|
|
83
|
-
/**
|
|
111
|
+
/** The run can reach the network, including through a fixed host script. */
|
|
84
112
|
readonly networkAccess: boolean;
|
|
113
|
+
/** Web/browser permissions grant network access, separate from a script's own capability. */
|
|
114
|
+
readonly networkGrantAccess?: boolean;
|
|
115
|
+
/** Effective run limits. A pure script has zero model iterations/tokens and its script timeout. */
|
|
85
116
|
readonly budget: {
|
|
86
117
|
readonly maxIterations: number;
|
|
87
118
|
readonly tokenBudget: number;
|
|
@@ -89,8 +120,8 @@ export interface ScheduleJobPreview {
|
|
|
89
120
|
};
|
|
90
121
|
/** Runs per day at most, times the token budget. Absent for a one-shot. */
|
|
91
122
|
readonly dailyTokenCeiling?: number;
|
|
92
|
-
/** Provider and model the
|
|
93
|
-
readonly model
|
|
123
|
+
/** Provider and model the agent phase is pinned to. Absent for a pure script job. */
|
|
124
|
+
readonly model?: string;
|
|
94
125
|
/** Where the run's credential comes from, in words. */
|
|
95
126
|
readonly credentialSource?: string;
|
|
96
127
|
/** Anything the host wants said in the warning colour. */
|
|
@@ -106,6 +137,59 @@ export interface ScheduleJobSummary {
|
|
|
106
137
|
readonly lastStatus?: string;
|
|
107
138
|
/** Present only for jobs in the session's own folder. */
|
|
108
139
|
readonly prompt?: string;
|
|
140
|
+
/**
|
|
141
|
+
* True for a job whose folder is the session's own. A host that lists
|
|
142
|
+
* other folders' jobs sets it so the model can tell them apart; the tool
|
|
143
|
+
* marks such a job `(this folder)`.
|
|
144
|
+
*/
|
|
145
|
+
readonly inSessionFolder?: boolean;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* What the model proposes to change in an existing job. Every field left
|
|
149
|
+
* out keeps the job's current value. `permissions`, when given, is the whole
|
|
150
|
+
* new set, with the same limits as a new job's; the host keeps the job's
|
|
151
|
+
* `execution` when it is not given, and its additional directories.
|
|
152
|
+
*/
|
|
153
|
+
export interface ScheduleJobChanges {
|
|
154
|
+
readonly prompt?: string;
|
|
155
|
+
readonly when?: string;
|
|
156
|
+
readonly folder?: string;
|
|
157
|
+
readonly tz?: string;
|
|
158
|
+
readonly permissions?: ScheduleJobDraft['permissions'];
|
|
159
|
+
readonly budget?: ScheduleJobDraft['budget'];
|
|
160
|
+
/**
|
|
161
|
+
* Changes what kind of run this is. Absent: keeps the job's current kind.
|
|
162
|
+
* Moving to `'script'`/`'script+agent'` needs `script`; moving to
|
|
163
|
+
* `'agent'` drops whatever script the job had, whether or not one is
|
|
164
|
+
* given here — an agent job cannot carry one.
|
|
165
|
+
*/
|
|
166
|
+
readonly runKind?: 'agent' | 'script' | 'script+agent';
|
|
167
|
+
/**
|
|
168
|
+
* Replaces the whole script (or, for `'script+agent'`, wake-gate) body,
|
|
169
|
+
* shell and timeout — never a partial edit of just one of them. Absent:
|
|
170
|
+
* keeps the job's current script. Re-verified fresh against the
|
|
171
|
+
* scheduled-run floor and every `deny` rule, the same as a new job's.
|
|
172
|
+
*/
|
|
173
|
+
readonly script?: ScheduleJobDraft['script'];
|
|
174
|
+
}
|
|
175
|
+
/** A proposed change to a job, as the host computed it. */
|
|
176
|
+
export interface ScheduleJobUpdateProposal {
|
|
177
|
+
/** The job as it would be once changed. Every field is the host's own computation. */
|
|
178
|
+
readonly preview: ScheduleJobPreview;
|
|
179
|
+
/**
|
|
180
|
+
* What differs from the job as it stands (and from edits saved since it
|
|
181
|
+
* was last confirmed), one line each: `- ` what goes, `+ ` what comes.
|
|
182
|
+
*/
|
|
183
|
+
readonly changes: readonly string[];
|
|
184
|
+
/** The change touches what a run may do: its rules, `unmatched`, where it runs, its browser grant. */
|
|
185
|
+
readonly permissionsChange: boolean;
|
|
186
|
+
}
|
|
187
|
+
/** What the person confirming a change is shown. */
|
|
188
|
+
export interface ScheduleUpdateRequest extends ScheduleJobUpdateProposal {
|
|
189
|
+
/** The prompt tripwire's findings over `preview.prompt`. */
|
|
190
|
+
readonly promptFindings: readonly string[];
|
|
191
|
+
/** Always `model` from this tool. */
|
|
192
|
+
readonly proposedBy: 'model';
|
|
109
193
|
}
|
|
110
194
|
/** What the person answered to a proposed job. */
|
|
111
195
|
export type ScheduleConfirmAnswer = 'create' | 'create-paused' | 'cancel';
|
|
@@ -147,7 +231,15 @@ export interface ScheduleToolHost {
|
|
|
147
231
|
readonly name: string;
|
|
148
232
|
readonly note?: string;
|
|
149
233
|
}>;
|
|
150
|
-
/**
|
|
234
|
+
/**
|
|
235
|
+
* Jobs, the session folder's in full, other folders' without their
|
|
236
|
+
* prompts. `allFolders: false` lets a host list only the session
|
|
237
|
+
* folder's; a host may list every job regardless, marking the session
|
|
238
|
+
* folder's with {@link ScheduleJobSummary.inSessionFolder}. The tool says
|
|
239
|
+
* "No scheduled jobs." when this returns none, so a host that filters
|
|
240
|
+
* says so only for its folder. Throw on an unreadable job store: the tool
|
|
241
|
+
* reports the error rather than claiming there are no jobs.
|
|
242
|
+
*/
|
|
151
243
|
list(options: {
|
|
152
244
|
readonly allFolders: boolean;
|
|
153
245
|
}): Promise<readonly ScheduleJobSummary[]>;
|
|
@@ -158,6 +250,28 @@ export interface ScheduleToolHost {
|
|
|
158
250
|
pause(job: string): Promise<void>;
|
|
159
251
|
resume(job: string): Promise<void>;
|
|
160
252
|
delete(job: string): Promise<void>;
|
|
253
|
+
/**
|
|
254
|
+
* Validate a change to `job` (a name or id prefix) and compute what the
|
|
255
|
+
* person will be shown. Throws with a message on a refusal. The tool
|
|
256
|
+
* offers `update` only when a host has all three of `previewUpdate`,
|
|
257
|
+
* `confirmUpdate` and `update`.
|
|
258
|
+
*/
|
|
259
|
+
previewUpdate?(job: string, changes: ScheduleJobChanges): Promise<ScheduleJobUpdateProposal>;
|
|
260
|
+
/**
|
|
261
|
+
* Ask the person whether to save the change. Anything but `true` — a
|
|
262
|
+
* thrown error, a closed screen — changes nothing. See `confirm` on
|
|
263
|
+
* `signal`.
|
|
264
|
+
*/
|
|
265
|
+
confirmUpdate?(request: ScheduleUpdateRequest, signal?: AbortSignal): Promise<boolean>;
|
|
266
|
+
/**
|
|
267
|
+
* Save the change the person confirmed, to the same job: its id and its
|
|
268
|
+
* history are kept, and the confirmation is the person's. `note` as for
|
|
269
|
+
* `create`.
|
|
270
|
+
*/
|
|
271
|
+
update?(preview: ScheduleJobPreview): Promise<{
|
|
272
|
+
readonly name: string;
|
|
273
|
+
readonly note?: string;
|
|
274
|
+
}>;
|
|
161
275
|
}
|
|
162
276
|
/** A prompt the session re-sends to itself on an interval. */
|
|
163
277
|
export interface SessionLoop {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAEzD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ToolSourceRef } from '../toolsets/types.js';
|
|
1
2
|
import type { ToolDefinition } from '../types/tool/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* May this tool's read-only claim settle a gate on its own?
|
|
@@ -29,14 +30,17 @@ import type { ToolDefinition } from '../types/tool/index.js';
|
|
|
29
30
|
* opening its own gate.
|
|
30
31
|
*
|
|
31
32
|
* Trust for the second case comes from the operator, per server, and is
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* carried on the OWNING TOOLSET's source (`ToolSourceRef.readOnlyHintTrusted`,
|
|
34
|
+
* `toolsets/manager.ts`'s `sourceOf`) rather than stamped onto the tool
|
|
35
|
+
* itself — `ToolDefinition` has no `provenance` field to read; a definition
|
|
36
|
+
* cannot claim its own source. Never a global switch: one flag meaning
|
|
37
|
+
* "trust annotations" hands every connected server the same reach, which is
|
|
38
|
+
* the hole restated.
|
|
35
39
|
*
|
|
36
40
|
* `isReadOnly` itself is left reporting faithfully what the server said.
|
|
37
|
-
*
|
|
41
|
+
* Source and policy are different questions, and collapsing them would
|
|
38
42
|
* corrupt the outbound re-export and the prompt's own destructive label in
|
|
39
43
|
* order to fix a gate.
|
|
40
44
|
*/
|
|
41
|
-
export declare function isTrustedReadOnly(tool: ToolDefinition | undefined, input: unknown): boolean;
|
|
45
|
+
export declare function isTrustedReadOnly(tool: ToolDefinition | undefined, input: unknown, source?: ToolSourceRef): boolean;
|
|
42
46
|
//# sourceMappingURL=trusted-read-only.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trusted-read-only.d.ts","sourceRoot":"","sources":["../../src/tools/trusted-read-only.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D
|
|
1
|
+
{"version":3,"file":"trusted-read-only.d.ts","sourceRoot":"","sources":["../../src/tools/trusted-read-only.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,aAAa,GACpB,OAAO,CAWT"}
|
|
@@ -28,23 +28,27 @@
|
|
|
28
28
|
* opening its own gate.
|
|
29
29
|
*
|
|
30
30
|
* Trust for the second case comes from the operator, per server, and is
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
31
|
+
* carried on the OWNING TOOLSET's source (`ToolSourceRef.readOnlyHintTrusted`,
|
|
32
|
+
* `toolsets/manager.ts`'s `sourceOf`) rather than stamped onto the tool
|
|
33
|
+
* itself — `ToolDefinition` has no `provenance` field to read; a definition
|
|
34
|
+
* cannot claim its own source. Never a global switch: one flag meaning
|
|
35
|
+
* "trust annotations" hands every connected server the same reach, which is
|
|
36
|
+
* the hole restated.
|
|
34
37
|
*
|
|
35
38
|
* `isReadOnly` itself is left reporting faithfully what the server said.
|
|
36
|
-
*
|
|
39
|
+
* Source and policy are different questions, and collapsing them would
|
|
37
40
|
* corrupt the outbound re-export and the prompt's own destructive label in
|
|
38
41
|
* order to fix a gate.
|
|
39
42
|
*/
|
|
40
|
-
export function isTrustedReadOnly(tool, input) {
|
|
43
|
+
export function isTrustedReadOnly(tool, input, source) {
|
|
41
44
|
if (!tool?.isReadOnly)
|
|
42
45
|
return false;
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
|
|
46
|
+
// A source that is not `mcp_server` is host-defined: this process, code
|
|
47
|
+
// the operator installed, no untrusted party in the chain. Requiring an
|
|
48
|
+
// opt-in for a builtin would break every read-only exemption for no gain
|
|
49
|
+
// in trust. `source` itself absent (a caller with no manager to ask)
|
|
50
|
+
// is treated the same way, matching the old "no provenance" default.
|
|
51
|
+
if (source?.kind === 'mcp_server' && !source.readOnlyHintTrusted)
|
|
48
52
|
return false;
|
|
49
53
|
return tool.isReadOnly(input);
|
|
50
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trusted-read-only.js","sourceRoot":"","sources":["../../src/tools/trusted-read-only.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trusted-read-only.js","sourceRoot":"","sources":["../../src/tools/trusted-read-only.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,UAAU,iBAAiB,CAChC,IAAgC,EAChC,KAAc,EACd,MAAsB;IAEtB,IAAI,CAAC,IAAI,EAAE,UAAU;QAAE,OAAO,KAAK,CAAA;IAEnC,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,qEAAqE;IACrE,qEAAqE;IACrE,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAA;IAE9E,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -24,19 +24,41 @@
|
|
|
24
24
|
* boundaries are of that kind — the permission gate, the sandbox, the
|
|
25
25
|
* egress proxy deciding by resolved address.
|
|
26
26
|
*
|
|
27
|
-
* The
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* The details below still matter. They are what stops the framing being
|
|
28
|
+
* trivially removable by the content itself, which is a lower bar than
|
|
29
|
+
* stopping an attacker and worth clearing anyway.
|
|
30
30
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
31
|
+
* 1. **The real delimiter is bound to a per-render nonce.** Every call draws
|
|
32
|
+
* a fresh, unpredictable nonce (`tools/render-nonce.ts`) AFTER the
|
|
33
|
+
* untrusted content is already fixed, and the genuine tags carry it in
|
|
34
|
+
* their name: `<namzu-untrusted-<nonce> kind="…">` … `</namzu-untrusted-
|
|
35
|
+
* <nonce>>`. The header states this explicitly, so a model reads the
|
|
36
|
+
* nonce-bound close as the sole real boundary and anything else
|
|
37
|
+
* tag-shaped inside the block as quoted content, not structure.
|
|
33
38
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
39
|
+
* This replaces a defect fixed and then un-fixed the same day
|
|
40
|
+
* (2026-09-24): the delimiter was first defended with a literal,
|
|
41
|
+
* ASCII, case-insensitive keyword match, which a Unicode lookalike
|
|
42
|
+
* walked through unchanged (a non-breaking hyphen for the ASCII one). The
|
|
43
|
+
* next attempt folded confusable characters before the match — but a
|
|
44
|
+
* same-script homoglyph (Cyrillic `ѕ`/`е` for Latin `s`/`e`; hundreds of
|
|
45
|
+
* such cross-script pairs exist) folds to itself under NFKC and survives,
|
|
46
|
+
* so `<ѕyѕtеm-еvent…>` still forged a fake frame. Folding also rewrote
|
|
47
|
+
* the WHOLE untrusted string for every caller — an em dash became `-`, an
|
|
48
|
+
* ideographic space became an ASCII space, a ligature split into its
|
|
49
|
+
* letters — damaging ordinary Unicode text to close a hole it did not
|
|
50
|
+
* close. A nonce closes the real hole (the attacker cannot spell a tag it
|
|
51
|
+
* has not seen, in any script) without touching a single byte of
|
|
52
|
+
* ordinary content: the cheap ASCII keyword neutralization below is kept
|
|
53
|
+
* as defense in depth, but it is no longer this envelope's real boundary.
|
|
54
|
+
* 2. **The closing token is ALSO defanged inside the body, case-insensitively,
|
|
55
|
+
* as a second layer.** Content carrying the bare, un-nonced
|
|
56
|
+
* `</namzu-untrusted>` is replaced (`namzu_untrusted`) before it is
|
|
57
|
+
* embedded — belt-and-suspenders against a downstream reader that still
|
|
58
|
+
* matches the bare keyword without knowing about the nonce. This never
|
|
59
|
+
* touches ordinary text: the literal ASCII phrase essentially never
|
|
60
|
+
* appears in it.
|
|
61
|
+
* 3. **There is no already-wrapped fast path.** Checking whether content
|
|
40
62
|
* "looks wrapped" and skipping is attacker-forgeable: text that merely
|
|
41
63
|
* begins with the opening tag would then pass through with no framing at
|
|
42
64
|
* all. Wrapping twice is harmless; not wrapping once is not.
|
|
@@ -45,7 +67,10 @@
|
|
|
45
67
|
* name containing a quote would otherwise rewrite the tag it appears in.
|
|
46
68
|
*/
|
|
47
69
|
/**
|
|
48
|
-
* Defang the delimiter so embedded content cannot
|
|
70
|
+
* Defang the bare delimiter so embedded content cannot masquerade as ANY
|
|
71
|
+
* `namzu-untrusted` tag, nonced or not — defense in depth alongside the
|
|
72
|
+
* per-render nonce that is this envelope's real boundary (see the module doc
|
|
73
|
+
* comment above).
|
|
49
74
|
*
|
|
50
75
|
* The replacement swaps the hyphen for an underscore rather than appending a
|
|
51
76
|
* suffix. `namzu-untrusted-literal` would have read fine to a human and still
|
|
@@ -63,6 +88,14 @@ export interface UntrustedEnvelope {
|
|
|
63
88
|
/** One sentence on what the content is and where it came from. */
|
|
64
89
|
provenance: string;
|
|
65
90
|
}
|
|
91
|
+
export interface WrapUntrustedOptions {
|
|
92
|
+
/**
|
|
93
|
+
* Injectable for tests; defaults to {@link generateRenderNonce} (random
|
|
94
|
+
* hex, at least 8 characters). The render redraws automatically if this
|
|
95
|
+
* generator happens to produce a value the content already contains.
|
|
96
|
+
*/
|
|
97
|
+
generateNonce?: () => string;
|
|
98
|
+
}
|
|
66
99
|
/**
|
|
67
100
|
* Wrap content so a model reads it as material rather than direction.
|
|
68
101
|
*
|
|
@@ -71,7 +104,7 @@ export interface UntrustedEnvelope {
|
|
|
71
104
|
* is under a hundred characters — and the tokens saved by skipping short
|
|
72
105
|
* results do not pay for a boundary that holds only sometimes.
|
|
73
106
|
*/
|
|
74
|
-
export declare function wrapUntrusted(envelope: UntrustedEnvelope, content: string): string;
|
|
107
|
+
export declare function wrapUntrusted(envelope: UntrustedEnvelope, content: string, options?: WrapUntrustedOptions): string;
|
|
75
108
|
/**
|
|
76
109
|
* The body of a single wrapped block, when `text` is one.
|
|
77
110
|
*
|
|
@@ -84,27 +117,33 @@ export declare function wrapUntrusted(envelope: UntrustedEnvelope, content: stri
|
|
|
84
117
|
* the consumer, which is the drift this module exists to prevent.
|
|
85
118
|
*
|
|
86
119
|
* `undefined` for anything that is not exactly one wrapped block: text that
|
|
87
|
-
* merely starts or ends like one, text with no well-formed opening tag
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
120
|
+
* merely starts or ends like one, text with no well-formed opening tag (nonce
|
|
121
|
+
* included), a closing tag whose nonce does not match the opening one, text
|
|
122
|
+
* with no blank line after the header, and two blocks laid end to end (their
|
|
123
|
+
* nonces almost certainly differ, so the second block's closing tag does not
|
|
124
|
+
* match the first's opening one, and the check below already refuses that).
|
|
125
|
+
* A body is allowed to contain a blank line and often does; the two header
|
|
126
|
+
* lines never do, so the first blank line is the end of the header regardless
|
|
127
|
+
* of what the content says.
|
|
92
128
|
*
|
|
93
129
|
* Empty content is NOT one of those cases. `wrapUntrusted` frames it like
|
|
94
130
|
* anything else — the "skip a zero-length body" branch is in
|
|
95
131
|
* `frameServerResult`, which is a different decision made by a different
|
|
96
132
|
* caller — so an empty body reads back as `''`, which is what it is.
|
|
97
133
|
*
|
|
98
|
-
* The nested-block test
|
|
99
|
-
*
|
|
100
|
-
* wrapped, opening tag included
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* not
|
|
134
|
+
* The nested-block test looks at the BODY for a live, BARE (un-nonced)
|
|
135
|
+
* occurrence of the keyword — every occurrence is defanged in the content
|
|
136
|
+
* before it is wrapped, opening tag included, and the defanging matches the
|
|
137
|
+
* bare keyword regardless of what nonce follows it, so a real inner
|
|
138
|
+
* `<namzu-untrusted-…>` from a nested `wrapUntrusted` call is flattened into
|
|
139
|
+
* `<namzu_untrusted-…>` by the OUTER call the same as any other occurrence —
|
|
140
|
+
* a live one surviving means the text was assembled by hand rather than
|
|
141
|
+
* produced by this function, and content that arrived already framed comes
|
|
142
|
+
* back as the (flattened) body of the outer one. An ATTRIBUTE is a different
|
|
143
|
+
* matter: attribute values are escaped, not defanged, so a server or agent
|
|
144
|
+
* whose name contains the token puts it in the tag. Checking the tag would
|
|
145
|
+
* make a frame this module produced unreadable by the reader written to read
|
|
146
|
+
* it, which is the one failure this function must not have.
|
|
108
147
|
*/
|
|
109
148
|
export declare function untrustedEnvelopeBody(text: string): string | undefined;
|
|
110
149
|
//# sourceMappingURL=untrusted-envelope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untrusted-envelope.d.ts","sourceRoot":"","sources":["../../src/tools/untrusted-envelope.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"untrusted-envelope.d.ts","sourceRoot":"","sources":["../../src/tools/untrusted-envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AAiBH;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnE;AAqBD,MAAM,WAAW,iBAAiB;IACjC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,MAAM,CAAA;CAC5B;AAkBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GAChC,MAAM,CA8BR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsBtE"}
|