@stigmer/runner 0.1.0-dev.20261017020314.g644422724c27
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/LICENSE +194 -0
- package/README.md +310 -0
- package/dist/.build-fingerprint +1 -0
- package/dist/__test-utils__/approval-contract/hook-commands.d.ts +25 -0
- package/dist/__test-utils__/approval-contract/hook-commands.js +87 -0
- package/dist/__test-utils__/approval-contract/hook-commands.js.map +1 -0
- package/dist/__test-utils__/approval-contract/types.d.ts +326 -0
- package/dist/__test-utils__/approval-contract/types.js +24 -0
- package/dist/__test-utils__/approval-contract/types.js.map +1 -0
- package/dist/__test-utils__/approval-log.d.ts +34 -0
- package/dist/__test-utils__/approval-log.js +126 -0
- package/dist/__test-utils__/approval-log.js.map +1 -0
- package/dist/__test-utils__/execution-record-fixture.d.ts +121 -0
- package/dist/__test-utils__/execution-record-fixture.js +134 -0
- package/dist/__test-utils__/execution-record-fixture.js.map +1 -0
- package/dist/__test-utils__/file-review-projection.d.ts +45 -0
- package/dist/__test-utils__/file-review-projection.js +61 -0
- package/dist/__test-utils__/file-review-projection.js.map +1 -0
- package/dist/__test-utils__/harness-contract/types.d.ts +188 -0
- package/dist/__test-utils__/harness-contract/types.js +64 -0
- package/dist/__test-utils__/harness-contract/types.js.map +1 -0
- package/dist/__test-utils__/hermetic-activity.d.ts +450 -0
- package/dist/__test-utils__/hermetic-activity.js +883 -0
- package/dist/__test-utils__/hermetic-activity.js.map +1 -0
- package/dist/__test-utils__/loopback-host.d.ts +23 -0
- package/dist/__test-utils__/loopback-host.js +45 -0
- package/dist/__test-utils__/loopback-host.js.map +1 -0
- package/dist/__test-utils__/mock-client.d.ts +13 -0
- package/dist/__test-utils__/mock-client.js +46 -0
- package/dist/__test-utils__/mock-client.js.map +1 -0
- package/dist/__test-utils__/mock-workspace.d.ts +15 -0
- package/dist/__test-utils__/mock-workspace.js +21 -0
- package/dist/__test-utils__/mock-workspace.js.map +1 -0
- package/dist/__test-utils__/model-registry-fixture.d.ts +111 -0
- package/dist/__test-utils__/model-registry-fixture.js +109 -0
- package/dist/__test-utils__/model-registry-fixture.js.map +1 -0
- package/dist/__test-utils__/turn-input-fixture.d.ts +60 -0
- package/dist/__test-utils__/turn-input-fixture.js +129 -0
- package/dist/__test-utils__/turn-input-fixture.js.map +1 -0
- package/dist/activities/attach-session.d.ts +34 -0
- package/dist/activities/attach-session.js +94 -0
- package/dist/activities/attach-session.js.map +1 -0
- package/dist/activities/ensure-thread.d.ts +24 -0
- package/dist/activities/ensure-thread.js +44 -0
- package/dist/activities/ensure-thread.js.map +1 -0
- package/dist/activities/execute-cursor/__test-utils__/contract-subject.d.ts +107 -0
- package/dist/activities/execute-cursor/__test-utils__/contract-subject.js +392 -0
- package/dist/activities/execute-cursor/__test-utils__/contract-subject.js.map +1 -0
- package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.d.ts +251 -0
- package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js +254 -0
- package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js.map +1 -0
- package/dist/activities/execute-cursor/__test-utils__/fold.d.ts +62 -0
- package/dist/activities/execute-cursor/__test-utils__/fold.js +94 -0
- package/dist/activities/execute-cursor/__test-utils__/fold.js.map +1 -0
- package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.d.ts +34 -0
- package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js +287 -0
- package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js.map +1 -0
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.d.ts +202 -0
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +306 -0
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -0
- package/dist/activities/execute-cursor/__test-utils__/scripted-agent.d.ts +176 -0
- package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js +278 -0
- package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js.map +1 -0
- package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.d.ts +182 -0
- package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js +241 -0
- package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js.map +1 -0
- package/dist/activities/execute-cursor/adapter.d.ts +63 -0
- package/dist/activities/execute-cursor/adapter.js +141 -0
- package/dist/activities/execute-cursor/adapter.js.map +1 -0
- package/dist/activities/execute-cursor/agent-session-cache.d.ts +72 -0
- package/dist/activities/execute-cursor/agent-session-cache.js +186 -0
- package/dist/activities/execute-cursor/agent-session-cache.js.map +1 -0
- package/dist/activities/execute-cursor/approval-policy.d.ts +67 -0
- package/dist/activities/execute-cursor/approval-policy.js +101 -0
- package/dist/activities/execute-cursor/approval-policy.js.map +1 -0
- package/dist/activities/execute-cursor/approval-state.d.ts +657 -0
- package/dist/activities/execute-cursor/approval-state.js +682 -0
- package/dist/activities/execute-cursor/approval-state.js.map +1 -0
- package/dist/activities/execute-cursor/boundary-rows.d.ts +455 -0
- package/dist/activities/execute-cursor/boundary-rows.js +1268 -0
- package/dist/activities/execute-cursor/boundary-rows.js.map +1 -0
- package/dist/activities/execute-cursor/cas-observations.d.ts +126 -0
- package/dist/activities/execute-cursor/cas-observations.js +240 -0
- package/dist/activities/execute-cursor/cas-observations.js.map +1 -0
- package/dist/activities/execute-cursor/cursor-capabilities.d.ts +37 -0
- package/dist/activities/execute-cursor/cursor-capabilities.js +74 -0
- package/dist/activities/execute-cursor/cursor-capabilities.js.map +1 -0
- package/dist/activities/execute-cursor/cursor-event-recorder.d.ts +43 -0
- package/dist/activities/execute-cursor/cursor-event-recorder.js +88 -0
- package/dist/activities/execute-cursor/cursor-event-recorder.js.map +1 -0
- package/dist/activities/execute-cursor/cursor-mcp-config.d.ts +58 -0
- package/dist/activities/execute-cursor/cursor-mcp-config.js +86 -0
- package/dist/activities/execute-cursor/cursor-mcp-config.js.map +1 -0
- package/dist/activities/execute-cursor/cursor-mode.d.ts +32 -0
- package/dist/activities/execute-cursor/cursor-mode.js +36 -0
- package/dist/activities/execute-cursor/cursor-mode.js.map +1 -0
- package/dist/activities/execute-cursor/error-classifier.d.ts +138 -0
- package/dist/activities/execute-cursor/error-classifier.js +330 -0
- package/dist/activities/execute-cursor/error-classifier.js.map +1 -0
- package/dist/activities/execute-cursor/fetch-interceptor.d.ts +56 -0
- package/dist/activities/execute-cursor/fetch-interceptor.js +378 -0
- package/dist/activities/execute-cursor/fetch-interceptor.js.map +1 -0
- package/dist/activities/execute-cursor/hook-scope.d.ts +143 -0
- package/dist/activities/execute-cursor/hook-scope.js +149 -0
- package/dist/activities/execute-cursor/hook-scope.js.map +1 -0
- package/dist/activities/execute-cursor/hook-script.d.ts +172 -0
- package/dist/activities/execute-cursor/hook-script.js +1204 -0
- package/dist/activities/execute-cursor/hook-script.js.map +1 -0
- package/dist/activities/execute-cursor/hook-server.d.ts +152 -0
- package/dist/activities/execute-cursor/hook-server.js +422 -0
- package/dist/activities/execute-cursor/hook-server.js.map +1 -0
- package/dist/activities/execute-cursor/hook-tool-hiding.d.ts +37 -0
- package/dist/activities/execute-cursor/hook-tool-hiding.js +58 -0
- package/dist/activities/execute-cursor/hook-tool-hiding.js.map +1 -0
- package/dist/activities/execute-cursor/hook-views.d.ts +74 -0
- package/dist/activities/execute-cursor/hook-views.js +180 -0
- package/dist/activities/execute-cursor/hook-views.js.map +1 -0
- package/dist/activities/execute-cursor/http2-interceptor.d.ts +98 -0
- package/dist/activities/execute-cursor/http2-interceptor.js +218 -0
- package/dist/activities/execute-cursor/http2-interceptor.js.map +1 -0
- package/dist/activities/execute-cursor/model-pricing-data.d.ts +39 -0
- package/dist/activities/execute-cursor/model-pricing-data.js +109 -0
- package/dist/activities/execute-cursor/model-pricing-data.js.map +1 -0
- package/dist/activities/execute-cursor/model-pricing.d.ts +51 -0
- package/dist/activities/execute-cursor/model-pricing.js +160 -0
- package/dist/activities/execute-cursor/model-pricing.js.map +1 -0
- package/dist/activities/execute-cursor/prompt-builder.d.ts +437 -0
- package/dist/activities/execute-cursor/prompt-builder.js +719 -0
- package/dist/activities/execute-cursor/prompt-builder.js.map +1 -0
- package/dist/activities/execute-cursor/rejection-capture.d.ts +27 -0
- package/dist/activities/execute-cursor/rejection-capture.js +78 -0
- package/dist/activities/execute-cursor/rejection-capture.js.map +1 -0
- package/dist/activities/execute-cursor/run-telemetry.d.ts +61 -0
- package/dist/activities/execute-cursor/run-telemetry.js +149 -0
- package/dist/activities/execute-cursor/run-telemetry.js.map +1 -0
- package/dist/activities/execute-cursor/sdk-warmup.d.ts +53 -0
- package/dist/activities/execute-cursor/sdk-warmup.js +70 -0
- package/dist/activities/execute-cursor/sdk-warmup.js.map +1 -0
- package/dist/activities/execute-cursor/service-tier.d.ts +68 -0
- package/dist/activities/execute-cursor/service-tier.js +200 -0
- package/dist/activities/execute-cursor/service-tier.js.map +1 -0
- package/dist/activities/execute-cursor/session-lifecycle.d.ts +247 -0
- package/dist/activities/execute-cursor/session-lifecycle.js +330 -0
- package/dist/activities/execute-cursor/session-lifecycle.js.map +1 -0
- package/dist/activities/execute-cursor/session-store.d.ts +99 -0
- package/dist/activities/execute-cursor/session-store.js +156 -0
- package/dist/activities/execute-cursor/session-store.js.map +1 -0
- package/dist/activities/execute-cursor/sub-agent-steps.d.ts +79 -0
- package/dist/activities/execute-cursor/sub-agent-steps.js +180 -0
- package/dist/activities/execute-cursor/sub-agent-steps.js.map +1 -0
- package/dist/activities/execute-cursor/subagent-config.d.ts +61 -0
- package/dist/activities/execute-cursor/subagent-config.js +102 -0
- package/dist/activities/execute-cursor/subagent-config.js.map +1 -0
- package/dist/activities/execute-cursor/tool-result.d.ts +49 -0
- package/dist/activities/execute-cursor/tool-result.js +130 -0
- package/dist/activities/execute-cursor/tool-result.js.map +1 -0
- package/dist/activities/execute-cursor/translator.d.ts +183 -0
- package/dist/activities/execute-cursor/translator.js +485 -0
- package/dist/activities/execute-cursor/translator.js.map +1 -0
- package/dist/activities/execute-cursor/turn-boundary.d.ts +124 -0
- package/dist/activities/execute-cursor/turn-boundary.js +210 -0
- package/dist/activities/execute-cursor/turn-boundary.js.map +1 -0
- package/dist/activities/execute-cursor/turn-recovery.d.ts +62 -0
- package/dist/activities/execute-cursor/turn-recovery.js +208 -0
- package/dist/activities/execute-cursor/turn-recovery.js.map +1 -0
- package/dist/activities/execute-cursor/turn-settle.d.ts +59 -0
- package/dist/activities/execute-cursor/turn-settle.js +512 -0
- package/dist/activities/execute-cursor/turn-settle.js.map +1 -0
- package/dist/activities/execute-cursor/turn-setup.d.ts +281 -0
- package/dist/activities/execute-cursor/turn-setup.js +739 -0
- package/dist/activities/execute-cursor/turn-setup.js.map +1 -0
- package/dist/activities/execute-cursor/turn-stream.d.ts +133 -0
- package/dist/activities/execute-cursor/turn-stream.js +239 -0
- package/dist/activities/execute-cursor/turn-stream.js.map +1 -0
- package/dist/activities/execute-cursor/turn.d.ts +46 -0
- package/dist/activities/execute-cursor/turn.js +247 -0
- package/dist/activities/execute-cursor/turn.js.map +1 -0
- package/dist/activities/execute-cursor/usage-pricing.d.ts +38 -0
- package/dist/activities/execute-cursor/usage-pricing.js +50 -0
- package/dist/activities/execute-cursor/usage-pricing.js.map +1 -0
- package/dist/activities/execute-cursor/workspace-hook-files.d.ts +116 -0
- package/dist/activities/execute-cursor/workspace-hook-files.js +390 -0
- package/dist/activities/execute-cursor/workspace-hook-files.js.map +1 -0
- package/dist/activities/execute-cursor/workspace-setup.d.ts +148 -0
- package/dist/activities/execute-cursor/workspace-setup.js +444 -0
- package/dist/activities/execute-cursor/workspace-setup.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.d.ts +102 -0
- package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js +361 -0
- package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/gateway-substrate.d.ts +33 -0
- package/dist/activities/execute-deep-agent/__test-utils__/gateway-substrate.js +423 -0
- package/dist/activities/execute-deep-agent/__test-utils__/gateway-substrate.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +224 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +307 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.d.ts +24 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js +41 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/paused-session-fixture.d.ts +76 -0
- package/dist/activities/execute-deep-agent/__test-utils__/paused-session-fixture.js +112 -0
- package/dist/activities/execute-deep-agent/__test-utils__/paused-session-fixture.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.d.ts +53 -0
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js +71 -0
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.d.ts +305 -0
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js +368 -0
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/think-bound-session.d.ts +17 -0
- package/dist/activities/execute-deep-agent/__test-utils__/think-bound-session.js +23 -0
- package/dist/activities/execute-deep-agent/__test-utils__/think-bound-session.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.d.ts +80 -0
- package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js +195 -0
- package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js.map +1 -0
- package/dist/activities/execute-deep-agent/adapter.d.ts +41 -0
- package/dist/activities/execute-deep-agent/adapter.js +79 -0
- package/dist/activities/execute-deep-agent/adapter.js.map +1 -0
- package/dist/activities/execute-deep-agent/approval-file-change.d.ts +54 -0
- package/dist/activities/execute-deep-agent/approval-file-change.js +68 -0
- package/dist/activities/execute-deep-agent/approval-file-change.js.map +1 -0
- package/dist/activities/execute-deep-agent/auto-publish.d.ts +17 -0
- package/dist/activities/execute-deep-agent/auto-publish.js +71 -0
- package/dist/activities/execute-deep-agent/auto-publish.js.map +1 -0
- package/dist/activities/execute-deep-agent/cas-capture-backend.d.ts +84 -0
- package/dist/activities/execute-deep-agent/cas-capture-backend.js +106 -0
- package/dist/activities/execute-deep-agent/cas-capture-backend.js.map +1 -0
- package/dist/activities/execute-deep-agent/cas-capture-observer.d.ts +83 -0
- package/dist/activities/execute-deep-agent/cas-capture-observer.js +117 -0
- package/dist/activities/execute-deep-agent/cas-capture-observer.js.map +1 -0
- package/dist/activities/execute-deep-agent/deep-agent-capabilities.d.ts +32 -0
- package/dist/activities/execute-deep-agent/deep-agent-capabilities.js +45 -0
- package/dist/activities/execute-deep-agent/deep-agent-capabilities.js.map +1 -0
- package/dist/activities/execute-deep-agent/deepagents-profiles.d.ts +30 -0
- package/dist/activities/execute-deep-agent/deepagents-profiles.js +46 -0
- package/dist/activities/execute-deep-agent/deepagents-profiles.js.map +1 -0
- package/dist/activities/execute-deep-agent/engine-tools.d.ts +32 -0
- package/dist/activities/execute-deep-agent/engine-tools.js +32 -0
- package/dist/activities/execute-deep-agent/engine-tools.js.map +1 -0
- package/dist/activities/execute-deep-agent/hitl.d.ts +126 -0
- package/dist/activities/execute-deep-agent/hitl.js +194 -0
- package/dist/activities/execute-deep-agent/hitl.js.map +1 -0
- package/dist/activities/execute-deep-agent/hooks-setup.d.ts +25 -0
- package/dist/activities/execute-deep-agent/hooks-setup.js +59 -0
- package/dist/activities/execute-deep-agent/hooks-setup.js.map +1 -0
- package/dist/activities/execute-deep-agent/inline-publisher.d.ts +83 -0
- package/dist/activities/execute-deep-agent/inline-publisher.js +152 -0
- package/dist/activities/execute-deep-agent/inline-publisher.js.map +1 -0
- package/dist/activities/execute-deep-agent/platform-route.d.ts +145 -0
- package/dist/activities/execute-deep-agent/platform-route.js +237 -0
- package/dist/activities/execute-deep-agent/platform-route.js.map +1 -0
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +189 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js +369 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -0
- package/dist/activities/execute-deep-agent/resumed-history.d.ts +25 -0
- package/dist/activities/execute-deep-agent/resumed-history.js +47 -0
- package/dist/activities/execute-deep-agent/resumed-history.js.map +1 -0
- package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +49 -0
- package/dist/activities/execute-deep-agent/streaming-side-effects.js +73 -0
- package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -0
- package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +253 -0
- package/dist/activities/execute-deep-agent/subagent-transformer.js +474 -0
- package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -0
- package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +99 -0
- package/dist/activities/execute-deep-agent/subagent-wiring.js +119 -0
- package/dist/activities/execute-deep-agent/subagent-wiring.js.map +1 -0
- package/dist/activities/execute-deep-agent/todo-list.d.ts +40 -0
- package/dist/activities/execute-deep-agent/todo-list.js +51 -0
- package/dist/activities/execute-deep-agent/todo-list.js.map +1 -0
- package/dist/activities/execute-deep-agent/translator.d.ts +167 -0
- package/dist/activities/execute-deep-agent/translator.js +521 -0
- package/dist/activities/execute-deep-agent/translator.js.map +1 -0
- package/dist/activities/execute-deep-agent/turn-settle.d.ts +48 -0
- package/dist/activities/execute-deep-agent/turn-settle.js +141 -0
- package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -0
- package/dist/activities/execute-deep-agent/turn-setup.d.ts +281 -0
- package/dist/activities/execute-deep-agent/turn-setup.js +687 -0
- package/dist/activities/execute-deep-agent/turn-setup.js.map +1 -0
- package/dist/activities/execute-deep-agent/turn-stream.d.ts +105 -0
- package/dist/activities/execute-deep-agent/turn-stream.js +236 -0
- package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -0
- package/dist/activities/execute-deep-agent/turn.d.ts +48 -0
- package/dist/activities/execute-deep-agent/turn.js +136 -0
- package/dist/activities/execute-deep-agent/turn.js.map +1 -0
- package/dist/activities/execute-deep-agent/v3-event-recorder.d.ts +32 -0
- package/dist/activities/execute-deep-agent/v3-event-recorder.js +72 -0
- package/dist/activities/execute-deep-agent/v3-event-recorder.js.map +1 -0
- package/dist/activities/generate-session-subject.d.ts +93 -0
- package/dist/activities/generate-session-subject.js +285 -0
- package/dist/activities/generate-session-subject.js.map +1 -0
- package/dist/activities/list-plugin-tools.d.ts +76 -0
- package/dist/activities/list-plugin-tools.js +170 -0
- package/dist/activities/list-plugin-tools.js.map +1 -0
- package/dist/agent-host/channel.d.ts +93 -0
- package/dist/agent-host/channel.js +332 -0
- package/dist/agent-host/channel.js.map +1 -0
- package/dist/agent-host/codec.d.ts +290 -0
- package/dist/agent-host/codec.js +437 -0
- package/dist/agent-host/codec.js.map +1 -0
- package/dist/agent-host/entry.d.ts +56 -0
- package/dist/agent-host/entry.js +137 -0
- package/dist/agent-host/entry.js.map +1 -0
- package/dist/agent-host/environment.d.ts +36 -0
- package/dist/agent-host/environment.js +72 -0
- package/dist/agent-host/environment.js.map +1 -0
- package/dist/agent-host/failed-boot.d.ts +15 -0
- package/dist/agent-host/failed-boot.js +26 -0
- package/dist/agent-host/failed-boot.js.map +1 -0
- package/dist/agent-host/fs-service.d.ts +18 -0
- package/dist/agent-host/fs-service.js +133 -0
- package/dist/agent-host/fs-service.js.map +1 -0
- package/dist/agent-host/host-sink.d.ts +63 -0
- package/dist/agent-host/host-sink.js +136 -0
- package/dist/agent-host/host-sink.js.map +1 -0
- package/dist/agent-host/host.d.ts +48 -0
- package/dist/agent-host/host.js +191 -0
- package/dist/agent-host/host.js.map +1 -0
- package/dist/agent-host/hosting.d.ts +80 -0
- package/dist/agent-host/hosting.js +126 -0
- package/dist/agent-host/hosting.js.map +1 -0
- package/dist/agent-host/protocol.d.ts +478 -0
- package/dist/agent-host/protocol.js +77 -0
- package/dist/agent-host/protocol.js.map +1 -0
- package/dist/agent-host/remote-adapter.d.ts +64 -0
- package/dist/agent-host/remote-adapter.js +283 -0
- package/dist/agent-host/remote-adapter.js.map +1 -0
- package/dist/agent-host/remote-fs.d.ts +19 -0
- package/dist/agent-host/remote-fs.js +120 -0
- package/dist/agent-host/remote-fs.js.map +1 -0
- package/dist/agent-host/supervisor.d.ts +149 -0
- package/dist/agent-host/supervisor.js +311 -0
- package/dist/agent-host/supervisor.js.map +1 -0
- package/dist/agent-proxy/cursor-lane.d.ts +124 -0
- package/dist/agent-proxy/cursor-lane.js +507 -0
- package/dist/agent-proxy/cursor-lane.js.map +1 -0
- package/dist/agent-proxy/lanes.d.ts +63 -0
- package/dist/agent-proxy/lanes.js +255 -0
- package/dist/agent-proxy/lanes.js.map +1 -0
- package/dist/agent-proxy/loopback-certificate.d.ts +27 -0
- package/dist/agent-proxy/loopback-certificate.js +115 -0
- package/dist/agent-proxy/loopback-certificate.js.map +1 -0
- package/dist/agent-proxy/otlp-forward.d.ts +67 -0
- package/dist/agent-proxy/otlp-forward.js +170 -0
- package/dist/agent-proxy/otlp-forward.js.map +1 -0
- package/dist/agent-proxy/relay.d.ts +67 -0
- package/dist/agent-proxy/relay.js +164 -0
- package/dist/agent-proxy/relay.js.map +1 -0
- package/dist/agent-proxy/server.d.ts +84 -0
- package/dist/agent-proxy/server.js +258 -0
- package/dist/agent-proxy/server.js.map +1 -0
- package/dist/attach/entry.d.ts +36 -0
- package/dist/attach/entry.js +69 -0
- package/dist/attach/entry.js.map +1 -0
- package/dist/attach/main.d.ts +14 -0
- package/dist/attach/main.js +25 -0
- package/dist/attach/main.js.map +1 -0
- package/dist/attach/push.d.ts +71 -0
- package/dist/attach/push.js +123 -0
- package/dist/attach/push.js.map +1 -0
- package/dist/attach/waiter.d.ts +108 -0
- package/dist/attach/waiter.js +323 -0
- package/dist/attach/waiter.js.map +1 -0
- package/dist/bootstrap.d.ts +80 -0
- package/dist/bootstrap.js +119 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/client/server-contracts.d.ts +51 -0
- package/dist/client/server-contracts.js +70 -0
- package/dist/client/server-contracts.js.map +1 -0
- package/dist/client/stigmer-client.d.ts +328 -0
- package/dist/client/stigmer-client.js +478 -0
- package/dist/client/stigmer-client.js.map +1 -0
- package/dist/client/token-claims.d.ts +40 -0
- package/dist/client/token-claims.js +88 -0
- package/dist/client/token-claims.js.map +1 -0
- package/dist/config.d.ts +216 -0
- package/dist/config.js +200 -0
- package/dist/config.js.map +1 -0
- package/dist/exit-backstop.d.ts +64 -0
- package/dist/exit-backstop.js +79 -0
- package/dist/exit-backstop.js.map +1 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.d.ts +1016 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.js +1035 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.js.map +1 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/ledger_pb.d.ts +402 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/ledger_pb.js +47 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/ledger_pb.js.map +1 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.d.ts +826 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.js +48 -0
- package/dist/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.js.map +1 -0
- package/dist/gen-ai-conventions.d.ts +95 -0
- package/dist/gen-ai-conventions.js +102 -0
- package/dist/gen-ai-conventions.js.map +1 -0
- package/dist/harness/approval-answers.d.ts +104 -0
- package/dist/harness/approval-answers.js +136 -0
- package/dist/harness/approval-answers.js.map +1 -0
- package/dist/harness/approval-decisions.d.ts +50 -0
- package/dist/harness/approval-decisions.js +80 -0
- package/dist/harness/approval-decisions.js.map +1 -0
- package/dist/harness/capabilities.d.ts +149 -0
- package/dist/harness/capabilities.js +48 -0
- package/dist/harness/capabilities.js.map +1 -0
- package/dist/harness/capture.d.ts +154 -0
- package/dist/harness/capture.js +248 -0
- package/dist/harness/capture.js.map +1 -0
- package/dist/harness/cost-cap-watch.d.ts +31 -0
- package/dist/harness/cost-cap-watch.js +44 -0
- package/dist/harness/cost-cap-watch.js.map +1 -0
- package/dist/harness/events/emitter.d.ts +220 -0
- package/dist/harness/events/emitter.js +726 -0
- package/dist/harness/events/emitter.js.map +1 -0
- package/dist/harness/events/ids.d.ts +88 -0
- package/dist/harness/events/ids.js +136 -0
- package/dist/harness/events/ids.js.map +1 -0
- package/dist/harness/loaded-versions.d.ts +20 -0
- package/dist/harness/loaded-versions.js +70 -0
- package/dist/harness/loaded-versions.js.map +1 -0
- package/dist/harness/owed-undos.d.ts +119 -0
- package/dist/harness/owed-undos.js +200 -0
- package/dist/harness/owed-undos.js.map +1 -0
- package/dist/harness/persist-chokepoint.d.ts +113 -0
- package/dist/harness/persist-chokepoint.js +126 -0
- package/dist/harness/persist-chokepoint.js.map +1 -0
- package/dist/harness/registry.d.ts +108 -0
- package/dist/harness/registry.js +174 -0
- package/dist/harness/registry.js.map +1 -0
- package/dist/harness/run-span.d.ts +78 -0
- package/dist/harness/run-span.js +139 -0
- package/dist/harness/run-span.js.map +1 -0
- package/dist/harness/run-turn.d.ts +59 -0
- package/dist/harness/run-turn.js +749 -0
- package/dist/harness/run-turn.js.map +1 -0
- package/dist/harness/stop-controller.d.ts +65 -0
- package/dist/harness/stop-controller.js +70 -0
- package/dist/harness/stop-controller.js.map +1 -0
- package/dist/harness/terminal-table.d.ts +212 -0
- package/dist/harness/terminal-table.js +329 -0
- package/dist/harness/terminal-table.js.map +1 -0
- package/dist/harness/transcript/builder.d.ts +269 -0
- package/dist/harness/transcript/builder.js +842 -0
- package/dist/harness/transcript/builder.js.map +1 -0
- package/dist/harness/transcript/events.d.ts +236 -0
- package/dist/harness/transcript/events.js +55 -0
- package/dist/harness/transcript/events.js.map +1 -0
- package/dist/harness/transcript/resume-seed.d.ts +67 -0
- package/dist/harness/transcript/resume-seed.js +228 -0
- package/dist/harness/transcript/resume-seed.js.map +1 -0
- package/dist/harness/transcript/state.d.ts +111 -0
- package/dist/harness/transcript/state.js +147 -0
- package/dist/harness/transcript/state.js.map +1 -0
- package/dist/harness/turn-context.d.ts +923 -0
- package/dist/harness/turn-context.js +1448 -0
- package/dist/harness/turn-context.js.map +1 -0
- package/dist/harness/turn-timeline.d.ts +132 -0
- package/dist/harness/turn-timeline.js +213 -0
- package/dist/harness/turn-timeline.js.map +1 -0
- package/dist/harness/types.d.ts +700 -0
- package/dist/harness/types.js +72 -0
- package/dist/harness/types.js.map +1 -0
- package/dist/harness/usage-accumulator.d.ts +76 -0
- package/dist/harness/usage-accumulator.js +112 -0
- package/dist/harness/usage-accumulator.js.map +1 -0
- package/dist/harness-adapters.d.ts +40 -0
- package/dist/harness-adapters.js +45 -0
- package/dist/harness-adapters.js.map +1 -0
- package/dist/idle-watchdog.d.ts +11 -0
- package/dist/idle-watchdog.js +24 -0
- package/dist/idle-watchdog.js.map +1 -0
- package/dist/in-flight.d.ts +35 -0
- package/dist/in-flight.js +61 -0
- package/dist/in-flight.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/run-credential-activity.d.ts +24 -0
- package/dist/interceptors/run-credential-activity.js +36 -0
- package/dist/interceptors/run-credential-activity.js.map +1 -0
- package/dist/ipc-protocol-fixtures.d.ts +28 -0
- package/dist/ipc-protocol-fixtures.js +50 -0
- package/dist/ipc-protocol-fixtures.js.map +1 -0
- package/dist/ipc-protocol.d.ts +43 -0
- package/dist/ipc-protocol.js +20 -0
- package/dist/ipc-protocol.js.map +1 -0
- package/dist/main.d.ts +26 -0
- package/dist/main.js +451 -0
- package/dist/main.js.map +1 -0
- package/dist/middleware/advisory-message.d.ts +52 -0
- package/dist/middleware/advisory-message.js +58 -0
- package/dist/middleware/advisory-message.js.map +1 -0
- package/dist/middleware/approval-gate.d.ts +255 -0
- package/dist/middleware/approval-gate.js +502 -0
- package/dist/middleware/approval-gate.js.map +1 -0
- package/dist/middleware/cost-advisory.d.ts +65 -0
- package/dist/middleware/cost-advisory.js +185 -0
- package/dist/middleware/cost-advisory.js.map +1 -0
- package/dist/middleware/error-hints.d.ts +27 -0
- package/dist/middleware/error-hints.js +116 -0
- package/dist/middleware/error-hints.js.map +1 -0
- package/dist/middleware/execution-budget.d.ts +38 -0
- package/dist/middleware/execution-budget.js +168 -0
- package/dist/middleware/execution-budget.js.map +1 -0
- package/dist/middleware/index.d.ts +55 -0
- package/dist/middleware/index.js +80 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/loop-detection.d.ts +22 -0
- package/dist/middleware/loop-detection.js +161 -0
- package/dist/middleware/loop-detection.js.map +1 -0
- package/dist/middleware/otel-spans.d.ts +43 -0
- package/dist/middleware/otel-spans.js +281 -0
- package/dist/middleware/otel-spans.js.map +1 -0
- package/dist/middleware/path-normalization.d.ts +84 -0
- package/dist/middleware/path-normalization.js +161 -0
- package/dist/middleware/path-normalization.js.map +1 -0
- package/dist/middleware/tool-intent.d.ts +57 -0
- package/dist/middleware/tool-intent.js +152 -0
- package/dist/middleware/tool-intent.js.map +1 -0
- package/dist/middleware/tool-scope.d.ts +119 -0
- package/dist/middleware/tool-scope.js +159 -0
- package/dist/middleware/tool-scope.js.map +1 -0
- package/dist/middleware/tool-truncation.d.ts +16 -0
- package/dist/middleware/tool-truncation.js +67 -0
- package/dist/middleware/tool-truncation.js.map +1 -0
- package/dist/middleware/types.d.ts +119 -0
- package/dist/middleware/types.js +10 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/otel-export.d.ts +142 -0
- package/dist/otel-export.js +269 -0
- package/dist/otel-export.js.map +1 -0
- package/dist/otel-metrics.d.ts +22 -0
- package/dist/otel-metrics.js +47 -0
- package/dist/otel-metrics.js.map +1 -0
- package/dist/otel.d.ts +49 -0
- package/dist/otel.js +125 -0
- package/dist/otel.js.map +1 -0
- package/dist/payload-codecs.d.ts +17 -0
- package/dist/payload-codecs.js +45 -0
- package/dist/payload-codecs.js.map +1 -0
- package/dist/pipe-safety.d.ts +55 -0
- package/dist/pipe-safety.js +103 -0
- package/dist/pipe-safety.js.map +1 -0
- package/dist/pool-member.d.ts +61 -0
- package/dist/pool-member.js +51 -0
- package/dist/pool-member.js.map +1 -0
- package/dist/preflight.d.ts +77 -0
- package/dist/preflight.js +98 -0
- package/dist/preflight.js.map +1 -0
- package/dist/run-trace-id.d.ts +34 -0
- package/dist/run-trace-id.js +44 -0
- package/dist/run-trace-id.js.map +1 -0
- package/dist/runner-entry.d.ts +15 -0
- package/dist/runner-entry.js +17 -0
- package/dist/runner-entry.js.map +1 -0
- package/dist/runner-manager.d.ts +160 -0
- package/dist/runner-manager.js +590 -0
- package/dist/runner-manager.js.map +1 -0
- package/dist/runner-token-coordinator.d.ts +61 -0
- package/dist/runner-token-coordinator.js +89 -0
- package/dist/runner-token-coordinator.js.map +1 -0
- package/dist/runner.d.ts +155 -0
- package/dist/runner.js +392 -0
- package/dist/runner.js.map +1 -0
- package/dist/sandbox-token-renewal.d.ts +64 -0
- package/dist/sandbox-token-renewal.js +168 -0
- package/dist/sandbox-token-renewal.js.map +1 -0
- package/dist/shared/activity-input.d.ts +52 -0
- package/dist/shared/activity-input.js +34 -0
- package/dist/shared/activity-input.js.map +1 -0
- package/dist/shared/agent-fs.d.ts +144 -0
- package/dist/shared/agent-fs.js +171 -0
- package/dist/shared/agent-fs.js.map +1 -0
- package/dist/shared/agent-handover.d.ts +42 -0
- package/dist/shared/agent-handover.js +156 -0
- package/dist/shared/agent-handover.js.map +1 -0
- package/dist/shared/agent-identity.d.ts +96 -0
- package/dist/shared/agent-identity.js +153 -0
- package/dist/shared/agent-identity.js.map +1 -0
- package/dist/shared/agent-servers.d.ts +4 -0
- package/dist/shared/agent-servers.js +46 -0
- package/dist/shared/agent-servers.js.map +1 -0
- package/dist/shared/approval-canonicalize.d.ts +19 -0
- package/dist/shared/approval-canonicalize.js +119 -0
- package/dist/shared/approval-canonicalize.js.map +1 -0
- package/dist/shared/approval-fingerprint.d.ts +103 -0
- package/dist/shared/approval-fingerprint.js +110 -0
- package/dist/shared/approval-fingerprint.js.map +1 -0
- package/dist/shared/approval-policy.d.ts +323 -0
- package/dist/shared/approval-policy.js +375 -0
- package/dist/shared/approval-policy.js.map +1 -0
- package/dist/shared/archive-mount.d.ts +68 -0
- package/dist/shared/archive-mount.js +108 -0
- package/dist/shared/archive-mount.js.map +1 -0
- package/dist/shared/args-preview.d.ts +90 -0
- package/dist/shared/args-preview.js +121 -0
- package/dist/shared/args-preview.js.map +1 -0
- package/dist/shared/artifact-storage.d.ts +155 -0
- package/dist/shared/artifact-storage.js +373 -0
- package/dist/shared/artifact-storage.js.map +1 -0
- package/dist/shared/attachment-download-urls.d.ts +53 -0
- package/dist/shared/attachment-download-urls.js +68 -0
- package/dist/shared/attachment-download-urls.js.map +1 -0
- package/dist/shared/attachment-naming.d.ts +53 -0
- package/dist/shared/attachment-naming.js +59 -0
- package/dist/shared/attachment-naming.js.map +1 -0
- package/dist/shared/attachment-resolver.d.ts +124 -0
- package/dist/shared/attachment-resolver.js +322 -0
- package/dist/shared/attachment-resolver.js.map +1 -0
- package/dist/shared/attachment-vision.d.ts +245 -0
- package/dist/shared/attachment-vision.js +339 -0
- package/dist/shared/attachment-vision.js.map +1 -0
- package/dist/shared/attachment-zip.d.ts +85 -0
- package/dist/shared/attachment-zip.js +185 -0
- package/dist/shared/attachment-zip.js.map +1 -0
- package/dist/shared/blueprint-resolver.d.ts +175 -0
- package/dist/shared/blueprint-resolver.js +305 -0
- package/dist/shared/blueprint-resolver.js.map +1 -0
- package/dist/shared/builtin-assistant-prompt.d.ts +30 -0
- package/dist/shared/builtin-assistant-prompt.js +36 -0
- package/dist/shared/builtin-assistant-prompt.js.map +1 -0
- package/dist/shared/builtin-judge.d.ts +9 -0
- package/dist/shared/builtin-judge.js +53 -0
- package/dist/shared/builtin-judge.js.map +1 -0
- package/dist/shared/caller-identity.d.ts +112 -0
- package/dist/shared/caller-identity.js +150 -0
- package/dist/shared/caller-identity.js.map +1 -0
- package/dist/shared/channel-attachment.d.ts +90 -0
- package/dist/shared/channel-attachment.js +209 -0
- package/dist/shared/channel-attachment.js.map +1 -0
- package/dist/shared/checkpointer/factory.d.ts +32 -0
- package/dist/shared/checkpointer/factory.js +72 -0
- package/dist/shared/checkpointer/factory.js.map +1 -0
- package/dist/shared/checkpointer/http-saver.d.ts +70 -0
- package/dist/shared/checkpointer/http-saver.js +335 -0
- package/dist/shared/checkpointer/http-saver.js.map +1 -0
- package/dist/shared/checkpointer/sqlite-saver.d.ts +54 -0
- package/dist/shared/checkpointer/sqlite-saver.js +272 -0
- package/dist/shared/checkpointer/sqlite-saver.js.map +1 -0
- package/dist/shared/checkpointer/types.d.ts +25 -0
- package/dist/shared/checkpointer/types.js +18 -0
- package/dist/shared/checkpointer/types.js.map +1 -0
- package/dist/shared/cold-start-timing.d.ts +124 -0
- package/dist/shared/cold-start-timing.js +220 -0
- package/dist/shared/cold-start-timing.js.map +1 -0
- package/dist/shared/context-bridge.d.ts +30 -0
- package/dist/shared/context-bridge.js +45 -0
- package/dist/shared/context-bridge.js.map +1 -0
- package/dist/shared/conversation-attachment.d.ts +103 -0
- package/dist/shared/conversation-attachment.js +128 -0
- package/dist/shared/conversation-attachment.js.map +1 -0
- package/dist/shared/conversation-catchup.d.ts +40 -0
- package/dist/shared/conversation-catchup.js +86 -0
- package/dist/shared/conversation-catchup.js.map +1 -0
- package/dist/shared/cost-guard.d.ts +51 -0
- package/dist/shared/cost-guard.js +58 -0
- package/dist/shared/cost-guard.js.map +1 -0
- package/dist/shared/declared-preferences.d.ts +47 -0
- package/dist/shared/declared-preferences.js +64 -0
- package/dist/shared/declared-preferences.js.map +1 -0
- package/dist/shared/eval-case/agent-mock.d.ts +61 -0
- package/dist/shared/eval-case/agent-mock.js +88 -0
- package/dist/shared/eval-case/agent-mock.js.map +1 -0
- package/dist/shared/eval-case/case-archive.d.ts +51 -0
- package/dist/shared/eval-case/case-archive.js +119 -0
- package/dist/shared/eval-case/case-archive.js.map +1 -0
- package/dist/shared/eval-case/mock-endpoint.d.ts +68 -0
- package/dist/shared/eval-case/mock-endpoint.js +209 -0
- package/dist/shared/eval-case/mock-endpoint.js.map +1 -0
- package/dist/shared/eval-case/prepare-case.d.ts +78 -0
- package/dist/shared/eval-case/prepare-case.js +193 -0
- package/dist/shared/eval-case/prepare-case.js.map +1 -0
- package/dist/shared/eval-case/read-files.d.ts +26 -0
- package/dist/shared/eval-case/read-files.js +88 -0
- package/dist/shared/eval-case/read-files.js.map +1 -0
- package/dist/shared/exact-apply.d.ts +109 -0
- package/dist/shared/exact-apply.js +205 -0
- package/dist/shared/exact-apply.js.map +1 -0
- package/dist/shared/execution-context.d.ts +47 -0
- package/dist/shared/execution-context.js +51 -0
- package/dist/shared/execution-context.js.map +1 -0
- package/dist/shared/execution-target.d.ts +13 -0
- package/dist/shared/execution-target.js +15 -0
- package/dist/shared/execution-target.js.map +1 -0
- package/dist/shared/extract-json.d.ts +26 -0
- package/dist/shared/extract-json.js +140 -0
- package/dist/shared/extract-json.js.map +1 -0
- package/dist/shared/extract-structured-output.d.ts +38 -0
- package/dist/shared/extract-structured-output.js +68 -0
- package/dist/shared/extract-structured-output.js.map +1 -0
- package/dist/shared/file-change.d.ts +42 -0
- package/dist/shared/file-change.js +55 -0
- package/dist/shared/file-change.js.map +1 -0
- package/dist/shared/file-tools.d.ts +105 -0
- package/dist/shared/file-tools.js +166 -0
- package/dist/shared/file-tools.js.map +1 -0
- package/dist/shared/filereview/capture.d.ts +238 -0
- package/dist/shared/filereview/capture.js +559 -0
- package/dist/shared/filereview/capture.js.map +1 -0
- package/dist/shared/filereview/cas-progress.d.ts +45 -0
- package/dist/shared/filereview/cas-progress.js +131 -0
- package/dist/shared/filereview/cas-progress.js.map +1 -0
- package/dist/shared/filereview/cas-substrate.d.ts +226 -0
- package/dist/shared/filereview/cas-substrate.js +315 -0
- package/dist/shared/filereview/cas-substrate.js.map +1 -0
- package/dist/shared/filereview/cas-touched.d.ts +56 -0
- package/dist/shared/filereview/cas-touched.js +63 -0
- package/dist/shared/filereview/cas-touched.js.map +1 -0
- package/dist/shared/filereview/command-provenance.d.ts +95 -0
- package/dist/shared/filereview/command-provenance.js +134 -0
- package/dist/shared/filereview/command-provenance.js.map +1 -0
- package/dist/shared/filereview/digest.d.ts +40 -0
- package/dist/shared/filereview/digest.js +66 -0
- package/dist/shared/filereview/digest.js.map +1 -0
- package/dist/shared/filereview/events.d.ts +199 -0
- package/dist/shared/filereview/events.js +348 -0
- package/dist/shared/filereview/events.js.map +1 -0
- package/dist/shared/filereview/git-substrate.d.ts +233 -0
- package/dist/shared/filereview/git-substrate.js +528 -0
- package/dist/shared/filereview/git-substrate.js.map +1 -0
- package/dist/shared/filereview/index.d.ts +15 -0
- package/dist/shared/filereview/index.js +16 -0
- package/dist/shared/filereview/index.js.map +1 -0
- package/dist/shared/filereview/line-counts.d.ts +48 -0
- package/dist/shared/filereview/line-counts.js +72 -0
- package/dist/shared/filereview/line-counts.js.map +1 -0
- package/dist/shared/filereview/progress.d.ts +200 -0
- package/dist/shared/filereview/progress.js +245 -0
- package/dist/shared/filereview/progress.js.map +1 -0
- package/dist/shared/filereview/record.d.ts +53 -0
- package/dist/shared/filereview/record.js +104 -0
- package/dist/shared/filereview/record.js.map +1 -0
- package/dist/shared/filereview/secret-paths.d.ts +61 -0
- package/dist/shared/filereview/secret-paths.js +103 -0
- package/dist/shared/filereview/secret-paths.js.map +1 -0
- package/dist/shared/fingerprint-secret.d.ts +35 -0
- package/dist/shared/fingerprint-secret.js +68 -0
- package/dist/shared/fingerprint-secret.js.map +1 -0
- package/dist/shared/grpc-retry.d.ts +28 -0
- package/dist/shared/grpc-retry.js +39 -0
- package/dist/shared/grpc-retry.js.map +1 -0
- package/dist/shared/heartbeat.d.ts +24 -0
- package/dist/shared/heartbeat.js +40 -0
- package/dist/shared/heartbeat.js.map +1 -0
- package/dist/shared/hooks/answer.d.ts +49 -0
- package/dist/shared/hooks/answer.js +152 -0
- package/dist/shared/hooks/answer.js.map +1 -0
- package/dist/shared/hooks/condition.d.ts +71 -0
- package/dist/shared/hooks/condition.js +341 -0
- package/dist/shared/hooks/condition.js.map +1 -0
- package/dist/shared/hooks/evaluate.d.ts +125 -0
- package/dist/shared/hooks/evaluate.js +253 -0
- package/dist/shared/hooks/evaluate.js.map +1 -0
- package/dist/shared/hooks/formats/claude-code.d.ts +43 -0
- package/dist/shared/hooks/formats/claude-code.js +90 -0
- package/dist/shared/hooks/formats/claude-code.js.map +1 -0
- package/dist/shared/hooks/formats/common.d.ts +30 -0
- package/dist/shared/hooks/formats/common.js +7 -0
- package/dist/shared/hooks/formats/common.js.map +1 -0
- package/dist/shared/hooks/formats/cursor.d.ts +72 -0
- package/dist/shared/hooks/formats/cursor.js +238 -0
- package/dist/shared/hooks/formats/cursor.js.map +1 -0
- package/dist/shared/hooks/hook-set.d.ts +84 -0
- package/dist/shared/hooks/hook-set.js +80 -0
- package/dist/shared/hooks/hook-set.js.map +1 -0
- package/dist/shared/hooks/matcher.d.ts +14 -0
- package/dist/shared/hooks/matcher.js +32 -0
- package/dist/shared/hooks/matcher.js.map +1 -0
- package/dist/shared/hooks/messages.d.ts +19 -0
- package/dist/shared/hooks/messages.js +34 -0
- package/dist/shared/hooks/messages.js.map +1 -0
- package/dist/shared/hooks/run.d.ts +89 -0
- package/dist/shared/hooks/run.js +146 -0
- package/dist/shared/hooks/run.js.map +1 -0
- package/dist/shared/hooks/setup.d.ts +73 -0
- package/dist/shared/hooks/setup.js +166 -0
- package/dist/shared/hooks/setup.js.map +1 -0
- package/dist/shared/hooks/shell-commands.d.ts +39 -0
- package/dist/shared/hooks/shell-commands.js +326 -0
- package/dist/shared/hooks/shell-commands.js.map +1 -0
- package/dist/shared/hooks/tool-view.d.ts +164 -0
- package/dist/shared/hooks/tool-view.js +310 -0
- package/dist/shared/hooks/tool-view.js.map +1 -0
- package/dist/shared/http-retry.d.ts +85 -0
- package/dist/shared/http-retry.js +101 -0
- package/dist/shared/http-retry.js.map +1 -0
- package/dist/shared/implement-plan-prompt.d.ts +44 -0
- package/dist/shared/implement-plan-prompt.js +98 -0
- package/dist/shared/implement-plan-prompt.js.map +1 -0
- package/dist/shared/json-schema-to-zod.d.ts +13 -0
- package/dist/shared/json-schema-to-zod.js +49 -0
- package/dist/shared/json-schema-to-zod.js.map +1 -0
- package/dist/shared/llm-backend.d.ts +303 -0
- package/dist/shared/llm-backend.js +491 -0
- package/dist/shared/llm-backend.js.map +1 -0
- package/dist/shared/llm-proxy.d.ts +64 -0
- package/dist/shared/llm-proxy.js +131 -0
- package/dist/shared/llm-proxy.js.map +1 -0
- package/dist/shared/mcp-manager.d.ts +61 -0
- package/dist/shared/mcp-manager.js +131 -0
- package/dist/shared/mcp-manager.js.map +1 -0
- package/dist/shared/mcp-oauth-detect.d.ts +23 -0
- package/dist/shared/mcp-oauth-detect.js +72 -0
- package/dist/shared/mcp-oauth-detect.js.map +1 -0
- package/dist/shared/mcp-resolver.d.ts +145 -0
- package/dist/shared/mcp-resolver.js +238 -0
- package/dist/shared/mcp-resolver.js.map +1 -0
- package/dist/shared/mcp-schema-sanitizer.d.ts +68 -0
- package/dist/shared/mcp-schema-sanitizer.js +195 -0
- package/dist/shared/mcp-schema-sanitizer.js.map +1 -0
- package/dist/shared/mcp-tool-listing.d.ts +80 -0
- package/dist/shared/mcp-tool-listing.js +166 -0
- package/dist/shared/mcp-tool-listing.js.map +1 -0
- package/dist/shared/mcp-transport-guard.d.ts +53 -0
- package/dist/shared/mcp-transport-guard.js +70 -0
- package/dist/shared/mcp-transport-guard.js.map +1 -0
- package/dist/shared/memory-attachment.d.ts +103 -0
- package/dist/shared/memory-attachment.js +142 -0
- package/dist/shared/memory-attachment.js.map +1 -0
- package/dist/shared/memory-retrieval.d.ts +126 -0
- package/dist/shared/memory-retrieval.js +293 -0
- package/dist/shared/memory-retrieval.js.map +1 -0
- package/dist/shared/model-client.d.ts +111 -0
- package/dist/shared/model-client.js +328 -0
- package/dist/shared/model-client.js.map +1 -0
- package/dist/shared/model-error.d.ts +94 -0
- package/dist/shared/model-error.js +475 -0
- package/dist/shared/model-error.js.map +1 -0
- package/dist/shared/model-facts.d.ts +21 -0
- package/dist/shared/model-facts.js +22 -0
- package/dist/shared/model-facts.js.map +1 -0
- package/dist/shared/model-lanes.d.ts +48 -0
- package/dist/shared/model-lanes.js +52 -0
- package/dist/shared/model-lanes.js.map +1 -0
- package/dist/shared/model-pricing-data.d.ts +20 -0
- package/dist/shared/model-pricing-data.js +82 -0
- package/dist/shared/model-pricing-data.js.map +1 -0
- package/dist/shared/model-pricing.d.ts +16 -0
- package/dist/shared/model-pricing.js +46 -0
- package/dist/shared/model-pricing.js.map +1 -0
- package/dist/shared/model-registry.d.ts +113 -0
- package/dist/shared/model-registry.js +250 -0
- package/dist/shared/model-registry.js.map +1 -0
- package/dist/shared/persist-decision.d.ts +38 -0
- package/dist/shared/persist-decision.js +40 -0
- package/dist/shared/persist-decision.js.map +1 -0
- package/dist/shared/placeholder-resolver.d.ts +39 -0
- package/dist/shared/placeholder-resolver.js +86 -0
- package/dist/shared/placeholder-resolver.js.map +1 -0
- package/dist/shared/plan-artifact.d.ts +105 -0
- package/dist/shared/plan-artifact.js +225 -0
- package/dist/shared/plan-artifact.js.map +1 -0
- package/dist/shared/plan-mode-permissions.d.ts +49 -0
- package/dist/shared/plan-mode-permissions.js +51 -0
- package/dist/shared/plan-mode-permissions.js.map +1 -0
- package/dist/shared/plan-mode-prompt.d.ts +41 -0
- package/dist/shared/plan-mode-prompt.js +74 -0
- package/dist/shared/plan-mode-prompt.js.map +1 -0
- package/dist/shared/platform-server-address.d.ts +72 -0
- package/dist/shared/platform-server-address.js +103 -0
- package/dist/shared/platform-server-address.js.map +1 -0
- package/dist/shared/plugin-mount.d.ts +165 -0
- package/dist/shared/plugin-mount.js +428 -0
- package/dist/shared/plugin-mount.js.map +1 -0
- package/dist/shared/plugin-servers.d.ts +16 -0
- package/dist/shared/plugin-servers.js +22 -0
- package/dist/shared/plugin-servers.js.map +1 -0
- package/dist/shared/prompt-sections.d.ts +140 -0
- package/dist/shared/prompt-sections.js +135 -0
- package/dist/shared/prompt-sections.js.map +1 -0
- package/dist/shared/recalled-memories.d.ts +55 -0
- package/dist/shared/recalled-memories.js +70 -0
- package/dist/shared/recalled-memories.js.map +1 -0
- package/dist/shared/registry-endpoint.d.ts +60 -0
- package/dist/shared/registry-endpoint.js +99 -0
- package/dist/shared/registry-endpoint.js.map +1 -0
- package/dist/shared/run-credential-store.d.ts +32 -0
- package/dist/shared/run-credential-store.js +39 -0
- package/dist/shared/run-credential-store.js.map +1 -0
- package/dist/shared/run-credential.d.ts +40 -0
- package/dist/shared/run-credential.js +47 -0
- package/dist/shared/run-credential.js.map +1 -0
- package/dist/shared/run-values.d.ts +88 -0
- package/dist/shared/run-values.js +101 -0
- package/dist/shared/run-values.js.map +1 -0
- package/dist/shared/runner-credential-keys.d.ts +20 -0
- package/dist/shared/runner-credential-keys.js +101 -0
- package/dist/shared/runner-credential-keys.js.map +1 -0
- package/dist/shared/runner-credential-store.d.ts +77 -0
- package/dist/shared/runner-credential-store.js +111 -0
- package/dist/shared/runner-credential-store.js.map +1 -0
- package/dist/shared/sender-identity.d.ts +50 -0
- package/dist/shared/sender-identity.js +69 -0
- package/dist/shared/sender-identity.js.map +1 -0
- package/dist/shared/service-tier.d.ts +55 -0
- package/dist/shared/service-tier.js +67 -0
- package/dist/shared/service-tier.js.map +1 -0
- package/dist/shared/session-context.d.ts +35 -0
- package/dist/shared/session-context.js +52 -0
- package/dist/shared/session-context.js.map +1 -0
- package/dist/shared/shell-env.d.ts +42 -0
- package/dist/shared/shell-env.js +65 -0
- package/dist/shared/shell-env.js.map +1 -0
- package/dist/shared/skill-mount.d.ts +135 -0
- package/dist/shared/skill-mount.js +178 -0
- package/dist/shared/skill-mount.js.map +1 -0
- package/dist/shared/skill-resolver.d.ts +57 -0
- package/dist/shared/skill-resolver.js +113 -0
- package/dist/shared/skill-resolver.js.map +1 -0
- package/dist/shared/stall-watchdog.d.ts +68 -0
- package/dist/shared/stall-watchdog.js +102 -0
- package/dist/shared/stall-watchdog.js.map +1 -0
- package/dist/shared/status-offload.d.ts +196 -0
- package/dist/shared/status-offload.js +655 -0
- package/dist/shared/status-offload.js.map +1 -0
- package/dist/shared/status.d.ts +100 -0
- package/dist/shared/status.js +191 -0
- package/dist/shared/status.js.map +1 -0
- package/dist/shared/streaming-scheduler.d.ts +59 -0
- package/dist/shared/streaming-scheduler.js +110 -0
- package/dist/shared/streaming-scheduler.js.map +1 -0
- package/dist/shared/subagent-gate.d.ts +47 -0
- package/dist/shared/subagent-gate.js +98 -0
- package/dist/shared/subagent-gate.js.map +1 -0
- package/dist/shared/subagent-rows.d.ts +21 -0
- package/dist/shared/subagent-rows.js +34 -0
- package/dist/shared/subagent-rows.js.map +1 -0
- package/dist/shared/subagents.d.ts +49 -0
- package/dist/shared/subagents.js +51 -0
- package/dist/shared/subagents.js.map +1 -0
- package/dist/shared/synthesized-attachment.d.ts +73 -0
- package/dist/shared/synthesized-attachment.js +59 -0
- package/dist/shared/synthesized-attachment.js.map +1 -0
- package/dist/shared/telemetry-content.d.ts +132 -0
- package/dist/shared/telemetry-content.js +239 -0
- package/dist/shared/telemetry-content.js.map +1 -0
- package/dist/shared/thinking-mode.d.ts +82 -0
- package/dist/shared/thinking-mode.js +105 -0
- package/dist/shared/thinking-mode.js.map +1 -0
- package/dist/shared/todos.d.ts +30 -0
- package/dist/shared/todos.js +58 -0
- package/dist/shared/todos.js.map +1 -0
- package/dist/shared/tool-kind.d.ts +41 -0
- package/dist/shared/tool-kind.js +107 -0
- package/dist/shared/tool-kind.js.map +1 -0
- package/dist/shared/tool-lists.d.ts +283 -0
- package/dist/shared/tool-lists.js +518 -0
- package/dist/shared/tool-lists.js.map +1 -0
- package/dist/shared/tool-rounds.d.ts +91 -0
- package/dist/shared/tool-rounds.js +136 -0
- package/dist/shared/tool-rounds.js.map +1 -0
- package/dist/shared/tool-row.d.ts +195 -0
- package/dist/shared/tool-row.js +320 -0
- package/dist/shared/tool-row.js.map +1 -0
- package/dist/shared/trace-context.d.ts +20 -0
- package/dist/shared/trace-context.js +36 -0
- package/dist/shared/trace-context.js.map +1 -0
- package/dist/shared/with-timeout.d.ts +27 -0
- package/dist/shared/with-timeout.js +47 -0
- package/dist/shared/with-timeout.js.map +1 -0
- package/dist/shared/worker-shutdown.d.ts +99 -0
- package/dist/shared/worker-shutdown.js +94 -0
- package/dist/shared/worker-shutdown.js.map +1 -0
- package/dist/shared/workspace/file-tree.d.ts +13 -0
- package/dist/shared/workspace/file-tree.js +101 -0
- package/dist/shared/workspace/file-tree.js.map +1 -0
- package/dist/shared/workspace/git-credential.d.ts +91 -0
- package/dist/shared/workspace/git-credential.js +222 -0
- package/dist/shared/workspace/git-credential.js.map +1 -0
- package/dist/shared/workspace/git-identity.d.ts +36 -0
- package/dist/shared/workspace/git-identity.js +39 -0
- package/dist/shared/workspace/git-identity.js.map +1 -0
- package/dist/shared/workspace/local-backend.d.ts +44 -0
- package/dist/shared/workspace/local-backend.js +110 -0
- package/dist/shared/workspace/local-backend.js.map +1 -0
- package/dist/shared/workspace/platform-dir.d.ts +106 -0
- package/dist/shared/workspace/platform-dir.js +151 -0
- package/dist/shared/workspace/platform-dir.js.map +1 -0
- package/dist/shared/workspace/platform-mount.d.ts +95 -0
- package/dist/shared/workspace/platform-mount.js +157 -0
- package/dist/shared/workspace/platform-mount.js.map +1 -0
- package/dist/shared/workspace/provisioner.d.ts +52 -0
- package/dist/shared/workspace/provisioner.js +70 -0
- package/dist/shared/workspace/provisioner.js.map +1 -0
- package/dist/shared/workspace/session-provision.d.ts +56 -0
- package/dist/shared/workspace/session-provision.js +54 -0
- package/dist/shared/workspace/session-provision.js.map +1 -0
- package/dist/shared/workspace/session-root.d.ts +35 -0
- package/dist/shared/workspace/session-root.js +53 -0
- package/dist/shared/workspace/session-root.js.map +1 -0
- package/dist/shared/workspace/sources/empty.d.ts +8 -0
- package/dist/shared/workspace/sources/empty.js +16 -0
- package/dist/shared/workspace/sources/empty.js.map +1 -0
- package/dist/shared/workspace/sources/git.d.ts +30 -0
- package/dist/shared/workspace/sources/git.js +224 -0
- package/dist/shared/workspace/sources/git.js.map +1 -0
- package/dist/shared/workspace/sources/local-path.d.ts +17 -0
- package/dist/shared/workspace/sources/local-path.js +61 -0
- package/dist/shared/workspace/sources/local-path.js.map +1 -0
- package/dist/shared/workspace/stigmer-link.d.ts +73 -0
- package/dist/shared/workspace/stigmer-link.js +173 -0
- package/dist/shared/workspace/stigmer-link.js.map +1 -0
- package/dist/shared/workspace/types.d.ts +71 -0
- package/dist/shared/workspace/types.js +19 -0
- package/dist/shared/workspace/types.js.map +1 -0
- package/dist/shared/workspace/workspace-lock.d.ts +86 -0
- package/dist/shared/workspace/workspace-lock.js +190 -0
- package/dist/shared/workspace/workspace-lock.js.map +1 -0
- package/dist/shared/workspace/writeback-coordinator.d.ts +119 -0
- package/dist/shared/workspace/writeback-coordinator.js +361 -0
- package/dist/shared/workspace/writeback-coordinator.js.map +1 -0
- package/dist/shared/zip-extract.d.ts +55 -0
- package/dist/shared/zip-extract.js +98 -0
- package/dist/shared/zip-extract.js.map +1 -0
- package/dist/tools/index.d.ts +26 -0
- package/dist/tools/index.js +26 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/url-guard.d.ts +77 -0
- package/dist/tools/url-guard.js +119 -0
- package/dist/tools/url-guard.js.map +1 -0
- package/dist/tools/web-fetch-tool.d.ts +55 -0
- package/dist/tools/web-fetch-tool.js +218 -0
- package/dist/tools/web-fetch-tool.js.map +1 -0
- package/dist/worker.d.ts +35 -0
- package/dist/worker.js +71 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow-source.d.ts +38 -0
- package/dist/workflow-source.js +53 -0
- package/dist/workflow-source.js.map +1 -0
- package/dist/workflows/index.d.ts +32 -0
- package/dist/workflows/index.js +33 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/list-plugin-tools.d.ts +23 -0
- package/dist/workflows/list-plugin-tools.js +56 -0
- package/dist/workflows/list-plugin-tools.js.map +1 -0
- package/dist/workflows/types.d.ts +43 -0
- package/dist/workflows/types.js +18 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +161 -0
- package/src/__test-utils__/__tests__/execution-record-barrier.test.ts +75 -0
- package/src/__test-utils__/__tests__/harness-contract-self-check.test.ts +361 -0
- package/src/__test-utils__/__tests__/live-gate.test.ts +100 -0
- package/src/__test-utils__/__tests__/real-model-registry.test.ts +53 -0
- package/src/__test-utils__/__tests__/vitest-global-setup.test.ts +37 -0
- package/src/__test-utils__/agent-host-probe-child.ts +77 -0
- package/src/__test-utils__/approval-contract/contract.ts +613 -0
- package/src/__test-utils__/approval-contract/hook-commands.ts +100 -0
- package/src/__test-utils__/approval-contract/types.ts +323 -0
- package/src/__test-utils__/approval-log.ts +142 -0
- package/src/__test-utils__/config-fixture.ts +65 -0
- package/src/__test-utils__/cursor-sdk-wire-child.ts +47 -0
- package/src/__test-utils__/execution-record-fixture.ts +229 -0
- package/src/__test-utils__/fake-artifact-storage.ts +83 -0
- package/src/__test-utils__/fake-upstream.ts +67 -0
- package/src/__test-utils__/file-review-projection.ts +77 -0
- package/src/__test-utils__/git-workspace-fixture.ts +58 -0
- package/src/__test-utils__/harness-boot-order-child.ts +78 -0
- package/src/__test-utils__/harness-contract/contract.ts +652 -0
- package/src/__test-utils__/harness-contract/recording-sink.ts +138 -0
- package/src/__test-utils__/harness-contract/runtime-contract.ts +1136 -0
- package/src/__test-utils__/harness-contract/scripted-adapter.ts +404 -0
- package/src/__test-utils__/harness-contract/types.ts +200 -0
- package/src/__test-utils__/hermetic-activity.ts +1061 -0
- package/src/__test-utils__/import-http2-first.ts +11 -0
- package/src/__test-utils__/live-gate.ts +106 -0
- package/src/__test-utils__/loopback-host.ts +48 -0
- package/src/__test-utils__/mock-client.ts +52 -0
- package/src/__test-utils__/mock-workspace.ts +28 -0
- package/src/__test-utils__/model-registry-fixture.ts +133 -0
- package/src/__test-utils__/module-specifiers.ts +177 -0
- package/src/__test-utils__/proto-helpers.ts +70 -0
- package/src/__test-utils__/real-model-registry.ts +85 -0
- package/src/__test-utils__/refuse-engine-sdks.ts +18 -0
- package/src/__test-utils__/timing-lines.ts +43 -0
- package/src/__test-utils__/turn-input-fixture.ts +166 -0
- package/src/__test-utils__/vitest-global-setup.ts +50 -0
- package/src/__tests__/agent-separation.container.test.ts +157 -0
- package/src/__tests__/approval-gateway-contract.test.ts +29 -0
- package/src/__tests__/bootstrap.test.ts +264 -0
- package/src/__tests__/config-boundary.test.ts +135 -0
- package/src/__tests__/config.test.ts +165 -0
- package/src/__tests__/exit-backstop.test.ts +91 -0
- package/src/__tests__/harness-boot-order.test.ts +87 -0
- package/src/__tests__/harness-contract.test.ts +27 -0
- package/src/__tests__/in-flight.test.ts +84 -0
- package/src/__tests__/ipc-protocol-fixtures.test.ts +61 -0
- package/src/__tests__/ipc-protocol.test.ts +33 -0
- package/src/__tests__/otel-export.test.ts +266 -0
- package/src/__tests__/otel-init.test.ts +111 -0
- package/src/__tests__/otel-metrics.test.ts +37 -0
- package/src/__tests__/pipe-safety.test.ts +119 -0
- package/src/__tests__/pool-member.test.ts +77 -0
- package/src/__tests__/preflight.test.ts +104 -0
- package/src/__tests__/readme-environment.test.ts +678 -0
- package/src/__tests__/run-credential-registration.test.ts +53 -0
- package/src/__tests__/run-trace-id.test.ts +53 -0
- package/src/__tests__/runner-hosting.test.ts +134 -0
- package/src/__tests__/runner-manager-interceptors.test.ts +67 -0
- package/src/__tests__/runner-manager-shutdown.test.ts +199 -0
- package/src/__tests__/runner-manager.test.ts +95 -0
- package/src/__tests__/runner-token-coordinator.test.ts +166 -0
- package/src/__tests__/runner.test.ts +284 -0
- package/src/__tests__/sandbox-token-renewal.test.ts +175 -0
- package/src/__tests__/worker.test.ts +107 -0
- package/src/activities/__tests__/attach-session.test.ts +133 -0
- package/src/activities/__tests__/ensure-thread.test.ts +96 -0
- package/src/activities/__tests__/error-classifier.test.ts +464 -0
- package/src/activities/__tests__/generate-session-subject-wire.test.ts +119 -0
- package/src/activities/__tests__/generate-session-subject.test.ts +356 -0
- package/src/activities/__tests__/list-plugin-tools.test.ts +392 -0
- package/src/activities/attach-session.ts +111 -0
- package/src/activities/ensure-thread.ts +45 -0
- package/src/activities/execute-cursor/__test-utils__/__tests__/scripted-double.test.ts +126 -0
- package/src/activities/execute-cursor/__test-utils__/contract-subject.ts +445 -0
- package/src/activities/execute-cursor/__test-utils__/cursor-hook-harness.ts +407 -0
- package/src/activities/execute-cursor/__test-utils__/fold.ts +118 -0
- package/src/activities/execute-cursor/__test-utils__/gateway-substrate.ts +316 -0
- package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +428 -0
- package/src/activities/execute-cursor/__test-utils__/scripted-agent.ts +374 -0
- package/src/activities/execute-cursor/__test-utils__/scripted-sdk.ts +310 -0
- package/src/activities/execute-cursor/__tests__/adapter-is-temporal-free.test.ts +45 -0
- package/src/activities/execute-cursor/__tests__/agent-session-cache.test.ts +220 -0
- package/src/activities/execute-cursor/__tests__/approval-decisions-agree.test.ts +141 -0
- package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +335 -0
- package/src/activities/execute-cursor/__tests__/approval-state.test.ts +288 -0
- package/src/activities/execute-cursor/__tests__/boundary-seal.test.ts +125 -0
- package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +1045 -0
- package/src/activities/execute-cursor/__tests__/cas-observations.test.ts +267 -0
- package/src/activities/execute-cursor/__tests__/check-tool-scope.test.ts +290 -0
- package/src/activities/execute-cursor/__tests__/coarse-fingerprint.test.ts +98 -0
- package/src/activities/execute-cursor/__tests__/cursor-baseurl-routing.live.test.ts +94 -0
- package/src/activities/execute-cursor/__tests__/cursor-event-recorder.test.ts +142 -0
- package/src/activities/execute-cursor/__tests__/cursor-fetch-interceptor-bypass.live.test.ts +76 -0
- package/src/activities/execute-cursor/__tests__/cursor-generate-image.live.test.ts +154 -0
- package/src/activities/execute-cursor/__tests__/cursor-hook-protocol.live.test.ts +479 -0
- package/src/activities/execute-cursor/__tests__/cursor-hooks-gate.live.test.ts +295 -0
- package/src/activities/execute-cursor/__tests__/cursor-mcp-config.test.ts +128 -0
- package/src/activities/execute-cursor/__tests__/cursor-mode.test.ts +95 -0
- package/src/activities/execute-cursor/__tests__/cursor-sdk-auth.live.test.ts +97 -0
- package/src/activities/execute-cursor/__tests__/cursor-transcript.live.test.ts +289 -0
- package/src/activities/execute-cursor/__tests__/deny-gate-exact-apply.test.ts +200 -0
- package/src/activities/execute-cursor/__tests__/error-classifier-billing.test.ts +178 -0
- package/src/activities/execute-cursor/__tests__/error-classifier-extraction.test.ts +208 -0
- package/src/activities/execute-cursor/__tests__/error-classifier-introspection.test.ts +156 -0
- package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +389 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.append.prompt.md +147 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.everything.prompt.md +164 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.no-instructions.prompt.md +142 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.plan-mode.prompt.md +184 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.hitl.recovery.prompt.md +189 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.hitl.reinvocation.prompt.md +13 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.prefixed.prompt.md +32 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.raw.append.prompt.md +5 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.raw.prompt.md +1 -0
- package/src/activities/execute-cursor/__tests__/hermetic/answers.test.ts +279 -0
- package/src/activities/execute-cursor/__tests__/hermetic/built-in-assistant.test.ts +127 -0
- package/src/activities/execute-cursor/__tests__/hermetic/bypassed-tool-call.test.ts +120 -0
- package/src/activities/execute-cursor/__tests__/hermetic/deny-and-retry.test.ts +233 -0
- package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +262 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/approve-all.turn2.events.json +94 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/approve-all.turn2.rows.json +47 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/approve-all.turn2.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/cost-cap.events.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/cost-cap.rows.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/cost-cap.status.json +18 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn1.events.json +37 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn1.rows.json +29 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn1.status.json +4 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn2.events.json +71 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn2.rows.json +32 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn2.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.events.json +68 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.rows.json +96 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.status.json +74 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-off.events.json +50 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-off.rows.json +32 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-off.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-reconcile.events.json +91 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-reconcile.rows.json +9 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-reconcile.status.json +6 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn1.events.json +110 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn1.rows.json +77 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn1.status.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn2.events.json +144 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn2.rows.json +34 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn2.status.json +27 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.events.json +50 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.rows.json +30 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/pause.events.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/pause.rows.json +9 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/pause.status.json +4 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/plain-turn.events.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/plain-turn.rows.json +9 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/plain-turn.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/platform-stop.events.json +37 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/platform-stop.rows.json +29 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/platform-stop.status.json +6 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-fresh-agent.events.json +26 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-fresh-agent.rows.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-fresh-agent.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-transport-timeout.events.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-transport-timeout.rows.json +9 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-transport-timeout.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/reject.turn2.events.json +61 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/reject.turn2.rows.json +31 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/reject.turn2.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.events.json +1 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.rows.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.status.json +7 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-cancelled.events.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-cancelled.rows.json +9 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-cancelled.status.json +5 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-error-non-retryable.events.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-error-non-retryable.rows.json +9 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-error-non-retryable.status.json +7 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.events.json +1 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.rows.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.status.json +7 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.events.json +56 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.rows.json +34 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.events.json +64 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.rows.json +36 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.events.json +49 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.events.json +49 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.rows.json +31 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.rows.json +31 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.events.json +24 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.rows.json +29 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.status.json +7 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.events.json +158 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.rows.json +70 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.events.json +77 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.rows.json +39 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.events.json +99 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.rows.json +80 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-call.events.json +49 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-call.rows.json +29 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-call.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.events.json +50 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.rows.json +29 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.events.json +37 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.rows.json +28 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattended-skip.events.json +51 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattended-skip.rows.json +31 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattended-skip.status.json +17 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.events.json +50 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.rows.json +36 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.status.json +19 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/worker-shutdown.events.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/worker-shutdown.rows.json +14 -0
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/worker-shutdown.status.json +7 -0
- package/src/activities/execute-cursor/__tests__/hermetic/harness-contract.test.ts +198 -0
- package/src/activities/execute-cursor/__tests__/hermetic/hooks.test.ts +569 -0
- package/src/activities/execute-cursor/__tests__/hermetic/mcp-tool-call.test.ts +149 -0
- package/src/activities/execute-cursor/__tests__/hermetic/pause-vs-shutdown.test.ts +222 -0
- package/src/activities/execute-cursor/__tests__/hermetic/plain-turn.test.ts +178 -0
- package/src/activities/execute-cursor/__tests__/hermetic/recovery-fresh-agent.test.ts +162 -0
- package/src/activities/execute-cursor/__tests__/hermetic/run-wait-arms.test.ts +296 -0
- package/src/activities/execute-cursor/__tests__/hermetic/sdk-task-note.test.ts +125 -0
- package/src/activities/execute-cursor/__tests__/hermetic/shell-output-delta.test.ts +283 -0
- package/src/activities/execute-cursor/__tests__/hermetic/stream-self-stop-arms.test.ts +342 -0
- package/src/activities/execute-cursor/__tests__/hermetic/sub-agent-delegation.test.ts +197 -0
- package/src/activities/execute-cursor/__tests__/hermetic/thinking-turn.test.ts +149 -0
- package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +214 -0
- package/src/activities/execute-cursor/__tests__/hermetic/todo-write.test.ts +169 -0
- package/src/activities/execute-cursor/__tests__/hermetic/tool-call.test.ts +143 -0
- package/src/activities/execute-cursor/__tests__/hermetic/tool-error.test.ts +141 -0
- package/src/activities/execute-cursor/__tests__/hermetic/tool-lists.test.ts +391 -0
- package/src/activities/execute-cursor/__tests__/hermetic/tool-only-step.test.ts +134 -0
- package/src/activities/execute-cursor/__tests__/hermetic/turn-phases.test.ts +136 -0
- package/src/activities/execute-cursor/__tests__/hermetic/unattended-skip.test.ts +157 -0
- package/src/activities/execute-cursor/__tests__/hermetic/unattributed-hook-block.test.ts +200 -0
- package/src/activities/execute-cursor/__tests__/hermetic/workspace-lock-timeout.test.ts +156 -0
- package/src/activities/execute-cursor/__tests__/hitl-ledger.test.ts +2109 -0
- package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +431 -0
- package/src/activities/execute-cursor/__tests__/hook-refusal-rows.test.ts +95 -0
- package/src/activities/execute-cursor/__tests__/hook-scope.test.ts +175 -0
- package/src/activities/execute-cursor/__tests__/hook-script.test.ts +1408 -0
- package/src/activities/execute-cursor/__tests__/hook-server.test.ts +465 -0
- package/src/activities/execute-cursor/__tests__/hook-views.test.ts +171 -0
- package/src/activities/execute-cursor/__tests__/http2-interceptor.test.ts +408 -0
- package/src/activities/execute-cursor/__tests__/model-pricing.test.ts +173 -0
- package/src/activities/execute-cursor/__tests__/prepare-hooks.test.ts +97 -0
- package/src/activities/execute-cursor/__tests__/prompt-builder-delegation.test.ts +85 -0
- package/src/activities/execute-cursor/__tests__/prompt-goldens.test.ts +270 -0
- package/src/activities/execute-cursor/__tests__/resolve-timeout-message.test.ts +24 -0
- package/src/activities/execute-cursor/__tests__/run-telemetry.test.ts +177 -0
- package/src/activities/execute-cursor/__tests__/runner-error-regressions.test.ts +103 -0
- package/src/activities/execute-cursor/__tests__/same-identity-reproposal.test.ts +174 -0
- package/src/activities/execute-cursor/__tests__/scope-refusal-rows.test.ts +269 -0
- package/src/activities/execute-cursor/__tests__/sdk-warmup.test.ts +45 -0
- package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +182 -0
- package/src/activities/execute-cursor/__tests__/service-tier.test.ts +230 -0
- package/src/activities/execute-cursor/__tests__/session-lifecycle.test.ts +336 -0
- package/src/activities/execute-cursor/__tests__/session-store.test.ts +220 -0
- package/src/activities/execute-cursor/__tests__/subagent-config.test.ts +181 -0
- package/src/activities/execute-cursor/__tests__/tool-result-image.test.ts +250 -0
- package/src/activities/execute-cursor/__tests__/translator.test.ts +651 -0
- package/src/activities/execute-cursor/__tests__/turn-boundary.test.ts +415 -0
- package/src/activities/execute-cursor/__tests__/turn-recovery.test.ts +186 -0
- package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +354 -0
- package/src/activities/execute-cursor/__tests__/usage-pricing.test.ts +84 -0
- package/src/activities/execute-cursor/__tests__/workspace-setup.test.ts +814 -0
- package/src/activities/execute-cursor/adapter.ts +161 -0
- package/src/activities/execute-cursor/agent-session-cache.ts +229 -0
- package/src/activities/execute-cursor/approval-policy.ts +129 -0
- package/src/activities/execute-cursor/approval-state.ts +1097 -0
- package/src/activities/execute-cursor/boundary-rows.ts +1419 -0
- package/src/activities/execute-cursor/cas-observations.ts +263 -0
- package/src/activities/execute-cursor/cursor-capabilities.ts +80 -0
- package/src/activities/execute-cursor/cursor-event-recorder.ts +112 -0
- package/src/activities/execute-cursor/cursor-mcp-config.ts +124 -0
- package/src/activities/execute-cursor/cursor-mode.ts +42 -0
- package/src/activities/execute-cursor/error-classifier.ts +416 -0
- package/src/activities/execute-cursor/fetch-interceptor.ts +454 -0
- package/src/activities/execute-cursor/hook-scope.ts +216 -0
- package/src/activities/execute-cursor/hook-script.ts +1232 -0
- package/src/activities/execute-cursor/hook-server.ts +473 -0
- package/src/activities/execute-cursor/hook-tool-hiding.ts +76 -0
- package/src/activities/execute-cursor/hook-views.ts +195 -0
- package/src/activities/execute-cursor/http2-interceptor.ts +267 -0
- package/src/activities/execute-cursor/model-pricing-data.ts +170 -0
- package/src/activities/execute-cursor/model-pricing.ts +190 -0
- package/src/activities/execute-cursor/prompt-builder.ts +1081 -0
- package/src/activities/execute-cursor/rejection-capture.ts +93 -0
- package/src/activities/execute-cursor/run-telemetry.ts +189 -0
- package/src/activities/execute-cursor/sdk-warmup.ts +77 -0
- package/src/activities/execute-cursor/service-tier.ts +251 -0
- package/src/activities/execute-cursor/session-lifecycle.ts +543 -0
- package/src/activities/execute-cursor/session-store.ts +186 -0
- package/src/activities/execute-cursor/sub-agent-steps.ts +188 -0
- package/src/activities/execute-cursor/subagent-config.ts +124 -0
- package/src/activities/execute-cursor/tool-result.ts +128 -0
- package/src/activities/execute-cursor/translator.ts +544 -0
- package/src/activities/execute-cursor/turn-boundary.ts +373 -0
- package/src/activities/execute-cursor/turn-recovery.ts +223 -0
- package/src/activities/execute-cursor/turn-settle.ts +605 -0
- package/src/activities/execute-cursor/turn-setup.ts +964 -0
- package/src/activities/execute-cursor/turn-stream.ts +354 -0
- package/src/activities/execute-cursor/turn.ts +271 -0
- package/src/activities/execute-cursor/usage-pricing.ts +67 -0
- package/src/activities/execute-cursor/workspace-hook-files.ts +424 -0
- package/src/activities/execute-cursor/workspace-setup.ts +549 -0
- package/src/activities/execute-deep-agent/__test-utils__/contract-subject.ts +404 -0
- package/src/activities/execute-deep-agent/__test-utils__/gateway-substrate.ts +519 -0
- package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +430 -0
- package/src/activities/execute-deep-agent/__test-utils__/hitl-script.ts +48 -0
- package/src/activities/execute-deep-agent/__test-utils__/paused-session-fixture.ts +172 -0
- package/src/activities/execute-deep-agent/__test-utils__/scripted-model-module.ts +84 -0
- package/src/activities/execute-deep-agent/__test-utils__/scripted-model.ts +585 -0
- package/src/activities/execute-deep-agent/__test-utils__/think-bound-session.ts +29 -0
- package/src/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.ts +295 -0
- package/src/activities/execute-deep-agent/__tests__/adapter-graph-is-sdk-free.test.ts +76 -0
- package/src/activities/execute-deep-agent/__tests__/adapter-is-temporal-free.test.ts +47 -0
- package/src/activities/execute-deep-agent/__tests__/adapter.test.ts +83 -0
- package/src/activities/execute-deep-agent/__tests__/approval-file-change.test.ts +88 -0
- package/src/activities/execute-deep-agent/__tests__/auto-publish.test.ts +144 -0
- package/src/activities/execute-deep-agent/__tests__/builtin-tool-surface.test.ts +108 -0
- package/src/activities/execute-deep-agent/__tests__/cas-capture-backend.test.ts +286 -0
- package/src/activities/execute-deep-agent/__tests__/cas-capture-observer.test.ts +163 -0
- package/src/activities/execute-deep-agent/__tests__/engine-tools.test.ts +97 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.build-from-plan.prompt.md +133 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.everything.prompt.md +151 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.judge.prompt.md +26 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.minimal.append.prompt.md +28 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.minimal.prompt.md +25 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.plan-mode.prompt.md +140 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/user-message.everything.md +36 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/answers.test.ts +114 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/built-in-assistant.test.ts +103 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/cost-advisory.test.ts +239 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +306 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/fixtures/paused-session.deepagents-1.10.2.json +592 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/fixtures/paused-session.think-bound.json +498 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.events.json +49 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.rows.json +32 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.status.json +15 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.events.json +118 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.rows.json +45 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.events.json +69 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.rows.json +30 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.events.json +69 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.rows.json +97 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +84 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-off.events.json +51 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-off.rows.json +33 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-off.status.json +27 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-reconcile.events.json +92 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-reconcile.rows.json +9 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-reconcile.status.json +6 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.events.json +35 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.rows.json +27 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.status.json +15 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn1.events.json +107 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn1.rows.json +74 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn1.status.json +25 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn2.events.json +141 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn2.rows.json +31 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn2.status.json +26 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.events.json +71 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.rows.json +50 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +26 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.events.json +105 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.rows.json +30 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +27 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.events.json +37 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.rows.json +24 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.status.json +15 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.events.json +24 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.rows.json +22 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.status.json +15 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/plain-turn.events.json +14 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/plain-turn.rows.json +9 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/plain-turn.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.events.json +24 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.rows.json +27 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.status.json +17 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.events.json +352 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.rows.json +209 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.status.json +18 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.events.json +71 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.rows.json +29 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/resolution-error.events.json +1 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/resolution-error.rows.json +14 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/resolution-error.status.json +7 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.events.json +90 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.rows.json +48 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.status.json +15 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.events.json +124 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.rows.json +30 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.events.json +70 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.rows.json +29 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.text-fallback.events.json +24 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.text-fallback.rows.json +13 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.text-fallback.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tier2.events.json +24 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tier2.rows.json +13 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tier2.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tool-strategy.events.json +36 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tool-strategy.rows.json +18 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tool-strategy.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.events.json +118 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.rows.json +49 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.events.json +49 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.rows.json +29 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/unattended-skip.events.json +51 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/unattended-skip.rows.json +31 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/unattended-skip.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.events.json +37 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.rows.json +29 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.status.json +18 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/write-todos.events.json +58 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/write-todos.rows.json +54 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/write-todos.status.json +16 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/harness-contract.test.ts +144 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-approve-all-lease.test.ts +194 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-parallel-gates.test.ts +131 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-round-trips.test.ts +224 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-sequential-gates.test.ts +180 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/hooks.test.ts +556 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +188 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/pause-vs-shutdown.test.ts +217 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/plain-turn.test.ts +162 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/platform-stop.test.ts +130 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/recorded-agent-version.test.ts +148 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +212 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/resolution-error.test.ts +130 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/resume-across-engine-upgrade.test.ts +268 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/resume-across-think-retirement.test.ts +181 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/run-finished-while-waiting.test.ts +110 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/run-values-refused.test.ts +106 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/structured-output.test.ts +242 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-concurrent-invocations.test.ts +312 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-delegation.test.ts +211 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-own-context.test.ts +192 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/thrown-turn-drains-publishes.test.ts +154 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/tool-call.test.ts +167 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/tool-lists.test.ts +291 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/turn-phases.test.ts +118 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/unattended-skip.test.ts +130 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/workspace-lock-timeout.test.ts +154 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/write-todos.test.ts +160 -0
- package/src/activities/execute-deep-agent/__tests__/hitl.test.ts +355 -0
- package/src/activities/execute-deep-agent/__tests__/hooks-setup.test.ts +333 -0
- package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +350 -0
- package/src/activities/execute-deep-agent/__tests__/loaded-tool-marks.test.ts +95 -0
- package/src/activities/execute-deep-agent/__tests__/plain-turn.live.test.ts +103 -0
- package/src/activities/execute-deep-agent/__tests__/plan-mode-path-normalization.test.ts +404 -0
- package/src/activities/execute-deep-agent/__tests__/platform-route.test.ts +185 -0
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +577 -0
- package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +293 -0
- package/src/activities/execute-deep-agent/__tests__/resume-across-think-retirement.live.test.ts +98 -0
- package/src/activities/execute-deep-agent/__tests__/resumed-history.test.ts +48 -0
- package/src/activities/execute-deep-agent/__tests__/scripted-model.test.ts +408 -0
- package/src/activities/execute-deep-agent/__tests__/shell-execute-gate.test.ts +293 -0
- package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +120 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-approval-propagation.test.ts +160 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-gitignored-capture.test.ts +214 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-plan-mode-permissions.test.ts +213 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-spans.test.ts +110 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-transformer.test.ts +662 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +197 -0
- package/src/activities/execute-deep-agent/__tests__/summarization-verification.test.ts +330 -0
- package/src/activities/execute-deep-agent/__tests__/tool-call.live.test.ts +80 -0
- package/src/activities/execute-deep-agent/__tests__/tool-scope.test.ts +519 -0
- package/src/activities/execute-deep-agent/__tests__/translator-subagents.test.ts +519 -0
- package/src/activities/execute-deep-agent/__tests__/translator-through-builder.test.ts +830 -0
- package/src/activities/execute-deep-agent/__tests__/translator.test.ts +641 -0
- package/src/activities/execute-deep-agent/__tests__/turn-setup-connect.test.ts +89 -0
- package/src/activities/execute-deep-agent/__tests__/turn-setup-tool-lists.test.ts +192 -0
- package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +381 -0
- package/src/activities/execute-deep-agent/__tests__/v3-event-recorder.test.ts +186 -0
- package/src/activities/execute-deep-agent/__tests__/vision-input.test.ts +152 -0
- package/src/activities/execute-deep-agent/adapter.ts +95 -0
- package/src/activities/execute-deep-agent/approval-file-change.ts +86 -0
- package/src/activities/execute-deep-agent/auto-publish.ts +80 -0
- package/src/activities/execute-deep-agent/cas-capture-backend.ts +154 -0
- package/src/activities/execute-deep-agent/cas-capture-observer.ts +132 -0
- package/src/activities/execute-deep-agent/deep-agent-capabilities.ts +49 -0
- package/src/activities/execute-deep-agent/deepagents-profiles.ts +51 -0
- package/src/activities/execute-deep-agent/engine-tools.ts +33 -0
- package/src/activities/execute-deep-agent/hitl.ts +274 -0
- package/src/activities/execute-deep-agent/hooks-setup.ts +75 -0
- package/src/activities/execute-deep-agent/inline-publisher.ts +208 -0
- package/src/activities/execute-deep-agent/platform-route.ts +284 -0
- package/src/activities/execute-deep-agent/prompt-builder.ts +547 -0
- package/src/activities/execute-deep-agent/resumed-history.ts +52 -0
- package/src/activities/execute-deep-agent/streaming-side-effects.ts +83 -0
- package/src/activities/execute-deep-agent/subagent-transformer.ts +732 -0
- package/src/activities/execute-deep-agent/subagent-wiring.ts +180 -0
- package/src/activities/execute-deep-agent/todo-list.ts +56 -0
- package/src/activities/execute-deep-agent/translator.ts +564 -0
- package/src/activities/execute-deep-agent/turn-settle.ts +162 -0
- package/src/activities/execute-deep-agent/turn-setup.ts +842 -0
- package/src/activities/execute-deep-agent/turn-stream.ts +309 -0
- package/src/activities/execute-deep-agent/turn.ts +151 -0
- package/src/activities/execute-deep-agent/v3-event-recorder.ts +112 -0
- package/src/activities/generate-session-subject.ts +376 -0
- package/src/activities/list-plugin-tools.ts +251 -0
- package/src/agent-host/__tests__/channel.test.ts +271 -0
- package/src/agent-host/__tests__/codec.test.ts +435 -0
- package/src/agent-host/__tests__/entry-telemetry.test.ts +159 -0
- package/src/agent-host/__tests__/entry.test.ts +223 -0
- package/src/agent-host/__tests__/environment.test.ts +73 -0
- package/src/agent-host/__tests__/failed-boot.test.ts +58 -0
- package/src/agent-host/__tests__/host-sink.test.ts +118 -0
- package/src/agent-host/__tests__/host.test.ts +162 -0
- package/src/agent-host/__tests__/hostile-host.test.ts +440 -0
- package/src/agent-host/__tests__/offload-through-host.test.ts +124 -0
- package/src/agent-host/__tests__/remote-fs.test.ts +177 -0
- package/src/agent-host/__tests__/spawned-host.test.ts +174 -0
- package/src/agent-host/__tests__/supervisor.test.ts +488 -0
- package/src/agent-host/channel.ts +334 -0
- package/src/agent-host/codec.ts +631 -0
- package/src/agent-host/entry.ts +153 -0
- package/src/agent-host/environment.ts +76 -0
- package/src/agent-host/failed-boot.ts +29 -0
- package/src/agent-host/fs-service.ts +133 -0
- package/src/agent-host/host-sink.ts +153 -0
- package/src/agent-host/host.ts +228 -0
- package/src/agent-host/hosting.ts +162 -0
- package/src/agent-host/protocol.ts +380 -0
- package/src/agent-host/remote-adapter.ts +320 -0
- package/src/agent-host/remote-fs.ts +128 -0
- package/src/agent-host/supervisor.ts +382 -0
- package/src/agent-proxy/__tests__/cursor-lane.test.ts +635 -0
- package/src/agent-proxy/__tests__/cursor-sdk-key-required.test.ts +119 -0
- package/src/agent-proxy/__tests__/cursor-sdk-wire.test.ts +175 -0
- package/src/agent-proxy/__tests__/lanes.test.ts +258 -0
- package/src/agent-proxy/__tests__/loopback-certificate.test.ts +100 -0
- package/src/agent-proxy/__tests__/otlp-forward-rebuild.test.ts +66 -0
- package/src/agent-proxy/__tests__/otlp-forward.test.ts +295 -0
- package/src/agent-proxy/__tests__/relay.test.ts +115 -0
- package/src/agent-proxy/__tests__/server.test.ts +436 -0
- package/src/agent-proxy/cursor-lane.ts +528 -0
- package/src/agent-proxy/lanes.ts +285 -0
- package/src/agent-proxy/loopback-certificate.ts +143 -0
- package/src/agent-proxy/otlp-forward.ts +190 -0
- package/src/agent-proxy/relay.ts +188 -0
- package/src/agent-proxy/server.ts +266 -0
- package/src/attach/__tests__/entry.test.ts +123 -0
- package/src/attach/__tests__/import-graph.test.ts +66 -0
- package/src/attach/__tests__/push.test.ts +162 -0
- package/src/attach/__tests__/waiter.test.ts +416 -0
- package/src/attach/entry.ts +92 -0
- package/src/attach/main.ts +26 -0
- package/src/attach/push.ts +165 -0
- package/src/attach/waiter.ts +370 -0
- package/src/bootstrap.ts +178 -0
- package/src/client/__tests__/agent-version-read.test.ts +39 -0
- package/src/client/__tests__/eval-read.test.ts +43 -0
- package/src/client/__tests__/plugin-read.test.ts +57 -0
- package/src/client/__tests__/run-calls.test.ts +65 -0
- package/src/client/__tests__/server-contracts.test.ts +157 -0
- package/src/client/__tests__/session-events-calls.test.ts +139 -0
- package/src/client/__tests__/stigmer-client.test.ts +577 -0
- package/src/client/__tests__/token-claims.test.ts +102 -0
- package/src/client/server-contracts.ts +124 -0
- package/src/client/stigmer-client.ts +686 -0
- package/src/client/token-claims.ts +103 -0
- package/src/config.ts +378 -0
- package/src/exit-backstop.ts +97 -0
- package/src/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.ts +1142 -0
- package/src/gen/turn/ai/stigmer/runner/turn/v1/ledger_pb.ts +458 -0
- package/src/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.ts +920 -0
- package/src/gen-ai-conventions.ts +121 -0
- package/src/harness/README.md +372 -0
- package/src/harness/__tests__/approval-answers.test.ts +202 -0
- package/src/harness/__tests__/approval-decisions.test.ts +114 -0
- package/src/harness/__tests__/attachment-credential.test.ts +115 -0
- package/src/harness/__tests__/capture.test.ts +285 -0
- package/src/harness/__tests__/import-direction.test.ts +169 -0
- package/src/harness/__tests__/loaded-versions.test.ts +76 -0
- package/src/harness/__tests__/mount-skills.test.ts +305 -0
- package/src/harness/__tests__/owed-undos.test.ts +305 -0
- package/src/harness/__tests__/persist-chokepoint.test.ts +344 -0
- package/src/harness/__tests__/readme-index.test.ts +339 -0
- package/src/harness/__tests__/reconcile-turn.test.ts +111 -0
- package/src/harness/__tests__/registry.test.ts +178 -0
- package/src/harness/__tests__/reinvocation-carry.test.ts +65 -0
- package/src/harness/__tests__/resolve-hooks.test.ts +241 -0
- package/src/harness/__tests__/resolve-subagents.test.ts +477 -0
- package/src/harness/__tests__/run-span.test.ts +255 -0
- package/src/harness/__tests__/run-turn-deterministic.test.ts +94 -0
- package/src/harness/__tests__/run-turn-eval-case.test.ts +211 -0
- package/src/harness/__tests__/run-turn.test.ts +435 -0
- package/src/harness/__tests__/runtime-touches-no-agent-path.test.ts +109 -0
- package/src/harness/__tests__/stop-controller.test.ts +93 -0
- package/src/harness/__tests__/terminal-table.test.ts +81 -0
- package/src/harness/__tests__/transcript-is-engine-free.test.ts +83 -0
- package/src/harness/__tests__/transcript-writers.test.ts +193 -0
- package/src/harness/__tests__/turn-attachments-vision.test.ts +105 -0
- package/src/harness/__tests__/turn-context.test.ts +213 -0
- package/src/harness/__tests__/turn-mcp.test.ts +554 -0
- package/src/harness/__tests__/turn-timeline.test.ts +290 -0
- package/src/harness/__tests__/usage-accumulator.test.ts +106 -0
- package/src/harness/approval-answers.ts +174 -0
- package/src/harness/approval-decisions.ts +82 -0
- package/src/harness/capabilities.ts +155 -0
- package/src/harness/capture.ts +337 -0
- package/src/harness/cost-cap-watch.ts +52 -0
- package/src/harness/events/__tests__/emitter.test.ts +715 -0
- package/src/harness/events/__tests__/ids-corpus.test.ts +86 -0
- package/src/harness/events/emitter.ts +805 -0
- package/src/harness/events/ids.ts +156 -0
- package/src/harness/loaded-versions.ts +78 -0
- package/src/harness/owed-undos.ts +258 -0
- package/src/harness/persist-chokepoint.ts +163 -0
- package/src/harness/registry.ts +203 -0
- package/src/harness/run-span.ts +184 -0
- package/src/harness/run-turn.ts +862 -0
- package/src/harness/stop-controller.ts +101 -0
- package/src/harness/terminal-table.ts +390 -0
- package/src/harness/transcript/__tests__/builder.test.ts +1246 -0
- package/src/harness/transcript/__tests__/resume-seed.test.ts +148 -0
- package/src/harness/transcript/__tests__/state.test.ts +144 -0
- package/src/harness/transcript/builder.ts +925 -0
- package/src/harness/transcript/events.ts +281 -0
- package/src/harness/transcript/resume-seed.ts +280 -0
- package/src/harness/transcript/state.ts +167 -0
- package/src/harness/turn-context.ts +1982 -0
- package/src/harness/turn-timeline.ts +248 -0
- package/src/harness/types.ts +725 -0
- package/src/harness/usage-accumulator.ts +134 -0
- package/src/harness-adapters.ts +48 -0
- package/src/idle-watchdog.ts +28 -0
- package/src/in-flight.ts +71 -0
- package/src/index.ts +48 -0
- package/src/interceptors/__tests__/run-credential-activity.test.ts +86 -0
- package/src/interceptors/run-credential-activity.ts +40 -0
- package/src/ipc-protocol-fixtures.ts +90 -0
- package/src/ipc-protocol.ts +89 -0
- package/src/main.ts +506 -0
- package/src/middleware/__tests__/advisory-message.test.ts +59 -0
- package/src/middleware/__tests__/approval-gate-hooks.test.ts +269 -0
- package/src/middleware/__tests__/approval-gate.test.ts +1072 -0
- package/src/middleware/__tests__/cost-advisory.test.ts +272 -0
- package/src/middleware/__tests__/error-hints.test.ts +90 -0
- package/src/middleware/__tests__/execution-budget.test.ts +239 -0
- package/src/middleware/__tests__/loop-detection.test.ts +194 -0
- package/src/middleware/__tests__/otel-spans.test.ts +460 -0
- package/src/middleware/__tests__/path-normalization.test.ts +198 -0
- package/src/middleware/__tests__/tool-intent.test.ts +266 -0
- package/src/middleware/__tests__/tool-truncation.test.ts +112 -0
- package/src/middleware/advisory-message.ts +62 -0
- package/src/middleware/approval-gate.ts +741 -0
- package/src/middleware/cost-advisory.ts +224 -0
- package/src/middleware/error-hints.ts +136 -0
- package/src/middleware/execution-budget.ts +197 -0
- package/src/middleware/index.ts +100 -0
- package/src/middleware/loop-detection.ts +197 -0
- package/src/middleware/otel-spans.ts +345 -0
- package/src/middleware/path-normalization.ts +178 -0
- package/src/middleware/tool-intent.ts +174 -0
- package/src/middleware/tool-scope.ts +201 -0
- package/src/middleware/tool-truncation.ts +94 -0
- package/src/middleware/types.ts +141 -0
- package/src/otel-export.ts +325 -0
- package/src/otel-metrics.ts +61 -0
- package/src/otel.ts +173 -0
- package/src/payload-codecs.ts +66 -0
- package/src/pipe-safety.ts +117 -0
- package/src/pool-member.ts +99 -0
- package/src/preflight.ts +104 -0
- package/src/run-trace-id.ts +50 -0
- package/src/runner-entry.ts +18 -0
- package/src/runner-manager.ts +882 -0
- package/src/runner-token-coordinator.ts +140 -0
- package/src/runner.ts +588 -0
- package/src/sandbox-token-renewal.ts +211 -0
- package/src/shared/__tests__/activity-input.test.ts +78 -0
- package/src/shared/__tests__/advisory-anthropic-payload.test.ts +194 -0
- package/src/shared/__tests__/agent-handover.test.ts +186 -0
- package/src/shared/__tests__/agent-identity.test.ts +144 -0
- package/src/shared/__tests__/agent-servers.test.ts +55 -0
- package/src/shared/__tests__/approval-canonicalize.test.ts +106 -0
- package/src/shared/__tests__/approval-fingerprint.test.ts +115 -0
- package/src/shared/__tests__/approval-policy.test.ts +466 -0
- package/src/shared/__tests__/args-preview.test.ts +147 -0
- package/src/shared/__tests__/artifact-storage-extended.test.ts +243 -0
- package/src/shared/__tests__/artifact-storage.test.ts +844 -0
- package/src/shared/__tests__/attachment-download-urls.test.ts +72 -0
- package/src/shared/__tests__/attachment-naming.test.ts +146 -0
- package/src/shared/__tests__/attachment-resolver.test.ts +644 -0
- package/src/shared/__tests__/attachment-vision.test.ts +424 -0
- package/src/shared/__tests__/attachment-zip.test.ts +236 -0
- package/src/shared/__tests__/bedrock-adapter.test.ts +213 -0
- package/src/shared/__tests__/bedrock-seam.test.ts +390 -0
- package/src/shared/__tests__/blueprint-resolver.test.ts +629 -0
- package/src/shared/__tests__/builtin-judge.test.ts +57 -0
- package/src/shared/__tests__/caller-identity.test.ts +172 -0
- package/src/shared/__tests__/channel-attachment.test.ts +285 -0
- package/src/shared/__tests__/cold-start-timing.test.ts +333 -0
- package/src/shared/__tests__/context-bridge.test.ts +51 -0
- package/src/shared/__tests__/conversation-attachment.test.ts +152 -0
- package/src/shared/__tests__/conversation-catchup.test.ts +94 -0
- package/src/shared/__tests__/cost-guard.test.ts +68 -0
- package/src/shared/__tests__/declared-preferences.test.ts +109 -0
- package/src/shared/__tests__/default-model-agrees-with-server.test.ts +74 -0
- package/src/shared/__tests__/exact-apply.test.ts +370 -0
- package/src/shared/__tests__/execution-target.test.ts +33 -0
- package/src/shared/__tests__/extract-json.test.ts +153 -0
- package/src/shared/__tests__/extract-structured-output.test.ts +149 -0
- package/src/shared/__tests__/file-change.test.ts +85 -0
- package/src/shared/__tests__/file-tools.test.ts +90 -0
- package/src/shared/__tests__/fingerprint-secret.test.ts +51 -0
- package/src/shared/__tests__/foundry-adapter.test.ts +276 -0
- package/src/shared/__tests__/foundry-seam.test.ts +482 -0
- package/src/shared/__tests__/grpc-retry-extended.test.ts +38 -0
- package/src/shared/__tests__/grpc-retry.test.ts +43 -0
- package/src/shared/__tests__/http-retry.test.ts +68 -0
- package/src/shared/__tests__/implement-plan-prompt.test.ts +86 -0
- package/src/shared/__tests__/json-schema-to-zod.test.ts +227 -0
- package/src/shared/__tests__/lease-scope-corpus.test.ts +78 -0
- package/src/shared/__tests__/llm-backend.test.ts +676 -0
- package/src/shared/__tests__/llm-proxy.test.ts +179 -0
- package/src/shared/__tests__/mcp-manager.test.ts +272 -0
- package/src/shared/__tests__/mcp-oauth-detect.test.ts +167 -0
- package/src/shared/__tests__/mcp-resolver.test.ts +454 -0
- package/src/shared/__tests__/mcp-schema-sanitizer.test.ts +267 -0
- package/src/shared/__tests__/mcp-tool-listing.hang.test.ts +82 -0
- package/src/shared/__tests__/mcp-tool-listing.test.ts +257 -0
- package/src/shared/__tests__/mcp-transport-guard.test.ts +71 -0
- package/src/shared/__tests__/memory-attachment.test.ts +183 -0
- package/src/shared/__tests__/memory-retrieval.test.ts +310 -0
- package/src/shared/__tests__/model-client-sampling.test.ts +110 -0
- package/src/shared/__tests__/model-client.test.ts +623 -0
- package/src/shared/__tests__/model-error.test.ts +579 -0
- package/src/shared/__tests__/model-lanes.test.ts +225 -0
- package/src/shared/__tests__/model-pricing.test.ts +131 -0
- package/src/shared/__tests__/model-registry-at-provider.live.test.ts +63 -0
- package/src/shared/__tests__/model-registry.test.ts +460 -0
- package/src/shared/__tests__/persist-decision.test.ts +87 -0
- package/src/shared/__tests__/placeholder-resolver.test.ts +210 -0
- package/src/shared/__tests__/plan-artifact.test.ts +260 -0
- package/src/shared/__tests__/plan-mode-permissions.test.ts +29 -0
- package/src/shared/__tests__/platform-server-address.test.ts +125 -0
- package/src/shared/__tests__/plugin-mount-faults.test.ts +71 -0
- package/src/shared/__tests__/plugin-mount.test.ts +407 -0
- package/src/shared/__tests__/plugin-servers.test.ts +53 -0
- package/src/shared/__tests__/policy-source-corpus.test.ts +69 -0
- package/src/shared/__tests__/prompt-sections.test.ts +113 -0
- package/src/shared/__tests__/recalled-memories.test.ts +88 -0
- package/src/shared/__tests__/registry-endpoint.test.ts +96 -0
- package/src/shared/__tests__/run-credential.test.ts +109 -0
- package/src/shared/__tests__/run-values.test.ts +125 -0
- package/src/shared/__tests__/runner-credential-store.test.ts +175 -0
- package/src/shared/__tests__/secret-leak-scan.test.ts +100 -0
- package/src/shared/__tests__/sender-identity.test.ts +92 -0
- package/src/shared/__tests__/session-context.test.ts +67 -0
- package/src/shared/__tests__/shell-env.test.ts +118 -0
- package/src/shared/__tests__/skill-mount.test.ts +353 -0
- package/src/shared/__tests__/skill-resolver.test.ts +401 -0
- package/src/shared/__tests__/stall-watchdog.test.ts +193 -0
- package/src/shared/__tests__/stamp-flowed-rows.test.ts +142 -0
- package/src/shared/__tests__/status-offload.test.ts +778 -0
- package/src/shared/__tests__/status.test.ts +350 -0
- package/src/shared/__tests__/streaming-scheduler.test.ts +198 -0
- package/src/shared/__tests__/subagent-gate.test.ts +112 -0
- package/src/shared/__tests__/subagent-rows.test.ts +34 -0
- package/src/shared/__tests__/subagents.test.ts +135 -0
- package/src/shared/__tests__/synthesized-attachment.test.ts +96 -0
- package/src/shared/__tests__/telemetry-content.test.ts +220 -0
- package/src/shared/__tests__/thinking-mode.test.ts +69 -0
- package/src/shared/__tests__/todos.test.ts +216 -0
- package/src/shared/__tests__/tool-kind.test.ts +81 -0
- package/src/shared/__tests__/tool-lists.test.ts +463 -0
- package/src/shared/__tests__/tool-rounds.test.ts +107 -0
- package/src/shared/__tests__/tool-row.test.ts +390 -0
- package/src/shared/__tests__/trace-context.test.ts +68 -0
- package/src/shared/__tests__/vertex-adapter.test.ts +196 -0
- package/src/shared/__tests__/vertex-seam.test.ts +296 -0
- package/src/shared/__tests__/with-timeout.test.ts +60 -0
- package/src/shared/__tests__/worker-shutdown.test.ts +106 -0
- package/src/shared/__tests__/zip-extract.test.ts +256 -0
- package/src/shared/activity-input.ts +78 -0
- package/src/shared/agent-fs.ts +264 -0
- package/src/shared/agent-handover.ts +171 -0
- package/src/shared/agent-identity.ts +185 -0
- package/src/shared/agent-servers.ts +51 -0
- package/src/shared/approval-canonicalize.ts +159 -0
- package/src/shared/approval-fingerprint.ts +145 -0
- package/src/shared/approval-policy.ts +536 -0
- package/src/shared/archive-mount.ts +140 -0
- package/src/shared/args-preview.ts +128 -0
- package/src/shared/artifact-storage.ts +496 -0
- package/src/shared/attachment-download-urls.ts +76 -0
- package/src/shared/attachment-naming.ts +78 -0
- package/src/shared/attachment-resolver.ts +468 -0
- package/src/shared/attachment-vision.ts +466 -0
- package/src/shared/attachment-zip.ts +281 -0
- package/src/shared/blueprint-resolver.ts +420 -0
- package/src/shared/builtin-assistant-prompt.ts +38 -0
- package/src/shared/builtin-judge.ts +62 -0
- package/src/shared/caller-identity.ts +186 -0
- package/src/shared/channel-attachment.ts +246 -0
- package/src/shared/checkpointer/__tests__/factory.test.ts +88 -0
- package/src/shared/checkpointer/__tests__/http-saver.test.ts +393 -0
- package/src/shared/checkpointer/__tests__/sqlite-saver.test.ts +212 -0
- package/src/shared/checkpointer/factory.ts +94 -0
- package/src/shared/checkpointer/http-saver.ts +429 -0
- package/src/shared/checkpointer/sqlite-saver.ts +384 -0
- package/src/shared/checkpointer/types.ts +27 -0
- package/src/shared/cold-start-timing.ts +260 -0
- package/src/shared/context-bridge.ts +51 -0
- package/src/shared/conversation-attachment.ts +141 -0
- package/src/shared/conversation-catchup.ts +93 -0
- package/src/shared/cost-guard.ts +63 -0
- package/src/shared/declared-preferences.ts +84 -0
- package/src/shared/eval-case/__tests__/agent-mock.test.ts +126 -0
- package/src/shared/eval-case/__tests__/case-archive.test.ts +159 -0
- package/src/shared/eval-case/__tests__/mock-endpoint-failure.test.ts +65 -0
- package/src/shared/eval-case/__tests__/mock-endpoint.test.ts +269 -0
- package/src/shared/eval-case/__tests__/prepare-case.test.ts +228 -0
- package/src/shared/eval-case/__tests__/read-files.test.ts +90 -0
- package/src/shared/eval-case/agent-mock.ts +131 -0
- package/src/shared/eval-case/case-archive.ts +135 -0
- package/src/shared/eval-case/mock-endpoint.ts +282 -0
- package/src/shared/eval-case/prepare-case.ts +227 -0
- package/src/shared/eval-case/read-files.ts +94 -0
- package/src/shared/exact-apply.ts +247 -0
- package/src/shared/execution-context.ts +62 -0
- package/src/shared/execution-target.ts +17 -0
- package/src/shared/extract-json.ts +153 -0
- package/src/shared/extract-structured-output.ts +83 -0
- package/src/shared/file-change.ts +62 -0
- package/src/shared/file-tools.ts +167 -0
- package/src/shared/filereview/__tests__/capture.test.ts +1178 -0
- package/src/shared/filereview/__tests__/cas-progress.test.ts +229 -0
- package/src/shared/filereview/__tests__/cas-substrate.test.ts +504 -0
- package/src/shared/filereview/__tests__/command-provenance.test.ts +249 -0
- package/src/shared/filereview/__tests__/digest.test.ts +100 -0
- package/src/shared/filereview/__tests__/events.test.ts +350 -0
- package/src/shared/filereview/__tests__/git-substrate.test.ts +365 -0
- package/src/shared/filereview/__tests__/line-counts.test.ts +73 -0
- package/src/shared/filereview/__tests__/progress.test.ts +480 -0
- package/src/shared/filereview/__tests__/proxy-reconcile.test.ts +265 -0
- package/src/shared/filereview/__tests__/record.test.ts +126 -0
- package/src/shared/filereview/__tests__/secret-paths.test.ts +121 -0
- package/src/shared/filereview/capture.ts +783 -0
- package/src/shared/filereview/cas-progress.ts +155 -0
- package/src/shared/filereview/cas-substrate.ts +460 -0
- package/src/shared/filereview/cas-touched.ts +89 -0
- package/src/shared/filereview/command-provenance.ts +182 -0
- package/src/shared/filereview/digest.ts +83 -0
- package/src/shared/filereview/events.ts +515 -0
- package/src/shared/filereview/git-substrate.ts +680 -0
- package/src/shared/filereview/index.ts +99 -0
- package/src/shared/filereview/line-counts.ts +83 -0
- package/src/shared/filereview/progress.ts +361 -0
- package/src/shared/filereview/record.ts +107 -0
- package/src/shared/filereview/secret-paths.ts +119 -0
- package/src/shared/fingerprint-secret.ts +77 -0
- package/src/shared/grpc-retry.ts +54 -0
- package/src/shared/heartbeat.ts +50 -0
- package/src/shared/hooks/__tests__/answer.test.ts +179 -0
- package/src/shared/hooks/__tests__/condition.test.ts +389 -0
- package/src/shared/hooks/__tests__/cursor-format.test.ts +209 -0
- package/src/shared/hooks/__tests__/evaluate.test.ts +473 -0
- package/src/shared/hooks/__tests__/run.test.ts +159 -0
- package/src/shared/hooks/__tests__/stall.test.ts +75 -0
- package/src/shared/hooks/__tests__/tool-view.test.ts +235 -0
- package/src/shared/hooks/answer.ts +180 -0
- package/src/shared/hooks/condition.ts +341 -0
- package/src/shared/hooks/evaluate.ts +381 -0
- package/src/shared/hooks/formats/claude-code.ts +106 -0
- package/src/shared/hooks/formats/common.ts +31 -0
- package/src/shared/hooks/formats/cursor.ts +261 -0
- package/src/shared/hooks/hook-set.ts +134 -0
- package/src/shared/hooks/matcher.ts +31 -0
- package/src/shared/hooks/messages.ts +38 -0
- package/src/shared/hooks/run.ts +190 -0
- package/src/shared/hooks/setup.ts +209 -0
- package/src/shared/hooks/shell-commands.ts +326 -0
- package/src/shared/hooks/tool-view.ts +406 -0
- package/src/shared/http-retry.ts +139 -0
- package/src/shared/implement-plan-prompt.ts +104 -0
- package/src/shared/json-schema-to-zod.ts +53 -0
- package/src/shared/llm-backend.ts +623 -0
- package/src/shared/llm-proxy.ts +154 -0
- package/src/shared/mcp-manager.ts +161 -0
- package/src/shared/mcp-oauth-detect.ts +80 -0
- package/src/shared/mcp-resolver.ts +338 -0
- package/src/shared/mcp-schema-sanitizer.ts +222 -0
- package/src/shared/mcp-tool-listing.ts +203 -0
- package/src/shared/mcp-transport-guard.ts +81 -0
- package/src/shared/memory-attachment.ts +177 -0
- package/src/shared/memory-retrieval.ts +380 -0
- package/src/shared/model-client.ts +465 -0
- package/src/shared/model-error.ts +551 -0
- package/src/shared/model-facts.ts +30 -0
- package/src/shared/model-lanes.ts +66 -0
- package/src/shared/model-pricing-data.ts +123 -0
- package/src/shared/model-pricing.ts +64 -0
- package/src/shared/model-registry.ts +352 -0
- package/src/shared/persist-decision.ts +47 -0
- package/src/shared/placeholder-resolver.ts +113 -0
- package/src/shared/plan-artifact.ts +255 -0
- package/src/shared/plan-mode-permissions.ts +53 -0
- package/src/shared/plan-mode-prompt.ts +74 -0
- package/src/shared/platform-server-address.ts +124 -0
- package/src/shared/plugin-mount.ts +495 -0
- package/src/shared/plugin-servers.ts +23 -0
- package/src/shared/prompt-sections.ts +205 -0
- package/src/shared/recalled-memories.ts +90 -0
- package/src/shared/registry-endpoint.ts +108 -0
- package/src/shared/run-credential-store.ts +45 -0
- package/src/shared/run-credential.ts +48 -0
- package/src/shared/run-values.ts +154 -0
- package/src/shared/runner-credential-keys.ts +106 -0
- package/src/shared/runner-credential-store.ts +115 -0
- package/src/shared/sender-identity.ts +85 -0
- package/src/shared/service-tier.ts +78 -0
- package/src/shared/session-context.ts +58 -0
- package/src/shared/shell-env.ts +75 -0
- package/src/shared/skill-mount.ts +214 -0
- package/src/shared/skill-resolver.ts +167 -0
- package/src/shared/stall-watchdog.ts +122 -0
- package/src/shared/status-offload.ts +742 -0
- package/src/shared/status.ts +268 -0
- package/src/shared/streaming-scheduler.ts +158 -0
- package/src/shared/subagent-gate.ts +122 -0
- package/src/shared/subagent-rows.ts +39 -0
- package/src/shared/subagents.ts +75 -0
- package/src/shared/synthesized-attachment.ts +100 -0
- package/src/shared/telemetry-content.ts +301 -0
- package/src/shared/thinking-mode.ts +125 -0
- package/src/shared/todos.ts +68 -0
- package/src/shared/tool-kind.ts +140 -0
- package/src/shared/tool-lists.ts +617 -0
- package/src/shared/tool-rounds.ts +151 -0
- package/src/shared/tool-row.ts +346 -0
- package/src/shared/trace-context.ts +35 -0
- package/src/shared/with-timeout.ts +53 -0
- package/src/shared/worker-shutdown.ts +134 -0
- package/src/shared/workspace/__tests__/file-tree.test.ts +210 -0
- package/src/shared/workspace/__tests__/git-credential.test.ts +470 -0
- package/src/shared/workspace/__tests__/git-identity.test.ts +124 -0
- package/src/shared/workspace/__tests__/git-source.test.ts +476 -0
- package/src/shared/workspace/__tests__/local-backend-platform.test.ts +259 -0
- package/src/shared/workspace/__tests__/local-backend.test.ts +160 -0
- package/src/shared/workspace/__tests__/platform-mount.test.ts +378 -0
- package/src/shared/workspace/__tests__/provisioner.test.ts +194 -0
- package/src/shared/workspace/__tests__/session-provision.test.ts +322 -0
- package/src/shared/workspace/__tests__/session-root.test.ts +42 -0
- package/src/shared/workspace/__tests__/stigmer-link.test.ts +278 -0
- package/src/shared/workspace/__tests__/workspace-lock.test.ts +207 -0
- package/src/shared/workspace/__tests__/writeback-coordinator-git.test.ts +244 -0
- package/src/shared/workspace/__tests__/writeback-coordinator.test.ts +495 -0
- package/src/shared/workspace/file-tree.ts +116 -0
- package/src/shared/workspace/git-credential.ts +247 -0
- package/src/shared/workspace/git-identity.ts +41 -0
- package/src/shared/workspace/local-backend.ts +132 -0
- package/src/shared/workspace/platform-dir.ts +163 -0
- package/src/shared/workspace/platform-mount.ts +190 -0
- package/src/shared/workspace/provisioner.ts +119 -0
- package/src/shared/workspace/session-provision.ts +104 -0
- package/src/shared/workspace/session-root.ts +60 -0
- package/src/shared/workspace/sources/empty.ts +19 -0
- package/src/shared/workspace/sources/git.ts +292 -0
- package/src/shared/workspace/sources/local-path.ts +92 -0
- package/src/shared/workspace/stigmer-link.ts +185 -0
- package/src/shared/workspace/types.ts +85 -0
- package/src/shared/workspace/workspace-lock.ts +245 -0
- package/src/shared/workspace/writeback-coordinator.ts +522 -0
- package/src/shared/zip-extract.ts +118 -0
- package/src/tools/__tests__/url-guard.test.ts +155 -0
- package/src/tools/__tests__/web-fetch-tool.test.ts +193 -0
- package/src/tools/index.ts +27 -0
- package/src/tools/url-guard.ts +140 -0
- package/src/tools/web-fetch-tool.ts +278 -0
- package/src/worker.ts +112 -0
- package/src/workflow-source.ts +72 -0
- package/src/workflows/__tests__/barrel.test.ts +21 -0
- package/src/workflows/__tests__/list-plugin-tools.test.ts +82 -0
- package/src/workflows/index.ts +36 -0
- package/src/workflows/list-plugin-tools.ts +70 -0
- package/src/workflows/types.ts +46 -0
|
@@ -0,0 +1,923 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The turn context — everything the runtime resolves for one agent turn
|
|
3
|
+
* before any harness runs, as small named phases producing one typed record.
|
|
4
|
+
*
|
|
5
|
+
* A turn begins with a dozen reads and provisions that have nothing to do
|
|
6
|
+
* with the engine that will run it: the execution and its session, the
|
|
7
|
+
* agent blueprint, the run's values, the workspace and its lock, the undos
|
|
8
|
+
* still owed to earlier turns, what the previous turn left waiting for
|
|
9
|
+
* approval, the MCP servers with the
|
|
10
|
+
* approval default and the agent's tool scope, the attachments, the standing context. Until #1070
|
|
11
|
+
* that sequence lived inline in the Cursor orchestrator
|
|
12
|
+
* (`activities/execute-cursor/index.ts` `executeCursorInner`, phases 1 to
|
|
13
|
+
* 9c); the native orchestrator carried a second copy in its `performSetup`.
|
|
14
|
+
* This module is the one copy. Each phase is a function that reads its
|
|
15
|
+
* inputs, reports its progress label, heartbeats once on entry, and returns
|
|
16
|
+
* a typed slice of the contract's `TurnInput`; {@link resolveTurnContext}
|
|
17
|
+
* sequences them, and the adapter runs its own harness-specific steps after
|
|
18
|
+
* the whole record exists.
|
|
19
|
+
*
|
|
20
|
+
* Shape, chosen against the native orchestrator's `setup.ts` (deleted in
|
|
21
|
+
* #1096): a typed record built from small functions (the `SetupResult` mold),
|
|
22
|
+
* never one 775-line `performSetup`. The record is the adapter contract's `TurnInput`
|
|
23
|
+
* (`types.ts`): every phase returns a named slice of it, and
|
|
24
|
+
* {@link resolveTurnContext} composes the whole. There is no wider
|
|
25
|
+
* "runtime-private" record beside it — the lock release and the write-back
|
|
26
|
+
* coordinator a phase produces are the caller's `TurnFrame` resources, set
|
|
27
|
+
* the instant they exist so a `finally` sees them on every path (a first cut
|
|
28
|
+
* had a `TurnContext extends TurnInput` for them; once the groups lifted,
|
|
29
|
+
* nothing read the extension after composition, so #1070 shipped without it).
|
|
30
|
+
*
|
|
31
|
+
* Three rules every phase obeys:
|
|
32
|
+
*
|
|
33
|
+
* - It never persists and never returns a slim status. A phase that can end
|
|
34
|
+
* the turn (the lock, the reconcile turn's undo) returns a
|
|
35
|
+
* {@link TurnSettlement} naming WHAT was decided; the caller writes the
|
|
36
|
+
* status, persists once and returns. The lock golden pins that persist as
|
|
37
|
+
* the turn's one and only, which is why the rule is structural.
|
|
38
|
+
* - It imports nothing from `src/activities/` (pinned by
|
|
39
|
+
* `__tests__/import-direction.test.ts`). A fact only the harness knows
|
|
40
|
+
* (its file-review identity, its vision profile) arrives through
|
|
41
|
+
* `HarnessCapabilities`.
|
|
42
|
+
* - Its heartbeat pulse and its cold-start timing marks are its own: the
|
|
43
|
+
* step name it enters under is the mark name it emits, one vocabulary for
|
|
44
|
+
* "where in setup are we" in Temporal heartbeat details and the
|
|
45
|
+
* `execution_setup` log.
|
|
46
|
+
*
|
|
47
|
+
* What is deliberately NOT here, and where it is instead:
|
|
48
|
+
*
|
|
49
|
+
* - Cursor's catalog validation of the requested model (`resolveModelId`),
|
|
50
|
+
* the pricing preload and the MCP env pre-flight warning stay in the
|
|
51
|
+
* Cursor adapter: each reads a module that is the adapter's own, and the
|
|
52
|
+
* runtime carries the REQUESTED model name so every harness validates
|
|
53
|
+
* against its own catalog. The skill mount was in that list until #1070
|
|
54
|
+
* found it reads the control plane, which only the runtime holds; it is
|
|
55
|
+
* {@link mountSkills}.
|
|
56
|
+
* - The approval grants, the HITL gate, the capture baseline pin and the
|
|
57
|
+
* Cursor agent itself (phases 5c, 7, 8a, 9) are the adapter's.
|
|
58
|
+
* - The memory selection is a memoized thunk, not a value: whether a prompt
|
|
59
|
+
* carries standing context depends on how the ENGINE resolved (a resumed
|
|
60
|
+
* agent already holds it), which the runtime learns only after the
|
|
61
|
+
* adapter runs. The runtime prepares the selection once; the adapter
|
|
62
|
+
* pulls it when its prompt needs it.
|
|
63
|
+
*/
|
|
64
|
+
import { type Run, type RunStatus } from "@stigmer/apis/ai/stigmer/agentic/run/v1/api_pb";
|
|
65
|
+
import type { RunSpec } from "@stigmer/apis/ai/stigmer/agentic/run/v1/spec_pb";
|
|
66
|
+
import type { RunConfig } from "@stigmer/apis/ai/stigmer/agentic/run/v1/invocation_pb";
|
|
67
|
+
import type { Session } from "@stigmer/apis/ai/stigmer/agentic/session/v1/api_pb";
|
|
68
|
+
import type { SessionEvent } from "@stigmer/apis/ai/stigmer/agentic/session/v1/event_pb";
|
|
69
|
+
import type { Config } from "../config.js";
|
|
70
|
+
import type { StigmerClient } from "../client/stigmer-client.js";
|
|
71
|
+
import type { NormalizedActivityInput } from "../shared/activity-input.js";
|
|
72
|
+
import { type ApprovalAsk } from "./approval-answers.js";
|
|
73
|
+
import type { ArtifactStorage } from "../shared/artifact-storage.js";
|
|
74
|
+
import type { TimingRecorder } from "../shared/cold-start-timing.js";
|
|
75
|
+
import { type ResolvedBlueprint } from "../shared/blueprint-resolver.js";
|
|
76
|
+
import { type RepositoryToken, type RunValues } from "../shared/run-values.js";
|
|
77
|
+
import { WriteBackCoordinator } from "../shared/workspace/writeback-coordinator.js";
|
|
78
|
+
import { type CaseArchive } from "../shared/eval-case/case-archive.js";
|
|
79
|
+
import { type PreparedEvalCase } from "../shared/eval-case/prepare-case.js";
|
|
80
|
+
import type { MockEndpoint } from "../shared/eval-case/mock-endpoint.js";
|
|
81
|
+
import { type UndoOutcome } from "../shared/filereview/capture.js";
|
|
82
|
+
import { WorkspaceLockTimeoutError, type ReleaseWorkspaceLock } from "../shared/workspace/workspace-lock.js";
|
|
83
|
+
import { type LeaseGrant } from "../shared/approval-policy.js";
|
|
84
|
+
import { ToolScope } from "../shared/tool-lists.js";
|
|
85
|
+
import type { ApiResourceReference } from "@stigmer/apis/ai/stigmer/commons/apiresource/io_pb";
|
|
86
|
+
import type { ResolvedMcpServer } from "../shared/mcp-resolver.js";
|
|
87
|
+
import { type VisionProfile } from "../shared/attachment-vision.js";
|
|
88
|
+
import type { HarnessCapabilities, PausePrimitive, StateIdSource } from "./capabilities.js";
|
|
89
|
+
import { type ReconciledUndo } from "./owed-undos.js";
|
|
90
|
+
import type { RunFacts } from "./run-span.js";
|
|
91
|
+
import type { TranscriptBuilder } from "./transcript/builder.js";
|
|
92
|
+
import type { TurnAttachments, TurnHooks, TurnInput, TurnMcp, TurnModelPreferences, TurnSkills, TurnStandingContext, TurnSubagent, TurnWorkspace } from "./types.js";
|
|
93
|
+
import type { ApprovalAction } from "../gen/turn/ai/stigmer/runner/turn/v1/enum_pb.js";
|
|
94
|
+
import type { RecalledMemoriesReport, TurnRows } from "../gen/turn/ai/stigmer/runner/turn/v1/rows_pb.js";
|
|
95
|
+
/**
|
|
96
|
+
* What every phase reads from its caller. The activity's identity and the
|
|
97
|
+
* runtime's own seams; nothing harness-specific. The four function members
|
|
98
|
+
* are the caller's, injected so the phase bodies are the same code under
|
|
99
|
+
* the Cursor orchestrator it left and under `run-turn.ts` (only the
|
|
100
|
+
* binding changes), and so a test can drive a phase without a Temporal
|
|
101
|
+
* activity context.
|
|
102
|
+
*/
|
|
103
|
+
export interface ResolutionDeps {
|
|
104
|
+
/** The activity's own identity: execution id, engine state id, HITL cycle index. */
|
|
105
|
+
readonly input: NormalizedActivityInput;
|
|
106
|
+
readonly client: StigmerClient;
|
|
107
|
+
/**
|
|
108
|
+
* The whole runner config. The runtime is its rightful reader; a shared
|
|
109
|
+
* helper that needs two fields is handed a narrowed view of it
|
|
110
|
+
* (`SessionProvisionConfig`), never the other way round.
|
|
111
|
+
*/
|
|
112
|
+
readonly config: Config;
|
|
113
|
+
/**
|
|
114
|
+
* The one execution status this turn writes. Phases write the runtime's
|
|
115
|
+
* OWN fields here (the loaded versions, the status outputs a reinvocation
|
|
116
|
+
* carries over); nothing else does.
|
|
117
|
+
*/
|
|
118
|
+
readonly status: RunStatus;
|
|
119
|
+
/**
|
|
120
|
+
* The turn's rows, which the builder folds into and the session's log is
|
|
121
|
+
* written from. Phases write only the runtime's own fields here (the
|
|
122
|
+
* memory-selection report); rows arrive through the builder.
|
|
123
|
+
*/
|
|
124
|
+
readonly rows: TurnRows;
|
|
125
|
+
/**
|
|
126
|
+
* The one transcript builder over `rows`, the caller's, born with them.
|
|
127
|
+
* Two phases hand it on: the seed appends a reinvocation's asks through
|
|
128
|
+
* it (so they are indexed as they land), and the workspace phase gives it
|
|
129
|
+
* to the write-back coordinator as the place a write-back record is
|
|
130
|
+
* registered. One phase folds a single event of its own: the MCP phase's
|
|
131
|
+
* system note when the platform's tools are off for the turn
|
|
132
|
+
* (`resolveMcpServersAndPolicies`). No engine has run yet.
|
|
133
|
+
*/
|
|
134
|
+
readonly transcript: TranscriptBuilder;
|
|
135
|
+
/** Resolved once by the caller before any phase; absent when no substrate works. */
|
|
136
|
+
readonly artifactStorage: ArtifactStorage | undefined;
|
|
137
|
+
/** The cold-start timeline; each phase marks its own segment(s) exactly as before. */
|
|
138
|
+
readonly timing: TimingRecorder;
|
|
139
|
+
/** Cancellation for the one wait a phase can block on (the workspace lock). */
|
|
140
|
+
readonly signal: AbortSignal;
|
|
141
|
+
/** The Temporal heartbeat, handed to helpers that pulse mid-call (the lock wait). */
|
|
142
|
+
readonly heartbeat: () => void;
|
|
143
|
+
/**
|
|
144
|
+
* "Resolution is now at this step": labels the caller's periodic heartbeat
|
|
145
|
+
* and pulses once. Every phase calls it first with its own step name.
|
|
146
|
+
*/
|
|
147
|
+
readonly enterPhase: (step: string) => void;
|
|
148
|
+
/** The user-visible setup label (`setupProgress`); the six strings are unchanged from the orchestrator. */
|
|
149
|
+
readonly reportProgress: (label: string) => Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* The run and its session are known: the turn's trace span takes its
|
|
152
|
+
* name and facts from them (`run-span.ts`). Called once, right after the
|
|
153
|
+
* blueprint resolves, so a turn that settles during resolution is named
|
|
154
|
+
* too.
|
|
155
|
+
*/
|
|
156
|
+
readonly identifyRun: (facts: RunFacts) => void;
|
|
157
|
+
/**
|
|
158
|
+
* Writes what the turn's start put back for earlier turns into the
|
|
159
|
+
* session's log at once (`events/emitter.ts` `writeReconciled`), before the
|
|
160
|
+
* workspace lock is released (`owed-undos.ts`).
|
|
161
|
+
*/
|
|
162
|
+
readonly recordReconciled: (answers: readonly ReconciledUndo[]) => Promise<void>;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* What the previous invocation left for this one (phase 3). Not part of
|
|
166
|
+
* `TurnInput`: `isReinvocation` is the adapter's own derivation from
|
|
167
|
+
* `threadId` (the contract carries no flag by design, `types.ts` header) and
|
|
168
|
+
* the runtime reads it only inside {@link resolveTurnContext}; the decisions
|
|
169
|
+
* and the asks ARE on the input. The seeded asks are on `sink.rows`
|
|
170
|
+
* (`transcript/resume-seed.ts`), each carrying the log's answer to its call; an
|
|
171
|
+
* adapter wraps them by reference.
|
|
172
|
+
*/
|
|
173
|
+
export interface TurnReinvocation {
|
|
174
|
+
/** The engine already holds state for this execution (derived per {@link isReinvocation}). */
|
|
175
|
+
readonly isReinvocation: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* The log holds what an earlier invocation of this run's engine did
|
|
178
|
+
* ({@link runWroteEngineEvents}): the emitter's `resumed`, which reads
|
|
179
|
+
* back what the run already wrote before writing on.
|
|
180
|
+
*/
|
|
181
|
+
readonly runWroteEvents: boolean;
|
|
182
|
+
/** The answered WAITING rows, keyed by tool-call id; empty when nothing was answered. */
|
|
183
|
+
readonly approvalDecisions: ReadonlyMap<string, ApprovalAction>;
|
|
184
|
+
/** The reason a person gave with each deny that carries one, by tool-call id. */
|
|
185
|
+
readonly approvalDenyMessages: ReadonlyMap<string, string>;
|
|
186
|
+
/** What each of the run's asked calls was asked under, by tool use id (`approval-answers.ts`). */
|
|
187
|
+
readonly approvalAsks: ReadonlyMap<string, ApprovalAsk>;
|
|
188
|
+
/** The run's grants, by the tool use id each was given on: the leases phase 4b arms. */
|
|
189
|
+
readonly grants: ReadonlyMap<string, LeaseGrant>;
|
|
190
|
+
/** The run's newest root `agent.message` an earlier invocation wrote: the run's answer when this one writes none. */
|
|
191
|
+
readonly answerText: string | undefined;
|
|
192
|
+
/** The memory selection an earlier invocation recorded (`stigmer.memory.recalled`): replayed, never re-selected. */
|
|
193
|
+
readonly recalledMemoriesReport: RecalledMemoriesReport | undefined;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* A turn that ended during resolution, before any harness ran. Each arm
|
|
197
|
+
* names what was decided and carries only the facts the caller's status
|
|
198
|
+
* writes need; the copy, the phase flip, the persist and the slim return are
|
|
199
|
+
* the caller's (the runtime's terminal table).
|
|
200
|
+
*
|
|
201
|
+
* - `workspace-lock-timeout`: another turn held the primary tree past
|
|
202
|
+
* `Config.workspaceLockTimeoutMs`. FAILED, returned (a Temporal retry
|
|
203
|
+
* would queue behind the same holder).
|
|
204
|
+
* - `values-refused`: the run's value fetch was refused for a reason its
|
|
205
|
+
* person fixes (an entry gone from its vault, a vault the run may no
|
|
206
|
+
* longer use, a tool moved to another address, a sign-in that cannot be
|
|
207
|
+
* renewed). FAILED with the server's message, returned: a retry would
|
|
208
|
+
* read the same vaults.
|
|
209
|
+
* - `file-review-resolved`: a reconcile turn (`RunSpec.reconcile_file_review`),
|
|
210
|
+
* the run a person's Undo on an ended turn starts: putting back the undos
|
|
211
|
+
* still owed is the whole act, and no engine runs. COMPLETED, returned,
|
|
212
|
+
* with the write-back finalized first when every undo held.
|
|
213
|
+
* - `eval-scaffold-failed`: a eval-run try's scaffold exited non-zero or
|
|
214
|
+
* ran past its limit. TERMINATED with the try stop's sentence, returned:
|
|
215
|
+
* the eval scores the try 0, and a retry would run the same script.
|
|
216
|
+
* - `run-finished`: the run finished while this invocation waited for its
|
|
217
|
+
* workspace ({@link runFinishedWhileWaiting}). Returned with the phase
|
|
218
|
+
* the server holds, and nothing written: the server takes no more status
|
|
219
|
+
* and no more events of a finished run.
|
|
220
|
+
*
|
|
221
|
+
* A REJECTed tool is not a settlement: the run continues without it
|
|
222
|
+
* (`approval-decisions.ts`).
|
|
223
|
+
*/
|
|
224
|
+
export type TurnSettlement = {
|
|
225
|
+
readonly kind: "workspace-lock-timeout";
|
|
226
|
+
readonly error: WorkspaceLockTimeoutError;
|
|
227
|
+
} | {
|
|
228
|
+
readonly kind: "file-review-resolved";
|
|
229
|
+
readonly failed: boolean;
|
|
230
|
+
readonly failureDetail: string;
|
|
231
|
+
readonly discardedPaths: readonly string[];
|
|
232
|
+
} | {
|
|
233
|
+
/** The agent's hooks cannot run as written; `message` names what and why, for the person who owns the agent. */
|
|
234
|
+
readonly kind: "hooks-refused";
|
|
235
|
+
readonly message: string;
|
|
236
|
+
} | {
|
|
237
|
+
/** The run's values could not be fetched; `message` is the server's, naming the key, its declarer and the vault. */
|
|
238
|
+
readonly kind: "values-refused";
|
|
239
|
+
readonly message: string;
|
|
240
|
+
} | {
|
|
241
|
+
/** A eval-run try's scaffold failed; `message` is the try stop's sentence (`@stigmer/eval-runtime` `formatTryStop`). */
|
|
242
|
+
readonly kind: "eval-scaffold-failed";
|
|
243
|
+
readonly message: string;
|
|
244
|
+
} | {
|
|
245
|
+
/** The run finished while the turn waited for its workspace; `status` is the run's as the server holds it. */
|
|
246
|
+
readonly kind: "run-finished";
|
|
247
|
+
readonly status: RunStatus;
|
|
248
|
+
};
|
|
249
|
+
/** The values phase's answer: the run's values, or the settlement a refused fetch produces. */
|
|
250
|
+
export type ValuesOutcome = {
|
|
251
|
+
readonly kind: "ready";
|
|
252
|
+
readonly values: RunValues;
|
|
253
|
+
} | {
|
|
254
|
+
readonly kind: "settled";
|
|
255
|
+
readonly settlement: Extract<TurnSettlement, {
|
|
256
|
+
kind: "values-refused";
|
|
257
|
+
}>;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* The lock phase's answer: the release handle (absent when there is no
|
|
261
|
+
* primary tree) and whether another turn held the tree first, or the one
|
|
262
|
+
* settlement a lock can produce.
|
|
263
|
+
*/
|
|
264
|
+
export type WorkspaceLockOutcome = {
|
|
265
|
+
readonly kind: "acquired";
|
|
266
|
+
readonly release: ReleaseWorkspaceLock | undefined;
|
|
267
|
+
readonly waited: boolean;
|
|
268
|
+
} | {
|
|
269
|
+
readonly kind: "settled";
|
|
270
|
+
readonly settlement: Extract<TurnSettlement, {
|
|
271
|
+
kind: "workspace-lock-timeout";
|
|
272
|
+
}>;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Whether the engine already holds state for this execution, so this
|
|
276
|
+
* invocation resumes rather than begins. One function keyed on how the
|
|
277
|
+
* harness mints its state id:
|
|
278
|
+
*
|
|
279
|
+
* - `engine-minted` (Cursor: the agent id): the runtime knows nothing until
|
|
280
|
+
* the adapter binds an id, so a non-empty `threadId` IS the evidence.
|
|
281
|
+
* Correct today because a pure-reconcile turn does not advance `turnSeq`
|
|
282
|
+
* and the legacy positional wire shape yields 0, so `turnSeq` cannot be
|
|
283
|
+
* the signal.
|
|
284
|
+
* - `deterministic` (native: the runtime-minted thread id): the id exists
|
|
285
|
+
* on the FIRST turn too, so the evidence is the session's log: whether it
|
|
286
|
+
* holds an event the runner wrote from this run's engine
|
|
287
|
+
* ({@link runWroteEngineEvents}). Whether the execution already has
|
|
288
|
+
* committed history is the ONE signal that behaves identically across
|
|
289
|
+
* the engine's checkpointer backends: a durable saver (sqlite locally,
|
|
290
|
+
* http in cloud) keeps the checkpoint and resumes from it, while the
|
|
291
|
+
* test-only memory saver recreates it empty and replays from scratch —
|
|
292
|
+
* so the live checkpoint cannot be the signal (native's
|
|
293
|
+
* `shouldSeedFromPersistedTranscript`, retired with its orchestrator).
|
|
294
|
+
* Any event of the run cannot be it either: the server writes the run's
|
|
295
|
+
* `user.message` when it creates the run. A first run's engine has
|
|
296
|
+
* written nothing and starts from empty, as it always did.
|
|
297
|
+
*
|
|
298
|
+
* This is the runtime's own reading, for its phases (the seed, the
|
|
299
|
+
* exact-apply). An adapter that needs create-vs-resume for its ENGINE
|
|
300
|
+
* reads `input.threadId` itself — for an engine-minted harness that is the
|
|
301
|
+
* same bit, for a deterministic one the engine's checkpoint is the adapter's
|
|
302
|
+
* to consult — so the contract carries no flag with two meanings.
|
|
303
|
+
*/
|
|
304
|
+
export declare function isReinvocation(stateIdSource: StateIdSource, input: NormalizedActivityInput, runWroteEvents: boolean): boolean;
|
|
305
|
+
/**
|
|
306
|
+
* The event types the runner writes from the rows its engine produced
|
|
307
|
+
* (`events/emitter.ts` `writeMessage`, `writeToolUse`): a message, a
|
|
308
|
+
* thinking, a tool use, a harness note. The other types a runner may write
|
|
309
|
+
* say nothing about the engine: `stigmer.memory.recalled` is written at the
|
|
310
|
+
* turn's first write whatever the engine did, and
|
|
311
|
+
* `stigmer.file_review.reconciled` at the turn's start, before any engine;
|
|
312
|
+
* the rest follow one of these.
|
|
313
|
+
*/
|
|
314
|
+
export declare const ENGINE_EVENT_TYPES: readonly ["agent.message", "agent.thinking", "agent.tool_use", "agent.mcp_tool_use", "stigmer.harness.note"];
|
|
315
|
+
/**
|
|
316
|
+
* Whether the session's log holds an event an earlier invocation of this
|
|
317
|
+
* run wrote from its engine ({@link ENGINE_EVENT_TYPES}): one read of at
|
|
318
|
+
* most one event. Throws when the log cannot be read, as the turn's other
|
|
319
|
+
* control-plane reads do.
|
|
320
|
+
*/
|
|
321
|
+
export declare function runWroteEngineEvents(client: Pick<StigmerClient, "hasRunSessionEvent">, sessionId: string, runId: string): Promise<boolean>;
|
|
322
|
+
/**
|
|
323
|
+
* The run's events, read from the session's log each time it is called
|
|
324
|
+
* (`TurnInput.readRunEvents`): what an adapter tells the turn's story from.
|
|
325
|
+
*/
|
|
326
|
+
export declare function runEventsReader(client: Pick<StigmerClient, "listRunSessionEvents">, sessionId: string, runId: string): () => Promise<readonly SessionEvent[]>;
|
|
327
|
+
/**
|
|
328
|
+
* Carry the status's own outputs over on a resume (HITL approval,
|
|
329
|
+
* pause/resume, transient recovery): the artifacts and write-backs earlier
|
|
330
|
+
* invocations registered, and the streaming usage so far. They are the run's
|
|
331
|
+
* file outputs and cost, not its transcript, and the server takes each list
|
|
332
|
+
* a write carries as the whole list, so a resumed turn that publishes one
|
|
333
|
+
* artifact sends every earlier one too. The persisted protos are cloned so
|
|
334
|
+
* the input execution stays immutable. Nothing of the transcript is carried:
|
|
335
|
+
* the asks a resumed engine resumes onto come from the session's log
|
|
336
|
+
* (`transcript/resume-seed.ts`), and every other row is the invocation's own.
|
|
337
|
+
*/
|
|
338
|
+
export declare function seedStatusOutputs(status: RunStatus, execution: Run): void;
|
|
339
|
+
/** The log types a reinvocation reads, once: the seed's and the answers'. */
|
|
340
|
+
export declare const REINVOCATION_EVENT_TYPES: readonly string[];
|
|
341
|
+
/** Phase 1: hydrate the execution from the control plane. */
|
|
342
|
+
export declare function fetchExecution(deps: ResolutionDeps): Promise<{
|
|
343
|
+
readonly execution: Run;
|
|
344
|
+
/** `execution.spec`, asserted once here: the control plane never dispatches an execution without one. */
|
|
345
|
+
readonly spec: RunSpec;
|
|
346
|
+
readonly sessionId: string;
|
|
347
|
+
}>;
|
|
348
|
+
/**
|
|
349
|
+
* Phase 2: load the session and resolve the full agent blueprint: the agent
|
|
350
|
+
* and version the execution recorded at create, merged with the session's
|
|
351
|
+
* own tools.
|
|
352
|
+
*/
|
|
353
|
+
export declare function resolveAgentBlueprint(deps: ResolutionDeps, execution: Run, sessionId: string): Promise<{
|
|
354
|
+
readonly session: Session;
|
|
355
|
+
readonly blueprint: ResolvedBlueprint;
|
|
356
|
+
}>;
|
|
357
|
+
/**
|
|
358
|
+
* Phase 2b: the run's values, fetched from their vaults now and grouped by
|
|
359
|
+
* declarer (`shared/run-values.ts`). A fetch refused for a reason the
|
|
360
|
+
* person fixes settles the turn with the server's message.
|
|
361
|
+
*/
|
|
362
|
+
export declare function fetchValues(deps: ResolutionDeps): Promise<ValuesOutcome>;
|
|
363
|
+
/**
|
|
364
|
+
* Phase 2c, first half: provision the workspace (clone
|
|
365
|
+
* git repos / mount local paths) so the LOCAL agent operates on the actual
|
|
366
|
+
* repo, wire the git write-back coordinator, and decide the capture posture.
|
|
367
|
+
*
|
|
368
|
+
* Git provisioning is idempotent across multi-turn and HITL reinvocations.
|
|
369
|
+
* The write-back coordinator pushes the session's tree to the session branch
|
|
370
|
+
* (stigmer/<session-id>) and keeps one PR open; finalize runs at exactly two
|
|
371
|
+
* seams (a reconcile turn, after it put undone files back, and terminal
|
|
372
|
+
* completion), never mid-turn. Non-eligible workspaces (local paths, no
|
|
373
|
+
* credentials) make it a no-op coordinator, here `null`.
|
|
374
|
+
*
|
|
375
|
+
* File review is opt-in (`review`: the session's `file_review`, or a
|
|
376
|
+
* eval-run try). With it on, apply-then-review is the model: a git work
|
|
377
|
+
* tree captures per-file from the git diff at the turn boundary; a NON-git
|
|
378
|
+
* workspace captures every write via the path-scoped CAS substrate, which
|
|
379
|
+
* needs artifact storage to persist blobs, and falls back to the classic
|
|
380
|
+
* deny-gate without it. With it off, file edits flow and nothing is
|
|
381
|
+
* captured. `gitWorkspace` selects the substrate, `captureSubstrate` says
|
|
382
|
+
* whether one exists (the secret-path rule's input), `captureMode` whether
|
|
383
|
+
* capture runs.
|
|
384
|
+
*
|
|
385
|
+
* The change-set id is minted from the workflow-threaded turn index so it is
|
|
386
|
+
* stable across a Temporal retry (idempotent ledger authoring) and unique per
|
|
387
|
+
* turn; a "wasted" id on a turn that captures nothing is harmless.
|
|
388
|
+
*/
|
|
389
|
+
export declare function provisionWorkspace(deps: ResolutionDeps, args: {
|
|
390
|
+
readonly session: Session;
|
|
391
|
+
readonly sessionId: string;
|
|
392
|
+
readonly repositories: readonly RepositoryToken[];
|
|
393
|
+
/** Whether this turn's edits are offered for review ({@link fileReviewOn}). */
|
|
394
|
+
readonly review: boolean;
|
|
395
|
+
}): Promise<{
|
|
396
|
+
readonly workspace: TurnWorkspace;
|
|
397
|
+
readonly writeback: WriteBackCoordinator | null;
|
|
398
|
+
}>;
|
|
399
|
+
/**
|
|
400
|
+
* Whether a turn's file edits are offered for review: the session asked
|
|
401
|
+
* (`SessionSpec.file_review`, off unless set), or the run is an eval
|
|
402
|
+
* run's try, whose file graders read the captured sets whatever the switch says.
|
|
403
|
+
*/
|
|
404
|
+
export declare function fileReviewOn(session: Session, spec: RunSpec): boolean;
|
|
405
|
+
/**
|
|
406
|
+
* Phase 2c, second half: serialize this turn against
|
|
407
|
+
* every other execution sharing the primary working tree. Sessions declaring
|
|
408
|
+
* the same localPath (or the shared runner root) resolve to ONE directory,
|
|
409
|
+
* and an unserialized concurrent write lands inside this turn's
|
|
410
|
+
* baseline→candidate window, misattributing another session's file to this
|
|
411
|
+
* turn's review. Acquired before ANY tree mutation (the owed undos, gate
|
|
412
|
+
* install, agent writes, capture); while another turn holds the lock this
|
|
413
|
+
* surfaces a visible waiting state and heartbeats; a cancel aborts the wait
|
|
414
|
+
* at once.
|
|
415
|
+
*
|
|
416
|
+
* Its own phase so the release handle reaches the caller the instant the
|
|
417
|
+
* lock exists: nothing runs between acquisition and hand-over, so nothing
|
|
418
|
+
* can throw and leave a held lock the caller's `finally` never sees.
|
|
419
|
+
*/
|
|
420
|
+
export declare function acquireWorkspaceTurnLock(deps: ResolutionDeps, primaryDir: string): Promise<WorkspaceLockOutcome>;
|
|
421
|
+
/**
|
|
422
|
+
* Phase 2c, after the lock: a turn that waited for its workspace reads its
|
|
423
|
+
* run again, and ends with the run when it finished meanwhile.
|
|
424
|
+
*
|
|
425
|
+
* The turn holding the workspace can be an earlier invocation of the same
|
|
426
|
+
* run. A pause cancels the running activity, but the cancellation reaches
|
|
427
|
+
* the runner only at its next heartbeat, so the paused invocation can
|
|
428
|
+
* finish its turn, persist the run finished and only then let the resumed
|
|
429
|
+
* one have the tree. The server takes nothing more of a finished run (no
|
|
430
|
+
* status, no event), so an invocation that ran on would spend a model call
|
|
431
|
+
* whose answer the log refuses, and leave the engine's checkpoint holding a
|
|
432
|
+
* reply the session never shows. A turn that did not wait read its run
|
|
433
|
+
* moments ago (phase 1), so only a wait costs the second read.
|
|
434
|
+
*/
|
|
435
|
+
export declare function runFinishedWhileWaiting(deps: ResolutionDeps, waited: boolean): Promise<Extract<TurnSettlement, {
|
|
436
|
+
kind: "run-finished";
|
|
437
|
+
}> | undefined>;
|
|
438
|
+
/** The eval phase's answer: nothing to do, the prepared case, or the settlement a failed scaffold produces. */
|
|
439
|
+
export type EvalCaseOutcome = {
|
|
440
|
+
readonly kind: "ready";
|
|
441
|
+
/** Absent on every run that is not a eval-run try. */
|
|
442
|
+
readonly prepared: {
|
|
443
|
+
readonly case: PreparedEvalCase;
|
|
444
|
+
/** The workspace with its capture substrate re-derived after the scaffold. */
|
|
445
|
+
readonly workspace: TurnWorkspace;
|
|
446
|
+
/** The run's values with the case's `EVAL_*` variables over the agent's. */
|
|
447
|
+
readonly values: RunValues;
|
|
448
|
+
/** The plugin's archive at the eval's version, which the mocks answer from. */
|
|
449
|
+
readonly archive: CaseArchive;
|
|
450
|
+
} | undefined;
|
|
451
|
+
} | {
|
|
452
|
+
readonly kind: "settled";
|
|
453
|
+
readonly settlement: Extract<TurnSettlement, {
|
|
454
|
+
kind: "eval-scaffold-failed";
|
|
455
|
+
}>;
|
|
456
|
+
};
|
|
457
|
+
/**
|
|
458
|
+
* Phase 2d: a eval-run try's own setup (`shared/eval-case/
|
|
459
|
+
* prepare-case.ts`), after the workspace lock because the scaffold mutates
|
|
460
|
+
* the tree. The scaffold may make the workspace a git repository, so the
|
|
461
|
+
* capture substrate is derived again; the capture baseline is pinned after
|
|
462
|
+
* every phase (`run-turn.ts`), so what the scaffold made is baseline, never
|
|
463
|
+
* the try's change. The case's variables join the agent's run values, the
|
|
464
|
+
* one path to the native shell and the plugin's hooks.
|
|
465
|
+
*/
|
|
466
|
+
export declare function prepareEvalCasePhase(deps: ResolutionDeps, args: {
|
|
467
|
+
readonly spec: RunSpec;
|
|
468
|
+
readonly sessionId: string;
|
|
469
|
+
readonly workspace: TurnWorkspace;
|
|
470
|
+
readonly values: RunValues;
|
|
471
|
+
}): Promise<EvalCaseOutcome>;
|
|
472
|
+
/**
|
|
473
|
+
* Phase 4c: a eval-run try's MCP stand-ins (`shared/eval-case/
|
|
474
|
+
* mock-endpoint.ts`). Each replaces the plugin's own server of the same
|
|
475
|
+
* name in the turn's list, so the real one is never started; a stand-in
|
|
476
|
+
* the turn's lists exclude whole is left out like any server (#2106). The
|
|
477
|
+
* endpoint goes on the frame at once, so the turn's `finally` closes it
|
|
478
|
+
* whatever happens next. Loaded only for a try with mocks: the MCP SDK's
|
|
479
|
+
* HTTP server imports `node:http2`, which must stay out of the pre-boot
|
|
480
|
+
* module graph (`src/__tests__/harness-boot-order.test.ts`).
|
|
481
|
+
*/
|
|
482
|
+
export declare function startEvalMocks(deps: ResolutionDeps, args: {
|
|
483
|
+
readonly spec: RunSpec;
|
|
484
|
+
readonly archive: CaseArchive;
|
|
485
|
+
readonly mcp: TurnMcp;
|
|
486
|
+
readonly frame: TurnFrame;
|
|
487
|
+
}): Promise<TurnMcp>;
|
|
488
|
+
/**
|
|
489
|
+
* Phase 3: what the previous invocation left.
|
|
490
|
+
*
|
|
491
|
+
* Whether this invocation resumes is read first ({@link isReinvocation},
|
|
492
|
+
* with the log's {@link runWroteEngineEvents}). On a reinvocation the run's
|
|
493
|
+
* events are read once ({@link REINVOCATION_EVENT_TYPES}) and the asks the
|
|
494
|
+
* engine resumes onto are seeded through the builder (`transcript/resume-seed.ts`),
|
|
495
|
+
* before any harness runs; the status's own outputs are carried over
|
|
496
|
+
* ({@link seedStatusOutputs}). Tool approvals (shell / MCP / a gated write)
|
|
497
|
+
* resolve from the answers the server appended to the session's log, read
|
|
498
|
+
* through the one door, `approval-answers.ts` `approvalAnswersOf`, and the
|
|
499
|
+
* seed then copies each call's answer from the log onto its row
|
|
500
|
+
* (`copyAnswersOntoRows`): every later reader of a row's `approval_action`
|
|
501
|
+
* reads the log's answer.
|
|
502
|
+
*
|
|
503
|
+
* Any answer runs the agent: an
|
|
504
|
+
* allowed call proceeds; a denied one is refused with the reason given, and
|
|
505
|
+
* the run continues without it (the row is settled SKIPPED after the turn,
|
|
506
|
+
* `approval-decisions.ts`). Until #1096 a REJECT failed the turn here with
|
|
507
|
+
* its own FAILED arm, Cursor's legacy; the proto (`APPROVAL_ACTION_REJECT`:
|
|
508
|
+
* "does NOT fail the run"), the conformance suite and the native harness
|
|
509
|
+
* said otherwise since stigmer#197, and the runtime agrees.
|
|
510
|
+
*
|
|
511
|
+
* File review is not here: a turn never waits on it, and the undos a person
|
|
512
|
+
* made after a turn are done at every turn's start, under the lock
|
|
513
|
+
* (`owed-undos.ts`). The step name is the wire's and stays.
|
|
514
|
+
*/
|
|
515
|
+
export declare function reconcileReinvocation(deps: ResolutionDeps, args: {
|
|
516
|
+
readonly stateIdSource: StateIdSource;
|
|
517
|
+
readonly execution: Run;
|
|
518
|
+
readonly sessionId: string;
|
|
519
|
+
}): Promise<TurnReinvocation>;
|
|
520
|
+
/**
|
|
521
|
+
* Phase 2c, third half: the undos still owed to earlier turns, done under
|
|
522
|
+
* the lock before anything else touches the tree (`owed-undos.ts`), on every
|
|
523
|
+
* turn: a message turn, a reinvocation, a reconcile turn.
|
|
524
|
+
*/
|
|
525
|
+
export declare function reconcileOwedUndosPhase(deps: ResolutionDeps, args: {
|
|
526
|
+
readonly sessionId: string;
|
|
527
|
+
readonly workspace: TurnWorkspace;
|
|
528
|
+
readonly reconcileTurn: boolean;
|
|
529
|
+
}): Promise<readonly UndoOutcome[]>;
|
|
530
|
+
/** A reconcile turn's settlement from what its start put back: COMPLETED, its rows naming what was undone or what failed. */
|
|
531
|
+
export declare function reconcileTurnSettlement(outcomes: readonly UndoOutcome[]): Extract<TurnSettlement, {
|
|
532
|
+
kind: "file-review-resolved";
|
|
533
|
+
}>;
|
|
534
|
+
/** The transcript row a turn without the platform's own MCP servers carries (#2062). */
|
|
535
|
+
export declare const PLATFORM_TOOLS_OFF_NOTICE = "The platform's own tools (memory, channel messaging and the conversation tools) are off for this turn: no credential scoped to this run could be had.";
|
|
536
|
+
/**
|
|
537
|
+
* Phases 4 to 4b: the tool surface.
|
|
538
|
+
*
|
|
539
|
+
* The MCP-bound env map (and ONLY it, never the agent process env) carries
|
|
540
|
+
* the reserved caller-identity keys, so a server that declares them in
|
|
541
|
+
* spec.env can template the platform-verified caller into its headers;
|
|
542
|
+
* filterEnvToDeclaredKeys keeps every other server blind. Every server is a
|
|
543
|
+
* plugin's (the turn's plugins, shared/mcp-resolver.ts), named as Claude
|
|
544
|
+
* Code names it. Resolution fills a missing STIGMER_SERVER_ADDRESS per
|
|
545
|
+
* server from `config`'s endpoints (shared/platform-server-address.ts). The
|
|
546
|
+
* resolved list then gains three synthesized attachments, deliberately
|
|
547
|
+
* AFTER resolve: an attachment is the platform's own server, never listed,
|
|
548
|
+
* and its tools never ask:
|
|
549
|
+
*
|
|
550
|
+
* - channel messaging: the discovery read IS the attachment
|
|
551
|
+
* decision, and every failure mode degrades to honest absence;
|
|
552
|
+
* - conversation participation: the
|
|
553
|
+
* channel-id session label IS the decision, a free local read;
|
|
554
|
+
* - memory capture: the recall snapshot's enabled bit IS the
|
|
555
|
+
* decision, server-stamped at execution create.
|
|
556
|
+
*
|
|
557
|
+
* Their credential story: the exchanged scoped runner token authenticates
|
|
558
|
+
* the discovery reads per call and goes into the attachments. The runner's
|
|
559
|
+
* own key never does (#2062): without a scoped token, a credential already
|
|
560
|
+
* scoped below the runner (a cloud sandbox's session token) is used, a
|
|
561
|
+
* runner holding none runs them without one, and otherwise the turn runs
|
|
562
|
+
* without the platform's own servers and says so (\`PLATFORM_TOOLS_OFF_NOTICE\`).
|
|
563
|
+
* The exchange is opportunistic, so a failed one never kills the run,
|
|
564
|
+
* unlike the env read, where secrets are load-bearing.
|
|
565
|
+
*
|
|
566
|
+
* The approval default's MCP half is built last (which tools their servers
|
|
567
|
+
* mark destructive, read live), with two bypasses shared with the native
|
|
568
|
+
* harness (`shared/approval-policy.ts` `ActiveLeases`): the pre-armed
|
|
569
|
+
* spec.auto_approve_all is the one whole-run global bypass; an interactive
|
|
570
|
+
* APPROVE_ALL grants a run-lifetime lease scoped to that action's class,
|
|
571
|
+
* read from the run's `stigmer.permission.grant` events (`grants`, the
|
|
572
|
+
* reinvocation phase's read; none on a fresh turn). An
|
|
573
|
+
* engine that loads the tools itself reads their marks from what it loaded
|
|
574
|
+
* (`capabilities.readsToolMarks`), so the default carries only the leases
|
|
575
|
+
* here and the engine completes it; for any other engine each plugin server
|
|
576
|
+
* is listed now, in parallel (shared/mcp-tool-listing.ts), and a server
|
|
577
|
+
* whose listing fails asks before every one of its tools. The
|
|
578
|
+
* agent's tool scope is resolved here too, from its two lists, so both
|
|
579
|
+
* harnesses enforce one reading of them. The harness projects its SDK config
|
|
580
|
+
* from `servers` after this returns, exactly once, so every mutation is
|
|
581
|
+
* visible by construction.
|
|
582
|
+
*/
|
|
583
|
+
export declare function resolveMcpServersAndPolicies(deps: ResolutionDeps, args: {
|
|
584
|
+
readonly execution: Run;
|
|
585
|
+
readonly session: Session;
|
|
586
|
+
readonly sessionId: string;
|
|
587
|
+
readonly blueprint: ResolvedBlueprint;
|
|
588
|
+
readonly values: RunValues;
|
|
589
|
+
readonly readsToolMarks: boolean;
|
|
590
|
+
/** The run's grants, from the reinvocation phase: the interactive leases. */
|
|
591
|
+
readonly grants: ReadonlyMap<string, LeaseGrant>;
|
|
592
|
+
}): Promise<TurnMcp>;
|
|
593
|
+
/**
|
|
594
|
+
* The servers a turn connects: every one whose tools the scope can reach at
|
|
595
|
+
* all (`ToolScope.allowsMcpFamily`), and the platform's own. A server
|
|
596
|
+
* excluded tool by tool still connects, since its other tools may remain.
|
|
597
|
+
*/
|
|
598
|
+
export declare function callableServers(servers: readonly ResolvedMcpServer[], toolScope: ToolScope, platformServerSlugs: ReadonlySet<string>): readonly ResolvedMcpServer[];
|
|
599
|
+
/**
|
|
600
|
+
* The main agent's tool scope for one turn: the agent's two lists, then the
|
|
601
|
+
* turn's own (`RunSpec.tools`, `RunSpec.disallowed_tools`) as one more layer,
|
|
602
|
+
* so a turn narrows its agent's tools (or the built-in assistant's, which has
|
|
603
|
+
* no lists) and never widens them (`shared/tool-lists.ts`). Unrestricted
|
|
604
|
+
* when neither carries a list.
|
|
605
|
+
*/
|
|
606
|
+
export declare function mainToolScope(blueprint: ResolvedBlueprint, spec: RunSpec | undefined): ToolScope;
|
|
607
|
+
/**
|
|
608
|
+
* Phase 5 (between the tool surface and the attachments): mount the skills
|
|
609
|
+
* under the session's platform dir, reachable from the workspace through its
|
|
610
|
+
* `.stigmer` link, and return what a prompt renders, per owner
|
|
611
|
+
* (`shared/skill-resolver.ts`).
|
|
612
|
+
* Reads the control plane, which is why it is the runtime's and not a
|
|
613
|
+
* harness's; each harness places the returned metadata in its own prompt
|
|
614
|
+
* shapes — the root's in its system prompt, a sub-agent's in that
|
|
615
|
+
* sub-agent's, client-free.
|
|
616
|
+
*
|
|
617
|
+
* Each plugin of the turn is mounted once (shared/plugin-mount.ts, its
|
|
618
|
+
* verified archive), and its skills are rendered from the mounted tree as
|
|
619
|
+
* `<plugin>:<skill>`, never copied: the root gets every plugin's skills,
|
|
620
|
+
* and a plugin's agent (`<plugin>:<agent>`) the ones its `skills:` names. A
|
|
621
|
+
* plugin that cannot be mounted contributes no skills, warned, as a failed
|
|
622
|
+
* skill does.
|
|
623
|
+
*
|
|
624
|
+
* The root's refs are the blueprint's merged set (agent plus session). A
|
|
625
|
+
* ref that fails resolves to nothing, warned and never thrown, as the
|
|
626
|
+
* root's always did. A plugin subagent's skills are mapped only for a
|
|
627
|
+
* harness whose `capabilities.subAgents` is true: the blueprint's plugin
|
|
628
|
+
* subagents are that harness's to compile, so their skills are its to
|
|
629
|
+
* render. A saved subagent's skills are its own context's
|
|
630
|
+
* ({@link resolveSubagents}). One progress label for the whole phase, as
|
|
631
|
+
* before.
|
|
632
|
+
*
|
|
633
|
+
* A scope that denies `Skill` hides skills (`ToolScope.hidesSkills`): the
|
|
634
|
+
* root's when the main scope denies it, a plugin subagent's when its own
|
|
635
|
+
* lists narrowed from the main scope do. A hidden owner's skills are
|
|
636
|
+
* neither fetched nor mounted, so no prompt lists them; the harness's
|
|
637
|
+
* confined read refuses the skill files an earlier turn mounted.
|
|
638
|
+
*
|
|
639
|
+
* The `.stigmer` link this and the attachment phase create is removed in
|
|
640
|
+
* the runtime's finally, after the harness's own teardown. Until #1096 the
|
|
641
|
+
* native orchestrator fetched and mounted sub-agent skills itself
|
|
642
|
+
* (`subagent-transformer.ts` with a client); this phase is where that read
|
|
643
|
+
* lives now.
|
|
644
|
+
*
|
|
645
|
+
* Beside the skills it returns `loaded`: the root's mounted skills by id at
|
|
646
|
+
* their version hash, for the run's record of what it loaded
|
|
647
|
+
* (`loaded-versions.ts`). A plugin's skills are not listed; the plugin's
|
|
648
|
+
* digest names them.
|
|
649
|
+
*/
|
|
650
|
+
export declare function mountSkills(deps: ResolutionDeps, args: {
|
|
651
|
+
readonly blueprint: ResolvedBlueprint;
|
|
652
|
+
readonly sessionId: string;
|
|
653
|
+
readonly primaryDir: string;
|
|
654
|
+
readonly subAgents: boolean;
|
|
655
|
+
/** The main scope ({@link mainToolScope}), which decides whether skills are hidden. */
|
|
656
|
+
readonly toolScope: ToolScope;
|
|
657
|
+
}): Promise<{
|
|
658
|
+
readonly skills: TurnSkills;
|
|
659
|
+
readonly loaded: readonly ApiResourceReference[];
|
|
660
|
+
}>;
|
|
661
|
+
/**
|
|
662
|
+
* Phase 2b: refuse a turn whose agent or any of its subagents has hooks
|
|
663
|
+
* when the harness does not run them, right after the blueprint and before
|
|
664
|
+
* anything else is fetched or provisioned. Run without them, the hooks would be policies that
|
|
665
|
+
* silently vanished; the refusal names them and says what to do. Both built
|
|
666
|
+
* harnesses run hooks, so this refuses nothing today; it stays for the
|
|
667
|
+
* next harness that does not.
|
|
668
|
+
*/
|
|
669
|
+
export declare function refuseUnrunnableHooks(blueprint: ResolvedBlueprint, capabilities: Pick<HarnessCapabilities, "runsHooks">): Extract<TurnSettlement, {
|
|
670
|
+
kind: "hooks-refused";
|
|
671
|
+
}> | undefined;
|
|
672
|
+
/**
|
|
673
|
+
* Phase 5a: resolve the turn's hooks for a harness that runs them.
|
|
674
|
+
*
|
|
675
|
+
* The sources, in order: each of the turn's plugins that records hooks (its
|
|
676
|
+
* agent's plugins, then the conversation's, as the blueprint merged them),
|
|
677
|
+
* mounted from its verified archive (`shared/plugin-mount.ts`), then the
|
|
678
|
+
* agent's own block, taken as written. A chat with the built-in assistant
|
|
679
|
+
* gets its plugins' hooks too. Each source keeps the format it is written
|
|
680
|
+
* in, Claude Code's or Cursor's; both run on every engine that runs hooks.
|
|
681
|
+
* Every server is named to a hook as Claude Code names it: a plugin's as
|
|
682
|
+
* `plugin:<plugin>:<server>`, so a plugin's matchers find its tools, and
|
|
683
|
+
* one the agent writes itself by its own name, with `source: "agent"`.
|
|
684
|
+
*
|
|
685
|
+
* A plugin whose archive cannot be fetched or verified refuses the turn
|
|
686
|
+
* (`hooks-refused`), naming it: a hook that does not run as written is a
|
|
687
|
+
* policy that vanished, so this is deliberately stricter than a skill, whose
|
|
688
|
+
* failed download degrades.
|
|
689
|
+
*/
|
|
690
|
+
export declare function resolveHooks(deps: ResolutionDeps, args: {
|
|
691
|
+
readonly blueprint: ResolvedBlueprint;
|
|
692
|
+
readonly sessionId: string;
|
|
693
|
+
readonly servers: readonly ResolvedMcpServer[];
|
|
694
|
+
}): Promise<{
|
|
695
|
+
readonly kind: "ready";
|
|
696
|
+
readonly hooks: TurnHooks;
|
|
697
|
+
} | {
|
|
698
|
+
readonly kind: "settled";
|
|
699
|
+
readonly settlement: TurnSettlement;
|
|
700
|
+
}>;
|
|
701
|
+
/**
|
|
702
|
+
* Phase 5c: each saved agent the turn's agent lists, as an agent of its
|
|
703
|
+
* own ({@link TurnSubagent}), for a harness whose `capabilities.subAgents`
|
|
704
|
+
* is true. The phases the main agent's context came from, run again over
|
|
705
|
+
* the subagent's own definition, with shared caches: a plugin mounts once
|
|
706
|
+
* by digest (`shared/plugin-mount.ts`), a skill once by version hash, and
|
|
707
|
+
* a server the main agent also has resolves to the same slug, which the
|
|
708
|
+
* engine connects once.
|
|
709
|
+
*
|
|
710
|
+
* - Its servers: the ones it writes itself, then its plugins'
|
|
711
|
+
* (`shared/mcp-resolver.ts`), with the run's tool values and the caller
|
|
712
|
+
* identity the main agent's get. None of the
|
|
713
|
+
* platform's own servers: a subagent reports to the main agent, which
|
|
714
|
+
* alone speaks to the person or the channel.
|
|
715
|
+
* - Its skills: its own refs and its plugins', unless its scope hides them.
|
|
716
|
+
* - Its hooks: its plugins', then its own block; the engine runs the
|
|
717
|
+
* conversation's hooks first on its calls.
|
|
718
|
+
* - Its model ({@link subagentModel}) and its values, by its name.
|
|
719
|
+
*
|
|
720
|
+
* A plugin of a subagent whose hooks cannot be prepared settles the turn
|
|
721
|
+
* naming it, as the main agent's do. A subagent's server that would take
|
|
722
|
+
* the name of a server the main agent or an earlier subagent has, from
|
|
723
|
+
* another plugin or agent, refuses the turn
|
|
724
|
+
* (`DuplicateServerNameError`): the engine connects one server per name,
|
|
725
|
+
* so one would run with the other's values. Run planning refuses two
|
|
726
|
+
* plugins of one name first; this is the backstop for a plugin that
|
|
727
|
+
* appeared or changed since.
|
|
728
|
+
*
|
|
729
|
+
* Ready, it also returns `loadedSkills`: every subagent's own mounted
|
|
730
|
+
* skills by id at their version hash, in subagent order, for the run's
|
|
731
|
+
* record of what it loaded (`loaded-versions.ts`).
|
|
732
|
+
*/
|
|
733
|
+
export declare function resolveSubagents(deps: ResolutionDeps, args: {
|
|
734
|
+
readonly execution: Run;
|
|
735
|
+
readonly session: Session;
|
|
736
|
+
readonly sessionId: string;
|
|
737
|
+
readonly blueprint: ResolvedBlueprint;
|
|
738
|
+
readonly values: RunValues;
|
|
739
|
+
readonly primaryDir: string;
|
|
740
|
+
readonly capabilities: Pick<HarnessCapabilities, "harness" | "subAgents">;
|
|
741
|
+
/** The main agent's resolved servers: a subagent's server of the same name must be the same plugin's. */
|
|
742
|
+
readonly mainServers: readonly ResolvedMcpServer[];
|
|
743
|
+
}): Promise<{
|
|
744
|
+
readonly kind: "ready";
|
|
745
|
+
readonly subagents: readonly TurnSubagent[];
|
|
746
|
+
readonly loadedSkills: readonly ApiResourceReference[];
|
|
747
|
+
} | {
|
|
748
|
+
readonly kind: "settled";
|
|
749
|
+
readonly settlement: TurnSettlement;
|
|
750
|
+
}>;
|
|
751
|
+
/**
|
|
752
|
+
* Phase 5b: resolve the turn's attachments, fail-hard
|
|
753
|
+
* (they are explicit user inputs; see `shared/attachment-resolver.ts`).
|
|
754
|
+
* Downloads by storage key through the same artifact storage resolved for
|
|
755
|
+
* status offload. The vision budget rides along so image attachments are
|
|
756
|
+
* selected for inline delivery while their bytes are already in hand
|
|
757
|
+
* (`shared/attachment-vision.ts` owns all policy); it carries the vision
|
|
758
|
+
* capability of the model the turn will run on: the one the turn's resolved
|
|
759
|
+
* settings name (`status.run_config`, which the control plane resolved once
|
|
760
|
+
* at create), or the registry's default when they name none — the model the native
|
|
761
|
+
* harness builds in that case, so the budget asks about the model that will
|
|
762
|
+
* actually see the image. Full model validation is not needed for this. The
|
|
763
|
+
* Cursor harness with no model named builds its own catalog default instead
|
|
764
|
+
* (`resolveModelId("default")`), so for it this is an approximation: today
|
|
765
|
+
* both answers read as sighted, and the exact per-harness default is not yet
|
|
766
|
+
* declared. The vision profile is the harness's
|
|
767
|
+
* (each engine accepts different image shapes), so it arrives as an
|
|
768
|
+
* argument.
|
|
769
|
+
*/
|
|
770
|
+
export declare function resolveTurnAttachments(deps: ResolutionDeps, args: {
|
|
771
|
+
readonly spec: RunSpec;
|
|
772
|
+
/** The settings the turn runs with (`execution.status.run_config`); never the request's. */
|
|
773
|
+
readonly runConfig: RunConfig | undefined;
|
|
774
|
+
readonly sessionId: string;
|
|
775
|
+
readonly primaryDir: string;
|
|
776
|
+
readonly visionProfile: VisionProfile;
|
|
777
|
+
}): Promise<TurnAttachments>;
|
|
778
|
+
/**
|
|
779
|
+
* Whether a harness performs an approved call by RE-RUNNING the model, so
|
|
780
|
+
* the bytes an approved whole-file write lands can differ from the bytes the
|
|
781
|
+
* user approved unless the runner pins them itself
|
|
782
|
+
* ({@link applyApprovedWrites}). Keyed on the pause primitive
|
|
783
|
+
* (`capabilities.ts`): `deny-and-retry` denies the call and re-prompts the
|
|
784
|
+
* model with grants; `callback` answers "deny, stop" and the resumed session
|
|
785
|
+
* re-attempts the call — both regenerate. An `interrupt` engine checkpoints
|
|
786
|
+
* AT the call and applies its exact args on `approve`, so a runner-side
|
|
787
|
+
* write would land the same bytes twice and pre-empt a row the engine is
|
|
788
|
+
* about to execute; `none` gates nothing. Until #1096 the phase ran for
|
|
789
|
+
* every harness — a deny-and-retry mechanism the native harness would have
|
|
790
|
+
* met on its first deny-gated file approval.
|
|
791
|
+
*/
|
|
792
|
+
export declare function regeneratesApprovedWrites(pausePrimitive: PausePrimitive): boolean;
|
|
793
|
+
/**
|
|
794
|
+
* Phase 5b3: exact-apply approved whole-file writes
|
|
795
|
+
* (HITL "what you approve is what gets applied"). A deny-only harness
|
|
796
|
+
* reinvokes the model, which regenerates content, so a resource grant alone
|
|
797
|
+
* cannot guarantee the bytes that land match the bytes the user approved.
|
|
798
|
+
* The runner therefore writes the EXACT approved whole-file content itself
|
|
799
|
+
* and marks those tool calls COMPLETED; the harness then issues NO grant for
|
|
800
|
+
* them, so any FURTHER change the model makes to those files is re-gated.
|
|
801
|
+
* Hunk edits / shell / MCP stay on the grant + reinvocation path, and every
|
|
802
|
+
* uncertain case degrades to that path, so this can never corrupt a file
|
|
803
|
+
* (see `shared/exact-apply.ts`).
|
|
804
|
+
*
|
|
805
|
+
* Scoped to the harnesses that regenerate ({@link regeneratesApprovedWrites})
|
|
806
|
+
* and OUT of capture mode, where a file edit flows and is never asked for.
|
|
807
|
+
*
|
|
808
|
+
* The caller persists when the returned set is non-empty (the applied state
|
|
809
|
+
* must be durable before the continuation runs, and the UI reflects it at
|
|
810
|
+
* once); this phase, like every phase, never persists.
|
|
811
|
+
*/
|
|
812
|
+
export declare function applyApprovedWrites(deps: ResolutionDeps, args: {
|
|
813
|
+
readonly pausePrimitive: PausePrimitive;
|
|
814
|
+
readonly workspace: TurnWorkspace;
|
|
815
|
+
readonly reinvocation: TurnReinvocation;
|
|
816
|
+
}): Promise<ReadonlySet<string>>;
|
|
817
|
+
/**
|
|
818
|
+
* Phase 6, the harness-agnostic half: the model name the turn runs with, and
|
|
819
|
+
* the effective service tier and thinking mode. All three come from
|
|
820
|
+
* `execution.status.run_config`, the settings the control plane resolved
|
|
821
|
+
* once at create from the message, the agent's defaults and the lane's
|
|
822
|
+
* operator profile; the request's own `spec.run_config` is one input to that
|
|
823
|
+
* resolution and is never read here, so a request can never bypass a cap or
|
|
824
|
+
* a default the resolution applied. UNSPECIFIED → STANDARD (#357) and
|
|
825
|
+
* UNSPECIFIED → DISABLED (#772) resolve here and nowhere else: the resolved
|
|
826
|
+
* settings keep "no layer set it" as UNSPECIFIED. Validating the NAME against
|
|
827
|
+
* a catalog is the harness's (Cursor's `resolveModelId`), so it is not here.
|
|
828
|
+
*/
|
|
829
|
+
export declare function resolveModelPreferences(runConfig: RunConfig | undefined): TurnModelPreferences;
|
|
830
|
+
/** Phase 9b: the structured-output schema this message asks for, if any (a per-message intent on the spec). */
|
|
831
|
+
export declare function structuredOutputSchemaOf(spec: RunSpec): Record<string, unknown> | undefined;
|
|
832
|
+
/**
|
|
833
|
+
* Phase 9c:
|
|
834
|
+
* the standing context, read once, and the memory selection prepared once.
|
|
835
|
+
*
|
|
836
|
+
* Selection runs against the frozen first message's semantics: above the
|
|
837
|
+
* activation threshold it picks top-k for spec.message, otherwise (and on
|
|
838
|
+
* any failure) it injects the full candidate set. The outcome report is
|
|
839
|
+
* stamped on the turn's rows ONCE, written to the log by the next persist
|
|
840
|
+
* as `stigmer.memory.recalled`; a re-invocation replays the report an
|
|
841
|
+
* earlier invocation wrote there (`TurnReinvocation.recalledMemoriesReport`)
|
|
842
|
+
* rather than re-selecting (the written-once rule). Memoized because a
|
|
843
|
+
* resumed-agent primary send carries no memories, but a mid-send
|
|
844
|
+
* poisoned-handle failure rebuilds on a FRESH agent whose recovery prompt
|
|
845
|
+
* does, so every memory-carrying build site awaits this lazily.
|
|
846
|
+
*/
|
|
847
|
+
export declare function resolveStandingContext(deps: ResolutionDeps, args: {
|
|
848
|
+
readonly execution: Run;
|
|
849
|
+
readonly spec: RunSpec;
|
|
850
|
+
readonly blueprint: ResolvedBlueprint;
|
|
851
|
+
readonly priorReport: RecalledMemoriesReport | undefined;
|
|
852
|
+
}): TurnStandingContext;
|
|
853
|
+
/**
|
|
854
|
+
* The resources a turn holds that outlive the phase that produced them and
|
|
855
|
+
* must be released or finalized by the caller's `finally` and terminal
|
|
856
|
+
* writes — set on this frame the instant they exist, so no throw between
|
|
857
|
+
* acquisition and hand-over can leave a held lock the caller never sees.
|
|
858
|
+
* Not part of `TurnInput`: an adapter never releases the lock or finalizes
|
|
859
|
+
* the write-back.
|
|
860
|
+
*/
|
|
861
|
+
export interface TurnFrame {
|
|
862
|
+
/** The primary tree once provisioned: the `.stigmer` link the skill and attachment phases create under it is removed at turn end. */
|
|
863
|
+
primaryDir: string | undefined;
|
|
864
|
+
/** Exclusive turn lock on the primary tree; released LAST, after the adapter's own teardown. */
|
|
865
|
+
releaseWorkspaceLock: ReleaseWorkspaceLock | undefined;
|
|
866
|
+
/** Finalizes at exactly two seams: a reconcile turn and terminal completion. `null` when nothing is eligible. */
|
|
867
|
+
writeback: WriteBackCoordinator | null;
|
|
868
|
+
/** A eval-run try's mock endpoint, bound when the engine's turn starts and closed when the turn ends. */
|
|
869
|
+
evalMocks: MockEndpoint | undefined;
|
|
870
|
+
/** The files a eval-run try's graders read, returned on the run as the turn leaves them (`read-files.ts`); set once its case is prepared. */
|
|
871
|
+
evalReadFiles: readonly string[] | undefined;
|
|
872
|
+
/**
|
|
873
|
+
* The log holds what an earlier invocation of this run's engine did
|
|
874
|
+
* (`TurnReinvocation.runWroteEvents`), set by the reinvocation phase: the
|
|
875
|
+
* session event emitter's `resumed`.
|
|
876
|
+
*/
|
|
877
|
+
runWroteEvents: boolean;
|
|
878
|
+
/**
|
|
879
|
+
* The run's answer as an earlier invocation wrote it
|
|
880
|
+
* (`TurnReinvocation.answerText`), set by the reinvocation phase: what the
|
|
881
|
+
* turn reports when this invocation writes no message.
|
|
882
|
+
*/
|
|
883
|
+
priorAnswer: string | undefined;
|
|
884
|
+
}
|
|
885
|
+
/** What the composer answers: the whole record, or a settlement the caller writes and returns. */
|
|
886
|
+
export type TurnResolution = {
|
|
887
|
+
readonly kind: "ready";
|
|
888
|
+
readonly input: TurnInput;
|
|
889
|
+
} | {
|
|
890
|
+
readonly kind: "settled";
|
|
891
|
+
readonly settlement: TurnSettlement;
|
|
892
|
+
};
|
|
893
|
+
/**
|
|
894
|
+
* Run the phases in order and compose the turn's `TurnInput`, or stop at
|
|
895
|
+
* the first settlement.
|
|
896
|
+
*
|
|
897
|
+
* A reconcile turn (`RunSpec.reconcile_file_review`, no message) takes
|
|
898
|
+
* {@link resolveReconcileTurn} instead, right after the execution is read:
|
|
899
|
+
* it never reaches a phase that prepares an engine.
|
|
900
|
+
*
|
|
901
|
+
* The order is the orchestrator's, with its harness-specific steps gone
|
|
902
|
+
* (they run inside `adapter.runTurn`, after this returns): the tool surface,
|
|
903
|
+
* the skills, the attachments, the exact-apply, then the reads that need no
|
|
904
|
+
* network.
|
|
905
|
+
*
|
|
906
|
+
* The one persist a phase requires — the applied writes must be durable
|
|
907
|
+
* before the continuation runs — goes through the caller's chokepoint
|
|
908
|
+
* (`persist`), so the rule that phases never persist holds here too.
|
|
909
|
+
*/
|
|
910
|
+
export declare function resolveTurnContext(deps: ResolutionDeps, capabilities: HarnessCapabilities, frame: TurnFrame, persist: () => Promise<void>): Promise<TurnResolution>;
|
|
911
|
+
/**
|
|
912
|
+
* A reconcile turn's whole resolution: the run a person's Undo on an ended
|
|
913
|
+
* turn starts, with no message and nothing for an engine to do. Only what
|
|
914
|
+
* putting the files back needs: the session (its workspace entries; no
|
|
915
|
+
* blueprint is resolved), the run's values (the repository tokens the
|
|
916
|
+
* write-back pushes with), the workspace and its lock, then the undos owed
|
|
917
|
+
* (`owed-undos.ts`). No hook, eval case, MCP server, skill, attachment or
|
|
918
|
+
* engine is touched on any harness, and the session event emitter never
|
|
919
|
+
* begins; the outcome is written as `stigmer.file_review.reconciled` and the
|
|
920
|
+
* turn settles `file-review-resolved`, whose settle finalizes the write-back
|
|
921
|
+
* and completes with stop cause `review_resolved`.
|
|
922
|
+
*/
|
|
923
|
+
export declare function resolveReconcileTurn(deps: ResolutionDeps, frame: TurnFrame, sessionId: string): Promise<TurnResolution>;
|