@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,200 @@
1
+ /**
2
+ * System prompt construction for deep agent execution.
3
+ *
4
+ * Pure functions: no side effects, no I/O. Accepts pre-computed data
5
+ * (provision results, skill sections, file refs) and returns the
6
+ * assembled system prompt string.
7
+ */
8
+ import { relative } from "node:path";
9
+ import { SourceType } from "../../shared/workspace/types.js";
10
+ const RESPONSE_RULES = `
11
+
12
+ ## Response rules
13
+
14
+ - After using the read tool, NEVER reprint, echo, list, or summarize \
15
+ file contents in your response. Tool results are already in your \
16
+ context. Proceed directly to analysis or the task.
17
+ - Do not begin responses with phrases like \
18
+ "Below is the complete content", \
19
+ "Here are the contents of the files", or similar. \
20
+ The user did not ask you to display file contents.
21
+ - Use backticks for file paths, function names, variable names, \
22
+ and shell commands (e.g., \`src/main.py\`, \`handleRequest()\`, \
23
+ \`npm install\`).
24
+ - When referencing code, cite the file path — do not re-print \
25
+ code blocks that the user can see in tool results.
26
+ - Structure complex answers with headings and bullet points.
27
+ - If you encounter something unexpected that changes the scope, \
28
+ explain the issue and propose options before proceeding.
29
+ `;
30
+ const SUB_AGENT_RULES = `
31
+
32
+ ## Sub-agent delegation rules
33
+
34
+ ### Concurrency limit
35
+
36
+ Do NOT spawn more than 3 sub-agents concurrently. If you need to \
37
+ explore more than 3 areas, batch them: launch the first 3, wait for \
38
+ results, then launch more if needed. The runtime enforces this limit — \
39
+ excess sub-agents will be rejected.
40
+
41
+ ### When NOT to delegate
42
+
43
+ - **Reading files.** Use the \`read\` tool yourself. You need raw file \
44
+ contents in your own context to reason about them accurately.
45
+ - **Single-step lookups.** Use \`grep\`, \`glob\`, \`search\`, or \`read\` \
46
+ directly for simple searches across 1-2 files. Only delegate when \
47
+ the task requires multi-step exploration.
48
+ - **Data you will process yourself.** If you need the output in your \
49
+ own context (e.g., to answer a question, write code, compare files), \
50
+ do the work directly — do not delegate it.
51
+ - **Small tasks (fewer than 3 steps).** The overhead of spawning a \
52
+ sub-agent outweighs the benefit for trivial operations.
53
+
54
+ ### When TO delegate
55
+
56
+ - Multi-step, independent tasks that produce a deliverable (analysis, \
57
+ synthesis, generated content) you will incorporate into your response.
58
+ - Parallel exploration of genuinely different areas of a codebase or \
59
+ knowledge base when context isolation helps.
60
+ - Tasks that benefit from a separate context window (e.g., long \
61
+ document summarization that would crowd your own context).
62
+
63
+ ### Delegation best practices
64
+
65
+ - When delegating, specify the **deliverable** you need — not \
66
+ "read these files and give me the contents."
67
+ - You MUST reference and synthesize sub-agent results in your \
68
+ response. If you spawn a sub-agent, its output must visibly \
69
+ influence your answer.
70
+ - Each sub-agent consumes tokens and time. Prefer doing work \
71
+ directly over delegating. Only delegate when context isolation \
72
+ or parallelism genuinely helps the user.
73
+ `;
74
+ /**
75
+ * Assemble the full system prompt from base instructions and contextual
76
+ * sections. Pure function with no I/O.
77
+ */
78
+ export function buildEnhancedSystemPrompt(input) {
79
+ let prompt = input.instructions;
80
+ const workspaceSection = buildWorkspacePromptSection(input.provisionResults, input.containerRoot);
81
+ if (workspaceSection) {
82
+ prompt += workspaceSection;
83
+ }
84
+ if (input.skillsPromptSection) {
85
+ prompt += input.skillsPromptSection;
86
+ }
87
+ if (input.workspaceFileRefs.length > 0) {
88
+ const refSection = buildReferencedFilesSection(input.workspaceFileRefs, input.workspaceRoot);
89
+ if (refSection) {
90
+ prompt += refSection;
91
+ }
92
+ }
93
+ if (input.injectedFiles.length > 0) {
94
+ prompt += buildInjectedFilesSection(input.injectedFiles);
95
+ }
96
+ prompt += RESPONSE_RULES;
97
+ prompt += SUB_AGENT_RULES;
98
+ return prompt;
99
+ }
100
+ function buildWorkspacePromptSection(provisionResults, containerRoot) {
101
+ if (provisionResults.length === 0)
102
+ return "";
103
+ if (provisionResults.length === 1) {
104
+ return buildSingleWorkspaceSection(provisionResults[0]);
105
+ }
106
+ return buildMultiWorkspaceSection(provisionResults, containerRoot);
107
+ }
108
+ function buildSingleWorkspaceSection(result) {
109
+ if (!result.workspaceDescription)
110
+ return "";
111
+ let section = "\n\n## Workspace\n\n" + result.workspaceDescription;
112
+ if (result.fileTree) {
113
+ section += "\n\n" + result.fileTree;
114
+ }
115
+ return section;
116
+ }
117
+ function buildMultiWorkspaceSection(results, containerRoot) {
118
+ const firstLabel = results[0].entryName || "entry-1";
119
+ let section = `\n\n## Workspace\n\n` +
120
+ `This session has ${results.length} workspace entries.\n\n` +
121
+ `**Path resolution**: All tools resolve paths relative to the ` +
122
+ `workspace root. Use entry-relative paths ` +
123
+ `(e.g., \`${firstLabel}/src/main.py\`). ` +
124
+ `Do not use absolute filesystem paths.\n`;
125
+ for (let idx = 0; idx < results.length; idx++) {
126
+ const result = results[idx];
127
+ const label = result.entryName || `entry-${idx + 1}`;
128
+ const relPath = workspaceRelativePath(result.rootDir, containerRoot);
129
+ section += `\n### ${label} (\`${relPath}\`)\n\n`;
130
+ section += formatEntryDescription(result);
131
+ if (result.fileTree) {
132
+ section += "\n\n" + result.fileTree;
133
+ }
134
+ }
135
+ return section;
136
+ }
137
+ function workspaceRelativePath(rootDir, containerRoot) {
138
+ if (!containerRoot)
139
+ return rootDir;
140
+ try {
141
+ const rel = relative(containerRoot, rootDir);
142
+ if (rel.startsWith(".."))
143
+ return rootDir;
144
+ return rel;
145
+ }
146
+ catch {
147
+ return rootDir;
148
+ }
149
+ }
150
+ function formatEntryDescription(result) {
151
+ const name = result.entryName || "this entry";
152
+ if (result.sourceType === SourceType.LOCAL_PATH) {
153
+ return (`Workspace entry **${name}** is the user's project directory ` +
154
+ `at \`${result.rootDir}\`.\n` +
155
+ "You are operating directly on the user's files — changes are " +
156
+ "immediate and persistent. Use git to track and verify your changes.");
157
+ }
158
+ if (result.sourceType === SourceType.GIT_REPO && result.gitMetadata) {
159
+ const meta = result.gitMetadata;
160
+ const shortSha = meta.baseCommit.length >= 7
161
+ ? meta.baseCommit.slice(0, 7)
162
+ : meta.baseCommit;
163
+ return (`Workspace entry **${name}** was initialized from ` +
164
+ `${meta.repoUrl} (branch: ${meta.branch}, commit: ${shortSha}).\n` +
165
+ "Changes you make will be captured as artifacts when execution completes.");
166
+ }
167
+ if (result.sourceType === SourceType.EMPTY) {
168
+ return (`Workspace entry **${name}** is an empty workspace.\n` +
169
+ "Create files and directories as needed for your task.");
170
+ }
171
+ return result.workspaceDescription;
172
+ }
173
+ function buildReferencedFilesSection(workspaceFileRefs, _workspaceRoot) {
174
+ if (workspaceFileRefs.length === 0)
175
+ return "";
176
+ let section = "\n\n## Referenced Files\n\n" +
177
+ "The user has highlighted the following workspace paths for your " +
178
+ "attention. Use `read` to access file contents.\n\n";
179
+ for (const refPath of workspaceFileRefs) {
180
+ section += `- \`${refPath}\`\n`;
181
+ }
182
+ return section;
183
+ }
184
+ function buildInjectedFilesSection(files) {
185
+ let section = "\n\n## Input Files\n\n";
186
+ section +=
187
+ "The following files have been provided as read-only reference " +
188
+ "material for your task. They live under `.stigmer/inputs/` and " +
189
+ "are NOT part of the project source tree.\n\n" +
190
+ "Read them using the `read` tool when you need their contents. " +
191
+ "Do NOT echo, reprint, or summarize file contents in your response " +
192
+ "-- they are reference material, not output. " +
193
+ "Do NOT modify or delete these files.\n\n";
194
+ for (const f of files) {
195
+ const sizeInfo = f.size != null ? ` (${f.size} bytes)` : "";
196
+ section += `- \`${f.path}\`${sizeInfo}\n`;
197
+ }
198
+ return section;
199
+ }
200
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Execution setup pipeline for the deep agent activity.
3
+ *
4
+ * Hydrates the execution from the database, resolves the full resource
5
+ * chain (session -> agentInstance -> agent), provisions workspace, loads
6
+ * MCP servers / environment, creates the LangGraph agent graph with the
7
+ * full middleware stack, and returns a SetupResult containing everything
8
+ * the streaming phase needs.
9
+ */
10
+ type AgentGraph = any;
11
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
12
+ import type { Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
13
+ import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
14
+ import type { Config } from "../../config.js";
15
+ import type { StigmerClient } from "../../client/stigmer-client.js";
16
+ import { type McpConnectionResult } from "../../shared/mcp-manager.js";
17
+ import type { WorkspaceBackend, ProvisionResult } from "../../shared/workspace/types.js";
18
+ import type { GracefulStopMiddleware } from "../../middleware/index.js";
19
+ import { type ArtifactStorage } from "../../shared/artifact-storage.js";
20
+ import { type MergedToolPolicy } from "../../shared/approval-policy.js";
21
+ export interface SetupResult {
22
+ readonly agentGraph: AgentGraph;
23
+ readonly langgraphConfig: Record<string, unknown>;
24
+ readonly langgraphInput: Record<string, unknown>;
25
+ readonly execution: AgentExecution;
26
+ readonly agent: Agent;
27
+ readonly session: Session;
28
+ readonly workspaceBackend: WorkspaceBackend;
29
+ readonly mcpConnection: McpConnectionResult | null;
30
+ readonly mergedEnvVars: Record<string, string>;
31
+ readonly secretKeys: ReadonlySet<string>;
32
+ readonly modelName: string;
33
+ readonly gracefulStop: GracefulStopMiddleware;
34
+ readonly artifactStorage: ArtifactStorage;
35
+ readonly provisionResults: readonly ProvisionResult[];
36
+ readonly approvalPolicies: ReadonlyMap<string, MergedToolPolicy>;
37
+ readonly toolServerMap: ReadonlyMap<string, string>;
38
+ readonly autoApproveAll: boolean;
39
+ readonly hasStructuredOutput: boolean;
40
+ readonly streamVersion: "v2" | "v3";
41
+ }
42
+ export interface SetupDependencies {
43
+ config: Config;
44
+ client: StigmerClient;
45
+ executionId: string;
46
+ threadId: string;
47
+ }
48
+ /**
49
+ * Execute all setup phases and return resources for the streaming phase.
50
+ *
51
+ * On failure, partial resources (MCP connections, workspace backend) are
52
+ * cleaned up internally before re-throwing.
53
+ */
54
+ export declare function performSetup(deps: SetupDependencies): Promise<SetupResult>;
55
+ export {};
@@ -0,0 +1,411 @@
1
+ /**
2
+ * Execution setup pipeline for the deep agent activity.
3
+ *
4
+ * Hydrates the execution from the database, resolves the full resource
5
+ * chain (session -> agentInstance -> agent), provisions workspace, loads
6
+ * MCP servers / environment, creates the LangGraph agent graph with the
7
+ * full middleware stack, and returns a SetupResult containing everything
8
+ * the streaming phase needs.
9
+ */
10
+ import { createDeepAgent, FilesystemBackend } from "deepagents";
11
+ import { InteractionMode } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
12
+ import { ChatAnthropic } from "@langchain/anthropic";
13
+ import { ChatOpenAI } from "@langchain/openai";
14
+ import { createCheckpointer } from "../../shared/checkpointer/factory.js";
15
+ import { connectMcpServers } from "../../shared/mcp-manager.js";
16
+ import { resolveMcpServers } from "../../shared/mcp-resolver.js";
17
+ import { backfillMcpServersIfNeeded } from "../../shared/connect-backfill.js";
18
+ import { WorkspaceProvisioner } from "../../shared/workspace/provisioner.js";
19
+ import { LocalWorkspaceBackend } from "../../shared/workspace/local-backend.js";
20
+ import { ensurePlatformDir } from "../../shared/workspace/platform-dir.js";
21
+ import { reportSetupProgress } from "../../shared/status.js";
22
+ import { resolveEnvironment } from "./environment.js";
23
+ import { buildEnhancedSystemPrompt } from "./prompt-builder.js";
24
+ import { buildMiddlewareStack, createThinkTool } from "../../middleware/index.js";
25
+ import { getModelPricing, ensureLoaded as ensurePricingLoaded } from "../../shared/model-pricing.js";
26
+ import { getDefaultModel } from "../../shared/model-registry.js";
27
+ import { loadArtifactStorageConfig, createArtifactStorage, } from "../../shared/artifact-storage.js";
28
+ import { mergeApprovalPolicies, hasApproveAllDecision, } from "../../shared/approval-policy.js";
29
+ import { inferProvider, stripProviderPrefix, resolveProxyBaseUrl, buildProxyHeaders, } from "../../shared/llm-proxy.js";
30
+ import { mergeSkillRefs, fetchSkillsByRefs, writeSkills, generatePromptSection, generateAlsoAvailableSection, fetchSkillArtifacts, } from "../../shared/skill-writer.js";
31
+ import { filterSkills, SKILL_COUNT_THRESHOLD } from "../../shared/skill-relevance.js";
32
+ import { injectAttachments } from "./attachment-injector.js";
33
+ import { transformAndCompileSubagents } from "./subagent-transformer.js";
34
+ /**
35
+ * Execute all setup phases and return resources for the streaming phase.
36
+ *
37
+ * On failure, partial resources (MCP connections, workspace backend) are
38
+ * cleaned up internally before re-throwing.
39
+ */
40
+ export async function performSetup(deps) {
41
+ const { config, client, executionId, threadId } = deps;
42
+ let mcpConnection = null;
43
+ try {
44
+ // Step 1: Hydrate execution
45
+ await reportSetupProgress(client, executionId, "Fetching execution…");
46
+ const execution = await client.getExecution(executionId);
47
+ console.log(`[setup] Execution fetched: agent_id=${execution.spec?.agentId}`);
48
+ // Step 2: Resolve chain — execution → session → agentInstance → agent
49
+ await reportSetupProgress(client, executionId, "Resolving agent…");
50
+ const sessionId = execution.spec.sessionId;
51
+ if (!sessionId) {
52
+ throw new Error(`Session ID is required for execution ${executionId}. ` +
53
+ "Execution must have a valid session_id.");
54
+ }
55
+ const session = await client.getSession(sessionId);
56
+ const agentInstance = await client.getAgentInstance(session.spec.agentInstanceId);
57
+ const agent = await client.getAgent(agentInstance.spec.agentId);
58
+ const instructions = agent.spec.instructions || "You are a helpful AI assistant.";
59
+ console.log(`[setup] Chain resolved: session=${sessionId}, ` +
60
+ `agent=${agent.metadata.name}`);
61
+ // Step 3: Resolve model
62
+ const modelName = execution.spec.executionConfig?.modelName
63
+ || await getDefaultModel();
64
+ // Step 4: Create checkpointer
65
+ const checkpointer = await createCheckpointer({
66
+ type: config.checkpointerType,
67
+ proxyEndpoint: config.checkpointerProxyEndpoint ?? undefined,
68
+ authToken: config.stigmerToken ?? undefined,
69
+ });
70
+ // Step 5: Resolve environment
71
+ await reportSetupProgress(client, executionId, "Resolving environment…");
72
+ const envResult = await resolveEnvironment(client, executionId);
73
+ // Step 6: Create artifact storage
74
+ const artifactStorageConfig = loadArtifactStorageConfig(config);
75
+ const artifactStorage = createArtifactStorage(artifactStorageConfig);
76
+ // Step 7: Provision workspace
77
+ await reportSetupProgress(client, executionId, "Initializing workspace…");
78
+ const { workspaceBackend, provisionResults } = await provisionWorkspace(config, session, envResult.mergedEnvVars, sessionId);
79
+ // Step 7: Resolve and connect MCP servers
80
+ const mcpServerUsages = [
81
+ ...(agent.spec.mcpServerUsages || []),
82
+ ...(session.spec.mcpServerUsages || []),
83
+ ];
84
+ let resolvedMcpServers = null;
85
+ if (mcpServerUsages.length > 0) {
86
+ await reportSetupProgress(client, executionId, "Connecting tools…");
87
+ resolvedMcpServers = await resolveMcpServers(client, mcpServerUsages, envResult.mergedEnvVars);
88
+ const sessionOrg = session.metadata?.org ?? "";
89
+ const backfilledServers = await backfillMcpServersIfNeeded(client, resolvedMcpServers.resolvedServers, mcpServerUsages, envResult.mergedEnvVars, sessionOrg, undefined, envResult.secretKeys);
90
+ resolvedMcpServers = { resolvedServers: backfilledServers };
91
+ mcpConnection = await connectMcpServers(resolvedMcpServers.resolvedServers, { isCloudMode: config.cloudModeEnabled });
92
+ }
93
+ // Step 7b: Resolve and write skills
94
+ const skillRefs = mergeSkillRefs(agent.spec.skillRefs || [], session.spec.skillRefs || []);
95
+ let skillsPromptSection = "";
96
+ if (skillRefs.length > 0) {
97
+ await reportSetupProgress(client, executionId, "Loading skills…");
98
+ const skills = await fetchSkillsByRefs(client, skillRefs);
99
+ if (skills.length > 0) {
100
+ const artifacts = await fetchSkillArtifacts(client, skills);
101
+ const { paths: skillPaths } = await writeSkills(skills, workspaceBackend, artifacts);
102
+ const userMessage = execution.spec.message || "";
103
+ const skillNames = skills.map(s => s.spec?.name || s.metadata?.slug || "unknown");
104
+ const skillDescriptions = skills.map(s => s.spec?.description || "");
105
+ if (skills.length >= SKILL_COUNT_THRESHOLD) {
106
+ const filterResult = filterSkills(userMessage, skillNames, skillDescriptions);
107
+ if (filterResult.excludedNames.length > 0) {
108
+ const includedSkills = filterResult.includedIndices.map(i => skills[i]);
109
+ console.log(`[setup] Skill relevance filter: ${includedSkills.length} included, ` +
110
+ `${filterResult.excludedNames.length} excluded: ${filterResult.excludedNames.join(", ")}`);
111
+ skillsPromptSection =
112
+ generatePromptSection(includedSkills, skillPaths) +
113
+ generateAlsoAvailableSection(filterResult.excludedNames);
114
+ }
115
+ else {
116
+ skillsPromptSection = generatePromptSection(skills, skillPaths);
117
+ }
118
+ }
119
+ else {
120
+ skillsPromptSection = generatePromptSection(skills, skillPaths);
121
+ }
122
+ console.log(`[setup] Skills loaded: ${skills.length} total, prompt section ${skillsPromptSection.length} chars`);
123
+ }
124
+ }
125
+ // Step 7c: Inject attachments
126
+ const attachments = execution.spec.attachments || [];
127
+ const injectedFiles = await injectAttachments({
128
+ backend: workspaceBackend,
129
+ attachments,
130
+ storage: artifactStorage,
131
+ isLocalMode: config.mode === "local",
132
+ });
133
+ // Step 8: Build enhanced system prompt
134
+ const systemPrompt = buildEnhancedSystemPrompt({
135
+ instructions,
136
+ provisionResults,
137
+ containerRoot: workspaceBackend.rootDir,
138
+ skillsPromptSection,
139
+ workspaceFileRefs: execution.spec.workspaceFileRefs || [],
140
+ workspaceRoot: workspaceBackend.rootDir,
141
+ injectedFiles,
142
+ });
143
+ // Step 9: Construct the LLM model
144
+ const model = constructModel(modelName, config, executionId);
145
+ // Step 10: Build middleware stack
146
+ await ensurePricingLoaded();
147
+ const pricing = getModelPricing(modelName);
148
+ const execConfig = execution.spec.executionConfig;
149
+ const toolServerMap = new Map();
150
+ if (mcpConnection) {
151
+ for (const [serverName, serverTools] of Object.entries(mcpConnection.serverToolMap)) {
152
+ for (const t of serverTools) {
153
+ toolServerMap.set(t.name, serverName);
154
+ }
155
+ }
156
+ }
157
+ // Step 10b: Resolve approval policies
158
+ //
159
+ // Effective auto-approve is true when EITHER the execution was pre-armed via
160
+ // spec.auto_approve_all (CLI --auto-approve, API, CI/CD) OR a user chose
161
+ // APPROVE_ALL ("approve and don't ask again") at some gate earlier in this
162
+ // run. In both cases the gate is disabled for the rest of the execution, and
163
+ // the value propagates to mergeApprovalPolicies and (below) to sub-agents so
164
+ // they inherit it. See the ApprovalAction doc in enum.proto.
165
+ const autoApproveAll = (execution.spec.autoApproveAll ?? false) || hasApproveAllDecision(execution);
166
+ const agentOverrides = agent.spec.mcpServerUsages?.flatMap(u => u.toolApprovalOverrides ?? []) ?? [];
167
+ const approvalPolicies = mergeApprovalPolicies(resolvedMcpServers?.resolvedServers ?? [], agentOverrides, autoApproveAll);
168
+ const maxCostUsd = execConfig?.maxCostUsd ?? 0;
169
+ const { middleware, gracefulStop, costCap: costCapMiddleware } = buildMiddlewareStack({
170
+ loopDetection: {
171
+ historySize: 20,
172
+ consecutiveThreshold: 7,
173
+ totalThreshold: 20,
174
+ },
175
+ executionBudget: {
176
+ recursionLimit: execConfig?.maxToolRounds
177
+ ? execConfig.maxToolRounds * 6
178
+ : 6000,
179
+ warningPct: 80,
180
+ },
181
+ toolTruncation: {
182
+ maxChars: execConfig?.maxToolResultChars || 30_000,
183
+ },
184
+ costCap: maxCostUsd > 0 ? {
185
+ maxCostUsd,
186
+ inputPricePerMillion: pricing.inputPricePerMillion,
187
+ outputPricePerMillion: pricing.outputPricePerMillion,
188
+ cacheReadPricePerMillion: pricing.cacheReadPricePerMillion,
189
+ warningPct: 80,
190
+ } : null,
191
+ otelSpans: { toolServerMap },
192
+ approvalGate: !autoApproveAll ? {
193
+ policies: approvalPolicies,
194
+ autoApproveAll,
195
+ toolServerMap,
196
+ } : null,
197
+ });
198
+ // Step 11: Build tools list (MCP tools + think tool)
199
+ const tools = [
200
+ ...(mcpConnection?.tools ?? []),
201
+ createThinkTool(),
202
+ ];
203
+ // Step 11b: Transform and compile subagents
204
+ const subAgentProtos = agent.spec.subAgents || [];
205
+ let compiledSubagents;
206
+ if (subAgentProtos.length > 0 || workspaceBackend.rootDir) {
207
+ await reportSetupProgress(client, executionId, "Configuring sub-agents…");
208
+ const parentMcpServerToolMap = new Map();
209
+ if (mcpConnection) {
210
+ for (const [serverName, serverTools] of Object.entries(mcpConnection.serverToolMap)) {
211
+ parentMcpServerToolMap.set(serverName, serverTools);
212
+ }
213
+ }
214
+ compiledSubagents = await transformAndCompileSubagents({
215
+ subAgents: subAgentProtos,
216
+ parentMcpTools: mcpConnection?.tools ?? [],
217
+ parentMcpServerToolMap,
218
+ parentMcpUsages: mcpServerUsages,
219
+ skillClient: client,
220
+ workspaceBackend,
221
+ approvalPolicies,
222
+ autoApproveAll,
223
+ parentModelName: modelName,
224
+ parentHasNativeThinking: _modelHasNativeThinking(modelName),
225
+ costCap: costCapMiddleware ?? undefined,
226
+ modelFactory: (m) => constructModel(m, config, executionId),
227
+ });
228
+ }
229
+ // Step 12: Create the agent graph with middleware
230
+ await reportSetupProgress(client, executionId, "Creating agent…");
231
+ const outputSchema = execution.spec.executionConfig?.structuredOutputSchema;
232
+ let responseFormat;
233
+ if (outputSchema) {
234
+ responseFormat = jsonSchemaToZod(outputSchema);
235
+ }
236
+ // Plan mode is read-only. Deny every filesystem write operation at the tool
237
+ // level so write_file/edit_file/etc. cannot mutate the workspace — enforcing
238
+ // the InteractionMode.PLAN contract by construction, not by prompt. Rules are
239
+ // first-match-wins with a permissive default, so a single deny-all-writes
240
+ // rule is sufficient. (The Cursor harness enforces plan mode via its prompt
241
+ // prefix; the native harness enforces it here.)
242
+ const isPlanMode = execConfig?.interactionMode === InteractionMode.PLAN;
243
+ const planModePermissions = [
244
+ { operations: ["write"], paths: ["/**"], mode: "deny" },
245
+ ];
246
+ const agentGraph = await createDeepAgent({
247
+ model,
248
+ checkpointer: checkpointer,
249
+ backend: new FilesystemBackend({ rootDir: workspaceBackend.rootDir }),
250
+ systemPrompt,
251
+ tools,
252
+ middleware: middleware,
253
+ subagents: compiledSubagents ?? undefined,
254
+ ...(responseFormat ? { responseFormat } : {}),
255
+ ...(isPlanMode ? { permissions: planModePermissions } : {}),
256
+ });
257
+ // Step 11: Prepare invocation input and config
258
+ let userMessage = execution.spec.message;
259
+ if (outputSchema) {
260
+ userMessage += `\n\n---\nIMPORTANT: When your analysis is complete, provide your findings as structured output matching the required schema. The system will capture your structured response automatically.`;
261
+ }
262
+ const langgraphInput = {
263
+ messages: [{ role: "user", content: userMessage }],
264
+ };
265
+ const langgraphConfig = {
266
+ configurable: { thread_id: threadId },
267
+ };
268
+ const streamVersion = process.env.LANGGRAPH_STREAM_EVENTS_VERSION === "v2" ? "v2" : "v3";
269
+ console.log(`[setup] Complete: model=${modelName}, ` +
270
+ `tools=${tools.length}, middleware=${middleware.length}, ` +
271
+ `thread_id=${threadId}, streamVersion=${streamVersion}`);
272
+ return {
273
+ agentGraph,
274
+ langgraphConfig,
275
+ langgraphInput,
276
+ execution,
277
+ agent,
278
+ session,
279
+ workspaceBackend,
280
+ mcpConnection,
281
+ mergedEnvVars: envResult.mergedEnvVars,
282
+ secretKeys: envResult.secretKeys,
283
+ modelName,
284
+ gracefulStop,
285
+ artifactStorage,
286
+ provisionResults,
287
+ approvalPolicies,
288
+ toolServerMap,
289
+ autoApproveAll,
290
+ hasStructuredOutput: !!outputSchema,
291
+ streamVersion,
292
+ };
293
+ }
294
+ catch (err) {
295
+ if (mcpConnection) {
296
+ try {
297
+ await mcpConnection.client.close();
298
+ }
299
+ catch { /* swallow */ }
300
+ }
301
+ throw err;
302
+ }
303
+ }
304
+ /**
305
+ * Construct the appropriate chat model for the given model name.
306
+ *
307
+ * Provider inference uses name prefix heuristics (claude → Anthropic,
308
+ * gpt/o1/o3/o4 → OpenAI). In proxy mode, requests route through the
309
+ * stigmer-cloud LlmProxyController at provider-specific paths.
310
+ */
311
+ function constructModel(modelName, config, executionId) {
312
+ const provider = inferProvider(modelName);
313
+ const apiModelId = stripProviderPrefix(modelName);
314
+ const baseUrl = config.proxyEndpoint
315
+ ? resolveProxyBaseUrl(config.proxyEndpoint, provider)
316
+ : undefined;
317
+ const headers = config.proxyEndpoint && config.stigmerToken
318
+ ? buildProxyHeaders(config.stigmerToken, { executionId })
319
+ : undefined;
320
+ switch (provider) {
321
+ case "anthropic":
322
+ return buildAnthropicModel(apiModelId, baseUrl, headers, config);
323
+ case "openai":
324
+ return buildOpenAIModel(apiModelId, baseUrl, headers, config);
325
+ }
326
+ }
327
+ function buildAnthropicModel(model, baseUrl, headers, config) {
328
+ const apiKey = config.proxyEndpoint
329
+ ? (config.stigmerToken ?? "proxy-managed")
330
+ : (process.env.ANTHROPIC_API_KEY ?? "");
331
+ const requestTimeoutMs = parseInt(process.env.STIGMER_LLM_REQUEST_TIMEOUT_MS ?? "0") || undefined;
332
+ return new ChatAnthropic({
333
+ model,
334
+ apiKey,
335
+ temperature: 0,
336
+ ...(requestTimeoutMs ? { maxRetries: 0, timeout: requestTimeoutMs } : {}),
337
+ ...(baseUrl || headers
338
+ ? {
339
+ clientOptions: {
340
+ ...(baseUrl ? { baseURL: baseUrl } : {}),
341
+ ...(headers ? { defaultHeaders: headers } : {}),
342
+ },
343
+ }
344
+ : {}),
345
+ });
346
+ }
347
+ function buildOpenAIModel(model, baseUrl, headers, config) {
348
+ const apiKey = config.proxyEndpoint
349
+ ? (config.stigmerToken ?? "proxy-managed")
350
+ : (process.env.OPENAI_API_KEY ?? "");
351
+ const requestTimeoutMs = parseInt(process.env.STIGMER_LLM_REQUEST_TIMEOUT_MS ?? "0") || undefined;
352
+ return new ChatOpenAI({
353
+ model,
354
+ apiKey,
355
+ temperature: 0,
356
+ ...(requestTimeoutMs ? { maxRetries: 0, timeout: requestTimeoutMs } : {}),
357
+ ...(baseUrl || headers
358
+ ? {
359
+ configuration: {
360
+ ...(baseUrl ? { baseURL: baseUrl } : {}),
361
+ ...(headers ? { defaultHeaders: headers } : {}),
362
+ },
363
+ }
364
+ : {}),
365
+ });
366
+ }
367
+ /**
368
+ * Provision workspace from session workspace entries.
369
+ */
370
+ async function provisionWorkspace(config, session, mergedEnvVars, sessionId) {
371
+ const platformDir = await ensurePlatformDir(sessionId);
372
+ const workspaceBackend = new LocalWorkspaceBackend(config.workspaceRootDir, platformDir);
373
+ const workspaceEntries = session.spec.workspaceEntries || [];
374
+ if (workspaceEntries.length === 0) {
375
+ return { workspaceBackend, provisionResults: [] };
376
+ }
377
+ const provisioner = new WorkspaceProvisioner();
378
+ const provisionResults = await provisioner.provisionAll(workspaceEntries.map(entry => ({
379
+ name: entry.name,
380
+ source: entry.source,
381
+ })), workspaceBackend, mergedEnvVars, config.mode === "local", config.mode !== "local");
382
+ // If single entry changed root dir, create a new backend with the same platformDir
383
+ if (provisionResults.length === 1 &&
384
+ provisionResults[0].rootDir !== workspaceBackend.rootDir) {
385
+ return {
386
+ workspaceBackend: new LocalWorkspaceBackend(provisionResults[0].rootDir, platformDir),
387
+ provisionResults,
388
+ };
389
+ }
390
+ return { workspaceBackend, provisionResults };
391
+ }
392
+ // Shared JSON Schema → Zod converter (consolidated from 3 duplicate copies).
393
+ import { jsonSchemaToZod } from "../../shared/json-schema-to-zod.js";
394
+ /**
395
+ * Heuristic check for native extended thinking support.
396
+ * Models with thinking support don't need the explicit think tool.
397
+ */
398
+ function _modelHasNativeThinking(modelId) {
399
+ const lower = modelId.toLowerCase();
400
+ if (lower.includes("haiku"))
401
+ return false;
402
+ if (lower.includes("gpt-4o-mini"))
403
+ return false;
404
+ if (lower.includes("claude") && (lower.includes("sonnet") || lower.includes("opus")))
405
+ return true;
406
+ if (lower.includes("o1") || lower.includes("o3") || lower.includes("o4")) {
407
+ return true;
408
+ }
409
+ return false;
410
+ }
411
+ //# sourceMappingURL=setup.js.map