@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/prompt-builder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* What the transcript builders share: the tool-result serialization and the
|
|
3
|
+
* approval-provenance stamp that `V3StatusBuilder` (the root transcript) and
|
|
4
|
+
* `SubAgentTracker` (the sub-agent transcripts) both perform at the moment
|
|
5
|
+
* they classify a tool call, so the two never drift on either rule.
|
|
3
6
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
+
* Until S3 M2b this module also carried the v2 `StatusBuilder`'s share — the
|
|
8
|
+
* `UsageAccumulator` that summed `streamingUsage` (the turn runtime's
|
|
9
|
+
* accountant owns the field now, `harness/usage-accumulator.ts`) and the v2
|
|
10
|
+
* `on_tool_end` result extractor — both retired with the v2 stream (Q-S3-1).
|
|
7
11
|
*/
|
|
8
|
-
import type { StreamingUsageSummary } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/usage_pb";
|
|
9
12
|
import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
10
13
|
import { type MergedToolPolicy } from "../../shared/approval-policy.js";
|
|
11
14
|
import type { ToolApprovalCategory } from "../../shared/tool-kind.js";
|
|
12
|
-
export interface UsageSnapshot {
|
|
13
|
-
inputTokens: bigint;
|
|
14
|
-
outputTokens: bigint;
|
|
15
|
-
cacheReadTokens: bigint;
|
|
16
|
-
cacheWriteTokens: bigint;
|
|
17
|
-
totalTokens: bigint;
|
|
18
|
-
turnCount: number;
|
|
19
|
-
observedAt: string;
|
|
20
|
-
}
|
|
21
|
-
export declare class UsageAccumulator {
|
|
22
|
-
private inputTokens;
|
|
23
|
-
private outputTokens;
|
|
24
|
-
private cacheReadTokens;
|
|
25
|
-
private cacheWriteTokens;
|
|
26
|
-
private turnCount;
|
|
27
|
-
private lastObservedAt;
|
|
28
|
-
accumulate(meta: Record<string, unknown>): void;
|
|
29
|
-
snapshot(): UsageSnapshot;
|
|
30
|
-
/** Create a protobuf StreamingUsageSummary from the current snapshot. */
|
|
31
|
-
toProto(): StreamingUsageSummary;
|
|
32
|
-
}
|
|
33
|
-
export declare function toBigInt(value: unknown): bigint;
|
|
34
|
-
export declare function extractToolResult(data: Record<string, unknown>): string;
|
|
35
15
|
/**
|
|
36
16
|
* Extract tool result from v3 tool-finished output.
|
|
37
17
|
* v3 output wraps LangChain ToolMessage in a constructor envelope:
|
|
@@ -39,10 +19,8 @@ export declare function extractToolResult(data: Record<string, unknown>): string
|
|
|
39
19
|
*/
|
|
40
20
|
export declare function extractToolResultV3(output: unknown): string;
|
|
41
21
|
/**
|
|
42
|
-
* The policy inputs the
|
|
43
|
-
*
|
|
44
|
-
* structurally this — defined here so the shared stamper has no import cycle back
|
|
45
|
-
* into the builders.
|
|
22
|
+
* The policy inputs the builders need to decide whether a tool call waits for
|
|
23
|
+
* approval and to attribute its authorization provenance.
|
|
46
24
|
*/
|
|
47
25
|
export interface ApprovalProvenanceInputs {
|
|
48
26
|
readonly policies: ReadonlyMap<string, MergedToolPolicy>;
|
|
@@ -65,6 +43,14 @@ export interface ApprovalProvenanceInputs {
|
|
|
65
43
|
*/
|
|
66
44
|
readonly unattended?: boolean;
|
|
67
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* The name the builder's API uses for the same shape (`setApprovalProvider`):
|
|
48
|
+
* the adapter hands the gate's policy state in under this name. One shape, two
|
|
49
|
+
* names on purpose — the provider is what a caller SUPPLIES, the inputs are
|
|
50
|
+
* what the stamper READS; until S3 M2b the v2 builder declared the provider as
|
|
51
|
+
* an empty `interface extends`, a second type for one shape.
|
|
52
|
+
*/
|
|
53
|
+
export type ApprovalPolicyProvider = ApprovalProvenanceInputs;
|
|
68
54
|
/**
|
|
69
55
|
* Stamp a tool call's authorization provenance — which policy layer governs it —
|
|
70
56
|
* alongside `tool_kind`, in exactly the spot both builders classify the tool.
|
|
@@ -1,54 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* What the transcript builders share: the tool-result serialization and the
|
|
3
|
+
* approval-provenance stamp that `V3StatusBuilder` (the root transcript) and
|
|
4
|
+
* `SubAgentTracker` (the sub-agent transcripts) both perform at the moment
|
|
5
|
+
* they classify a tool call, so the two never drift on either rule.
|
|
3
6
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
+
* Until S3 M2b this module also carried the v2 `StatusBuilder`'s share — the
|
|
8
|
+
* `UsageAccumulator` that summed `streamingUsage` (the turn runtime's
|
|
9
|
+
* accountant owns the field now, `harness/usage-accumulator.ts`) and the v2
|
|
10
|
+
* `on_tool_end` result extractor — both retired with the v2 stream (Q-S3-1).
|
|
7
11
|
*/
|
|
8
|
-
import { create } from "@bufbuild/protobuf";
|
|
9
|
-
import { StreamingUsageSummarySchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/usage_pb";
|
|
10
|
-
import { utcTimestamp } from "../../shared/status.js";
|
|
11
12
|
import { POLICY_ENGINE_VERSION, resolveApprovalProvenance, toProtoPolicySource, } from "../../shared/approval-policy.js";
|
|
12
|
-
export class UsageAccumulator {
|
|
13
|
-
inputTokens = 0n;
|
|
14
|
-
outputTokens = 0n;
|
|
15
|
-
cacheReadTokens = 0n;
|
|
16
|
-
cacheWriteTokens = 0n;
|
|
17
|
-
turnCount = 0;
|
|
18
|
-
lastObservedAt = "";
|
|
19
|
-
accumulate(meta) {
|
|
20
|
-
this.inputTokens += toBigInt(meta.input_tokens);
|
|
21
|
-
this.outputTokens += toBigInt(meta.output_tokens);
|
|
22
|
-
this.cacheReadTokens += toBigInt(meta.cache_read_input_tokens);
|
|
23
|
-
this.cacheWriteTokens += toBigInt(meta.cache_creation_input_tokens);
|
|
24
|
-
this.turnCount++;
|
|
25
|
-
this.lastObservedAt = utcTimestamp();
|
|
26
|
-
}
|
|
27
|
-
snapshot() {
|
|
28
|
-
return {
|
|
29
|
-
inputTokens: this.inputTokens,
|
|
30
|
-
outputTokens: this.outputTokens,
|
|
31
|
-
cacheReadTokens: this.cacheReadTokens,
|
|
32
|
-
cacheWriteTokens: this.cacheWriteTokens,
|
|
33
|
-
totalTokens: this.inputTokens + this.outputTokens +
|
|
34
|
-
this.cacheReadTokens + this.cacheWriteTokens,
|
|
35
|
-
turnCount: this.turnCount,
|
|
36
|
-
observedAt: this.lastObservedAt,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/** Create a protobuf StreamingUsageSummary from the current snapshot. */
|
|
40
|
-
toProto() {
|
|
41
|
-
return create(StreamingUsageSummarySchema, this.snapshot());
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// ── BigInt Coercion ────────────────────────────────────────────────
|
|
45
|
-
export function toBigInt(value) {
|
|
46
|
-
if (typeof value === "bigint")
|
|
47
|
-
return value;
|
|
48
|
-
if (typeof value === "number" && Number.isFinite(value))
|
|
49
|
-
return BigInt(Math.floor(value));
|
|
50
|
-
return 0n;
|
|
51
|
-
}
|
|
52
13
|
// ── Tool Result Extraction ─────────────────────────────────────────
|
|
53
14
|
/**
|
|
54
15
|
* Serialize a LangChain message `content` field into the canonical tool-result
|
|
@@ -73,22 +34,6 @@ function serializeToolContent(content) {
|
|
|
73
34
|
return JSON.stringify(content);
|
|
74
35
|
return undefined;
|
|
75
36
|
}
|
|
76
|
-
export function extractToolResult(data) {
|
|
77
|
-
const output = data.output;
|
|
78
|
-
if (typeof output === "string")
|
|
79
|
-
return output;
|
|
80
|
-
if (typeof output === "object" && output !== null) {
|
|
81
|
-
const fromContent = serializeToolContent(output.content);
|
|
82
|
-
if (fromContent !== undefined)
|
|
83
|
-
return fromContent;
|
|
84
|
-
}
|
|
85
|
-
try {
|
|
86
|
-
return JSON.stringify(output ?? data);
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return "[serialization error]";
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
37
|
/**
|
|
93
38
|
* Extract tool result from v3 tool-finished output.
|
|
94
39
|
* v3 output wraps LangChain ToolMessage in a constructor envelope:
|
|
@@ -139,7 +84,7 @@ export function stampApprovalProvenance(tc, provider) {
|
|
|
139
84
|
}
|
|
140
85
|
// ── Approval Args Sanitization ─────────────────────────────────────
|
|
141
86
|
// Relocated to src/shared/args-preview.ts so both harnesses share one home for
|
|
142
|
-
// arg sanitization. Re-exported here so the native importers (status-builder,
|
|
143
|
-
//
|
|
87
|
+
// arg sanitization. Re-exported here so the native importers (v3-status-builder,
|
|
88
|
+
// approval-file-change) keep their existing import path.
|
|
144
89
|
export { sanitizeArgsPreview } from "../../shared/args-preview.js";
|
|
145
90
|
//# sourceMappingURL=status-builder-shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-builder-shared.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/status-builder-shared.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"status-builder-shared.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/status-builder-shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AAGzC,sEAAsE;AAEtE;;;;;;;;;;;;;;;GAeG;AACH,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,MAAiC,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,MAA6C,CAAC;QACjE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,UAAU,CAAC;QAClD,CAAC;QACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC;IACpD,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,uBAAuB,CAAC;IACjC,CAAC;AACH,CAAC;AAuCD,gFAAgF;AAChF,MAAM,oBAAoB,GAAsC,IAAI,GAAG,EAAE,CAAC;AAE1E;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,EAAY,EACZ,QAAyC;IAEzC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,MAAM,GAAG,yBAAyB,CACtC,EAAE,CAAC,IAAI,EACP,UAAU,EACV,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,gBAAgB,IAAI,oBAAoB,EACjD,QAAQ,CAAC,YAAY,CACtB,CAAC;IACF,EAAE,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,MAAM;QAAE,EAAE,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;AAC7D,CAAC;AAED,sEAAsE;AAEtE,+EAA+E;AAC/E,iFAAiF;AACjF,yDAAyD;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The inline-publish trigger of the native stream: a v3 `tools` event carries
|
|
3
|
+
* the tool INPUT on `tool-started` and the OUTPUT on `tool-finished`, so the
|
|
4
|
+
* two are correlated by `tool_call_id` and a file-modifying tool's target
|
|
5
|
+
* path is published (`InlinePublisher`) once the call has finished — the
|
|
6
|
+
* artifact appears on the status mid-turn, not at the end.
|
|
3
7
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
8
|
+
* Until S3 M2b (Q-M1-1) the same correlation also fed the write-back
|
|
9
|
+
* coordinator's per-file commit (`onFileModified`); write-back is
|
|
10
|
+
* finalize-only now, the turn runtime's, so publishing is this trigger's one
|
|
11
|
+
* effect. The loop (`turn-stream.ts`) drains {@link pendingPublishPromises}
|
|
12
|
+
* in the settle.
|
|
7
13
|
*/
|
|
8
14
|
import type { V3ProtocolEvent } from "./v3-event-recorder.js";
|
|
9
15
|
import type { InlinePublisher } from "./inline-publisher.js";
|
|
10
|
-
import type { WriteBackCoordinator } from "../../shared/workspace/writeback-coordinator.js";
|
|
11
16
|
export declare class StreamingSideEffects {
|
|
12
17
|
private readonly inputCache;
|
|
13
18
|
private readonly inlinePublisher;
|
|
14
|
-
private readonly writebackCoordinator;
|
|
15
19
|
readonly pendingPublishPromises: Promise<void>[];
|
|
16
|
-
readonly pendingWritebackPromises: Promise<void>[];
|
|
17
20
|
constructor(opts: {
|
|
18
21
|
inlinePublisher?: InlinePublisher;
|
|
19
|
-
writebackCoordinator?: WriteBackCoordinator;
|
|
20
22
|
});
|
|
21
23
|
onProtocolEvent(event: V3ProtocolEvent): void;
|
|
22
24
|
}
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The inline-publish trigger of the native stream: a v3 `tools` event carries
|
|
3
|
+
* the tool INPUT on `tool-started` and the OUTPUT on `tool-finished`, so the
|
|
4
|
+
* two are correlated by `tool_call_id` and a file-modifying tool's target
|
|
5
|
+
* path is published (`InlinePublisher`) once the call has finished — the
|
|
6
|
+
* artifact appears on the status mid-turn, not at the end.
|
|
3
7
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
8
|
+
* Until S3 M2b (Q-M1-1) the same correlation also fed the write-back
|
|
9
|
+
* coordinator's per-file commit (`onFileModified`); write-back is
|
|
10
|
+
* finalize-only now, the turn runtime's, so publishing is this trigger's one
|
|
11
|
+
* effect. The loop (`turn-stream.ts`) drains {@link pendingPublishPromises}
|
|
12
|
+
* in the settle.
|
|
7
13
|
*/
|
|
8
14
|
import { extractFilePath, isFileModifyingTool } from "../../shared/file-tools.js";
|
|
9
15
|
export class StreamingSideEffects {
|
|
10
16
|
inputCache = new Map();
|
|
11
17
|
inlinePublisher;
|
|
12
|
-
writebackCoordinator;
|
|
13
18
|
pendingPublishPromises = [];
|
|
14
|
-
pendingWritebackPromises = [];
|
|
15
19
|
constructor(opts) {
|
|
16
20
|
this.inlinePublisher = opts.inlinePublisher;
|
|
17
|
-
this.writebackCoordinator = opts.writebackCoordinator;
|
|
18
21
|
}
|
|
19
22
|
onProtocolEvent(event) {
|
|
20
23
|
if (event.method !== "tools")
|
|
21
24
|
return;
|
|
22
|
-
if (!this.inlinePublisher
|
|
25
|
+
if (!this.inlinePublisher)
|
|
23
26
|
return;
|
|
24
27
|
const data = event.params.data;
|
|
25
28
|
if (!data)
|
|
@@ -54,12 +57,7 @@ export class StreamingSideEffects {
|
|
|
54
57
|
const filePath = extractFilePath(cached.input);
|
|
55
58
|
if (!filePath)
|
|
56
59
|
return;
|
|
57
|
-
|
|
58
|
-
this.pendingPublishPromises.push(this.inlinePublisher.publish(filePath));
|
|
59
|
-
}
|
|
60
|
-
if (this.writebackCoordinator) {
|
|
61
|
-
this.pendingWritebackPromises.push(this.writebackCoordinator.onFileModified(filePath));
|
|
62
|
-
}
|
|
60
|
+
this.pendingPublishPromises.push(this.inlinePublisher.publish(filePath));
|
|
63
61
|
}
|
|
64
62
|
}
|
|
65
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming-side-effects.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/streaming-side-effects.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"streaming-side-effects.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/streaming-side-effects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAOlF,MAAM,OAAO,oBAAoB;IACd,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,eAAe,CAA8B;IACrD,sBAAsB,GAAoB,EAAE,CAAC;IAEtD,YAAY,IAA2C;QACrD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC9C,CAAC;IAED,eAAe,CAAC,KAAsB;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO;QACrC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAA2C,CAAC;QACtE,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAuB,CAAC;QAClE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAuB,CAAC;QAC5E,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAW,CAAC;YAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,IAAI,KAAK,GAA4B,EAAE,CAAC;YACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChF,KAAK,GAAG,QAAmC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAAE,OAAO;YAElD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;CACF"}
|
|
@@ -10,8 +10,26 @@
|
|
|
10
10
|
* their first segment (e.g. "tools:<pregelUuid>|model_request:<innerUuid>")
|
|
11
11
|
* - First segment match (before "|") correlates child events to sub-agent
|
|
12
12
|
*
|
|
13
|
-
* The tracker
|
|
14
|
-
*
|
|
13
|
+
* The tracker builds INTO the status's own `subAgentExecutions` array, by
|
|
14
|
+
* reference: it pushes new rows and mutates existing ones, never replaces the
|
|
15
|
+
* array, so the caller that seeded the array from the persisted transcript
|
|
16
|
+
* (the turn runtime's `seedFromPersistedStatus`) keeps every prior turn's
|
|
17
|
+
* row and every wrapper of the status sees the same rows. Seeded rows are
|
|
18
|
+
* indexed by id on construction; a re-emitted `task` tool start for a known
|
|
19
|
+
* id binds its routing prefix to the existing row instead of pushing a twin
|
|
20
|
+
* (the memory-checkpointer replay re-drives the whole graph), exactly as the
|
|
21
|
+
* parent builder reconciles re-emitted tool calls through its rebuilt index.
|
|
22
|
+
* Until S3 M2a the tracker owned a private array that `syncSubAgentExecutions`
|
|
23
|
+
* assigned onto the status wholesale, which a resumed turn's first delegation
|
|
24
|
+
* would have used to drop turn 1's rows (S3 M1 deferred debt).
|
|
25
|
+
*
|
|
26
|
+
* V3StatusBuilder delegates sub-agent-scoped events here instead of the
|
|
27
|
+
* parent message list. Marking rows CANCELLED when a turn stops is NOT the
|
|
28
|
+
* tracker's: `shared/subagent-rows.ts` `cancelInProgressSubAgentProtos` is
|
|
29
|
+
* the one home of that transition for every harness (the runtime's thrown
|
|
30
|
+
* arms and both adapters' stops call it); the tracker only clears the
|
|
31
|
+
* streaming flags those rows' messages still carry
|
|
32
|
+
* ({@link SubAgentTracker.finalizeAllStreaming}).
|
|
15
33
|
*/
|
|
16
34
|
import type { SubAgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/subagent_pb";
|
|
17
35
|
import type { StigmerRunEvent } from "./v3-events.js";
|
|
@@ -19,9 +37,19 @@ export declare class SubAgentTracker {
|
|
|
19
37
|
private readonly executions;
|
|
20
38
|
private readonly stateByCallId;
|
|
21
39
|
private readonly stateByPrefix;
|
|
40
|
+
/**
|
|
41
|
+
* @param executions - The status's own `subAgentExecutions` array, built
|
|
42
|
+
* into by reference. Rows already on it (the runtime's seed on a
|
|
43
|
+
* reinvocation) are indexed by id, with their tool calls, so a re-driven
|
|
44
|
+
* event reconciles onto them; their routing prefix is unknown until a
|
|
45
|
+
* `task` tool start re-announces it.
|
|
46
|
+
*/
|
|
47
|
+
constructor(executions: SubAgentExecution[]);
|
|
22
48
|
/**
|
|
23
49
|
* Called when a "task" tool_started event is observed at depth 0 or 1.
|
|
24
|
-
* Creates a new SubAgentExecution and begins tracking
|
|
50
|
+
* Creates a new SubAgentExecution and begins tracking — or, for a seeded
|
|
51
|
+
* row re-announced by a replayed graph, binds the routing prefix to the
|
|
52
|
+
* row that already exists.
|
|
25
53
|
*
|
|
26
54
|
* @param callId - Provider tool call ID (e.g. "toolu_01HW...")
|
|
27
55
|
* @param args - Tool input arguments (subagent_type, description)
|
|
@@ -40,9 +68,12 @@ export declare class SubAgentTracker {
|
|
|
40
68
|
*/
|
|
41
69
|
onTaskToolError(callId: string, errorMessage: string): void;
|
|
42
70
|
/**
|
|
43
|
-
*
|
|
71
|
+
* Clear the streaming flag on every tracked sub-agent's in-flight
|
|
72
|
+
* messages. Called when the turn stops before the sub-agents finished;
|
|
73
|
+
* the rows' own CANCELLED transition is the caller's, through the shared
|
|
74
|
+
* `cancelInProgressSubAgentProtos` (see the header).
|
|
44
75
|
*/
|
|
45
|
-
|
|
76
|
+
finalizeAllStreaming(): void;
|
|
46
77
|
/**
|
|
47
78
|
* Returns true if the given formatted namespace belongs to a tracked sub-agent.
|
|
48
79
|
*
|
|
@@ -58,14 +89,6 @@ export declare class SubAgentTracker {
|
|
|
58
89
|
* The event has already been confirmed as sub-agent-scoped via isSubAgentNamespace.
|
|
59
90
|
*/
|
|
60
91
|
routeEvent(event: StigmerRunEvent): void;
|
|
61
|
-
/**
|
|
62
|
-
* Returns the current list of SubAgentExecution protos for persist.
|
|
63
|
-
*/
|
|
64
|
-
getExecutions(): SubAgentExecution[];
|
|
65
|
-
/**
|
|
66
|
-
* Returns true if any sub-agents are being tracked.
|
|
67
|
-
*/
|
|
68
|
-
hasExecutions(): boolean;
|
|
69
92
|
private handleMessageStart;
|
|
70
93
|
private handleTextDelta;
|
|
71
94
|
private handleReasoningDelta;
|
|
@@ -10,8 +10,26 @@
|
|
|
10
10
|
* their first segment (e.g. "tools:<pregelUuid>|model_request:<innerUuid>")
|
|
11
11
|
* - First segment match (before "|") correlates child events to sub-agent
|
|
12
12
|
*
|
|
13
|
-
* The tracker
|
|
14
|
-
*
|
|
13
|
+
* The tracker builds INTO the status's own `subAgentExecutions` array, by
|
|
14
|
+
* reference: it pushes new rows and mutates existing ones, never replaces the
|
|
15
|
+
* array, so the caller that seeded the array from the persisted transcript
|
|
16
|
+
* (the turn runtime's `seedFromPersistedStatus`) keeps every prior turn's
|
|
17
|
+
* row and every wrapper of the status sees the same rows. Seeded rows are
|
|
18
|
+
* indexed by id on construction; a re-emitted `task` tool start for a known
|
|
19
|
+
* id binds its routing prefix to the existing row instead of pushing a twin
|
|
20
|
+
* (the memory-checkpointer replay re-drives the whole graph), exactly as the
|
|
21
|
+
* parent builder reconciles re-emitted tool calls through its rebuilt index.
|
|
22
|
+
* Until S3 M2a the tracker owned a private array that `syncSubAgentExecutions`
|
|
23
|
+
* assigned onto the status wholesale, which a resumed turn's first delegation
|
|
24
|
+
* would have used to drop turn 1's rows (S3 M1 deferred debt).
|
|
25
|
+
*
|
|
26
|
+
* V3StatusBuilder delegates sub-agent-scoped events here instead of the
|
|
27
|
+
* parent message list. Marking rows CANCELLED when a turn stops is NOT the
|
|
28
|
+
* tracker's: `shared/subagent-rows.ts` `cancelInProgressSubAgentProtos` is
|
|
29
|
+
* the one home of that transition for every harness (the runtime's thrown
|
|
30
|
+
* arms and both adapters' stops call it); the tracker only clears the
|
|
31
|
+
* streaming flags those rows' messages still carry
|
|
32
|
+
* ({@link SubAgentTracker.finalizeAllStreaming}).
|
|
15
33
|
*/
|
|
16
34
|
import { create } from "@bufbuild/protobuf";
|
|
17
35
|
import { SubAgentExecutionSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/subagent_pb";
|
|
@@ -20,14 +38,49 @@ import { SubAgentStatus, MessageType, ToolCallStatus, } from "@stigmer/protos/ai
|
|
|
20
38
|
import { utcTimestamp } from "../../shared/status.js";
|
|
21
39
|
import { classifyTool } from "../../shared/tool-kind.js";
|
|
22
40
|
import { extractToolResultV3 } from "./status-builder-shared.js";
|
|
41
|
+
/** Fresh routing state over a row; `namespacePrefix` is `""` for a seeded row until its `task` start re-announces it. */
|
|
42
|
+
function newSubAgentState(proto, callId, namespacePrefix) {
|
|
43
|
+
return {
|
|
44
|
+
proto,
|
|
45
|
+
callId,
|
|
46
|
+
namespacePrefix,
|
|
47
|
+
messagesByRun: new Map(),
|
|
48
|
+
currentAiMessage: new Map(),
|
|
49
|
+
lastLlmRunId: new Map(),
|
|
50
|
+
toolCalls: new Map(),
|
|
51
|
+
toolArgBuffers: new Map(),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
23
54
|
// ── SubAgentTracker ──────────────────────────────────────────────────────────
|
|
24
55
|
export class SubAgentTracker {
|
|
25
|
-
executions
|
|
56
|
+
executions;
|
|
26
57
|
stateByCallId = new Map();
|
|
27
58
|
stateByPrefix = new Map();
|
|
59
|
+
/**
|
|
60
|
+
* @param executions - The status's own `subAgentExecutions` array, built
|
|
61
|
+
* into by reference. Rows already on it (the runtime's seed on a
|
|
62
|
+
* reinvocation) are indexed by id, with their tool calls, so a re-driven
|
|
63
|
+
* event reconciles onto them; their routing prefix is unknown until a
|
|
64
|
+
* `task` tool start re-announces it.
|
|
65
|
+
*/
|
|
66
|
+
constructor(executions) {
|
|
67
|
+
this.executions = executions;
|
|
68
|
+
for (const proto of executions) {
|
|
69
|
+
const state = newSubAgentState(proto, proto.id, "");
|
|
70
|
+
for (const message of proto.messages) {
|
|
71
|
+
for (const tc of message.toolCalls) {
|
|
72
|
+
if (tc.id)
|
|
73
|
+
state.toolCalls.set(tc.id, tc);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
this.stateByCallId.set(proto.id, state);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
28
79
|
/**
|
|
29
80
|
* Called when a "task" tool_started event is observed at depth 0 or 1.
|
|
30
|
-
* Creates a new SubAgentExecution and begins tracking
|
|
81
|
+
* Creates a new SubAgentExecution and begins tracking — or, for a seeded
|
|
82
|
+
* row re-announced by a replayed graph, binds the routing prefix to the
|
|
83
|
+
* row that already exists.
|
|
31
84
|
*
|
|
32
85
|
* @param callId - Provider tool call ID (e.g. "toolu_01HW...")
|
|
33
86
|
* @param args - Tool input arguments (subagent_type, description)
|
|
@@ -37,8 +90,15 @@ export class SubAgentTracker {
|
|
|
37
90
|
* caller provides a synthetic prefix like "tools:<callId>".
|
|
38
91
|
*/
|
|
39
92
|
onTaskToolStarted(callId, args, routingPrefix) {
|
|
40
|
-
|
|
93
|
+
const existing = this.stateByCallId.get(callId);
|
|
94
|
+
if (existing) {
|
|
95
|
+
if (existing.namespacePrefix === "") {
|
|
96
|
+
const bound = { ...existing, namespacePrefix: routingPrefix };
|
|
97
|
+
this.stateByCallId.set(callId, bound);
|
|
98
|
+
this.stateByPrefix.set(routingPrefix, bound);
|
|
99
|
+
}
|
|
41
100
|
return;
|
|
101
|
+
}
|
|
42
102
|
const name = safeString(args, "subagent_type") || "task";
|
|
43
103
|
const description = safeString(args, "description") || "";
|
|
44
104
|
const proto = create(SubAgentExecutionSchema, {
|
|
@@ -49,16 +109,7 @@ export class SubAgentTracker {
|
|
|
49
109
|
status: SubAgentStatus.SUB_AGENT_IN_PROGRESS,
|
|
50
110
|
startedAt: utcTimestamp(),
|
|
51
111
|
});
|
|
52
|
-
const state =
|
|
53
|
-
proto,
|
|
54
|
-
callId,
|
|
55
|
-
namespacePrefix: routingPrefix,
|
|
56
|
-
messagesByRun: new Map(),
|
|
57
|
-
currentAiMessage: new Map(),
|
|
58
|
-
lastLlmRunId: new Map(),
|
|
59
|
-
toolCalls: new Map(),
|
|
60
|
-
toolArgBuffers: new Map(),
|
|
61
|
-
};
|
|
112
|
+
const state = newSubAgentState(proto, callId, routingPrefix);
|
|
62
113
|
this.executions.push(proto);
|
|
63
114
|
this.stateByCallId.set(callId, state);
|
|
64
115
|
this.stateByPrefix.set(routingPrefix, state);
|
|
@@ -88,16 +139,14 @@ export class SubAgentTracker {
|
|
|
88
139
|
this.finalizeStreamingMessages(state);
|
|
89
140
|
}
|
|
90
141
|
/**
|
|
91
|
-
*
|
|
142
|
+
* Clear the streaming flag on every tracked sub-agent's in-flight
|
|
143
|
+
* messages. Called when the turn stops before the sub-agents finished;
|
|
144
|
+
* the rows' own CANCELLED transition is the caller's, through the shared
|
|
145
|
+
* `cancelInProgressSubAgentProtos` (see the header).
|
|
92
146
|
*/
|
|
93
|
-
|
|
147
|
+
finalizeAllStreaming() {
|
|
94
148
|
for (const state of this.stateByCallId.values()) {
|
|
95
|
-
|
|
96
|
-
state.proto.status = SubAgentStatus.SUB_AGENT_CANCELLED;
|
|
97
|
-
state.proto.completedAt = utcTimestamp();
|
|
98
|
-
state.proto.error = "Cancelled: parent execution was cancelled";
|
|
99
|
-
this.finalizeStreamingMessages(state);
|
|
100
|
-
}
|
|
149
|
+
this.finalizeStreamingMessages(state);
|
|
101
150
|
}
|
|
102
151
|
}
|
|
103
152
|
/**
|
|
@@ -143,7 +192,7 @@ export class SubAgentTracker {
|
|
|
143
192
|
this.handleToolCallArgDelta(state, event.callId, event.argsChunk);
|
|
144
193
|
break;
|
|
145
194
|
case "message_finish":
|
|
146
|
-
this.handleMessageFinish(state, event.runId
|
|
195
|
+
this.handleMessageFinish(state, event.runId);
|
|
147
196
|
break;
|
|
148
197
|
case "tool_started":
|
|
149
198
|
this.handleToolStarted(state, event.callId, event.name, event.input, localNs);
|
|
@@ -163,18 +212,6 @@ export class SubAgentTracker {
|
|
|
163
212
|
break;
|
|
164
213
|
}
|
|
165
214
|
}
|
|
166
|
-
/**
|
|
167
|
-
* Returns the current list of SubAgentExecution protos for persist.
|
|
168
|
-
*/
|
|
169
|
-
getExecutions() {
|
|
170
|
-
return this.executions;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Returns true if any sub-agents are being tracked.
|
|
174
|
-
*/
|
|
175
|
-
hasExecutions() {
|
|
176
|
-
return this.executions.length > 0;
|
|
177
|
-
}
|
|
178
215
|
// ── Message Handlers ─────────────────────────────────────────────────────
|
|
179
216
|
handleMessageStart(state, runId, localNs) {
|
|
180
217
|
const lastRunId = state.lastLlmRunId.get(localNs);
|
|
@@ -207,12 +244,12 @@ export class SubAgentTracker {
|
|
|
207
244
|
state.proto.messages.push(msg);
|
|
208
245
|
state.messagesByRun.set(thinkingKey, msg);
|
|
209
246
|
}
|
|
210
|
-
handleMessageFinish(state, runId
|
|
247
|
+
handleMessageFinish(state, runId) {
|
|
211
248
|
const msg = state.messagesByRun.get(runId);
|
|
212
249
|
if (msg)
|
|
213
250
|
msg.isStreaming = false;
|
|
214
|
-
//
|
|
215
|
-
|
|
251
|
+
// The usage on this event was reported by `V3StatusBuilder.processEvent`
|
|
252
|
+
// before it routed here (Q-M2b-1); the tracker owns the transcript only.
|
|
216
253
|
}
|
|
217
254
|
// ── Tool Handlers ──────────────────────────────────────────────────────
|
|
218
255
|
handleToolStarted(state, callId, name, input, localNs) {
|