@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
package/README.md
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# @stigmer/runner
|
|
2
|
+
|
|
3
|
+
Embeddable Temporal worker for the Stigmer AI agent platform. The runner executes agent sessions and workflow executions — driving the Cursor and native (deep-agent) harnesses, orchestrating MCP servers, and reporting status and artifacts back to the Stigmer backend.
|
|
4
|
+
|
|
5
|
+
It is the single runtime behind three surfaces:
|
|
6
|
+
|
|
7
|
+
- the **CLI daemon** (`stigmer up`) running agents locally,
|
|
8
|
+
- **cloud deployments** (Kubernetes / sandbox) running managed executions, and
|
|
9
|
+
- the **desktop app**, which embeds the runner as a subprocess to run sessions on the user's own machine.
|
|
10
|
+
|
|
11
|
+
This document is the operational reference for the package: how it runs, what it needs, and every environment variable that configures it. You should not need to read `config.ts` or `main.ts` to operate or embed the runner.
|
|
12
|
+
|
|
13
|
+
> **You usually don't start the runner by hand.** `stigmer up` runs it for local agent execution, and the desktop app embeds it automatically. Invoke the `stigmer-runner` binary directly only for advanced operation or embedding — which is what this document covers.
|
|
14
|
+
|
|
15
|
+
> The deep manager-mode IPC protocol (see [Manager mode](#manager-mode)), the desktop-vs-web embedding walkthrough, and the SDK-level `RunnerAdapter` / `executionTarget` surfaces are documented separately — see [Related documentation](#related-documentation).
|
|
16
|
+
|
|
17
|
+
## Install and build
|
|
18
|
+
|
|
19
|
+
The runner is a workspace package in the Stigmer monorepo. Build it from the repo root:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
make build-runner
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This runs `npm run build` in `backend/services/runner` (`tsc -p tsconfig.build.json`) and then writes a build fingerprint (see [The stale-build guard](#the-stale-build-guard)). The compiled output lands in `dist/`, with a `stigmer-runner` CLI entry point at `dist/main.js`.
|
|
26
|
+
|
|
27
|
+
Requires Node.js `>= 20`.
|
|
28
|
+
|
|
29
|
+
## Run modes
|
|
30
|
+
|
|
31
|
+
The runner has two **run modes**, selected by the `STIGMER_RUNNER_MODE` environment variable. Do not confuse the run mode (process topology) with the execution location (`MODE=local|cloud`) or the transport (`STIGMER_PROXY_ENDPOINT`) — those are independent axes covered in [Execution location vs transport](#execution-location-vs-transport).
|
|
32
|
+
|
|
33
|
+
| Run mode | Selector | Topology | Used by |
|
|
34
|
+
|----------|----------|----------|---------|
|
|
35
|
+
| Static | `STIGMER_RUNNER_MODE` unset (default) | One Worker polling one task queue; blocks until shutdown | CLI daemon, cloud deployments |
|
|
36
|
+
| Manager | `STIGMER_RUNNER_MODE=manager` | Shared Temporal connection; dynamic per-session / per-execution Workers; stdin/stdout JSON IPC | Desktop app |
|
|
37
|
+
|
|
38
|
+
### Static mode
|
|
39
|
+
|
|
40
|
+
Static mode creates a single Temporal Worker that polls one task queue and runs until it receives `SIGTERM` / `SIGINT`. This is the right mode when the set of work is fixed at startup (a daemon or a pod dedicated to a queue).
|
|
41
|
+
|
|
42
|
+
As a library:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
import { createStigmerRunner } from "@stigmer/runner";
|
|
46
|
+
|
|
47
|
+
const runner = await createStigmerRunner({
|
|
48
|
+
taskQueue: "stigmer_runner",
|
|
49
|
+
temporalAddress: "localhost:7233",
|
|
50
|
+
stigmerEndpoint: "http://localhost:7234",
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
process.on("SIGTERM", () => runner.shutdown());
|
|
54
|
+
await runner.start(); // blocks until shutdown
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The `stigmer-runner` CLI runs this mode by default, reading its configuration from the environment.
|
|
58
|
+
|
|
59
|
+
### Manager mode
|
|
60
|
+
|
|
61
|
+
Manager mode keeps a single shared Temporal connection and a single set of activities, then spins Workers up and down on demand — one per session (`session:{sessionId}`) and one per workflow execution (`wfexec:{executionId}`). This is what the desktop app needs: it adds and removes Workers as the user opens and closes sessions, without restarting the process.
|
|
62
|
+
|
|
63
|
+
As a library:
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
import { createStigmerRunnerManager } from "@stigmer/runner";
|
|
67
|
+
|
|
68
|
+
const manager = await createStigmerRunnerManager({
|
|
69
|
+
temporalAddress: "localhost:7233",
|
|
70
|
+
stigmerEndpoint: "http://localhost:7234",
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
await manager.addSession("ses_abc123");
|
|
74
|
+
// ... later
|
|
75
|
+
await manager.removeSession("ses_abc123");
|
|
76
|
+
await manager.shutdown();
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
As a subprocess, the host launches `stigmer-runner` with `STIGMER_RUNNER_MODE=manager` and drives it over a line-delimited JSON protocol on stdin/stdout (`addSession`, `removeSession`, `addWorkflowExecution`, `updateToken`, `shutdown`). The protocol surface is intentionally small and is specified in detail elsewhere — see [Related documentation](#related-documentation).
|
|
80
|
+
|
|
81
|
+
### A note for embedders: OpenTelemetry
|
|
82
|
+
|
|
83
|
+
When you embed the runner as a **library** (`createStigmerRunner` / `createStigmerRunnerManager`), the factory does **not** initialize OpenTelemetry — tracing and metrics mutate global state, which the embedding process should own. The factory still wires the Temporal OTel interceptor internally when `OTEL_EXPORTER_OTLP_ENDPOINT` is set, but you must initialize the tracer/meter providers yourself if you want spans and metrics exported. The `stigmer-runner` CLI initializes OTel for you in static mode.
|
|
84
|
+
|
|
85
|
+
## Execution location vs transport
|
|
86
|
+
|
|
87
|
+
Two settings are easy to conflate but are deliberately independent:
|
|
88
|
+
|
|
89
|
+
- **`MODE` — execution location.** Where the agent runs and whose filesystem it sees. `local` allows local-path workspaces on the host filesystem; `cloud` runs in a server-provisioned sandbox (git-only).
|
|
90
|
+
- **`STIGMER_PROXY_ENDPOINT` — transport.** How credentials and artifacts move. When set, the runner routes Cursor SDK traffic through the Stigmer proxy and pushes artifacts through it, instead of talking to providers and storage directly.
|
|
91
|
+
|
|
92
|
+
These are orthogonal. The **desktop runner** is the canonical case where they diverge: it executes **locally** (`MODE=local`, so local-path workspaces work) yet still routes Cursor traffic and artifact uploads **through the proxy**. Coupling the two — forcing "proxy implies cloud" — is exactly what previously broke local-path sessions, which is why the env path (`MODE`) and both library factories (`executionMode`) treat them separately.
|
|
93
|
+
|
|
94
|
+
> **Library factories — `executionMode`.** Both `createStigmerRunner` and `createStigmerRunnerManager` accept an optional `executionMode: "local" | "cloud"` that sets execution location independently of proxy transport. When omitted, the static `createStigmerRunner` derives it for backward compatibility (`proxy ⇒ cloud`, otherwise `local`); the manager defaults to `local`. Set `executionMode: "local"` together with `proxyEndpoint` to express the desktop case — local execution with proxy transport.
|
|
95
|
+
|
|
96
|
+
### Credential modes
|
|
97
|
+
|
|
98
|
+
The transport setting drives two credential modes:
|
|
99
|
+
|
|
100
|
+
- **Direct mode** (local / OSS): you provide `CURSOR_API_KEY` directly (for the Cursor harness); `STIGMER_TOKEN` is optional because a local Stigmer server has no auth. `STIGMER_PROXY_ENDPOINT` is unset.
|
|
101
|
+
- **Proxy mode** (cloud / managed runners): `STIGMER_PROXY_ENDPOINT` and `STIGMER_TOKEN` are required. You do not supply `CURSOR_API_KEY` — the proxy validates your token and injects the real Cursor key upstream. The runner sets `CURSOR_BACKEND_URL` / `CURSOR_API_BASE_URL` to the proxy endpoint automatically; these are runner-managed, not configuration you set.
|
|
102
|
+
|
|
103
|
+
## Required infrastructure
|
|
104
|
+
|
|
105
|
+
| Component | When | Purpose |
|
|
106
|
+
|-----------|------|---------|
|
|
107
|
+
| Temporal | Always | The runner is a Temporal Worker. It needs a reachable Temporal frontend and a namespace. You may set these explicitly (`TEMPORAL_SERVICE_ADDRESS`, `TEMPORAL_NAMESPACE`), but when a token is present the runner self-discovers them from the control plane at boot — see the env reference below. |
|
|
108
|
+
| Stigmer backend | Always | The control plane (`STIGMER_BACKEND_ENDPOINT`) for status updates, blueprints, and (local) artifact serving. |
|
|
109
|
+
| Stigmer proxy + token | Proxy/cloud only | The proxy (`STIGMER_PROXY_ENDPOINT`) brokers Cursor credentials and artifact storage; `STIGMER_TOKEN` authenticates to it. |
|
|
110
|
+
|
|
111
|
+
In local/direct mode, only Temporal and the Stigmer backend are required, and both default to localhost.
|
|
112
|
+
|
|
113
|
+
## The stale-build guard
|
|
114
|
+
|
|
115
|
+
The runner runs from compiled `dist/` output. A stale `dist/` — source changed but not rebuilt — silently runs old code, which has historically cost hours of debugging (structured-output failures, naming mismatches, env-resolution regressions).
|
|
116
|
+
|
|
117
|
+
To prevent this, `npm run build` writes `dist/.build-fingerprint`: a JSON file with a SHA-256 hash of all `src/**/*.ts` files (excluding `node_modules` and `__tests__`), plus a build timestamp and file count. At startup, `checkBuildFreshness()` recomputes the hash and compares it. On mismatch, the runner prints a clear error and exits with code `78`:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
!!! STALE RUNNER BUILD — REFUSING TO START !!!
|
|
121
|
+
dist/ was built at <timestamp> (hash <hash>)
|
|
122
|
+
src/ has changed since (current hash <hash>)
|
|
123
|
+
|
|
124
|
+
Run 'make build-runner' or 'make desktop-dev' to rebuild.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The check is skipped gracefully when the fingerprint file is absent — for example under `tsx` (`npm run start`), in CI, or on a first build — so it never blocks development workflows that run from source.
|
|
128
|
+
|
|
129
|
+
## Environment variable reference
|
|
130
|
+
|
|
131
|
+
All configuration is environment-driven. Names and defaults below are verified against `src/config.ts`, `src/shared/artifact-storage.ts`, `src/claimcheck/config.ts`, `src/otel.ts`, and the LLM/registry activities. "Applies to" indicates the run mode, execution location, or credential mode a variable is relevant to.
|
|
132
|
+
|
|
133
|
+
### Core configuration
|
|
134
|
+
|
|
135
|
+
| Variable | Applies to | Required | Default | Purpose |
|
|
136
|
+
|----------|-----------|----------|---------|---------|
|
|
137
|
+
| `STIGMER_RUNNER_MODE` | All | No | `static` | Selects the run mode. Set to `manager` for dynamic per-session/per-execution Workers; any other value (or unset) means static mode. |
|
|
138
|
+
| `MODE` | All | No | `local` | Execution location: `local` (host filesystem, local-path workspaces) or `cloud` (server-provisioned sandbox, git-only). Independent of `STIGMER_PROXY_ENDPOINT`. |
|
|
139
|
+
| `STIGMER_TASK_QUEUE` | Static mode | No | `stigmer_runner` | Temporal task queue the static Worker polls. (Legacy alias: `TEMPORAL_AGENT_EXECUTION_RUNNER_TASK_QUEUE`.) Unused in manager mode, where each Worker derives its own queue. |
|
|
140
|
+
| `TEMPORAL_SERVICE_ADDRESS` | All | No | _(discovered)_ | Address of the Temporal frontend. **Resolution order:** an explicit value always wins; otherwise, if `STIGMER_TOKEN` is set, the runner discovers it from the control plane at boot (`getRunnerBootstrapConfig`); otherwise it falls back to `localhost:7233`. Discovery failure aborts startup with an actionable error (no silent fallback). |
|
|
141
|
+
| `TEMPORAL_NAMESPACE` | All | No | `default` | Temporal namespace. |
|
|
142
|
+
| `STIGMER_BACKEND_ENDPOINT` | All | In cloud mode | `http://localhost:7234` (local) | Stigmer backend endpoint for status, blueprints, and local artifact serving. A bare `host:port` is normalized to `http://` (or `https://` for port `443`). |
|
|
143
|
+
| `STIGMER_TOKEN` | Cloud or proxy mode | Yes (cloud/proxy) | _(none)_ | Auth token for the Stigmer backend / proxy. Required when `MODE=cloud` or `STIGMER_PROXY_ENDPOINT` is set; optional in local/direct mode. |
|
|
144
|
+
| `CURSOR_API_KEY` | Direct mode | Yes (Cursor harness, direct) | _(empty)_ | Cursor API key for direct mode. In proxy mode it is not required — the proxy injects the real key; the runner falls back to `STIGMER_TOKEN` for the SDK transport credential. |
|
|
145
|
+
| `STIGMER_PROXY_ENDPOINT` | Proxy/cloud | No | _(none)_ | Stigmer proxy endpoint. When set, activates proxy transport: Cursor SDK traffic and artifact uploads are routed through the proxy. |
|
|
146
|
+
| `WORKSPACE_ROOT_DIR` | All | No | `~/.stigmer/workspaces/runner` (fallback) | Root directory for agent workspaces. If unset, the runner warns and creates an isolated fallback directory — it never falls back to the process working directory. |
|
|
147
|
+
| `TEMPORAL_MAX_CONCURRENCY` | All | No | `5` | Maximum concurrent Temporal activity executions (per session Worker in manager mode). |
|
|
148
|
+
| `STIGMER_CHECKPOINTER_TYPE` | All | No | `memory` (local), `http` (cloud) | LangGraph checkpointer backend for agent state: `memory` or `http`. |
|
|
149
|
+
| `STIGMER_CHECKPOINTER_PROXY_ENDPOINT` | `http` checkpointer | No | value of `STIGMER_PROXY_ENDPOINT` | Endpoint for the HTTP checkpointer; falls back to the proxy endpoint. |
|
|
150
|
+
| `STIGMER_PRIMARY_MODEL` | All | No | `gpt-4.1` | Default LLM model identifier. |
|
|
151
|
+
| `STIGMER_CURSOR_CLOUD_MODE_ENABLED` | All | No | `false` | When `true`, enables Cursor cloud (workspace-less) execution mode for the Cursor harness. |
|
|
152
|
+
| `STIGMER_IDLE_TIMEOUT_SECONDS` | All | No | _(none)_ | **Reserved.** Parsed from the environment but not currently honored by the runtime — no component reads it today. Documented for completeness; setting it has no effect. |
|
|
153
|
+
|
|
154
|
+
### Artifact storage
|
|
155
|
+
|
|
156
|
+
| Variable | Applies to | Required | Default | Purpose |
|
|
157
|
+
|----------|-----------|----------|---------|---------|
|
|
158
|
+
| `ARTIFACT_STORAGE_TYPE` | All | No | `proxy` if `STIGMER_PROXY_ENDPOINT` is set, else `local` | Selects the artifact backend: `local` (filesystem, served by the Stigmer backend) or `proxy` (presigned URLs via the proxy). An explicit value always wins. Storage follows transport, not execution location. |
|
|
159
|
+
| `LOCAL_ARTIFACT_PATH` | Local storage | No | `/var/stigmer/artifacts` | Filesystem path for the local artifact backend. |
|
|
160
|
+
| `LOCAL_ARTIFACT_SERVE_URL` | Local storage | No | `http://localhost:7235` | Base URL the local backend uses to construct artifact download URLs. |
|
|
161
|
+
|
|
162
|
+
### Claim-check (large Temporal payloads)
|
|
163
|
+
|
|
164
|
+
The claim-check codec offloads oversized Temporal payloads to artifact storage and passes a reference instead.
|
|
165
|
+
|
|
166
|
+
| Variable | Applies to | Required | Default | Purpose |
|
|
167
|
+
|----------|-----------|----------|---------|---------|
|
|
168
|
+
| `CLAIMCHECK_ENABLED` | All | No | `false` | Enables the claim-check payload codec. When disabled, payloads pass through unchanged. |
|
|
169
|
+
| `CLAIMCHECK_THRESHOLD_BYTES` | Claim-check | No | `131072` (128 KB) | Payload size at or above which the codec offloads to artifact storage. |
|
|
170
|
+
| `CLAIMCHECK_COMPRESSION_ENABLED` | Claim-check | No | `true` | Compresses offloaded payloads. Only the literal value `false` disables it. |
|
|
171
|
+
| `CLAIMCHECK_KEY_PREFIX` | Claim-check | No | `claimcheck/` | Key prefix for offloaded payloads in artifact storage. |
|
|
172
|
+
|
|
173
|
+
### Credentials and providers
|
|
174
|
+
|
|
175
|
+
| Variable | Applies to | Required | Default | Purpose |
|
|
176
|
+
|----------|-----------|----------|---------|---------|
|
|
177
|
+
| `OPENAI_API_KEY` | Direct mode (native/OpenAI) | When using OpenAI directly | _(empty)_ | OpenAI API key for the native harness in direct mode. Not needed in proxy mode. |
|
|
178
|
+
| `ANTHROPIC_API_KEY` | Direct mode (native/Anthropic) | When using Anthropic directly | _(empty)_ | Anthropic API key for the native harness in direct mode. Not needed in proxy mode. |
|
|
179
|
+
| `STIGMER_LLM_REQUEST_TIMEOUT_MS` | Native harness | No | `0` (no timeout) | Per-request timeout for native LLM calls, in milliseconds. `0` or unset means no explicit timeout. |
|
|
180
|
+
| `STIGMER_CLOUD_API_URL` | All | No | `https://api.stigmer.ai` | Base URL for the Stigmer cloud API used to fetch model pricing and the model registry. |
|
|
181
|
+
| `STIGMER_AUTH_TOKEN` | Pricing/registry fetch | No | value of `STIGMER_TOKEN` | Fallback bearer token for model-pricing and model-registry requests when `STIGMER_TOKEN` is not set. |
|
|
182
|
+
| `GITHUB_TOKEN` | Deep-agent git writeback | When writing back to GitHub | _(none)_ | Token used by the deep-agent harness for git writeback operations. |
|
|
183
|
+
|
|
184
|
+
### Observability
|
|
185
|
+
|
|
186
|
+
| Variable | Applies to | Required | Default | Purpose |
|
|
187
|
+
|----------|-----------|----------|---------|---------|
|
|
188
|
+
| `OTEL_EXPORTER_OTLP_ENDPOINT` | All | No | _(none)_ | OTLP/gRPC endpoint for traces and metrics. When unset, OpenTelemetry is disabled with zero overhead. See [the embedder note](#a-note-for-embedders-opentelemetry) on who initializes OTel. |
|
|
189
|
+
|
|
190
|
+
### Advanced and debug
|
|
191
|
+
|
|
192
|
+
These tune internal behavior or support testing. Most operators never set them.
|
|
193
|
+
|
|
194
|
+
| Variable | Default | Purpose |
|
|
195
|
+
|----------|---------|---------|
|
|
196
|
+
| `STREAMING_MIN_INTERVAL_MS` | `500` | Minimum time between streaming status updates (rate limit). |
|
|
197
|
+
| `STREAMING_MAX_INTERVAL_MS` | `5000` | Maximum time before a forced keepalive status update. Clamped up to the min if set lower. |
|
|
198
|
+
| `STREAMING_BURST_THRESHOLD` | `50` | Event count that triggers an immediate status update (burst protection). |
|
|
199
|
+
| `LANGGRAPH_STREAM_EVENTS_VERSION` | `v3` | Selects the LangGraph streaming events version; `v2` opts into the older path. |
|
|
200
|
+
| `SKIP_MCP_CONNECT_BACKFILL` | `false` | When `true`, skips MCP Connect backfill. |
|
|
201
|
+
| `STIGMER_MCP_PUBLIC_ENDPOINT` | _(none)_ | Public endpoint injected as `STIGMER_SERVER_ADDRESS` into MCP server environments that request it. |
|
|
202
|
+
| `CURSOR_EVENT_RECORD_DIR` | _(none)_ | Directory to record Cursor harness events (debugging/fixtures). |
|
|
203
|
+
| `V2_EVENT_RECORD_DIR` | _(none)_ | Directory to record deep-agent v2 streaming events. |
|
|
204
|
+
| `V3_EVENT_RECORD_DIR` | _(none)_ | Directory to record deep-agent v3 streaming events. |
|
|
205
|
+
| `RECORD_FIXTURES` | `0` | When `1`, records HTTP fixtures for replay-based tests. |
|
|
206
|
+
|
|
207
|
+
## Related documentation
|
|
208
|
+
|
|
209
|
+
- **[Manager-mode IPC protocol](https://stigmer.ai/docs/guides/runners/ipc-protocol)** — the line-delimited JSON command/response contract and its versioned handshake (current protocol version `1`). A short pointer also lives at [`docs/ipc-protocol.md`](docs/ipc-protocol.md); the code definition is [`src/ipc-protocol.ts`](src/ipc-protocol.ts).
|
|
210
|
+
- **[Embedding integration guide](https://stigmer.ai/docs/guides/runners/embedding)** — building a desktop client (local execution) and a web client (cloud execution), including the per-audience configuration each one passes.
|
|
211
|
+
- **SDK `RunnerAdapter` and `executionTarget`** — the local-execution surfaces in `@stigmer/react` and `@stigmer/sdk`. The [embedding guide](https://stigmer.ai/docs/guides/runners/embedding) covers them today; a dedicated SDK reference is forthcoming.
|
|
212
|
+
- **Public API** — `src/index.ts` exports `createStigmerRunner` and `createStigmerRunnerManager` with typed options and inline examples.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"hash":"ea58decbef7c13aa","builtAt":"2026-06-08T12:08:08.596Z","fileCount":192}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local activities for surfacing child agent HITL approval state
|
|
3
|
+
* on the parent WorkflowExecution.
|
|
4
|
+
*
|
|
5
|
+
* These run as Temporal local activities (proxyLocalActivities) with
|
|
6
|
+
* short timeouts. Failures are best-effort — they update the platform
|
|
7
|
+
* UI but do not block the workflow.
|
|
8
|
+
*
|
|
9
|
+
* - UpdateWorkflowTaskApprovalStatus: sets pending_approvals on the
|
|
10
|
+
* WorkflowExecution when a child agent enters a tool-approval gate.
|
|
11
|
+
* - ClearWorkflowApprovalStatus: clears pending_approvals when the
|
|
12
|
+
* child agent activity completes (approvals resolved).
|
|
13
|
+
*/
|
|
14
|
+
import type { ChildApprovalNotification } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/approval_pb";
|
|
15
|
+
export declare function updateWorkflowTaskApprovalStatus(executionId: string, _taskName: string, notification: ChildApprovalNotification): Promise<void>;
|
|
16
|
+
export declare function clearWorkflowApprovalStatus(executionId: string): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Queries the child AgentExecution for progress data that can be
|
|
19
|
+
* emitted as an `agent_call_progress` event on the parent workflow.
|
|
20
|
+
*
|
|
21
|
+
* Returns a lightweight summary derived from the agent's status:
|
|
22
|
+
* message count, last active tool, token consumption. Returns null
|
|
23
|
+
* if the execution cannot be fetched (best-effort).
|
|
24
|
+
*/
|
|
25
|
+
export interface AgentProgressSummary {
|
|
26
|
+
messagesCount: number;
|
|
27
|
+
toolCallsCount: number;
|
|
28
|
+
currentToolName: string;
|
|
29
|
+
tokensConsumed: number;
|
|
30
|
+
agentPhase: number;
|
|
31
|
+
}
|
|
32
|
+
export declare function getAgentExecutionProgress(childExecutionId: string): Promise<AgentProgressSummary | null>;
|
|
33
|
+
export declare function createCallAgentStatusActivities(): {
|
|
34
|
+
UpdateWorkflowTaskApprovalStatus: typeof updateWorkflowTaskApprovalStatus;
|
|
35
|
+
ClearWorkflowApprovalStatus: typeof clearWorkflowApprovalStatus;
|
|
36
|
+
GetAgentExecutionProgress: typeof getAgentExecutionProgress;
|
|
37
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local activities for surfacing child agent HITL approval state
|
|
3
|
+
* on the parent WorkflowExecution.
|
|
4
|
+
*
|
|
5
|
+
* These run as Temporal local activities (proxyLocalActivities) with
|
|
6
|
+
* short timeouts. Failures are best-effort — they update the platform
|
|
7
|
+
* UI but do not block the workflow.
|
|
8
|
+
*
|
|
9
|
+
* - UpdateWorkflowTaskApprovalStatus: sets pending_approvals on the
|
|
10
|
+
* WorkflowExecution when a child agent enters a tool-approval gate.
|
|
11
|
+
* - ClearWorkflowApprovalStatus: clears pending_approvals when the
|
|
12
|
+
* child agent activity completes (approvals resolved).
|
|
13
|
+
*/
|
|
14
|
+
import { StigmerClient } from "../client/stigmer-client.js";
|
|
15
|
+
import { loadConfig } from "../config.js";
|
|
16
|
+
import { create } from "@bufbuild/protobuf";
|
|
17
|
+
import { WorkflowExecutionStatusSchema, WorkflowPendingApprovalSchema } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/api_pb";
|
|
18
|
+
import { ToolCallStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
19
|
+
function buildClient() {
|
|
20
|
+
const config = loadConfig();
|
|
21
|
+
return new StigmerClient({
|
|
22
|
+
endpoint: config.stigmerBackendEndpoint,
|
|
23
|
+
token: config.stigmerToken,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export async function updateWorkflowTaskApprovalStatus(executionId, _taskName, notification) {
|
|
27
|
+
if (!executionId)
|
|
28
|
+
return;
|
|
29
|
+
const client = buildClient();
|
|
30
|
+
const pendingApprovals = (notification.pendingApprovals ?? []).map((approval) => create(WorkflowPendingApprovalSchema, {
|
|
31
|
+
approval,
|
|
32
|
+
childAgentExecutionId: notification.executionId,
|
|
33
|
+
}));
|
|
34
|
+
const status = create(WorkflowExecutionStatusSchema, {
|
|
35
|
+
pendingApprovals,
|
|
36
|
+
});
|
|
37
|
+
await client.updateWorkflowExecutionStatus(executionId, status, {
|
|
38
|
+
updatePendingApprovals: true,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export async function clearWorkflowApprovalStatus(executionId) {
|
|
42
|
+
if (!executionId)
|
|
43
|
+
return;
|
|
44
|
+
const client = buildClient();
|
|
45
|
+
const status = create(WorkflowExecutionStatusSchema, {
|
|
46
|
+
pendingApprovals: [],
|
|
47
|
+
});
|
|
48
|
+
await client.updateWorkflowExecutionStatus(executionId, status, {
|
|
49
|
+
updatePendingApprovals: true,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
export async function getAgentExecutionProgress(childExecutionId) {
|
|
53
|
+
if (!childExecutionId)
|
|
54
|
+
return null;
|
|
55
|
+
try {
|
|
56
|
+
const client = buildClient();
|
|
57
|
+
const execution = await client.getExecution(childExecutionId);
|
|
58
|
+
const status = execution?.status;
|
|
59
|
+
if (!status)
|
|
60
|
+
return null;
|
|
61
|
+
const messages = status.messages ?? [];
|
|
62
|
+
const messagesCount = messages.length;
|
|
63
|
+
let toolCallsCount = 0;
|
|
64
|
+
let currentToolName = "";
|
|
65
|
+
for (const msg of messages) {
|
|
66
|
+
const tools = msg.toolCalls ?? [];
|
|
67
|
+
toolCallsCount += tools.length;
|
|
68
|
+
for (const tc of tools) {
|
|
69
|
+
if (tc.name && tc.status === ToolCallStatus.TOOL_CALL_RUNNING) {
|
|
70
|
+
currentToolName = tc.name;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const usage = status.streamingUsage;
|
|
75
|
+
const tokensConsumed = Number(usage?.totalTokens ?? 0);
|
|
76
|
+
const phase = status.phase ?? 0;
|
|
77
|
+
return { messagesCount, toolCallsCount, currentToolName, tokensConsumed, agentPhase: phase };
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
console.warn("Failed to fetch agent execution progress (non-fatal):", String(err));
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export function createCallAgentStatusActivities() {
|
|
85
|
+
return {
|
|
86
|
+
UpdateWorkflowTaskApprovalStatus: updateWorkflowTaskApprovalStatus,
|
|
87
|
+
ClearWorkflowApprovalStatus: clearWorkflowApprovalStatus,
|
|
88
|
+
GetAgentExecutionProgress: getAgentExecutionProgress,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=call-agent-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-agent-status.js","sourceRoot":"","sources":["../../src/activities/call-agent-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CallAgent Temporal activity — creates a Stigmer AgentExecution via
|
|
3
|
+
* the platform gRPC API and uses Temporal async completion.
|
|
4
|
+
*
|
|
5
|
+
* Flow:
|
|
6
|
+
* 1. Extract Temporal task token (for async completion callback)
|
|
7
|
+
* 2. Resolve runtime placeholders (${.secrets.*}, ${.env_vars.*})
|
|
8
|
+
* 3. Resolve agent by slug → get agent ID and default instance
|
|
9
|
+
* 4. Apply Session (idempotent get-or-create by slug)
|
|
10
|
+
* 5. Create AgentExecution (callback token, parent workflow ID)
|
|
11
|
+
* 6. Throw CompleteAsyncError — worker thread released
|
|
12
|
+
*
|
|
13
|
+
* The platform completes this activity asynchronously via the token
|
|
14
|
+
* when the agent execution workflow finishes.
|
|
15
|
+
*
|
|
16
|
+
* Activity contract:
|
|
17
|
+
* Name: "CallAgent"
|
|
18
|
+
* Input: (config, runtimeEnv, parentWorkflowId)
|
|
19
|
+
* Output: (completed asynchronously by platform)
|
|
20
|
+
*/
|
|
21
|
+
import type { AgentCallConfig } from "../workflow-engine/types.js";
|
|
22
|
+
export declare function callAgentAction(config: AgentCallConfig, runtimeEnv: Record<string, unknown>, parentWorkflowId: string): Promise<void>;
|
|
23
|
+
export declare function createCallAgentActivities(): {
|
|
24
|
+
CallAgent: (config: AgentCallConfig, runtimeEnv: Record<string, unknown>, parentWorkflowId: string) => Promise<void>;
|
|
25
|
+
};
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CallAgent Temporal activity — creates a Stigmer AgentExecution via
|
|
3
|
+
* the platform gRPC API and uses Temporal async completion.
|
|
4
|
+
*
|
|
5
|
+
* Flow:
|
|
6
|
+
* 1. Extract Temporal task token (for async completion callback)
|
|
7
|
+
* 2. Resolve runtime placeholders (${.secrets.*}, ${.env_vars.*})
|
|
8
|
+
* 3. Resolve agent by slug → get agent ID and default instance
|
|
9
|
+
* 4. Apply Session (idempotent get-or-create by slug)
|
|
10
|
+
* 5. Create AgentExecution (callback token, parent workflow ID)
|
|
11
|
+
* 6. Throw CompleteAsyncError — worker thread released
|
|
12
|
+
*
|
|
13
|
+
* The platform completes this activity asynchronously via the token
|
|
14
|
+
* when the agent execution workflow finishes.
|
|
15
|
+
*
|
|
16
|
+
* Activity contract:
|
|
17
|
+
* Name: "CallAgent"
|
|
18
|
+
* Input: (config, runtimeEnv, parentWorkflowId)
|
|
19
|
+
* Output: (completed asynchronously by platform)
|
|
20
|
+
*/
|
|
21
|
+
import { randomUUID } from "node:crypto";
|
|
22
|
+
import { Context, CompleteAsyncError } from "@temporalio/activity";
|
|
23
|
+
import { StigmerClient } from "../client/stigmer-client.js";
|
|
24
|
+
import { loadConfig } from "../config.js";
|
|
25
|
+
import { resolveObjectPlaceholders } from "../workflow-engine/resolve.js";
|
|
26
|
+
import { startHeartbeat } from "../shared/heartbeat.js";
|
|
27
|
+
import { create } from "@bufbuild/protobuf";
|
|
28
|
+
import { AgentExecutionSpecSchema, ExecutionConfigSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/spec_pb";
|
|
29
|
+
import { SessionSchema } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
|
|
30
|
+
import { SessionSpecSchema } from "@stigmer/protos/ai/stigmer/agentic/session/v1/spec_pb";
|
|
31
|
+
import { Harness, ExecutionTarget } from "@stigmer/protos/ai/stigmer/agentic/session/v1/enum_pb";
|
|
32
|
+
import { AgentExecutionSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
33
|
+
import { ExecutionValueSchema } from "@stigmer/protos/ai/stigmer/agentic/executioncontext/v1/spec_pb";
|
|
34
|
+
import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
|
|
35
|
+
import { ApiResourceReferenceSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
|
|
36
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
37
|
+
export async function callAgentAction(config, runtimeEnv, parentWorkflowId) {
|
|
38
|
+
const taskToken = Context.current().info.taskToken;
|
|
39
|
+
const resolved = resolveObjectPlaceholders(config, runtimeEnv);
|
|
40
|
+
if (!resolved.agent) {
|
|
41
|
+
throw new Error("call:agent: 'agent' resolved to empty after placeholder substitution. " +
|
|
42
|
+
"If using ${.secrets.X} or ${.env_vars.X}, ensure the referenced key " +
|
|
43
|
+
"exists in the workflow's env block and is provisioned in the environment.");
|
|
44
|
+
}
|
|
45
|
+
if (!resolved.message) {
|
|
46
|
+
throw new Error("call:agent: 'message' resolved to empty after placeholder substitution. " +
|
|
47
|
+
"The agent requires a non-empty prompt message.");
|
|
48
|
+
}
|
|
49
|
+
const orgId = resolved.org
|
|
50
|
+
?? runtimeEnv["__stigmer_org_id"]
|
|
51
|
+
?? "";
|
|
52
|
+
if (!orgId) {
|
|
53
|
+
throw new Error("call:agent requires an organization context. " +
|
|
54
|
+
"Set 'org' in the task config or ensure '__stigmer_org_id' is in the workflow environment.");
|
|
55
|
+
}
|
|
56
|
+
const appConfig = loadConfig();
|
|
57
|
+
const client = new StigmerClient({
|
|
58
|
+
endpoint: appConfig.stigmerBackendEndpoint,
|
|
59
|
+
token: appConfig.stigmerToken,
|
|
60
|
+
});
|
|
61
|
+
const agentRef = parseAgentReference(resolved.agent, orgId);
|
|
62
|
+
const agent = await client.getAgentByReference(create(ApiResourceReferenceSchema, agentRef));
|
|
63
|
+
const agentId = agent.metadata?.id ?? "";
|
|
64
|
+
const defaultInstanceId = agent.status?.defaultInstanceId ?? "";
|
|
65
|
+
const agentEnvKeys = Object.keys(agent.spec?.env ?? {});
|
|
66
|
+
const workflowEnvKeys = Object.keys(runtimeEnv).filter(k => !k.startsWith("__stigmer_"));
|
|
67
|
+
console.log(`[CallAgent] agent=${resolved.agent} agentId=${agentId} ` +
|
|
68
|
+
`agentEnvDecls=[${agentEnvKeys.join(",")}] ` +
|
|
69
|
+
`workflowEnvKeys=[${workflowEnvKeys.join(",")}]`);
|
|
70
|
+
if (!agentId) {
|
|
71
|
+
throw new Error(`Agent '${resolved.agent}' resolved but has no metadata.id`);
|
|
72
|
+
}
|
|
73
|
+
const wfExecId = resolved.__wfExecId
|
|
74
|
+
?? runtimeEnv["__stigmer_execution_id"];
|
|
75
|
+
const taskName = resolved.__taskName;
|
|
76
|
+
let sessionName;
|
|
77
|
+
let executionName;
|
|
78
|
+
if (wfExecId && taskName) {
|
|
79
|
+
const taskKey = `${wfExecId}-${taskName}`;
|
|
80
|
+
sessionName = `ses-wf-${taskKey}`;
|
|
81
|
+
executionName = `aex-wf-${taskKey}-${shortUniqueId()}`;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.warn(`[CallAgent] Missing workflow context for session naming: ` +
|
|
85
|
+
`wfExecId=${wfExecId ?? "(missing)"}, taskName=${taskName ?? "(missing)"}. ` +
|
|
86
|
+
`Using timestamp-based names — session will NOT be reused on retry.`);
|
|
87
|
+
sessionName = `wf-${extractSlug(resolved.agent)}-${Math.floor(Date.now() / 1000)}`;
|
|
88
|
+
executionName = `aex-wf-${extractSlug(resolved.agent)}-${Date.now()}`;
|
|
89
|
+
}
|
|
90
|
+
console.log(`[CallAgent] session=${sessionName}, execution=${executionName}, ` +
|
|
91
|
+
`wfExecId=${wfExecId ?? "(none)"}, task=${taskName ?? "(none)"}`);
|
|
92
|
+
const harness = resolveHarness(resolved.harness);
|
|
93
|
+
const executionTarget = resolveExecutionTarget(runtimeEnv["__stigmer_execution_target"]);
|
|
94
|
+
const session = await client.applySession(create(SessionSchema, {
|
|
95
|
+
apiVersion: "agentic.stigmer.ai/v1",
|
|
96
|
+
kind: "Session",
|
|
97
|
+
metadata: create(ApiResourceMetadataSchema, {
|
|
98
|
+
name: sessionName,
|
|
99
|
+
org: orgId,
|
|
100
|
+
}),
|
|
101
|
+
spec: create(SessionSpecSchema, {
|
|
102
|
+
agentInstanceId: defaultInstanceId,
|
|
103
|
+
harness,
|
|
104
|
+
executionTarget,
|
|
105
|
+
subject: "Auto-created session",
|
|
106
|
+
}),
|
|
107
|
+
}));
|
|
108
|
+
const sessionId = session?.metadata?.id ?? "";
|
|
109
|
+
const executionRuntimeEnv = {};
|
|
110
|
+
// Automatic intersection forwarding: forward workflow env vars that match the
|
|
111
|
+
// child agent's declared spec.env keys. This avoids requiring workflow authors
|
|
112
|
+
// to manually re-declare every env var on every agent_call task.
|
|
113
|
+
const agentEnvDecls = agent.spec?.env ?? {};
|
|
114
|
+
for (const [key, decl] of Object.entries(agentEnvDecls)) {
|
|
115
|
+
if (key in runtimeEnv && runtimeEnv[key] != null) {
|
|
116
|
+
executionRuntimeEnv[key] = {
|
|
117
|
+
value: String(runtimeEnv[key]),
|
|
118
|
+
isSecret: decl.isSecret ?? false,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const intersectionKeys = Object.keys(executionRuntimeEnv);
|
|
123
|
+
const skippedKeys = agentEnvKeys.filter(k => !(k in executionRuntimeEnv));
|
|
124
|
+
if (skippedKeys.length > 0) {
|
|
125
|
+
console.warn(`[CallAgent] agent declares env keys not present in workflow env: [${skippedKeys.join(",")}]`);
|
|
126
|
+
}
|
|
127
|
+
// Task-config-level env takes precedence over auto-forwarded values
|
|
128
|
+
if (resolved.env) {
|
|
129
|
+
for (const [key, value] of Object.entries(resolved.env)) {
|
|
130
|
+
executionRuntimeEnv[key] = { value: String(value), isSecret: false };
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const finalKeys = Object.keys(executionRuntimeEnv);
|
|
134
|
+
const overrideKeys = finalKeys.filter(k => !intersectionKeys.includes(k));
|
|
135
|
+
console.log(`[CallAgent] env forwarding: intersection=${intersectionKeys.length} ` +
|
|
136
|
+
`taskOverrides=${overrideKeys.length} total=${finalKeys.length} ` +
|
|
137
|
+
`keys=[${finalKeys.join(",")}]`);
|
|
138
|
+
const runtimeEnvProto = {};
|
|
139
|
+
for (const [key, val] of Object.entries(executionRuntimeEnv)) {
|
|
140
|
+
runtimeEnvProto[key] = create(ExecutionValueSchema, {
|
|
141
|
+
value: val.value,
|
|
142
|
+
isSecret: val.isSecret,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
const parentQueue = runtimeEnv["__stigmer_activity_task_queue"];
|
|
146
|
+
const activityTaskQueue = parentQueue?.startsWith("wfexec:") ? parentQueue : "";
|
|
147
|
+
const hasModel = !!resolved.config?.model;
|
|
148
|
+
const hasOutputSchema = !!resolved.output?.schema;
|
|
149
|
+
console.log(`[CallAgent] schema propagation diagnostic: ` +
|
|
150
|
+
`hasOutputSchema=${hasOutputSchema}, ` +
|
|
151
|
+
`hasModel=${hasModel}, ` +
|
|
152
|
+
`configKeys=[${Object.keys(resolved).join(",")}], ` +
|
|
153
|
+
`hasOutput=${resolved.output !== undefined}, ` +
|
|
154
|
+
`outputKeys=${resolved.output ? JSON.stringify(Object.keys(resolved.output)) : "N/A"}, ` +
|
|
155
|
+
`__taskName=${resolved.__taskName ?? "MISSING"}, ` +
|
|
156
|
+
`wfExecId=${wfExecId ?? "MISSING"}`);
|
|
157
|
+
const executionSpec = create(AgentExecutionSpecSchema, {
|
|
158
|
+
sessionId,
|
|
159
|
+
agentId,
|
|
160
|
+
message: resolved.message,
|
|
161
|
+
callbackToken: taskToken,
|
|
162
|
+
parentWorkflowId,
|
|
163
|
+
activityTaskQueue,
|
|
164
|
+
runtimeEnv: runtimeEnvProto,
|
|
165
|
+
});
|
|
166
|
+
if (hasModel || hasOutputSchema) {
|
|
167
|
+
const execConfig = create(ExecutionConfigSchema, {});
|
|
168
|
+
if (hasModel)
|
|
169
|
+
execConfig.modelName = resolved.config.model;
|
|
170
|
+
if (hasOutputSchema) {
|
|
171
|
+
execConfig.structuredOutputSchema = resolved.output.schema;
|
|
172
|
+
}
|
|
173
|
+
executionSpec.executionConfig = execConfig;
|
|
174
|
+
}
|
|
175
|
+
await client.createAgentExecution(create(AgentExecutionSchema, {
|
|
176
|
+
apiVersion: "agentic.stigmer.ai/v1",
|
|
177
|
+
kind: "AgentExecution",
|
|
178
|
+
metadata: create(ApiResourceMetadataSchema, {
|
|
179
|
+
name: executionName,
|
|
180
|
+
org: orgId,
|
|
181
|
+
}),
|
|
182
|
+
spec: executionSpec,
|
|
183
|
+
}));
|
|
184
|
+
throw new CompleteAsyncError();
|
|
185
|
+
}
|
|
186
|
+
function parseAgentReference(agentStr, defaultOrg) {
|
|
187
|
+
if (agentStr.includes("/")) {
|
|
188
|
+
const [org, slug] = agentStr.split("/", 2);
|
|
189
|
+
return { org, slug, kind: ApiResourceKind.agent };
|
|
190
|
+
}
|
|
191
|
+
return { org: defaultOrg, slug: agentStr, kind: ApiResourceKind.agent };
|
|
192
|
+
}
|
|
193
|
+
function extractSlug(agentStr) {
|
|
194
|
+
return agentStr.includes("/") ? agentStr.split("/", 2)[1] : agentStr;
|
|
195
|
+
}
|
|
196
|
+
function shortUniqueId() {
|
|
197
|
+
return randomUUID().replace(/-/g, "").slice(0, 8);
|
|
198
|
+
}
|
|
199
|
+
function resolveHarness(harnessStr) {
|
|
200
|
+
if (!harnessStr)
|
|
201
|
+
return Harness.NATIVE;
|
|
202
|
+
switch (harnessStr.toUpperCase()) {
|
|
203
|
+
case "HARNESS_NATIVE":
|
|
204
|
+
case "NATIVE":
|
|
205
|
+
return Harness.NATIVE;
|
|
206
|
+
case "HARNESS_CURSOR":
|
|
207
|
+
case "CURSOR":
|
|
208
|
+
return Harness.CURSOR;
|
|
209
|
+
default:
|
|
210
|
+
return Harness.NATIVE;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function resolveExecutionTarget(target) {
|
|
214
|
+
if (target === 1)
|
|
215
|
+
return ExecutionTarget.LOCAL;
|
|
216
|
+
if (target === 2)
|
|
217
|
+
return ExecutionTarget.CLOUD;
|
|
218
|
+
return ExecutionTarget.UNSPECIFIED;
|
|
219
|
+
}
|
|
220
|
+
export function createCallAgentActivities() {
|
|
221
|
+
return {
|
|
222
|
+
CallAgent: async (config, runtimeEnv, parentWorkflowId) => {
|
|
223
|
+
const hb = startHeartbeat(15_000, () => ({ phase: "creating_agent_execution" }));
|
|
224
|
+
try {
|
|
225
|
+
return await callAgentAction(config, runtimeEnv, parentWorkflowId);
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
hb.stop();
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=call-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-agent.js","sourceRoot":"","sources":["../../src/activities/call-agent.ts"],"names":[],"mappings":"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"}
|