@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.
Files changed (904) hide show
  1. package/README.md +212 -0
  2. package/dist/.build-fingerprint +1 -0
  3. package/dist/activities/call-agent-status.d.ts +37 -0
  4. package/dist/activities/call-agent-status.js +91 -0
  5. package/dist/activities/call-agent-status.js.map +1 -0
  6. package/dist/activities/call-agent.d.ts +25 -0
  7. package/dist/activities/call-agent.js +233 -0
  8. package/dist/activities/call-agent.js.map +1 -0
  9. package/dist/activities/call-eval.d.ts +50 -0
  10. package/dist/activities/call-eval.js +244 -0
  11. package/dist/activities/call-eval.js.map +1 -0
  12. package/dist/activities/call-function.d.ts +21 -0
  13. package/dist/activities/call-function.js +54 -0
  14. package/dist/activities/call-function.js.map +1 -0
  15. package/dist/activities/call-grpc.d.ts +22 -0
  16. package/dist/activities/call-grpc.js +101 -0
  17. package/dist/activities/call-grpc.js.map +1 -0
  18. package/dist/activities/call-http.d.ts +32 -0
  19. package/dist/activities/call-http.js +134 -0
  20. package/dist/activities/call-http.js.map +1 -0
  21. package/dist/activities/call-llm.d.ts +39 -0
  22. package/dist/activities/call-llm.js +260 -0
  23. package/dist/activities/call-llm.js.map +1 -0
  24. package/dist/activities/call-transform.d.ts +20 -0
  25. package/dist/activities/call-transform.js +33 -0
  26. package/dist/activities/call-transform.js.map +1 -0
  27. package/dist/activities/call-validate.d.ts +41 -0
  28. package/dist/activities/call-validate.js +163 -0
  29. package/dist/activities/call-validate.js.map +1 -0
  30. package/dist/activities/classify-tool-approvals.d.ts +47 -0
  31. package/dist/activities/classify-tool-approvals.js +207 -0
  32. package/dist/activities/classify-tool-approvals.js.map +1 -0
  33. package/dist/activities/discover-mcp-server.d.ts +65 -0
  34. package/dist/activities/discover-mcp-server.js +269 -0
  35. package/dist/activities/discover-mcp-server.js.map +1 -0
  36. package/dist/activities/emit-event.d.ts +46 -0
  37. package/dist/activities/emit-event.js +125 -0
  38. package/dist/activities/emit-event.js.map +1 -0
  39. package/dist/activities/ensure-thread.d.ts +24 -0
  40. package/dist/activities/ensure-thread.js +44 -0
  41. package/dist/activities/ensure-thread.js.map +1 -0
  42. package/dist/activities/evaluate-expressions.d.ts +21 -0
  43. package/dist/activities/evaluate-expressions.js +39 -0
  44. package/dist/activities/evaluate-expressions.js.map +1 -0
  45. package/dist/activities/execute-cursor/approval-policy.d.ts +104 -0
  46. package/dist/activities/execute-cursor/approval-policy.js +193 -0
  47. package/dist/activities/execute-cursor/approval-policy.js.map +1 -0
  48. package/dist/activities/execute-cursor/approval-state.d.ts +157 -0
  49. package/dist/activities/execute-cursor/approval-state.js +223 -0
  50. package/dist/activities/execute-cursor/approval-state.js.map +1 -0
  51. package/dist/activities/execute-cursor/attachment-resolver.d.ts +19 -0
  52. package/dist/activities/execute-cursor/attachment-resolver.js +52 -0
  53. package/dist/activities/execute-cursor/attachment-resolver.js.map +1 -0
  54. package/dist/activities/execute-cursor/blueprint-resolver.d.ts +66 -0
  55. package/dist/activities/execute-cursor/blueprint-resolver.js +169 -0
  56. package/dist/activities/execute-cursor/blueprint-resolver.js.map +1 -0
  57. package/dist/activities/execute-cursor/connect-backfill.d.ts +18 -0
  58. package/dist/activities/execute-cursor/connect-backfill.js +27 -0
  59. package/dist/activities/execute-cursor/connect-backfill.js.map +1 -0
  60. package/dist/activities/execute-cursor/cursor-event-recorder.d.ts +24 -0
  61. package/dist/activities/execute-cursor/cursor-event-recorder.js +66 -0
  62. package/dist/activities/execute-cursor/cursor-event-recorder.js.map +1 -0
  63. package/dist/activities/execute-cursor/cursor-mode.d.ts +32 -0
  64. package/dist/activities/execute-cursor/cursor-mode.js +36 -0
  65. package/dist/activities/execute-cursor/cursor-mode.js.map +1 -0
  66. package/dist/activities/execute-cursor/delta-enricher.d.ts +87 -0
  67. package/dist/activities/execute-cursor/delta-enricher.js +265 -0
  68. package/dist/activities/execute-cursor/delta-enricher.js.map +1 -0
  69. package/dist/activities/execute-cursor/env-resolver.d.ts +19 -0
  70. package/dist/activities/execute-cursor/env-resolver.js +47 -0
  71. package/dist/activities/execute-cursor/env-resolver.js.map +1 -0
  72. package/dist/activities/execute-cursor/error-classifier.d.ts +73 -0
  73. package/dist/activities/execute-cursor/error-classifier.js +185 -0
  74. package/dist/activities/execute-cursor/error-classifier.js.map +1 -0
  75. package/dist/activities/execute-cursor/fetch-interceptor.d.ts +59 -0
  76. package/dist/activities/execute-cursor/fetch-interceptor.js +317 -0
  77. package/dist/activities/execute-cursor/fetch-interceptor.js.map +1 -0
  78. package/dist/activities/execute-cursor/hitl-diagnostics.d.ts +32 -0
  79. package/dist/activities/execute-cursor/hitl-diagnostics.js +73 -0
  80. package/dist/activities/execute-cursor/hitl-diagnostics.js.map +1 -0
  81. package/dist/activities/execute-cursor/hook-script.d.ts +47 -0
  82. package/dist/activities/execute-cursor/hook-script.js +156 -0
  83. package/dist/activities/execute-cursor/hook-script.js.map +1 -0
  84. package/dist/activities/execute-cursor/http2-interceptor.d.ts +94 -0
  85. package/dist/activities/execute-cursor/http2-interceptor.js +209 -0
  86. package/dist/activities/execute-cursor/http2-interceptor.js.map +1 -0
  87. package/dist/activities/execute-cursor/index.d.ts +67 -0
  88. package/dist/activities/execute-cursor/index.js +1176 -0
  89. package/dist/activities/execute-cursor/index.js.map +1 -0
  90. package/dist/activities/execute-cursor/mcp-config.d.ts +30 -0
  91. package/dist/activities/execute-cursor/mcp-config.js +39 -0
  92. package/dist/activities/execute-cursor/mcp-config.js.map +1 -0
  93. package/dist/activities/execute-cursor/mcp-resolver.d.ts +91 -0
  94. package/dist/activities/execute-cursor/mcp-resolver.js +178 -0
  95. package/dist/activities/execute-cursor/mcp-resolver.js.map +1 -0
  96. package/dist/activities/execute-cursor/message-translator.d.ts +211 -0
  97. package/dist/activities/execute-cursor/message-translator.js +786 -0
  98. package/dist/activities/execute-cursor/message-translator.js.map +1 -0
  99. package/dist/activities/execute-cursor/model-pricing-data.d.ts +40 -0
  100. package/dist/activities/execute-cursor/model-pricing-data.js +114 -0
  101. package/dist/activities/execute-cursor/model-pricing-data.js.map +1 -0
  102. package/dist/activities/execute-cursor/model-pricing.d.ts +42 -0
  103. package/dist/activities/execute-cursor/model-pricing.js +141 -0
  104. package/dist/activities/execute-cursor/model-pricing.js.map +1 -0
  105. package/dist/activities/execute-cursor/placeholder-resolver.d.ts +34 -0
  106. package/dist/activities/execute-cursor/placeholder-resolver.js +82 -0
  107. package/dist/activities/execute-cursor/placeholder-resolver.js.map +1 -0
  108. package/dist/activities/execute-cursor/prompt-builder.d.ts +80 -0
  109. package/dist/activities/execute-cursor/prompt-builder.js +280 -0
  110. package/dist/activities/execute-cursor/prompt-builder.js.map +1 -0
  111. package/dist/activities/execute-cursor/rejection-capture.d.ts +30 -0
  112. package/dist/activities/execute-cursor/rejection-capture.js +80 -0
  113. package/dist/activities/execute-cursor/rejection-capture.js.map +1 -0
  114. package/dist/activities/execute-cursor/session-lifecycle.d.ts +189 -0
  115. package/dist/activities/execute-cursor/session-lifecycle.js +285 -0
  116. package/dist/activities/execute-cursor/session-lifecycle.js.map +1 -0
  117. package/dist/activities/execute-cursor/skill-resolver.d.ts +29 -0
  118. package/dist/activities/execute-cursor/skill-resolver.js +134 -0
  119. package/dist/activities/execute-cursor/skill-resolver.js.map +1 -0
  120. package/dist/activities/execute-cursor/subagent-config.d.ts +34 -0
  121. package/dist/activities/execute-cursor/subagent-config.js +55 -0
  122. package/dist/activities/execute-cursor/subagent-config.js.map +1 -0
  123. package/dist/activities/execute-cursor/todo-tracker.d.ts +35 -0
  124. package/dist/activities/execute-cursor/todo-tracker.js +108 -0
  125. package/dist/activities/execute-cursor/todo-tracker.js.map +1 -0
  126. package/dist/activities/execute-cursor/usage-accumulator.d.ts +55 -0
  127. package/dist/activities/execute-cursor/usage-accumulator.js +89 -0
  128. package/dist/activities/execute-cursor/usage-accumulator.js.map +1 -0
  129. package/dist/activities/execute-cursor/workspace-provision.d.ts +22 -0
  130. package/dist/activities/execute-cursor/workspace-provision.js +37 -0
  131. package/dist/activities/execute-cursor/workspace-provision.js.map +1 -0
  132. package/dist/activities/execute-cursor/workspace-setup.d.ts +27 -0
  133. package/dist/activities/execute-cursor/workspace-setup.js +61 -0
  134. package/dist/activities/execute-cursor/workspace-setup.js.map +1 -0
  135. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.d.ts +71 -0
  136. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js +182 -0
  137. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js.map +1 -0
  138. package/dist/activities/execute-deep-agent/attachment-injector.d.ts +67 -0
  139. package/dist/activities/execute-deep-agent/attachment-injector.js +306 -0
  140. package/dist/activities/execute-deep-agent/attachment-injector.js.map +1 -0
  141. package/dist/activities/execute-deep-agent/auto-publish.d.ts +17 -0
  142. package/dist/activities/execute-deep-agent/auto-publish.js +71 -0
  143. package/dist/activities/execute-deep-agent/auto-publish.js.map +1 -0
  144. package/dist/activities/execute-deep-agent/environment.d.ts +24 -0
  145. package/dist/activities/execute-deep-agent/environment.js +50 -0
  146. package/dist/activities/execute-deep-agent/environment.js.map +1 -0
  147. package/dist/activities/execute-deep-agent/event-recorder.d.ts +21 -0
  148. package/dist/activities/execute-deep-agent/event-recorder.js +67 -0
  149. package/dist/activities/execute-deep-agent/event-recorder.js.map +1 -0
  150. package/dist/activities/execute-deep-agent/execution-state.d.ts +61 -0
  151. package/dist/activities/execute-deep-agent/execution-state.js +76 -0
  152. package/dist/activities/execute-deep-agent/execution-state.js.map +1 -0
  153. package/dist/activities/execute-deep-agent/execution-status-writer.d.ts +17 -0
  154. package/dist/activities/execute-deep-agent/execution-status-writer.js +9 -0
  155. package/dist/activities/execute-deep-agent/execution-status-writer.js.map +1 -0
  156. package/dist/activities/execute-deep-agent/hitl.d.ts +58 -0
  157. package/dist/activities/execute-deep-agent/hitl.js +155 -0
  158. package/dist/activities/execute-deep-agent/hitl.js.map +1 -0
  159. package/dist/activities/execute-deep-agent/index.d.ts +14 -0
  160. package/dist/activities/execute-deep-agent/index.js +286 -0
  161. package/dist/activities/execute-deep-agent/index.js.map +1 -0
  162. package/dist/activities/execute-deep-agent/inline-publisher.d.ts +36 -0
  163. package/dist/activities/execute-deep-agent/inline-publisher.js +105 -0
  164. package/dist/activities/execute-deep-agent/inline-publisher.js.map +1 -0
  165. package/dist/activities/execute-deep-agent/post-stream.d.ts +23 -0
  166. package/dist/activities/execute-deep-agent/post-stream.js +71 -0
  167. package/dist/activities/execute-deep-agent/post-stream.js.map +1 -0
  168. package/dist/activities/execute-deep-agent/prompt-builder.d.ts +27 -0
  169. package/dist/activities/execute-deep-agent/prompt-builder.js +200 -0
  170. package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -0
  171. package/dist/activities/execute-deep-agent/setup.d.ts +55 -0
  172. package/dist/activities/execute-deep-agent/setup.js +411 -0
  173. package/dist/activities/execute-deep-agent/setup.js.map +1 -0
  174. package/dist/activities/execute-deep-agent/status-builder-shared.d.ts +39 -0
  175. package/dist/activities/execute-deep-agent/status-builder-shared.js +120 -0
  176. package/dist/activities/execute-deep-agent/status-builder-shared.js.map +1 -0
  177. package/dist/activities/execute-deep-agent/status-builder.d.ts +81 -0
  178. package/dist/activities/execute-deep-agent/status-builder.js +312 -0
  179. package/dist/activities/execute-deep-agent/status-builder.js.map +1 -0
  180. package/dist/activities/execute-deep-agent/streaming-scheduler.d.ts +60 -0
  181. package/dist/activities/execute-deep-agent/streaming-scheduler.js +114 -0
  182. package/dist/activities/execute-deep-agent/streaming-scheduler.js.map +1 -0
  183. package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +22 -0
  184. package/dist/activities/execute-deep-agent/streaming-side-effects.js +83 -0
  185. package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -0
  186. package/dist/activities/execute-deep-agent/streaming-terminal.d.ts +12 -0
  187. package/dist/activities/execute-deep-agent/streaming-terminal.js +71 -0
  188. package/dist/activities/execute-deep-agent/streaming-terminal.js.map +1 -0
  189. package/dist/activities/execute-deep-agent/streaming-v3.d.ts +13 -0
  190. package/dist/activities/execute-deep-agent/streaming-v3.js +170 -0
  191. package/dist/activities/execute-deep-agent/streaming-v3.js.map +1 -0
  192. package/dist/activities/execute-deep-agent/streaming.d.ts +66 -0
  193. package/dist/activities/execute-deep-agent/streaming.js +169 -0
  194. package/dist/activities/execute-deep-agent/streaming.js.map +1 -0
  195. package/dist/activities/execute-deep-agent/subagent-tracker.d.ts +90 -0
  196. package/dist/activities/execute-deep-agent/subagent-tracker.js +364 -0
  197. package/dist/activities/execute-deep-agent/subagent-tracker.js.map +1 -0
  198. package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +150 -0
  199. package/dist/activities/execute-deep-agent/subagent-transformer.js +450 -0
  200. package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -0
  201. package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +28 -0
  202. package/dist/activities/execute-deep-agent/subagent-wiring.js +40 -0
  203. package/dist/activities/execute-deep-agent/subagent-wiring.js.map +1 -0
  204. package/dist/activities/execute-deep-agent/v3-event-recorder.d.ts +31 -0
  205. package/dist/activities/execute-deep-agent/v3-event-recorder.js +71 -0
  206. package/dist/activities/execute-deep-agent/v3-event-recorder.js.map +1 -0
  207. package/dist/activities/execute-deep-agent/v3-events.d.ts +102 -0
  208. package/dist/activities/execute-deep-agent/v3-events.js +35 -0
  209. package/dist/activities/execute-deep-agent/v3-events.js.map +1 -0
  210. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.d.ts +15 -0
  211. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js +235 -0
  212. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js.map +1 -0
  213. package/dist/activities/execute-deep-agent/v3-status-builder.d.ts +68 -0
  214. package/dist/activities/execute-deep-agent/v3-status-builder.js +394 -0
  215. package/dist/activities/execute-deep-agent/v3-status-builder.js.map +1 -0
  216. package/dist/activities/execute-deep-agent/writeback-coordinator.d.ts +71 -0
  217. package/dist/activities/execute-deep-agent/writeback-coordinator.js +295 -0
  218. package/dist/activities/execute-deep-agent/writeback-coordinator.js.map +1 -0
  219. package/dist/activities/hydrate-workflow-execution.d.ts +32 -0
  220. package/dist/activities/hydrate-workflow-execution.js +212 -0
  221. package/dist/activities/hydrate-workflow-execution.js.map +1 -0
  222. package/dist/activities/notification.d.ts +19 -0
  223. package/dist/activities/notification.js +47 -0
  224. package/dist/activities/notification.js.map +1 -0
  225. package/dist/activities/promote-task-output.d.ts +38 -0
  226. package/dist/activities/promote-task-output.js +90 -0
  227. package/dist/activities/promote-task-output.js.map +1 -0
  228. package/dist/activities/run-command.d.ts +15 -0
  229. package/dist/activities/run-command.js +123 -0
  230. package/dist/activities/run-command.js.map +1 -0
  231. package/dist/activities/workflow-event-activities.d.ts +48 -0
  232. package/dist/activities/workflow-event-activities.js +415 -0
  233. package/dist/activities/workflow-event-activities.js.map +1 -0
  234. package/dist/bootstrap.d.ts +80 -0
  235. package/dist/bootstrap.js +114 -0
  236. package/dist/bootstrap.js.map +1 -0
  237. package/dist/budget/index.d.ts +1 -0
  238. package/dist/budget/index.js +2 -0
  239. package/dist/budget/index.js.map +1 -0
  240. package/dist/budget/tracker.d.ts +52 -0
  241. package/dist/budget/tracker.js +123 -0
  242. package/dist/budget/tracker.js.map +1 -0
  243. package/dist/claimcheck/compressor.d.ts +2 -0
  244. package/dist/claimcheck/compressor.js +8 -0
  245. package/dist/claimcheck/compressor.js.map +1 -0
  246. package/dist/claimcheck/config.d.ts +7 -0
  247. package/dist/claimcheck/config.js +10 -0
  248. package/dist/claimcheck/config.js.map +1 -0
  249. package/dist/claimcheck/index.d.ts +3 -0
  250. package/dist/claimcheck/index.js +4 -0
  251. package/dist/claimcheck/index.js.map +1 -0
  252. package/dist/claimcheck/payload-codec.d.ts +23 -0
  253. package/dist/claimcheck/payload-codec.js +81 -0
  254. package/dist/claimcheck/payload-codec.js.map +1 -0
  255. package/dist/client/server-contracts.d.ts +52 -0
  256. package/dist/client/server-contracts.js +72 -0
  257. package/dist/client/server-contracts.js.map +1 -0
  258. package/dist/client/stigmer-client.d.ts +131 -0
  259. package/dist/client/stigmer-client.js +239 -0
  260. package/dist/client/stigmer-client.js.map +1 -0
  261. package/dist/config.d.ts +64 -0
  262. package/dist/config.js +123 -0
  263. package/dist/config.js.map +1 -0
  264. package/dist/idle-watchdog.d.ts +11 -0
  265. package/dist/idle-watchdog.js +24 -0
  266. package/dist/idle-watchdog.js.map +1 -0
  267. package/dist/index.d.ts +43 -0
  268. package/dist/index.js +42 -0
  269. package/dist/index.js.map +1 -0
  270. package/dist/interceptors/workflow-metrics-sink.d.ts +11 -0
  271. package/dist/interceptors/workflow-metrics-sink.js +51 -0
  272. package/dist/interceptors/workflow-metrics-sink.js.map +1 -0
  273. package/dist/ipc-protocol-fixtures.d.ts +32 -0
  274. package/dist/ipc-protocol-fixtures.js +69 -0
  275. package/dist/ipc-protocol-fixtures.js.map +1 -0
  276. package/dist/ipc-protocol.d.ts +60 -0
  277. package/dist/ipc-protocol.js +19 -0
  278. package/dist/ipc-protocol.js.map +1 -0
  279. package/dist/main.d.ts +19 -0
  280. package/dist/main.js +292 -0
  281. package/dist/main.js.map +1 -0
  282. package/dist/middleware/approval-gate.d.ts +30 -0
  283. package/dist/middleware/approval-gate.js +125 -0
  284. package/dist/middleware/approval-gate.js.map +1 -0
  285. package/dist/middleware/cost-cap.d.ts +22 -0
  286. package/dist/middleware/cost-cap.js +159 -0
  287. package/dist/middleware/cost-cap.js.map +1 -0
  288. package/dist/middleware/error-hints.d.ts +27 -0
  289. package/dist/middleware/error-hints.js +116 -0
  290. package/dist/middleware/error-hints.js.map +1 -0
  291. package/dist/middleware/execution-budget.d.ts +20 -0
  292. package/dist/middleware/execution-budget.js +151 -0
  293. package/dist/middleware/execution-budget.js.map +1 -0
  294. package/dist/middleware/graceful-stop.d.ts +17 -0
  295. package/dist/middleware/graceful-stop.js +63 -0
  296. package/dist/middleware/graceful-stop.js.map +1 -0
  297. package/dist/middleware/index.d.ts +27 -0
  298. package/dist/middleware/index.js +45 -0
  299. package/dist/middleware/index.js.map +1 -0
  300. package/dist/middleware/loop-detection.d.ts +14 -0
  301. package/dist/middleware/loop-detection.js +156 -0
  302. package/dist/middleware/loop-detection.js.map +1 -0
  303. package/dist/middleware/otel-spans.d.ts +11 -0
  304. package/dist/middleware/otel-spans.js +177 -0
  305. package/dist/middleware/otel-spans.js.map +1 -0
  306. package/dist/middleware/think-tool.d.ts +23 -0
  307. package/dist/middleware/think-tool.js +33 -0
  308. package/dist/middleware/think-tool.js.map +1 -0
  309. package/dist/middleware/tool-truncation.d.ts +16 -0
  310. package/dist/middleware/tool-truncation.js +67 -0
  311. package/dist/middleware/tool-truncation.js.map +1 -0
  312. package/dist/middleware/types.d.ts +100 -0
  313. package/dist/middleware/types.js +9 -0
  314. package/dist/middleware/types.js.map +1 -0
  315. package/dist/notification/index.d.ts +2 -0
  316. package/dist/notification/index.js +6 -0
  317. package/dist/notification/index.js.map +1 -0
  318. package/dist/notification/provider.d.ts +29 -0
  319. package/dist/notification/provider.js +25 -0
  320. package/dist/notification/provider.js.map +1 -0
  321. package/dist/notification/webhook.d.ts +13 -0
  322. package/dist/notification/webhook.js +55 -0
  323. package/dist/notification/webhook.js.map +1 -0
  324. package/dist/otel-metrics.d.ts +21 -0
  325. package/dist/otel-metrics.js +54 -0
  326. package/dist/otel-metrics.js.map +1 -0
  327. package/dist/otel.d.ts +57 -0
  328. package/dist/otel.js +164 -0
  329. package/dist/otel.js.map +1 -0
  330. package/dist/runner-manager.d.ts +113 -0
  331. package/dist/runner-manager.js +412 -0
  332. package/dist/runner-manager.js.map +1 -0
  333. package/dist/runner-token-coordinator.d.ts +56 -0
  334. package/dist/runner-token-coordinator.js +84 -0
  335. package/dist/runner-token-coordinator.js.map +1 -0
  336. package/dist/runner.d.ts +104 -0
  337. package/dist/runner.js +234 -0
  338. package/dist/runner.js.map +1 -0
  339. package/dist/shared/approval-policy.d.ts +45 -0
  340. package/dist/shared/approval-policy.js +122 -0
  341. package/dist/shared/approval-policy.js.map +1 -0
  342. package/dist/shared/artifact-storage.d.ts +44 -0
  343. package/dist/shared/artifact-storage.js +162 -0
  344. package/dist/shared/artifact-storage.js.map +1 -0
  345. package/dist/shared/checkpointer/factory.d.ts +28 -0
  346. package/dist/shared/checkpointer/factory.js +55 -0
  347. package/dist/shared/checkpointer/factory.js.map +1 -0
  348. package/dist/shared/checkpointer/http-saver.d.ts +34 -0
  349. package/dist/shared/checkpointer/http-saver.js +274 -0
  350. package/dist/shared/checkpointer/http-saver.js.map +1 -0
  351. package/dist/shared/checkpointer/types.d.ts +12 -0
  352. package/dist/shared/checkpointer/types.js +2 -0
  353. package/dist/shared/checkpointer/types.js.map +1 -0
  354. package/dist/shared/connect-backfill.d.ts +58 -0
  355. package/dist/shared/connect-backfill.js +119 -0
  356. package/dist/shared/connect-backfill.js.map +1 -0
  357. package/dist/shared/extract-json.d.ts +26 -0
  358. package/dist/shared/extract-json.js +140 -0
  359. package/dist/shared/extract-json.js.map +1 -0
  360. package/dist/shared/grpc-retry.d.ts +35 -0
  361. package/dist/shared/grpc-retry.js +78 -0
  362. package/dist/shared/grpc-retry.js.map +1 -0
  363. package/dist/shared/heartbeat.d.ts +22 -0
  364. package/dist/shared/heartbeat.js +55 -0
  365. package/dist/shared/heartbeat.js.map +1 -0
  366. package/dist/shared/json-schema-to-zod.d.ts +13 -0
  367. package/dist/shared/json-schema-to-zod.js +49 -0
  368. package/dist/shared/json-schema-to-zod.js.map +1 -0
  369. package/dist/shared/llm-proxy.d.ts +57 -0
  370. package/dist/shared/llm-proxy.js +116 -0
  371. package/dist/shared/llm-proxy.js.map +1 -0
  372. package/dist/shared/mcp-manager.d.ts +47 -0
  373. package/dist/shared/mcp-manager.js +118 -0
  374. package/dist/shared/mcp-manager.js.map +1 -0
  375. package/dist/shared/mcp-resolver.d.ts +41 -0
  376. package/dist/shared/mcp-resolver.js +96 -0
  377. package/dist/shared/mcp-resolver.js.map +1 -0
  378. package/dist/shared/model-pricing-data.d.ts +18 -0
  379. package/dist/shared/model-pricing-data.js +78 -0
  380. package/dist/shared/model-pricing-data.js.map +1 -0
  381. package/dist/shared/model-pricing.d.ts +24 -0
  382. package/dist/shared/model-pricing.js +58 -0
  383. package/dist/shared/model-pricing.js.map +1 -0
  384. package/dist/shared/model-registry.d.ts +55 -0
  385. package/dist/shared/model-registry.js +178 -0
  386. package/dist/shared/model-registry.js.map +1 -0
  387. package/dist/shared/placeholder-resolver.d.ts +27 -0
  388. package/dist/shared/placeholder-resolver.js +75 -0
  389. package/dist/shared/placeholder-resolver.js.map +1 -0
  390. package/dist/shared/plan-artifact.d.ts +56 -0
  391. package/dist/shared/plan-artifact.js +98 -0
  392. package/dist/shared/plan-artifact.js.map +1 -0
  393. package/dist/shared/skill-relevance.d.ts +65 -0
  394. package/dist/shared/skill-relevance.js +175 -0
  395. package/dist/shared/skill-relevance.js.map +1 -0
  396. package/dist/shared/skill-writer.d.ts +73 -0
  397. package/dist/shared/skill-writer.js +230 -0
  398. package/dist/shared/skill-writer.js.map +1 -0
  399. package/dist/shared/status.d.ts +37 -0
  400. package/dist/shared/status.js +73 -0
  401. package/dist/shared/status.js.map +1 -0
  402. package/dist/shared/subagent-gate.d.ts +41 -0
  403. package/dist/shared/subagent-gate.js +93 -0
  404. package/dist/shared/subagent-gate.js.map +1 -0
  405. package/dist/shared/tool-kind.d.ts +22 -0
  406. package/dist/shared/tool-kind.js +79 -0
  407. package/dist/shared/tool-kind.js.map +1 -0
  408. package/dist/shared/workspace/file-tree.d.ts +13 -0
  409. package/dist/shared/workspace/file-tree.js +101 -0
  410. package/dist/shared/workspace/file-tree.js.map +1 -0
  411. package/dist/shared/workspace/local-backend.d.ts +41 -0
  412. package/dist/shared/workspace/local-backend.js +113 -0
  413. package/dist/shared/workspace/local-backend.js.map +1 -0
  414. package/dist/shared/workspace/platform-dir.d.ts +25 -0
  415. package/dist/shared/workspace/platform-dir.js +36 -0
  416. package/dist/shared/workspace/platform-dir.js.map +1 -0
  417. package/dist/shared/workspace/platform-mount.d.ts +95 -0
  418. package/dist/shared/workspace/platform-mount.js +157 -0
  419. package/dist/shared/workspace/platform-mount.js.map +1 -0
  420. package/dist/shared/workspace/provisioner.d.ts +47 -0
  421. package/dist/shared/workspace/provisioner.js +84 -0
  422. package/dist/shared/workspace/provisioner.js.map +1 -0
  423. package/dist/shared/workspace/sources/empty.d.ts +8 -0
  424. package/dist/shared/workspace/sources/empty.js +18 -0
  425. package/dist/shared/workspace/sources/empty.js.map +1 -0
  426. package/dist/shared/workspace/sources/git.d.ts +22 -0
  427. package/dist/shared/workspace/sources/git.js +207 -0
  428. package/dist/shared/workspace/sources/git.js.map +1 -0
  429. package/dist/shared/workspace/sources/local-path.d.ts +17 -0
  430. package/dist/shared/workspace/sources/local-path.js +57 -0
  431. package/dist/shared/workspace/sources/local-path.js.map +1 -0
  432. package/dist/shared/workspace/types.d.ts +58 -0
  433. package/dist/shared/workspace/types.js +25 -0
  434. package/dist/shared/workspace/types.js.map +1 -0
  435. package/dist/shared/zip-extract.d.ts +30 -0
  436. package/dist/shared/zip-extract.js +150 -0
  437. package/dist/shared/zip-extract.js.map +1 -0
  438. package/dist/worker.d.ts +27 -0
  439. package/dist/worker.js +65 -0
  440. package/dist/worker.js.map +1 -0
  441. package/dist/workflow-engine/clone.d.ts +11 -0
  442. package/dist/workflow-engine/clone.js +21 -0
  443. package/dist/workflow-engine/clone.js.map +1 -0
  444. package/dist/workflow-engine/do-executor.d.ts +27 -0
  445. package/dist/workflow-engine/do-executor.js +418 -0
  446. package/dist/workflow-engine/do-executor.js.map +1 -0
  447. package/dist/workflow-engine/duration.d.ts +12 -0
  448. package/dist/workflow-engine/duration.js +25 -0
  449. package/dist/workflow-engine/duration.js.map +1 -0
  450. package/dist/workflow-engine/error-utils.d.ts +42 -0
  451. package/dist/workflow-engine/error-utils.js +77 -0
  452. package/dist/workflow-engine/error-utils.js.map +1 -0
  453. package/dist/workflow-engine/errors.d.ts +46 -0
  454. package/dist/workflow-engine/errors.js +105 -0
  455. package/dist/workflow-engine/errors.js.map +1 -0
  456. package/dist/workflow-engine/expression-utils.d.ts +60 -0
  457. package/dist/workflow-engine/expression-utils.js +108 -0
  458. package/dist/workflow-engine/expression-utils.js.map +1 -0
  459. package/dist/workflow-engine/expression.d.ts +132 -0
  460. package/dist/workflow-engine/expression.js +366 -0
  461. package/dist/workflow-engine/expression.js.map +1 -0
  462. package/dist/workflow-engine/loader.d.ts +23 -0
  463. package/dist/workflow-engine/loader.js +429 -0
  464. package/dist/workflow-engine/loader.js.map +1 -0
  465. package/dist/workflow-engine/recovery.d.ts +53 -0
  466. package/dist/workflow-engine/recovery.js +46 -0
  467. package/dist/workflow-engine/recovery.js.map +1 -0
  468. package/dist/workflow-engine/resolve.d.ts +83 -0
  469. package/dist/workflow-engine/resolve.js +257 -0
  470. package/dist/workflow-engine/resolve.js.map +1 -0
  471. package/dist/workflow-engine/retry.d.ts +30 -0
  472. package/dist/workflow-engine/retry.js +97 -0
  473. package/dist/workflow-engine/retry.js.map +1 -0
  474. package/dist/workflow-engine/state.d.ts +26 -0
  475. package/dist/workflow-engine/state.js +49 -0
  476. package/dist/workflow-engine/state.js.map +1 -0
  477. package/dist/workflow-engine/task-factory.d.ts +20 -0
  478. package/dist/workflow-engine/task-factory.js +133 -0
  479. package/dist/workflow-engine/task-factory.js.map +1 -0
  480. package/dist/workflow-engine/task-status-accumulator.d.ts +59 -0
  481. package/dist/workflow-engine/task-status-accumulator.js +164 -0
  482. package/dist/workflow-engine/task-status-accumulator.js.map +1 -0
  483. package/dist/workflow-engine/tasks/call-agent-output.d.ts +26 -0
  484. package/dist/workflow-engine/tasks/call-agent-output.js +109 -0
  485. package/dist/workflow-engine/tasks/call-agent-output.js.map +1 -0
  486. package/dist/workflow-engine/tasks/call-agent.d.ts +31 -0
  487. package/dist/workflow-engine/tasks/call-agent.js +161 -0
  488. package/dist/workflow-engine/tasks/call-agent.js.map +1 -0
  489. package/dist/workflow-engine/tasks/call-function.d.ts +19 -0
  490. package/dist/workflow-engine/tasks/call-function.js +64 -0
  491. package/dist/workflow-engine/tasks/call-function.js.map +1 -0
  492. package/dist/workflow-engine/tasks/call-grpc.d.ts +15 -0
  493. package/dist/workflow-engine/tasks/call-grpc.js +27 -0
  494. package/dist/workflow-engine/tasks/call-grpc.js.map +1 -0
  495. package/dist/workflow-engine/tasks/call-http.d.ts +19 -0
  496. package/dist/workflow-engine/tasks/call-http.js +31 -0
  497. package/dist/workflow-engine/tasks/call-http.js.map +1 -0
  498. package/dist/workflow-engine/tasks/for.d.ts +39 -0
  499. package/dist/workflow-engine/tasks/for.js +154 -0
  500. package/dist/workflow-engine/tasks/for.js.map +1 -0
  501. package/dist/workflow-engine/tasks/fork.d.ts +42 -0
  502. package/dist/workflow-engine/tasks/fork.js +142 -0
  503. package/dist/workflow-engine/tasks/fork.js.map +1 -0
  504. package/dist/workflow-engine/tasks/human-input.d.ts +33 -0
  505. package/dist/workflow-engine/tasks/human-input.js +109 -0
  506. package/dist/workflow-engine/tasks/human-input.js.map +1 -0
  507. package/dist/workflow-engine/tasks/listen.d.ts +34 -0
  508. package/dist/workflow-engine/tasks/listen.js +119 -0
  509. package/dist/workflow-engine/tasks/listen.js.map +1 -0
  510. package/dist/workflow-engine/tasks/raise.d.ts +18 -0
  511. package/dist/workflow-engine/tasks/raise.js +60 -0
  512. package/dist/workflow-engine/tasks/raise.js.map +1 -0
  513. package/dist/workflow-engine/tasks/run.d.ts +39 -0
  514. package/dist/workflow-engine/tasks/run.js +114 -0
  515. package/dist/workflow-engine/tasks/run.js.map +1 -0
  516. package/dist/workflow-engine/tasks/set.d.ts +15 -0
  517. package/dist/workflow-engine/tasks/set.js +31 -0
  518. package/dist/workflow-engine/tasks/set.js.map +1 -0
  519. package/dist/workflow-engine/tasks/switch.d.ts +25 -0
  520. package/dist/workflow-engine/tasks/switch.js +76 -0
  521. package/dist/workflow-engine/tasks/switch.js.map +1 -0
  522. package/dist/workflow-engine/tasks/try.d.ts +49 -0
  523. package/dist/workflow-engine/tasks/try.js +189 -0
  524. package/dist/workflow-engine/tasks/try.js.map +1 -0
  525. package/dist/workflow-engine/tasks/wait.d.ts +24 -0
  526. package/dist/workflow-engine/tasks/wait.js +39 -0
  527. package/dist/workflow-engine/tasks/wait.js.map +1 -0
  528. package/dist/workflow-engine/types.d.ts +682 -0
  529. package/dist/workflow-engine/types.js +47 -0
  530. package/dist/workflow-engine/types.js.map +1 -0
  531. package/dist/workflows/call-agent-orchestrator.d.ts +31 -0
  532. package/dist/workflows/call-agent-orchestrator.js +214 -0
  533. package/dist/workflows/call-agent-orchestrator.js.map +1 -0
  534. package/dist/workflows/connect-mcp-server.d.ts +20 -0
  535. package/dist/workflows/connect-mcp-server.js +113 -0
  536. package/dist/workflows/connect-mcp-server.js.map +1 -0
  537. package/dist/workflows/engine-core.d.ts +36 -0
  538. package/dist/workflows/engine-core.js +272 -0
  539. package/dist/workflows/engine-core.js.map +1 -0
  540. package/dist/workflows/execute-from-execution.d.ts +32 -0
  541. package/dist/workflows/execute-from-execution.js +71 -0
  542. package/dist/workflows/execute-from-execution.js.map +1 -0
  543. package/dist/workflows/execute-serverless-workflow.d.ts +32 -0
  544. package/dist/workflows/execute-serverless-workflow.js +36 -0
  545. package/dist/workflows/execute-serverless-workflow.js.map +1 -0
  546. package/dist/workflows/human-input-orchestrator.d.ts +19 -0
  547. package/dist/workflows/human-input-orchestrator.js +59 -0
  548. package/dist/workflows/human-input-orchestrator.js.map +1 -0
  549. package/dist/workflows/index.d.ts +22 -0
  550. package/dist/workflows/index.js +23 -0
  551. package/dist/workflows/index.js.map +1 -0
  552. package/dist/workflows/listen-orchestrator.d.ts +29 -0
  553. package/dist/workflows/listen-orchestrator.js +143 -0
  554. package/dist/workflows/listen-orchestrator.js.map +1 -0
  555. package/dist/workflows/metrics-sink.d.ts +33 -0
  556. package/dist/workflows/metrics-sink.js +21 -0
  557. package/dist/workflows/metrics-sink.js.map +1 -0
  558. package/dist/workflows/run-orchestrator.d.ts +15 -0
  559. package/dist/workflows/run-orchestrator.js +27 -0
  560. package/dist/workflows/run-orchestrator.js.map +1 -0
  561. package/dist/workflows/types.d.ts +46 -0
  562. package/dist/workflows/types.js +15 -0
  563. package/dist/workflows/types.js.map +1 -0
  564. package/dist/workflows/workflow-signals.d.ts +29 -0
  565. package/dist/workflows/workflow-signals.js +46 -0
  566. package/dist/workflows/workflow-signals.js.map +1 -0
  567. package/package.json +108 -0
  568. package/src/__test-utils__/__tests__/replay-fetch.test.ts +155 -0
  569. package/src/__test-utils__/mock-client.ts +44 -0
  570. package/src/__test-utils__/mock-workspace.ts +28 -0
  571. package/src/__test-utils__/proto-helpers.ts +41 -0
  572. package/src/__test-utils__/replay-fetch.ts +523 -0
  573. package/src/__tests__/bootstrap.test.ts +221 -0
  574. package/src/__tests__/claimcheck-codec.test.ts +257 -0
  575. package/src/__tests__/config.test.ts +150 -0
  576. package/src/__tests__/deterministic-eval-llm.test.ts +269 -0
  577. package/src/__tests__/deterministic-mcp-hitl.test.ts +405 -0
  578. package/src/__tests__/golden-e2e.test.ts +250 -0
  579. package/src/__tests__/ipc-protocol-fixtures.test.ts +66 -0
  580. package/src/__tests__/ipc-protocol.test.ts +32 -0
  581. package/src/__tests__/otel-metrics.test.ts +40 -0
  582. package/src/__tests__/runner-manager.test.ts +55 -0
  583. package/src/__tests__/runner-token-coordinator.test.ts +166 -0
  584. package/src/__tests__/runner.test.ts +182 -0
  585. package/src/__tests__/worker.test.ts +18 -0
  586. package/src/activities/__tests__/call-agent-contracts.test.ts +483 -0
  587. package/src/activities/__tests__/call-agent.test.ts +263 -0
  588. package/src/activities/__tests__/call-function.test.ts +47 -0
  589. package/src/activities/__tests__/call-grpc.test.ts +39 -0
  590. package/src/activities/__tests__/call-http.test.ts +288 -0
  591. package/src/activities/__tests__/call-llm.test.ts +301 -0
  592. package/src/activities/__tests__/classify-tool-approvals.test.ts +430 -0
  593. package/src/activities/__tests__/discover-mcp-server.test.ts +641 -0
  594. package/src/activities/__tests__/ensure-thread.test.ts +96 -0
  595. package/src/activities/__tests__/error-classifier.test.ts +372 -0
  596. package/src/activities/__tests__/evaluate-expressions.test.ts +114 -0
  597. package/src/activities/__tests__/hydrate-workflow-execution.test.ts +321 -0
  598. package/src/activities/__tests__/notification.test.ts +151 -0
  599. package/src/activities/__tests__/workflow-event-activities.test.ts +664 -0
  600. package/src/activities/call-agent-status.ts +130 -0
  601. package/src/activities/call-agent.ts +302 -0
  602. package/src/activities/call-eval.ts +333 -0
  603. package/src/activities/call-function.ts +73 -0
  604. package/src/activities/call-grpc.ts +140 -0
  605. package/src/activities/call-http.ts +185 -0
  606. package/src/activities/call-llm.ts +379 -0
  607. package/src/activities/call-transform.ts +54 -0
  608. package/src/activities/call-validate.ts +223 -0
  609. package/src/activities/classify-tool-approvals.ts +319 -0
  610. package/src/activities/discover-mcp-server.ts +411 -0
  611. package/src/activities/emit-event.ts +195 -0
  612. package/src/activities/ensure-thread.ts +45 -0
  613. package/src/activities/evaluate-expressions.ts +47 -0
  614. package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +188 -0
  615. package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +111 -0
  616. package/src/activities/execute-cursor/__tests__/cursor-baseurl-routing.test.ts +86 -0
  617. package/src/activities/execute-cursor/__tests__/cursor-fetch-interceptor-bypass.test.ts +64 -0
  618. package/src/activities/execute-cursor/__tests__/cursor-mode.test.ts +95 -0
  619. package/src/activities/execute-cursor/__tests__/cursor-sdk-auth-smoke.test.ts +90 -0
  620. package/src/activities/execute-cursor/__tests__/delta-enricher.test.ts +242 -0
  621. package/src/activities/execute-cursor/__tests__/error-classifier-introspection.test.ts +156 -0
  622. package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +211 -0
  623. package/src/activities/execute-cursor/__tests__/hitl-ledger.test.ts +298 -0
  624. package/src/activities/execute-cursor/__tests__/http2-interceptor.test.ts +360 -0
  625. package/src/activities/execute-cursor/__tests__/message-translator.test.ts +657 -0
  626. package/src/activities/execute-cursor/__tests__/model-pricing.test.ts +92 -0
  627. package/src/activities/execute-cursor/__tests__/prompt-builder-delegation.test.ts +101 -0
  628. package/src/activities/execute-cursor/__tests__/runner-error-regressions.test.ts +144 -0
  629. package/src/activities/execute-cursor/__tests__/session-lifecycle.test.ts +65 -0
  630. package/src/activities/execute-cursor/__tests__/skill-resolver.test.ts +265 -0
  631. package/src/activities/execute-cursor/__tests__/subagent-config.test.ts +107 -0
  632. package/src/activities/execute-cursor/__tests__/todo-tracker.test.ts +498 -0
  633. package/src/activities/execute-cursor/__tests__/workspace-provision.test.ts +283 -0
  634. package/src/activities/execute-cursor/approval-policy.ts +224 -0
  635. package/src/activities/execute-cursor/approval-state.ts +311 -0
  636. package/src/activities/execute-cursor/attachment-resolver.ts +78 -0
  637. package/src/activities/execute-cursor/blueprint-resolver.ts +234 -0
  638. package/src/activities/execute-cursor/connect-backfill.ts +49 -0
  639. package/src/activities/execute-cursor/cursor-event-recorder.ts +83 -0
  640. package/src/activities/execute-cursor/cursor-mode.ts +42 -0
  641. package/src/activities/execute-cursor/delta-enricher.ts +307 -0
  642. package/src/activities/execute-cursor/env-resolver.ts +64 -0
  643. package/src/activities/execute-cursor/error-classifier.ts +247 -0
  644. package/src/activities/execute-cursor/fetch-interceptor.ts +382 -0
  645. package/src/activities/execute-cursor/hitl-diagnostics.ts +82 -0
  646. package/src/activities/execute-cursor/hook-script.ts +159 -0
  647. package/src/activities/execute-cursor/http2-interceptor.ts +253 -0
  648. package/src/activities/execute-cursor/index.ts +1439 -0
  649. package/src/activities/execute-cursor/mcp-config.ts +66 -0
  650. package/src/activities/execute-cursor/mcp-resolver.ts +271 -0
  651. package/src/activities/execute-cursor/message-translator.ts +896 -0
  652. package/src/activities/execute-cursor/model-pricing-data.ts +167 -0
  653. package/src/activities/execute-cursor/model-pricing.ts +167 -0
  654. package/src/activities/execute-cursor/placeholder-resolver.ts +109 -0
  655. package/src/activities/execute-cursor/prompt-builder.ts +349 -0
  656. package/src/activities/execute-cursor/rejection-capture.ts +100 -0
  657. package/src/activities/execute-cursor/session-lifecycle.ts +429 -0
  658. package/src/activities/execute-cursor/skill-resolver.ts +176 -0
  659. package/src/activities/execute-cursor/subagent-config.ts +62 -0
  660. package/src/activities/execute-cursor/todo-tracker.ts +133 -0
  661. package/src/activities/execute-cursor/usage-accumulator.ts +126 -0
  662. package/src/activities/execute-cursor/workspace-provision.ts +55 -0
  663. package/src/activities/execute-cursor/workspace-setup.ts +75 -0
  664. package/src/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.ts +281 -0
  665. package/src/activities/execute-deep-agent/__tests__/attachment-injector.test.ts +720 -0
  666. package/src/activities/execute-deep-agent/__tests__/auto-publish.test.ts +146 -0
  667. package/src/activities/execute-deep-agent/__tests__/environment.test.ts +103 -0
  668. package/src/activities/execute-deep-agent/__tests__/event-recorder.test.ts +150 -0
  669. package/src/activities/execute-deep-agent/__tests__/execution-state-extended.test.ts +150 -0
  670. package/src/activities/execute-deep-agent/__tests__/execution-state.test.ts +157 -0
  671. package/src/activities/execute-deep-agent/__tests__/hitl-integration.test.ts +223 -0
  672. package/src/activities/execute-deep-agent/__tests__/hitl.test.ts +244 -0
  673. package/src/activities/execute-deep-agent/__tests__/index.test.ts +91 -0
  674. package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +240 -0
  675. package/src/activities/execute-deep-agent/__tests__/post-stream.test.ts +112 -0
  676. package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +208 -0
  677. package/src/activities/execute-deep-agent/__tests__/status-builder.test.ts +1771 -0
  678. package/src/activities/execute-deep-agent/__tests__/streaming-scheduler.test.ts +199 -0
  679. package/src/activities/execute-deep-agent/__tests__/streaming-v3.test.ts +527 -0
  680. package/src/activities/execute-deep-agent/__tests__/streaming.test.ts +508 -0
  681. package/src/activities/execute-deep-agent/__tests__/subagent-tracker.test.ts +474 -0
  682. package/src/activities/execute-deep-agent/__tests__/subagent-transformer.test.ts +734 -0
  683. package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +71 -0
  684. package/src/activities/execute-deep-agent/__tests__/summarization-verification.test.ts +323 -0
  685. package/src/activities/execute-deep-agent/__tests__/v3-event-recorder.test.ts +186 -0
  686. package/src/activities/execute-deep-agent/__tests__/v3-protocol-normalizer.test.ts +324 -0
  687. package/src/activities/execute-deep-agent/__tests__/v3-status-builder.test.ts +504 -0
  688. package/src/activities/execute-deep-agent/__tests__/writeback-coordinator.test.ts +399 -0
  689. package/src/activities/execute-deep-agent/attachment-injector.ts +470 -0
  690. package/src/activities/execute-deep-agent/auto-publish.ts +80 -0
  691. package/src/activities/execute-deep-agent/environment.ts +67 -0
  692. package/src/activities/execute-deep-agent/event-recorder.ts +95 -0
  693. package/src/activities/execute-deep-agent/execution-state.ts +87 -0
  694. package/src/activities/execute-deep-agent/execution-status-writer.ts +19 -0
  695. package/src/activities/execute-deep-agent/hitl.ts +221 -0
  696. package/src/activities/execute-deep-agent/index.ts +342 -0
  697. package/src/activities/execute-deep-agent/inline-publisher.ts +134 -0
  698. package/src/activities/execute-deep-agent/post-stream.ts +109 -0
  699. package/src/activities/execute-deep-agent/prompt-builder.ts +264 -0
  700. package/src/activities/execute-deep-agent/setup.ts +599 -0
  701. package/src/activities/execute-deep-agent/status-builder-shared.ts +136 -0
  702. package/src/activities/execute-deep-agent/status-builder.ts +412 -0
  703. package/src/activities/execute-deep-agent/streaming-scheduler.ts +159 -0
  704. package/src/activities/execute-deep-agent/streaming-side-effects.ts +89 -0
  705. package/src/activities/execute-deep-agent/streaming-terminal.ts +96 -0
  706. package/src/activities/execute-deep-agent/streaming-v3.ts +272 -0
  707. package/src/activities/execute-deep-agent/streaming.ts +303 -0
  708. package/src/activities/execute-deep-agent/subagent-tracker.ts +445 -0
  709. package/src/activities/execute-deep-agent/subagent-transformer.ts +648 -0
  710. package/src/activities/execute-deep-agent/subagent-wiring.ts +56 -0
  711. package/src/activities/execute-deep-agent/v3-event-recorder.ts +111 -0
  712. package/src/activities/execute-deep-agent/v3-events.ts +153 -0
  713. package/src/activities/execute-deep-agent/v3-protocol-normalizer.ts +264 -0
  714. package/src/activities/execute-deep-agent/v3-status-builder.ts +490 -0
  715. package/src/activities/execute-deep-agent/writeback-coordinator.ts +420 -0
  716. package/src/activities/hydrate-workflow-execution.ts +306 -0
  717. package/src/activities/notification.ts +71 -0
  718. package/src/activities/promote-task-output.ts +126 -0
  719. package/src/activities/run-command.ts +148 -0
  720. package/src/activities/workflow-event-activities.ts +481 -0
  721. package/src/bootstrap.ts +173 -0
  722. package/src/budget/__tests__/tracker.test.ts +293 -0
  723. package/src/budget/index.ts +9 -0
  724. package/src/budget/tracker.ts +171 -0
  725. package/src/claimcheck/compressor.ts +9 -0
  726. package/src/claimcheck/config.ts +20 -0
  727. package/src/claimcheck/index.ts +3 -0
  728. package/src/claimcheck/payload-codec.ts +107 -0
  729. package/src/client/__tests__/server-contracts.test.ts +149 -0
  730. package/src/client/__tests__/stigmer-client.test.ts +142 -0
  731. package/src/client/server-contracts.ts +125 -0
  732. package/src/client/stigmer-client.ts +339 -0
  733. package/src/config.ts +185 -0
  734. package/src/idle-watchdog.ts +28 -0
  735. package/src/index.ts +48 -0
  736. package/src/interceptors/workflow-metrics-sink.ts +56 -0
  737. package/src/ipc-protocol-fixtures.ts +117 -0
  738. package/src/ipc-protocol.ts +113 -0
  739. package/src/main.ts +324 -0
  740. package/src/middleware/__tests__/approval-gate.test.ts +231 -0
  741. package/src/middleware/__tests__/cost-cap.test.ts +192 -0
  742. package/src/middleware/__tests__/error-hints.test.ts +90 -0
  743. package/src/middleware/__tests__/execution-budget.test.ts +138 -0
  744. package/src/middleware/__tests__/graceful-stop.test.ts +105 -0
  745. package/src/middleware/__tests__/loop-detection.test.ts +137 -0
  746. package/src/middleware/__tests__/otel-spans.test.ts +89 -0
  747. package/src/middleware/__tests__/think-tool.test.ts +26 -0
  748. package/src/middleware/__tests__/tool-truncation.test.ts +112 -0
  749. package/src/middleware/approval-gate.ts +179 -0
  750. package/src/middleware/cost-cap.ts +213 -0
  751. package/src/middleware/error-hints.ts +136 -0
  752. package/src/middleware/execution-budget.ts +176 -0
  753. package/src/middleware/graceful-stop.ts +86 -0
  754. package/src/middleware/index.ts +70 -0
  755. package/src/middleware/loop-detection.ts +192 -0
  756. package/src/middleware/otel-spans.ts +205 -0
  757. package/src/middleware/think-tool.ts +38 -0
  758. package/src/middleware/tool-truncation.ts +94 -0
  759. package/src/middleware/types.ts +114 -0
  760. package/src/notification/__tests__/provider.test.ts +85 -0
  761. package/src/notification/__tests__/webhook.test.ts +127 -0
  762. package/src/notification/index.ts +15 -0
  763. package/src/notification/provider.ts +52 -0
  764. package/src/notification/webhook.ts +61 -0
  765. package/src/otel-metrics.ts +73 -0
  766. package/src/otel.ts +194 -0
  767. package/src/runner-manager.ts +652 -0
  768. package/src/runner-token-coordinator.ts +135 -0
  769. package/src/runner.ts +380 -0
  770. package/src/shared/__tests__/approval-policy.test.ts +256 -0
  771. package/src/shared/__tests__/artifact-storage-extended.test.ts +208 -0
  772. package/src/shared/__tests__/artifact-storage.test.ts +365 -0
  773. package/src/shared/__tests__/connect-backfill.test.ts +346 -0
  774. package/src/shared/__tests__/extract-json.test.ts +153 -0
  775. package/src/shared/__tests__/grpc-retry-extended.test.ts +176 -0
  776. package/src/shared/__tests__/grpc-retry.test.ts +172 -0
  777. package/src/shared/__tests__/json-schema-to-zod.test.ts +227 -0
  778. package/src/shared/__tests__/llm-proxy.test.ts +179 -0
  779. package/src/shared/__tests__/mcp-manager.test.ts +154 -0
  780. package/src/shared/__tests__/model-pricing.test.ts +85 -0
  781. package/src/shared/__tests__/model-registry.test.ts +197 -0
  782. package/src/shared/__tests__/placeholder-resolver.test.ts +210 -0
  783. package/src/shared/__tests__/plan-artifact.test.ts +142 -0
  784. package/src/shared/__tests__/skill-relevance.test.ts +292 -0
  785. package/src/shared/__tests__/skill-writer.test.ts +349 -0
  786. package/src/shared/__tests__/status.test.ts +142 -0
  787. package/src/shared/__tests__/subagent-gate.test.ts +112 -0
  788. package/src/shared/__tests__/tool-kind.test.ts +58 -0
  789. package/src/shared/__tests__/zip-extract.test.ts +204 -0
  790. package/src/shared/approval-policy.ts +146 -0
  791. package/src/shared/artifact-storage.ts +207 -0
  792. package/src/shared/checkpointer/__tests__/factory.test.ts +42 -0
  793. package/src/shared/checkpointer/__tests__/http-saver.test.ts +176 -0
  794. package/src/shared/checkpointer/factory.ts +73 -0
  795. package/src/shared/checkpointer/http-saver.ts +349 -0
  796. package/src/shared/checkpointer/types.ts +12 -0
  797. package/src/shared/connect-backfill.ts +162 -0
  798. package/src/shared/extract-json.ts +153 -0
  799. package/src/shared/grpc-retry.ts +113 -0
  800. package/src/shared/heartbeat.ts +70 -0
  801. package/src/shared/json-schema-to-zod.ts +53 -0
  802. package/src/shared/llm-proxy.ts +138 -0
  803. package/src/shared/mcp-manager.ts +150 -0
  804. package/src/shared/mcp-resolver.ts +150 -0
  805. package/src/shared/model-pricing-data.ts +109 -0
  806. package/src/shared/model-pricing.ts +81 -0
  807. package/src/shared/model-registry.ts +214 -0
  808. package/src/shared/placeholder-resolver.ts +102 -0
  809. package/src/shared/plan-artifact.ts +120 -0
  810. package/src/shared/skill-relevance.ts +222 -0
  811. package/src/shared/skill-writer.ts +300 -0
  812. package/src/shared/status.ts +94 -0
  813. package/src/shared/subagent-gate.ts +117 -0
  814. package/src/shared/tool-kind.ts +91 -0
  815. package/src/shared/workspace/__tests__/file-tree.test.ts +210 -0
  816. package/src/shared/workspace/__tests__/git-source.test.ts +423 -0
  817. package/src/shared/workspace/__tests__/local-backend-platform.test.ts +259 -0
  818. package/src/shared/workspace/__tests__/local-backend.test.ts +154 -0
  819. package/src/shared/workspace/__tests__/platform-mount.test.ts +378 -0
  820. package/src/shared/workspace/__tests__/provisioner.test.ts +145 -0
  821. package/src/shared/workspace/file-tree.ts +116 -0
  822. package/src/shared/workspace/local-backend.ts +140 -0
  823. package/src/shared/workspace/platform-dir.ts +38 -0
  824. package/src/shared/workspace/platform-mount.ts +190 -0
  825. package/src/shared/workspace/provisioner.ts +150 -0
  826. package/src/shared/workspace/sources/empty.ts +20 -0
  827. package/src/shared/workspace/sources/git.ts +285 -0
  828. package/src/shared/workspace/sources/local-path.ts +89 -0
  829. package/src/shared/workspace/types.ts +69 -0
  830. package/src/shared/zip-extract.ts +193 -0
  831. package/src/worker.ts +98 -0
  832. package/src/workflow-engine/__tests__/do-executor-recovery.test.ts +382 -0
  833. package/src/workflow-engine/__tests__/do-executor.test.ts +963 -0
  834. package/src/workflow-engine/__tests__/errors.test.ts +174 -0
  835. package/src/workflow-engine/__tests__/expression.test.ts +776 -0
  836. package/src/workflow-engine/__tests__/for.test.ts +575 -0
  837. package/src/workflow-engine/__tests__/fork.test.ts +838 -0
  838. package/src/workflow-engine/__tests__/golden-execution.test.ts +1085 -0
  839. package/src/workflow-engine/__tests__/jq-wasm-spike.test.ts +90 -0
  840. package/src/workflow-engine/__tests__/loader.test.ts +1393 -0
  841. package/src/workflow-engine/__tests__/pause-resume.test.ts +267 -0
  842. package/src/workflow-engine/__tests__/recovery.test.ts +115 -0
  843. package/src/workflow-engine/__tests__/resolve.test.ts +432 -0
  844. package/src/workflow-engine/__tests__/retry.test.ts +306 -0
  845. package/src/workflow-engine/__tests__/state.test.ts +174 -0
  846. package/src/workflow-engine/__tests__/task-status-accumulator.test.ts +373 -0
  847. package/src/workflow-engine/__tests__/tasks/call-agent-output.test.ts +120 -0
  848. package/src/workflow-engine/__tests__/tasks/call-agent.test.ts +816 -0
  849. package/src/workflow-engine/__tests__/tasks/call-function.test.ts +205 -0
  850. package/src/workflow-engine/__tests__/tasks/call-grpc.test.ts +133 -0
  851. package/src/workflow-engine/__tests__/tasks/call-http.test.ts +150 -0
  852. package/src/workflow-engine/__tests__/tasks/emit-event.test.ts +322 -0
  853. package/src/workflow-engine/__tests__/tasks/human-input.test.ts +416 -0
  854. package/src/workflow-engine/__tests__/tasks/listen.test.ts +422 -0
  855. package/src/workflow-engine/__tests__/tasks/raise.test.ts +166 -0
  856. package/src/workflow-engine/__tests__/tasks/run.test.ts +272 -0
  857. package/src/workflow-engine/__tests__/tasks/set.test.ts +127 -0
  858. package/src/workflow-engine/__tests__/tasks/switch.test.ts +277 -0
  859. package/src/workflow-engine/__tests__/tasks/try.test.ts +590 -0
  860. package/src/workflow-engine/__tests__/tasks/wait.test.ts +173 -0
  861. package/src/workflow-engine/clone.ts +18 -0
  862. package/src/workflow-engine/do-executor.ts +569 -0
  863. package/src/workflow-engine/duration.ts +22 -0
  864. package/src/workflow-engine/error-utils.ts +97 -0
  865. package/src/workflow-engine/errors.ts +130 -0
  866. package/src/workflow-engine/expression-utils.ts +129 -0
  867. package/src/workflow-engine/expression.ts +430 -0
  868. package/src/workflow-engine/loader.ts +524 -0
  869. package/src/workflow-engine/recovery.ts +80 -0
  870. package/src/workflow-engine/resolve.ts +342 -0
  871. package/src/workflow-engine/retry.ts +109 -0
  872. package/src/workflow-engine/state.ts +56 -0
  873. package/src/workflow-engine/task-factory.ts +160 -0
  874. package/src/workflow-engine/task-status-accumulator.ts +204 -0
  875. package/src/workflow-engine/tasks/call-agent-output.ts +132 -0
  876. package/src/workflow-engine/tasks/call-agent.ts +221 -0
  877. package/src/workflow-engine/tasks/call-function.ts +107 -0
  878. package/src/workflow-engine/tasks/call-grpc.ts +47 -0
  879. package/src/workflow-engine/tasks/call-http.ts +51 -0
  880. package/src/workflow-engine/tasks/for.ts +244 -0
  881. package/src/workflow-engine/tasks/fork.ts +228 -0
  882. package/src/workflow-engine/tasks/human-input.ts +147 -0
  883. package/src/workflow-engine/tasks/listen.ts +166 -0
  884. package/src/workflow-engine/tasks/raise.ts +81 -0
  885. package/src/workflow-engine/tasks/run.ts +142 -0
  886. package/src/workflow-engine/tasks/set.ts +47 -0
  887. package/src/workflow-engine/tasks/switch.ts +102 -0
  888. package/src/workflow-engine/tasks/try.ts +274 -0
  889. package/src/workflow-engine/tasks/wait.ts +53 -0
  890. package/src/workflow-engine/types.ts +911 -0
  891. package/src/workflows/__tests__/connect-mcp-server.test.ts +359 -0
  892. package/src/workflows/__tests__/execute-serverless-workflow.test.ts +277 -0
  893. package/src/workflows/call-agent-orchestrator.ts +283 -0
  894. package/src/workflows/connect-mcp-server.ts +152 -0
  895. package/src/workflows/engine-core.ts +406 -0
  896. package/src/workflows/execute-from-execution.ts +101 -0
  897. package/src/workflows/execute-serverless-workflow.ts +60 -0
  898. package/src/workflows/human-input-orchestrator.ts +76 -0
  899. package/src/workflows/index.ts +32 -0
  900. package/src/workflows/listen-orchestrator.ts +200 -0
  901. package/src/workflows/metrics-sink.ts +48 -0
  902. package/src/workflows/run-orchestrator.ts +34 -0
  903. package/src/workflows/types.ts +64 -0
  904. package/src/workflows/workflow-signals.ts +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-function.js","sourceRoot":"","sources":["../../../src/workflow-engine/tasks/call-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAYzD;;;;;;GAMG;AACH,SAAS,kBAAkB,CACzB,GAAsB,EACtB,iBAA0B;IAE1B,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM;QAChD,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACtD,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE;YACL,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,aAAa,EAAE,GAAG,CAAC,aAAa;SACjC;QACD,GAAG,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,qBAAqB,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,uBAAuB;IACzB,QAAQ,CAAS;IACjB,OAAO,CAAsB;IAEtC,YAAY,QAAgB,EAAE,OAA4B;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK;QACH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YAE3C,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,UAAqC,EACrC,KAAK,EACL,KAAK,EACL,GAAG,CAAC,mBAAmB,CACxB,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,UAAU,CAAC;gBACrD,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC3D,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,CAAC;YAED,MAAM,WAAW,GACd,KAAK,CAAC,GAAG,CAAC,sBAA6C,IAAI,SAAS,CAAC;YAExE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CACnC,QAAQ,EACR,QAAQ,EACR,KAAK,CAAC,GAAG,EACT;gBACE,mBAAmB,EAAE,WAAW;aACjC,CACF,CAAC;YAEF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,OAAO,kBAAkB,CACvB,MAA2B,EAC3B,CAAC,CAAC,QAAQ,CAAC,eAAe,CAC3B,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * CallGRPC task builder — evaluates expressions in the gRPC call
