@namzu/sdk 2.0.0 → 3.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 +2265 -0
- package/README.md +49 -53
- package/dist/__tests__/default-path-conformance.test.d.ts +2 -0
- package/dist/__tests__/default-path-conformance.test.d.ts.map +1 -0
- package/dist/__tests__/default-path-conformance.test.js +262 -0
- package/dist/__tests__/default-path-conformance.test.js.map +1 -0
- package/dist/__tests__/shipped-defaults.test.d.ts +2 -0
- package/dist/__tests__/shipped-defaults.test.d.ts.map +1 -0
- package/dist/__tests__/shipped-defaults.test.js +97 -0
- package/dist/__tests__/shipped-defaults.test.js.map +1 -0
- package/dist/advisory/__tests__/budget-enforcement.test.d.ts +2 -0
- package/dist/advisory/__tests__/budget-enforcement.test.d.ts.map +1 -0
- package/dist/advisory/__tests__/budget-enforcement.test.js +159 -0
- package/dist/advisory/__tests__/budget-enforcement.test.js.map +1 -0
- package/dist/advisory/__tests__/structured-response.test.d.ts +2 -0
- package/dist/advisory/__tests__/structured-response.test.d.ts.map +1 -0
- package/dist/advisory/__tests__/structured-response.test.js +99 -0
- package/dist/advisory/__tests__/structured-response.test.js.map +1 -0
- package/dist/advisory/budget.d.ts +15 -0
- package/dist/advisory/budget.d.ts.map +1 -0
- package/dist/advisory/budget.js +21 -0
- package/dist/advisory/budget.js.map +1 -0
- package/dist/advisory/context.d.ts +2 -0
- package/dist/advisory/context.d.ts.map +1 -1
- package/dist/advisory/context.js +16 -0
- package/dist/advisory/context.js.map +1 -1
- package/dist/advisory/executor.d.ts +14 -11
- package/dist/advisory/executor.d.ts.map +1 -1
- package/dist/advisory/executor.js +36 -24
- package/dist/advisory/executor.js.map +1 -1
- package/dist/advisory/executor.test.d.ts +8 -6
- package/dist/advisory/executor.test.d.ts.map +1 -1
- package/dist/advisory/executor.test.js +12 -8
- package/dist/advisory/executor.test.js.map +1 -1
- package/dist/advisory/index.d.ts +2 -0
- package/dist/advisory/index.d.ts.map +1 -1
- package/dist/advisory/index.js +2 -0
- package/dist/advisory/index.js.map +1 -1
- package/dist/advisory/parse.d.ts +23 -0
- package/dist/advisory/parse.d.ts.map +1 -0
- package/dist/advisory/parse.js +56 -0
- package/dist/advisory/parse.js.map +1 -0
- package/dist/agents/AbstractAgent.d.ts +48 -0
- package/dist/agents/AbstractAgent.d.ts.map +1 -1
- package/dist/agents/AbstractAgent.js +77 -0
- package/dist/agents/AbstractAgent.js.map +1 -1
- package/dist/agents/PipelineAgent.d.ts +10 -0
- package/dist/agents/PipelineAgent.d.ts.map +1 -1
- package/dist/agents/PipelineAgent.js +12 -0
- package/dist/agents/PipelineAgent.js.map +1 -1
- package/dist/agents/ReactiveAgent.d.ts +10 -0
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +40 -0
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/RouterAgent.d.ts +10 -0
- package/dist/agents/RouterAgent.d.ts.map +1 -1
- package/dist/agents/RouterAgent.js +23 -2
- package/dist/agents/RouterAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts +11 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +23 -1
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/__tests__/idempotency-key.test.d.ts +2 -0
- package/dist/agents/__tests__/idempotency-key.test.d.ts.map +1 -0
- package/dist/agents/__tests__/idempotency-key.test.js +149 -0
- package/dist/agents/__tests__/idempotency-key.test.js.map +1 -0
- package/dist/agents/__tests__/invocation-lock.test.d.ts +2 -0
- package/dist/agents/__tests__/invocation-lock.test.d.ts.map +1 -0
- package/dist/agents/__tests__/invocation-lock.test.js +126 -0
- package/dist/agents/__tests__/invocation-lock.test.js.map +1 -0
- package/dist/agents/__tests__/reachability.test.d.ts +2 -0
- package/dist/agents/__tests__/reachability.test.d.ts.map +1 -0
- package/dist/agents/__tests__/reachability.test.js +173 -0
- package/dist/agents/__tests__/reachability.test.js.map +1 -0
- package/dist/agents/__tests__/supervisor-ledger.test.js +1 -1
- package/dist/agents/__tests__/supervisor-ledger.test.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/lock.d.ts +0 -1
- package/dist/agents/lock.d.ts.map +1 -1
- package/dist/agents/lock.js.map +1 -1
- package/dist/bridge/a2a/late-events.test.d.ts +2 -0
- package/dist/bridge/a2a/late-events.test.d.ts.map +1 -0
- package/dist/bridge/a2a/late-events.test.js +70 -0
- package/dist/bridge/a2a/late-events.test.js.map +1 -0
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +55 -3
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/a2a/mapper.test.js +1 -1
- package/dist/bridge/a2a/mapper.test.js.map +1 -1
- package/dist/bridge/a2a/message.d.ts.map +1 -1
- package/dist/bridge/a2a/message.js +5 -1
- package/dist/bridge/a2a/message.js.map +1 -1
- package/dist/bridge/sse/late-events.test.d.ts +2 -0
- package/dist/bridge/sse/late-events.test.d.ts.map +1 -0
- package/dist/bridge/sse/late-events.test.js +163 -0
- package/dist/bridge/sse/late-events.test.js.map +1 -0
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +100 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/compaction/__tests__/cleared-result-recovery.test.d.ts +2 -0
- package/dist/compaction/__tests__/cleared-result-recovery.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/cleared-result-recovery.test.js +101 -0
- package/dist/compaction/__tests__/cleared-result-recovery.test.js.map +1 -0
- package/dist/compaction/__tests__/context-window.test.d.ts +2 -0
- package/dist/compaction/__tests__/context-window.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/context-window.test.js +62 -0
- package/dist/compaction/__tests__/context-window.test.js.map +1 -0
- package/dist/compaction/__tests__/dangling.test.js +16 -5
- package/dist/compaction/__tests__/dangling.test.js.map +1 -1
- package/dist/compaction/__tests__/lossiness.test.d.ts +2 -0
- package/dist/compaction/__tests__/lossiness.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/lossiness.test.js +163 -0
- package/dist/compaction/__tests__/lossiness.test.js.map +1 -0
- package/dist/compaction/__tests__/state-across-resume.test.d.ts +2 -0
- package/dist/compaction/__tests__/state-across-resume.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/state-across-resume.test.js +88 -0
- package/dist/compaction/__tests__/state-across-resume.test.js.map +1 -0
- package/dist/compaction/__tests__/tool-result-editing.test.d.ts +2 -0
- package/dist/compaction/__tests__/tool-result-editing.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/tool-result-editing.test.js +184 -0
- package/dist/compaction/__tests__/tool-result-editing.test.js.map +1 -0
- package/dist/compaction/__tests__/trim-opens-on-user.test.d.ts +2 -0
- package/dist/compaction/__tests__/trim-opens-on-user.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/trim-opens-on-user.test.js +109 -0
- package/dist/compaction/__tests__/trim-opens-on-user.test.js.map +1 -0
- package/dist/compaction/__tests__/verifier-model.test.d.ts +2 -0
- package/dist/compaction/__tests__/verifier-model.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/verifier-model.test.js +58 -0
- package/dist/compaction/__tests__/verifier-model.test.js.map +1 -0
- package/dist/compaction/context-window.d.ts +44 -0
- package/dist/compaction/context-window.d.ts.map +1 -0
- package/dist/compaction/context-window.js +97 -0
- package/dist/compaction/context-window.js.map +1 -0
- package/dist/compaction/dangling.js +48 -1
- package/dist/compaction/dangling.js.map +1 -1
- package/dist/compaction/extractor.d.ts.map +1 -1
- package/dist/compaction/extractor.js +55 -1
- package/dist/compaction/extractor.js.map +1 -1
- package/dist/compaction/index.d.ts +5 -0
- package/dist/compaction/index.d.ts.map +1 -1
- package/dist/compaction/index.js +3 -0
- package/dist/compaction/index.js.map +1 -1
- package/dist/compaction/manager.d.ts +25 -0
- package/dist/compaction/manager.d.ts.map +1 -1
- package/dist/compaction/manager.js +42 -8
- package/dist/compaction/manager.js.map +1 -1
- package/dist/compaction/managers/structured.d.ts.map +1 -1
- package/dist/compaction/managers/structured.js +7 -3
- package/dist/compaction/managers/structured.js.map +1 -1
- package/dist/compaction/retention.d.ts +15 -0
- package/dist/compaction/retention.d.ts.map +1 -0
- package/dist/compaction/retention.js +89 -0
- package/dist/compaction/retention.js.map +1 -0
- package/dist/compaction/serializer.d.ts.map +1 -1
- package/dist/compaction/serializer.js +28 -11
- package/dist/compaction/serializer.js.map +1 -1
- package/dist/compaction/tool-result-editing.d.ts +54 -0
- package/dist/compaction/tool-result-editing.d.ts.map +1 -0
- package/dist/compaction/tool-result-editing.js +164 -0
- package/dist/compaction/tool-result-editing.js.map +1 -0
- package/dist/compaction/types.d.ts +10 -0
- package/dist/compaction/types.d.ts.map +1 -1
- package/dist/compaction/verifier.d.ts +20 -1
- package/dist/compaction/verifier.d.ts.map +1 -1
- package/dist/compaction/verifier.js +11 -2
- package/dist/compaction/verifier.js.map +1 -1
- package/dist/compaction/wire.d.ts +54 -0
- package/dist/compaction/wire.d.ts.map +1 -0
- package/dist/compaction/wire.js +45 -0
- package/dist/compaction/wire.js.map +1 -0
- package/dist/config/runtime.d.ts +161 -45
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +61 -19
- package/dist/config/runtime.js.map +1 -1
- package/dist/connector/builtins/http.d.ts.map +1 -1
- package/dist/connector/builtins/http.js +14 -1
- package/dist/connector/builtins/http.js.map +1 -1
- package/dist/connector/builtins/http.test.js +12 -0
- package/dist/connector/builtins/http.test.js.map +1 -1
- package/dist/connector/mcp/__tests__/discovery-policy.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/discovery-policy.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/discovery-policy.test.js +109 -0
- package/dist/connector/mcp/__tests__/discovery-policy.test.js.map +1 -0
- package/dist/connector/mcp/__tests__/list-pagination.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/list-pagination.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/list-pagination.test.js +81 -0
- package/dist/connector/mcp/__tests__/list-pagination.test.js.map +1 -0
- package/dist/connector/mcp/__tests__/policy.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/policy.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/policy.test.js +86 -0
- package/dist/connector/mcp/__tests__/policy.test.js.map +1 -0
- package/dist/connector/mcp/__tests__/protocol-negotiation.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/protocol-negotiation.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/protocol-negotiation.test.js +81 -0
- package/dist/connector/mcp/__tests__/protocol-negotiation.test.js.map +1 -0
- package/dist/connector/mcp/__tests__/schema-fidelity.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/schema-fidelity.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/schema-fidelity.test.js +206 -0
- package/dist/connector/mcp/__tests__/schema-fidelity.test.js.map +1 -0
- package/dist/connector/mcp/__tests__/structured-result.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/structured-result.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/structured-result.test.js +112 -0
- package/dist/connector/mcp/__tests__/structured-result.test.js.map +1 -0
- package/dist/connector/mcp/adapter.d.ts +14 -0
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +292 -18
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/mcp/client.d.ts +38 -0
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +138 -12
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/client.test.d.ts +2 -0
- package/dist/connector/mcp/client.test.d.ts.map +1 -0
- package/dist/connector/mcp/client.test.js +105 -0
- package/dist/connector/mcp/client.test.js.map +1 -0
- package/dist/connector/mcp/discovery.d.ts +32 -1
- package/dist/connector/mcp/discovery.d.ts.map +1 -1
- package/dist/connector/mcp/discovery.js +41 -4
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/http-sse.d.ts.map +1 -1
- package/dist/connector/mcp/http-sse.js +15 -1
- package/dist/connector/mcp/http-sse.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +3 -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/policy.d.ts +57 -0
- package/dist/connector/mcp/policy.d.ts.map +1 -0
- package/dist/connector/mcp/policy.js +84 -0
- package/dist/connector/mcp/policy.js.map +1 -0
- package/dist/connector/mcp/schema-refs.d.ts +26 -0
- package/dist/connector/mcp/schema-refs.d.ts.map +1 -0
- package/dist/connector/mcp/schema-refs.js +111 -0
- package/dist/connector/mcp/schema-refs.js.map +1 -0
- package/dist/constants/agent/index.d.ts.map +1 -1
- package/dist/constants/agent/index.js +3 -0
- package/dist/constants/agent/index.js.map +1 -1
- package/dist/constants/compaction/index.js +1 -1
- package/dist/constants/compaction/index.js.map +1 -1
- package/dist/constants/continuation.d.ts +4 -4
- package/dist/constants/continuation.js +4 -4
- package/dist/constants/mcp/index.d.ts +31 -0
- package/dist/constants/mcp/index.d.ts.map +1 -1
- package/dist/constants/mcp/index.js +31 -0
- package/dist/constants/mcp/index.js.map +1 -1
- package/dist/constants/plugin/index.d.ts +23 -2
- package/dist/constants/plugin/index.d.ts.map +1 -1
- package/dist/constants/plugin/index.js +23 -2
- package/dist/constants/plugin/index.js.map +1 -1
- package/dist/constants/sandbox/index.d.ts +2 -3
- package/dist/constants/sandbox/index.d.ts.map +1 -1
- package/dist/constants/sandbox/index.js +6 -5
- package/dist/constants/sandbox/index.js.map +1 -1
- package/dist/constants/telemetry/index.d.ts +7 -0
- package/dist/constants/telemetry/index.d.ts.map +1 -1
- package/dist/constants/telemetry/index.js +7 -0
- package/dist/constants/telemetry/index.js.map +1 -1
- package/dist/constants/tools/index.d.ts +16 -0
- package/dist/constants/tools/index.d.ts.map +1 -1
- package/dist/constants/tools/index.js +16 -0
- package/dist/constants/tools/index.js.map +1 -1
- package/dist/contracts/a2a.d.ts +94 -94
- package/dist/contracts/api.d.ts +40 -2
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/contracts/run-status.d.ts +17 -0
- package/dist/contracts/run-status.d.ts.map +1 -0
- package/dist/contracts/run-status.js +41 -0
- package/dist/contracts/run-status.js.map +1 -0
- package/dist/contracts/schemas.d.ts +6 -6
- package/dist/eval/__tests__/case-deadline.test.d.ts +2 -0
- package/dist/eval/__tests__/case-deadline.test.d.ts.map +1 -0
- package/dist/eval/__tests__/case-deadline.test.js +128 -0
- package/dist/eval/__tests__/case-deadline.test.js.map +1 -0
- package/dist/eval/__tests__/end-to-end.test.d.ts +2 -0
- package/dist/eval/__tests__/end-to-end.test.d.ts.map +1 -0
- package/dist/eval/__tests__/end-to-end.test.js +223 -0
- package/dist/eval/__tests__/end-to-end.test.js.map +1 -0
- package/dist/eval/__tests__/harness-honesty.test.d.ts +2 -0
- package/dist/eval/__tests__/harness-honesty.test.d.ts.map +1 -0
- package/dist/eval/__tests__/harness-honesty.test.js +85 -0
- package/dist/eval/__tests__/harness-honesty.test.js.map +1 -0
- package/dist/eval/__tests__/harness.test.d.ts +2 -0
- package/dist/eval/__tests__/harness.test.d.ts.map +1 -0
- package/dist/eval/__tests__/harness.test.js +207 -0
- package/dist/eval/__tests__/harness.test.js.map +1 -0
- package/dist/eval/__tests__/judge.test.d.ts +2 -0
- package/dist/eval/__tests__/judge.test.d.ts.map +1 -0
- package/dist/eval/__tests__/judge.test.js +255 -0
- package/dist/eval/__tests__/judge.test.js.map +1 -0
- package/dist/eval/__tests__/scorer-gates.test.d.ts +2 -0
- package/dist/eval/__tests__/scorer-gates.test.d.ts.map +1 -0
- package/dist/eval/__tests__/scorer-gates.test.js +136 -0
- package/dist/eval/__tests__/scorer-gates.test.js.map +1 -0
- package/dist/eval/experiment.d.ts +54 -0
- package/dist/eval/experiment.d.ts.map +1 -0
- package/dist/eval/experiment.js +263 -0
- package/dist/eval/experiment.js.map +1 -0
- package/dist/eval/from-run.d.ts +30 -0
- package/dist/eval/from-run.d.ts.map +1 -0
- package/dist/eval/from-run.js +46 -0
- package/dist/eval/from-run.js.map +1 -0
- package/dist/eval/index.d.ts +8 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +5 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/judge.d.ts +63 -0
- package/dist/eval/judge.d.ts.map +1 -0
- package/dist/eval/judge.js +136 -0
- package/dist/eval/judge.js.map +1 -0
- package/dist/eval/scorers.d.ts +40 -0
- package/dist/eval/scorers.d.ts.map +1 -0
- package/dist/eval/scorers.js +151 -0
- package/dist/eval/scorers.js.map +1 -0
- package/dist/eval/types.d.ts +150 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +2 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/execution/local.d.ts.map +1 -1
- package/dist/execution/local.js +6 -1
- package/dist/execution/local.js.map +1 -1
- package/dist/execution/local.test.d.ts +2 -0
- package/dist/execution/local.test.d.ts.map +1 -0
- package/dist/execution/local.test.js +37 -0
- package/dist/execution/local.test.js.map +1 -0
- package/dist/gateway/__tests__/list-survives-eviction.test.d.ts +2 -0
- package/dist/gateway/__tests__/list-survives-eviction.test.d.ts.map +1 -0
- package/dist/gateway/__tests__/list-survives-eviction.test.js +102 -0
- package/dist/gateway/__tests__/list-survives-eviction.test.js.map +1 -0
- package/dist/gateway/local.d.ts +42 -2
- package/dist/gateway/local.d.ts.map +1 -1
- package/dist/gateway/local.js +110 -3
- package/dist/gateway/local.js.map +1 -1
- package/dist/manager/agent/__tests__/dispose-cancels.test.d.ts +2 -0
- package/dist/manager/agent/__tests__/dispose-cancels.test.d.ts.map +1 -0
- package/dist/manager/agent/__tests__/dispose-cancels.test.js +88 -0
- package/dist/manager/agent/__tests__/dispose-cancels.test.js.map +1 -0
- package/dist/manager/agent/__tests__/lifecycle.test.js +230 -0
- package/dist/manager/agent/__tests__/lifecycle.test.js.map +1 -1
- package/dist/manager/agent/lifecycle.d.ts +35 -0
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +117 -7
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/run/persistence.d.ts +90 -1
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +120 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/plugin/__tests__/enable-contributions.test.js +3 -3
- package/dist/plugin/__tests__/enable-contributions.test.js.map +1 -1
- package/dist/plugin/__tests__/hook-ordering.test.d.ts +2 -0
- package/dist/plugin/__tests__/hook-ordering.test.d.ts.map +1 -0
- package/dist/plugin/__tests__/hook-ordering.test.js +227 -0
- package/dist/plugin/__tests__/hook-ordering.test.js.map +1 -0
- package/dist/plugin/__tests__/install-time-refusal.test.d.ts +2 -0
- package/dist/plugin/__tests__/install-time-refusal.test.d.ts.map +1 -0
- package/dist/plugin/__tests__/install-time-refusal.test.js +49 -0
- package/dist/plugin/__tests__/install-time-refusal.test.js.map +1 -0
- package/dist/plugin/__tests__/lifecycle.test.js +95 -68
- package/dist/plugin/__tests__/lifecycle.test.js.map +1 -1
- package/dist/plugin/lifecycle.d.ts +15 -1
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +67 -20
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/loader.d.ts +15 -0
- package/dist/plugin/loader.d.ts.map +1 -1
- package/dist/plugin/loader.js +33 -1
- package/dist/plugin/loader.js.map +1 -1
- package/dist/probe/registry.d.ts.map +1 -1
- package/dist/probe/registry.js +19 -1
- package/dist/probe/registry.js.map +1 -1
- package/dist/probe/registry.test.d.ts +9 -3
- package/dist/probe/registry.test.d.ts.map +1 -1
- package/dist/probe/registry.test.js +44 -6
- package/dist/probe/registry.test.js.map +1 -1
- package/dist/provider/__tests__/mock-script.test.d.ts +2 -0
- package/dist/provider/__tests__/mock-script.test.d.ts.map +1 -0
- package/dist/provider/__tests__/mock-script.test.js +151 -0
- package/dist/provider/__tests__/mock-script.test.js.map +1 -0
- package/dist/provider/__tests__/retry-visibility.test.d.ts +2 -0
- package/dist/provider/__tests__/retry-visibility.test.d.ts.map +1 -0
- package/dist/provider/__tests__/retry-visibility.test.js +137 -0
- package/dist/provider/__tests__/retry-visibility.test.js.map +1 -0
- package/dist/provider/__tests__/retry.test.d.ts +2 -0
- package/dist/provider/__tests__/retry.test.d.ts.map +1 -0
- package/dist/provider/__tests__/retry.test.js +259 -0
- package/dist/provider/__tests__/retry.test.js.map +1 -0
- package/dist/provider/capabilities.d.ts +1 -0
- package/dist/provider/capabilities.d.ts.map +1 -1
- package/dist/provider/capabilities.js +2 -0
- package/dist/provider/capabilities.js.map +1 -1
- package/dist/provider/collect.d.ts +1 -1
- package/dist/provider/collect.js +1 -1
- package/dist/provider/collect.test.d.ts +1 -1
- package/dist/provider/collect.test.js +1 -1
- package/dist/provider/index.d.ts +3 -0
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +2 -0
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/mock-register.d.ts.map +1 -1
- package/dist/provider/mock-register.js +5 -2
- package/dist/provider/mock-register.js.map +1 -1
- package/dist/provider/mock.d.ts +35 -5
- package/dist/provider/mock.d.ts.map +1 -1
- package/dist/provider/mock.js +104 -32
- package/dist/provider/mock.js.map +1 -1
- package/dist/provider/retry.d.ts +42 -0
- package/dist/provider/retry.d.ts.map +1 -0
- package/dist/provider/retry.js +161 -0
- package/dist/provider/retry.js.map +1 -0
- package/dist/public-runtime.d.ts +26 -7
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +50 -7
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-types.d.ts +5 -1
- package/dist/public-types.d.ts.map +1 -1
- package/dist/rag/__tests__/retrieval-math.test.d.ts +2 -0
- package/dist/rag/__tests__/retrieval-math.test.d.ts.map +1 -0
- package/dist/rag/__tests__/retrieval-math.test.js +46 -0
- package/dist/rag/__tests__/retrieval-math.test.js.map +1 -0
- package/dist/rag/chunking.d.ts +12 -0
- package/dist/rag/chunking.d.ts.map +1 -1
- package/dist/rag/chunking.js +32 -1
- package/dist/rag/chunking.js.map +1 -1
- package/dist/rag/embedding.d.ts +4 -4
- package/dist/rag/embedding.d.ts.map +1 -1
- package/dist/rag/embedding.js +23 -3
- package/dist/rag/embedding.js.map +1 -1
- package/dist/rag/embedding.test.d.ts +1 -1
- package/dist/rag/embedding.test.js +59 -10
- package/dist/rag/embedding.test.js.map +1 -1
- package/dist/rag/index.d.ts +1 -1
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +1 -1
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/retriever.d.ts +0 -1
- package/dist/rag/retriever.d.ts.map +1 -1
- package/dist/rag/retriever.js +75 -22
- package/dist/rag/retriever.js.map +1 -1
- package/dist/rag/vector-store.test.d.ts +1 -1
- package/dist/rag/vector-store.test.js +2 -2
- package/dist/rag/vector-store.test.js.map +1 -1
- package/dist/registry/ManagedRegistry.test.d.ts +1 -1
- package/dist/registry/ManagedRegistry.test.js +1 -1
- package/dist/registry/Registry.test.d.ts +1 -1
- package/dist/registry/Registry.test.js +1 -1
- package/dist/registry/connector/definitions.test.d.ts +1 -1
- package/dist/registry/connector/definitions.test.js +1 -1
- package/dist/registry/tool/__tests__/schema.test.d.ts +2 -0
- package/dist/registry/tool/__tests__/schema.test.d.ts.map +1 -0
- package/dist/registry/tool/__tests__/schema.test.js +176 -0
- package/dist/registry/tool/__tests__/schema.test.js.map +1 -0
- package/dist/registry/tool/__tests__/tool-name-validation.test.d.ts +2 -0
- package/dist/registry/tool/__tests__/tool-name-validation.test.d.ts.map +1 -0
- package/dist/registry/tool/__tests__/tool-name-validation.test.js +70 -0
- package/dist/registry/tool/__tests__/tool-name-validation.test.js.map +1 -0
- package/dist/registry/tool/execute.d.ts +37 -0
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +91 -21
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/schema.d.ts +26 -0
- package/dist/registry/tool/schema.d.ts.map +1 -0
- package/dist/registry/tool/schema.js +77 -0
- package/dist/registry/tool/schema.js.map +1 -0
- package/dist/registry/toolset/catalog.d.ts.map +1 -1
- package/dist/registry/toolset/catalog.js +0 -1
- package/dist/registry/toolset/catalog.js.map +1 -1
- package/dist/registry/toolset/catalog.test.js +0 -1
- package/dist/registry/toolset/catalog.test.js.map +1 -1
- package/dist/run/reporter.d.ts.map +1 -1
- package/dist/run/reporter.js +76 -0
- package/dist/run/reporter.js.map +1 -1
- package/dist/runtime/bidi/__tests__/session.test.d.ts +2 -0
- package/dist/runtime/bidi/__tests__/session.test.d.ts.map +1 -0
- package/dist/runtime/bidi/__tests__/session.test.js +201 -0
- package/dist/runtime/bidi/__tests__/session.test.js.map +1 -0
- package/dist/runtime/bidi/index.d.ts +5 -0
- package/dist/runtime/bidi/index.d.ts.map +1 -0
- package/dist/runtime/bidi/index.js +3 -0
- package/dist/runtime/bidi/index.js.map +1 -0
- package/dist/runtime/bidi/mock.d.ts +34 -0
- package/dist/runtime/bidi/mock.d.ts.map +1 -0
- package/dist/runtime/bidi/mock.js +60 -0
- package/dist/runtime/bidi/mock.js.map +1 -0
- package/dist/runtime/bidi/session.d.ts +44 -0
- package/dist/runtime/bidi/session.d.ts.map +1 -0
- package/dist/runtime/bidi/session.js +154 -0
- package/dist/runtime/bidi/session.js.map +1 -0
- package/dist/runtime/decision/parser.d.ts.map +1 -1
- package/dist/runtime/decision/parser.js +8 -1
- package/dist/runtime/decision/parser.js.map +1 -1
- package/dist/runtime/decision/parser.test.d.ts +2 -0
- package/dist/runtime/decision/parser.test.d.ts.map +1 -0
- package/dist/runtime/decision/parser.test.js +37 -0
- package/dist/runtime/decision/parser.test.js.map +1 -0
- package/dist/runtime/query/__tests__/answer-review.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/answer-review.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/answer-review.test.js +141 -0
- package/dist/runtime/query/__tests__/answer-review.test.js.map +1 -0
- package/dist/runtime/query/__tests__/capability-negotiation.test.js +24 -111
- package/dist/runtime/query/__tests__/capability-negotiation.test.js.map +1 -1
- package/dist/runtime/query/__tests__/checkpoint-store.test.js +12 -44
- package/dist/runtime/query/__tests__/checkpoint-store.test.js.map +1 -1
- package/dist/runtime/query/__tests__/checkpoint.test.js +2 -10
- package/dist/runtime/query/__tests__/checkpoint.test.js.map +1 -1
- package/dist/runtime/query/__tests__/citations.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/citations.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/citations.test.js +85 -0
- package/dist/runtime/query/__tests__/citations.test.js.map +1 -0
- package/dist/runtime/query/__tests__/content-budget.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/content-budget.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/content-budget.test.js +69 -0
- package/dist/runtime/query/__tests__/content-budget.test.js.map +1 -0
- package/dist/runtime/query/__tests__/context.test.js +3 -2
- package/dist/runtime/query/__tests__/context.test.js.map +1 -1
- package/dist/runtime/query/__tests__/deferred-tools.test.js +21 -130
- package/dist/runtime/query/__tests__/deferred-tools.test.js.map +1 -1
- package/dist/runtime/query/__tests__/delegation-resume.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/delegation-resume.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/delegation-resume.test.js +111 -0
- package/dist/runtime/query/__tests__/delegation-resume.test.js.map +1 -0
- package/dist/runtime/query/__tests__/document-attachments.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/document-attachments.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/document-attachments.test.js +92 -0
- package/dist/runtime/query/__tests__/document-attachments.test.js.map +1 -0
- package/dist/runtime/query/__tests__/durable-park-and-trace.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/durable-park-and-trace.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/durable-park-and-trace.test.js +194 -0
- package/dist/runtime/query/__tests__/durable-park-and-trace.test.js.map +1 -0
- package/dist/runtime/query/__tests__/durable-question-park.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/durable-question-park.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/durable-question-park.test.js +253 -0
- package/dist/runtime/query/__tests__/durable-question-park.test.js.map +1 -0
- package/dist/runtime/query/__tests__/durable-run-state.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/durable-run-state.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/durable-run-state.test.js +158 -0
- package/dist/runtime/query/__tests__/durable-run-state.test.js.map +1 -0
- package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js +24 -20
- package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js.map +1 -1
- package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.js +187 -0
- package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.js.map +1 -0
- package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.js +95 -0
- package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.js.map +1 -0
- package/dist/runtime/query/__tests__/guardrails-e2e.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/guardrails-e2e.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/guardrails-e2e.test.js +132 -0
- package/dist/runtime/query/__tests__/guardrails-e2e.test.js.map +1 -0
- package/dist/runtime/query/__tests__/guardrails.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/guardrails.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/guardrails.test.js +163 -0
- package/dist/runtime/query/__tests__/guardrails.test.js.map +1 -0
- package/dist/runtime/query/__tests__/hook-model-visibility.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/hook-model-visibility.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/hook-model-visibility.test.js +119 -0
- package/dist/runtime/query/__tests__/hook-model-visibility.test.js.map +1 -0
- package/dist/runtime/query/__tests__/long-document-flow.test.js +9 -2
- package/dist/runtime/query/__tests__/long-document-flow.test.js.map +1 -1
- package/dist/runtime/query/__tests__/memory-promotion.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/memory-promotion.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/memory-promotion.test.js +119 -0
- package/dist/runtime/query/__tests__/memory-promotion.test.js.map +1 -0
- package/dist/runtime/query/__tests__/orphan-task-turn-end.test.js +5 -27
- package/dist/runtime/query/__tests__/orphan-task-turn-end.test.js.map +1 -1
- package/dist/runtime/query/__tests__/overflow-relief.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/overflow-relief.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/overflow-relief.test.js +119 -0
- package/dist/runtime/query/__tests__/overflow-relief.test.js.map +1 -0
- package/dist/runtime/query/__tests__/partial-batch-resume.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/partial-batch-resume.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/partial-batch-resume.test.js +205 -0
- package/dist/runtime/query/__tests__/partial-batch-resume.test.js.map +1 -0
- package/dist/runtime/query/__tests__/plugin-hooks.test.js +0 -1
- package/dist/runtime/query/__tests__/plugin-hooks.test.js.map +1 -1
- package/dist/runtime/query/__tests__/prepare-step-chain.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/prepare-step-chain.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/prepare-step-chain.test.js +104 -0
- package/dist/runtime/query/__tests__/prepare-step-chain.test.js.map +1 -0
- package/dist/runtime/query/__tests__/prepare-step.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/prepare-step.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/prepare-step.test.js +194 -0
- package/dist/runtime/query/__tests__/prepare-step.test.js.map +1 -0
- package/dist/runtime/query/__tests__/probe-veto-is-error.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/probe-veto-is-error.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/probe-veto-is-error.test.js +111 -0
- package/dist/runtime/query/__tests__/probe-veto-is-error.test.js.map +1 -0
- package/dist/runtime/query/__tests__/prompt.test.js +1 -1
- package/dist/runtime/query/__tests__/prompt.test.js.map +1 -1
- package/dist/runtime/query/__tests__/provider-fault-pauses.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/provider-fault-pauses.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/provider-fault-pauses.test.js +86 -0
- package/dist/runtime/query/__tests__/provider-fault-pauses.test.js.map +1 -0
- package/dist/runtime/query/__tests__/reasoning-stream.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/reasoning-stream.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/reasoning-stream.test.js +146 -0
- package/dist/runtime/query/__tests__/reasoning-stream.test.js.map +1 -0
- package/dist/runtime/query/__tests__/recoverable-settle.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/recoverable-settle.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/recoverable-settle.test.js +119 -0
- package/dist/runtime/query/__tests__/recoverable-settle.test.js.map +1 -0
- package/dist/runtime/query/__tests__/resume-budget.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/resume-budget.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/resume-budget.test.js +130 -0
- package/dist/runtime/query/__tests__/resume-budget.test.js.map +1 -0
- package/dist/runtime/query/__tests__/resume-pending.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/resume-pending.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/resume-pending.test.js +226 -0
- package/dist/runtime/query/__tests__/resume-pending.test.js.map +1 -0
- package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.js +89 -0
- package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.js.map +1 -0
- package/dist/runtime/query/__tests__/stop-condition.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/stop-condition.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/stop-condition.test.js +205 -0
- package/dist/runtime/query/__tests__/stop-condition.test.js.map +1 -0
- package/dist/runtime/query/__tests__/structured-output.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/structured-output.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/structured-output.test.js +219 -0
- package/dist/runtime/query/__tests__/structured-output.test.js.map +1 -0
- package/dist/runtime/query/__tests__/structured-run-failure.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/structured-run-failure.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/structured-run-failure.test.js +117 -0
- package/dist/runtime/query/__tests__/structured-run-failure.test.js.map +1 -0
- package/dist/runtime/query/__tests__/terminal-tool.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/terminal-tool.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/terminal-tool.test.js +119 -0
- package/dist/runtime/query/__tests__/terminal-tool.test.js.map +1 -0
- package/dist/runtime/query/__tests__/tool-grants.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/tool-grants.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/tool-grants.test.js +85 -0
- package/dist/runtime/query/__tests__/tool-grants.test.js.map +1 -0
- package/dist/runtime/query/__tests__/tool-output-budget.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/tool-output-budget.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/tool-output-budget.test.js +0 -0
- package/dist/runtime/query/__tests__/tool-output-budget.test.js.map +1 -0
- package/dist/runtime/query/__tests__/tool-pause.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/tool-pause.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/tool-pause.test.js +165 -0
- package/dist/runtime/query/__tests__/tool-pause.test.js.map +1 -0
- package/dist/runtime/query/__tests__/tool-progress.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/tool-progress.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/tool-progress.test.js +122 -0
- package/dist/runtime/query/__tests__/tool-progress.test.js.map +1 -0
- package/dist/runtime/query/__tests__/tool-repair-retry.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/tool-repair-retry.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/tool-repair-retry.test.js +196 -0
- package/dist/runtime/query/__tests__/tool-repair-retry.test.js.map +1 -0
- package/dist/runtime/query/__tests__/tool-result-wire.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/tool-result-wire.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/tool-result-wire.test.js +106 -0
- package/dist/runtime/query/__tests__/tool-result-wire.test.js.map +1 -0
- package/dist/runtime/query/__tests__/tool-timeout.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/tool-timeout.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/tool-timeout.test.js +184 -0
- package/dist/runtime/query/__tests__/tool-timeout.test.js.map +1 -0
- package/dist/runtime/query/__tests__/trace-parenting.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/trace-parenting.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/trace-parenting.test.js +111 -0
- package/dist/runtime/query/__tests__/trace-parenting.test.js.map +1 -0
- package/dist/runtime/query/__tests__/wiring-seams.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/wiring-seams.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/wiring-seams.test.js +237 -0
- package/dist/runtime/query/__tests__/wiring-seams.test.js.map +1 -0
- package/dist/runtime/query/checkpoint.d.ts +124 -6
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +207 -6
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/events.js +2 -2
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +224 -7
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +662 -35
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/guard.d.ts +18 -0
- package/dist/runtime/query/guard.d.ts.map +1 -1
- package/dist/runtime/query/guard.js +16 -1
- package/dist/runtime/query/guard.js.map +1 -1
- package/dist/runtime/query/guardrail-presets.d.ts +36 -0
- package/dist/runtime/query/guardrail-presets.d.ts.map +1 -0
- package/dist/runtime/query/guardrail-presets.js +96 -0
- package/dist/runtime/query/guardrail-presets.js.map +1 -0
- package/dist/runtime/query/guardrails.d.ts +35 -0
- package/dist/runtime/query/guardrails.d.ts.map +1 -0
- package/dist/runtime/query/guardrails.js +102 -0
- package/dist/runtime/query/guardrails.js.map +1 -0
- package/dist/runtime/query/index.d.ts +213 -2
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +458 -10
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.d.ts +2 -0
- package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.js +131 -0
- package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.js.map +1 -0
- package/dist/runtime/query/iteration/index.d.ts +76 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +577 -34
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.js +14 -2
- package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.test.d.ts +1 -1
- package/dist/runtime/query/iteration/phases/advisory.test.js +4 -1
- package/dist/runtime/query/iteration/phases/advisory.test.js.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-safe-cut.test.js +1 -1
- package/dist/runtime/query/iteration/phases/compaction-safe-cut.test.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts +22 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +297 -64
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context-measurement.test.d.ts +21 -0
- package/dist/runtime/query/iteration/phases/context-measurement.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/context-measurement.test.js +161 -0
- package/dist/runtime/query/iteration/phases/context-measurement.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/context.d.ts +62 -2
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js +87 -0
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/hitl-answer-question.test.js +3 -1
- package/dist/runtime/query/iteration/phases/hitl-answer-question.test.js.map +1 -1
- package/dist/runtime/query/iteration/phases/overflow-escalation.test.d.ts +15 -0
- package/dist/runtime/query/iteration/phases/overflow-escalation.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/overflow-escalation.test.js +130 -0
- package/dist/runtime/query/iteration/phases/overflow-escalation.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/plan.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/plan.js +8 -2
- package/dist/runtime/query/iteration/phases/plan.js.map +1 -1
- package/dist/runtime/query/iteration/phases/retained-messages.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/retained-messages.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/retained-messages.test.js +180 -0
- package/dist/runtime/query/iteration/phases/retained-messages.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/tool-review-denials.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/tool-review-denials.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/tool-review-denials.test.js +224 -0
- package/dist/runtime/query/iteration/phases/tool-review-denials.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/tool-review.d.ts +29 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +114 -44
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/phases/working-memory-compaction.test.js +20 -9
- package/dist/runtime/query/iteration/phases/working-memory-compaction.test.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts +2 -26
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +254 -16
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +6 -2
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +25 -1
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/question-park.d.ts +85 -0
- package/dist/runtime/query/question-park.d.ts.map +1 -0
- package/dist/runtime/query/question-park.js +71 -0
- package/dist/runtime/query/question-park.js.map +1 -0
- package/dist/runtime/query/result.d.ts +9 -0
- package/dist/runtime/query/result.d.ts.map +1 -1
- package/dist/runtime/query/result.js +49 -0
- package/dist/runtime/query/result.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts +106 -0
- package/dist/runtime/query/resume-pending.d.ts.map +1 -0
- package/dist/runtime/query/resume-pending.js +312 -0
- package/dist/runtime/query/resume-pending.js.map +1 -0
- package/dist/runtime/query/run-state.d.ts +52 -0
- package/dist/runtime/query/run-state.d.ts.map +1 -0
- package/dist/runtime/query/run-state.js +87 -0
- package/dist/runtime/query/run-state.js.map +1 -0
- package/dist/runtime/query/tool-grants.d.ts +44 -0
- package/dist/runtime/query/tool-grants.d.ts.map +1 -0
- package/dist/runtime/query/tool-grants.js +63 -0
- package/dist/runtime/query/tool-grants.js.map +1 -0
- package/dist/runtime/query/tool-output-budget.d.ts +83 -0
- package/dist/runtime/query/tool-output-budget.d.ts.map +1 -0
- package/dist/runtime/query/tool-output-budget.js +147 -0
- package/dist/runtime/query/tool-output-budget.js.map +1 -0
- package/dist/runtime/query/tool-pause.d.ts +41 -0
- package/dist/runtime/query/tool-pause.d.ts.map +1 -0
- package/dist/runtime/query/tool-pause.js +94 -0
- package/dist/runtime/query/tool-pause.js.map +1 -0
- package/dist/runtime/query/tooling.d.ts +10 -1
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +13 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/sandbox/__tests__/isolation.test.d.ts +2 -0
- package/dist/sandbox/__tests__/isolation.test.d.ts.map +1 -0
- package/dist/sandbox/__tests__/isolation.test.js +139 -0
- package/dist/sandbox/__tests__/isolation.test.js.map +1 -0
- package/dist/sandbox/__tests__/output-truncation.test.d.ts +2 -0
- package/dist/sandbox/__tests__/output-truncation.test.d.ts.map +1 -0
- package/dist/sandbox/__tests__/output-truncation.test.js +88 -0
- package/dist/sandbox/__tests__/output-truncation.test.js.map +1 -0
- package/dist/sandbox/__tests__/resource-limits.test.d.ts +2 -0
- package/dist/sandbox/__tests__/resource-limits.test.d.ts.map +1 -0
- package/dist/sandbox/__tests__/resource-limits.test.js +86 -0
- package/dist/sandbox/__tests__/resource-limits.test.js.map +1 -0
- package/dist/sandbox/factory.js +1 -1
- package/dist/sandbox/factory.js.map +1 -1
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +1 -0
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/isolation.d.ts +15 -0
- package/dist/sandbox/isolation.d.ts.map +1 -0
- package/dist/sandbox/isolation.js +53 -0
- package/dist/sandbox/isolation.js.map +1 -0
- package/dist/sandbox/provider/local.d.ts +51 -2
- package/dist/sandbox/provider/local.d.ts.map +1 -1
- package/dist/sandbox/provider/local.js +139 -69
- package/dist/sandbox/provider/local.js.map +1 -1
- package/dist/session/__tests__/integration/spawn-rollback.test.d.ts +1 -1
- package/dist/session/__tests__/integration/spawn-rollback.test.js +1 -1
- package/dist/session/handoff/broadcast.js +3 -3
- package/dist/session/handoff/broadcast.js.map +1 -1
- package/dist/session/migration/__tests__/filesystem.test.js +5 -1
- package/dist/session/migration/__tests__/filesystem.test.js.map +1 -1
- package/dist/session/migration/filesystem.d.ts.map +1 -1
- package/dist/session/migration/filesystem.js +7 -13
- package/dist/session/migration/filesystem.js.map +1 -1
- package/dist/session/migration/marker.d.ts.map +1 -1
- package/dist/session/migration/marker.js +5 -10
- package/dist/session/migration/marker.js.map +1 -1
- package/dist/session/retention/disk-backend.d.ts.map +1 -1
- package/dist/session/retention/disk-backend.js +5 -12
- package/dist/session/retention/disk-backend.js.map +1 -1
- package/dist/session/workspace/__tests__/git-worktree.test.js +6 -2
- package/dist/session/workspace/__tests__/git-worktree.test.js.map +1 -1
- package/dist/session/workspace/__tests__/shared-run.test.js +15 -0
- package/dist/session/workspace/__tests__/shared-run.test.js.map +1 -1
- package/dist/session/workspace/shared-run.js +8 -1
- package/dist/session/workspace/shared-run.js.map +1 -1
- package/dist/skills/__tests__/frontmatter.test.d.ts +2 -0
- package/dist/skills/__tests__/frontmatter.test.d.ts.map +1 -0
- package/dist/skills/__tests__/frontmatter.test.js +106 -0
- package/dist/skills/__tests__/frontmatter.test.js.map +1 -0
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +42 -3
- package/dist/skills/loader.js.map +1 -1
- package/dist/store/__tests__/checkpoint-integrity.test.d.ts +2 -0
- package/dist/store/__tests__/checkpoint-integrity.test.d.ts.map +1 -0
- package/dist/store/__tests__/checkpoint-integrity.test.js +112 -0
- package/dist/store/__tests__/checkpoint-integrity.test.js.map +1 -0
- package/dist/store/__tests__/checkpoint-versioning.test.d.ts +2 -0
- package/dist/store/__tests__/checkpoint-versioning.test.d.ts.map +1 -0
- package/dist/store/__tests__/checkpoint-versioning.test.js +151 -0
- package/dist/store/__tests__/checkpoint-versioning.test.js.map +1 -0
- package/dist/store/__tests__/schema-adoption.test.d.ts +2 -0
- package/dist/store/__tests__/schema-adoption.test.d.ts.map +1 -0
- package/dist/store/__tests__/schema-adoption.test.js +90 -0
- package/dist/store/__tests__/schema-adoption.test.js.map +1 -0
- package/dist/store/__tests__/schema.test.d.ts +2 -0
- package/dist/store/__tests__/schema.test.d.ts.map +1 -0
- package/dist/store/__tests__/schema.test.js +93 -0
- package/dist/store/__tests__/schema.test.js.map +1 -0
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +16 -16
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/run/disk.d.ts +23 -0
- package/dist/store/run/disk.d.ts.map +1 -1
- package/dist/store/run/disk.js +148 -23
- package/dist/store/run/disk.js.map +1 -1
- package/dist/store/schema.d.ts +73 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +103 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/session/disk.d.ts.map +1 -1
- package/dist/store/session/disk.js +25 -13
- package/dist/store/session/disk.js.map +1 -1
- package/dist/store/task/__tests__/lookup-across-runs.test.d.ts +2 -0
- package/dist/store/task/__tests__/lookup-across-runs.test.d.ts.map +1 -0
- package/dist/store/task/__tests__/lookup-across-runs.test.js +60 -0
- package/dist/store/task/__tests__/lookup-across-runs.test.js.map +1 -0
- package/dist/store/task/disk.d.ts +18 -0
- package/dist/store/task/disk.d.ts.map +1 -1
- package/dist/store/task/disk.js +61 -16
- package/dist/store/task/disk.js.map +1 -1
- package/dist/store/thread/disk.d.ts.map +1 -1
- package/dist/store/thread/disk.js +20 -11
- package/dist/store/thread/disk.js.map +1 -1
- package/dist/streaming/coalesce.d.ts +1 -1
- package/dist/streaming/coalesce.js +1 -1
- package/dist/telemetry/__tests__/latency-instruments.test.d.ts +2 -0
- package/dist/telemetry/__tests__/latency-instruments.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/latency-instruments.test.js +82 -0
- package/dist/telemetry/__tests__/latency-instruments.test.js.map +1 -0
- package/dist/telemetry/__tests__/metrics.test.d.ts +2 -0
- package/dist/telemetry/__tests__/metrics.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/metrics.test.js +112 -0
- package/dist/telemetry/__tests__/metrics.test.js.map +1 -0
- package/dist/telemetry/__tests__/span-hierarchy.test.d.ts +2 -0
- package/dist/telemetry/__tests__/span-hierarchy.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/span-hierarchy.test.js +84 -0
- package/dist/telemetry/__tests__/span-hierarchy.test.js.map +1 -0
- package/dist/telemetry/attributes.d.ts +44 -0
- package/dist/telemetry/attributes.d.ts.map +1 -1
- package/dist/telemetry/attributes.js +80 -0
- package/dist/telemetry/attributes.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +41 -0
- package/dist/telemetry/metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics.js +160 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/test-setup.d.ts +3 -3
- package/dist/test-setup.js +3 -3
- package/dist/test-support/paths.d.ts +14 -0
- package/dist/test-support/paths.d.ts.map +1 -0
- package/dist/test-support/paths.js +16 -0
- package/dist/test-support/paths.js.map +1 -0
- package/dist/tools/__tests__/path-containment.test.d.ts +2 -0
- package/dist/tools/__tests__/path-containment.test.d.ts.map +1 -0
- package/dist/tools/__tests__/path-containment.test.js +133 -0
- package/dist/tools/__tests__/path-containment.test.js.map +1 -0
- package/dist/tools/__tests__/posix-path.test.d.ts +2 -0
- package/dist/tools/__tests__/posix-path.test.d.ts.map +1 -0
- package/dist/tools/__tests__/posix-path.test.js +67 -0
- package/dist/tools/__tests__/posix-path.test.js.map +1 -0
- package/dist/tools/__tests__/sandboxed-search.test.d.ts +2 -0
- package/dist/tools/__tests__/sandboxed-search.test.d.ts.map +1 -0
- package/dist/tools/__tests__/sandboxed-search.test.js +114 -0
- package/dist/tools/__tests__/sandboxed-search.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/computer-use.test.js +12 -2
- package/dist/tools/builtins/__tests__/computer-use.test.js.map +1 -1
- package/dist/tools/builtins/__tests__/edit.test.js +10 -216
- package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
- package/dist/tools/builtins/__tests__/payload-budget.test.js +16 -30
- package/dist/tools/builtins/__tests__/payload-budget.test.js.map +1 -1
- package/dist/tools/builtins/__tests__/read-file.test.js +23 -1
- package/dist/tools/builtins/__tests__/read-file.test.js.map +1 -1
- package/dist/tools/builtins/__tests__/write-file.test.js +13 -37
- package/dist/tools/builtins/__tests__/write-file.test.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +33 -4
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/computer-use.d.ts +22 -22
- package/dist/tools/builtins/computer-use.d.ts.map +1 -1
- package/dist/tools/builtins/computer-use.js +7 -1
- package/dist/tools/builtins/computer-use.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 +125 -105
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/glob.d.ts +1 -1
- package/dist/tools/builtins/glob.d.ts.map +1 -1
- package/dist/tools/builtins/glob.js +63 -6
- package/dist/tools/builtins/glob.js.map +1 -1
- package/dist/tools/builtins/grep.d.ts.map +1 -1
- package/dist/tools/builtins/grep.js +61 -8
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/index.js +6 -6
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/ls.d.ts.map +1 -1
- package/dist/tools/builtins/ls.js +4 -2
- package/dist/tools/builtins/ls.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts +1 -1
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +38 -4
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts +2 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +40 -66
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/__tests__/agent.test.d.ts +1 -1
- package/dist/tools/coordinator/__tests__/agent.test.js +2 -2
- package/dist/tools/coordinator/__tests__/agent.test.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts +20 -9
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js +2 -1
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts +20 -0
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +80 -32
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/defineTool.d.ts +16 -0
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +4 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/glob-match.d.ts +18 -0
- package/dist/tools/glob-match.d.ts.map +1 -0
- package/dist/tools/glob-match.js +50 -0
- package/dist/tools/glob-match.js.map +1 -0
- package/dist/tools/paths.d.ts +20 -0
- package/dist/tools/paths.d.ts.map +1 -0
- package/dist/tools/paths.js +41 -0
- package/dist/tools/paths.js.map +1 -0
- package/dist/tools/posix-path.d.ts +24 -0
- package/dist/tools/posix-path.d.ts.map +1 -0
- package/dist/tools/posix-path.js +67 -0
- package/dist/tools/posix-path.js.map +1 -0
- package/dist/types/advisory/config.d.ts +21 -3
- package/dist/types/advisory/config.d.ts.map +1 -1
- package/dist/types/advisory/result.d.ts +12 -10
- package/dist/types/advisory/result.d.ts.map +1 -1
- package/dist/types/agent/base.d.ts +20 -2
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/factory.d.ts +15 -9
- package/dist/types/agent/factory.d.ts.map +1 -1
- package/dist/types/agent/gateway.d.ts +18 -0
- package/dist/types/agent/gateway.d.ts.map +1 -1
- package/dist/types/agent/manager.d.ts +19 -0
- package/dist/types/agent/manager.d.ts.map +1 -1
- package/dist/types/agent/reactive.d.ts +48 -0
- package/dist/types/agent/reactive.d.ts.map +1 -1
- package/dist/types/agent/router.d.ts +11 -0
- package/dist/types/agent/router.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +2 -2
- package/dist/types/agent/task.d.ts +24 -0
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/bidi/index.d.ts +140 -0
- package/dist/types/bidi/index.d.ts.map +1 -0
- package/dist/types/bidi/index.js +2 -0
- package/dist/types/bidi/index.js.map +1 -0
- package/dist/types/common/__tests__/numeric-correctness.test.d.ts +2 -0
- package/dist/types/common/__tests__/numeric-correctness.test.d.ts.map +1 -0
- package/dist/types/common/__tests__/numeric-correctness.test.js +108 -0
- package/dist/types/common/__tests__/numeric-correctness.test.js.map +1 -0
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/index.js +15 -4
- package/dist/types/common/index.js.map +1 -1
- package/dist/types/connector/mcp.d.ts +29 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/errors/__tests__/catalog.test.d.ts +2 -0
- package/dist/types/errors/__tests__/catalog.test.d.ts.map +1 -0
- package/dist/types/errors/__tests__/catalog.test.js +106 -0
- package/dist/types/errors/__tests__/catalog.test.js.map +1 -0
- package/dist/types/errors/__tests__/errors.test.d.ts +2 -0
- package/dist/types/errors/__tests__/errors.test.d.ts.map +1 -0
- package/dist/types/errors/__tests__/errors.test.js +104 -0
- package/dist/types/errors/__tests__/errors.test.js.map +1 -0
- package/dist/types/errors/catalog.d.ts +83 -0
- package/dist/types/errors/catalog.d.ts.map +1 -0
- package/dist/types/errors/catalog.js +148 -0
- package/dist/types/errors/catalog.js.map +1 -0
- package/dist/types/errors/index.d.ts +73 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/errors/index.js +70 -0
- package/dist/types/errors/index.js.map +1 -0
- package/dist/types/guardrail/index.d.ts +57 -0
- package/dist/types/guardrail/index.d.ts.map +1 -0
- package/dist/types/guardrail/index.js +2 -0
- package/dist/types/guardrail/index.js.map +1 -0
- package/dist/types/hitl/index.d.ts +97 -14
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/ids/index.d.ts +2 -2
- package/dist/types/message/content.d.ts +22 -0
- package/dist/types/message/content.d.ts.map +1 -0
- package/dist/types/message/content.js +49 -0
- package/dist/types/message/content.js.map +1 -0
- package/dist/types/message/index.d.ts +193 -8
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +19 -4
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +78 -3
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +0 -1
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/provider/__tests__/cause-chain.test.d.ts +2 -0
- package/dist/types/provider/__tests__/cause-chain.test.d.ts.map +1 -0
- package/dist/types/provider/__tests__/cause-chain.test.js +108 -0
- package/dist/types/provider/__tests__/cause-chain.test.js.map +1 -0
- package/dist/types/provider/__tests__/declared-retryable.test.d.ts +2 -0
- package/dist/types/provider/__tests__/declared-retryable.test.d.ts.map +1 -0
- package/dist/types/provider/__tests__/declared-retryable.test.js +70 -0
- package/dist/types/provider/__tests__/declared-retryable.test.js.map +1 -0
- package/dist/types/provider/__tests__/overflow-classification.test.d.ts +2 -0
- package/dist/types/provider/__tests__/overflow-classification.test.d.ts.map +1 -0
- package/dist/types/provider/__tests__/overflow-classification.test.js +80 -0
- package/dist/types/provider/__tests__/overflow-classification.test.js.map +1 -0
- package/dist/types/provider/chat.d.ts +27 -1
- package/dist/types/provider/chat.d.ts.map +1 -1
- package/dist/types/provider/config.d.ts +83 -2
- package/dist/types/provider/config.d.ts.map +1 -1
- package/dist/types/provider/errors.d.ts +102 -0
- package/dist/types/provider/errors.d.ts.map +1 -0
- package/dist/types/provider/errors.js +393 -0
- package/dist/types/provider/errors.js.map +1 -0
- package/dist/types/provider/index.d.ts +3 -2
- package/dist/types/provider/index.d.ts.map +1 -1
- package/dist/types/provider/stream.d.ts +59 -3
- package/dist/types/provider/stream.d.ts.map +1 -1
- package/dist/types/rag/embedding.d.ts +11 -2
- package/dist/types/rag/embedding.d.ts.map +1 -1
- package/dist/types/run/__tests__/step.test.d.ts +2 -0
- package/dist/types/run/__tests__/step.test.d.ts.map +1 -0
- package/dist/types/run/__tests__/step.test.js +107 -0
- package/dist/types/run/__tests__/step.test.js.map +1 -0
- package/dist/types/run/answer-review.d.ts +46 -0
- package/dist/types/run/answer-review.d.ts.map +1 -0
- package/dist/types/run/answer-review.js +2 -0
- package/dist/types/run/answer-review.js.map +1 -0
- package/dist/types/run/config.d.ts +33 -0
- package/dist/types/run/config.d.ts.map +1 -1
- package/dist/types/run/derive-status.d.ts +29 -0
- package/dist/types/run/derive-status.d.ts.map +1 -0
- package/dist/types/run/derive-status.js +49 -0
- package/dist/types/run/derive-status.js.map +1 -0
- package/dist/types/run/entity.d.ts +16 -0
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +228 -4
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/events.js +7 -0
- package/dist/types/run/events.js.map +1 -1
- package/dist/types/run/index.d.ts +5 -0
- package/dist/types/run/index.d.ts.map +1 -1
- package/dist/types/run/index.js +3 -0
- package/dist/types/run/index.js.map +1 -1
- package/dist/types/run/memory-promotion.d.ts +90 -0
- package/dist/types/run/memory-promotion.d.ts.map +1 -0
- package/dist/types/run/memory-promotion.js +38 -0
- package/dist/types/run/memory-promotion.js.map +1 -0
- package/dist/types/run/prepare-step.d.ts +100 -0
- package/dist/types/run/prepare-step.d.ts.map +1 -0
- package/dist/types/run/prepare-step.js +2 -0
- package/dist/types/run/prepare-step.js.map +1 -0
- package/dist/types/run/state.d.ts +85 -0
- package/dist/types/run/state.d.ts.map +1 -0
- package/dist/types/run/state.js +33 -0
- package/dist/types/run/state.js.map +1 -0
- package/dist/types/run/step.d.ts +77 -0
- package/dist/types/run/step.d.ts.map +1 -0
- package/dist/types/run/step.js +26 -0
- package/dist/types/run/step.js.map +1 -0
- package/dist/types/run/stop-reason.d.ts +31 -3
- package/dist/types/run/stop-reason.d.ts.map +1 -1
- package/dist/types/sandbox/index.d.ts +82 -10
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js +13 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/structured-output/index.d.ts +6 -5
- package/dist/types/structured-output/index.d.ts.map +1 -1
- package/dist/types/thread/entity.d.ts +2 -3
- package/dist/types/thread/entity.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +193 -1
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/tool/repair.d.ts +49 -0
- package/dist/types/tool/repair.d.ts.map +1 -0
- package/dist/types/tool/repair.js +2 -0
- package/dist/types/tool/repair.js.map +1 -0
- package/dist/types/toolset/index.d.ts +2 -5
- package/dist/types/toolset/index.d.ts.map +1 -1
- package/dist/utils/__tests__/atomic-write.test.d.ts +2 -0
- package/dist/utils/__tests__/atomic-write.test.d.ts.map +1 -0
- package/dist/utils/__tests__/atomic-write.test.js +91 -0
- package/dist/utils/__tests__/atomic-write.test.js.map +1 -0
- package/dist/utils/__tests__/shell-compress.test.d.ts +2 -0
- package/dist/utils/__tests__/shell-compress.test.d.ts.map +1 -0
- package/dist/utils/__tests__/shell-compress.test.js +41 -0
- package/dist/utils/__tests__/shell-compress.test.js.map +1 -0
- package/dist/utils/atomic-write.d.ts +10 -0
- package/dist/utils/atomic-write.d.ts.map +1 -0
- package/dist/utils/atomic-write.js +83 -0
- package/dist/utils/atomic-write.js.map +1 -0
- package/dist/utils/shell-compress.d.ts.map +1 -1
- package/dist/utils/shell-compress.js +12 -1
- package/dist/utils/shell-compress.js.map +1 -1
- package/dist/verification/presets.d.ts +6 -3
- package/dist/verification/presets.d.ts.map +1 -1
- package/dist/verification/presets.js +6 -3
- package/dist/verification/presets.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/default-path-conformance.test.ts +306 -0
- package/src/__tests__/shipped-defaults.test.ts +111 -0
- package/src/advisory/__tests__/budget-enforcement.test.ts +208 -0
- package/src/advisory/__tests__/structured-response.test.ts +128 -0
- package/src/advisory/budget.ts +27 -0
- package/src/advisory/context.ts +19 -0
- package/src/advisory/executor.test.ts +12 -8
- package/src/advisory/executor.ts +37 -25
- package/src/advisory/index.ts +2 -0
- package/src/advisory/parse.ts +63 -0
- package/src/agents/AbstractAgent.ts +82 -0
- package/src/agents/PipelineAgent.ts +19 -0
- package/src/agents/ReactiveAgent.ts +47 -0
- package/src/agents/RouterAgent.ts +32 -2
- package/src/agents/SupervisorAgent.ts +31 -1
- package/src/agents/__tests__/idempotency-key.test.ts +177 -0
- package/src/agents/__tests__/invocation-lock.test.ts +154 -0
- package/src/agents/__tests__/reachability.test.ts +224 -0
- package/src/agents/__tests__/supervisor-ledger.test.ts +1 -1
- package/src/agents/index.ts +1 -1
- package/src/agents/lock.ts +0 -2
- package/src/bridge/a2a/late-events.test.ts +84 -0
- package/src/bridge/a2a/mapper.test.ts +1 -1
- package/src/bridge/a2a/mapper.ts +70 -5
- package/src/bridge/a2a/message.ts +5 -1
- package/src/bridge/sse/late-events.test.ts +182 -0
- package/src/bridge/sse/mapper.ts +109 -0
- package/src/compaction/__tests__/cleared-result-recovery.test.ts +118 -0
- package/src/compaction/__tests__/context-window.test.ts +77 -0
- package/src/compaction/__tests__/dangling.test.ts +16 -6
- package/src/compaction/__tests__/lossiness.test.ts +187 -0
- package/src/compaction/__tests__/state-across-resume.test.ts +99 -0
- package/src/compaction/__tests__/tool-result-editing.test.ts +213 -0
- package/src/compaction/__tests__/trim-opens-on-user.test.ts +118 -0
- package/src/compaction/__tests__/verifier-model.test.ts +83 -0
- package/src/compaction/context-window.ts +107 -0
- package/src/compaction/dangling.ts +48 -1
- package/src/compaction/extractor.ts +56 -1
- package/src/compaction/index.ts +16 -0
- package/src/compaction/manager.ts +53 -8
- package/src/compaction/managers/structured.ts +7 -6
- package/src/compaction/retention.ts +89 -0
- package/src/compaction/serializer.ts +42 -11
- package/src/compaction/tool-result-editing.ts +229 -0
- package/src/compaction/types.ts +10 -0
- package/src/compaction/verifier.ts +24 -1
- package/src/compaction/wire.ts +91 -0
- package/src/config/runtime.ts +63 -19
- package/src/connector/builtins/http.test.ts +13 -0
- package/src/connector/builtins/http.ts +15 -1
- package/src/connector/mcp/__tests__/discovery-policy.test.ts +133 -0
- package/src/connector/mcp/__tests__/list-pagination.test.ts +98 -0
- package/src/connector/mcp/__tests__/policy.test.ts +100 -0
- package/src/connector/mcp/__tests__/protocol-negotiation.test.ts +105 -0
- package/src/connector/mcp/__tests__/schema-fidelity.test.ts +250 -0
- package/src/connector/mcp/__tests__/structured-result.test.ts +143 -0
- package/src/connector/mcp/adapter.ts +306 -19
- package/src/connector/mcp/client.test.ts +159 -0
- package/src/connector/mcp/client.ts +160 -13
- package/src/connector/mcp/discovery.ts +74 -5
- package/src/connector/mcp/http-sse.ts +16 -1
- package/src/connector/mcp/index.ts +4 -0
- package/src/connector/mcp/policy.ts +134 -0
- package/src/connector/mcp/schema-refs.ts +126 -0
- package/src/constants/agent/index.ts +3 -0
- package/src/constants/compaction/index.ts +1 -1
- package/src/constants/continuation.ts +4 -4
- package/src/constants/mcp/index.ts +34 -0
- package/src/constants/plugin/index.ts +24 -2
- package/src/constants/sandbox/index.ts +6 -5
- package/src/constants/telemetry/index.ts +8 -0
- package/src/constants/tools/index.ts +20 -0
- package/src/contracts/api.ts +40 -0
- package/src/contracts/run-status.ts +43 -0
- package/src/eval/__tests__/case-deadline.test.ts +147 -0
- package/src/eval/__tests__/end-to-end.test.ts +259 -0
- package/src/eval/__tests__/harness-honesty.test.ts +99 -0
- package/src/eval/__tests__/harness.test.ts +249 -0
- package/src/eval/__tests__/judge.test.ts +306 -0
- package/src/eval/__tests__/scorer-gates.test.ts +156 -0
- package/src/eval/experiment.ts +335 -0
- package/src/eval/from-run.ts +48 -0
- package/src/eval/index.ts +21 -0
- package/src/eval/judge.ts +240 -0
- package/src/eval/scorers.ts +169 -0
- package/src/eval/types.ts +157 -0
- package/src/execution/local.test.ts +46 -0
- package/src/execution/local.ts +6 -1
- package/src/gateway/__tests__/list-survives-eviction.test.ts +124 -0
- package/src/gateway/local.ts +117 -3
- package/src/manager/agent/__tests__/dispose-cancels.test.ts +104 -0
- package/src/manager/agent/__tests__/lifecycle.test.ts +297 -0
- package/src/manager/agent/lifecycle.ts +127 -7
- package/src/manager/run/persistence.ts +132 -1
- package/src/plugin/__tests__/enable-contributions.test.ts +3 -3
- package/src/plugin/__tests__/hook-ordering.test.ts +252 -0
- package/src/plugin/__tests__/install-time-refusal.test.ts +68 -0
- package/src/plugin/__tests__/lifecycle.test.ts +95 -73
- package/src/plugin/lifecycle.ts +76 -22
- package/src/plugin/loader.ts +37 -1
- package/src/probe/registry.test.ts +49 -6
- package/src/probe/registry.ts +21 -1
- package/src/provider/__tests__/mock-script.test.ts +179 -0
- package/src/provider/__tests__/registry.test.ts +1 -1
- package/src/provider/__tests__/retry-visibility.test.ts +160 -0
- package/src/provider/__tests__/retry.test.ts +296 -0
- package/src/provider/capabilities.ts +4 -0
- package/src/provider/collect.test.ts +1 -1
- package/src/provider/collect.ts +1 -1
- package/src/provider/index.ts +8 -0
- package/src/provider/mock-register.ts +5 -2
- package/src/provider/mock.ts +117 -34
- package/src/provider/retry.ts +199 -0
- package/src/public-runtime.ts +111 -7
- package/src/public-types.ts +5 -1
- package/src/rag/__tests__/retrieval-math.test.ts +54 -0
- package/src/rag/chunking.ts +32 -1
- package/src/rag/embedding.test.ts +65 -10
- package/src/rag/embedding.ts +26 -5
- package/src/rag/index.ts +1 -1
- package/src/rag/retriever.ts +92 -21
- package/src/rag/vector-store.test.ts +2 -2
- package/src/registry/ManagedRegistry.test.ts +1 -1
- package/src/registry/Registry.test.ts +1 -1
- package/src/registry/connector/definitions.test.ts +1 -1
- package/src/registry/tool/__tests__/schema.test.ts +208 -0
- package/src/registry/tool/__tests__/tool-name-validation.test.ts +88 -0
- package/src/registry/tool/execute.ts +104 -22
- package/src/registry/tool/schema.ts +80 -0
- package/src/registry/toolset/catalog.test.ts +0 -1
- package/src/registry/toolset/catalog.ts +0 -1
- package/src/run/reporter.ts +84 -0
- package/src/runtime/bidi/__tests__/session.test.ts +232 -0
- package/src/runtime/bidi/index.ts +4 -0
- package/src/runtime/bidi/mock.ts +90 -0
- package/src/runtime/bidi/session.ts +205 -0
- package/src/runtime/decision/parser.test.ts +46 -0
- package/src/runtime/decision/parser.ts +8 -1
- package/src/runtime/query/__tests__/answer-review.test.ts +172 -0
- package/src/runtime/query/__tests__/capability-negotiation.test.ts +25 -129
- package/src/runtime/query/__tests__/checkpoint-store.test.ts +13 -50
- package/src/runtime/query/__tests__/checkpoint.test.ts +2 -10
- package/src/runtime/query/__tests__/citations.test.ts +111 -0
- package/src/runtime/query/__tests__/content-budget.test.ts +83 -0
- package/src/runtime/query/__tests__/context.test.ts +3 -2
- package/src/runtime/query/__tests__/deferred-tools.test.ts +23 -148
- package/src/runtime/query/__tests__/delegation-resume.test.ts +159 -0
- package/src/runtime/query/__tests__/document-attachments.test.ts +125 -0
- package/src/runtime/query/__tests__/durable-park-and-trace.test.ts +245 -0
- package/src/runtime/query/__tests__/durable-question-park.test.ts +305 -0
- package/src/runtime/query/__tests__/durable-run-state.test.ts +194 -0
- package/src/runtime/query/__tests__/executor-plugin-hooks.test.ts +24 -20
- package/src/runtime/query/__tests__/finish-reason-vs-tool-calls.test.ts +206 -0
- package/src/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.ts +115 -0
- package/src/runtime/query/__tests__/guardrails-e2e.test.ts +164 -0
- package/src/runtime/query/__tests__/guardrails.test.ts +236 -0
- package/src/runtime/query/__tests__/hook-model-visibility.test.ts +143 -0
- package/src/runtime/query/__tests__/long-document-flow.test.ts +9 -2
- package/src/runtime/query/__tests__/memory-promotion.test.ts +148 -0
- package/src/runtime/query/__tests__/orphan-task-turn-end.test.ts +5 -31
- package/src/runtime/query/__tests__/overflow-relief.test.ts +139 -0
- package/src/runtime/query/__tests__/partial-batch-resume.test.ts +264 -0
- package/src/runtime/query/__tests__/plugin-hooks.test.ts +0 -1
- package/src/runtime/query/__tests__/prepare-step-chain.test.ts +127 -0
- package/src/runtime/query/__tests__/prepare-step.test.ts +233 -0
- package/src/runtime/query/__tests__/probe-veto-is-error.test.ts +145 -0
- package/src/runtime/query/__tests__/prompt.test.ts +1 -1
- package/src/runtime/query/__tests__/provider-fault-pauses.test.ts +104 -0
- package/src/runtime/query/__tests__/reasoning-stream.test.ts +177 -0
- package/src/runtime/query/__tests__/recoverable-settle.test.ts +145 -0
- package/src/runtime/query/__tests__/resume-budget.test.ts +158 -0
- package/src/runtime/query/__tests__/resume-pending.test.ts +273 -0
- package/src/runtime/query/__tests__/rich-content-budget-wiring.test.ts +109 -0
- package/src/runtime/query/__tests__/stop-condition.test.ts +265 -0
- package/src/runtime/query/__tests__/structured-output.test.ts +268 -0
- package/src/runtime/query/__tests__/structured-run-failure.test.ts +144 -0
- package/src/runtime/query/__tests__/terminal-tool.test.ts +148 -0
- package/src/runtime/query/__tests__/tool-grants.test.ts +102 -0
- package/src/runtime/query/__tests__/tool-output-budget.test.ts +0 -0
- package/src/runtime/query/__tests__/tool-pause.test.ts +209 -0
- package/src/runtime/query/__tests__/tool-progress.test.ts +154 -0
- package/src/runtime/query/__tests__/tool-repair-retry.test.ts +255 -0
- package/src/runtime/query/__tests__/tool-result-wire.test.ts +135 -0
- package/src/runtime/query/__tests__/tool-timeout.test.ts +230 -0
- package/src/runtime/query/__tests__/trace-parenting.test.ts +128 -0
- package/src/runtime/query/__tests__/wiring-seams.test.ts +288 -0
- package/src/runtime/query/checkpoint.ts +242 -10
- package/src/runtime/query/events.ts +2 -2
- package/src/runtime/query/executor.ts +847 -39
- package/src/runtime/query/guard.ts +26 -1
- package/src/runtime/query/guardrail-presets.ts +124 -0
- package/src/runtime/query/guardrails.ts +144 -0
- package/src/runtime/query/index.ts +759 -12
- package/src/runtime/query/iteration/__tests__/cancel-settles-turn.test.ts +177 -0
- package/src/runtime/query/iteration/index.ts +656 -40
- package/src/runtime/query/iteration/phases/advisory.test.ts +4 -1
- package/src/runtime/query/iteration/phases/advisory.ts +14 -2
- package/src/runtime/query/iteration/phases/checkpoint.ts +2 -2
- package/src/runtime/query/iteration/phases/compaction-safe-cut.test.ts +3 -1
- package/src/runtime/query/iteration/phases/compaction.ts +329 -64
- package/src/runtime/query/iteration/phases/context-measurement.test.ts +196 -0
- package/src/runtime/query/iteration/phases/context.ts +155 -2
- package/src/runtime/query/iteration/phases/hitl-answer-question.test.ts +3 -1
- package/src/runtime/query/iteration/phases/overflow-escalation.test.ts +167 -0
- package/src/runtime/query/iteration/phases/plan.ts +10 -2
- package/src/runtime/query/iteration/phases/retained-messages.test.ts +226 -0
- package/src/runtime/query/iteration/phases/tool-review-denials.test.ts +270 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +140 -51
- package/src/runtime/query/iteration/phases/working-memory-compaction.test.ts +21 -9
- package/src/runtime/query/iteration/stream-turn.ts +285 -15
- package/src/runtime/query/plugin-hooks.ts +6 -2
- package/src/runtime/query/prompt.ts +26 -1
- package/src/runtime/query/question-park.ts +120 -0
- package/src/runtime/query/result.ts +64 -0
- package/src/runtime/query/resume-pending.ts +394 -0
- package/src/runtime/query/run-state.ts +124 -0
- package/src/runtime/query/tool-grants.ts +83 -0
- package/src/runtime/query/tool-output-budget.ts +183 -0
- package/src/runtime/query/tool-pause.ts +119 -0
- package/src/runtime/query/tooling.ts +23 -1
- package/src/sandbox/__tests__/isolation.test.ts +164 -0
- package/src/sandbox/__tests__/output-truncation.test.ts +106 -0
- package/src/sandbox/__tests__/resource-limits.test.ts +106 -0
- package/src/sandbox/factory.ts +1 -1
- package/src/sandbox/index.ts +2 -0
- package/src/sandbox/isolation.ts +72 -0
- package/src/sandbox/provider/local.ts +173 -74
- package/src/session/__tests__/integration/spawn-rollback.test.ts +1 -1
- package/src/session/handoff/broadcast.ts +3 -3
- package/src/session/migration/__tests__/filesystem.test.ts +26 -19
- package/src/session/migration/filesystem.ts +7 -12
- package/src/session/migration/marker.ts +5 -9
- package/src/session/retention/disk-backend.ts +5 -11
- package/src/session/workspace/__tests__/git-worktree.test.ts +6 -2
- package/src/session/workspace/__tests__/shared-run.test.ts +18 -0
- package/src/session/workspace/shared-run.ts +7 -1
- package/src/skills/__tests__/frontmatter.test.ts +135 -0
- package/src/skills/loader.ts +47 -3
- package/src/store/__tests__/checkpoint-integrity.test.ts +134 -0
- package/src/store/__tests__/checkpoint-versioning.test.ts +194 -0
- package/src/store/__tests__/schema-adoption.test.ts +118 -0
- package/src/store/__tests__/schema.test.ts +119 -0
- package/src/store/memory/disk.ts +17 -16
- package/src/store/run/disk.ts +169 -22
- package/src/store/schema.ts +135 -0
- package/src/store/session/disk.ts +30 -21
- package/src/store/task/__tests__/lookup-across-runs.test.ts +77 -0
- package/src/store/task/disk.ts +59 -15
- package/src/store/thread/disk.ts +21 -10
- package/src/streaming/coalesce.ts +1 -1
- package/src/telemetry/__tests__/latency-instruments.test.ts +120 -0
- package/src/telemetry/__tests__/metrics.test.ts +160 -0
- package/src/telemetry/__tests__/span-hierarchy.test.ts +94 -0
- package/src/telemetry/attributes.ts +109 -0
- package/src/telemetry/metrics.ts +190 -0
- package/src/test-setup.ts +3 -3
- package/src/test-support/paths.ts +17 -0
- package/src/tools/__tests__/path-containment.test.ts +167 -0
- package/src/tools/__tests__/posix-path.test.ts +83 -0
- package/src/tools/__tests__/sandboxed-search.test.ts +140 -0
- package/src/tools/builtins/__tests__/computer-use.test.ts +15 -2
- package/src/tools/builtins/__tests__/edit.test.ts +10 -270
- package/src/tools/builtins/__tests__/payload-budget.test.ts +20 -40
- package/src/tools/builtins/__tests__/read-file.test.ts +29 -1
- package/src/tools/builtins/__tests__/write-file.test.ts +13 -52
- package/src/tools/builtins/bash.ts +34 -4
- package/src/tools/builtins/computer-use.ts +7 -1
- package/src/tools/builtins/edit.ts +162 -116
- package/src/tools/builtins/glob.ts +71 -6
- package/src/tools/builtins/grep.ts +82 -8
- package/src/tools/builtins/index.ts +6 -6
- package/src/tools/builtins/ls.ts +4 -2
- package/src/tools/builtins/read-file.ts +40 -4
- package/src/tools/builtins/write-file.ts +44 -68
- package/src/tools/coordinator/__tests__/agent.test.ts +2 -2
- package/src/tools/coordinator/agent.ts +23 -10
- package/src/tools/coordinator/index.ts +111 -31
- package/src/tools/defineTool.ts +20 -0
- package/src/tools/glob-match.ts +50 -0
- package/src/tools/paths.ts +44 -0
- package/src/tools/posix-path.ts +73 -0
- package/src/types/advisory/config.ts +21 -3
- package/src/types/advisory/result.ts +12 -7
- package/src/types/agent/base.ts +22 -2
- package/src/types/agent/factory.ts +15 -9
- package/src/types/agent/gateway.ts +20 -0
- package/src/types/agent/manager.ts +19 -0
- package/src/types/agent/reactive.ts +50 -0
- package/src/types/agent/router.ts +11 -0
- package/src/types/agent/supervisor.ts +2 -2
- package/src/types/agent/task.ts +26 -0
- package/src/types/bidi/index.ts +119 -0
- package/src/types/common/__tests__/numeric-correctness.test.ts +123 -0
- package/src/types/common/index.ts +16 -4
- package/src/types/computer-use/index.ts +1 -1
- package/src/types/connector/mcp.ts +29 -0
- package/src/types/errors/__tests__/catalog.test.ts +130 -0
- package/src/types/errors/__tests__/errors.test.ts +118 -0
- package/src/types/errors/catalog.ts +211 -0
- package/src/types/errors/index.ts +121 -0
- package/src/types/guardrail/index.ts +62 -0
- package/src/types/hitl/index.ts +102 -20
- package/src/types/ids/index.ts +2 -2
- package/src/types/message/content.ts +50 -0
- package/src/types/message/index.ts +210 -9
- package/src/types/plugin/index.ts +82 -2
- package/src/types/provider/__tests__/cause-chain.test.ts +132 -0
- package/src/types/provider/__tests__/declared-retryable.test.ts +85 -0
- package/src/types/provider/__tests__/overflow-classification.test.ts +113 -0
- package/src/types/provider/chat.ts +29 -1
- package/src/types/provider/config.ts +83 -2
- package/src/types/provider/errors.ts +472 -0
- package/src/types/provider/index.ts +5 -0
- package/src/types/provider/stream.ts +63 -3
- package/src/types/rag/embedding.ts +11 -2
- package/src/types/run/__tests__/step.test.ts +123 -0
- package/src/types/run/answer-review.ts +51 -0
- package/src/types/run/config.ts +35 -0
- package/src/types/run/derive-status.ts +62 -0
- package/src/types/run/entity.ts +18 -0
- package/src/types/run/events.ts +230 -3
- package/src/types/run/index.ts +5 -0
- package/src/types/run/memory-promotion.ts +112 -0
- package/src/types/run/prepare-step.ts +109 -0
- package/src/types/run/state.ts +111 -0
- package/src/types/run/step.ts +95 -0
- package/src/types/run/stop-reason.ts +29 -1
- package/src/types/sandbox/index.ts +93 -12
- package/src/types/structured-output/index.ts +6 -5
- package/src/types/thread/entity.ts +2 -3
- package/src/types/tool/index.ts +204 -1
- package/src/types/tool/repair.ts +54 -0
- package/src/types/toolset/index.ts +2 -6
- package/src/utils/__tests__/atomic-write.test.ts +108 -0
- package/src/utils/__tests__/shell-compress.test.ts +49 -0
- package/src/utils/atomic-write.ts +85 -0
- package/src/utils/shell-compress.ts +12 -1
- package/src/verification/presets.ts +6 -3
|
@@ -1,18 +1,42 @@
|
|
|
1
|
-
import { SpanStatusCode } from '@opentelemetry/api'
|
|
1
|
+
import { type Span, SpanStatusCode } from '@opentelemetry/api'
|
|
2
2
|
import { extractFromAssistantMessage } from '../../../compaction/extractor.js'
|
|
3
3
|
import { AUTO_CONTINUATION_USER_MESSAGE } from '../../../constants/continuation.js'
|
|
4
|
+
import {
|
|
5
|
+
DEFAULT_STRUCTURED_OUTPUT_RETRIES,
|
|
6
|
+
STRUCTURED_OUTPUT_REPROMPT,
|
|
7
|
+
} from '../../../constants/tools/index.js'
|
|
4
8
|
import { collect } from '../../../provider/collect.js'
|
|
5
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
GENAI,
|
|
11
|
+
NAMZU,
|
|
12
|
+
agentIterationSpanName,
|
|
13
|
+
parentContext,
|
|
14
|
+
} from '../../../telemetry/attributes.js'
|
|
6
15
|
import { getTracer } from '../../../telemetry/runtime-accessors.js'
|
|
7
|
-
import {
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
16
|
+
import { STRUCTURED_OUTPUT_TOOL_NAME } from '../../../tools/builtins/structuredOutput.js'
|
|
17
|
+
import type { CostInfo, TokenUsage } from '../../../types/common/index.js'
|
|
18
|
+
import type { MessageId } from '../../../types/ids/index.js'
|
|
19
|
+
import {
|
|
20
|
+
createAssistantMessage,
|
|
21
|
+
createSystemMessage,
|
|
22
|
+
createUserMessage,
|
|
23
|
+
} from '../../../types/message/index.js'
|
|
24
|
+
import { classifyProviderError } from '../../../types/provider/errors.js'
|
|
25
|
+
import type { ChatCompletionResponse } from '../../../types/provider/index.js'
|
|
26
|
+
import type { AnswerReview } from '../../../types/run/answer-review.js'
|
|
27
|
+
import type {
|
|
28
|
+
PrepareStepResult,
|
|
29
|
+
RunEvent,
|
|
30
|
+
StepResult,
|
|
31
|
+
StopReason,
|
|
32
|
+
} from '../../../types/run/index.js'
|
|
10
33
|
import { toErrorMessage } from '../../../utils/error.js'
|
|
11
34
|
import { generateMessageId } from '../../../utils/id.js'
|
|
35
|
+
import type { ToolCallOutcome } from '../executor.js'
|
|
12
36
|
import { applyLifecycleHookResults } from '../plugin-hooks.js'
|
|
13
37
|
import { runAdvisoryPhase } from './phases/advisory.js'
|
|
14
38
|
import { runIterationCheckpoint } from './phases/checkpoint.js'
|
|
15
|
-
import { runCompactionCheck } from './phases/compaction.js'
|
|
39
|
+
import { relieveOverflow, runCompactionCheck } from './phases/compaction.js'
|
|
16
40
|
import type { IterationContext } from './phases/index.js'
|
|
17
41
|
import { runPlanGate } from './phases/plan.js'
|
|
18
42
|
import { runToolReview } from './phases/tool-review.js'
|
|
@@ -23,18 +47,52 @@ export type { IterationContext } from './phases/index.js'
|
|
|
23
47
|
export type { PhaseSignal } from './phases/index.js'
|
|
24
48
|
export type { ToolReviewOutcome } from './phases/index.js'
|
|
25
49
|
|
|
50
|
+
/**
|
|
51
|
+
* How many times an answer may be handed back before the run stops.
|
|
52
|
+
*
|
|
53
|
+
* Bounded for the same reason the structured-output re-prompt is: a judge
|
|
54
|
+
* that never accepts would otherwise spend the whole token budget
|
|
55
|
+
* rediscovering that, and the run would end on a budget error rather than
|
|
56
|
+
* on the thing that actually went wrong.
|
|
57
|
+
*/
|
|
58
|
+
const DEFAULT_ANSWER_REVIEW_LIMIT = 3
|
|
59
|
+
|
|
26
60
|
export class IterationOrchestrator {
|
|
27
61
|
private ctx: IterationContext
|
|
62
|
+
/** Rejections so far. See {@link DEFAULT_ANSWER_REVIEW_LIMIT}. */
|
|
63
|
+
private answerReviewAttempts = 0
|
|
28
64
|
|
|
29
65
|
constructor(ctx: IterationContext) {
|
|
30
66
|
this.ctx = ctx
|
|
31
67
|
}
|
|
32
68
|
|
|
69
|
+
/**
|
|
70
|
+
* Adopt the run's span after construction.
|
|
71
|
+
*
|
|
72
|
+
* The orchestrator is built before `query()` enters its generator body,
|
|
73
|
+
* which is where the run span is created — so the parent cannot be a
|
|
74
|
+
* constructor argument without reordering setup around one field.
|
|
75
|
+
*/
|
|
76
|
+
setRootSpan(span: Span): void {
|
|
77
|
+
this.ctx = { ...this.ctx, rootSpan: span }
|
|
78
|
+
}
|
|
79
|
+
|
|
33
80
|
async *runLoop(): AsyncGenerator<RunEvent> {
|
|
34
81
|
const { runConfig, runMgr } = this.ctx
|
|
35
82
|
const { model } = runConfig
|
|
36
83
|
const tracer = getTracer()
|
|
37
84
|
|
|
85
|
+
// One context-overflow relief per *stuck point*, not per run.
|
|
86
|
+
//
|
|
87
|
+
// The latch exists so that a second overflow immediately after a
|
|
88
|
+
// successful compaction — meaning the prompt is irreducible — stops
|
|
89
|
+
// instead of looping. It was never meant to disarm the mechanism for
|
|
90
|
+
// the rest of the run, which is what a run-scoped flag did: one
|
|
91
|
+
// relief at iteration 3 left iteration 40 to die on an overflow with
|
|
92
|
+
// obvious moves left. It is cleared by a turn that actually
|
|
93
|
+
// succeeded, which is the evidence that the run is no longer stuck.
|
|
94
|
+
let overflowRelieved = false
|
|
95
|
+
|
|
38
96
|
const planSignal = yield* runPlanGate(this.ctx)
|
|
39
97
|
if (planSignal === 'stop') return
|
|
40
98
|
|
|
@@ -81,7 +139,19 @@ export class IterationOrchestrator {
|
|
|
81
139
|
this.ctx.activityStore.start(iterationActivity.id)
|
|
82
140
|
}
|
|
83
141
|
|
|
84
|
-
|
|
142
|
+
// Parent explicitly: this body is an async generator, so the
|
|
143
|
+
// ambient context at resume time belongs to the CONSUMER, not to
|
|
144
|
+
// whoever created the run span. Without this every iteration
|
|
145
|
+
// emits as its own root and a 20-turn run shows up as 21
|
|
146
|
+
// disconnected traces.
|
|
147
|
+
const iterSpan = tracer.startSpan(
|
|
148
|
+
agentIterationSpanName(iterationNum),
|
|
149
|
+
{},
|
|
150
|
+
parentContext(this.ctx.rootSpan),
|
|
151
|
+
)
|
|
152
|
+
// Tool spans for this turn belong under this iteration.
|
|
153
|
+
this.ctx.toolExecutor.setParentSpan(iterSpan)
|
|
154
|
+
|
|
85
155
|
iterSpan.setAttributes({
|
|
86
156
|
[NAMZU.ITERATION]: iterationNum,
|
|
87
157
|
[NAMZU.RUN_ID]: runMgr.id,
|
|
@@ -118,10 +188,21 @@ export class IterationOrchestrator {
|
|
|
118
188
|
// entire prompt-cache prefix (tools render at position 0) and
|
|
119
189
|
// risks a 400 because the history still carries
|
|
120
190
|
// tool_use/tool_result blocks.
|
|
121
|
-
|
|
122
|
-
|
|
191
|
+
// Snapshot the cumulative counters so the step can report ITS
|
|
192
|
+
// own usage rather than the run total.
|
|
193
|
+
const stepStartedAt = Date.now()
|
|
194
|
+
const usageBefore = { ...runMgr.tokenUsage }
|
|
195
|
+
const costBefore = { ...runMgr.costInfo }
|
|
123
196
|
|
|
124
|
-
|
|
197
|
+
// Shape this step before calling the model. `stopWhen` decides
|
|
198
|
+
// whether to keep going; this decides HOW. No-op when the host
|
|
199
|
+
// supplied no hook.
|
|
200
|
+
const step = await this.prepareStep(iterationNum)
|
|
201
|
+
|
|
202
|
+
const llmTools = this.ctx.tools.toLLMTools(step.allowedTools ?? this.ctx.allowedTools)
|
|
203
|
+
const stepModel = step.model ?? model
|
|
204
|
+
|
|
205
|
+
const baseMessages = forceFinalize
|
|
125
206
|
? [
|
|
126
207
|
...runMgr.messages,
|
|
127
208
|
createUserMessage(
|
|
@@ -130,10 +211,41 @@ export class IterationOrchestrator {
|
|
|
130
211
|
]
|
|
131
212
|
: runMgr.messages
|
|
132
213
|
|
|
214
|
+
// Step guidance is appended to the REQUEST, never pushed onto
|
|
215
|
+
// the run's history: it applies to this step only, and pushing
|
|
216
|
+
// it would accumulate one stale instruction per iteration.
|
|
217
|
+
// Copy before it crosses the provider boundary. `runMgr.messages`
|
|
218
|
+
// is the LIVE run array, and the loop pushes onto it after the
|
|
219
|
+
// call returns — so a driver that retains what it was handed
|
|
220
|
+
// (to log it, cache it, or replay it on retry) watched its own
|
|
221
|
+
// input grow new turns underneath it. A capture provider in the
|
|
222
|
+
// estate recorded every turn as identical to the last for
|
|
223
|
+
// exactly this reason. Shallow is enough: the defect is array
|
|
224
|
+
// mutation, and per-iteration this is trivial next to the model
|
|
225
|
+
// call it precedes.
|
|
226
|
+
const messages = step.system
|
|
227
|
+
? [...baseMessages, createSystemMessage(step.system)]
|
|
228
|
+
: [...baseMessages]
|
|
229
|
+
|
|
133
230
|
if (this.ctx.pluginManager) {
|
|
134
231
|
const hookResults = await this.ctx.pluginManager.executeHooks(
|
|
135
232
|
'pre_llm_call',
|
|
136
|
-
{
|
|
233
|
+
{
|
|
234
|
+
runId: runMgr.id,
|
|
235
|
+
iteration: iterationNum,
|
|
236
|
+
// Built inside the guard: a run with no plugins installed
|
|
237
|
+
// pays nothing for a projection nobody reads.
|
|
238
|
+
request: Object.freeze({
|
|
239
|
+
model: stepModel,
|
|
240
|
+
// Copied per turn, not handed over live: these are the
|
|
241
|
+
// run's own message objects, and a hook writing into
|
|
242
|
+
// one would edit the history the run is about to send.
|
|
243
|
+
messages: Object.freeze(messages.map((m) => Object.freeze({ ...m }))),
|
|
244
|
+
toolNames: Object.freeze(llmTools.map((t) => t.function.name)),
|
|
245
|
+
temperature: step.temperature ?? runConfig.temperature,
|
|
246
|
+
maxTokens: step.maxResponseTokens ?? runConfig.maxResponseTokens,
|
|
247
|
+
}),
|
|
248
|
+
},
|
|
137
249
|
this.ctx.emitEvent,
|
|
138
250
|
)
|
|
139
251
|
applyLifecycleHookResults('pre_llm_call', hookResults)
|
|
@@ -148,17 +260,17 @@ export class IterationOrchestrator {
|
|
|
148
260
|
// aggregated `ChatCompletionResponse` for the legacy
|
|
149
261
|
// downstream paths (assistantMsg construction, working
|
|
150
262
|
// state extraction, telemetry attribute stamping).
|
|
151
|
-
const { response } = yield* streamProviderTurn(
|
|
263
|
+
const { response, messageId } = yield* streamProviderTurn(
|
|
152
264
|
this.ctx.provider,
|
|
153
265
|
{
|
|
154
|
-
model,
|
|
266
|
+
model: stepModel,
|
|
155
267
|
messages,
|
|
156
|
-
tools:
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
maxTokens: runConfig.maxResponseTokens,
|
|
268
|
+
tools: llmTools.length > 0 ? llmTools : undefined,
|
|
269
|
+
toolChoice: forceFinalize && llmTools.length > 0 ? 'none' : undefined,
|
|
270
|
+
temperature: step.temperature ?? runConfig.temperature,
|
|
271
|
+
maxTokens: step.maxResponseTokens ?? runConfig.maxResponseTokens,
|
|
161
272
|
cacheControl: { type: 'auto' },
|
|
273
|
+
...(runConfig.thinking ? { thinking: runConfig.thinking } : {}),
|
|
162
274
|
// Thread the run abort into the model call so a Stop tears the
|
|
163
275
|
// in-flight turn down (provider passes it to fetch; the consumer
|
|
164
276
|
// also races it). Inert when never aborted.
|
|
@@ -170,14 +282,31 @@ export class IterationOrchestrator {
|
|
|
170
282
|
iterationNum,
|
|
171
283
|
forceFinalize,
|
|
172
284
|
this.ctx.log,
|
|
285
|
+
iterSpan,
|
|
173
286
|
)
|
|
174
287
|
|
|
175
|
-
|
|
288
|
+
// Main-loop turn: also records the prompt size compaction reads.
|
|
289
|
+
runMgr.recordTurnUsage(response.usage)
|
|
290
|
+
|
|
291
|
+
// The turn went through, so the run is not sitting on an
|
|
292
|
+
// irreducible prompt any more. Re-arm relief for the next one.
|
|
293
|
+
overflowRelieved = false
|
|
176
294
|
|
|
177
295
|
if (this.ctx.pluginManager) {
|
|
178
296
|
const hookResults = await this.ctx.pluginManager.executeHooks(
|
|
179
297
|
'post_llm_call',
|
|
180
|
-
{
|
|
298
|
+
{
|
|
299
|
+
runId: runMgr.id,
|
|
300
|
+
iteration: iterationNum,
|
|
301
|
+
response: Object.freeze({
|
|
302
|
+
content: response.message.content,
|
|
303
|
+
toolNames: Object.freeze(
|
|
304
|
+
(response.message.toolCalls ?? []).map((c) => c.function.name),
|
|
305
|
+
),
|
|
306
|
+
finishReason: response.finishReason,
|
|
307
|
+
usage: Object.freeze({ ...response.usage }),
|
|
308
|
+
}),
|
|
309
|
+
},
|
|
181
310
|
this.ctx.emitEvent,
|
|
182
311
|
)
|
|
183
312
|
applyLifecycleHookResults('post_llm_call', hookResults)
|
|
@@ -203,9 +332,18 @@ export class IterationOrchestrator {
|
|
|
203
332
|
cost: runMgr.costInfo,
|
|
204
333
|
})
|
|
205
334
|
|
|
335
|
+
// Reasoning rides along with the turn it belongs to, so the
|
|
336
|
+
// replay contract holds automatically: trimming or compacting
|
|
337
|
+
// the assistant message takes its thinking blocks with it,
|
|
338
|
+
// and no separate atomicity rule is needed.
|
|
206
339
|
const assistantMsg = createAssistantMessage(
|
|
207
340
|
response.message.content,
|
|
208
341
|
forceFinalize ? undefined : response.message.toolCalls,
|
|
342
|
+
response.message.reasoning,
|
|
343
|
+
// Rides with the turn it belongs to, like reasoning does, so
|
|
344
|
+
// trimming or compacting the turn takes its evidence with it
|
|
345
|
+
// rather than leaving citations pointing at prose that is gone.
|
|
346
|
+
response.message.citations,
|
|
209
347
|
)
|
|
210
348
|
runMgr.pushMessage(assistantMsg)
|
|
211
349
|
|
|
@@ -232,12 +370,24 @@ export class IterationOrchestrator {
|
|
|
232
370
|
})
|
|
233
371
|
}
|
|
234
372
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
373
|
+
// Tool calls beat the finish reason. The reason is the
|
|
374
|
+
// provider's SUMMARY of the turn and the tool calls are the
|
|
375
|
+
// turn itself, so when they disagree the calls are the fact.
|
|
376
|
+
// Several function-calling endpoints — gateways and local servers
|
|
377
|
+
// especially — report `stop` alongside a populated
|
|
378
|
+
// `tool_calls`, and three of this repo's drivers pass that
|
|
379
|
+
// value through untouched.
|
|
380
|
+
//
|
|
381
|
+
// Reading `stop` first meant the turn ended with every
|
|
382
|
+
// requested call silently skipped, an assistant message
|
|
383
|
+
// carrying tool_use blocks that were never answered, and a
|
|
384
|
+
// run that settled `end_turn` having done nothing it was
|
|
385
|
+
// asked to do. Checking the calls first costs nothing when
|
|
386
|
+
// the provider is honest and is the only thing that saves the
|
|
387
|
+
// run when it is not.
|
|
388
|
+
const hasToolCalls = (response.message.toolCalls?.length ?? 0) > 0
|
|
389
|
+
|
|
390
|
+
if (forceFinalize || !hasToolCalls) {
|
|
241
391
|
// Every task-dispatch tool (create_task, continue_task, Agent)
|
|
242
392
|
// is BLOCKING: the worker's output returns as the dispatching
|
|
243
393
|
// tool_use's canonical tool_result, so by the time the model
|
|
@@ -268,11 +418,11 @@ export class IterationOrchestrator {
|
|
|
268
418
|
// another turn. The provider receives the partial
|
|
269
419
|
// assistant content + the continue prompt and
|
|
270
420
|
// resumes from where it left off, mirroring the
|
|
271
|
-
//
|
|
421
|
+
// Auto-continuation after an output-ceiling cutoff.
|
|
272
422
|
//
|
|
273
423
|
// Guards:
|
|
274
424
|
// - `hasContent` so we don't loop forever on an
|
|
275
|
-
// empty cutoff (
|
|
425
|
+
// empty cutoff (a provider occasionally emits
|
|
276
426
|
// `stop_reason: max_tokens` with no content
|
|
277
427
|
// when an injected pre-fill blocks the model).
|
|
278
428
|
// - `!forceFinalize` so the forced-finalize path
|
|
@@ -297,6 +447,86 @@ export class IterationOrchestrator {
|
|
|
297
447
|
continue
|
|
298
448
|
}
|
|
299
449
|
|
|
450
|
+
// The model tried to finish in prose while a structured
|
|
451
|
+
// output was demanded. Send it back with the schema error
|
|
452
|
+
// rather than returning an unusable result — this is the
|
|
453
|
+
// re-prompt half, and it is bounded so a model that cannot
|
|
454
|
+
// satisfy the schema fails loudly instead of looping.
|
|
455
|
+
if (!forceFinalize && this.needsStructuredOutput()) {
|
|
456
|
+
const attempt = ++this.structuredOutputAttempts
|
|
457
|
+
const limit = this.structuredOutputRetryLimit()
|
|
458
|
+
if (attempt > limit) {
|
|
459
|
+
this.ctx.log.warn('Structured output not produced within its retries', {
|
|
460
|
+
runId: runMgr.id,
|
|
461
|
+
attempts: attempt - 1,
|
|
462
|
+
})
|
|
463
|
+
runMgr.setStopReason('structured_output_failed')
|
|
464
|
+
iterSpan.end()
|
|
465
|
+
break
|
|
466
|
+
}
|
|
467
|
+
this.ctx.log.info('Re-prompting for structured output', {
|
|
468
|
+
runId: runMgr.id,
|
|
469
|
+
attempt,
|
|
470
|
+
limit,
|
|
471
|
+
})
|
|
472
|
+
runMgr.pushMessage(createUserMessage(STRUCTURED_OUTPUT_REPROMPT))
|
|
473
|
+
await this.ctx.emitEvent({
|
|
474
|
+
type: 'iteration_completed',
|
|
475
|
+
runId: runMgr.id,
|
|
476
|
+
iteration: iterationNum,
|
|
477
|
+
hasToolCalls: false,
|
|
478
|
+
})
|
|
479
|
+
yield* this.ctx.drainPending()
|
|
480
|
+
iterSpan.end()
|
|
481
|
+
continue
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// Let the host judge the ANSWER and hand back work.
|
|
485
|
+
//
|
|
486
|
+
// The stop predicate is only consulted after tools ran, so
|
|
487
|
+
// there was no seam here at all: the moment the model
|
|
488
|
+
// stopped calling tools the run finalized, whatever it had
|
|
489
|
+
// produced. Verify-then-fix — run the build, feed the
|
|
490
|
+
// failure back, let it try again — meant starting a whole
|
|
491
|
+
// new run and re-supplying the context the first one had.
|
|
492
|
+
//
|
|
493
|
+
// Shaped after the structured-output re-prompt directly
|
|
494
|
+
// above, which solves the same problem for one specific
|
|
495
|
+
// judge: bounded attempts, feedback as a user message, and
|
|
496
|
+
// a loud stop rather than a loop.
|
|
497
|
+
if (!forceFinalize && this.ctx.reviewAnswer) {
|
|
498
|
+
const review = await this.reviewAnswer(response.message.content ?? '')
|
|
499
|
+
if (review && !review.accept) {
|
|
500
|
+
const attempt = ++this.answerReviewAttempts
|
|
501
|
+
const limit = this.ctx.maxAnswerReviews ?? DEFAULT_ANSWER_REVIEW_LIMIT
|
|
502
|
+
if (attempt > limit) {
|
|
503
|
+
this.ctx.log.warn('Answer rejected more times than the run allows', {
|
|
504
|
+
runId: runMgr.id,
|
|
505
|
+
attempts: attempt - 1,
|
|
506
|
+
limit,
|
|
507
|
+
})
|
|
508
|
+
runMgr.setStopReason('answer_rejected')
|
|
509
|
+
iterSpan.end()
|
|
510
|
+
break
|
|
511
|
+
}
|
|
512
|
+
this.ctx.log.info('Answer rejected — returning it to the model', {
|
|
513
|
+
runId: runMgr.id,
|
|
514
|
+
attempt,
|
|
515
|
+
limit,
|
|
516
|
+
})
|
|
517
|
+
runMgr.pushMessage(createUserMessage(review.feedback))
|
|
518
|
+
await this.ctx.emitEvent({
|
|
519
|
+
type: 'iteration_completed',
|
|
520
|
+
runId: runMgr.id,
|
|
521
|
+
iteration: iterationNum,
|
|
522
|
+
hasToolCalls: false,
|
|
523
|
+
})
|
|
524
|
+
yield* this.ctx.drainPending()
|
|
525
|
+
iterSpan.end()
|
|
526
|
+
continue
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
|
|
300
530
|
if (!hasContent && !forceFinalize) {
|
|
301
531
|
this.ctx.log.warn('Empty completion detected — requesting final summary', {
|
|
302
532
|
iteration: iterationNum,
|
|
@@ -330,16 +560,98 @@ export class IterationOrchestrator {
|
|
|
330
560
|
|
|
331
561
|
const reviewOutcome = yield* runToolReview(this.ctx, response, iterationNum)
|
|
332
562
|
|
|
333
|
-
|
|
563
|
+
// The step record is built even for a rejected batch: a run that
|
|
564
|
+
// spent a turn getting its tools refused still spent the tokens,
|
|
565
|
+
// and a caller reconstructing cost per step must see it.
|
|
566
|
+
this.recordStep({
|
|
567
|
+
stepNumber: iterationNum,
|
|
568
|
+
model,
|
|
569
|
+
messageId,
|
|
570
|
+
response,
|
|
571
|
+
toolResults: reviewOutcome.results,
|
|
572
|
+
toolExecutionMs: reviewOutcome.durationMs,
|
|
573
|
+
startedAt: stepStartedAt,
|
|
574
|
+
usageBefore,
|
|
575
|
+
costBefore,
|
|
576
|
+
})
|
|
577
|
+
|
|
578
|
+
if (reviewOutcome.decision === 'stop') {
|
|
334
579
|
iterSpan.end()
|
|
335
580
|
return
|
|
336
581
|
}
|
|
337
582
|
|
|
338
|
-
if (reviewOutcome === 'rejected') {
|
|
583
|
+
if (reviewOutcome.decision === 'rejected') {
|
|
339
584
|
iterSpan.end()
|
|
340
585
|
continue
|
|
341
586
|
}
|
|
342
587
|
|
|
588
|
+
// A successful `structured_output` call IS the answer, so the
|
|
589
|
+
// run ends here rather than paying for another turn whose only
|
|
590
|
+
// job would be to restate it.
|
|
591
|
+
if (this.captureStructuredOutput(reviewOutcome.results)) {
|
|
592
|
+
this.ctx.log.info('Structured output produced — ending run', {
|
|
593
|
+
runId: runMgr.id,
|
|
594
|
+
iteration: iterationNum,
|
|
595
|
+
})
|
|
596
|
+
runMgr.setStopReason('end_turn')
|
|
597
|
+
await this.ctx.emitEvent({
|
|
598
|
+
type: 'iteration_completed',
|
|
599
|
+
runId: runMgr.id,
|
|
600
|
+
iteration: iterationNum,
|
|
601
|
+
hasToolCalls: true,
|
|
602
|
+
})
|
|
603
|
+
yield* this.ctx.drainPending()
|
|
604
|
+
iterSpan.end()
|
|
605
|
+
break
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
// A tool the author declared terminal settles the run with its
|
|
609
|
+
// own output, the same rule `structured_output` has always
|
|
610
|
+
// had. Without it a delegation cost the parent one more model
|
|
611
|
+
// call at full context whose only job was to restate what the
|
|
612
|
+
// worker already said — and to restate it through the parent's
|
|
613
|
+
// compacted view, so the caller did not even receive the
|
|
614
|
+
// worker's words.
|
|
615
|
+
const settled = this.terminalToolOutput(reviewOutcome.results, response)
|
|
616
|
+
if (settled !== undefined) {
|
|
617
|
+
this.ctx.log.info('Terminal tool produced the answer — ending run', {
|
|
618
|
+
runId: runMgr.id,
|
|
619
|
+
iteration: iterationNum,
|
|
620
|
+
tool: settled.toolName,
|
|
621
|
+
})
|
|
622
|
+
runMgr.setResult(settled.output)
|
|
623
|
+
runMgr.setStopReason('end_turn')
|
|
624
|
+
await this.ctx.emitEvent({
|
|
625
|
+
type: 'iteration_completed',
|
|
626
|
+
runId: runMgr.id,
|
|
627
|
+
iteration: iterationNum,
|
|
628
|
+
hasToolCalls: true,
|
|
629
|
+
})
|
|
630
|
+
yield* this.ctx.drainPending()
|
|
631
|
+
iterSpan.end()
|
|
632
|
+
break
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
// Evaluated AFTER the tools ran, so a predicate can see what they
|
|
636
|
+
// returned — which is what makes a terminal submit_answer tool
|
|
637
|
+
// usable without discarding its output.
|
|
638
|
+
if (await this.shouldStop()) {
|
|
639
|
+
this.ctx.log.info('Stop condition met', {
|
|
640
|
+
runId: runMgr.id,
|
|
641
|
+
iteration: iterationNum,
|
|
642
|
+
})
|
|
643
|
+
runMgr.setStopReason('stop_condition')
|
|
644
|
+
await this.ctx.emitEvent({
|
|
645
|
+
type: 'iteration_completed',
|
|
646
|
+
runId: runMgr.id,
|
|
647
|
+
iteration: iterationNum,
|
|
648
|
+
hasToolCalls: true,
|
|
649
|
+
})
|
|
650
|
+
yield* this.ctx.drainPending()
|
|
651
|
+
iterSpan.end()
|
|
652
|
+
break
|
|
653
|
+
}
|
|
654
|
+
|
|
343
655
|
const checkpointSignal = yield* runIterationCheckpoint(this.ctx, iterationNum)
|
|
344
656
|
if (checkpointSignal === 'stop') {
|
|
345
657
|
iterSpan.end()
|
|
@@ -381,6 +693,37 @@ export class IterationOrchestrator {
|
|
|
381
693
|
break
|
|
382
694
|
}
|
|
383
695
|
|
|
696
|
+
// The one provider failure the kernel can actually do something
|
|
697
|
+
// about. `context_length_exceeded` is correctly non-retryable —
|
|
698
|
+
// resending the identical prompt cannot help — but the kernel
|
|
699
|
+
// owns a compaction subsystem that can make the prompt smaller.
|
|
700
|
+
// Without this the run died holding the remedy: the threshold
|
|
701
|
+
// path had simply guessed low, which a run carrying images or a
|
|
702
|
+
// language the chars-per-token ratio does not fit will do.
|
|
703
|
+
//
|
|
704
|
+
// Relief is attempted ONCE per iteration and only when it
|
|
705
|
+
// actually shed something. A second overflow after a successful
|
|
706
|
+
// compaction means the prompt is irreducible, and looping on it
|
|
707
|
+
// would burn the budget to arrive at the same error.
|
|
708
|
+
if (
|
|
709
|
+
!overflowRelieved &&
|
|
710
|
+
classifyProviderError(err, this.ctx.provider.id).code === 'context_length_exceeded'
|
|
711
|
+
) {
|
|
712
|
+
overflowRelieved = true
|
|
713
|
+
const shed = await relieveOverflow(this.ctx)
|
|
714
|
+
if (shed) {
|
|
715
|
+
this.ctx.log.info('Retrying the turn after relieving a context overflow', {
|
|
716
|
+
runId: runMgr.id,
|
|
717
|
+
iteration: iterationNum,
|
|
718
|
+
})
|
|
719
|
+
if (iterationActivity) {
|
|
720
|
+
this.ctx.activityStore.complete(iterationActivity.id)
|
|
721
|
+
}
|
|
722
|
+
iterSpan.end()
|
|
723
|
+
continue
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
|
|
384
727
|
if (iterationActivity) {
|
|
385
728
|
this.ctx.activityStore.fail(iterationActivity.id, toErrorMessage(err))
|
|
386
729
|
}
|
|
@@ -396,6 +739,274 @@ export class IterationOrchestrator {
|
|
|
396
739
|
}
|
|
397
740
|
}
|
|
398
741
|
|
|
742
|
+
/**
|
|
743
|
+
* Ask the host how to shape this step.
|
|
744
|
+
*
|
|
745
|
+
* Fails OPEN on a throw — same reasoning as `stopWhen` and deliberately
|
|
746
|
+
* opposite to a guardrail: a broken step-shaping hook should not kill an
|
|
747
|
+
* otherwise healthy run, and unlike a safety check, nothing unsafe gets
|
|
748
|
+
* through when it is skipped.
|
|
749
|
+
*/
|
|
750
|
+
private async prepareStep(stepNumber: number): Promise<{
|
|
751
|
+
allowedTools?: string[]
|
|
752
|
+
model?: string
|
|
753
|
+
system?: string
|
|
754
|
+
temperature?: number
|
|
755
|
+
maxResponseTokens?: number
|
|
756
|
+
}> {
|
|
757
|
+
const configured = this.ctx.prepareStep
|
|
758
|
+
if (!configured) return {}
|
|
759
|
+
const stages = Array.isArray(configured) ? configured : [configured]
|
|
760
|
+
|
|
761
|
+
// Folded in DECLARATION order, each stage seeing what the ones
|
|
762
|
+
// before it decided. A later stage overriding a field is last-writer
|
|
763
|
+
// wins — visibly, because the order is a line in the host's code
|
|
764
|
+
// rather than an accident of install history.
|
|
765
|
+
let result: PrepareStepResult = {}
|
|
766
|
+
for (const stage of stages) {
|
|
767
|
+
try {
|
|
768
|
+
const decided = await stage({
|
|
769
|
+
runId: this.ctx.runMgr.id,
|
|
770
|
+
stepNumber,
|
|
771
|
+
messages: this.ctx.runMgr.messages,
|
|
772
|
+
steps: this.steps,
|
|
773
|
+
prepared: result,
|
|
774
|
+
})
|
|
775
|
+
if (decided) result = { ...result, ...decided }
|
|
776
|
+
} catch (err) {
|
|
777
|
+
// Skipped, and the rest still run: one broken concern must
|
|
778
|
+
// not silently disable the others it was declared beside.
|
|
779
|
+
this.ctx.log.error('a prepareStep stage threw — skipping it', {
|
|
780
|
+
runId: this.ctx.runMgr.id,
|
|
781
|
+
stepNumber,
|
|
782
|
+
error: toErrorMessage(err),
|
|
783
|
+
})
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
const prepared: {
|
|
788
|
+
allowedTools?: string[]
|
|
789
|
+
model?: string
|
|
790
|
+
system?: string
|
|
791
|
+
temperature?: number
|
|
792
|
+
maxResponseTokens?: number
|
|
793
|
+
} = {}
|
|
794
|
+
|
|
795
|
+
if (result.activeTools) {
|
|
796
|
+
// A phase list that outlives a tool rename should narrow the
|
|
797
|
+
// surface, not kill the agent mid-run.
|
|
798
|
+
const known = result.activeTools.filter((name: string) => this.ctx.tools.has(name))
|
|
799
|
+
const unknown = result.activeTools.filter((name: string) => !this.ctx.tools.has(name))
|
|
800
|
+
if (unknown.length > 0) {
|
|
801
|
+
this.ctx.log.warn('prepareStep named tools that are not registered — ignoring them', {
|
|
802
|
+
runId: this.ctx.runMgr.id,
|
|
803
|
+
stepNumber,
|
|
804
|
+
unknown,
|
|
805
|
+
})
|
|
806
|
+
}
|
|
807
|
+
prepared.allowedTools = known
|
|
808
|
+
}
|
|
809
|
+
if (result.model !== undefined) prepared.model = result.model
|
|
810
|
+
if (result.system !== undefined) prepared.system = result.system
|
|
811
|
+
if (result.temperature !== undefined) prepared.temperature = result.temperature
|
|
812
|
+
if (result.maxResponseTokens !== undefined) {
|
|
813
|
+
prepared.maxResponseTokens = result.maxResponseTokens
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
return prepared
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
/** Steps completed so far, exposed on the returned `Run`. */
|
|
820
|
+
private readonly steps: StepResult[] = []
|
|
821
|
+
|
|
822
|
+
getSteps(): readonly StepResult[] {
|
|
823
|
+
return this.steps
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* Fold one iteration into a `StepResult`.
|
|
828
|
+
*
|
|
829
|
+
* Every field here was already computed somewhere in the loop; the only
|
|
830
|
+
* new work is subtracting the cumulative counters so the step carries
|
|
831
|
+
* ITS usage rather than the run's running total, which is the number a
|
|
832
|
+
* caller asking "what did this step cost" actually wants.
|
|
833
|
+
*/
|
|
834
|
+
private recordStep(input: {
|
|
835
|
+
stepNumber: number
|
|
836
|
+
model: string
|
|
837
|
+
messageId: MessageId
|
|
838
|
+
response: ChatCompletionResponse
|
|
839
|
+
toolResults: readonly ToolCallOutcome[]
|
|
840
|
+
toolExecutionMs: number
|
|
841
|
+
startedAt: number
|
|
842
|
+
usageBefore: TokenUsage
|
|
843
|
+
costBefore: CostInfo
|
|
844
|
+
}): void {
|
|
845
|
+
const { runMgr } = this.ctx
|
|
846
|
+
const toolCalls = input.response.message.toolCalls ?? []
|
|
847
|
+
const byId = new Map(input.toolResults.map((r) => [r.toolCallId, r]))
|
|
848
|
+
|
|
849
|
+
const step: StepResult = {
|
|
850
|
+
stepNumber: input.stepNumber,
|
|
851
|
+
model: input.model,
|
|
852
|
+
messageId: input.messageId,
|
|
853
|
+
content: input.response.message.content,
|
|
854
|
+
toolCalls,
|
|
855
|
+
// Ordered by the tool CALLS, not by completion, so the record
|
|
856
|
+
// matches what the model asked for.
|
|
857
|
+
toolResults: toolCalls.map((tc) => {
|
|
858
|
+
const outcome = byId.get(tc.id)
|
|
859
|
+
return {
|
|
860
|
+
toolCallId: tc.id,
|
|
861
|
+
toolName: tc.function.name,
|
|
862
|
+
output: outcome?.output ?? '',
|
|
863
|
+
isError: outcome?.isError ?? false,
|
|
864
|
+
durationMs: 0,
|
|
865
|
+
}
|
|
866
|
+
}),
|
|
867
|
+
finishReason: input.response.finishReason,
|
|
868
|
+
usage: subtractUsage(runMgr.tokenUsage, input.usageBefore),
|
|
869
|
+
costDelta: {
|
|
870
|
+
...runMgr.costInfo,
|
|
871
|
+
totalCost: round6(runMgr.costInfo.totalCost - input.costBefore.totalCost),
|
|
872
|
+
},
|
|
873
|
+
startedAt: input.startedAt,
|
|
874
|
+
durationMs: Date.now() - input.startedAt,
|
|
875
|
+
toolExecutionMs: input.toolExecutionMs,
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
this.steps.push(step)
|
|
879
|
+
this.ctx.onStepFinish?.(step)
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
/** Turns spent asking the model again for a valid structured output. */
|
|
883
|
+
private structuredOutputAttempts = 0
|
|
884
|
+
private structuredOutputDone = false
|
|
885
|
+
|
|
886
|
+
private structuredOutputRetryLimit(): number {
|
|
887
|
+
return this.ctx.structuredOutput?.maxRetries ?? DEFAULT_STRUCTURED_OUTPUT_RETRIES
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
/** True while a structured output was demanded and has not arrived. */
|
|
891
|
+
private needsStructuredOutput(): boolean {
|
|
892
|
+
return this.ctx.structuredOutput !== undefined && !this.structuredOutputDone
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
/**
|
|
896
|
+
* Record the structured output if this batch produced one.
|
|
897
|
+
*
|
|
898
|
+
* The tool validates against the Zod schema before its `execute` runs,
|
|
899
|
+
* so reaching here successfully means the value is already valid — a
|
|
900
|
+
* failed parse comes back as an error result and simply does not
|
|
901
|
+
* satisfy the demand, which sends the loop round again.
|
|
902
|
+
*/
|
|
903
|
+
/**
|
|
904
|
+
* The answer a terminal tool produced, or `undefined` to keep looping.
|
|
905
|
+
*
|
|
906
|
+
* Deliberately narrow. A terminal call decides the run only when it is
|
|
907
|
+
* the ONLY call the model made in that turn: a model that asked for
|
|
908
|
+
* other work meant to see those results, and settling here would throw
|
|
909
|
+
* away answers it requested. Same for a failed terminal call — an
|
|
910
|
+
* error is not an answer, and the model is the one that should read
|
|
911
|
+
* it. Both cases fall through to the ordinary path, and both say so in
|
|
912
|
+
* the log rather than quietly costing the relay the flag was set to
|
|
913
|
+
* avoid.
|
|
914
|
+
*/
|
|
915
|
+
private terminalToolOutput(
|
|
916
|
+
results: readonly ToolCallOutcome[],
|
|
917
|
+
response: ChatCompletionResponse,
|
|
918
|
+
): ToolCallOutcome | undefined {
|
|
919
|
+
const terminal = results.filter((r) => this.ctx.tools.get(r.toolName)?.terminal === true)
|
|
920
|
+
if (terminal.length === 0) return undefined
|
|
921
|
+
|
|
922
|
+
const callCount = response.message.toolCalls?.length ?? 0
|
|
923
|
+
if (callCount > 1) {
|
|
924
|
+
this.ctx.log.info('Terminal tool shared its turn — relaying instead of settling', {
|
|
925
|
+
runId: this.ctx.runMgr.id,
|
|
926
|
+
tool: terminal[0]?.toolName,
|
|
927
|
+
callsInTurn: callCount,
|
|
928
|
+
})
|
|
929
|
+
return undefined
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
const hit = terminal[0]
|
|
933
|
+
if (!hit || hit.isError) {
|
|
934
|
+
this.ctx.log.info('Terminal tool failed — returning the error to the model', {
|
|
935
|
+
runId: this.ctx.runMgr.id,
|
|
936
|
+
tool: hit?.toolName,
|
|
937
|
+
})
|
|
938
|
+
return undefined
|
|
939
|
+
}
|
|
940
|
+
return hit
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
private captureStructuredOutput(results: readonly ToolCallOutcome[]): boolean {
|
|
944
|
+
if (!this.needsStructuredOutput()) return false
|
|
945
|
+
const hit = results.find((r) => r.toolName === STRUCTURED_OUTPUT_TOOL_NAME && !r.isError)
|
|
946
|
+
if (!hit) return false
|
|
947
|
+
try {
|
|
948
|
+
this.ctx.runMgr.setStructuredOutput(JSON.parse(hit.output))
|
|
949
|
+
} catch {
|
|
950
|
+
// The tool serializes its own validated input, so this is
|
|
951
|
+
// unreachable in practice; keep the raw text rather than losing it.
|
|
952
|
+
this.ctx.runMgr.setStructuredOutput(hit.output)
|
|
953
|
+
}
|
|
954
|
+
this.structuredOutputDone = true
|
|
955
|
+
return true
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
/**
|
|
959
|
+
* Ask the host whether this answer is good enough.
|
|
960
|
+
*
|
|
961
|
+
* A hook that throws **accepts**, which is the opposite of what the
|
|
962
|
+
* safety gates do, and deliberately so. Those are asked "is this
|
|
963
|
+
* dangerous", where the cost of failing closed is one refused
|
|
964
|
+
* operation. This is asked "is this good enough", where failing closed
|
|
965
|
+
* means handing the answer back forever — so a broken judge would turn
|
|
966
|
+
* every run into a loop that ends on a budget error naming nothing. One
|
|
967
|
+
* unreviewed answer is the cheaper failure, and the throw is logged at
|
|
968
|
+
* `error` so it is not mistaken for approval.
|
|
969
|
+
*/
|
|
970
|
+
private async reviewAnswer(answer: string): Promise<AnswerReview | undefined> {
|
|
971
|
+
if (!this.ctx.reviewAnswer) return undefined
|
|
972
|
+
try {
|
|
973
|
+
return await this.ctx.reviewAnswer(answer, {
|
|
974
|
+
runId: this.ctx.runMgr.id,
|
|
975
|
+
iteration: this.ctx.runMgr.currentIteration,
|
|
976
|
+
messages: this.ctx.runMgr.messages,
|
|
977
|
+
})
|
|
978
|
+
} catch (err) {
|
|
979
|
+
this.ctx.log.error('Answer review threw — accepting the answer unreviewed', {
|
|
980
|
+
runId: this.ctx.runMgr.id,
|
|
981
|
+
error: toErrorMessage(err),
|
|
982
|
+
})
|
|
983
|
+
return { accept: true }
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
/** Evaluate the caller's halt predicate, if there is one. */
|
|
988
|
+
private async shouldStop(): Promise<boolean> {
|
|
989
|
+
const stopWhen = this.ctx.stopWhen
|
|
990
|
+
const latestStep = this.steps.at(-1)
|
|
991
|
+
if (!stopWhen || !latestStep) return false
|
|
992
|
+
try {
|
|
993
|
+
return await stopWhen({
|
|
994
|
+
steps: this.steps,
|
|
995
|
+
latestStep,
|
|
996
|
+
totalUsage: this.ctx.runMgr.tokenUsage,
|
|
997
|
+
totalCost: this.ctx.runMgr.costInfo,
|
|
998
|
+
})
|
|
999
|
+
} catch (err) {
|
|
1000
|
+
// A throwing predicate must not kill a run that is otherwise
|
|
1001
|
+
// healthy; failing open keeps the existing budgets in charge.
|
|
1002
|
+
this.ctx.log.error('Stop condition threw — continuing the run', {
|
|
1003
|
+
runId: this.ctx.runMgr.id,
|
|
1004
|
+
error: toErrorMessage(err),
|
|
1005
|
+
})
|
|
1006
|
+
return false
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
|
|
399
1010
|
private hasRunningAgentTasks(): boolean {
|
|
400
1011
|
if (!this.ctx.taskGateway) return false
|
|
401
1012
|
return this.ctx.taskGateway
|
|
@@ -431,17 +1042,16 @@ export class IterationOrchestrator {
|
|
|
431
1042
|
// tools param identical to prior iterations (cache prefix intact,
|
|
432
1043
|
// no 400 on tool blocks in history) and forbid use via tool_choice.
|
|
433
1044
|
const finalTools = this.ctx.tools.toLLMTools(this.ctx.allowedTools)
|
|
434
|
-
const enforceToolInputSchema = enforcedModelInputToolNames(this.ctx.tools, finalTools)
|
|
435
1045
|
const response = await collect(
|
|
436
1046
|
this.ctx.provider.chatStream({
|
|
437
1047
|
model,
|
|
438
1048
|
messages: finalMessages,
|
|
439
1049
|
tools: finalTools.length > 0 ? finalTools : undefined,
|
|
440
|
-
enforceToolInputSchema,
|
|
441
1050
|
toolChoice: finalTools.length > 0 ? 'none' : undefined,
|
|
442
1051
|
temperature: this.ctx.runConfig.temperature,
|
|
443
1052
|
maxTokens: this.ctx.runConfig.maxResponseTokens,
|
|
444
1053
|
cacheControl: { type: 'auto' },
|
|
1054
|
+
...(this.ctx.runConfig.thinking ? { thinking: this.ctx.runConfig.thinking } : {}),
|
|
445
1055
|
// Cancellable too: a Stop during the closing summary must not
|
|
446
1056
|
// stream to completion.
|
|
447
1057
|
signal: this.ctx.abortController.signal,
|
|
@@ -477,12 +1087,18 @@ export class IterationOrchestrator {
|
|
|
477
1087
|
}
|
|
478
1088
|
}
|
|
479
1089
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
.
|
|
486
|
-
.
|
|
487
|
-
|
|
1090
|
+
/** Per-step usage: the delta between two cumulative snapshots. */
|
|
1091
|
+
function subtractUsage(after: TokenUsage, before: TokenUsage): TokenUsage {
|
|
1092
|
+
return {
|
|
1093
|
+
promptTokens: after.promptTokens - before.promptTokens,
|
|
1094
|
+
completionTokens: after.completionTokens - before.completionTokens,
|
|
1095
|
+
totalTokens: after.totalTokens - before.totalTokens,
|
|
1096
|
+
cachedTokens: (after.cachedTokens ?? 0) - (before.cachedTokens ?? 0),
|
|
1097
|
+
cacheWriteTokens: (after.cacheWriteTokens ?? 0) - (before.cacheWriteTokens ?? 0),
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
/** Cost deltas are subtractions of floats; keep them presentable. */
|
|
1102
|
+
function round6(n: number): number {
|
|
1103
|
+
return Math.round(n * 1e6) / 1e6
|
|
488
1104
|
}
|