@stigmer/runner 3.0.1
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 +212 -0
- package/dist/.build-fingerprint +1 -0
- package/dist/activities/call-agent-status.d.ts +37 -0
- package/dist/activities/call-agent-status.js +91 -0
- package/dist/activities/call-agent-status.js.map +1 -0
- package/dist/activities/call-agent.d.ts +25 -0
- package/dist/activities/call-agent.js +233 -0
- package/dist/activities/call-agent.js.map +1 -0
- package/dist/activities/call-eval.d.ts +50 -0
- package/dist/activities/call-eval.js +244 -0
- package/dist/activities/call-eval.js.map +1 -0
- package/dist/activities/call-function.d.ts +21 -0
- package/dist/activities/call-function.js +54 -0
- package/dist/activities/call-function.js.map +1 -0
- package/dist/activities/call-grpc.d.ts +22 -0
- package/dist/activities/call-grpc.js +101 -0
- package/dist/activities/call-grpc.js.map +1 -0
- package/dist/activities/call-http.d.ts +32 -0
- package/dist/activities/call-http.js +134 -0
- package/dist/activities/call-http.js.map +1 -0
- package/dist/activities/call-llm.d.ts +39 -0
- package/dist/activities/call-llm.js +260 -0
- package/dist/activities/call-llm.js.map +1 -0
- package/dist/activities/call-transform.d.ts +20 -0
- package/dist/activities/call-transform.js +33 -0
- package/dist/activities/call-transform.js.map +1 -0
- package/dist/activities/call-validate.d.ts +41 -0
- package/dist/activities/call-validate.js +163 -0
- package/dist/activities/call-validate.js.map +1 -0
- package/dist/activities/classify-tool-approvals.d.ts +47 -0
- package/dist/activities/classify-tool-approvals.js +207 -0
- package/dist/activities/classify-tool-approvals.js.map +1 -0
- package/dist/activities/discover-mcp-server.d.ts +65 -0
- package/dist/activities/discover-mcp-server.js +269 -0
- package/dist/activities/discover-mcp-server.js.map +1 -0
- package/dist/activities/emit-event.d.ts +46 -0
- package/dist/activities/emit-event.js +125 -0
- package/dist/activities/emit-event.js.map +1 -0
- package/dist/activities/ensure-thread.d.ts +24 -0
- package/dist/activities/ensure-thread.js +44 -0
- package/dist/activities/ensure-thread.js.map +1 -0
- package/dist/activities/evaluate-expressions.d.ts +21 -0
- package/dist/activities/evaluate-expressions.js +39 -0
- package/dist/activities/evaluate-expressions.js.map +1 -0
- package/dist/activities/execute-cursor/approval-policy.d.ts +104 -0
- package/dist/activities/execute-cursor/approval-policy.js +193 -0
- package/dist/activities/execute-cursor/approval-policy.js.map +1 -0
- package/dist/activities/execute-cursor/approval-state.d.ts +157 -0
- package/dist/activities/execute-cursor/approval-state.js +223 -0
- package/dist/activities/execute-cursor/approval-state.js.map +1 -0
- package/dist/activities/execute-cursor/attachment-resolver.d.ts +19 -0
- package/dist/activities/execute-cursor/attachment-resolver.js +52 -0
- package/dist/activities/execute-cursor/attachment-resolver.js.map +1 -0
- package/dist/activities/execute-cursor/blueprint-resolver.d.ts +66 -0
- package/dist/activities/execute-cursor/blueprint-resolver.js +169 -0
- package/dist/activities/execute-cursor/blueprint-resolver.js.map +1 -0
- package/dist/activities/execute-cursor/connect-backfill.d.ts +18 -0
- package/dist/activities/execute-cursor/connect-backfill.js +27 -0
- package/dist/activities/execute-cursor/connect-backfill.js.map +1 -0
- package/dist/activities/execute-cursor/cursor-event-recorder.d.ts +24 -0
- package/dist/activities/execute-cursor/cursor-event-recorder.js +66 -0
- package/dist/activities/execute-cursor/cursor-event-recorder.js.map +1 -0
- package/dist/activities/execute-cursor/cursor-mode.d.ts +32 -0
- package/dist/activities/execute-cursor/cursor-mode.js +36 -0
- package/dist/activities/execute-cursor/cursor-mode.js.map +1 -0
- package/dist/activities/execute-cursor/delta-enricher.d.ts +87 -0
- package/dist/activities/execute-cursor/delta-enricher.js +265 -0
- package/dist/activities/execute-cursor/delta-enricher.js.map +1 -0
- package/dist/activities/execute-cursor/env-resolver.d.ts +19 -0
- package/dist/activities/execute-cursor/env-resolver.js +47 -0
- package/dist/activities/execute-cursor/env-resolver.js.map +1 -0
- package/dist/activities/execute-cursor/error-classifier.d.ts +73 -0
- package/dist/activities/execute-cursor/error-classifier.js +185 -0
- package/dist/activities/execute-cursor/error-classifier.js.map +1 -0
- package/dist/activities/execute-cursor/fetch-interceptor.d.ts +59 -0
- package/dist/activities/execute-cursor/fetch-interceptor.js +317 -0
- package/dist/activities/execute-cursor/fetch-interceptor.js.map +1 -0
- package/dist/activities/execute-cursor/hitl-diagnostics.d.ts +32 -0
- package/dist/activities/execute-cursor/hitl-diagnostics.js +73 -0
- package/dist/activities/execute-cursor/hitl-diagnostics.js.map +1 -0
- package/dist/activities/execute-cursor/hook-script.d.ts +47 -0
- package/dist/activities/execute-cursor/hook-script.js +156 -0
- package/dist/activities/execute-cursor/hook-script.js.map +1 -0
- package/dist/activities/execute-cursor/http2-interceptor.d.ts +94 -0
- package/dist/activities/execute-cursor/http2-interceptor.js +209 -0
- package/dist/activities/execute-cursor/http2-interceptor.js.map +1 -0
- package/dist/activities/execute-cursor/index.d.ts +67 -0
- package/dist/activities/execute-cursor/index.js +1176 -0
- package/dist/activities/execute-cursor/index.js.map +1 -0
- package/dist/activities/execute-cursor/mcp-config.d.ts +30 -0
- package/dist/activities/execute-cursor/mcp-config.js +39 -0
- package/dist/activities/execute-cursor/mcp-config.js.map +1 -0
- package/dist/activities/execute-cursor/mcp-resolver.d.ts +91 -0
- package/dist/activities/execute-cursor/mcp-resolver.js +178 -0
- package/dist/activities/execute-cursor/mcp-resolver.js.map +1 -0
- package/dist/activities/execute-cursor/message-translator.d.ts +211 -0
- package/dist/activities/execute-cursor/message-translator.js +786 -0
- package/dist/activities/execute-cursor/message-translator.js.map +1 -0
- package/dist/activities/execute-cursor/model-pricing-data.d.ts +40 -0
- package/dist/activities/execute-cursor/model-pricing-data.js +114 -0
- package/dist/activities/execute-cursor/model-pricing-data.js.map +1 -0
- package/dist/activities/execute-cursor/model-pricing.d.ts +42 -0
- package/dist/activities/execute-cursor/model-pricing.js +141 -0
- package/dist/activities/execute-cursor/model-pricing.js.map +1 -0
- package/dist/activities/execute-cursor/placeholder-resolver.d.ts +34 -0
- package/dist/activities/execute-cursor/placeholder-resolver.js +82 -0
- package/dist/activities/execute-cursor/placeholder-resolver.js.map +1 -0
- package/dist/activities/execute-cursor/prompt-builder.d.ts +80 -0
- package/dist/activities/execute-cursor/prompt-builder.js +280 -0
- package/dist/activities/execute-cursor/prompt-builder.js.map +1 -0
- package/dist/activities/execute-cursor/rejection-capture.d.ts +30 -0
- package/dist/activities/execute-cursor/rejection-capture.js +80 -0
- package/dist/activities/execute-cursor/rejection-capture.js.map +1 -0
- package/dist/activities/execute-cursor/session-lifecycle.d.ts +189 -0
- package/dist/activities/execute-cursor/session-lifecycle.js +285 -0
- package/dist/activities/execute-cursor/session-lifecycle.js.map +1 -0
- package/dist/activities/execute-cursor/skill-resolver.d.ts +29 -0
- package/dist/activities/execute-cursor/skill-resolver.js +134 -0
- package/dist/activities/execute-cursor/skill-resolver.js.map +1 -0
- package/dist/activities/execute-cursor/subagent-config.d.ts +34 -0
- package/dist/activities/execute-cursor/subagent-config.js +55 -0
- package/dist/activities/execute-cursor/subagent-config.js.map +1 -0
- package/dist/activities/execute-cursor/todo-tracker.d.ts +35 -0
- package/dist/activities/execute-cursor/todo-tracker.js +108 -0
- package/dist/activities/execute-cursor/todo-tracker.js.map +1 -0
- package/dist/activities/execute-cursor/usage-accumulator.d.ts +55 -0
- package/dist/activities/execute-cursor/usage-accumulator.js +89 -0
- package/dist/activities/execute-cursor/usage-accumulator.js.map +1 -0
- package/dist/activities/execute-cursor/workspace-provision.d.ts +22 -0
- package/dist/activities/execute-cursor/workspace-provision.js +37 -0
- package/dist/activities/execute-cursor/workspace-provision.js.map +1 -0
- package/dist/activities/execute-cursor/workspace-setup.d.ts +27 -0
- package/dist/activities/execute-cursor/workspace-setup.js +61 -0
- package/dist/activities/execute-cursor/workspace-setup.js.map +1 -0
- package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.d.ts +71 -0
- package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js +182 -0
- package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js.map +1 -0
- package/dist/activities/execute-deep-agent/attachment-injector.d.ts +67 -0
- package/dist/activities/execute-deep-agent/attachment-injector.js +306 -0
- package/dist/activities/execute-deep-agent/attachment-injector.js.map +1 -0
- package/dist/activities/execute-deep-agent/auto-publish.d.ts +17 -0
- package/dist/activities/execute-deep-agent/auto-publish.js +71 -0
- package/dist/activities/execute-deep-agent/auto-publish.js.map +1 -0
- package/dist/activities/execute-deep-agent/environment.d.ts +24 -0
- package/dist/activities/execute-deep-agent/environment.js +50 -0
- package/dist/activities/execute-deep-agent/environment.js.map +1 -0
- package/dist/activities/execute-deep-agent/event-recorder.d.ts +21 -0
- package/dist/activities/execute-deep-agent/event-recorder.js +67 -0
- package/dist/activities/execute-deep-agent/event-recorder.js.map +1 -0
- package/dist/activities/execute-deep-agent/execution-state.d.ts +61 -0
- package/dist/activities/execute-deep-agent/execution-state.js +76 -0
- package/dist/activities/execute-deep-agent/execution-state.js.map +1 -0
- package/dist/activities/execute-deep-agent/execution-status-writer.d.ts +17 -0
- package/dist/activities/execute-deep-agent/execution-status-writer.js +9 -0
- package/dist/activities/execute-deep-agent/execution-status-writer.js.map +1 -0
- package/dist/activities/execute-deep-agent/hitl.d.ts +58 -0
- package/dist/activities/execute-deep-agent/hitl.js +155 -0
- package/dist/activities/execute-deep-agent/hitl.js.map +1 -0
- package/dist/activities/execute-deep-agent/index.d.ts +14 -0
- package/dist/activities/execute-deep-agent/index.js +286 -0
- package/dist/activities/execute-deep-agent/index.js.map +1 -0
- package/dist/activities/execute-deep-agent/inline-publisher.d.ts +36 -0
- package/dist/activities/execute-deep-agent/inline-publisher.js +105 -0
- package/dist/activities/execute-deep-agent/inline-publisher.js.map +1 -0
- package/dist/activities/execute-deep-agent/post-stream.d.ts +23 -0
- package/dist/activities/execute-deep-agent/post-stream.js +71 -0
- package/dist/activities/execute-deep-agent/post-stream.js.map +1 -0
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +27 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js +200 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -0
- package/dist/activities/execute-deep-agent/setup.d.ts +55 -0
- package/dist/activities/execute-deep-agent/setup.js +411 -0
- package/dist/activities/execute-deep-agent/setup.js.map +1 -0
- package/dist/activities/execute-deep-agent/status-builder-shared.d.ts +39 -0
- package/dist/activities/execute-deep-agent/status-builder-shared.js +120 -0
- package/dist/activities/execute-deep-agent/status-builder-shared.js.map +1 -0
- package/dist/activities/execute-deep-agent/status-builder.d.ts +81 -0
- package/dist/activities/execute-deep-agent/status-builder.js +312 -0
- package/dist/activities/execute-deep-agent/status-builder.js.map +1 -0
- package/dist/activities/execute-deep-agent/streaming-scheduler.d.ts +60 -0
- package/dist/activities/execute-deep-agent/streaming-scheduler.js +114 -0
- package/dist/activities/execute-deep-agent/streaming-scheduler.js.map +1 -0
- package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +22 -0
- package/dist/activities/execute-deep-agent/streaming-side-effects.js +83 -0
- package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -0
- package/dist/activities/execute-deep-agent/streaming-terminal.d.ts +12 -0
- package/dist/activities/execute-deep-agent/streaming-terminal.js +71 -0
- package/dist/activities/execute-deep-agent/streaming-terminal.js.map +1 -0
- package/dist/activities/execute-deep-agent/streaming-v3.d.ts +13 -0
- package/dist/activities/execute-deep-agent/streaming-v3.js +170 -0
- package/dist/activities/execute-deep-agent/streaming-v3.js.map +1 -0
- package/dist/activities/execute-deep-agent/streaming.d.ts +66 -0
- package/dist/activities/execute-deep-agent/streaming.js +169 -0
- package/dist/activities/execute-deep-agent/streaming.js.map +1 -0
- package/dist/activities/execute-deep-agent/subagent-tracker.d.ts +90 -0
- package/dist/activities/execute-deep-agent/subagent-tracker.js +364 -0
- package/dist/activities/execute-deep-agent/subagent-tracker.js.map +1 -0
- package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +150 -0
- package/dist/activities/execute-deep-agent/subagent-transformer.js +450 -0
- package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -0
- package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +28 -0
- package/dist/activities/execute-deep-agent/subagent-wiring.js +40 -0
- package/dist/activities/execute-deep-agent/subagent-wiring.js.map +1 -0
- package/dist/activities/execute-deep-agent/v3-event-recorder.d.ts +31 -0
- package/dist/activities/execute-deep-agent/v3-event-recorder.js +71 -0
- package/dist/activities/execute-deep-agent/v3-event-recorder.js.map +1 -0
- package/dist/activities/execute-deep-agent/v3-events.d.ts +102 -0
- package/dist/activities/execute-deep-agent/v3-events.js +35 -0
- package/dist/activities/execute-deep-agent/v3-events.js.map +1 -0
- package/dist/activities/execute-deep-agent/v3-protocol-normalizer.d.ts +15 -0
- package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js +235 -0
- package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js.map +1 -0
- package/dist/activities/execute-deep-agent/v3-status-builder.d.ts +68 -0
- package/dist/activities/execute-deep-agent/v3-status-builder.js +394 -0
- package/dist/activities/execute-deep-agent/v3-status-builder.js.map +1 -0
- package/dist/activities/execute-deep-agent/writeback-coordinator.d.ts +71 -0
- package/dist/activities/execute-deep-agent/writeback-coordinator.js +295 -0
- package/dist/activities/execute-deep-agent/writeback-coordinator.js.map +1 -0
- package/dist/activities/hydrate-workflow-execution.d.ts +32 -0
- package/dist/activities/hydrate-workflow-execution.js +212 -0
- package/dist/activities/hydrate-workflow-execution.js.map +1 -0
- package/dist/activities/notification.d.ts +19 -0
- package/dist/activities/notification.js +47 -0
- package/dist/activities/notification.js.map +1 -0
- package/dist/activities/promote-task-output.d.ts +38 -0
- package/dist/activities/promote-task-output.js +90 -0
- package/dist/activities/promote-task-output.js.map +1 -0
- package/dist/activities/run-command.d.ts +15 -0
- package/dist/activities/run-command.js +123 -0
- package/dist/activities/run-command.js.map +1 -0
- package/dist/activities/workflow-event-activities.d.ts +48 -0
- package/dist/activities/workflow-event-activities.js +415 -0
- package/dist/activities/workflow-event-activities.js.map +1 -0
- package/dist/bootstrap.d.ts +80 -0
- package/dist/bootstrap.js +114 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/budget/index.d.ts +1 -0
- package/dist/budget/index.js +2 -0
- package/dist/budget/index.js.map +1 -0
- package/dist/budget/tracker.d.ts +52 -0
- package/dist/budget/tracker.js +123 -0
- package/dist/budget/tracker.js.map +1 -0
- package/dist/claimcheck/compressor.d.ts +2 -0
- package/dist/claimcheck/compressor.js +8 -0
- package/dist/claimcheck/compressor.js.map +1 -0
- package/dist/claimcheck/config.d.ts +7 -0
- package/dist/claimcheck/config.js +10 -0
- package/dist/claimcheck/config.js.map +1 -0
- package/dist/claimcheck/index.d.ts +3 -0
- package/dist/claimcheck/index.js +4 -0
- package/dist/claimcheck/index.js.map +1 -0
- package/dist/claimcheck/payload-codec.d.ts +23 -0
- package/dist/claimcheck/payload-codec.js +81 -0
- package/dist/claimcheck/payload-codec.js.map +1 -0
- package/dist/client/server-contracts.d.ts +52 -0
- package/dist/client/server-contracts.js +72 -0
- package/dist/client/server-contracts.js.map +1 -0
- package/dist/client/stigmer-client.d.ts +131 -0
- package/dist/client/stigmer-client.js +239 -0
- package/dist/client/stigmer-client.js.map +1 -0
- package/dist/config.d.ts +64 -0
- package/dist/config.js +123 -0
- package/dist/config.js.map +1 -0
- package/dist/idle-watchdog.d.ts +11 -0
- package/dist/idle-watchdog.js +24 -0
- package/dist/idle-watchdog.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/workflow-metrics-sink.d.ts +11 -0
- package/dist/interceptors/workflow-metrics-sink.js +51 -0
- package/dist/interceptors/workflow-metrics-sink.js.map +1 -0
- package/dist/ipc-protocol-fixtures.d.ts +32 -0
- package/dist/ipc-protocol-fixtures.js +69 -0
- package/dist/ipc-protocol-fixtures.js.map +1 -0
- package/dist/ipc-protocol.d.ts +60 -0
- package/dist/ipc-protocol.js +19 -0
- package/dist/ipc-protocol.js.map +1 -0
- package/dist/main.d.ts +19 -0
- package/dist/main.js +292 -0
- package/dist/main.js.map +1 -0
- package/dist/middleware/approval-gate.d.ts +30 -0
- package/dist/middleware/approval-gate.js +125 -0
- package/dist/middleware/approval-gate.js.map +1 -0
- package/dist/middleware/cost-cap.d.ts +22 -0
- package/dist/middleware/cost-cap.js +159 -0
- package/dist/middleware/cost-cap.js.map +1 -0
- package/dist/middleware/error-hints.d.ts +27 -0
- package/dist/middleware/error-hints.js +116 -0
- package/dist/middleware/error-hints.js.map +1 -0
- package/dist/middleware/execution-budget.d.ts +20 -0
- package/dist/middleware/execution-budget.js +151 -0
- package/dist/middleware/execution-budget.js.map +1 -0
- package/dist/middleware/graceful-stop.d.ts +17 -0
- package/dist/middleware/graceful-stop.js +63 -0
- package/dist/middleware/graceful-stop.js.map +1 -0
- package/dist/middleware/index.d.ts +27 -0
- package/dist/middleware/index.js +45 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/loop-detection.d.ts +14 -0
- package/dist/middleware/loop-detection.js +156 -0
- package/dist/middleware/loop-detection.js.map +1 -0
- package/dist/middleware/otel-spans.d.ts +11 -0
- package/dist/middleware/otel-spans.js +177 -0
- package/dist/middleware/otel-spans.js.map +1 -0
- package/dist/middleware/think-tool.d.ts +23 -0
- package/dist/middleware/think-tool.js +33 -0
- package/dist/middleware/think-tool.js.map +1 -0
- package/dist/middleware/tool-truncation.d.ts +16 -0
- package/dist/middleware/tool-truncation.js +67 -0
- package/dist/middleware/tool-truncation.js.map +1 -0
- package/dist/middleware/types.d.ts +100 -0
- package/dist/middleware/types.js +9 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/notification/index.d.ts +2 -0
- package/dist/notification/index.js +6 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/notification/provider.d.ts +29 -0
- package/dist/notification/provider.js +25 -0
- package/dist/notification/provider.js.map +1 -0
- package/dist/notification/webhook.d.ts +13 -0
- package/dist/notification/webhook.js +55 -0
- package/dist/notification/webhook.js.map +1 -0
- package/dist/otel-metrics.d.ts +21 -0
- package/dist/otel-metrics.js +54 -0
- package/dist/otel-metrics.js.map +1 -0
- package/dist/otel.d.ts +57 -0
- package/dist/otel.js +164 -0
- package/dist/otel.js.map +1 -0
- package/dist/runner-manager.d.ts +113 -0
- package/dist/runner-manager.js +412 -0
- package/dist/runner-manager.js.map +1 -0
- package/dist/runner-token-coordinator.d.ts +56 -0
- package/dist/runner-token-coordinator.js +84 -0
- package/dist/runner-token-coordinator.js.map +1 -0
- package/dist/runner.d.ts +104 -0
- package/dist/runner.js +234 -0
- package/dist/runner.js.map +1 -0
- package/dist/shared/approval-policy.d.ts +45 -0
- package/dist/shared/approval-policy.js +122 -0
- package/dist/shared/approval-policy.js.map +1 -0
- package/dist/shared/artifact-storage.d.ts +44 -0
- package/dist/shared/artifact-storage.js +162 -0
- package/dist/shared/artifact-storage.js.map +1 -0
- package/dist/shared/checkpointer/factory.d.ts +28 -0
- package/dist/shared/checkpointer/factory.js +55 -0
- package/dist/shared/checkpointer/factory.js.map +1 -0
- package/dist/shared/checkpointer/http-saver.d.ts +34 -0
- package/dist/shared/checkpointer/http-saver.js +274 -0
- package/dist/shared/checkpointer/http-saver.js.map +1 -0
- package/dist/shared/checkpointer/types.d.ts +12 -0
- package/dist/shared/checkpointer/types.js +2 -0
- package/dist/shared/checkpointer/types.js.map +1 -0
- package/dist/shared/connect-backfill.d.ts +58 -0
- package/dist/shared/connect-backfill.js +119 -0
- package/dist/shared/connect-backfill.js.map +1 -0
- package/dist/shared/extract-json.d.ts +26 -0
- package/dist/shared/extract-json.js +140 -0
- package/dist/shared/extract-json.js.map +1 -0
- package/dist/shared/grpc-retry.d.ts +35 -0
- package/dist/shared/grpc-retry.js +78 -0
- package/dist/shared/grpc-retry.js.map +1 -0
- package/dist/shared/heartbeat.d.ts +22 -0
- package/dist/shared/heartbeat.js +55 -0
- package/dist/shared/heartbeat.js.map +1 -0
- package/dist/shared/json-schema-to-zod.d.ts +13 -0
- package/dist/shared/json-schema-to-zod.js +49 -0
- package/dist/shared/json-schema-to-zod.js.map +1 -0
- package/dist/shared/llm-proxy.d.ts +57 -0
- package/dist/shared/llm-proxy.js +116 -0
- package/dist/shared/llm-proxy.js.map +1 -0
- package/dist/shared/mcp-manager.d.ts +47 -0
- package/dist/shared/mcp-manager.js +118 -0
- package/dist/shared/mcp-manager.js.map +1 -0
- package/dist/shared/mcp-resolver.d.ts +41 -0
- package/dist/shared/mcp-resolver.js +96 -0
- package/dist/shared/mcp-resolver.js.map +1 -0
- package/dist/shared/model-pricing-data.d.ts +18 -0
- package/dist/shared/model-pricing-data.js +78 -0
- package/dist/shared/model-pricing-data.js.map +1 -0
- package/dist/shared/model-pricing.d.ts +24 -0
- package/dist/shared/model-pricing.js +58 -0
- package/dist/shared/model-pricing.js.map +1 -0
- package/dist/shared/model-registry.d.ts +55 -0
- package/dist/shared/model-registry.js +178 -0
- package/dist/shared/model-registry.js.map +1 -0
- package/dist/shared/placeholder-resolver.d.ts +27 -0
- package/dist/shared/placeholder-resolver.js +75 -0
- package/dist/shared/placeholder-resolver.js.map +1 -0
- package/dist/shared/plan-artifact.d.ts +56 -0
- package/dist/shared/plan-artifact.js +98 -0
- package/dist/shared/plan-artifact.js.map +1 -0
- package/dist/shared/skill-relevance.d.ts +65 -0
- package/dist/shared/skill-relevance.js +175 -0
- package/dist/shared/skill-relevance.js.map +1 -0
- package/dist/shared/skill-writer.d.ts +73 -0
- package/dist/shared/skill-writer.js +230 -0
- package/dist/shared/skill-writer.js.map +1 -0
- package/dist/shared/status.d.ts +37 -0
- package/dist/shared/status.js +73 -0
- package/dist/shared/status.js.map +1 -0
- package/dist/shared/subagent-gate.d.ts +41 -0
- package/dist/shared/subagent-gate.js +93 -0
- package/dist/shared/subagent-gate.js.map +1 -0
- package/dist/shared/tool-kind.d.ts +22 -0
- package/dist/shared/tool-kind.js +79 -0
- package/dist/shared/tool-kind.js.map +1 -0
- package/dist/shared/workspace/file-tree.d.ts +13 -0
- package/dist/shared/workspace/file-tree.js +101 -0
- package/dist/shared/workspace/file-tree.js.map +1 -0
- package/dist/shared/workspace/local-backend.d.ts +41 -0
- package/dist/shared/workspace/local-backend.js +113 -0
- package/dist/shared/workspace/local-backend.js.map +1 -0
- package/dist/shared/workspace/platform-dir.d.ts +25 -0
- package/dist/shared/workspace/platform-dir.js +36 -0
- package/dist/shared/workspace/platform-dir.js.map +1 -0
- package/dist/shared/workspace/platform-mount.d.ts +95 -0
- package/dist/shared/workspace/platform-mount.js +157 -0
- package/dist/shared/workspace/platform-mount.js.map +1 -0
- package/dist/shared/workspace/provisioner.d.ts +47 -0
- package/dist/shared/workspace/provisioner.js +84 -0
- package/dist/shared/workspace/provisioner.js.map +1 -0
- package/dist/shared/workspace/sources/empty.d.ts +8 -0
- package/dist/shared/workspace/sources/empty.js +18 -0
- package/dist/shared/workspace/sources/empty.js.map +1 -0
- package/dist/shared/workspace/sources/git.d.ts +22 -0
- package/dist/shared/workspace/sources/git.js +207 -0
- package/dist/shared/workspace/sources/git.js.map +1 -0
- package/dist/shared/workspace/sources/local-path.d.ts +17 -0
- package/dist/shared/workspace/sources/local-path.js +57 -0
- package/dist/shared/workspace/sources/local-path.js.map +1 -0
- package/dist/shared/workspace/types.d.ts +58 -0
- package/dist/shared/workspace/types.js +25 -0
- package/dist/shared/workspace/types.js.map +1 -0
- package/dist/shared/zip-extract.d.ts +30 -0
- package/dist/shared/zip-extract.js +150 -0
- package/dist/shared/zip-extract.js.map +1 -0
- package/dist/worker.d.ts +27 -0
- package/dist/worker.js +65 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow-engine/clone.d.ts +11 -0
- package/dist/workflow-engine/clone.js +21 -0
- package/dist/workflow-engine/clone.js.map +1 -0
- package/dist/workflow-engine/do-executor.d.ts +27 -0
- package/dist/workflow-engine/do-executor.js +418 -0
- package/dist/workflow-engine/do-executor.js.map +1 -0
- package/dist/workflow-engine/duration.d.ts +12 -0
- package/dist/workflow-engine/duration.js +25 -0
- package/dist/workflow-engine/duration.js.map +1 -0
- package/dist/workflow-engine/error-utils.d.ts +42 -0
- package/dist/workflow-engine/error-utils.js +77 -0
- package/dist/workflow-engine/error-utils.js.map +1 -0
- package/dist/workflow-engine/errors.d.ts +46 -0
- package/dist/workflow-engine/errors.js +105 -0
- package/dist/workflow-engine/errors.js.map +1 -0
- package/dist/workflow-engine/expression-utils.d.ts +60 -0
- package/dist/workflow-engine/expression-utils.js +108 -0
- package/dist/workflow-engine/expression-utils.js.map +1 -0
- package/dist/workflow-engine/expression.d.ts +132 -0
- package/dist/workflow-engine/expression.js +366 -0
- package/dist/workflow-engine/expression.js.map +1 -0
- package/dist/workflow-engine/loader.d.ts +23 -0
- package/dist/workflow-engine/loader.js +429 -0
- package/dist/workflow-engine/loader.js.map +1 -0
- package/dist/workflow-engine/recovery.d.ts +53 -0
- package/dist/workflow-engine/recovery.js +46 -0
- package/dist/workflow-engine/recovery.js.map +1 -0
- package/dist/workflow-engine/resolve.d.ts +83 -0
- package/dist/workflow-engine/resolve.js +257 -0
- package/dist/workflow-engine/resolve.js.map +1 -0
- package/dist/workflow-engine/retry.d.ts +30 -0
- package/dist/workflow-engine/retry.js +97 -0
- package/dist/workflow-engine/retry.js.map +1 -0
- package/dist/workflow-engine/state.d.ts +26 -0
- package/dist/workflow-engine/state.js +49 -0
- package/dist/workflow-engine/state.js.map +1 -0
- package/dist/workflow-engine/task-factory.d.ts +20 -0
- package/dist/workflow-engine/task-factory.js +133 -0
- package/dist/workflow-engine/task-factory.js.map +1 -0
- package/dist/workflow-engine/task-status-accumulator.d.ts +59 -0
- package/dist/workflow-engine/task-status-accumulator.js +164 -0
- package/dist/workflow-engine/task-status-accumulator.js.map +1 -0
- package/dist/workflow-engine/tasks/call-agent-output.d.ts +26 -0
- package/dist/workflow-engine/tasks/call-agent-output.js +109 -0
- package/dist/workflow-engine/tasks/call-agent-output.js.map +1 -0
- package/dist/workflow-engine/tasks/call-agent.d.ts +31 -0
- package/dist/workflow-engine/tasks/call-agent.js +161 -0
- package/dist/workflow-engine/tasks/call-agent.js.map +1 -0
- package/dist/workflow-engine/tasks/call-function.d.ts +19 -0
- package/dist/workflow-engine/tasks/call-function.js +64 -0
- package/dist/workflow-engine/tasks/call-function.js.map +1 -0
- package/dist/workflow-engine/tasks/call-grpc.d.ts +15 -0
- package/dist/workflow-engine/tasks/call-grpc.js +27 -0
- package/dist/workflow-engine/tasks/call-grpc.js.map +1 -0
- package/dist/workflow-engine/tasks/call-http.d.ts +19 -0
- package/dist/workflow-engine/tasks/call-http.js +31 -0
- package/dist/workflow-engine/tasks/call-http.js.map +1 -0
- package/dist/workflow-engine/tasks/for.d.ts +39 -0
- package/dist/workflow-engine/tasks/for.js +154 -0
- package/dist/workflow-engine/tasks/for.js.map +1 -0
- package/dist/workflow-engine/tasks/fork.d.ts +42 -0
- package/dist/workflow-engine/tasks/fork.js +142 -0
- package/dist/workflow-engine/tasks/fork.js.map +1 -0
- package/dist/workflow-engine/tasks/human-input.d.ts +33 -0
- package/dist/workflow-engine/tasks/human-input.js +109 -0
- package/dist/workflow-engine/tasks/human-input.js.map +1 -0
- package/dist/workflow-engine/tasks/listen.d.ts +34 -0
- package/dist/workflow-engine/tasks/listen.js +119 -0
- package/dist/workflow-engine/tasks/listen.js.map +1 -0
- package/dist/workflow-engine/tasks/raise.d.ts +18 -0
- package/dist/workflow-engine/tasks/raise.js +60 -0
- package/dist/workflow-engine/tasks/raise.js.map +1 -0
- package/dist/workflow-engine/tasks/run.d.ts +39 -0
- package/dist/workflow-engine/tasks/run.js +114 -0
- package/dist/workflow-engine/tasks/run.js.map +1 -0
- package/dist/workflow-engine/tasks/set.d.ts +15 -0
- package/dist/workflow-engine/tasks/set.js +31 -0
- package/dist/workflow-engine/tasks/set.js.map +1 -0
- package/dist/workflow-engine/tasks/switch.d.ts +25 -0
- package/dist/workflow-engine/tasks/switch.js +76 -0
- package/dist/workflow-engine/tasks/switch.js.map +1 -0
- package/dist/workflow-engine/tasks/try.d.ts +49 -0
- package/dist/workflow-engine/tasks/try.js +189 -0
- package/dist/workflow-engine/tasks/try.js.map +1 -0
- package/dist/workflow-engine/tasks/wait.d.ts +24 -0
- package/dist/workflow-engine/tasks/wait.js +39 -0
- package/dist/workflow-engine/tasks/wait.js.map +1 -0
- package/dist/workflow-engine/types.d.ts +682 -0
- package/dist/workflow-engine/types.js +47 -0
- package/dist/workflow-engine/types.js.map +1 -0
- package/dist/workflows/call-agent-orchestrator.d.ts +31 -0
- package/dist/workflows/call-agent-orchestrator.js +214 -0
- package/dist/workflows/call-agent-orchestrator.js.map +1 -0
- package/dist/workflows/connect-mcp-server.d.ts +20 -0
- package/dist/workflows/connect-mcp-server.js +113 -0
- package/dist/workflows/connect-mcp-server.js.map +1 -0
- package/dist/workflows/engine-core.d.ts +36 -0
- package/dist/workflows/engine-core.js +272 -0
- package/dist/workflows/engine-core.js.map +1 -0
- package/dist/workflows/execute-from-execution.d.ts +32 -0
- package/dist/workflows/execute-from-execution.js +71 -0
- package/dist/workflows/execute-from-execution.js.map +1 -0
- package/dist/workflows/execute-serverless-workflow.d.ts +32 -0
- package/dist/workflows/execute-serverless-workflow.js +36 -0
- package/dist/workflows/execute-serverless-workflow.js.map +1 -0
- package/dist/workflows/human-input-orchestrator.d.ts +19 -0
- package/dist/workflows/human-input-orchestrator.js +59 -0
- package/dist/workflows/human-input-orchestrator.js.map +1 -0
- package/dist/workflows/index.d.ts +22 -0
- package/dist/workflows/index.js +23 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/listen-orchestrator.d.ts +29 -0
- package/dist/workflows/listen-orchestrator.js +143 -0
- package/dist/workflows/listen-orchestrator.js.map +1 -0
- package/dist/workflows/metrics-sink.d.ts +33 -0
- package/dist/workflows/metrics-sink.js +21 -0
- package/dist/workflows/metrics-sink.js.map +1 -0
- package/dist/workflows/run-orchestrator.d.ts +15 -0
- package/dist/workflows/run-orchestrator.js +27 -0
- package/dist/workflows/run-orchestrator.js.map +1 -0
- package/dist/workflows/types.d.ts +46 -0
- package/dist/workflows/types.js +15 -0
- package/dist/workflows/types.js.map +1 -0
- package/dist/workflows/workflow-signals.d.ts +29 -0
- package/dist/workflows/workflow-signals.js +46 -0
- package/dist/workflows/workflow-signals.js.map +1 -0
- package/package.json +108 -0
- package/src/__test-utils__/__tests__/replay-fetch.test.ts +155 -0
- package/src/__test-utils__/mock-client.ts +44 -0
- package/src/__test-utils__/mock-workspace.ts +28 -0
- package/src/__test-utils__/proto-helpers.ts +41 -0
- package/src/__test-utils__/replay-fetch.ts +523 -0
- package/src/__tests__/bootstrap.test.ts +221 -0
- package/src/__tests__/claimcheck-codec.test.ts +257 -0
- package/src/__tests__/config.test.ts +150 -0
- package/src/__tests__/deterministic-eval-llm.test.ts +269 -0
- package/src/__tests__/deterministic-mcp-hitl.test.ts +405 -0
- package/src/__tests__/golden-e2e.test.ts +250 -0
- package/src/__tests__/ipc-protocol-fixtures.test.ts +66 -0
- package/src/__tests__/ipc-protocol.test.ts +32 -0
- package/src/__tests__/otel-metrics.test.ts +40 -0
- package/src/__tests__/runner-manager.test.ts +55 -0
- package/src/__tests__/runner-token-coordinator.test.ts +166 -0
- package/src/__tests__/runner.test.ts +182 -0
- package/src/__tests__/worker.test.ts +18 -0
- package/src/activities/__tests__/call-agent-contracts.test.ts +483 -0
- package/src/activities/__tests__/call-agent.test.ts +263 -0
- package/src/activities/__tests__/call-function.test.ts +47 -0
- package/src/activities/__tests__/call-grpc.test.ts +39 -0
- package/src/activities/__tests__/call-http.test.ts +288 -0
- package/src/activities/__tests__/call-llm.test.ts +301 -0
- package/src/activities/__tests__/classify-tool-approvals.test.ts +430 -0
- package/src/activities/__tests__/discover-mcp-server.test.ts +641 -0
- package/src/activities/__tests__/ensure-thread.test.ts +96 -0
- package/src/activities/__tests__/error-classifier.test.ts +372 -0
- package/src/activities/__tests__/evaluate-expressions.test.ts +114 -0
- package/src/activities/__tests__/hydrate-workflow-execution.test.ts +321 -0
- package/src/activities/__tests__/notification.test.ts +151 -0
- package/src/activities/__tests__/workflow-event-activities.test.ts +664 -0
- package/src/activities/call-agent-status.ts +130 -0
- package/src/activities/call-agent.ts +302 -0
- package/src/activities/call-eval.ts +333 -0
- package/src/activities/call-function.ts +73 -0
- package/src/activities/call-grpc.ts +140 -0
- package/src/activities/call-http.ts +185 -0
- package/src/activities/call-llm.ts +379 -0
- package/src/activities/call-transform.ts +54 -0
- package/src/activities/call-validate.ts +223 -0
- package/src/activities/classify-tool-approvals.ts +319 -0
- package/src/activities/discover-mcp-server.ts +411 -0
- package/src/activities/emit-event.ts +195 -0
- package/src/activities/ensure-thread.ts +45 -0
- package/src/activities/evaluate-expressions.ts +47 -0
- package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +188 -0
- package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +111 -0
- package/src/activities/execute-cursor/__tests__/cursor-baseurl-routing.test.ts +86 -0
- package/src/activities/execute-cursor/__tests__/cursor-fetch-interceptor-bypass.test.ts +64 -0
- package/src/activities/execute-cursor/__tests__/cursor-mode.test.ts +95 -0
- package/src/activities/execute-cursor/__tests__/cursor-sdk-auth-smoke.test.ts +90 -0
- package/src/activities/execute-cursor/__tests__/delta-enricher.test.ts +242 -0
- package/src/activities/execute-cursor/__tests__/error-classifier-introspection.test.ts +156 -0
- package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +211 -0
- package/src/activities/execute-cursor/__tests__/hitl-ledger.test.ts +298 -0
- package/src/activities/execute-cursor/__tests__/http2-interceptor.test.ts +360 -0
- package/src/activities/execute-cursor/__tests__/message-translator.test.ts +657 -0
- package/src/activities/execute-cursor/__tests__/model-pricing.test.ts +92 -0
- package/src/activities/execute-cursor/__tests__/prompt-builder-delegation.test.ts +101 -0
- package/src/activities/execute-cursor/__tests__/runner-error-regressions.test.ts +144 -0
- package/src/activities/execute-cursor/__tests__/session-lifecycle.test.ts +65 -0
- package/src/activities/execute-cursor/__tests__/skill-resolver.test.ts +265 -0
- package/src/activities/execute-cursor/__tests__/subagent-config.test.ts +107 -0
- package/src/activities/execute-cursor/__tests__/todo-tracker.test.ts +498 -0
- package/src/activities/execute-cursor/__tests__/workspace-provision.test.ts +283 -0
- package/src/activities/execute-cursor/approval-policy.ts +224 -0
- package/src/activities/execute-cursor/approval-state.ts +311 -0
- package/src/activities/execute-cursor/attachment-resolver.ts +78 -0
- package/src/activities/execute-cursor/blueprint-resolver.ts +234 -0
- package/src/activities/execute-cursor/connect-backfill.ts +49 -0
- package/src/activities/execute-cursor/cursor-event-recorder.ts +83 -0
- package/src/activities/execute-cursor/cursor-mode.ts +42 -0
- package/src/activities/execute-cursor/delta-enricher.ts +307 -0
- package/src/activities/execute-cursor/env-resolver.ts +64 -0
- package/src/activities/execute-cursor/error-classifier.ts +247 -0
- package/src/activities/execute-cursor/fetch-interceptor.ts +382 -0
- package/src/activities/execute-cursor/hitl-diagnostics.ts +82 -0
- package/src/activities/execute-cursor/hook-script.ts +159 -0
- package/src/activities/execute-cursor/http2-interceptor.ts +253 -0
- package/src/activities/execute-cursor/index.ts +1439 -0
- package/src/activities/execute-cursor/mcp-config.ts +66 -0
- package/src/activities/execute-cursor/mcp-resolver.ts +271 -0
- package/src/activities/execute-cursor/message-translator.ts +896 -0
- package/src/activities/execute-cursor/model-pricing-data.ts +167 -0
- package/src/activities/execute-cursor/model-pricing.ts +167 -0
- package/src/activities/execute-cursor/placeholder-resolver.ts +109 -0
- package/src/activities/execute-cursor/prompt-builder.ts +349 -0
- package/src/activities/execute-cursor/rejection-capture.ts +100 -0
- package/src/activities/execute-cursor/session-lifecycle.ts +429 -0
- package/src/activities/execute-cursor/skill-resolver.ts +176 -0
- package/src/activities/execute-cursor/subagent-config.ts +62 -0
- package/src/activities/execute-cursor/todo-tracker.ts +133 -0
- package/src/activities/execute-cursor/usage-accumulator.ts +126 -0
- package/src/activities/execute-cursor/workspace-provision.ts +55 -0
- package/src/activities/execute-cursor/workspace-setup.ts +75 -0
- package/src/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.ts +281 -0
- package/src/activities/execute-deep-agent/__tests__/attachment-injector.test.ts +720 -0
- package/src/activities/execute-deep-agent/__tests__/auto-publish.test.ts +146 -0
- package/src/activities/execute-deep-agent/__tests__/environment.test.ts +103 -0
- package/src/activities/execute-deep-agent/__tests__/event-recorder.test.ts +150 -0
- package/src/activities/execute-deep-agent/__tests__/execution-state-extended.test.ts +150 -0
- package/src/activities/execute-deep-agent/__tests__/execution-state.test.ts +157 -0
- package/src/activities/execute-deep-agent/__tests__/hitl-integration.test.ts +223 -0
- package/src/activities/execute-deep-agent/__tests__/hitl.test.ts +244 -0
- package/src/activities/execute-deep-agent/__tests__/index.test.ts +91 -0
- package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +240 -0
- package/src/activities/execute-deep-agent/__tests__/post-stream.test.ts +112 -0
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +208 -0
- package/src/activities/execute-deep-agent/__tests__/status-builder.test.ts +1771 -0
- package/src/activities/execute-deep-agent/__tests__/streaming-scheduler.test.ts +199 -0
- package/src/activities/execute-deep-agent/__tests__/streaming-v3.test.ts +527 -0
- package/src/activities/execute-deep-agent/__tests__/streaming.test.ts +508 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-tracker.test.ts +474 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-transformer.test.ts +734 -0
- package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +71 -0
- package/src/activities/execute-deep-agent/__tests__/summarization-verification.test.ts +323 -0
- package/src/activities/execute-deep-agent/__tests__/v3-event-recorder.test.ts +186 -0
- package/src/activities/execute-deep-agent/__tests__/v3-protocol-normalizer.test.ts +324 -0
- package/src/activities/execute-deep-agent/__tests__/v3-status-builder.test.ts +504 -0
- package/src/activities/execute-deep-agent/__tests__/writeback-coordinator.test.ts +399 -0
- package/src/activities/execute-deep-agent/attachment-injector.ts +470 -0
- package/src/activities/execute-deep-agent/auto-publish.ts +80 -0
- package/src/activities/execute-deep-agent/environment.ts +67 -0
- package/src/activities/execute-deep-agent/event-recorder.ts +95 -0
- package/src/activities/execute-deep-agent/execution-state.ts +87 -0
- package/src/activities/execute-deep-agent/execution-status-writer.ts +19 -0
- package/src/activities/execute-deep-agent/hitl.ts +221 -0
- package/src/activities/execute-deep-agent/index.ts +342 -0
- package/src/activities/execute-deep-agent/inline-publisher.ts +134 -0
- package/src/activities/execute-deep-agent/post-stream.ts +109 -0
- package/src/activities/execute-deep-agent/prompt-builder.ts +264 -0
- package/src/activities/execute-deep-agent/setup.ts +599 -0
- package/src/activities/execute-deep-agent/status-builder-shared.ts +136 -0
- package/src/activities/execute-deep-agent/status-builder.ts +412 -0
- package/src/activities/execute-deep-agent/streaming-scheduler.ts +159 -0
- package/src/activities/execute-deep-agent/streaming-side-effects.ts +89 -0
- package/src/activities/execute-deep-agent/streaming-terminal.ts +96 -0
- package/src/activities/execute-deep-agent/streaming-v3.ts +272 -0
- package/src/activities/execute-deep-agent/streaming.ts +303 -0
- package/src/activities/execute-deep-agent/subagent-tracker.ts +445 -0
- package/src/activities/execute-deep-agent/subagent-transformer.ts +648 -0
- package/src/activities/execute-deep-agent/subagent-wiring.ts +56 -0
- package/src/activities/execute-deep-agent/v3-event-recorder.ts +111 -0
- package/src/activities/execute-deep-agent/v3-events.ts +153 -0
- package/src/activities/execute-deep-agent/v3-protocol-normalizer.ts +264 -0
- package/src/activities/execute-deep-agent/v3-status-builder.ts +490 -0
- package/src/activities/execute-deep-agent/writeback-coordinator.ts +420 -0
- package/src/activities/hydrate-workflow-execution.ts +306 -0
- package/src/activities/notification.ts +71 -0
- package/src/activities/promote-task-output.ts +126 -0
- package/src/activities/run-command.ts +148 -0
- package/src/activities/workflow-event-activities.ts +481 -0
- package/src/bootstrap.ts +173 -0
- package/src/budget/__tests__/tracker.test.ts +293 -0
- package/src/budget/index.ts +9 -0
- package/src/budget/tracker.ts +171 -0
- package/src/claimcheck/compressor.ts +9 -0
- package/src/claimcheck/config.ts +20 -0
- package/src/claimcheck/index.ts +3 -0
- package/src/claimcheck/payload-codec.ts +107 -0
- package/src/client/__tests__/server-contracts.test.ts +149 -0
- package/src/client/__tests__/stigmer-client.test.ts +142 -0
- package/src/client/server-contracts.ts +125 -0
- package/src/client/stigmer-client.ts +339 -0
- package/src/config.ts +185 -0
- package/src/idle-watchdog.ts +28 -0
- package/src/index.ts +48 -0
- package/src/interceptors/workflow-metrics-sink.ts +56 -0
- package/src/ipc-protocol-fixtures.ts +117 -0
- package/src/ipc-protocol.ts +113 -0
- package/src/main.ts +324 -0
- package/src/middleware/__tests__/approval-gate.test.ts +231 -0
- package/src/middleware/__tests__/cost-cap.test.ts +192 -0
- package/src/middleware/__tests__/error-hints.test.ts +90 -0
- package/src/middleware/__tests__/execution-budget.test.ts +138 -0
- package/src/middleware/__tests__/graceful-stop.test.ts +105 -0
- package/src/middleware/__tests__/loop-detection.test.ts +137 -0
- package/src/middleware/__tests__/otel-spans.test.ts +89 -0
- package/src/middleware/__tests__/think-tool.test.ts +26 -0
- package/src/middleware/__tests__/tool-truncation.test.ts +112 -0
- package/src/middleware/approval-gate.ts +179 -0
- package/src/middleware/cost-cap.ts +213 -0
- package/src/middleware/error-hints.ts +136 -0
- package/src/middleware/execution-budget.ts +176 -0
- package/src/middleware/graceful-stop.ts +86 -0
- package/src/middleware/index.ts +70 -0
- package/src/middleware/loop-detection.ts +192 -0
- package/src/middleware/otel-spans.ts +205 -0
- package/src/middleware/think-tool.ts +38 -0
- package/src/middleware/tool-truncation.ts +94 -0
- package/src/middleware/types.ts +114 -0
- package/src/notification/__tests__/provider.test.ts +85 -0
- package/src/notification/__tests__/webhook.test.ts +127 -0
- package/src/notification/index.ts +15 -0
- package/src/notification/provider.ts +52 -0
- package/src/notification/webhook.ts +61 -0
- package/src/otel-metrics.ts +73 -0
- package/src/otel.ts +194 -0
- package/src/runner-manager.ts +652 -0
- package/src/runner-token-coordinator.ts +135 -0
- package/src/runner.ts +380 -0
- package/src/shared/__tests__/approval-policy.test.ts +256 -0
- package/src/shared/__tests__/artifact-storage-extended.test.ts +208 -0
- package/src/shared/__tests__/artifact-storage.test.ts +365 -0
- package/src/shared/__tests__/connect-backfill.test.ts +346 -0
- package/src/shared/__tests__/extract-json.test.ts +153 -0
- package/src/shared/__tests__/grpc-retry-extended.test.ts +176 -0
- package/src/shared/__tests__/grpc-retry.test.ts +172 -0
- package/src/shared/__tests__/json-schema-to-zod.test.ts +227 -0
- package/src/shared/__tests__/llm-proxy.test.ts +179 -0
- package/src/shared/__tests__/mcp-manager.test.ts +154 -0
- package/src/shared/__tests__/model-pricing.test.ts +85 -0
- package/src/shared/__tests__/model-registry.test.ts +197 -0
- package/src/shared/__tests__/placeholder-resolver.test.ts +210 -0
- package/src/shared/__tests__/plan-artifact.test.ts +142 -0
- package/src/shared/__tests__/skill-relevance.test.ts +292 -0
- package/src/shared/__tests__/skill-writer.test.ts +349 -0
- package/src/shared/__tests__/status.test.ts +142 -0
- package/src/shared/__tests__/subagent-gate.test.ts +112 -0
- package/src/shared/__tests__/tool-kind.test.ts +58 -0
- package/src/shared/__tests__/zip-extract.test.ts +204 -0
- package/src/shared/approval-policy.ts +146 -0
- package/src/shared/artifact-storage.ts +207 -0
- package/src/shared/checkpointer/__tests__/factory.test.ts +42 -0
- package/src/shared/checkpointer/__tests__/http-saver.test.ts +176 -0
- package/src/shared/checkpointer/factory.ts +73 -0
- package/src/shared/checkpointer/http-saver.ts +349 -0
- package/src/shared/checkpointer/types.ts +12 -0
- package/src/shared/connect-backfill.ts +162 -0
- package/src/shared/extract-json.ts +153 -0
- package/src/shared/grpc-retry.ts +113 -0
- package/src/shared/heartbeat.ts +70 -0
- package/src/shared/json-schema-to-zod.ts +53 -0
- package/src/shared/llm-proxy.ts +138 -0
- package/src/shared/mcp-manager.ts +150 -0
- package/src/shared/mcp-resolver.ts +150 -0
- package/src/shared/model-pricing-data.ts +109 -0
- package/src/shared/model-pricing.ts +81 -0
- package/src/shared/model-registry.ts +214 -0
- package/src/shared/placeholder-resolver.ts +102 -0
- package/src/shared/plan-artifact.ts +120 -0
- package/src/shared/skill-relevance.ts +222 -0
- package/src/shared/skill-writer.ts +300 -0
- package/src/shared/status.ts +94 -0
- package/src/shared/subagent-gate.ts +117 -0
- package/src/shared/tool-kind.ts +91 -0
- package/src/shared/workspace/__tests__/file-tree.test.ts +210 -0
- package/src/shared/workspace/__tests__/git-source.test.ts +423 -0
- package/src/shared/workspace/__tests__/local-backend-platform.test.ts +259 -0
- package/src/shared/workspace/__tests__/local-backend.test.ts +154 -0
- package/src/shared/workspace/__tests__/platform-mount.test.ts +378 -0
- package/src/shared/workspace/__tests__/provisioner.test.ts +145 -0
- package/src/shared/workspace/file-tree.ts +116 -0
- package/src/shared/workspace/local-backend.ts +140 -0
- package/src/shared/workspace/platform-dir.ts +38 -0
- package/src/shared/workspace/platform-mount.ts +190 -0
- package/src/shared/workspace/provisioner.ts +150 -0
- package/src/shared/workspace/sources/empty.ts +20 -0
- package/src/shared/workspace/sources/git.ts +285 -0
- package/src/shared/workspace/sources/local-path.ts +89 -0
- package/src/shared/workspace/types.ts +69 -0
- package/src/shared/zip-extract.ts +193 -0
- package/src/worker.ts +98 -0
- package/src/workflow-engine/__tests__/do-executor-recovery.test.ts +382 -0
- package/src/workflow-engine/__tests__/do-executor.test.ts +963 -0
- package/src/workflow-engine/__tests__/errors.test.ts +174 -0
- package/src/workflow-engine/__tests__/expression.test.ts +776 -0
- package/src/workflow-engine/__tests__/for.test.ts +575 -0
- package/src/workflow-engine/__tests__/fork.test.ts +838 -0
- package/src/workflow-engine/__tests__/golden-execution.test.ts +1085 -0
- package/src/workflow-engine/__tests__/jq-wasm-spike.test.ts +90 -0
- package/src/workflow-engine/__tests__/loader.test.ts +1393 -0
- package/src/workflow-engine/__tests__/pause-resume.test.ts +267 -0
- package/src/workflow-engine/__tests__/recovery.test.ts +115 -0
- package/src/workflow-engine/__tests__/resolve.test.ts +432 -0
- package/src/workflow-engine/__tests__/retry.test.ts +306 -0
- package/src/workflow-engine/__tests__/state.test.ts +174 -0
- package/src/workflow-engine/__tests__/task-status-accumulator.test.ts +373 -0
- package/src/workflow-engine/__tests__/tasks/call-agent-output.test.ts +120 -0
- package/src/workflow-engine/__tests__/tasks/call-agent.test.ts +816 -0
- package/src/workflow-engine/__tests__/tasks/call-function.test.ts +205 -0
- package/src/workflow-engine/__tests__/tasks/call-grpc.test.ts +133 -0
- package/src/workflow-engine/__tests__/tasks/call-http.test.ts +150 -0
- package/src/workflow-engine/__tests__/tasks/emit-event.test.ts +322 -0
- package/src/workflow-engine/__tests__/tasks/human-input.test.ts +416 -0
- package/src/workflow-engine/__tests__/tasks/listen.test.ts +422 -0
- package/src/workflow-engine/__tests__/tasks/raise.test.ts +166 -0
- package/src/workflow-engine/__tests__/tasks/run.test.ts +272 -0
- package/src/workflow-engine/__tests__/tasks/set.test.ts +127 -0
- package/src/workflow-engine/__tests__/tasks/switch.test.ts +277 -0
- package/src/workflow-engine/__tests__/tasks/try.test.ts +590 -0
- package/src/workflow-engine/__tests__/tasks/wait.test.ts +173 -0
- package/src/workflow-engine/clone.ts +18 -0
- package/src/workflow-engine/do-executor.ts +569 -0
- package/src/workflow-engine/duration.ts +22 -0
- package/src/workflow-engine/error-utils.ts +97 -0
- package/src/workflow-engine/errors.ts +130 -0
- package/src/workflow-engine/expression-utils.ts +129 -0
- package/src/workflow-engine/expression.ts +430 -0
- package/src/workflow-engine/loader.ts +524 -0
- package/src/workflow-engine/recovery.ts +80 -0
- package/src/workflow-engine/resolve.ts +342 -0
- package/src/workflow-engine/retry.ts +109 -0
- package/src/workflow-engine/state.ts +56 -0
- package/src/workflow-engine/task-factory.ts +160 -0
- package/src/workflow-engine/task-status-accumulator.ts +204 -0
- package/src/workflow-engine/tasks/call-agent-output.ts +132 -0
- package/src/workflow-engine/tasks/call-agent.ts +221 -0
- package/src/workflow-engine/tasks/call-function.ts +107 -0
- package/src/workflow-engine/tasks/call-grpc.ts +47 -0
- package/src/workflow-engine/tasks/call-http.ts +51 -0
- package/src/workflow-engine/tasks/for.ts +244 -0
- package/src/workflow-engine/tasks/fork.ts +228 -0
- package/src/workflow-engine/tasks/human-input.ts +147 -0
- package/src/workflow-engine/tasks/listen.ts +166 -0
- package/src/workflow-engine/tasks/raise.ts +81 -0
- package/src/workflow-engine/tasks/run.ts +142 -0
- package/src/workflow-engine/tasks/set.ts +47 -0
- package/src/workflow-engine/tasks/switch.ts +102 -0
- package/src/workflow-engine/tasks/try.ts +274 -0
- package/src/workflow-engine/tasks/wait.ts +53 -0
- package/src/workflow-engine/types.ts +911 -0
- package/src/workflows/__tests__/connect-mcp-server.test.ts +359 -0
- package/src/workflows/__tests__/execute-serverless-workflow.test.ts +277 -0
- package/src/workflows/call-agent-orchestrator.ts +283 -0
- package/src/workflows/connect-mcp-server.ts +152 -0
- package/src/workflows/engine-core.ts +406 -0
- package/src/workflows/execute-from-execution.ts +101 -0
- package/src/workflows/execute-serverless-workflow.ts +60 -0
- package/src/workflows/human-input-orchestrator.ts +76 -0
- package/src/workflows/index.ts +32 -0
- package/src/workflows/listen-orchestrator.ts +200 -0
- package/src/workflows/metrics-sink.ts +48 -0
- package/src/workflows/run-orchestrator.ts +34 -0
- package/src/workflows/types.ts +64 -0
- package/src/workflows/workflow-signals.ts +55 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Post-stream safety net for artifact publishing.
|
|
3
|
+
*
|
|
4
|
+
* Scans completed tool calls for file-modifying operations (write, edit,
|
|
5
|
+
* create) and publishes any files that were not already published inline.
|
|
6
|
+
* This catches files modified by paths not triggered during streaming
|
|
7
|
+
* (e.g., shell commands, race conditions in fire-and-forget publish).
|
|
8
|
+
*/
|
|
9
|
+
const FILE_MODIFYING_TOOLS = new Set([
|
|
10
|
+
"write_file",
|
|
11
|
+
"edit_file",
|
|
12
|
+
"create_file",
|
|
13
|
+
"write",
|
|
14
|
+
"edit",
|
|
15
|
+
"create",
|
|
16
|
+
"str_replace_editor",
|
|
17
|
+
]);
|
|
18
|
+
/**
|
|
19
|
+
* Scan all tool calls in the execution status for file-modifying operations
|
|
20
|
+
* and publish any files that were not already published inline.
|
|
21
|
+
*
|
|
22
|
+
* Returns the count of additionally published artifacts.
|
|
23
|
+
*/
|
|
24
|
+
export async function autoPublishWrittenFiles(status, inlinePublisher) {
|
|
25
|
+
const alreadyPublished = inlinePublisher.publishedPaths;
|
|
26
|
+
const pathsToPublish = [];
|
|
27
|
+
for (const message of status.messages) {
|
|
28
|
+
for (const tc of message.toolCalls) {
|
|
29
|
+
if (!FILE_MODIFYING_TOOLS.has(tc.name))
|
|
30
|
+
continue;
|
|
31
|
+
const filePath = extractFilePath(tc.args);
|
|
32
|
+
if (!filePath)
|
|
33
|
+
continue;
|
|
34
|
+
const normalized = filePath.replace(/^\/+/, "");
|
|
35
|
+
if (alreadyPublished.has(normalized))
|
|
36
|
+
continue;
|
|
37
|
+
if (pathsToPublish.includes(normalized))
|
|
38
|
+
continue;
|
|
39
|
+
pathsToPublish.push(normalized);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
let count = 0;
|
|
43
|
+
for (const path of pathsToPublish) {
|
|
44
|
+
try {
|
|
45
|
+
await inlinePublisher.publish(path);
|
|
46
|
+
count++;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// InlinePublisher.publish already swallows errors internally.
|
|
50
|
+
// This catch is defense-in-depth.
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (count > 0) {
|
|
54
|
+
console.log(`[autoPublish] Published ${count} additional artifact(s) via safety net`);
|
|
55
|
+
}
|
|
56
|
+
return count;
|
|
57
|
+
}
|
|
58
|
+
function extractFilePath(args) {
|
|
59
|
+
if (!args)
|
|
60
|
+
return null;
|
|
61
|
+
if (typeof args.path === "string")
|
|
62
|
+
return args.path;
|
|
63
|
+
if (typeof args.file_path === "string")
|
|
64
|
+
return args.file_path;
|
|
65
|
+
if (typeof args.filename === "string")
|
|
66
|
+
return args.filename;
|
|
67
|
+
if (typeof args.file === "string")
|
|
68
|
+
return args.file;
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=auto-publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-publish.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/auto-publish.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,YAAY;IACZ,WAAW;IACX,aAAa;IACb,OAAO;IACP,MAAM;IACN,QAAQ;IACR,oBAAoB;CACrB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA4B,EAC5B,eAAgC;IAEhC,MAAM,gBAAgB,GAAG,eAAe,CAAC,cAAc,CAAC;IACxD,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEjD,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,IAA2C,CAAC,CAAC;YACjF,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YAC/C,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,SAAS;YAElD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,EAAE,CAAC;QACV,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,kCAAkC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,2BAA2B,KAAK,wCAAwC,CACzE,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,IAAyC;IAChE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC;IAC9D,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;IAC5D,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAEpD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment variable resolution for deep agent execution.
|
|
3
|
+
*
|
|
4
|
+
* Resolves the merged environment from ExecutionContext — the single
|
|
5
|
+
* source of truth for execution-scoped variables. The workflow injects
|
|
6
|
+
* all resolved variables into ExecutionContext before the activity starts.
|
|
7
|
+
*
|
|
8
|
+
* The returned result separates plaintext keys from secret keys so that
|
|
9
|
+
* downstream consumers (e.g., StatusBuilder in Phase 3b) can redact
|
|
10
|
+
* secret values in user-facing displays.
|
|
11
|
+
*/
|
|
12
|
+
import type { StigmerClient } from "../../client/stigmer-client.js";
|
|
13
|
+
export interface EnvironmentResult {
|
|
14
|
+
readonly mergedEnvVars: Record<string, string>;
|
|
15
|
+
readonly secretKeys: ReadonlySet<string>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Fetch the ExecutionContext for the given execution and extract the
|
|
19
|
+
* merged environment variables.
|
|
20
|
+
*
|
|
21
|
+
* If no ExecutionContext exists (e.g., the agent has no environment or
|
|
22
|
+
* secrets configured), returns an empty result so execution can proceed.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveEnvironment(client: StigmerClient, executionId: string): Promise<EnvironmentResult>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment variable resolution for deep agent execution.
|
|
3
|
+
*
|
|
4
|
+
* Resolves the merged environment from ExecutionContext — the single
|
|
5
|
+
* source of truth for execution-scoped variables. The workflow injects
|
|
6
|
+
* all resolved variables into ExecutionContext before the activity starts.
|
|
7
|
+
*
|
|
8
|
+
* The returned result separates plaintext keys from secret keys so that
|
|
9
|
+
* downstream consumers (e.g., StatusBuilder in Phase 3b) can redact
|
|
10
|
+
* secret values in user-facing displays.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Fetch the ExecutionContext for the given execution and extract the
|
|
14
|
+
* merged environment variables.
|
|
15
|
+
*
|
|
16
|
+
* If no ExecutionContext exists (e.g., the agent has no environment or
|
|
17
|
+
* secrets configured), returns an empty result so execution can proceed.
|
|
18
|
+
*/
|
|
19
|
+
export async function resolveEnvironment(client, executionId) {
|
|
20
|
+
let execCtx;
|
|
21
|
+
try {
|
|
22
|
+
execCtx = await client.getExecutionContextByExecutionId(executionId);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
// ConnectError uses numeric Code.NotFound (5); match the pattern
|
|
26
|
+
// from execute-cursor/env-resolver.ts.
|
|
27
|
+
const code = err?.code;
|
|
28
|
+
if (code === 5 || code === "not_found" || code === "NOT_FOUND") {
|
|
29
|
+
console.log(`[env] No ExecutionContext found for execution ${executionId} — ` +
|
|
30
|
+
`proceeding with empty environment.`);
|
|
31
|
+
return { mergedEnvVars: {}, secretKeys: new Set() };
|
|
32
|
+
}
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
const mergedEnvVars = {};
|
|
36
|
+
const secretKeys = new Set();
|
|
37
|
+
const data = execCtx.spec?.data;
|
|
38
|
+
if (data) {
|
|
39
|
+
for (const [key, execValue] of Object.entries(data)) {
|
|
40
|
+
mergedEnvVars[key] = execValue.value;
|
|
41
|
+
if (execValue.isSecret) {
|
|
42
|
+
secretKeys.add(key);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
console.log(`[env] Resolved environment: env_count=${Object.keys(mergedEnvVars).length}, ` +
|
|
47
|
+
`secret_count=${secretKeys.size}`);
|
|
48
|
+
return { mergedEnvVars, secretKeys };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAqB,EACrB,WAAmB;IAEnB,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,WAAW,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,iEAAiE;QACjE,uCAAuC;QACvC,MAAM,IAAI,GAAI,GAAkC,EAAE,IAAI,CAAC;QACvD,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CACT,iDAAiD,WAAW,KAAK;gBACjE,oCAAoC,CACrC,CAAC;YACF,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACtD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YACrC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,yCAAyC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI;QAC9E,gBAAgB,UAAU,CAAC,IAAI,EAAE,CAClC,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V2 event recorder for capturing raw streamEvents v2 data.
|
|
3
|
+
*
|
|
4
|
+
* Activated by the V2_EVENT_RECORD_DIR environment variable. When set,
|
|
5
|
+
* the streaming loop records every raw event and flushes them atomically
|
|
6
|
+
* to a JSON file after the stream completes.
|
|
7
|
+
*
|
|
8
|
+
* This is test/development infrastructure for the v3 streaming migration.
|
|
9
|
+
* The captured events serve as a reference for building the
|
|
10
|
+
* V3ProtocolNormalizer and validating event shape mappings.
|
|
11
|
+
*/
|
|
12
|
+
import type { StreamEvent } from "./status-builder.js";
|
|
13
|
+
export interface V2EventRecorder {
|
|
14
|
+
record(event: StreamEvent, seq: number): void;
|
|
15
|
+
flush(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a recorder if V2_EVENT_RECORD_DIR is set, otherwise return undefined.
|
|
19
|
+
* The caller does `recorder?.record(event, seq)` — zero overhead when off.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createV2EventRecorder(executionId: string, recordDir: string | undefined): V2EventRecorder | undefined;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V2 event recorder for capturing raw streamEvents v2 data.
|
|
3
|
+
*
|
|
4
|
+
* Activated by the V2_EVENT_RECORD_DIR environment variable. When set,
|
|
5
|
+
* the streaming loop records every raw event and flushes them atomically
|
|
6
|
+
* to a JSON file after the stream completes.
|
|
7
|
+
*
|
|
8
|
+
* This is test/development infrastructure for the v3 streaming migration.
|
|
9
|
+
* The captured events serve as a reference for building the
|
|
10
|
+
* V3ProtocolNormalizer and validating event shape mappings.
|
|
11
|
+
*/
|
|
12
|
+
import { writeFile, mkdir } from "node:fs/promises";
|
|
13
|
+
import { join } from "node:path";
|
|
14
|
+
/**
|
|
15
|
+
* Create a recorder if V2_EVENT_RECORD_DIR is set, otherwise return undefined.
|
|
16
|
+
* The caller does `recorder?.record(event, seq)` — zero overhead when off.
|
|
17
|
+
*/
|
|
18
|
+
export function createV2EventRecorder(executionId, recordDir) {
|
|
19
|
+
if (!recordDir)
|
|
20
|
+
return undefined;
|
|
21
|
+
return new FileV2EventRecorder(executionId, recordDir);
|
|
22
|
+
}
|
|
23
|
+
class FileV2EventRecorder {
|
|
24
|
+
executionId;
|
|
25
|
+
outputDir;
|
|
26
|
+
events = [];
|
|
27
|
+
constructor(executionId, outputDir) {
|
|
28
|
+
this.executionId = executionId;
|
|
29
|
+
this.outputDir = outputDir;
|
|
30
|
+
}
|
|
31
|
+
record(event, seq) {
|
|
32
|
+
this.events.push({
|
|
33
|
+
seq,
|
|
34
|
+
timestamp: new Date().toISOString(),
|
|
35
|
+
event: event.event,
|
|
36
|
+
name: event.name,
|
|
37
|
+
run_id: event.run_id,
|
|
38
|
+
data: safeClone(event.data),
|
|
39
|
+
metadata: event.metadata ? safeClone(event.metadata) : undefined,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async flush() {
|
|
43
|
+
if (this.events.length === 0)
|
|
44
|
+
return;
|
|
45
|
+
await mkdir(this.outputDir, { recursive: true });
|
|
46
|
+
const filePath = join(this.outputDir, `${this.executionId}.v2-events.json`);
|
|
47
|
+
const payload = {
|
|
48
|
+
executionId: this.executionId,
|
|
49
|
+
recordedAt: new Date().toISOString(),
|
|
50
|
+
eventCount: this.events.length,
|
|
51
|
+
events: this.events,
|
|
52
|
+
};
|
|
53
|
+
await writeFile(filePath, JSON.stringify(payload, bigintReplacer, 2));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function safeClone(obj) {
|
|
57
|
+
try {
|
|
58
|
+
return JSON.parse(JSON.stringify(obj, bigintReplacer));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return { _serializationError: true, keys: Object.keys(obj) };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function bigintReplacer(_key, value) {
|
|
65
|
+
return typeof value === "bigint" ? value.toString() : value;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=event-recorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-recorder.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/event-recorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAkBjC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAmB,EACnB,SAA6B;IAE7B,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,IAAI,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,mBAAmB;IAIJ;IACA;IAJF,MAAM,GAAoB,EAAE,CAAC;IAE9C,YACmB,WAAmB,EACnB,SAAiB;QADjB,gBAAW,GAAX,WAAW,CAAQ;QACnB,cAAS,GAAT,SAAS,CAAQ;IACjC,CAAC;IAEJ,MAAM,CAAC,KAAkB,EAAE,GAAW;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,GAAG;YACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAErC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,IAAI,CACnB,IAAI,CAAC,SAAS,EACd,GAAG,IAAI,CAAC,WAAW,iBAAiB,CACrC,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;CACF;AAED,SAAS,SAAS,CAAC,GAA4B;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAc;IAClD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutable execution state for the StatusBuilder.
|
|
3
|
+
*
|
|
4
|
+
* Holds the AgentExecutionStatus proto being progressively built and
|
|
5
|
+
* O(1) lookup indexes into its repeated fields. Mutations to indexed
|
|
6
|
+
* references (ToolCall, AgentMessage) propagate directly to the proto
|
|
7
|
+
* because they share the same object reference.
|
|
8
|
+
*
|
|
9
|
+
* Phase 3b-i scope: core indexes for main-agent streaming.
|
|
10
|
+
* Sub-agent routing maps and approval tracking are added in Phase 3c.
|
|
11
|
+
*/
|
|
12
|
+
import type { AgentExecutionStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
13
|
+
import type { AgentMessage, ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
14
|
+
export declare class ExecutionState {
|
|
15
|
+
/** The protobuf projection being built. */
|
|
16
|
+
readonly proto: AgentExecutionStatus;
|
|
17
|
+
/**
|
|
18
|
+
* tool_call_id -> live ToolCall reference inside a message's repeated
|
|
19
|
+
* field. Mutations propagate directly to the proto.
|
|
20
|
+
*/
|
|
21
|
+
readonly toolCalls: Map<string, ToolCall>;
|
|
22
|
+
/**
|
|
23
|
+
* LLM run_id -> the AgentMessage that run is streaming into.
|
|
24
|
+
* Prevents token interleaving when the model produces multiple runs.
|
|
25
|
+
*/
|
|
26
|
+
readonly messagesByRun: Map<string, AgentMessage>;
|
|
27
|
+
/**
|
|
28
|
+
* Namespace -> most recently created AI message in that execution
|
|
29
|
+
* context. Tool calls are appended to this message's toolCalls field.
|
|
30
|
+
* Empty string key represents the main agent.
|
|
31
|
+
*/
|
|
32
|
+
readonly currentAiMessage: Map<string, AgentMessage>;
|
|
33
|
+
/**
|
|
34
|
+
* Namespace -> latest LLM run_id for turn-boundary detection.
|
|
35
|
+
* When a new run_id appears in the same namespace, a new AgentMessage
|
|
36
|
+
* is created rather than appending to the existing one.
|
|
37
|
+
*/
|
|
38
|
+
readonly lastLlmRunId: Map<string, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Tool run_id -> monotonic start time (ms) for duration calculation.
|
|
41
|
+
* Set on on_tool_start, consumed and removed on on_tool_end.
|
|
42
|
+
*/
|
|
43
|
+
readonly toolStartTimes: Map<string, number>;
|
|
44
|
+
constructor(proto: AgentExecutionStatus);
|
|
45
|
+
/**
|
|
46
|
+
* Reset all ephemeral indexes. The proto itself is not cleared —
|
|
47
|
+
* this is used when resuming from a persisted status where the proto
|
|
48
|
+
* already has messages and tool calls, but runtime tracking state
|
|
49
|
+
* (run_id maps, timing) must start fresh.
|
|
50
|
+
*/
|
|
51
|
+
resetEphemeralState(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Rebuild the toolCalls index from the proto's messages.
|
|
54
|
+
*
|
|
55
|
+
* Used on the resume path where the StatusBuilder is initialized
|
|
56
|
+
* with a persisted AgentExecutionStatus that already contains
|
|
57
|
+
* messages and tool calls. Only proto-derivable indexes are rebuilt;
|
|
58
|
+
* ephemeral runtime state starts fresh.
|
|
59
|
+
*/
|
|
60
|
+
rebuildToolCallIndex(): void;
|
|
61
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutable execution state for the StatusBuilder.
|
|
3
|
+
*
|
|
4
|
+
* Holds the AgentExecutionStatus proto being progressively built and
|
|
5
|
+
* O(1) lookup indexes into its repeated fields. Mutations to indexed
|
|
6
|
+
* references (ToolCall, AgentMessage) propagate directly to the proto
|
|
7
|
+
* because they share the same object reference.
|
|
8
|
+
*
|
|
9
|
+
* Phase 3b-i scope: core indexes for main-agent streaming.
|
|
10
|
+
* Sub-agent routing maps and approval tracking are added in Phase 3c.
|
|
11
|
+
*/
|
|
12
|
+
export class ExecutionState {
|
|
13
|
+
/** The protobuf projection being built. */
|
|
14
|
+
proto;
|
|
15
|
+
/**
|
|
16
|
+
* tool_call_id -> live ToolCall reference inside a message's repeated
|
|
17
|
+
* field. Mutations propagate directly to the proto.
|
|
18
|
+
*/
|
|
19
|
+
toolCalls = new Map();
|
|
20
|
+
/**
|
|
21
|
+
* LLM run_id -> the AgentMessage that run is streaming into.
|
|
22
|
+
* Prevents token interleaving when the model produces multiple runs.
|
|
23
|
+
*/
|
|
24
|
+
messagesByRun = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* Namespace -> most recently created AI message in that execution
|
|
27
|
+
* context. Tool calls are appended to this message's toolCalls field.
|
|
28
|
+
* Empty string key represents the main agent.
|
|
29
|
+
*/
|
|
30
|
+
currentAiMessage = new Map();
|
|
31
|
+
/**
|
|
32
|
+
* Namespace -> latest LLM run_id for turn-boundary detection.
|
|
33
|
+
* When a new run_id appears in the same namespace, a new AgentMessage
|
|
34
|
+
* is created rather than appending to the existing one.
|
|
35
|
+
*/
|
|
36
|
+
lastLlmRunId = new Map();
|
|
37
|
+
/**
|
|
38
|
+
* Tool run_id -> monotonic start time (ms) for duration calculation.
|
|
39
|
+
* Set on on_tool_start, consumed and removed on on_tool_end.
|
|
40
|
+
*/
|
|
41
|
+
toolStartTimes = new Map();
|
|
42
|
+
constructor(proto) {
|
|
43
|
+
this.proto = proto;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Reset all ephemeral indexes. The proto itself is not cleared —
|
|
47
|
+
* this is used when resuming from a persisted status where the proto
|
|
48
|
+
* already has messages and tool calls, but runtime tracking state
|
|
49
|
+
* (run_id maps, timing) must start fresh.
|
|
50
|
+
*/
|
|
51
|
+
resetEphemeralState() {
|
|
52
|
+
this.messagesByRun.clear();
|
|
53
|
+
this.currentAiMessage.clear();
|
|
54
|
+
this.lastLlmRunId.clear();
|
|
55
|
+
this.toolStartTimes.clear();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Rebuild the toolCalls index from the proto's messages.
|
|
59
|
+
*
|
|
60
|
+
* Used on the resume path where the StatusBuilder is initialized
|
|
61
|
+
* with a persisted AgentExecutionStatus that already contains
|
|
62
|
+
* messages and tool calls. Only proto-derivable indexes are rebuilt;
|
|
63
|
+
* ephemeral runtime state starts fresh.
|
|
64
|
+
*/
|
|
65
|
+
rebuildToolCallIndex() {
|
|
66
|
+
this.toolCalls.clear();
|
|
67
|
+
for (const message of this.proto.messages) {
|
|
68
|
+
for (const tc of message.toolCalls) {
|
|
69
|
+
if (tc.id) {
|
|
70
|
+
this.toolCalls.set(tc.id, tc);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=execution-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-state.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/execution-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,OAAO,cAAc;IACzB,2CAA2C;IAClC,KAAK,CAAuB;IAErC;;;OAGG;IACM,SAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;IAEtD;;;OAGG;IACM,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE9D;;;;OAIG;IACM,gBAAgB,GAA8B,IAAI,GAAG,EAAE,CAAC;IAEjE;;;;OAIG;IACM,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEvD;;;OAGG;IACM,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEzD,YAAY,KAA2B;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,mBAAmB;QACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB;QAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;oBACV,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared interface for proto mutation consumed by side-effect classes
|
|
3
|
+
* (InlinePublisher, WriteBackCoordinator) and streaming loops.
|
|
4
|
+
*
|
|
5
|
+
* Both v2 StatusBuilder and V3StatusBuilder implement this interface,
|
|
6
|
+
* decoupling side-effect classes from the specific builder version.
|
|
7
|
+
*/
|
|
8
|
+
import type { AgentExecutionStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
9
|
+
import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
|
|
10
|
+
import type { WorkspaceWriteBack } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/writeback_pb";
|
|
11
|
+
export interface ExecutionStatusWriter {
|
|
12
|
+
readonly currentStatus: AgentExecutionStatus;
|
|
13
|
+
readonly forceNextUpdate: boolean;
|
|
14
|
+
clearForceFlag(): void;
|
|
15
|
+
addArtifact(artifact: ExecutionArtifact): void;
|
|
16
|
+
addWriteBack(wb: WorkspaceWriteBack): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared interface for proto mutation consumed by side-effect classes
|
|
3
|
+
* (InlinePublisher, WriteBackCoordinator) and streaming loops.
|
|
4
|
+
*
|
|
5
|
+
* Both v2 StatusBuilder and V3StatusBuilder implement this interface,
|
|
6
|
+
* decoupling side-effect classes from the specific builder version.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=execution-status-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-status-writer.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/execution-status-writer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HITL (human-in-the-loop) resume infrastructure for ExecuteDeepAgent.
|
|
3
|
+
*
|
|
4
|
+
* On reinvocation after an approval signal, this module:
|
|
5
|
+
* 1. Reads the persisted execution status from the database
|
|
6
|
+
* 2. Queries the LangGraph checkpoint for pending interrupts
|
|
7
|
+
* 3. Matches each interrupt's tool_call_id to the user's approval decision
|
|
8
|
+
* 4. Builds a `Command(resume={...})` payload for LangGraph
|
|
9
|
+
* 5. Reconciles tool call statuses in the StatusBuilder
|
|
10
|
+
*
|
|
11
|
+
* DB-driven resume: Approval decisions are read from the persisted
|
|
12
|
+
* execution status (via `client.getExecution()`), NOT passed as Temporal
|
|
13
|
+
* activity arguments. This matches the Go workflow contract.
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from "@langchain/langgraph";
|
|
16
|
+
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
17
|
+
import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
18
|
+
import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
19
|
+
export interface ResumeResult {
|
|
20
|
+
readonly graphInput: Command | Record<string, unknown>;
|
|
21
|
+
readonly isResumeFromApproval: boolean;
|
|
22
|
+
readonly hasRejection: boolean;
|
|
23
|
+
readonly rejectionReason: string;
|
|
24
|
+
}
|
|
25
|
+
export interface GraphStateSnapshot {
|
|
26
|
+
readonly values: Record<string, unknown>;
|
|
27
|
+
readonly tasks: readonly GraphInterrupt[];
|
|
28
|
+
}
|
|
29
|
+
export interface GraphInterrupt {
|
|
30
|
+
readonly id: string;
|
|
31
|
+
readonly interrupts?: readonly InterruptValue[];
|
|
32
|
+
}
|
|
33
|
+
export interface InterruptValue {
|
|
34
|
+
readonly value: Record<string, unknown>;
|
|
35
|
+
readonly resumeValue?: unknown;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the resume input for a reinvocation after approval.
|
|
39
|
+
*
|
|
40
|
+
* Returns a `Command(resume=...)` if there are pending interrupts with
|
|
41
|
+
* matching approval decisions, or a fresh user message input if this is
|
|
42
|
+
* not a resume scenario.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveResumeInput(execution: AgentExecution, agentGraph: {
|
|
45
|
+
getState(config: Record<string, unknown>): Promise<GraphStateSnapshot>;
|
|
46
|
+
}, langgraphConfig: Record<string, unknown>, userMessage: string): Promise<ResumeResult>;
|
|
47
|
+
interface ApprovalDecisionEntry {
|
|
48
|
+
readonly action: ApprovalAction;
|
|
49
|
+
readonly comment: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Reconcile tool call statuses after resume decisions are applied.
|
|
53
|
+
*
|
|
54
|
+
* Updates the StatusBuilder's tool call entries to reflect the approval
|
|
55
|
+
* outcomes: APPROVE → RUNNING, SKIP → SKIPPED, REJECT → FAILED.
|
|
56
|
+
*/
|
|
57
|
+
export declare function reconcileToolCallStatuses(toolCalls: ReadonlyMap<string, ToolCall>, decisions: ReadonlyMap<string, ApprovalDecisionEntry>): void;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HITL (human-in-the-loop) resume infrastructure for ExecuteDeepAgent.
|
|
3
|
+
*
|
|
4
|
+
* On reinvocation after an approval signal, this module:
|
|
5
|
+
* 1. Reads the persisted execution status from the database
|
|
6
|
+
* 2. Queries the LangGraph checkpoint for pending interrupts
|
|
7
|
+
* 3. Matches each interrupt's tool_call_id to the user's approval decision
|
|
8
|
+
* 4. Builds a `Command(resume={...})` payload for LangGraph
|
|
9
|
+
* 5. Reconciles tool call statuses in the StatusBuilder
|
|
10
|
+
*
|
|
11
|
+
* DB-driven resume: Approval decisions are read from the persisted
|
|
12
|
+
* execution status (via `client.getExecution()`), NOT passed as Temporal
|
|
13
|
+
* activity arguments. This matches the Go workflow contract.
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from "@langchain/langgraph";
|
|
16
|
+
import { ApprovalAction, ToolCallStatus, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
17
|
+
// APPROVE_ALL resumes the interrupted tool exactly like APPROVE. Its
|
|
18
|
+
// "auto-approve the rest of the run" effect is realized in setup.ts (the
|
|
19
|
+
// approval gate is disabled for the whole execution once any APPROVE_ALL
|
|
20
|
+
// decision exists), not here — this map only resolves the currently
|
|
21
|
+
// interrupted tool calls.
|
|
22
|
+
const ACTION_MAP = new Map([
|
|
23
|
+
[ApprovalAction.APPROVE, "approve"],
|
|
24
|
+
[ApprovalAction.APPROVE_ALL, "approve"],
|
|
25
|
+
[ApprovalAction.SKIP, "skip"],
|
|
26
|
+
[ApprovalAction.REJECT, "reject"],
|
|
27
|
+
]);
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the resume input for a reinvocation after approval.
|
|
30
|
+
*
|
|
31
|
+
* Returns a `Command(resume=...)` if there are pending interrupts with
|
|
32
|
+
* matching approval decisions, or a fresh user message input if this is
|
|
33
|
+
* not a resume scenario.
|
|
34
|
+
*/
|
|
35
|
+
export async function resolveResumeInput(execution, agentGraph, langgraphConfig, userMessage) {
|
|
36
|
+
const graphState = await agentGraph.getState(langgraphConfig);
|
|
37
|
+
const pendingInterrupts = extractPendingInterrupts(graphState);
|
|
38
|
+
if (pendingInterrupts.length === 0) {
|
|
39
|
+
return {
|
|
40
|
+
graphInput: { messages: [{ role: "user", content: userMessage }] },
|
|
41
|
+
isResumeFromApproval: false,
|
|
42
|
+
hasRejection: false,
|
|
43
|
+
rejectionReason: "",
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const decisions = extractApprovalDecisions(execution);
|
|
47
|
+
if (decisions.size === 0) {
|
|
48
|
+
return {
|
|
49
|
+
graphInput: { messages: [{ role: "user", content: userMessage }] },
|
|
50
|
+
isResumeFromApproval: false,
|
|
51
|
+
hasRejection: false,
|
|
52
|
+
rejectionReason: "",
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const resumeDict = {};
|
|
56
|
+
let hasRejection = false;
|
|
57
|
+
let rejectionReason = "";
|
|
58
|
+
for (const intr of pendingInterrupts) {
|
|
59
|
+
const toolCallId = intr.toolCallId;
|
|
60
|
+
const decision = decisions.get(toolCallId);
|
|
61
|
+
if (!decision)
|
|
62
|
+
continue;
|
|
63
|
+
const actionStr = ACTION_MAP.get(decision.action);
|
|
64
|
+
if (!actionStr)
|
|
65
|
+
continue;
|
|
66
|
+
resumeDict[intr.interruptId] = {
|
|
67
|
+
action: actionStr,
|
|
68
|
+
...(decision.comment ? { comment: decision.comment } : {}),
|
|
69
|
+
};
|
|
70
|
+
if (decision.action === ApprovalAction.REJECT) {
|
|
71
|
+
hasRejection = true;
|
|
72
|
+
rejectionReason = decision.comment || "Rejected by user";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (Object.keys(resumeDict).length === 0) {
|
|
76
|
+
return {
|
|
77
|
+
graphInput: { messages: [{ role: "user", content: userMessage }] },
|
|
78
|
+
isResumeFromApproval: false,
|
|
79
|
+
hasRejection: false,
|
|
80
|
+
rejectionReason: "",
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
console.log(`[hitl] Building resume for ${Object.keys(resumeDict).length} interrupt(s), ` +
|
|
84
|
+
`rejection=${hasRejection}`);
|
|
85
|
+
return {
|
|
86
|
+
graphInput: new Command({ resume: resumeDict }),
|
|
87
|
+
isResumeFromApproval: true,
|
|
88
|
+
hasRejection,
|
|
89
|
+
rejectionReason,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function extractPendingInterrupts(state) {
|
|
93
|
+
const result = [];
|
|
94
|
+
for (const task of state.tasks) {
|
|
95
|
+
if (!task.interrupts)
|
|
96
|
+
continue;
|
|
97
|
+
for (const intr of task.interrupts) {
|
|
98
|
+
if (intr.resumeValue !== undefined)
|
|
99
|
+
continue;
|
|
100
|
+
const value = intr.value;
|
|
101
|
+
if (typeof value === "object" && value !== null) {
|
|
102
|
+
const toolCallId = value.tool_call_id;
|
|
103
|
+
if (typeof toolCallId === "string" && toolCallId) {
|
|
104
|
+
result.push({ interruptId: task.id, toolCallId });
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
function extractApprovalDecisions(execution) {
|
|
112
|
+
const decisions = new Map();
|
|
113
|
+
const status = execution.status;
|
|
114
|
+
if (!status)
|
|
115
|
+
return decisions;
|
|
116
|
+
for (const message of status.messages) {
|
|
117
|
+
for (const tc of message.toolCalls) {
|
|
118
|
+
if (tc.approvalAction !== ApprovalAction.UNSPECIFIED &&
|
|
119
|
+
tc.status === ToolCallStatus.TOOL_CALL_WAITING_APPROVAL) {
|
|
120
|
+
decisions.set(tc.id, {
|
|
121
|
+
action: tc.approvalAction,
|
|
122
|
+
comment: "",
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return decisions;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Reconcile tool call statuses after resume decisions are applied.
|
|
131
|
+
*
|
|
132
|
+
* Updates the StatusBuilder's tool call entries to reflect the approval
|
|
133
|
+
* outcomes: APPROVE → RUNNING, SKIP → SKIPPED, REJECT → FAILED.
|
|
134
|
+
*/
|
|
135
|
+
export function reconcileToolCallStatuses(toolCalls, decisions) {
|
|
136
|
+
for (const [toolCallId, decision] of decisions) {
|
|
137
|
+
const tc = toolCalls.get(toolCallId);
|
|
138
|
+
if (!tc)
|
|
139
|
+
continue;
|
|
140
|
+
switch (decision.action) {
|
|
141
|
+
case ApprovalAction.APPROVE:
|
|
142
|
+
case ApprovalAction.APPROVE_ALL:
|
|
143
|
+
tc.status = ToolCallStatus.TOOL_CALL_RUNNING;
|
|
144
|
+
break;
|
|
145
|
+
case ApprovalAction.SKIP:
|
|
146
|
+
tc.status = ToolCallStatus.TOOL_CALL_SKIPPED;
|
|
147
|
+
break;
|
|
148
|
+
case ApprovalAction.REJECT:
|
|
149
|
+
tc.status = ToolCallStatus.TOOL_CALL_FAILED;
|
|
150
|
+
tc.error = `Rejected by user: ${decision.comment || "no reason given"}`;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=hitl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hitl.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/hitl.ts"],"names":[],"mappings":"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"}
|