3
+ * config, then delegates the actual RPC to a Temporal activity
4
+ * via the `ctx.callGrpc` callback.
5
+ *
6
+ * Mirrors Go's `task_builder_call_grpc.go` workflow-side logic.
7
+ */
8
+ import type { CallGrpcTaskDef, TaskBuilder, TaskExecutorFn } from "../types.js";
9
+ export declare class CallGrpcTaskBuilder implements TaskBuilder {
10
+ readonly taskName: string;
11
+ readonly taskDef: CallGrpcTaskDef;
12
+ constructor(taskName: string, taskDef: CallGrpcTaskDef);
13
+ build(): TaskExecutorFn;
14
+ shouldRun(): Promise<boolean>;
15
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * CallGRPC task builder — evaluates expressions in the gRPC call
3
+ * config, then delegates the actual RPC to a Temporal activity
4
+ * via the `ctx.callGrpc` callback.
5
+ *
6
+ * Mirrors Go's `task_builder_call_grpc.go` workflow-side logic.
7
+ */
8
+ import { resolveConfigExpressions } from "../resolve.js";
9
+ export class CallGrpcTaskBuilder {
10
+ taskName;
11
+ taskDef;
12
+ constructor(taskName, taskDef) {
13
+ this.taskName = taskName;
14
+ this.taskDef = taskDef;
15
+ }
16
+ build() {
17
+ return async (input, state, ctx) => {
18
+ const resolved = await resolveConfigExpressions(this.taskDef.with, input, state, ctx.evaluateExpressions);
19
+ const result = await ctx.callGrpc(resolved, state.env);
20
+ return result;
21
+ };
22
+ }
23
+ async shouldRun() {
24
+ return true;
25
+ }
26
+ }
27
+ //# sourceMappingURL=call-grpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-grpc.js","sourceRoot":"","sources":["../../../src/workflow-engine/tasks/call-grpc.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,OAAO,mBAAmB;IACrB,QAAQ,CAAS;IACjB,OAAO,CAAkB;IAElC,YAAY,QAAgB,EAAE,OAAwB;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK;QACH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,IAAI,CAAC,OAAO,CAAC,IAA0C,EACvD,KAAK,EACL,KAAK,EACL,GAAG,CAAC,mBAAmB,CACxB,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAC/B,QAAqC,EACrC,KAAK,CAAC,GAAG,CACV,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * CallHTTP task builder — evaluates expressions in the HTTP call
3
+ * config, then delegates the actual HTTP request to a Temporal
4
+ * activity via the `ctx.callHttp` callback.
5
+ *
6
+ * Mirrors Go's `task_builder_call_http.go` workflow-side logic.
7
+ *
8
+ * Two-phase evaluation:
9
+ * 1. Here (workflow): resolve `${ $context.field }` jq expressions
10
+ * 2. Activity: resolve `${.secrets.KEY}` runtime placeholders
11
+ */
12
+ import type { CallHttpTaskDef, TaskBuilder, TaskExecutorFn } from "../types.js";
13
+ export declare class CallHttpTaskBuilder implements TaskBuilder {
14
+ readonly taskName: string;
15
+ readonly taskDef: CallHttpTaskDef;
16
+ constructor(taskName: string, taskDef: CallHttpTaskDef);
17
+ build(): TaskExecutorFn;
18
+ shouldRun(): Promise<boolean>;
19
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * CallHTTP task builder — evaluates expressions in the HTTP call
3
+ * config, then delegates the actual HTTP request to a Temporal
4
+ * activity via the `ctx.callHttp` callback.
5
+ *
6
+ * Mirrors Go's `task_builder_call_http.go` workflow-side logic.
7
+ *
8
+ * Two-phase evaluation:
9
+ * 1. Here (workflow): resolve `${ $context.field }` jq expressions
10
+ * 2. Activity: resolve `${.secrets.KEY}` runtime placeholders
11
+ */
12
+ import { resolveConfigExpressions } from "../resolve.js";
13
+ export class CallHttpTaskBuilder {
14
+ taskName;
15
+ taskDef;
16
+ constructor(taskName, taskDef) {
17
+ this.taskName = taskName;
18
+ this.taskDef = taskDef;
19
+ }
20
+ build() {
21
+ return async (input, state, ctx) => {
22
+ const resolved = await resolveConfigExpressions(this.taskDef.with, input, state, ctx.evaluateExpressions);
23
+ const result = await ctx.callHttp(resolved, state.env);
24
+ return result;
25
+ };
26
+ }
27
+ async shouldRun() {
28
+ return true;
29
+ }
30
+ }
31
+ //# sourceMappingURL=call-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-http.js","sourceRoot":"","sources":["../../../src/workflow-engine/tasks/call-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,OAAO,mBAAmB;IACrB,QAAQ,CAAS;IACjB,OAAO,CAAkB;IAElC,YAAY,QAAgB,EAAE,OAAwB;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK;QACH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,IAAI,CAAC,OAAO,CAAC,IAA0C,EACvD,KAAK,EACL,KAAK,EACL,GAAG,CAAC,mBAAmB,CACxB,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAC/B,QAAqC,EACrC,KAAK,CAAC,GAAG,CACV,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * ForTask executor — iterates over a collection, executing a nested
3
+ * `do` block for each element. Returns an ordered array of per-iteration
4
+ * results.
5
+ *
6
+ * Mirrors Go's `ForTaskBuilder` in `task_builder_for.go`. The key
7
+ * behaviors replicated here:
8
+ *
9
+ * - Collection evaluated once up front via jq (null input, state vars)
10
+ * - Per-iteration state cloned from parent snapshot (state.clone().clearOutput())
11
+ * - Iteration variables bound into $data via addData()
12
+ * - Body executed through recursive executeDoTasks()
13
+ * - Optional `while` condition checked per iteration (after variable binding)
14
+ * - Result is an ordered array of per-iteration outputs
15
+ *
16
+ * T17 parallelism (max_parallelism, batch_size, on_error) is deferred
17
+ * to a future phase — sequential execution only.
18
+ */
19
+ import type { ForTaskDef, WorkflowModel, WorkflowState, ExpressionEvaluator, TaskExecutionContext, TaskBuilder, TaskDef } from "../types.js";
20
+ /**
21
+ * Executes a `for` task — the sequential iteration engine.
22
+ *
23
+ * Called directly by the do-executor's `runSingleTask()` when it
24
+ * encounters a task with `kind: "for"`.
25
+ */
26
+ export declare function executeForTask(taskDef: ForTaskDef, input: unknown, state: WorkflowState, doc: WorkflowModel, evaluateExpressions: ExpressionEvaluator, ctx?: TaskExecutionContext): Promise<unknown[]>;
27
+ /**
28
+ * Placeholder builder for `for` tasks. The actual execution is handled
29
+ * by the do-executor via `executeForTask()` — this builder exists only
30
+ * to satisfy the TaskBuilder interface in the task factory.
31
+ */
32
+ export declare class ForTaskPlaceholderBuilder implements TaskBuilder {
33
+ readonly taskName: string;
34
+ readonly taskDef: TaskDef;
35
+ constructor(taskName: string, taskDef: TaskDef);
36
+ build(): () => Promise<never>;
37
+ shouldRun(): Promise<boolean>;
38
+ }
39
+ export declare const FOR_TASK_KIND: "for";
@@ -0,0 +1,154 @@
1
+ /**
2
+ * ForTask executor — iterates over a collection, executing a nested
3
+ * `do` block for each element. Returns an ordered array of per-iteration
4
+ * results.
5
+ *
6
+ * Mirrors Go's `ForTaskBuilder` in `task_builder_for.go`. The key
7
+ * behaviors replicated here:
8
+ *
9
+ * - Collection evaluated once up front via jq (null input, state vars)
10
+ * - Per-iteration state cloned from parent snapshot (state.clone().clearOutput())
11
+ * - Iteration variables bound into $data via addData()
12
+ * - Body executed through recursive executeDoTasks()
13
+ * - Optional `while` condition checked per iteration (after variable binding)
14
+ * - Result is an ordered array of per-iteration outputs
15
+ *
16
+ * T17 parallelism (max_parallelism, batch_size, on_error) is deferred
17
+ * to a future phase — sequential execution only.
18
+ */
19
+ /**
20
+ * Lazy import of executeDoTasks to break the circular dependency:
21
+ * do-executor.ts → tasks/for.ts → do-executor.ts.
22
+ *
23
+ * The function is resolved on first call and cached.
24
+ */
25
+ let _executeDoTasks = null;
26
+ async function getExecuteDoTasks() {
27
+ if (_executeDoTasks === null) {
28
+ const mod = await import("../do-executor.js");
29
+ _executeDoTasks = mod.executeDoTasks;
30
+ }
31
+ return _executeDoTasks;
32
+ }
33
+ /**
34
+ * Executes a `for` task — the sequential iteration engine.
35
+ *
36
+ * Called directly by the do-executor's `runSingleTask()` when it
37
+ * encounters a task with `kind: "for"`.
38
+ */
39
+ export async function executeForTask(taskDef, input, state, doc, evaluateExpressions, ctx) {
40
+ const executeDoTasks = await getExecuteDoTasks();
41
+ const collection = await evaluateCollectionExpression(taskDef.for.in, state, evaluateExpressions);
42
+ const items = toIterableSlice(collection);
43
+ const eachVar = taskDef.for.each ?? "item";
44
+ const atVar = taskDef.for.at ?? "index";
45
+ const results = [];
46
+ for (const item of items) {
47
+ if (ctx?.checkPause)
48
+ await ctx.checkPause();
49
+ const iterState = state.clone();
50
+ iterState.clearOutput();
51
+ iterState.addData({
52
+ [eachVar]: item.value,
53
+ [atVar]: item.key,
54
+ });
55
+ if (taskDef.while !== undefined) {
56
+ const shouldContinue = await evaluateWhileCondition(taskDef.while, iterState, evaluateExpressions);
57
+ if (!shouldContinue)
58
+ break;
59
+ }
60
+ await executeDoTasks(taskDef.do, input, iterState, doc, evaluateExpressions, ctx);
61
+ results.push(iterState.output);
62
+ }
63
+ return results;
64
+ }
65
+ // ─────────────────────────────────────────────────────────────────────
66
+ // Collection Expression Evaluation
67
+ // ─────────────────────────────────────────────────────────────────────
68
+ /**
69
+ * Evaluates the `for.in` expression to obtain the collection.
70
+ * Expression is evaluated with null jq input and state variables,
71
+ * matching Go's `EvaluateString(for.In, nil, state)`.
72
+ */
73
+ async function evaluateCollectionExpression(expression, state, evaluateExpressions) {
74
+ const rawExpr = expression.startsWith("${ ") && expression.endsWith(" }")
75
+ ? expression.slice(3, -2)
76
+ : expression;
77
+ const stateVars = state.getAsMap();
78
+ const results = await evaluateExpressions({ __collection__: rawExpr }, null, stateVars);
79
+ return results.__collection__;
80
+ }
81
+ // ─────────────────────────────────────────────────────────────────────
82
+ // Collection Normalization
83
+ // ─────────────────────────────────────────────────────────────────────
84
+ /**
85
+ * Normalizes the evaluated collection into an ordered list of
86
+ * key/value pairs. Mirrors Go's `toIterableSlice()`.
87
+ *
88
+ * - Array → [{key: 0, value: el}, ...]
89
+ * - Plain object → [{key: "k", value: v}, ...]
90
+ * - Integer N → [{key: 0, value: 0}, ..., {key: N-1, value: N-1}]
91
+ */
92
+ function toIterableSlice(data) {
93
+ if (Array.isArray(data)) {
94
+ return data.map((value, index) => ({ key: index, value }));
95
+ }
96
+ if (typeof data === "number" && Number.isInteger(data) && data >= 0) {
97
+ return Array.from({ length: data }, (_, i) => ({ key: i, value: i }));
98
+ }
99
+ if (data !== null && typeof data === "object" && !Array.isArray(data)) {
100
+ return Object.entries(data).map(([key, value]) => ({ key, value }));
101
+ }
102
+ const typeDesc = data === null ? "null" : typeof data;
103
+ throw new Error(`for.in expression must evaluate to an array, object, or non-negative integer, ` +
104
+ `got ${typeDesc}: ${JSON.stringify(data)}`);
105
+ }
106
+ // ─────────────────────────────────────────────────────────────────────
107
+ // While Condition
108
+ // ─────────────────────────────────────────────────────────────────────
109
+ /**
110
+ * Evaluates the `while` condition against the current iteration state.
111
+ * Returns true to continue, false to stop. Non-boolean results are
112
+ * treated as false (matching Go's behavior).
113
+ */
114
+ async function evaluateWhileCondition(expression, state, evaluateExpressions) {
115
+ const rawExpr = expression.startsWith("${ ") && expression.endsWith(" }")
116
+ ? expression.slice(3, -2)
117
+ : expression;
118
+ const stateVars = state.getAsMap();
119
+ const results = await evaluateExpressions({ __while__: rawExpr }, null, stateVars);
120
+ const result = results.__while__;
121
+ if (typeof result === "boolean")
122
+ return result;
123
+ if (typeof result === "string") {
124
+ return result.toUpperCase() === "TRUE" || result === "1";
125
+ }
126
+ return false;
127
+ }
128
+ // ─────────────────────────────────────────────────────────────────────
129
+ // Placeholder Builder (for task-factory.ts registration)
130
+ // ─────────────────────────────────────────────────────────────────────
131
+ /**
132
+ * Placeholder builder for `for` tasks. The actual execution is handled
133
+ * by the do-executor via `executeForTask()` — this builder exists only
134
+ * to satisfy the TaskBuilder interface in the task factory.
135
+ */
136
+ export class ForTaskPlaceholderBuilder {
137
+ taskName;
138
+ taskDef;
139
+ constructor(taskName, taskDef) {
140
+ this.taskName = taskName;
141
+ this.taskDef = taskDef;
142
+ }
143
+ build() {
144
+ return async () => {
145
+ throw new Error(`ForTaskPlaceholderBuilder.build() should never be called directly. ` +
146
+ `The executor handles 'for' tasks via executeForTask().`);
147
+ };
148
+ }
149
+ async shouldRun() {
150
+ return true;
151
+ }
152
+ }
153
+ export const FOR_TASK_KIND = "for";
154
+ //# sourceMappingURL=for.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for.js","sourceRoot":"","sources":["../../../src/workflow-engine/tasks/for.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * ForkTask executor — runs branches in parallel, collecting results
3
+ * into a map keyed by branch name (non-compete) or returning the
4
+ * first branch to complete (compete/race mode).
5
+ *
6
+ * Mirrors Go's `ForkTaskBuilder` in `task_builder_fork.go`. Key
7
+ * behaviors replicated here:
8
+ *
9
+ * - Branches validated at execution time (>= 1 required)
10
+ * - Parent state snapshot cloned once, then each branch clones from it
11
+ * - Each branch gets isolated state (clone + clearOutput)
12
+ * - Non-compete: Promise.all, output = { branchName: branchOutput }
13
+ * - Compete: first settlement wins, output = winner's raw output
14
+ * - Any non-cancellation error from any branch fails the fork
15
+ * - Parent state is never mutated by branch execution
16
+ *
17
+ * Cancellation of losing branches in compete mode is intentionally
18
+ * omitted to preserve kernel Temporal-agnosticism. Losing branches
19
+ * run to completion but their results are discarded. Go's cancellation
20
+ * via workflow.WithCancel also does not short-circuit in practice
21
+ * (documented in TestWorkflowFork_CompeteCancellationTiming).
22
+ */
23
+ import type { ForkTaskDef, WorkflowModel, WorkflowState, ExpressionEvaluator, TaskExecutionContext, TaskBuilder, TaskDef } from "../types.js";
24
+ /**
25
+ * Executes a `fork` task — the parallel execution engine.
26
+ *
27
+ * Called directly by the do-executor's `runSingleTask()` when it
28
+ * encounters a task with `kind: "fork"`.
29
+ */
30
+ export declare function executeForkTask(taskDef: ForkTaskDef, input: unknown, state: WorkflowState, doc: WorkflowModel, evaluateExpressions: ExpressionEvaluator, ctx?: TaskExecutionContext): Promise<unknown>;
31
+ /**
32
+ * Placeholder builder for `fork` tasks. The actual execution is
33
+ * handled by the do-executor via `executeForkTask()` — this builder
34
+ * exists only to satisfy the TaskBuilder interface in the task factory.
35
+ */
36
+ export declare class ForkTaskPlaceholderBuilder implements TaskBuilder {
37
+ readonly taskName: string;
38
+ readonly taskDef: TaskDef;
39
+ constructor(taskName: string, taskDef: TaskDef);
40
+ build(): () => Promise<never>;
41
+ shouldRun(): Promise<boolean>;
42
+ }
@@ -0,0 +1,142 @@
1
+ /**
2
+ * ForkTask executor — runs branches in parallel, collecting results
3
+ * into a map keyed by branch name (non-compete) or returning the
4
+ * first branch to complete (compete/race mode).
5
+ *
6
+ * Mirrors Go's `ForkTaskBuilder` in `task_builder_fork.go`. Key
7
+ * behaviors replicated here:
8
+ *
9
+ * - Branches validated at execution time (>= 1 required)
10
+ * - Parent state snapshot cloned once, then each branch clones from it
11
+ * - Each branch gets isolated state (clone + clearOutput)
12
+ * - Non-compete: Promise.all, output = { branchName: branchOutput }
13
+ * - Compete: first settlement wins, output = winner's raw output
14
+ * - Any non-cancellation error from any branch fails the fork
15
+ * - Parent state is never mutated by branch execution
16
+ *
17
+ * Cancellation of losing branches in compete mode is intentionally
18
+ * omitted to preserve kernel Temporal-agnosticism. Losing branches
19
+ * run to completion but their results are discarded. Go's cancellation
20
+ * via workflow.WithCancel also does not short-circuit in practice
21
+ * (documented in TestWorkflowFork_CompeteCancellationTiming).
22
+ */
23
+ let _executeDoTasks = null;
24
+ async function getExecuteDoTasks() {
25
+ if (_executeDoTasks === null) {
26
+ const mod = await import("../do-executor.js");
27
+ _executeDoTasks = mod.executeDoTasks;
28
+ }
29
+ return _executeDoTasks;
30
+ }
31
+ // ─────────────────────────────────────────────────────────────────────
32
+ // Core Execution
33
+ // ─────────────────────────────────────────────────────────────────────
34
+ /**
35
+ * Executes a `fork` task — the parallel execution engine.
36
+ *
37
+ * Called directly by the do-executor's `runSingleTask()` when it
38
+ * encounters a task with `kind: "fork"`.
39
+ */
40
+ export async function executeForkTask(taskDef, input, state, doc, evaluateExpressions, ctx) {
41
+ const branches = taskDef.fork.branches;
42
+ if (branches.length === 0) {
43
+ throw new Error("Fork task requires at least one branch");
44
+ }
45
+ const executeDoTasks = await getExecuteDoTasks();
46
+ const childSnapshot = state.clone();
47
+ childSnapshot.clearOutput();
48
+ if (taskDef.fork.compete) {
49
+ return executeCompete(branches, input, childSnapshot, doc, evaluateExpressions, ctx, executeDoTasks);
50
+ }
51
+ return executeAllBranches(branches, input, childSnapshot, doc, evaluateExpressions, ctx, executeDoTasks);
52
+ }
53
+ // ─────────────────────────────────────────────────────────────────────
54
+ // Non-Compete: All Branches (Promise.all)
55
+ // ─────────────────────────────────────────────────────────────────────
56
+ /**
57
+ * Runs all branches in parallel. Fails fast on the first error.
58
+ * Returns a map of { branchName: branchOutput }.
59
+ */
60
+ async function executeAllBranches(branches, input, childSnapshot, doc, evaluateExpressions, ctx, executeDoTasks) {
61
+ const branchPromises = branches.map(async (branch) => {
62
+ const branchState = childSnapshot.clone();
63
+ branchState.clearOutput();
64
+ const branchTasks = normalizeBranchTasks(branch.key, branch.task);
65
+ await executeDoTasks(branchTasks, input, branchState, doc, evaluateExpressions, ctx);
66
+ return { name: branch.key, output: branchState.output };
67
+ });
68
+ const results = await Promise.all(branchPromises);
69
+ const output = {};
70
+ for (const result of results) {
71
+ output[result.name] = result.output;
72
+ }
73
+ return output;
74
+ }
75
+ /**
76
+ * Races all branches. The first branch to resolve determines the
77
+ * fork output. The first branch to reject fails the fork.
78
+ *
79
+ * Losing branches continue running in the background but their
80
+ * results are discarded. Rejections from losing branches are
81
+ * silently caught to prevent unhandled promise rejection warnings.
82
+ */
83
+ async function executeCompete(branches, input, childSnapshot, doc, evaluateExpressions, ctx, executeDoTasks) {
84
+ const branchPromises = branches.map(async (branch) => {
85
+ const branchState = childSnapshot.clone();
86
+ branchState.clearOutput();
87
+ const branchTasks = normalizeBranchTasks(branch.key, branch.task);
88
+ await executeDoTasks(branchTasks, input, branchState, doc, evaluateExpressions, ctx);
89
+ return { output: branchState.output };
90
+ });
91
+ // Attach no-op catch handlers to all promises so that rejections
92
+ // from losing branches don't surface as unhandled rejections.
93
+ // The actual error propagation happens through the race winner.
94
+ for (const p of branchPromises) {
95
+ p.catch(() => { });
96
+ }
97
+ const winner = await Promise.race(branchPromises);
98
+ return winner.output;
99
+ }
100
+ // ─────────────────────────────────────────────────────────────────────
101
+ // Branch Normalization
102
+ // ─────────────────────────────────────────────────────────────────────
103
+ /**
104
+ * Normalizes a branch's task definition into a TaskList suitable
105
+ * for executeDoTasks(). Branches parsed from YAML are typically
106
+ * DoTaskDefs (the branch contains a `do:` block), but a single
107
+ * leaf task is wrapped into a one-element task list.
108
+ *
109
+ * Mirrors Go's branch wrapping in ForkTaskBuilder.buildOrPostLoad().
110
+ */
111
+ function normalizeBranchTasks(branchName, task) {
112
+ if (task.kind === "do") {
113
+ return task.do;
114
+ }
115
+ return [{ key: branchName, task }];
116
+ }
117
+ // ─────────────────────────────────────────────────────────────────────
118
+ // Placeholder Builder (for task-factory.ts registration)
119
+ // ─────────────────────────────────────────────────────────────────────
120
+ /**
121
+ * Placeholder builder for `fork` tasks. The actual execution is
122
+ * handled by the do-executor via `executeForkTask()` — this builder
123
+ * exists only to satisfy the TaskBuilder interface in the task factory.
124
+ */
125
+ export class ForkTaskPlaceholderBuilder {
126
+ taskName;
127
+ taskDef;
128
+ constructor(taskName, taskDef) {
129
+ this.taskName = taskName;
130
+ this.taskDef = taskDef;
131
+ }
132
+ build() {
133
+ return async () => {
134
+ throw new Error(`ForkTaskPlaceholderBuilder.build() should never be called directly. ` +
135
+ `The executor handles 'fork' tasks via executeForkTask().`);
136
+ };
137
+ }
138
+ async shouldRun() {
139
+ return true;
140
+ }
141
+ }
142
+ //# sourceMappingURL=fork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/workflow-engine/tasks/fork.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Human input task executor — HITL approval gate.
3
+ *
4
+ * Pauses workflow execution until a human reviewer responds via signal.
5
+ * Supports configurable timeout with policies (fail, auto-approve, auto-deny).
6
+ *
7
+ * The kernel validates the config and delegates to `ctx.awaitHumanInput()`
8
+ * which is wired to the Temporal workflow layer's signal/timer selector.
9
+ *
10
+ * Outcome routing: when an outcome defines a `then` field (e.g.,
11
+ * `then: "gatherMore"`), the returned output includes a
12
+ * `__flow_directive__` that the do-executor uses to jump to the
13
+ * named task — the same mechanism used by switch and validate tasks.
14
+ *
15
+ * YAML shape (via loader reclassification from call: human_input):
16
+ * - requireApproval:
17
+ * call: human_input
18
+ * with:
19
+ * prompt: "Please review this deployment"
20
+ * timeout: 300
21
+ * on_timeout: approve
22
+ * outcomes:
23
+ * - name: approve
24
+ * - name: deny
25
+ * - name: revise
26
+ * then: gatherMore
27
+ */
28
+ import type { HumanInputTaskDef, WorkflowState, TaskExecutionContext } from "../types.js";
29
+ /**
30
+ * Executes a human_input task. Called from `runSingleTask` in do-executor
31
+ * when the task kind is "human_input".
32
+ */
33
+ export declare function executeHumanInputTask(taskDef: HumanInputTaskDef, taskName: string, state: WorkflowState, ctx: TaskExecutionContext): Promise<unknown>;
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Human input task executor — HITL approval gate.
3
+ *
4
+ * Pauses workflow execution until a human reviewer responds via signal.
5
+ * Supports configurable timeout with policies (fail, auto-approve, auto-deny).
6
+ *
7
+ * The kernel validates the config and delegates to `ctx.awaitHumanInput()`
8
+ * which is wired to the Temporal workflow layer's signal/timer selector.
9
+ *
10
+ * Outcome routing: when an outcome defines a `then` field (e.g.,
11
+ * `then: "gatherMore"`), the returned output includes a
12
+ * `__flow_directive__` that the do-executor uses to jump to the
13
+ * named task — the same mechanism used by switch and validate tasks.
14
+ *
15
+ * YAML shape (via loader reclassification from call: human_input):
16
+ * - requireApproval:
17
+ * call: human_input
18
+ * with:
19
+ * prompt: "Please review this deployment"
20
+ * timeout: 300
21
+ * on_timeout: approve
22
+ * outcomes:
23
+ * - name: approve
24
+ * - name: deny
25
+ * - name: revise
26
+ * then: gatherMore
27
+ */
28
+ import { resolveEmbeddedExpressions } from "../resolve.js";
29
+ import { isStrictExpr } from "../expression-utils.js";
30
+ const SIGNAL_PREFIX = "human_input_";
31
+ const DEFAULT_TIMEOUT_SECONDS = 0;
32
+ const DEFAULT_ON_TIMEOUT = "fail";
33
+ /**
34
+ * Executes a human_input task. Called from `runSingleTask` in do-executor
35
+ * when the task kind is "human_input".
36
+ */
37
+ export async function executeHumanInputTask(taskDef, taskName, state, ctx) {
38
+ const config = taskDef.humanInput;
39
+ validateConfig(config, taskName);
40
+ const signalName = SIGNAL_PREFIX + taskName;
41
+ const timeoutSeconds = config.timeout ?? DEFAULT_TIMEOUT_SECONDS;
42
+ const onTimeout = config.onTimeout ?? DEFAULT_ON_TIMEOUT;
43
+ const resolvedPrompt = await resolvePromptExpressions(config.prompt, state, ctx);
44
+ const approvalRequestedAt = Date.now();
45
+ ctx.taskStatusAccumulator?.taskWaitingApproval(taskName);
46
+ if (ctx.emitEvents) {
47
+ await ctx.emitEvents([{
48
+ type: "approval_requested",
49
+ taskName,
50
+ occurredAt: new Date().toISOString(),
51
+ prompt: resolvedPrompt,
52
+ approvers: config.approvers ?? [],
53
+ timeoutSeconds,
54
+ outcomes: (config.outcomes ?? []).map((o) => ({
55
+ name: o.name,
56
+ label: o.label ?? "",
57
+ })),
58
+ formSchema: config.formSchema,
59
+ }]);
60
+ }
61
+ const result = await ctx.awaitHumanInput({
62
+ signalName,
63
+ timeoutSeconds,
64
+ onTimeout,
65
+ });
66
+ if (ctx.emitEvents) {
67
+ await ctx.emitEvents([{
68
+ type: "approval_resolved",
69
+ taskName,
70
+ occurredAt: new Date().toISOString(),
71
+ outcome: result.outcome,
72
+ resolvedBy: result.reviewer ?? "",
73
+ comment: "",
74
+ waitDurationMs: Date.now() - approvalRequestedAt,
75
+ autoResolved: result.auto_resolved ?? false,
76
+ }]);
77
+ }
78
+ state.addData({ [taskName]: result });
79
+ const selectedOutcome = config.outcomes?.find(o => o.name === result.outcome);
80
+ if (selectedOutcome?.then) {
81
+ return { ...result, __flow_directive__: selectedOutcome.then };
82
+ }
83
+ return result;
84
+ }
85
+ function validateConfig(config, taskName) {
86
+ if (!config.prompt) {
87
+ throw new Error(`human_input task '${taskName}': 'prompt' is required`);
88
+ }
89
+ }
90
+ /**
91
+ * Resolves `${ ... }` expressions in the prompt string against the
92
+ * current workflow state. Handles both strict (whole-value) and embedded
93
+ * (inline fragment) expression patterns.
94
+ */
95
+ async function resolvePromptExpressions(prompt, state, ctx) {
96
+ const stateVars = state.getAsMap();
97
+ // Strict expression: entire prompt is a single expression
98
+ if (isStrictExpr(prompt)) {
99
+ const expr = prompt.slice(3, -2);
100
+ const results = await ctx.evaluateExpressions({ __prompt__: expr }, null, stateVars);
101
+ const resolved = results.__prompt__;
102
+ return typeof resolved === "string" ? resolved : JSON.stringify(resolved ?? "");
103
+ }
104
+ // Embedded expressions: inline `${ ... }` fragments within the prompt text
105
+ const wrapper = { prompt };
106
+ await resolveEmbeddedExpressions(wrapper, null, stateVars, ctx.evaluateExpressions);
107
+ return wrapper.prompt;
108
+ }
109
+ //# sourceMappingURL=human-input.js.map