@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,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hybrid time + event threshold scheduler for streaming status updates.
|
|
3
|
+
*
|
|
4
|
+
* Addresses the limitations of naive event-count approaches:
|
|
5
|
+
* - Slow operations (30s tool): no update for 30s — user thinks stuck
|
|
6
|
+
* - Fast operations (100 events/sec): 10 updates/sec — wasteful
|
|
7
|
+
*
|
|
8
|
+
* Algorithm:
|
|
9
|
+
* shouldSendUpdate =
|
|
10
|
+
* (timeSinceLast >= minInterval AND eventsSinceLast >= 1)
|
|
11
|
+
* OR (eventsSinceLast >= burstThreshold)
|
|
12
|
+
* OR (timeSinceLast >= maxInterval)
|
|
13
|
+
* OR firstUpdate
|
|
14
|
+
*
|
|
15
|
+
* Ported from Python StreamingUpdateScheduler.
|
|
16
|
+
*/
|
|
17
|
+
export declare enum UpdateReason {
|
|
18
|
+
TIME_THRESHOLD = "time_threshold",
|
|
19
|
+
BURST_PROTECTION = "burst_protection",
|
|
20
|
+
KEEPALIVE = "keepalive",
|
|
21
|
+
FIRST_UPDATE = "first_update",
|
|
22
|
+
NONE = "none"
|
|
23
|
+
}
|
|
24
|
+
export interface StreamingConfig {
|
|
25
|
+
/** Minimum time between updates (ms). Rate limit: max ~2 updates/second. */
|
|
26
|
+
readonly minIntervalMs: number;
|
|
27
|
+
/** Maximum time before forced update (ms). Keepalive during long tools. */
|
|
28
|
+
readonly maxIntervalMs: number;
|
|
29
|
+
/** Number of events that triggers immediate update. Burst protection. */
|
|
30
|
+
readonly burstThreshold: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Load streaming config from environment variables with validation.
|
|
34
|
+
* Invalid values fall back to defaults with a console warning.
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadStreamingConfig(): StreamingConfig;
|
|
37
|
+
export declare class StreamingUpdateScheduler {
|
|
38
|
+
readonly config: StreamingConfig;
|
|
39
|
+
private lastUpdateTime;
|
|
40
|
+
private lastUpdateEvents;
|
|
41
|
+
private lastReason;
|
|
42
|
+
private firstCheck;
|
|
43
|
+
/**
|
|
44
|
+
* @param config Scheduling parameters. Defaults to 500ms/5s/50.
|
|
45
|
+
* @param nowMs Injectable clock for testing. Defaults to performance.now().
|
|
46
|
+
*/
|
|
47
|
+
constructor(config?: StreamingConfig, nowMs?: number);
|
|
48
|
+
/**
|
|
49
|
+
* Determine whether a status update should be sent now.
|
|
50
|
+
*
|
|
51
|
+
* Call after processing each event. If this returns true, send the
|
|
52
|
+
* update and then call {@link markUpdateSent}.
|
|
53
|
+
*/
|
|
54
|
+
shouldSendUpdate(eventsProcessed: number, nowMs?: number): boolean;
|
|
55
|
+
/** Reset tracking state after an update was sent. */
|
|
56
|
+
markUpdateSent(eventsProcessed: number, nowMs?: number): void;
|
|
57
|
+
get updateReason(): UpdateReason;
|
|
58
|
+
timeSinceLastUpdateMs(nowMs?: number): number;
|
|
59
|
+
eventsSinceLastUpdate(eventsProcessed: number): number;
|
|
60
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hybrid time + event threshold scheduler for streaming status updates.
|
|
3
|
+
*
|
|
4
|
+
* Addresses the limitations of naive event-count approaches:
|
|
5
|
+
* - Slow operations (30s tool): no update for 30s — user thinks stuck
|
|
6
|
+
* - Fast operations (100 events/sec): 10 updates/sec — wasteful
|
|
7
|
+
*
|
|
8
|
+
* Algorithm:
|
|
9
|
+
* shouldSendUpdate =
|
|
10
|
+
* (timeSinceLast >= minInterval AND eventsSinceLast >= 1)
|
|
11
|
+
* OR (eventsSinceLast >= burstThreshold)
|
|
12
|
+
* OR (timeSinceLast >= maxInterval)
|
|
13
|
+
* OR firstUpdate
|
|
14
|
+
*
|
|
15
|
+
* Ported from Python StreamingUpdateScheduler.
|
|
16
|
+
*/
|
|
17
|
+
export var UpdateReason;
|
|
18
|
+
(function (UpdateReason) {
|
|
19
|
+
UpdateReason["TIME_THRESHOLD"] = "time_threshold";
|
|
20
|
+
UpdateReason["BURST_PROTECTION"] = "burst_protection";
|
|
21
|
+
UpdateReason["KEEPALIVE"] = "keepalive";
|
|
22
|
+
UpdateReason["FIRST_UPDATE"] = "first_update";
|
|
23
|
+
UpdateReason["NONE"] = "none";
|
|
24
|
+
})(UpdateReason || (UpdateReason = {}));
|
|
25
|
+
const DEFAULT_CONFIG = {
|
|
26
|
+
minIntervalMs: 500,
|
|
27
|
+
maxIntervalMs: 5000,
|
|
28
|
+
burstThreshold: 50,
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Load streaming config from environment variables with validation.
|
|
32
|
+
* Invalid values fall back to defaults with a console warning.
|
|
33
|
+
*/
|
|
34
|
+
export function loadStreamingConfig() {
|
|
35
|
+
const minIntervalMs = parsePositiveInt(process.env.STREAMING_MIN_INTERVAL_MS, DEFAULT_CONFIG.minIntervalMs, "STREAMING_MIN_INTERVAL_MS");
|
|
36
|
+
let maxIntervalMs = parsePositiveInt(process.env.STREAMING_MAX_INTERVAL_MS, DEFAULT_CONFIG.maxIntervalMs, "STREAMING_MAX_INTERVAL_MS");
|
|
37
|
+
const burstThreshold = parsePositiveInt(process.env.STREAMING_BURST_THRESHOLD, DEFAULT_CONFIG.burstThreshold, "STREAMING_BURST_THRESHOLD");
|
|
38
|
+
if (maxIntervalMs < minIntervalMs) {
|
|
39
|
+
console.warn(`STREAMING_MAX_INTERVAL_MS (${maxIntervalMs}) < ` +
|
|
40
|
+
`STREAMING_MIN_INTERVAL_MS (${minIntervalMs}). Setting max to min value.`);
|
|
41
|
+
maxIntervalMs = minIntervalMs;
|
|
42
|
+
}
|
|
43
|
+
return { minIntervalMs, maxIntervalMs, burstThreshold };
|
|
44
|
+
}
|
|
45
|
+
function parsePositiveInt(raw, fallback, envName) {
|
|
46
|
+
if (!raw)
|
|
47
|
+
return fallback;
|
|
48
|
+
const parsed = Number(raw);
|
|
49
|
+
if (!Number.isFinite(parsed) || parsed <= 0 || !Number.isInteger(parsed)) {
|
|
50
|
+
console.warn(`Invalid ${envName}='${raw}'. Using default: ${fallback}`);
|
|
51
|
+
return fallback;
|
|
52
|
+
}
|
|
53
|
+
return parsed;
|
|
54
|
+
}
|
|
55
|
+
export class StreamingUpdateScheduler {
|
|
56
|
+
config;
|
|
57
|
+
lastUpdateTime;
|
|
58
|
+
lastUpdateEvents = 0;
|
|
59
|
+
lastReason = UpdateReason.NONE;
|
|
60
|
+
firstCheck = true;
|
|
61
|
+
/**
|
|
62
|
+
* @param config Scheduling parameters. Defaults to 500ms/5s/50.
|
|
63
|
+
* @param nowMs Injectable clock for testing. Defaults to performance.now().
|
|
64
|
+
*/
|
|
65
|
+
constructor(config, nowMs) {
|
|
66
|
+
this.config = config ?? DEFAULT_CONFIG;
|
|
67
|
+
this.lastUpdateTime = nowMs ?? performance.now();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Determine whether a status update should be sent now.
|
|
71
|
+
*
|
|
72
|
+
* Call after processing each event. If this returns true, send the
|
|
73
|
+
* update and then call {@link markUpdateSent}.
|
|
74
|
+
*/
|
|
75
|
+
shouldSendUpdate(eventsProcessed, nowMs) {
|
|
76
|
+
const now = nowMs ?? performance.now();
|
|
77
|
+
const timeSinceLastMs = now - this.lastUpdateTime;
|
|
78
|
+
const eventsSinceLast = eventsProcessed - this.lastUpdateEvents;
|
|
79
|
+
if (this.firstCheck && eventsSinceLast >= 1) {
|
|
80
|
+
this.lastReason = UpdateReason.FIRST_UPDATE;
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
if (timeSinceLastMs >= this.config.minIntervalMs && eventsSinceLast >= 1) {
|
|
84
|
+
this.lastReason = UpdateReason.TIME_THRESHOLD;
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
if (eventsSinceLast >= this.config.burstThreshold) {
|
|
88
|
+
this.lastReason = UpdateReason.BURST_PROTECTION;
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
if (timeSinceLastMs >= this.config.maxIntervalMs) {
|
|
92
|
+
this.lastReason = UpdateReason.KEEPALIVE;
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
this.lastReason = UpdateReason.NONE;
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
/** Reset tracking state after an update was sent. */
|
|
99
|
+
markUpdateSent(eventsProcessed, nowMs) {
|
|
100
|
+
this.lastUpdateTime = nowMs ?? performance.now();
|
|
101
|
+
this.lastUpdateEvents = eventsProcessed;
|
|
102
|
+
this.firstCheck = false;
|
|
103
|
+
}
|
|
104
|
+
get updateReason() {
|
|
105
|
+
return this.lastReason;
|
|
106
|
+
}
|
|
107
|
+
timeSinceLastUpdateMs(nowMs) {
|
|
108
|
+
return (nowMs ?? performance.now()) - this.lastUpdateTime;
|
|
109
|
+
}
|
|
110
|
+
eventsSinceLastUpdate(eventsProcessed) {
|
|
111
|
+
return eventsProcessed - this.lastUpdateEvents;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=streaming-scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-scheduler.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/streaming-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Side-effect triggers for v3 streaming: artifact publish and git writeback.
|
|
3
|
+
*
|
|
4
|
+
* v3 `tool-finished` events do not carry input — unlike v2 `on_tool_end`.
|
|
5
|
+
* A ToolInputCache correlates `tool-started` input with `tool-finished`
|
|
6
|
+
* by `tool_call_id` so file paths can be extracted for publish/writeback.
|
|
7
|
+
*/
|
|
8
|
+
import type { V3ProtocolEvent } from "./v3-event-recorder.js";
|
|
9
|
+
import type { InlinePublisher } from "./inline-publisher.js";
|
|
10
|
+
import type { WriteBackCoordinator } from "./writeback-coordinator.js";
|
|
11
|
+
export declare class StreamingSideEffects {
|
|
12
|
+
private readonly inputCache;
|
|
13
|
+
private readonly inlinePublisher;
|
|
14
|
+
private readonly writebackCoordinator;
|
|
15
|
+
readonly pendingPublishPromises: Promise<void>[];
|
|
16
|
+
readonly pendingWritebackPromises: Promise<void>[];
|
|
17
|
+
constructor(opts: {
|
|
18
|
+
inlinePublisher?: InlinePublisher;
|
|
19
|
+
writebackCoordinator?: WriteBackCoordinator;
|
|
20
|
+
});
|
|
21
|
+
onProtocolEvent(event: V3ProtocolEvent): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Side-effect triggers for v3 streaming: artifact publish and git writeback.
|
|
3
|
+
*
|
|
4
|
+
* v3 `tool-finished` events do not carry input — unlike v2 `on_tool_end`.
|
|
5
|
+
* A ToolInputCache correlates `tool-started` input with `tool-finished`
|
|
6
|
+
* by `tool_call_id` so file paths can be extracted for publish/writeback.
|
|
7
|
+
*/
|
|
8
|
+
const FILE_MODIFYING_TOOLS = new Set([
|
|
9
|
+
"write_file", "edit_file", "create_file",
|
|
10
|
+
"write", "edit", "create",
|
|
11
|
+
"str_replace_editor",
|
|
12
|
+
]);
|
|
13
|
+
export class StreamingSideEffects {
|
|
14
|
+
inputCache = new Map();
|
|
15
|
+
inlinePublisher;
|
|
16
|
+
writebackCoordinator;
|
|
17
|
+
pendingPublishPromises = [];
|
|
18
|
+
pendingWritebackPromises = [];
|
|
19
|
+
constructor(opts) {
|
|
20
|
+
this.inlinePublisher = opts.inlinePublisher;
|
|
21
|
+
this.writebackCoordinator = opts.writebackCoordinator;
|
|
22
|
+
}
|
|
23
|
+
onProtocolEvent(event) {
|
|
24
|
+
if (event.method !== "tools")
|
|
25
|
+
return;
|
|
26
|
+
if (!this.inlinePublisher && !this.writebackCoordinator)
|
|
27
|
+
return;
|
|
28
|
+
const data = event.params.data;
|
|
29
|
+
if (!data)
|
|
30
|
+
return;
|
|
31
|
+
const eventType = (data.event ?? data.type);
|
|
32
|
+
const callId = (data.tool_call_id ?? data.toolCallId);
|
|
33
|
+
if (!callId)
|
|
34
|
+
return;
|
|
35
|
+
if (eventType === "tool-started") {
|
|
36
|
+
const toolName = (data.tool_name ?? data.toolName ?? data.name ?? "");
|
|
37
|
+
const rawInput = data.input;
|
|
38
|
+
let input = {};
|
|
39
|
+
if (typeof rawInput === "string") {
|
|
40
|
+
try {
|
|
41
|
+
input = JSON.parse(rawInput);
|
|
42
|
+
}
|
|
43
|
+
catch { /* leave empty */ }
|
|
44
|
+
}
|
|
45
|
+
else if (rawInput && typeof rawInput === "object" && !Array.isArray(rawInput)) {
|
|
46
|
+
input = rawInput;
|
|
47
|
+
}
|
|
48
|
+
this.inputCache.set(callId, { toolName, input });
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (eventType === "tool-finished") {
|
|
52
|
+
const cached = this.inputCache.get(callId);
|
|
53
|
+
this.inputCache.delete(callId);
|
|
54
|
+
if (!cached)
|
|
55
|
+
return;
|
|
56
|
+
if (!FILE_MODIFYING_TOOLS.has(cached.toolName))
|
|
57
|
+
return;
|
|
58
|
+
const filePath = extractFilePath(cached.input);
|
|
59
|
+
if (!filePath)
|
|
60
|
+
return;
|
|
61
|
+
if (this.inlinePublisher) {
|
|
62
|
+
this.pendingPublishPromises.push(this.inlinePublisher.publish(filePath));
|
|
63
|
+
}
|
|
64
|
+
if (this.writebackCoordinator) {
|
|
65
|
+
this.pendingWritebackPromises.push(this.writebackCoordinator.onFileModified(filePath));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function extractFilePath(input) {
|
|
71
|
+
if (typeof input.path === "string")
|
|
72
|
+
return input.path;
|
|
73
|
+
if (typeof input.file_path === "string")
|
|
74
|
+
return input.file_path;
|
|
75
|
+
if (typeof input.filePath === "string")
|
|
76
|
+
return input.filePath;
|
|
77
|
+
if (typeof input.filename === "string")
|
|
78
|
+
return input.filename;
|
|
79
|
+
if (typeof input.file === "string")
|
|
80
|
+
return input.file;
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=streaming-side-effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-side-effects.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/streaming-side-effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared terminal state handlers for both v2 and v3 streaming loops.
|
|
3
|
+
*
|
|
4
|
+
* Extracted so pause, stop, and recursion-limit handling is identical
|
|
5
|
+
* between both paths — no silent semantic divergence.
|
|
6
|
+
*/
|
|
7
|
+
import type { ExecutionStatusWriter } from "./execution-status-writer.js";
|
|
8
|
+
import type { StreamResult } from "./streaming.js";
|
|
9
|
+
export declare function handlePause(writer: ExecutionStatusWriter, eventsProcessed: number, pendingPublishPromises: readonly Promise<void>[], pendingWritebackPromises: readonly Promise<void>[]): StreamResult;
|
|
10
|
+
export declare function handleStop(writer: ExecutionStatusWriter, eventsProcessed: number, pendingPublishPromises: readonly Promise<void>[], pendingWritebackPromises: readonly Promise<void>[]): StreamResult;
|
|
11
|
+
export declare function handleRecursionLimit(writer: ExecutionStatusWriter, eventsProcessed: number, pendingPublishPromises: readonly Promise<void>[], pendingWritebackPromises: readonly Promise<void>[]): StreamResult;
|
|
12
|
+
export declare function isGraphRecursionError(err: unknown): boolean;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared terminal state handlers for both v2 and v3 streaming loops.
|
|
3
|
+
*
|
|
4
|
+
* Extracted so pause, stop, and recursion-limit handling is identical
|
|
5
|
+
* between both paths — no silent semantic divergence.
|
|
6
|
+
*/
|
|
7
|
+
import { create } from "@bufbuild/protobuf";
|
|
8
|
+
import { AgentMessageSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
9
|
+
import { ExecutionPhase, MessageType } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
10
|
+
import { slimStatus, utcTimestamp } from "../../shared/status.js";
|
|
11
|
+
export function handlePause(writer, eventsProcessed, pendingPublishPromises, pendingWritebackPromises) {
|
|
12
|
+
const status = writer.currentStatus;
|
|
13
|
+
status.phase = ExecutionPhase.EXECUTION_PAUSED;
|
|
14
|
+
status.messages.push(create(AgentMessageSchema, {
|
|
15
|
+
type: MessageType.MESSAGE_SYSTEM,
|
|
16
|
+
content: "Execution paused by user. Use resume to continue from this checkpoint.",
|
|
17
|
+
timestamp: utcTimestamp(),
|
|
18
|
+
}));
|
|
19
|
+
return {
|
|
20
|
+
eventsProcessed,
|
|
21
|
+
terminalStatus: slimStatus(status),
|
|
22
|
+
pendingPublishPromises,
|
|
23
|
+
pendingWritebackPromises,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function handleStop(writer, eventsProcessed, pendingPublishPromises, pendingWritebackPromises) {
|
|
27
|
+
const status = writer.currentStatus;
|
|
28
|
+
status.phase = ExecutionPhase.EXECUTION_COMPLETED;
|
|
29
|
+
status.completedAt = utcTimestamp();
|
|
30
|
+
status.messages.push(create(AgentMessageSchema, {
|
|
31
|
+
type: MessageType.MESSAGE_SYSTEM,
|
|
32
|
+
content: "Execution stopped by the platform.",
|
|
33
|
+
timestamp: utcTimestamp(),
|
|
34
|
+
}));
|
|
35
|
+
return {
|
|
36
|
+
eventsProcessed,
|
|
37
|
+
terminalStatus: slimStatus(status),
|
|
38
|
+
pendingPublishPromises,
|
|
39
|
+
pendingWritebackPromises,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function handleRecursionLimit(writer, eventsProcessed, pendingPublishPromises, pendingWritebackPromises) {
|
|
43
|
+
const status = writer.currentStatus;
|
|
44
|
+
status.phase = ExecutionPhase.EXECUTION_TERMINATED;
|
|
45
|
+
status.completedAt = utcTimestamp();
|
|
46
|
+
status.error =
|
|
47
|
+
`Agent reached the tool-call limit after processing ${eventsProcessed} events. ` +
|
|
48
|
+
`Send another message to continue.`;
|
|
49
|
+
status.messages.push(create(AgentMessageSchema, {
|
|
50
|
+
type: MessageType.MESSAGE_SYSTEM,
|
|
51
|
+
content: "The agent reached the tool-call limit for this message. " +
|
|
52
|
+
"Work completed so far has been saved. " +
|
|
53
|
+
"Send another message to continue where the agent left off.",
|
|
54
|
+
timestamp: utcTimestamp(),
|
|
55
|
+
}));
|
|
56
|
+
return {
|
|
57
|
+
eventsProcessed,
|
|
58
|
+
terminalStatus: slimStatus(status),
|
|
59
|
+
pendingPublishPromises,
|
|
60
|
+
pendingWritebackPromises,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function isGraphRecursionError(err) {
|
|
64
|
+
if (err instanceof Error) {
|
|
65
|
+
return err.constructor.name === "GraphRecursionError" ||
|
|
66
|
+
err.message.includes("GraphRecursionError") ||
|
|
67
|
+
err.message.includes("Recursion limit");
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=streaming-terminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-terminal.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/streaming-terminal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,8DAA8D,CAAC;AAG3G,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,UAAU,WAAW,CACzB,MAA6B,EAC7B,eAAuB,EACvB,sBAAgD,EAChD,wBAAkD;IAElD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IACpC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,gBAAgB,CAAC;IAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC9C,IAAI,EAAE,WAAW,CAAC,cAAc;QAChC,OAAO,EAAE,wEAAwE;QACjF,SAAS,EAAE,YAAY,EAAE;KAC1B,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,eAAe;QACf,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC;QAClC,sBAAsB;QACtB,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,MAA6B,EAC7B,eAAuB,EACvB,sBAAgD,EAChD,wBAAkD;IAElD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IACpC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,mBAAmB,CAAC;IAClD,MAAM,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC;IACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC9C,IAAI,EAAE,WAAW,CAAC,cAAc;QAChC,OAAO,EAAE,oCAAoC;QAC7C,SAAS,EAAE,YAAY,EAAE;KAC1B,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,eAAe;QACf,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC;QAClC,sBAAsB;QACtB,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAA6B,EAC7B,eAAuB,EACvB,sBAAgD,EAChD,wBAAkD;IAElD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IACpC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC;IACnD,MAAM,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC;IACpC,MAAM,CAAC,KAAK;QACV,sDAAsD,eAAe,WAAW;YAChF,mCAAmC,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC9C,IAAI,EAAE,WAAW,CAAC,cAAc;QAChC,OAAO,EACL,0DAA0D;YAC1D,wCAAwC;YACxC,4DAA4D;QAC9D,SAAS,EAAE,YAAY,EAAE;KAC1B,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,eAAe;QACf,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC;QAClC,sBAAsB;QACtB,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,qBAAqB;YACnD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 streaming execution loop for ExecuteDeepAgent.
|
|
3
|
+
*
|
|
4
|
+
* Feature-flagged path activated by LANGGRAPH_STREAM_EVENTS_VERSION=v3.
|
|
5
|
+
* Calls the v3 streamEvents API (two-arg, returns Promise<GraphRunStream>),
|
|
6
|
+
* iterates raw ProtocolEvents, feeds them through the V3ProtocolNormalizer
|
|
7
|
+
* and V3StatusBuilder, persists status on schedule, and handles terminal
|
|
8
|
+
* conditions (STOP, pause, recursion limit) identically to v2.
|
|
9
|
+
*
|
|
10
|
+
* Phase 2: full orchestration parity with streamExecutionV2.
|
|
11
|
+
*/
|
|
12
|
+
import type { StreamDependencies, StreamResult } from "./streaming.js";
|
|
13
|
+
export declare function streamExecutionV3(deps: StreamDependencies): Promise<StreamResult>;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 streaming execution loop for ExecuteDeepAgent.
|
|
3
|
+
*
|
|
4
|
+
* Feature-flagged path activated by LANGGRAPH_STREAM_EVENTS_VERSION=v3.
|
|
5
|
+
* Calls the v3 streamEvents API (two-arg, returns Promise<GraphRunStream>),
|
|
6
|
+
* iterates raw ProtocolEvents, feeds them through the V3ProtocolNormalizer
|
|
7
|
+
* and V3StatusBuilder, persists status on schedule, and handles terminal
|
|
8
|
+
* conditions (STOP, pause, recursion limit) identically to v2.
|
|
9
|
+
*
|
|
10
|
+
* Phase 2: full orchestration parity with streamExecutionV2.
|
|
11
|
+
*/
|
|
12
|
+
import { StallTimeoutError } from "./streaming.js";
|
|
13
|
+
import { ExecutionControlSignal, ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
14
|
+
import { createV3EventRecorder } from "./v3-event-recorder.js";
|
|
15
|
+
import { normalize } from "./v3-protocol-normalizer.js";
|
|
16
|
+
import { V3StatusBuilder } from "./v3-status-builder.js";
|
|
17
|
+
import { StreamingUpdateScheduler } from "./streaming-scheduler.js";
|
|
18
|
+
import { persistWithRetry } from "../../shared/grpc-retry.js";
|
|
19
|
+
import { slimStatus } from "../../shared/status.js";
|
|
20
|
+
import { StreamingSideEffects } from "./streaming-side-effects.js";
|
|
21
|
+
import { handlePause, handleStop, handleRecursionLimit, isGraphRecursionError, } from "./streaming-terminal.js";
|
|
22
|
+
const DEFAULT_STALL_TIMEOUT_MS = 120_000;
|
|
23
|
+
const HEARTBEAT_INTERVAL_MS = 2_000;
|
|
24
|
+
const RUN_OUTPUT_TIMEOUT_MS = 30_000;
|
|
25
|
+
export async function streamExecutionV3(deps) {
|
|
26
|
+
const { agentGraph, langgraphInput, langgraphConfig, executionId, client, initialStatus, streamingConfig, retryOptions, stallTimeoutMs = DEFAULT_STALL_TIMEOUT_MS, heartbeatFn, isCancelledFn, gracefulStop, inlinePublisher, writebackCoordinator, approvalProvider, } = deps;
|
|
27
|
+
const statusBuilder = new V3StatusBuilder(executionId, initialStatus);
|
|
28
|
+
if (approvalProvider) {
|
|
29
|
+
statusBuilder.setApprovalProvider(approvalProvider);
|
|
30
|
+
}
|
|
31
|
+
const scheduler = new StreamingUpdateScheduler(streamingConfig);
|
|
32
|
+
const recorder = createV3EventRecorder(executionId, process.env.V3_EVENT_RECORD_DIR);
|
|
33
|
+
const abortController = new AbortController();
|
|
34
|
+
const sideEffects = new StreamingSideEffects({
|
|
35
|
+
inlinePublisher,
|
|
36
|
+
writebackCoordinator,
|
|
37
|
+
});
|
|
38
|
+
// Pre-loop heartbeat to cover the initial await
|
|
39
|
+
sendHeartbeat(heartbeatFn, executionId, 0, statusBuilder);
|
|
40
|
+
const run = await agentGraph.streamEvents(langgraphInput, {
|
|
41
|
+
...langgraphConfig,
|
|
42
|
+
version: "v3",
|
|
43
|
+
signal: abortController.signal,
|
|
44
|
+
});
|
|
45
|
+
let eventsProcessed = 0;
|
|
46
|
+
let lastActivityAt = performance.now();
|
|
47
|
+
const heartbeatTimer = setInterval(() => {
|
|
48
|
+
sendHeartbeat(heartbeatFn, executionId, eventsProcessed, statusBuilder);
|
|
49
|
+
}, HEARTBEAT_INTERVAL_MS);
|
|
50
|
+
try {
|
|
51
|
+
for await (const event of run) {
|
|
52
|
+
if (isCancelledFn?.()) {
|
|
53
|
+
abortController.abort("Cancelled by platform");
|
|
54
|
+
statusBuilder.cancelSubAgents();
|
|
55
|
+
return handlePause(statusBuilder, eventsProcessed, sideEffects.pendingPublishPromises, sideEffects.pendingWritebackPromises);
|
|
56
|
+
}
|
|
57
|
+
lastActivityAt = performance.now();
|
|
58
|
+
recorder?.record(event, eventsProcessed);
|
|
59
|
+
for (const normalized of normalize(event)) {
|
|
60
|
+
statusBuilder.processEvent(normalized);
|
|
61
|
+
}
|
|
62
|
+
sideEffects.onProtocolEvent(event);
|
|
63
|
+
eventsProcessed++;
|
|
64
|
+
const shouldPersist = statusBuilder.forceNextUpdate ||
|
|
65
|
+
scheduler.shouldSendUpdate(eventsProcessed);
|
|
66
|
+
if (shouldPersist) {
|
|
67
|
+
if (statusBuilder.forceNextUpdate) {
|
|
68
|
+
statusBuilder.clearForceFlag();
|
|
69
|
+
}
|
|
70
|
+
statusBuilder.syncSubAgentExecutions();
|
|
71
|
+
const signal = await persistWithRetry(client, executionId, statusBuilder.currentStatus, retryOptions);
|
|
72
|
+
scheduler.markUpdateSent(eventsProcessed);
|
|
73
|
+
if (signal === ExecutionControlSignal.STOP) {
|
|
74
|
+
console.warn(`[streaming-v3] STOP signal received for execution ${executionId}`);
|
|
75
|
+
if (gracefulStop) {
|
|
76
|
+
gracefulStop.activate("Platform STOP signal");
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return handleStop(statusBuilder, eventsProcessed, sideEffects.pendingPublishPromises, sideEffects.pendingWritebackPromises);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
checkStallTimeout(lastActivityAt, stallTimeoutMs, executionId);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
if (isGraphRecursionError(err)) {
|
|
88
|
+
await recorder?.flush();
|
|
89
|
+
return handleRecursionLimit(statusBuilder, eventsProcessed, sideEffects.pendingPublishPromises, sideEffects.pendingWritebackPromises);
|
|
90
|
+
}
|
|
91
|
+
throw err;
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
clearInterval(heartbeatTimer);
|
|
95
|
+
}
|
|
96
|
+
await recorder?.flush();
|
|
97
|
+
if (eventsProcessed === 0) {
|
|
98
|
+
throw new Error("Stream completed without processing any events. " +
|
|
99
|
+
"This may indicate a configuration error or v3 API incompatibility.");
|
|
100
|
+
}
|
|
101
|
+
statusBuilder.syncSubAgentExecutions();
|
|
102
|
+
if (initialStatus.phase === ExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL) {
|
|
103
|
+
console.log(`[streaming-v3] execution=${executionId} stream ended with WAITING_FOR_APPROVAL. ` +
|
|
104
|
+
`Not setting COMPLETED. pending_approvals computed server-side.`);
|
|
105
|
+
return {
|
|
106
|
+
eventsProcessed,
|
|
107
|
+
terminalStatus: slimStatus(initialStatus),
|
|
108
|
+
pendingPublishPromises: sideEffects.pendingPublishPromises,
|
|
109
|
+
pendingWritebackPromises: sideEffects.pendingWritebackPromises,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
console.log(`[streaming-v3] execution=${executionId} stream finished — ` +
|
|
113
|
+
`processed ${eventsProcessed} events`);
|
|
114
|
+
const runOutput = await extractRunOutput(run, executionId);
|
|
115
|
+
return {
|
|
116
|
+
eventsProcessed,
|
|
117
|
+
runOutput,
|
|
118
|
+
pendingPublishPromises: sideEffects.pendingPublishPromises,
|
|
119
|
+
pendingWritebackPromises: sideEffects.pendingWritebackPromises,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// ── Run Output Extraction ────────────────────────────────────────────
|
|
123
|
+
async function extractRunOutput(run, executionId) {
|
|
124
|
+
try {
|
|
125
|
+
const finalState = await Promise.race([
|
|
126
|
+
run.output,
|
|
127
|
+
timeoutPromise(RUN_OUTPUT_TIMEOUT_MS),
|
|
128
|
+
]);
|
|
129
|
+
if (finalState === TIMEOUT_SENTINEL) {
|
|
130
|
+
console.warn(`[streaming-v3] execution=${executionId} — run.output did not resolve ` +
|
|
131
|
+
`within ${RUN_OUTPUT_TIMEOUT_MS}ms. Proceeding without final state.`);
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
const output = finalState;
|
|
135
|
+
console.log(`[streaming-v3] execution=${executionId} — run.output resolved. ` +
|
|
136
|
+
`Keys: [${Object.keys(output ?? {}).join(", ")}]. ` +
|
|
137
|
+
`hasStructuredResponse=${output?.structuredResponse !== undefined}`);
|
|
138
|
+
return output;
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
console.warn(`[streaming-v3] execution=${executionId} — run.output rejected: ${err}`);
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const TIMEOUT_SENTINEL = Symbol("timeout");
|
|
146
|
+
function timeoutPromise(ms) {
|
|
147
|
+
return new Promise((resolve) => setTimeout(() => resolve(TIMEOUT_SENTINEL), ms));
|
|
148
|
+
}
|
|
149
|
+
// ── Helpers ──────────────────────────────────────────────────────────
|
|
150
|
+
function sendHeartbeat(fn, executionId, eventsProcessed, sb) {
|
|
151
|
+
if (!fn)
|
|
152
|
+
return;
|
|
153
|
+
try {
|
|
154
|
+
fn({
|
|
155
|
+
executionId,
|
|
156
|
+
eventsProcessed,
|
|
157
|
+
messages: sb.currentStatus.messages.length,
|
|
158
|
+
phase: sb.currentStatus.phase,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
catch { /* swallow */ }
|
|
162
|
+
}
|
|
163
|
+
function checkStallTimeout(lastActivityAt, stallTimeoutMs, executionId) {
|
|
164
|
+
const elapsed = performance.now() - lastActivityAt;
|
|
165
|
+
if (elapsed > stallTimeoutMs) {
|
|
166
|
+
throw new StallTimeoutError(`Agent stream stalled: no events received for ${Math.round(elapsed / 1000)}s ` +
|
|
167
|
+
`for execution ${executionId}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=streaming-v3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-v3.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/streaming-v3.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming execution loop for ExecuteDeepAgent.
|
|
3
|
+
*
|
|
4
|
+
* Replaces the Phase 3a invoke() approach with streamEvents() v2
|
|
5
|
+
* consumption. Feeds events to the StatusBuilder, persists status
|
|
6
|
+
* via the scheduler + retry executor, handles terminal conditions
|
|
7
|
+
* (STOP signal, stall, recursion limit, cancellation).
|
|
8
|
+
*
|
|
9
|
+
* Phase 3b-iii: inline artifact publish and incremental git writeback
|
|
10
|
+
* on file-modifying tool completions (write, edit, create).
|
|
11
|
+
*/
|
|
12
|
+
import type { AgentExecutionStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
13
|
+
import { type StreamEvent, type ApprovalPolicyProvider } from "./status-builder.js";
|
|
14
|
+
import { type StreamingConfig } from "./streaming-scheduler.js";
|
|
15
|
+
import { type RetryOptions } from "../../shared/grpc-retry.js";
|
|
16
|
+
import type { StigmerClient } from "../../client/stigmer-client.js";
|
|
17
|
+
import type { GracefulStopMiddleware } from "../../middleware/index.js";
|
|
18
|
+
import type { InlinePublisher } from "./inline-publisher.js";
|
|
19
|
+
import type { WriteBackCoordinator } from "./writeback-coordinator.js";
|
|
20
|
+
export interface StreamDependencies {
|
|
21
|
+
readonly agentGraph: {
|
|
22
|
+
streamEvents(input: Record<string, unknown>, config: Record<string, unknown>, options: {
|
|
23
|
+
version: string;
|
|
24
|
+
}): AsyncIterable<StreamEvent>;
|
|
25
|
+
};
|
|
26
|
+
readonly langgraphInput: Record<string, unknown>;
|
|
27
|
+
readonly langgraphConfig: Record<string, unknown>;
|
|
28
|
+
readonly executionId: string;
|
|
29
|
+
readonly client: StigmerClient;
|
|
30
|
+
readonly initialStatus: AgentExecutionStatus;
|
|
31
|
+
readonly streamingConfig?: StreamingConfig;
|
|
32
|
+
readonly retryOptions?: RetryOptions;
|
|
33
|
+
readonly stallTimeoutMs?: number;
|
|
34
|
+
/** Temporal heartbeat. Injected so the loop is testable without Temporal. */
|
|
35
|
+
readonly heartbeatFn?: (details: Record<string, unknown>) => void;
|
|
36
|
+
/** Temporal cancellation check. */
|
|
37
|
+
readonly isCancelledFn?: () => boolean;
|
|
38
|
+
/** GracefulStopMiddleware instance for platform STOP signal handling. */
|
|
39
|
+
readonly gracefulStop?: GracefulStopMiddleware;
|
|
40
|
+
/** Inline artifact publisher for file-modifying tool completions. */
|
|
41
|
+
readonly inlinePublisher?: InlinePublisher;
|
|
42
|
+
/** Incremental git write-back coordinator. */
|
|
43
|
+
readonly writebackCoordinator?: WriteBackCoordinator;
|
|
44
|
+
/** Approval policy provider for StatusBuilder tool-call phase tracking. */
|
|
45
|
+
readonly approvalProvider?: ApprovalPolicyProvider;
|
|
46
|
+
/** Streaming protocol version. Defaults to "v2" if unset. */
|
|
47
|
+
readonly streamVersion?: "v2" | "v3";
|
|
48
|
+
}
|
|
49
|
+
export interface StreamResult {
|
|
50
|
+
readonly eventsProcessed: number;
|
|
51
|
+
readonly terminalStatus?: unknown;
|
|
52
|
+
readonly pendingPublishPromises: readonly Promise<void>[];
|
|
53
|
+
readonly pendingWritebackPromises: readonly Promise<void>[];
|
|
54
|
+
/** v3 only: the final state from run.output (includes structuredResponse if present). */
|
|
55
|
+
readonly runOutput?: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Run the streaming loop: consume streamEvents, map to proto via
|
|
59
|
+
* StatusBuilder, persist on schedule, and handle terminal conditions.
|
|
60
|
+
*
|
|
61
|
+
* Routes to v3 when deps.streamVersion === "v3".
|
|
62
|
+
*/
|
|
63
|
+
export declare function streamExecution(deps: StreamDependencies): Promise<StreamResult>;
|
|
64
|
+
export declare class StallTimeoutError extends Error {
|
|
65
|
+
constructor(message: string);
|
|
66
|
+
}
|