@stigmer/runner 3.15.1 → 3.15.2-dev.20260913223433
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/README.md +2 -4
- package/dist/.build-fingerprint +1 -1
- package/dist/__test-utils__/execution-record-fixture.d.ts +14 -0
- package/dist/__test-utils__/execution-record-fixture.js +4 -0
- package/dist/__test-utils__/execution-record-fixture.js.map +1 -1
- package/dist/__test-utils__/file-review-projection.d.ts +40 -0
- package/dist/__test-utils__/file-review-projection.js +136 -0
- package/dist/__test-utils__/file-review-projection.js.map +1 -0
- package/dist/__test-utils__/harness-contract/types.d.ts +23 -1
- package/dist/__test-utils__/harness-contract/types.js +15 -0
- package/dist/__test-utils__/harness-contract/types.js.map +1 -1
- package/dist/__test-utils__/hermetic-activity.d.ts +44 -12
- package/dist/__test-utils__/hermetic-activity.js +52 -14
- package/dist/__test-utils__/hermetic-activity.js.map +1 -1
- package/dist/__test-utils__/model-registry-fixture.d.ts +32 -7
- package/dist/__test-utils__/model-registry-fixture.js +31 -7
- package/dist/__test-utils__/model-registry-fixture.js.map +1 -1
- package/dist/__test-utils__/turn-input-fixture.d.ts +1 -1
- package/dist/__test-utils__/turn-input-fixture.js +1 -1
- package/dist/__test-utils__/turn-input-fixture.js.map +1 -1
- package/dist/activities/call-agent.js +2 -2
- package/dist/activities/call-agent.js.map +1 -1
- package/dist/activities/execute-cursor/__test-utils__/contract-subject.js +45 -3
- package/dist/activities/execute-cursor/__test-utils__/contract-subject.js.map +1 -1
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.d.ts +0 -9
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +2 -41
- package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -1
- package/dist/activities/execute-cursor/adapter.d.ts +7 -5
- package/dist/activities/execute-cursor/adapter.js +7 -5
- package/dist/activities/execute-cursor/adapter.js.map +1 -1
- package/dist/activities/execute-cursor/approval-policy.d.ts +5 -2
- package/dist/activities/execute-cursor/approval-policy.js +5 -2
- package/dist/activities/execute-cursor/approval-policy.js.map +1 -1
- package/dist/activities/execute-cursor/approval-state.d.ts +16 -8
- package/dist/activities/execute-cursor/approval-state.js +6 -3
- package/dist/activities/execute-cursor/approval-state.js.map +1 -1
- package/dist/activities/execute-cursor/cas-observations.d.ts +14 -2
- package/dist/activities/execute-cursor/cas-observations.js +19 -2
- package/dist/activities/execute-cursor/cas-observations.js.map +1 -1
- package/dist/activities/execute-cursor/cursor-capabilities.d.ts +8 -4
- package/dist/activities/execute-cursor/cursor-capabilities.js +21 -4
- package/dist/activities/execute-cursor/cursor-capabilities.js.map +1 -1
- package/dist/activities/execute-cursor/message-translator.d.ts +12 -20
- package/dist/activities/execute-cursor/message-translator.js +19 -32
- package/dist/activities/execute-cursor/message-translator.js.map +1 -1
- package/dist/activities/execute-cursor/prompt-builder.d.ts +48 -58
- package/dist/activities/execute-cursor/prompt-builder.js +76 -95
- package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
- package/dist/activities/execute-cursor/turn-boundary.d.ts +27 -55
- package/dist/activities/execute-cursor/turn-boundary.js +30 -90
- package/dist/activities/execute-cursor/turn-boundary.js.map +1 -1
- package/dist/activities/execute-cursor/turn-settle.d.ts +11 -7
- package/dist/activities/execute-cursor/turn-settle.js +37 -49
- package/dist/activities/execute-cursor/turn-settle.js.map +1 -1
- package/dist/activities/execute-cursor/turn-setup.d.ts +16 -24
- package/dist/activities/execute-cursor/turn-setup.js +29 -59
- package/dist/activities/execute-cursor/turn-setup.js.map +1 -1
- package/dist/activities/execute-cursor/turn-stream.d.ts +3 -8
- package/dist/activities/execute-cursor/turn-stream.js +9 -22
- package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
- package/dist/activities/execute-cursor/turn.js +5 -1
- package/dist/activities/execute-cursor/turn.js.map +1 -1
- package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.d.ts +93 -0
- package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js +348 -0
- package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +170 -0
- package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +225 -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__/scripted-model-module.d.ts +54 -0
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js +72 -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 +187 -23
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js +238 -27
- package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js.map +1 -1
- package/dist/activities/execute-deep-agent/adapter.d.ts +41 -0
- package/dist/activities/execute-deep-agent/adapter.js +78 -0
- package/dist/activities/execute-deep-agent/adapter.js.map +1 -0
- package/dist/activities/execute-deep-agent/cas-capture-observer.d.ts +8 -0
- package/dist/activities/execute-deep-agent/cas-capture-observer.js +9 -0
- package/dist/activities/execute-deep-agent/cas-capture-observer.js.map +1 -1
- package/dist/activities/execute-deep-agent/deep-agent-capabilities.d.ts +31 -0
- package/dist/activities/execute-deep-agent/deep-agent-capabilities.js +40 -0
- package/dist/activities/execute-deep-agent/deep-agent-capabilities.js.map +1 -0
- package/dist/activities/execute-deep-agent/execution-state.d.ts +4 -11
- package/dist/activities/execute-deep-agent/execution-state.js +4 -12
- package/dist/activities/execute-deep-agent/execution-state.js.map +1 -1
- package/dist/activities/execute-deep-agent/hitl.d.ts +49 -47
- package/dist/activities/execute-deep-agent/hitl.js +77 -103
- package/dist/activities/execute-deep-agent/hitl.js.map +1 -1
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +51 -23
- package/dist/activities/execute-deep-agent/prompt-builder.js +115 -76
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
- package/dist/activities/execute-deep-agent/status-builder-shared.d.ts +18 -32
- package/dist/activities/execute-deep-agent/status-builder-shared.js +10 -65
- package/dist/activities/execute-deep-agent/status-builder-shared.js.map +1 -1
- package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +10 -8
- package/dist/activities/execute-deep-agent/streaming-side-effects.js +12 -14
- package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-tracker.d.ts +36 -13
- package/dist/activities/execute-deep-agent/subagent-tracker.js +76 -39
- package/dist/activities/execute-deep-agent/subagent-tracker.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +25 -28
- package/dist/activities/execute-deep-agent/subagent-transformer.js +29 -82
- package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -1
- package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +3 -2
- package/dist/activities/execute-deep-agent/subagent-wiring.js +2 -2
- package/dist/activities/execute-deep-agent/subagent-wiring.js.map +1 -1
- package/dist/activities/execute-deep-agent/turn-settle.d.ts +42 -0
- package/dist/activities/execute-deep-agent/turn-settle.js +146 -0
- package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -0
- package/dist/activities/execute-deep-agent/turn-setup.d.ts +212 -0
- package/dist/activities/execute-deep-agent/turn-setup.js +430 -0
- package/dist/activities/execute-deep-agent/turn-setup.js.map +1 -0
- package/dist/activities/execute-deep-agent/turn-stream.d.ts +97 -0
- package/dist/activities/execute-deep-agent/turn-stream.js +242 -0
- package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -0
- package/dist/activities/execute-deep-agent/turn.d.ts +42 -0
- package/dist/activities/execute-deep-agent/turn.js +116 -0
- package/dist/activities/execute-deep-agent/turn.js.map +1 -0
- package/dist/activities/execute-deep-agent/v3-event-recorder.d.ts +6 -5
- package/dist/activities/execute-deep-agent/v3-event-recorder.js +6 -5
- package/dist/activities/execute-deep-agent/v3-event-recorder.js.map +1 -1
- package/dist/activities/execute-deep-agent/v3-events.d.ts +1 -1
- package/dist/activities/execute-deep-agent/v3-events.js +1 -1
- package/dist/activities/execute-deep-agent/v3-status-builder.d.ts +60 -17
- package/dist/activities/execute-deep-agent/v3-status-builder.js +72 -57
- package/dist/activities/execute-deep-agent/v3-status-builder.js.map +1 -1
- package/dist/harness/approval-decisions.d.ts +61 -0
- package/dist/harness/approval-decisions.js +102 -0
- package/dist/harness/approval-decisions.js.map +1 -0
- package/dist/harness/capabilities.d.ts +16 -5
- package/dist/harness/capabilities.js +9 -0
- package/dist/harness/capabilities.js.map +1 -1
- package/dist/harness/capture.d.ts +144 -0
- package/dist/harness/capture.js +219 -0
- package/dist/harness/capture.js.map +1 -0
- package/dist/harness/persist-chokepoint.d.ts +19 -4
- package/dist/harness/persist-chokepoint.js +17 -4
- package/dist/harness/persist-chokepoint.js.map +1 -1
- package/dist/harness/run-turn.js +115 -29
- package/dist/harness/run-turn.js.map +1 -1
- package/dist/harness/terminal-table.d.ts +40 -11
- package/dist/harness/terminal-table.js +58 -19
- package/dist/harness/terminal-table.js.map +1 -1
- package/dist/harness/turn-context.d.ts +141 -76
- package/dist/harness/turn-context.js +194 -99
- package/dist/harness/turn-context.js.map +1 -1
- package/dist/harness/types.d.ts +65 -12
- package/dist/harness/types.js +8 -2
- package/dist/harness/types.js.map +1 -1
- package/dist/harness-adapters.d.ts +12 -8
- package/dist/harness-adapters.js +17 -9
- package/dist/harness-adapters.js.map +1 -1
- package/dist/middleware/approval-gate.d.ts +1 -1
- package/dist/middleware/approval-gate.js +1 -1
- package/dist/middleware/approval-gate.js.map +1 -1
- package/dist/middleware/cost-advisory.d.ts +39 -0
- package/dist/middleware/{cost-cap.js → cost-advisory.js} +37 -55
- package/dist/middleware/cost-advisory.js.map +1 -0
- package/dist/middleware/index.d.ts +23 -12
- package/dist/middleware/index.js +26 -18
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/types.d.ts +3 -2
- package/dist/runner-manager.js +1 -5
- package/dist/runner-manager.js.map +1 -1
- package/dist/runner.js +1 -5
- package/dist/runner.js.map +1 -1
- package/dist/shared/attachment-resolver.d.ts +41 -18
- package/dist/shared/attachment-resolver.js +178 -46
- package/dist/shared/attachment-resolver.js.map +1 -1
- 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/connect-backfill.js +5 -4
- package/dist/shared/connect-backfill.js.map +1 -1
- package/dist/shared/cost-guard.d.ts +3 -3
- package/dist/shared/cost-guard.js +3 -3
- package/dist/shared/execution-status-writer.d.ts +5 -5
- package/dist/shared/execution-status-writer.js +5 -5
- package/dist/shared/extract-structured-output.d.ts +8 -7
- package/dist/shared/extract-structured-output.js +8 -7
- package/dist/shared/extract-structured-output.js.map +1 -1
- package/dist/shared/filereview/cas-progress.d.ts +1 -18
- package/dist/shared/filereview/cas-progress.js +4 -0
- package/dist/shared/filereview/cas-progress.js.map +1 -1
- 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/index.d.ts +2 -1
- package/dist/shared/filereview/index.js +2 -1
- package/dist/shared/filereview/index.js.map +1 -1
- package/dist/shared/mcp-resolver.d.ts +4 -5
- package/dist/shared/mcp-resolver.js +4 -5
- package/dist/shared/mcp-resolver.js.map +1 -1
- package/dist/shared/persist-decision.d.ts +3 -4
- package/dist/shared/persist-decision.js +3 -4
- package/dist/shared/persist-decision.js.map +1 -1
- package/dist/shared/plan-mode-permissions.d.ts +2 -2
- package/dist/shared/plan-mode-permissions.js +2 -2
- package/dist/shared/plan-mode-prompt.d.ts +1 -1
- package/dist/shared/plan-mode-prompt.js +1 -1
- package/dist/shared/prompt-sections.d.ts +163 -0
- package/dist/shared/prompt-sections.js +164 -0
- package/dist/shared/prompt-sections.js.map +1 -0
- package/dist/shared/skill-resolver.d.ts +4 -2
- package/dist/shared/skill-resolver.js +4 -2
- package/dist/shared/skill-resolver.js.map +1 -1
- package/dist/shared/tool-rounds.d.ts +32 -0
- package/dist/shared/tool-rounds.js +43 -0
- package/dist/shared/tool-rounds.js.map +1 -1
- package/dist/shared/tool-row.d.ts +34 -0
- package/dist/shared/tool-row.js +52 -0
- package/dist/shared/tool-row.js.map +1 -1
- package/dist/shared/workspace/session-provision.d.ts +3 -3
- package/dist/shared/workspace/session-provision.js +3 -3
- package/dist/shared/workspace/stigmer-link.d.ts +3 -3
- package/dist/shared/workspace/stigmer-link.js +3 -3
- package/dist/shared/workspace/writeback-coordinator.d.ts +15 -22
- package/dist/shared/workspace/writeback-coordinator.js +16 -53
- package/dist/shared/workspace/writeback-coordinator.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.js +1 -1
- package/package.json +4 -4
- package/src/__test-utils__/__tests__/harness-contract-self-check.test.ts +1 -0
- package/src/__test-utils__/execution-record-fixture.ts +18 -2
- package/src/__test-utils__/file-review-projection.ts +156 -0
- package/src/__test-utils__/git-workspace-fixture.ts +58 -0
- package/src/__test-utils__/harness-boot-order-child.ts +7 -2
- package/src/__test-utils__/harness-contract/contract.ts +33 -20
- package/src/__test-utils__/harness-contract/recording-sink.ts +11 -1
- package/src/__test-utils__/harness-contract/runtime-contract.ts +328 -10
- package/src/__test-utils__/harness-contract/scripted-adapter.ts +38 -6
- package/src/__test-utils__/harness-contract/types.ts +27 -3
- package/src/__test-utils__/hermetic-activity.ts +52 -14
- package/src/__test-utils__/model-registry-fixture.ts +32 -7
- package/src/__test-utils__/module-specifiers.ts +24 -0
- package/src/__test-utils__/turn-input-fixture.ts +2 -2
- package/src/__tests__/harness-boot-order.test.ts +9 -2
- package/src/activities/call-agent.ts +2 -2
- package/src/activities/execute-cursor/__test-utils__/contract-subject.ts +47 -3
- package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +2 -48
- package/src/activities/execute-cursor/__tests__/approval-decisions-agree.test.ts +1 -1
- package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +6 -1
- package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +52 -27
- package/src/activities/execute-cursor/__tests__/cas-observations.test.ts +25 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.everything.prompt.md +166 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.plan-mode.prompt.md +186 -0
- package/src/activities/execute-cursor/__tests__/goldens/prompt.hitl.recovery.prompt.md +191 -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.prompt.md +1 -0
- package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +1 -2
- package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.status.json +4 -0
- package/src/activities/execute-cursor/__tests__/hermetic/harness-contract.test.ts +24 -4
- package/src/activities/execute-cursor/__tests__/hermetic/stream-self-stop-arms.test.ts +6 -5
- package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +9 -0
- package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +11 -8
- package/src/activities/execute-cursor/__tests__/prompt-goldens.test.ts +229 -0
- package/src/activities/execute-cursor/__tests__/same-identity-reproposal.test.ts +3 -3
- package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +2 -2
- package/src/activities/execute-cursor/__tests__/turn-boundary.test.ts +78 -234
- package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +1 -26
- package/src/activities/execute-cursor/adapter.ts +7 -5
- package/src/activities/execute-cursor/approval-policy.ts +5 -2
- package/src/activities/execute-cursor/approval-state.ts +16 -8
- package/src/activities/execute-cursor/cas-observations.ts +20 -2
- package/src/activities/execute-cursor/cursor-capabilities.ts +24 -5
- package/src/activities/execute-cursor/message-translator.ts +29 -41
- package/src/activities/execute-cursor/prompt-builder.ts +99 -157
- package/src/activities/execute-cursor/turn-boundary.ts +34 -140
- package/src/activities/execute-cursor/turn-settle.ts +37 -51
- package/src/activities/execute-cursor/turn-setup.ts +30 -70
- package/src/activities/execute-cursor/turn-stream.ts +8 -31
- package/src/activities/execute-cursor/turn.ts +5 -1
- package/src/activities/execute-deep-agent/__test-utils__/contract-subject.ts +391 -0
- package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +313 -0
- package/src/activities/execute-deep-agent/__test-utils__/hitl-script.ts +48 -0
- package/src/activities/execute-deep-agent/__test-utils__/scripted-model-module.ts +85 -0
- package/src/activities/execute-deep-agent/__test-utils__/scripted-model.ts +383 -36
- 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 +80 -0
- package/src/activities/execute-deep-agent/__tests__/cas-capture-backend.test.ts +1 -1
- package/src/activities/execute-deep-agent/__tests__/execution-state-extended.test.ts +0 -2
- package/src/activities/execute-deep-agent/__tests__/execution-state.test.ts +0 -3
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.build-from-plan.prompt.md +172 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.everything.prompt.md +167 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.minimal.prompt.md +36 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.plan-mode.prompt.md +178 -0
- package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.skills-below-threshold.prompt.md +158 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +210 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.status.json +74 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.status.json +104 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.status.json +78 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +138 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.status.json +68 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +154 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +116 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.status.json +69 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.status.json +67 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/plain-turn.status.json +47 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.status.json +68 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.status.json +280 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.status.json +77 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/resolution-error.status.json +18 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.status.json +99 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.status.json +109 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.status.json +76 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.text-fallback.status.json +51 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tier2.status.json +51 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tool-strategy.status.json +56 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.status.json +90 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.status.json +70 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.status.json +71 -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 +184 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-round-trips.test.ts +203 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-sequential-gates.test.ts +170 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +175 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/pause-vs-shutdown.test.ts +206 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/plain-turn.test.ts +142 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/platform-stop.test.ts +126 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +139 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/resolution-error.test.ts +122 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/structured-output.test.ts +236 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-delegation.test.ts +161 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/tool-call.test.ts +157 -0
- package/src/activities/execute-deep-agent/__tests__/hermetic/workspace-lock-timeout.test.ts +152 -0
- package/src/activities/execute-deep-agent/__tests__/hitl.test.ts +50 -122
- package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +8 -6
- package/src/activities/execute-deep-agent/__tests__/plan-mode-path-normalization.test.ts +2 -2
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +35 -35
- package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +247 -0
- package/src/activities/execute-deep-agent/__tests__/scripted-model.test.ts +329 -0
- package/src/activities/execute-deep-agent/__tests__/status-builder-shared.test.ts +1 -20
- package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +78 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-gitignored-capture.test.ts +1 -1
- package/src/activities/execute-deep-agent/__tests__/subagent-plan-mode-permissions.test.ts +2 -2
- package/src/activities/execute-deep-agent/__tests__/subagent-tracker.test.ts +57 -31
- package/src/activities/execute-deep-agent/__tests__/subagent-transformer.test.ts +19 -79
- package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +15 -15
- package/src/activities/execute-deep-agent/__tests__/summarization-verification.test.ts +1 -1
- package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +391 -0
- package/src/activities/execute-deep-agent/__tests__/v3-status-builder.test.ts +343 -38
- package/src/activities/execute-deep-agent/__tests__/vision-input.test.ts +5 -5
- package/src/activities/execute-deep-agent/adapter.ts +94 -0
- package/src/activities/execute-deep-agent/cas-capture-observer.ts +11 -0
- package/src/activities/execute-deep-agent/deep-agent-capabilities.ts +43 -0
- package/src/activities/execute-deep-agent/execution-state.ts +4 -13
- package/src/activities/execute-deep-agent/hitl.ts +100 -123
- package/src/activities/execute-deep-agent/prompt-builder.ts +141 -115
- package/src/activities/execute-deep-agent/status-builder-shared.ts +21 -84
- package/src/activities/execute-deep-agent/streaming-side-effects.ts +13 -19
- package/src/activities/execute-deep-agent/subagent-tracker.ts +77 -42
- package/src/activities/execute-deep-agent/subagent-transformer.ts +46 -105
- package/src/activities/execute-deep-agent/subagent-wiring.ts +5 -4
- package/src/activities/execute-deep-agent/turn-settle.ts +164 -0
- package/src/activities/execute-deep-agent/turn-setup.ts +541 -0
- package/src/activities/execute-deep-agent/turn-stream.ts +313 -0
- package/src/activities/execute-deep-agent/turn.ts +131 -0
- package/src/activities/execute-deep-agent/v3-event-recorder.ts +6 -5
- package/src/activities/execute-deep-agent/v3-events.ts +1 -1
- package/src/activities/execute-deep-agent/v3-status-builder.ts +84 -63
- package/src/harness/__tests__/approval-decisions.test.ts +116 -0
- package/src/harness/__tests__/capture.test.ts +268 -0
- package/src/harness/__tests__/mount-skills.test.ts +169 -0
- package/src/harness/__tests__/persist-chokepoint.test.ts +38 -2
- package/src/harness/__tests__/run-turn-deterministic.test.ts +94 -0
- package/src/harness/__tests__/run-turn.test.ts +39 -23
- package/src/harness/__tests__/turn-attachments-vision.test.ts +80 -0
- package/src/harness/__tests__/turn-context.test.ts +73 -26
- package/src/harness/approval-decisions.ts +104 -0
- package/src/harness/capabilities.ts +16 -5
- package/src/harness/capture.ts +301 -0
- package/src/harness/persist-chokepoint.ts +24 -4
- package/src/harness/run-turn.ts +120 -29
- package/src/harness/terminal-table.ts +61 -20
- package/src/harness/turn-context.ts +208 -111
- package/src/harness/types.ts +66 -12
- package/src/harness-adapters.ts +17 -9
- package/src/middleware/__tests__/approval-gate.test.ts +1 -1
- package/src/middleware/__tests__/cost-advisory.test.ts +113 -0
- package/src/middleware/approval-gate.ts +2 -2
- package/src/middleware/{cost-cap.ts → cost-advisory.ts} +40 -70
- package/src/middleware/index.ts +29 -29
- package/src/middleware/types.ts +3 -2
- package/src/runner-manager.ts +0 -8
- package/src/runner.ts +0 -8
- package/src/shared/__tests__/attachment-naming.test.ts +6 -19
- package/src/shared/__tests__/attachment-resolver.test.ts +158 -8
- package/src/shared/__tests__/attachment-zip.test.ts +236 -0
- package/src/shared/__tests__/bedrock-adapter.test.ts +1 -1
- package/src/shared/__tests__/blueprint-resolver.test.ts +43 -0
- package/src/shared/__tests__/cost-guard.test.ts +3 -3
- package/src/shared/__tests__/prompt-sections.test.ts +167 -0
- package/src/shared/__tests__/secret-leak-scan.test.ts +2 -2
- package/src/{activities/execute-deep-agent → shared}/__tests__/stamp-flowed-rows.test.ts +33 -10
- package/src/shared/__tests__/vertex-adapter.test.ts +1 -1
- package/src/shared/attachment-resolver.ts +218 -55
- package/src/shared/attachment-zip.ts +281 -0
- package/src/shared/connect-backfill.ts +9 -11
- package/src/shared/cost-guard.ts +3 -3
- package/src/shared/execution-status-writer.ts +5 -5
- package/src/shared/extract-structured-output.ts +8 -7
- package/src/shared/filereview/__tests__/capture.test.ts +86 -4
- package/src/shared/filereview/__tests__/cas-progress.test.ts +2 -1
- package/src/shared/filereview/cas-progress.ts +5 -19
- package/src/shared/filereview/cas-touched.ts +89 -0
- package/src/shared/filereview/index.ts +4 -2
- package/src/shared/mcp-resolver.ts +4 -5
- package/src/shared/persist-decision.ts +3 -4
- package/src/shared/plan-mode-permissions.ts +2 -2
- package/src/shared/plan-mode-prompt.ts +1 -1
- package/src/shared/prompt-sections.ts +256 -0
- package/src/shared/skill-resolver.ts +4 -2
- package/src/shared/tool-rounds.ts +48 -0
- package/src/shared/tool-row.ts +61 -0
- package/src/shared/workspace/__tests__/stigmer-link.test.ts +7 -22
- package/src/shared/workspace/__tests__/writeback-coordinator.test.ts +20 -61
- package/src/shared/workspace/session-provision.ts +3 -3
- package/src/shared/workspace/stigmer-link.ts +3 -3
- package/src/shared/workspace/writeback-coordinator.ts +16 -64
- package/src/tools/index.ts +1 -1
- package/dist/activities/execute-cursor/capture-flow.d.ts +0 -142
- package/dist/activities/execute-cursor/capture-flow.js +0 -285
- package/dist/activities/execute-cursor/capture-flow.js.map +0 -1
- package/dist/activities/execute-cursor/command-provenance.d.ts +0 -48
- package/dist/activities/execute-cursor/command-provenance.js +0 -38
- package/dist/activities/execute-cursor/command-provenance.js.map +0 -1
- package/dist/activities/execute-deep-agent/attachment-injector.d.ts +0 -134
- package/dist/activities/execute-deep-agent/attachment-injector.js +0 -386
- package/dist/activities/execute-deep-agent/attachment-injector.js.map +0 -1
- package/dist/activities/execute-deep-agent/command-provenance.d.ts +0 -61
- package/dist/activities/execute-deep-agent/command-provenance.js +0 -72
- package/dist/activities/execute-deep-agent/command-provenance.js.map +0 -1
- package/dist/activities/execute-deep-agent/environment.d.ts +0 -24
- package/dist/activities/execute-deep-agent/environment.js +0 -58
- package/dist/activities/execute-deep-agent/environment.js.map +0 -1
- package/dist/activities/execute-deep-agent/event-recorder.d.ts +0 -21
- package/dist/activities/execute-deep-agent/event-recorder.js +0 -67
- package/dist/activities/execute-deep-agent/event-recorder.js.map +0 -1
- package/dist/activities/execute-deep-agent/index.d.ts +0 -15
- package/dist/activities/execute-deep-agent/index.js +0 -918
- package/dist/activities/execute-deep-agent/index.js.map +0 -1
- package/dist/activities/execute-deep-agent/mcp-gate.d.ts +0 -28
- package/dist/activities/execute-deep-agent/mcp-gate.js +0 -22
- package/dist/activities/execute-deep-agent/mcp-gate.js.map +0 -1
- package/dist/activities/execute-deep-agent/post-stream.d.ts +0 -23
- package/dist/activities/execute-deep-agent/post-stream.js +0 -71
- package/dist/activities/execute-deep-agent/post-stream.js.map +0 -1
- package/dist/activities/execute-deep-agent/setup.d.ts +0 -136
- package/dist/activities/execute-deep-agent/setup.js +0 -767
- package/dist/activities/execute-deep-agent/setup.js.map +0 -1
- package/dist/activities/execute-deep-agent/stamp-flowed-rows.d.ts +0 -36
- package/dist/activities/execute-deep-agent/stamp-flowed-rows.js +0 -56
- package/dist/activities/execute-deep-agent/stamp-flowed-rows.js.map +0 -1
- package/dist/activities/execute-deep-agent/status-builder.d.ts +0 -93
- package/dist/activities/execute-deep-agent/status-builder.js +0 -365
- package/dist/activities/execute-deep-agent/status-builder.js.map +0 -1
- package/dist/activities/execute-deep-agent/streaming-terminal.d.ts +0 -21
- package/dist/activities/execute-deep-agent/streaming-terminal.js +0 -80
- package/dist/activities/execute-deep-agent/streaming-terminal.js.map +0 -1
- package/dist/activities/execute-deep-agent/streaming-v3.d.ts +0 -13
- package/dist/activities/execute-deep-agent/streaming-v3.js +0 -174
- package/dist/activities/execute-deep-agent/streaming-v3.js.map +0 -1
- package/dist/activities/execute-deep-agent/streaming.d.ts +0 -81
- package/dist/activities/execute-deep-agent/streaming.js +0 -160
- package/dist/activities/execute-deep-agent/streaming.js.map +0 -1
- package/dist/middleware/cost-cap.d.ts +0 -22
- package/dist/middleware/cost-cap.js.map +0 -1
- package/dist/middleware/graceful-stop.d.ts +0 -17
- package/dist/middleware/graceful-stop.js +0 -63
- package/dist/middleware/graceful-stop.js.map +0 -1
- package/dist/shared/skill-writer.d.ts +0 -75
- package/dist/shared/skill-writer.js +0 -207
- package/dist/shared/skill-writer.js.map +0 -1
- package/src/activities/execute-cursor/__tests__/capture-flow.test.ts +0 -1032
- package/src/activities/execute-cursor/__tests__/command-provenance.test.ts +0 -240
- package/src/activities/execute-cursor/__tests__/progress-substrate.test.ts +0 -169
- package/src/activities/execute-cursor/capture-flow.ts +0 -379
- package/src/activities/execute-cursor/command-provenance.ts +0 -73
- package/src/activities/execute-deep-agent/__tests__/attachment-injector.test.ts +0 -1161
- package/src/activities/execute-deep-agent/__tests__/command-provenance.test.ts +0 -252
- package/src/activities/execute-deep-agent/__tests__/environment.test.ts +0 -108
- package/src/activities/execute-deep-agent/__tests__/event-recorder.test.ts +0 -150
- package/src/activities/execute-deep-agent/__tests__/hitl-integration.test.ts +0 -226
- package/src/activities/execute-deep-agent/__tests__/hitl-reject.test.ts +0 -318
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-approve-all.test.ts +0 -351
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-history.test.ts +0 -293
- package/src/activities/execute-deep-agent/__tests__/index.test.ts +0 -99
- package/src/activities/execute-deep-agent/__tests__/mcp-gate.test.ts +0 -44
- package/src/activities/execute-deep-agent/__tests__/post-stream.test.ts +0 -112
- package/src/activities/execute-deep-agent/__tests__/sequential-gate-resume.test.ts +0 -358
- package/src/activities/execute-deep-agent/__tests__/status-builder.test.ts +0 -1933
- package/src/activities/execute-deep-agent/__tests__/streaming-terminal.test.ts +0 -40
- package/src/activities/execute-deep-agent/__tests__/streaming-v3.test.ts +0 -597
- package/src/activities/execute-deep-agent/__tests__/streaming.test.ts +0 -508
- package/src/activities/execute-deep-agent/attachment-injector.ts +0 -627
- package/src/activities/execute-deep-agent/command-provenance.ts +0 -102
- package/src/activities/execute-deep-agent/environment.ts +0 -76
- package/src/activities/execute-deep-agent/event-recorder.ts +0 -95
- package/src/activities/execute-deep-agent/index.ts +0 -1072
- package/src/activities/execute-deep-agent/mcp-gate.ts +0 -37
- package/src/activities/execute-deep-agent/post-stream.ts +0 -109
- package/src/activities/execute-deep-agent/setup.ts +0 -1081
- package/src/activities/execute-deep-agent/stamp-flowed-rows.ts +0 -64
- package/src/activities/execute-deep-agent/status-builder.ts +0 -481
- package/src/activities/execute-deep-agent/streaming-terminal.ts +0 -106
- package/src/activities/execute-deep-agent/streaming-v3.ts +0 -277
- package/src/activities/execute-deep-agent/streaming.ts +0 -313
- package/src/middleware/__tests__/cost-cap.test.ts +0 -192
- package/src/middleware/__tests__/graceful-stop.test.ts +0 -105
- package/src/middleware/graceful-stop.ts +0 -86
- package/src/shared/__tests__/skill-writer.test.ts +0 -372
- package/src/shared/skill-writer.ts +0 -266
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* the returned ResolvedMcpServer[] into its SDK-specific format.
|
|
19
19
|
*/
|
|
20
20
|
import { resolveMcpServers } from "./mcp-resolver.js";
|
|
21
|
+
import { withTimeout } from "./with-timeout.js";
|
|
21
22
|
const CONNECT_TIMEOUT_MS = 60_000;
|
|
22
23
|
/**
|
|
23
24
|
* When true, skip connect backfill entirely. The runner discovers
|
|
@@ -71,10 +72,10 @@ export async function backfillMcpServersIfNeeded(client, currentServers, usages,
|
|
|
71
72
|
const runtimeEnv = extractRuntimeEnvForServer(fullServer, envVars, secretKeys);
|
|
72
73
|
console.log(`[connect-backfill] Triggering connect for "${server.slug}" (${serverId})`);
|
|
73
74
|
onHeartbeat?.();
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
// Bounded through the shared helper so the timer is cleared when the
|
|
76
|
+
// connect wins; a bare `setTimeout` in a `Promise.race` stays armed and
|
|
77
|
+
// holds the event loop open for the full bound (stigmer#1008).
|
|
78
|
+
const updated = await withTimeout(CONNECT_TIMEOUT_MS, `Connect timed out after ${CONNECT_TIMEOUT_MS / 1000}s`, () => client.connectMcpServer(serverId, org, runtimeEnv));
|
|
78
79
|
const toolCount = updated.status?.discoveredCapabilities?.tools.length ?? 0;
|
|
79
80
|
const approvalCount = updated.status?.toolApprovals?.length ?? 0;
|
|
80
81
|
console.log(`[connect-backfill] "${server.slug}" — ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-backfill.js","sourceRoot":"","sources":["../../src/shared/connect-backfill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"connect-backfill.js","sourceRoot":"","sources":["../../src/shared/connect-backfill.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
* same clean-cancel pattern the stall watchdog and first-denial stop use.
|
|
14
14
|
* Slightly harsher than native by construction; both harnesses terminate with
|
|
15
15
|
* the same honesty semantics (EXECUTION_TERMINATED, work checkpointed, the
|
|
16
|
-
* conversation continues on the next message — the recursion-limit precedent
|
|
17
|
-
*
|
|
16
|
+
* conversation continues on the next message — the recursion-limit precedent,
|
|
17
|
+
* `harness/terminal-table.ts` `toolCallLimitArm`).
|
|
18
18
|
*
|
|
19
19
|
* The running figure is the usage accumulator's local pricing-table estimate
|
|
20
20
|
* (authoritative billing is the BiDi proxy). That is the same estimation
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
export declare function costCapExceeded(maxCostUsd: number, estimatedCostUsd: number): boolean;
|
|
31
31
|
/**
|
|
32
32
|
* Stable prefix of the cost-limit terminal error. Mirrors the cross-repo
|
|
33
|
-
* pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (
|
|
33
|
+
* pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (tool-rounds.ts): consumers
|
|
34
34
|
* that need to distinguish "ran out of cost budget" from other TERMINATED
|
|
35
35
|
* causes can match on this prefix, because AgentExecutionStatus carries no
|
|
36
36
|
* structured termination reason. Do not reword without checking consumers.
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
* same clean-cancel pattern the stall watchdog and first-denial stop use.
|
|
14
14
|
* Slightly harsher than native by construction; both harnesses terminate with
|
|
15
15
|
* the same honesty semantics (EXECUTION_TERMINATED, work checkpointed, the
|
|
16
|
-
* conversation continues on the next message — the recursion-limit precedent
|
|
17
|
-
*
|
|
16
|
+
* conversation continues on the next message — the recursion-limit precedent,
|
|
17
|
+
* `harness/terminal-table.ts` `toolCallLimitArm`).
|
|
18
18
|
*
|
|
19
19
|
* The running figure is the usage accumulator's local pricing-table estimate
|
|
20
20
|
* (authoritative billing is the BiDi proxy). That is the same estimation
|
|
@@ -32,7 +32,7 @@ export function costCapExceeded(maxCostUsd, estimatedCostUsd) {
|
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Stable prefix of the cost-limit terminal error. Mirrors the cross-repo
|
|
35
|
-
* pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (
|
|
35
|
+
* pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (tool-rounds.ts): consumers
|
|
36
36
|
* that need to distinguish "ran out of cost budget" from other TERMINATED
|
|
37
37
|
* causes can match on this prefix, because AgentExecutionStatus carries no
|
|
38
38
|
* structured termination reason. Do not reword without checking consumers.
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Shared interface for proto mutation consumed by side-effect classes
|
|
3
3
|
* (InlinePublisher, WriteBackCoordinator) and streaming loops.
|
|
4
4
|
*
|
|
5
|
-
* The deep-agent harness implements it on its
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* The deep-agent harness implements it on its `V3StatusBuilder`; the Cursor
|
|
6
|
+
* harness — which mutates a bare status proto with no builder — uses
|
|
7
|
+
* {@link statusProtoWriter}. Side-effect classes depend only on this
|
|
8
|
+
* interface, never on a specific implementation.
|
|
9
9
|
*/
|
|
10
10
|
import type { AgentExecutionStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
11
11
|
import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
|
|
@@ -25,7 +25,7 @@ export interface ExecutionStatusWriter {
|
|
|
25
25
|
* concern the direct-mutation style has no use for, so it stays `false`.
|
|
26
26
|
*
|
|
27
27
|
* Write-backs upsert by `workspaceEntryName` — the same contract as the
|
|
28
|
-
* deep-agent `
|
|
28
|
+
* deep-agent `V3StatusBuilder.addWriteBack`: each git-backed workspace entry
|
|
29
29
|
* carries at most one record, progressing through phases.
|
|
30
30
|
*/
|
|
31
31
|
export declare function statusProtoWriter(status: AgentExecutionStatus): ExecutionStatusWriter;
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Shared interface for proto mutation consumed by side-effect classes
|
|
3
3
|
* (InlinePublisher, WriteBackCoordinator) and streaming loops.
|
|
4
4
|
*
|
|
5
|
-
* The deep-agent harness implements it on its
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* The deep-agent harness implements it on its `V3StatusBuilder`; the Cursor
|
|
6
|
+
* harness — which mutates a bare status proto with no builder — uses
|
|
7
|
+
* {@link statusProtoWriter}. Side-effect classes depend only on this
|
|
8
|
+
* interface, never on a specific implementation.
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
11
11
|
* An {@link ExecutionStatusWriter} over a bare status proto, for harnesses
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* concern the direct-mutation style has no use for, so it stays `false`.
|
|
16
16
|
*
|
|
17
17
|
* Write-backs upsert by `workspaceEntryName` — the same contract as the
|
|
18
|
-
* deep-agent `
|
|
18
|
+
* deep-agent `V3StatusBuilder.addWriteBack`: each git-backed workspace entry
|
|
19
19
|
* carries at most one record, progressing through phases.
|
|
20
20
|
*/
|
|
21
21
|
export function statusProtoWriter(status) {
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tier-2 structured-output extraction for a harness turn.
|
|
3
3
|
*
|
|
4
|
-
* Harness-agnostic
|
|
5
|
-
*
|
|
4
|
+
* Harness-agnostic, and called from one place: the turn runtime's epilogue
|
|
5
|
+
* (`harness/run-turn.ts` `extractStructuredOutputFromText`), so both
|
|
6
|
+
* harnesses have it — Cursor since S2 M3, native since S3 M2a (pinned by the
|
|
7
|
+
* native hermetic `structured-output` tier-2 arm since M2b, Q-S3-7).
|
|
6
8
|
*
|
|
7
9
|
* When tier-1 text extraction (shared/extract-json.ts) cannot find JSON in
|
|
8
10
|
* the agent's free-text response, this tier asks an economy-tier LLM to
|
|
9
11
|
* extract it via withStructuredOutput (function-calling), which guarantees
|
|
10
12
|
* schema-conformant output through the API's tool-use mechanism.
|
|
11
13
|
*
|
|
12
|
-
* Lives in its own module
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* bundle-slim's deferred evaluation preserves.
|
|
14
|
+
* Lives in its own module so the LangChain construction path stays out of
|
|
15
|
+
* the runtime's module graph until a run actually needs tier 2 — the
|
|
16
|
+
* runtime imports this module lazily at the call site, mirroring its tier-1
|
|
17
|
+
* import, which is what bundle-slim's deferred evaluation preserves.
|
|
17
18
|
*/
|
|
18
19
|
import type { Config } from "../config.js";
|
|
19
20
|
/**
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tier-2 structured-output extraction for a harness turn.
|
|
3
3
|
*
|
|
4
|
-
* Harness-agnostic
|
|
5
|
-
*
|
|
4
|
+
* Harness-agnostic, and called from one place: the turn runtime's epilogue
|
|
5
|
+
* (`harness/run-turn.ts` `extractStructuredOutputFromText`), so both
|
|
6
|
+
* harnesses have it — Cursor since S2 M3, native since S3 M2a (pinned by the
|
|
7
|
+
* native hermetic `structured-output` tier-2 arm since M2b, Q-S3-7).
|
|
6
8
|
*
|
|
7
9
|
* When tier-1 text extraction (shared/extract-json.ts) cannot find JSON in
|
|
8
10
|
* the agent's free-text response, this tier asks an economy-tier LLM to
|
|
9
11
|
* extract it via withStructuredOutput (function-calling), which guarantees
|
|
10
12
|
* schema-conformant output through the API's tool-use mechanism.
|
|
11
13
|
*
|
|
12
|
-
* Lives in its own module
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* bundle-slim's deferred evaluation preserves.
|
|
14
|
+
* Lives in its own module so the LangChain construction path stays out of
|
|
15
|
+
* the runtime's module graph until a run actually needs tier 2 — the
|
|
16
|
+
* runtime imports this module lazily at the call site, mirroring its tier-1
|
|
17
|
+
* import, which is what bundle-slim's deferred evaluation preserves.
|
|
17
18
|
*/
|
|
18
19
|
import { getEconomyModel } from "./model-registry.js";
|
|
19
20
|
import { buildChatModel } from "./model-client.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-structured-output.js","sourceRoot":"","sources":["../../src/shared/extract-structured-output.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extract-structured-output.js","sourceRoot":"","sources":["../../src/shared/extract-structured-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,MAA+B,EAC/B,MAAc,EACd,YAAoB;IAEpB,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;IAExD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,SAAS;gBAC3D,IAAI,eAAe,iCAAiC,OAAO,EAAE,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,cAAc,CAAC;QAC1C,SAAS,EAAE,eAAe;QAC1B,aAAa;QACb,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;QAC9C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;QACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,sGAAsG,EAAE;QACnI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;KACzC,CAAC,CAAC;IAEH,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC"}
|
|
@@ -30,24 +30,7 @@
|
|
|
30
30
|
* @since File-Change HITL Redesign (non-git + hybrid mid-run progress / DD-33)
|
|
31
31
|
*/
|
|
32
32
|
import { type ProgressSubstrate } from "./progress.js";
|
|
33
|
-
|
|
34
|
-
* A snapshot of the turn's CAS-observed paths, read on each capture:
|
|
35
|
-
* - `before`: first-touched paths' pre-turn bytes (`null` = the path did not
|
|
36
|
-
* exist before → an ADD). The KEYS are the touched-path set.
|
|
37
|
-
* - `blockedSecretPaths`: paths the gate hard-blocked as secret-like — excluded
|
|
38
|
-
* from capture.
|
|
39
|
-
*
|
|
40
|
-
* Deep-agent supplies a synchronous copy of its live `CasCaptureObserver`; Cursor
|
|
41
|
-
* supplies a reader over the hook's on-disk sidecar. The reader MUST return an
|
|
42
|
-
* atomic snapshot (copy the live map before any await) so a concurrent sub-agent
|
|
43
|
-
* write cannot mutate it mid-capture.
|
|
44
|
-
*/
|
|
45
|
-
export interface CasTouchedSnapshot {
|
|
46
|
-
readonly before: ReadonlyMap<string, Uint8Array | null>;
|
|
47
|
-
readonly blockedSecretPaths: ReadonlySet<string>;
|
|
48
|
-
}
|
|
49
|
-
/** Produces a {@link CasTouchedSnapshot} for one capture. */
|
|
50
|
-
export type CasTouchedReader = () => CasTouchedSnapshot | Promise<CasTouchedSnapshot>;
|
|
33
|
+
import type { CasTouchedReader } from "./cas-touched.js";
|
|
51
34
|
/**
|
|
52
35
|
* The CAS progress substrate. Reads the touched set on each capture, computes
|
|
53
36
|
* kind + `+N −M` for the bounded read-prefix via {@link classifyCasChange}, and
|
|
@@ -36,6 +36,10 @@ import { classifyCasChange } from "./cas-substrate.js";
|
|
|
36
36
|
import { LINE_COUNT_MAX_BYTES } from "./line-counts.js";
|
|
37
37
|
import { PROGRESS_MAX_ENTRIES, } from "./progress.js";
|
|
38
38
|
import { partitionIgnoredPathsBySecret } from "./secret-paths.js";
|
|
39
|
+
// The snapshot this substrate reads (`CasTouchedSnapshot`) and the reader that
|
|
40
|
+
// produces it live in `cas-touched.ts`, the one home of "what the engine
|
|
41
|
+
// observed touching CAS-owned paths": the turn-boundary capture reads the same
|
|
42
|
+
// snapshot, so neither consumer owns the shape.
|
|
39
43
|
/**
|
|
40
44
|
* The CAS progress substrate. Reads the touched set on each capture, computes
|
|
41
45
|
* kind + `+N −M` for the bounded read-prefix via {@link classifyCasChange}, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cas-progress.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,oBAAoB,GAKrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"cas-progress.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the engine observed touching CAS-owned paths this turn — the one fact
|
|
3
|
+
* about a turn's file changes that the runtime cannot read from the tree and
|
|
4
|
+
* the engine cannot help knowing.
|
|
5
|
+
*
|
|
6
|
+
* In a git work tree the tracked changes are a `git diff` against the pinned
|
|
7
|
+
* baseline; the gitignored ones are invisible to git, and in a non-git
|
|
8
|
+
* workspace EVERY change is. For those paths the only record of the
|
|
9
|
+
* pre-turn bytes is the one taken at mutation time, by whatever sits between
|
|
10
|
+
* the engine and the disk: the deep-agent's `CasCaptureObserver` (fed by its
|
|
11
|
+
* filesystem backend and its approval gate) or the Cursor hook's on-disk
|
|
12
|
+
* sidecar. Both produce this one snapshot shape, and both consumers read it:
|
|
13
|
+
* the mid-run progress slice (`cas-progress.ts`) and the turn-boundary
|
|
14
|
+
* capture ({@link buildCasTurnCaptures}), which composes it into the
|
|
15
|
+
* {@link CasPathCapture}s the CAS substrate stores.
|
|
16
|
+
*
|
|
17
|
+
* Until S3 M4 each harness carried its own copy of `buildCasTurnCaptures`
|
|
18
|
+
* beside its observation source; the copies were byte-near-identical
|
|
19
|
+
* (F-M4-P6) and now live here once. The AFTER bytes are always re-read from
|
|
20
|
+
* disk at composition time (the authoritative net result of the turn), so
|
|
21
|
+
* many edits to one path collapse to one before/after.
|
|
22
|
+
*/
|
|
23
|
+
import type { FileCaptureClass } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
24
|
+
import type { CasPathCapture } from "./cas-substrate.js";
|
|
25
|
+
/**
|
|
26
|
+
* The CAS-owned paths touched so far this turn: pre-turn bytes per
|
|
27
|
+
* first-touched path (`null` = the path did not exist → an ADD) and the paths
|
|
28
|
+
* the gate hard-blocked as secret-like (never applied, never captured; the
|
|
29
|
+
* boundary authors a content-less entry for each). Keyed workspace-root-
|
|
30
|
+
* relative. A reader MUST return an atomic snapshot (copy the live map before
|
|
31
|
+
* any await) so a concurrent sub-agent write cannot mutate it mid-capture.
|
|
32
|
+
*/
|
|
33
|
+
export interface CasTouchedSnapshot {
|
|
34
|
+
readonly before: ReadonlyMap<string, Uint8Array | null>;
|
|
35
|
+
readonly blockedSecretPaths: ReadonlySet<string>;
|
|
36
|
+
}
|
|
37
|
+
/** Produces a {@link CasTouchedSnapshot} for one capture. */
|
|
38
|
+
export type CasTouchedReader = () => CasTouchedSnapshot | Promise<CasTouchedSnapshot>;
|
|
39
|
+
/**
|
|
40
|
+
* Compose the turn's CAS captures from what the engine observed: for each
|
|
41
|
+
* observed path the before-bytes come from the snapshot and the after-bytes
|
|
42
|
+
* are re-read from disk now (`null` = the file is gone). Secret-like paths are
|
|
43
|
+
* diverted to `unreviewablePaths` and their before-bytes dropped — the
|
|
44
|
+
* fail-closed backstop that holds even under the global bypass, where the
|
|
45
|
+
* gate did not run to block them up front ({@link partitionIgnoredPathsBySecret}
|
|
46
|
+
* is the one decision; this shell performs only the IO for the capturable
|
|
47
|
+
* set). `captureClass` is the turn's CAS substrate class — GIT_IGNORED_CAPTURED
|
|
48
|
+
* for a git work tree's ignored paths, NON_GIT_CAS for a non-git workspace
|
|
49
|
+
* (where these ARE the whole change set) — so each captured path carries its
|
|
50
|
+
* true provenance. An empty snapshot yields empty results and leaves the
|
|
51
|
+
* shared capture unchanged.
|
|
52
|
+
*/
|
|
53
|
+
export declare function buildCasTurnCaptures(snapshot: CasTouchedSnapshot, workspaceRoot: string, captureClass: FileCaptureClass): Promise<{
|
|
54
|
+
casCaptures: CasPathCapture[];
|
|
55
|
+
unreviewablePaths: string[];
|
|
56
|
+
}>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the engine observed touching CAS-owned paths this turn — the one fact
|
|
3
|
+
* about a turn's file changes that the runtime cannot read from the tree and
|
|
4
|
+
* the engine cannot help knowing.
|
|
5
|
+
*
|
|
6
|
+
* In a git work tree the tracked changes are a `git diff` against the pinned
|
|
7
|
+
* baseline; the gitignored ones are invisible to git, and in a non-git
|
|
8
|
+
* workspace EVERY change is. For those paths the only record of the
|
|
9
|
+
* pre-turn bytes is the one taken at mutation time, by whatever sits between
|
|
10
|
+
* the engine and the disk: the deep-agent's `CasCaptureObserver` (fed by its
|
|
11
|
+
* filesystem backend and its approval gate) or the Cursor hook's on-disk
|
|
12
|
+
* sidecar. Both produce this one snapshot shape, and both consumers read it:
|
|
13
|
+
* the mid-run progress slice (`cas-progress.ts`) and the turn-boundary
|
|
14
|
+
* capture ({@link buildCasTurnCaptures}), which composes it into the
|
|
15
|
+
* {@link CasPathCapture}s the CAS substrate stores.
|
|
16
|
+
*
|
|
17
|
+
* Until S3 M4 each harness carried its own copy of `buildCasTurnCaptures`
|
|
18
|
+
* beside its observation source; the copies were byte-near-identical
|
|
19
|
+
* (F-M4-P6) and now live here once. The AFTER bytes are always re-read from
|
|
20
|
+
* disk at composition time (the authoritative net result of the turn), so
|
|
21
|
+
* many edits to one path collapse to one before/after.
|
|
22
|
+
*/
|
|
23
|
+
import { readFile } from "node:fs/promises";
|
|
24
|
+
import { join } from "node:path";
|
|
25
|
+
import { partitionIgnoredPathsBySecret } from "./secret-paths.js";
|
|
26
|
+
/**
|
|
27
|
+
* Compose the turn's CAS captures from what the engine observed: for each
|
|
28
|
+
* observed path the before-bytes come from the snapshot and the after-bytes
|
|
29
|
+
* are re-read from disk now (`null` = the file is gone). Secret-like paths are
|
|
30
|
+
* diverted to `unreviewablePaths` and their before-bytes dropped — the
|
|
31
|
+
* fail-closed backstop that holds even under the global bypass, where the
|
|
32
|
+
* gate did not run to block them up front ({@link partitionIgnoredPathsBySecret}
|
|
33
|
+
* is the one decision; this shell performs only the IO for the capturable
|
|
34
|
+
* set). `captureClass` is the turn's CAS substrate class — GIT_IGNORED_CAPTURED
|
|
35
|
+
* for a git work tree's ignored paths, NON_GIT_CAS for a non-git workspace
|
|
36
|
+
* (where these ARE the whole change set) — so each captured path carries its
|
|
37
|
+
* true provenance. An empty snapshot yields empty results and leaves the
|
|
38
|
+
* shared capture unchanged.
|
|
39
|
+
*/
|
|
40
|
+
export async function buildCasTurnCaptures(snapshot, workspaceRoot, captureClass) {
|
|
41
|
+
const { capturablePaths, unreviewablePaths } = partitionIgnoredPathsBySecret(snapshot.before.keys(), snapshot.blockedSecretPaths);
|
|
42
|
+
const casCaptures = [];
|
|
43
|
+
for (const relPath of capturablePaths) {
|
|
44
|
+
const after = await readFileOrNull(join(workspaceRoot, relPath));
|
|
45
|
+
casCaptures.push({
|
|
46
|
+
path: relPath,
|
|
47
|
+
before: snapshot.before.get(relPath) ?? null,
|
|
48
|
+
after,
|
|
49
|
+
captureClass,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return { casCaptures, unreviewablePaths: [...unreviewablePaths] };
|
|
53
|
+
}
|
|
54
|
+
/** Raw bytes of a file, or `null` when it does not exist (a DELETE, or an ADD since removed). */
|
|
55
|
+
async function readFileOrNull(absolutePath) {
|
|
56
|
+
try {
|
|
57
|
+
return await readFile(absolutePath);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=cas-touched.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cas-touched.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-touched.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAkBlE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAA4B,EAC5B,aAAqB,EACrB,YAA8B;IAE9B,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,6BAA6B,CAC1E,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EACtB,QAAQ,CAAC,kBAAkB,CAC5B,CAAC;IACF,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;YAC5C,KAAK;YACL,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,iGAAiG;AACjG,KAAK,UAAU,cAAc,CAAC,YAAoB;IAChD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -8,7 +8,8 @@ export { appendFileReviewEvents, buildBaselineCapturedEvent, buildCandidateCaptu
|
|
|
8
8
|
export { applyCaptureDecisions, captureBaselineToLedger, captureCandidateToLedger, type CaptureResumeResult, } from "./capture.js";
|
|
9
9
|
export { captureProgressDelta, isGitWorkTree, type GitProgressDelta, type GitProgressEntry, } from "./git-substrate.js";
|
|
10
10
|
export { buildFileChangeProgress, captureFileChangeProgress, createGitProgressSubstrate, createHybridProgressSubstrate, newProgressCaptureState, PROGRESS_CAPTURE_MIN_INTERVAL_MS, PROGRESS_MAX_ENTRIES, shouldCaptureProgress, type ProgressCapture, type ProgressCaptureState, type ProgressDelta, type ProgressEntry, type ProgressSubstrate, } from "./progress.js";
|
|
11
|
-
export { createCasProgressSubstrate
|
|
11
|
+
export { createCasProgressSubstrate } from "./cas-progress.js";
|
|
12
|
+
export { buildCasTurnCaptures, type CasTouchedReader, type CasTouchedSnapshot, } from "./cas-touched.js";
|
|
12
13
|
export { countLineChanges, LINE_COUNT_MAX_BYTES, type LineChangeCounts, } from "./line-counts.js";
|
|
13
14
|
export { applyCasApproved, casBlobKey, casBlobReader, casManifestKey, classifyCasChange, loadCasManifest, restoreCasToBaseline, snapshotCasChangeSet, type BlobReader, type CasBlobRef, type CasCapturedFile, type CasChangeClassification, type CasManifest, type CasPathCapture, type CasSnapshotRef, } from "./cas-substrate.js";
|
|
14
15
|
export { isSecretLikePath, partitionIgnoredPathsBySecret, SECRET_BASENAME_PATTERNS, SECRET_PATH_PATTERNS, type CasSecretPartition, } from "./secret-paths.js";
|
|
@@ -8,7 +8,8 @@ export { appendFileReviewEvents, buildBaselineCapturedEvent, buildCandidateCaptu
|
|
|
8
8
|
export { applyCaptureDecisions, captureBaselineToLedger, captureCandidateToLedger, } from "./capture.js";
|
|
9
9
|
export { captureProgressDelta, isGitWorkTree, } from "./git-substrate.js";
|
|
10
10
|
export { buildFileChangeProgress, captureFileChangeProgress, createGitProgressSubstrate, createHybridProgressSubstrate, newProgressCaptureState, PROGRESS_CAPTURE_MIN_INTERVAL_MS, PROGRESS_MAX_ENTRIES, shouldCaptureProgress, } from "./progress.js";
|
|
11
|
-
export { createCasProgressSubstrate
|
|
11
|
+
export { createCasProgressSubstrate } from "./cas-progress.js";
|
|
12
|
+
export { buildCasTurnCaptures, } from "./cas-touched.js";
|
|
12
13
|
export { countLineChanges, LINE_COUNT_MAX_BYTES, } from "./line-counts.js";
|
|
13
14
|
export { applyCasApproved, casBlobKey, casBlobReader, casManifestKey, classifyCasChange, loadCasManifest, restoreCasToBaseline, snapshotCasChangeSet, } from "./cas-substrate.js";
|
|
14
15
|
export { isSecretLikePath, partitionIgnoredPathsBySecret, SECRET_BASENAME_PATTERNS, SECRET_PATH_PATTERNS, } from "./secret-paths.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/filereview/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,SAAS,GAEV,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,aAAa,GAGd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,oBAAoB,EACpB,qBAAqB,GAMtB,MAAM,eAAe,CAAC;AAEvB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/filereview/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,SAAS,GAEV,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,aAAa,GAGd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,oBAAoB,EACpB,qBAAqB,GAMtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EACL,oBAAoB,GAGrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GAQrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,GAErB,MAAM,mBAAmB,CAAC"}
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
* ResolvedMcpServer format.
|
|
4
4
|
*
|
|
5
5
|
* THE single resolver for both harnesses (oss#387 retired the Cursor
|
|
6
|
-
* harness's near-duplicate): the
|
|
7
|
-
* (
|
|
8
|
-
* (execute-cursor/index.ts), the connect backfill
|
|
6
|
+
* harness's near-duplicate): the turn runtime's MCP phase
|
|
7
|
+
* (harness/turn-context.ts, serving both adapters), the connect backfill
|
|
9
8
|
* (shared/connect-backfill.ts), and the discovery activity
|
|
10
9
|
* (activities/discover-mcp-server.ts, via mcpServerToResolved) all consume
|
|
11
10
|
* it. Each harness maps the result into its SDK format at the last hop:
|
|
@@ -84,8 +83,8 @@ export declare function mcpServerToResolved(server: McpServer, slug: string, env
|
|
|
84
83
|
* - If both reference the same slug, session-level takes precedence —
|
|
85
84
|
* the WHOLE usage, including enabled_tools and approval overrides
|
|
86
85
|
*
|
|
87
|
-
* Shared by both harnesses (blueprint-resolver.ts
|
|
88
|
-
*
|
|
86
|
+
* Shared by both harnesses (through blueprint-resolver.ts, the turn
|
|
87
|
+
* runtime's blueprint phase) so a duplicate slug
|
|
89
88
|
* resolves identically everywhere: exactly one usage per server, whose
|
|
90
89
|
* enabled_tools is the one the enforcement filter honors.
|
|
91
90
|
*/
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
* ResolvedMcpServer format.
|
|
4
4
|
*
|
|
5
5
|
* THE single resolver for both harnesses (oss#387 retired the Cursor
|
|
6
|
-
* harness's near-duplicate): the
|
|
7
|
-
* (
|
|
8
|
-
* (execute-cursor/index.ts), the connect backfill
|
|
6
|
+
* harness's near-duplicate): the turn runtime's MCP phase
|
|
7
|
+
* (harness/turn-context.ts, serving both adapters), the connect backfill
|
|
9
8
|
* (shared/connect-backfill.ts), and the discovery activity
|
|
10
9
|
* (activities/discover-mcp-server.ts, via mcpServerToResolved) all consume
|
|
11
10
|
* it. Each harness maps the result into its SDK format at the last hop:
|
|
@@ -125,8 +124,8 @@ export function mcpServerToResolved(server, slug, envVars, usageEnabledTools, us
|
|
|
125
124
|
* - If both reference the same slug, session-level takes precedence —
|
|
126
125
|
* the WHOLE usage, including enabled_tools and approval overrides
|
|
127
126
|
*
|
|
128
|
-
* Shared by both harnesses (blueprint-resolver.ts
|
|
129
|
-
*
|
|
127
|
+
* Shared by both harnesses (through blueprint-resolver.ts, the turn
|
|
128
|
+
* runtime's blueprint phase) so a duplicate slug
|
|
130
129
|
* resolves identically everywhere: exactly one usage per server, whose
|
|
131
130
|
* enabled_tools is the one the enforcement filter honors.
|
|
132
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-resolver.js","sourceRoot":"","sources":["../../src/shared/mcp-resolver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-resolver.js","sourceRoot":"","sources":["../../src/shared/mcp-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Streaming persist decision for a harness turn.
|
|
3
3
|
*
|
|
4
|
-
* Harness-agnostic
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Mirrors the native deep-agent harness (execute-deep-agent/streaming.ts):
|
|
4
|
+
* Harness-agnostic, and both adapters' stream loops read it
|
|
5
|
+
* (`execute-cursor/turn-stream.ts`, `execute-deep-agent/turn-stream.ts`; the
|
|
6
|
+
* native orchestrator's own copy of the rule retired with it at S3 M2b):
|
|
8
7
|
* `shouldPersist = forceFlush || scheduler.shouldSendUpdate(eventCount)`.
|
|
9
8
|
* Both harnesses thus share one cadence model — discrete state changes flush
|
|
10
9
|
* immediately, high-frequency token deltas ride a bounded time cadence.
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Streaming persist decision for a harness turn.
|
|
3
3
|
*
|
|
4
|
-
* Harness-agnostic
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Mirrors the native deep-agent harness (execute-deep-agent/streaming.ts):
|
|
4
|
+
* Harness-agnostic, and both adapters' stream loops read it
|
|
5
|
+
* (`execute-cursor/turn-stream.ts`, `execute-deep-agent/turn-stream.ts`; the
|
|
6
|
+
* native orchestrator's own copy of the rule retired with it at S3 M2b):
|
|
8
7
|
* `shouldPersist = forceFlush || scheduler.shouldSendUpdate(eventCount)`.
|
|
9
8
|
* Both harnesses thus share one cadence model — discrete state changes flush
|
|
10
9
|
* immediately, high-frequency token deltas ride a bounded time cadence.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist-decision.js","sourceRoot":"","sources":["../../src/shared/persist-decision.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"persist-decision.js","sourceRoot":"","sources":["../../src/shared/persist-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA0B,EAC1B,SAAmC,EACnC,UAAkB,EAClB,KAAc;IAEd,MAAM,UAAU,GACd,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAC3E,OAAO,UAAU,IAAI,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
* (shared/workspace/stigmer-link.ts), an in-root path string in either
|
|
23
23
|
* dialect.
|
|
24
24
|
*
|
|
25
|
-
* Applied in execute-deep-agent/setup.ts to the parent graph AND threaded
|
|
25
|
+
* Applied in execute-deep-agent/turn-setup.ts to the parent graph AND threaded
|
|
26
26
|
* into every compiled sub-agent graph: deepagents' parent-permission
|
|
27
27
|
* inheritance covers only spec-style sub-agents, and ours are pre-built
|
|
28
28
|
* CompiledSubAgents, so each sub-agent graph must carry the rules itself
|
|
29
29
|
* (issue #255). Kept as its own side-effect-free module so tests can pin the
|
|
30
|
-
* production rules without dragging in
|
|
30
|
+
* production rules without dragging in the engine build's import graph.
|
|
31
31
|
*
|
|
32
32
|
* Invariant: never combine these rules with a shell-capable (sandbox)
|
|
33
33
|
* backend — deepagents rejects that pairing at graph construction (see the
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
* (shared/workspace/stigmer-link.ts), an in-root path string in either
|
|
23
23
|
* dialect.
|
|
24
24
|
*
|
|
25
|
-
* Applied in execute-deep-agent/setup.ts to the parent graph AND threaded
|
|
25
|
+
* Applied in execute-deep-agent/turn-setup.ts to the parent graph AND threaded
|
|
26
26
|
* into every compiled sub-agent graph: deepagents' parent-permission
|
|
27
27
|
* inheritance covers only spec-style sub-agents, and ours are pre-built
|
|
28
28
|
* CompiledSubAgents, so each sub-agent graph must carry the rules itself
|
|
29
29
|
* (issue #255). Kept as its own side-effect-free module so tests can pin the
|
|
30
|
-
* production rules without dragging in
|
|
30
|
+
* production rules without dragging in the engine build's import graph.
|
|
31
31
|
*
|
|
32
32
|
* Invariant: never combine these rules with a shell-capable (sandbox)
|
|
33
33
|
* backend — deepagents rejects that pairing at graph construction (see the
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* is house style; the words are shared.
|
|
17
17
|
*
|
|
18
18
|
* Enforcement is separate from instruction: the native harness ALSO denies
|
|
19
|
-
* filesystem writes at the tool layer (see execute-deep-agent/setup.ts), so
|
|
19
|
+
* filesystem writes at the tool layer (see execute-deep-agent/turn-setup.ts), so
|
|
20
20
|
* for it this directive is guidance toward a well-formed plan, not the
|
|
21
21
|
* enforcement mechanism. The Cursor harness has no tool-level lever (the
|
|
22
22
|
* Cursor SDK exposes no mode parameter), so there this directive is the
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* is house style; the words are shared.
|
|
17
17
|
*
|
|
18
18
|
* Enforcement is separate from instruction: the native harness ALSO denies
|
|
19
|
-
* filesystem writes at the tool layer (see execute-deep-agent/setup.ts), so
|
|
19
|
+
* filesystem writes at the tool layer (see execute-deep-agent/turn-setup.ts), so
|
|
20
20
|
* for it this directive is guidance toward a well-formed plan, not the
|
|
21
21
|
* enforcement mechanism. The Cursor harness has no tool-level lever (the
|
|
22
22
|
* Cursor SDK exposes no mode parameter), so there this directive is the
|