@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,150 @@
1
+ /**
2
+ * SubAgent transformation and compilation.
3
+ *
4
+ * Transforms proto SubAgent definitions into CompiledSubAgent instances for
5
+ * the deepagents JS runtime. Each compiled subagent is a pre-compiled graph
6
+ * with its own middleware stack (loop detection, budget, truncation, cost cap)
7
+ * and concurrency gating via SubAgentGate.
8
+ *
9
+ * Design decisions:
10
+ * - CompiledSubAgent format: full middleware control, no unwanted deepagents defaults
11
+ * - Filter parent MCP tools: no reconnection overhead, stateless servers are the norm
12
+ * - Prompt injection for skills: FilesystemBackend incompatible with native skills field
13
+ * - Built-in explore/shell subagents use prompt-based tool restriction
14
+ * - Invalid configurations are logged and skipped (graceful degradation)
15
+ * - Empty subagent list returns null (no subagents configured)
16
+ */
17
+ import type { CompiledSubAgent } from "deepagents";
18
+ import type { StructuredTool } from "@langchain/core/tools";
19
+ import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
20
+ import type { SubAgent, McpServerUsage } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/spec_pb";
21
+ import type { WorkspaceBackend } from "../../shared/workspace/types.js";
22
+ import type { StigmerClient } from "../../client/stigmer-client.js";
23
+ import type { MergedToolPolicy } from "../../shared/approval-policy.js";
24
+ import type { CostCapMiddleware } from "../../middleware/index.js";
25
+ export declare const BUILTIN_SUBAGENT_TYPES: ReadonlySet<string>;
26
+ /**
27
+ * Intermediate representation of a transformed subagent before compilation.
28
+ * Contains all the data needed to create a compiled agent graph.
29
+ */
30
+ export interface TransformedSubagent {
31
+ readonly name: string;
32
+ readonly description: string;
33
+ readonly systemPrompt: string;
34
+ readonly tools: StructuredTool[];
35
+ readonly model?: string;
36
+ }
37
+ /**
38
+ * Options for the full subagent transformation and compilation pipeline.
39
+ */
40
+ export interface SubagentTransformOptions {
41
+ readonly subAgents: readonly SubAgent[];
42
+ readonly parentMcpTools: readonly StructuredTool[];
43
+ readonly parentMcpServerToolMap: ReadonlyMap<string, readonly StructuredTool[]>;
44
+ readonly parentMcpUsages: readonly McpServerUsage[];
45
+ readonly skillClient: StigmerClient;
46
+ readonly workspaceBackend: WorkspaceBackend;
47
+ readonly approvalPolicies: ReadonlyMap<string, MergedToolPolicy>;
48
+ readonly autoApproveAll: boolean;
49
+ readonly parentModelName: string;
50
+ readonly parentHasNativeThinking: boolean;
51
+ readonly costCap?: CostCapMiddleware;
52
+ /**
53
+ * Builds a configured chat-model instance for a given model name. When
54
+ * provided, sub-agents are compiled with the same proxy-aware model client
55
+ * as the parent (base URL, auth headers, API key). When absent (unit tests),
56
+ * the model name string is passed to deepagents directly.
57
+ */
58
+ readonly modelFactory?: (modelName: string) => BaseChatModel;
59
+ }
60
+ /**
61
+ * Create built-in explore and shell subagent specifications.
62
+ *
63
+ * Built-in subagents receive:
64
+ * - The full deepagents built-in tool set (from FilesystemBackend) restricted via prompt
65
+ * - Purpose-built system prompts with explicit scope boundaries
66
+ * - No skills, no MCP tools, no parent prompt inheritance
67
+ *
68
+ * Returns an empty array if no workspace is configured (subagents need
69
+ * workspace tools to be useful).
70
+ */
71
+ export declare function createBuiltinSubagents(hasWorkspace: boolean): TransformedSubagent[];
72
+ /**
73
+ * Transform a single SubAgent proto into the intermediate representation.
74
+ *
75
+ * Handles: proto field extraction, model override validation, think tool
76
+ * injection, and response rules appending. MCP filtering and skill
77
+ * resolution are handled separately and composed by the caller.
78
+ *
79
+ * Returns null if the subagent should be skipped (e.g., invalid model override).
80
+ */
81
+ export declare function transformSingleSubagent(subAgent: SubAgent, opts: {
82
+ readonly parentMcpTools: readonly StructuredTool[];
83
+ readonly parentMcpServerToolMap: ReadonlyMap<string, readonly StructuredTool[]>;
84
+ readonly parentMcpUsages: readonly McpServerUsage[];
85
+ readonly parentHasNativeThinking: boolean;
86
+ readonly parentModelName: string;
87
+ }): Promise<TransformedSubagent | null>;
88
+ /**
89
+ * Filter parent MCP tools based on a subagent's McpAccess grants.
90
+ *
91
+ * Permission model:
92
+ * - Subagent can only access MCP servers explicitly listed in its mcpAccess
93
+ * - Tool names must be a subset of parent's enabled tools for that server
94
+ * - Empty enabledTools in McpAccess = inherit all parent tools for that server
95
+ * - Invalid slug or missing server → warn and skip
96
+ */
97
+ export declare function filterMcpToolsForSubagent(mcpAccess: readonly {
98
+ mcpServer: string;
99
+ enabledTools: readonly string[];
100
+ }[], parentMcpServerToolMap: ReadonlyMap<string, readonly StructuredTool[]>, parentMcpUsages: readonly McpServerUsage[]): StructuredTool[];
101
+ /**
102
+ * Collect all unique skill refs across all subagents for batch fetching.
103
+ *
104
+ * Deduplicates by slug to minimize gRPC calls. Returns an array of refs
105
+ * and the mapping from slug to original refs for distribution.
106
+ */
107
+ export declare function collectAllSkillRefs(subAgents: readonly SubAgent[]): {
108
+ slug: string;
109
+ ref: unknown;
110
+ }[];
111
+ /**
112
+ * Resolve skills for a single subagent and return the prompt section.
113
+ *
114
+ * Looks up each of the subagent's skill_refs in the pre-fetched skills
115
+ * collection and generates a prompt section containing activation
116
+ * instructions and file paths.
117
+ *
118
+ * Returns empty string if no skills match or if the subagent has no skill_refs.
119
+ */
120
+ export declare function resolveSubagentSkillPrompt(subAgent: SubAgent, skillsBySlug: ReadonlyMap<string, {
121
+ skill: unknown;
122
+ path: string;
123
+ }>): string;
124
+ /**
125
+ * Compile transformed subagent specifications into CompiledSubAgent instances.
126
+ *
127
+ * Each subagent gets:
128
+ * - Its own agent graph (via createDeepAgent with FilesystemBackend sharing the workspace)
129
+ * - Per-subagent middleware (loop detection, budget, truncation, cost cap view)
130
+ * - Concurrency gating via shared SubAgentGate
131
+ */
132
+ export declare function compileSubagents(transformed: readonly TransformedSubagent[], opts: {
133
+ readonly costCap?: CostCapMiddleware;
134
+ readonly parentModelName: string;
135
+ readonly workspaceRootDir: string;
136
+ readonly modelFactory?: (modelName: string) => BaseChatModel;
137
+ }): Promise<CompiledSubAgent[]>;
138
+ /**
139
+ * Transform proto SubAgents and compile into CompiledSubAgent instances.
140
+ *
141
+ * This is the main entry point called from setup.ts. It orchestrates:
142
+ * 1. Built-in subagent creation (explore + shell)
143
+ * 2. Per-subagent transformation (proto → TransformedSubagent)
144
+ * 3. MCP tool filtering per subagent
145
+ * 4. Skill resolution and prompt injection (Session 2)
146
+ * 5. Compilation with middleware + gate wrapping
147
+ *
148
+ * Returns null if no valid subagents after transformation.
149
+ */
150
+ export declare function transformAndCompileSubagents(options: SubagentTransformOptions): Promise<CompiledSubAgent[] | null>;
@@ -0,0 +1,450 @@
1
+ /**
2
+ * SubAgent transformation and compilation.
3
+ *
4
+ * Transforms proto SubAgent definitions into CompiledSubAgent instances for
5
+ * the deepagents JS runtime. Each compiled subagent is a pre-compiled graph
6
+ * with its own middleware stack (loop detection, budget, truncation, cost cap)
7
+ * and concurrency gating via SubAgentGate.
8
+ *
9
+ * Design decisions:
10
+ * - CompiledSubAgent format: full middleware control, no unwanted deepagents defaults
11
+ * - Filter parent MCP tools: no reconnection overhead, stateless servers are the norm
12
+ * - Prompt injection for skills: FilesystemBackend incompatible with native skills field
13
+ * - Built-in explore/shell subagents use prompt-based tool restriction
14
+ * - Invalid configurations are logged and skipped (graceful degradation)
15
+ * - Empty subagent list returns null (no subagents configured)
16
+ */
17
+ import { createDeepAgent, FilesystemBackend } from "deepagents";
18
+ import { createThinkTool } from "../../middleware/index.js";
19
+ import { buildSubAgentMiddleware } from "./subagent-wiring.js";
20
+ import { SubAgentGate } from "../../shared/subagent-gate.js";
21
+ import { isModelRegistered } from "../../shared/model-registry.js";
22
+ import { fetchSkillsByRefs, fetchSkillArtifacts, writeSkills, generatePromptSection, } from "../../shared/skill-writer.js";
23
+ // =========================================================================
24
+ // Built-in subagent types and prompts
25
+ // =========================================================================
26
+ export const BUILTIN_SUBAGENT_TYPES = new Set(["explore", "shell"]);
27
+ const EXPLORE_SYSTEM_PROMPT = `\
28
+ You are an exploration specialist. Your ONLY job is to explore codebases \
29
+ and report findings back to the parent agent.
30
+
31
+ STRICT BOUNDARIES:
32
+ - Use ONLY the read-only tools provided (read_file, list_dir, glob, grep, search)
33
+ - Do NOT write files, create files, or modify anything
34
+ - Do NOT execute shell commands
35
+ - Do NOT follow skill activation instructions from any context
36
+ - Do NOT create deliverables, scaffolds, or run initialization scripts
37
+ - Report your findings concisely — the parent agent has direct file access
38
+
39
+ Your task: {description}`;
40
+ const SHELL_SYSTEM_PROMPT = `\
41
+ You are a command execution specialist. Your ONLY job is to run shell \
42
+ commands and report the results back to the parent agent.
43
+
44
+ STRICT BOUNDARIES:
45
+ - Use ONLY the tools provided (execute, read_file, list_dir)
46
+ - Do NOT write or modify files directly — use shell commands if needed
47
+ - Do NOT search extensively or explore the codebase beyond what is needed
48
+ - Do NOT follow skill activation instructions from any context
49
+ - Do NOT create deliverables, scaffolds, or run initialization scripts
50
+ - Report command output concisely — the parent agent will interpret results
51
+
52
+ Your task: {description}`;
53
+ const BUILTIN_DESCRIPTIONS = new Map([
54
+ ["explore", ("Read-only codebase exploration specialist. Use for searching, " +
55
+ "reading files, finding patterns, and understanding code structure. " +
56
+ "Cannot write files or execute commands.")],
57
+ ["shell", ("Command execution specialist. Use for running shell commands, " +
58
+ "build operations, and system tasks. Has minimal file read access.")],
59
+ ]);
60
+ const BUILTIN_PROMPTS = new Map([
61
+ ["explore", EXPLORE_SYSTEM_PROMPT],
62
+ ["shell", SHELL_SYSTEM_PROMPT],
63
+ ]);
64
+ const RESPONSE_RULES = `\
65
+
66
+ ## Response rules
67
+
68
+ - After using the read tool, NEVER reprint, echo, list, or \
69
+ summarize file contents in your response. Tool results are \
70
+ already in your context. Proceed directly to the task.
71
+ - Your response is returned to the parent agent as a task \
72
+ result. Return concise findings and actionable results — not \
73
+ raw file contents. The parent agent has direct access to the \
74
+ same files.
75
+ - Do not begin responses with phrases like \
76
+ "Below is the complete content", \
77
+ "Here are the contents of the files", or similar.
78
+ `;
79
+ // =========================================================================
80
+ // Built-in subagent creation
81
+ // =========================================================================
82
+ /**
83
+ * Create built-in explore and shell subagent specifications.
84
+ *
85
+ * Built-in subagents receive:
86
+ * - The full deepagents built-in tool set (from FilesystemBackend) restricted via prompt
87
+ * - Purpose-built system prompts with explicit scope boundaries
88
+ * - No skills, no MCP tools, no parent prompt inheritance
89
+ *
90
+ * Returns an empty array if no workspace is configured (subagents need
91
+ * workspace tools to be useful).
92
+ */
93
+ export function createBuiltinSubagents(hasWorkspace) {
94
+ if (!hasWorkspace) {
95
+ return [];
96
+ }
97
+ const result = [];
98
+ for (const subagentType of ["explore", "shell"]) {
99
+ const prompt = BUILTIN_PROMPTS.get(subagentType);
100
+ const description = BUILTIN_DESCRIPTIONS.get(subagentType);
101
+ if (!prompt || !description)
102
+ continue;
103
+ result.push({
104
+ name: subagentType,
105
+ description,
106
+ systemPrompt: prompt + RESPONSE_RULES,
107
+ tools: [],
108
+ });
109
+ }
110
+ return result;
111
+ }
112
+ // =========================================================================
113
+ // Single subagent transformation
114
+ // =========================================================================
115
+ /**
116
+ * Transform a single SubAgent proto into the intermediate representation.
117
+ *
118
+ * Handles: proto field extraction, model override validation, think tool
119
+ * injection, and response rules appending. MCP filtering and skill
120
+ * resolution are handled separately and composed by the caller.
121
+ *
122
+ * Returns null if the subagent should be skipped (e.g., invalid model override).
123
+ */
124
+ export async function transformSingleSubagent(subAgent, opts) {
125
+ const name = subAgent.name;
126
+ const description = subAgent.description || `Sub-agent: ${name}`;
127
+ let systemPrompt = subAgent.instructions || "";
128
+ // Validate model_override if specified
129
+ let model;
130
+ if (subAgent.modelOverride) {
131
+ const isKnown = await isModelRegistered(subAgent.modelOverride);
132
+ if (!isKnown) {
133
+ console.error(`[subagent-transformer] Sub-agent '${name}' specifies model_override='${subAgent.modelOverride}' ` +
134
+ `which is not recognised by the ModelRegistry. Skipping this sub-agent. ` +
135
+ `Use a registered model name (e.g. 'claude-haiku-4.5') or a valid API model ID.`);
136
+ return null;
137
+ }
138
+ model = subAgent.modelOverride;
139
+ }
140
+ // Build tools list — start with filtered MCP tools (populated by caller)
141
+ const tools = [];
142
+ // Inject think tool when model lacks native extended thinking
143
+ const saHasNativeThinking = model
144
+ ? await _modelSupportsThinking(model)
145
+ : opts.parentHasNativeThinking;
146
+ if (!saHasNativeThinking) {
147
+ tools.push(createThinkTool());
148
+ }
149
+ // Append response rules
150
+ systemPrompt += RESPONSE_RULES;
151
+ return { name, description, systemPrompt, tools, model };
152
+ }
153
+ // =========================================================================
154
+ // MCP tool filtering
155
+ // =========================================================================
156
+ /**
157
+ * Filter parent MCP tools based on a subagent's McpAccess grants.
158
+ *
159
+ * Permission model:
160
+ * - Subagent can only access MCP servers explicitly listed in its mcpAccess
161
+ * - Tool names must be a subset of parent's enabled tools for that server
162
+ * - Empty enabledTools in McpAccess = inherit all parent tools for that server
163
+ * - Invalid slug or missing server → warn and skip
164
+ */
165
+ export function filterMcpToolsForSubagent(mcpAccess, parentMcpServerToolMap, parentMcpUsages) {
166
+ if (mcpAccess.length === 0)
167
+ return [];
168
+ const usageSlugs = new Set(parentMcpUsages
169
+ .map((u) => u.mcpServerRef?.slug)
170
+ .filter((s) => !!s));
171
+ const filtered = [];
172
+ for (const access of mcpAccess) {
173
+ const slug = access.mcpServer;
174
+ if (!slug) {
175
+ console.warn("[subagent-transformer] McpAccess has empty mcp_server slug, skipping");
176
+ continue;
177
+ }
178
+ if (!usageSlugs.has(slug)) {
179
+ console.warn(`[subagent-transformer] SubAgent references unknown MCP server '${slug}' ` +
180
+ "(not in parent's mcp_server_usages), skipping");
181
+ continue;
182
+ }
183
+ const serverTools = parentMcpServerToolMap.get(slug);
184
+ if (!serverTools || serverTools.length === 0) {
185
+ console.warn(`[subagent-transformer] MCP server '${slug}' has no tools in parent's connection, skipping`);
186
+ continue;
187
+ }
188
+ if (access.enabledTools.length === 0) {
189
+ filtered.push(...serverTools);
190
+ }
191
+ else {
192
+ const allowedNames = new Set(access.enabledTools);
193
+ for (const tool of serverTools) {
194
+ if (allowedNames.has(tool.name)) {
195
+ filtered.push(tool);
196
+ }
197
+ else if (allowedNames.has(tool.name)) {
198
+ // already included
199
+ }
200
+ }
201
+ const parentToolNames = new Set(serverTools.map((t) => t.name));
202
+ for (const requestedTool of access.enabledTools) {
203
+ if (!parentToolNames.has(requestedTool)) {
204
+ console.warn(`[subagent-transformer] SubAgent requests tool '${requestedTool}' from server '${slug}' ` +
205
+ "but it's not in parent's enabled tools, skipping tool");
206
+ }
207
+ }
208
+ }
209
+ }
210
+ return filtered;
211
+ }
212
+ // =========================================================================
213
+ // Skill resolution for subagents
214
+ // =========================================================================
215
+ /**
216
+ * Collect all unique skill refs across all subagents for batch fetching.
217
+ *
218
+ * Deduplicates by slug to minimize gRPC calls. Returns an array of refs
219
+ * and the mapping from slug to original refs for distribution.
220
+ */
221
+ export function collectAllSkillRefs(subAgents) {
222
+ const seen = new Set();
223
+ const unique = [];
224
+ for (const sa of subAgents) {
225
+ for (const ref of sa.skillRefs) {
226
+ const slug = ref.slug;
227
+ if (slug && !seen.has(slug)) {
228
+ seen.add(slug);
229
+ unique.push({ slug, ref });
230
+ }
231
+ }
232
+ }
233
+ return unique;
234
+ }
235
+ /**
236
+ * Resolve skills for a single subagent and return the prompt section.
237
+ *
238
+ * Looks up each of the subagent's skill_refs in the pre-fetched skills
239
+ * collection and generates a prompt section containing activation
240
+ * instructions and file paths.
241
+ *
242
+ * Returns empty string if no skills match or if the subagent has no skill_refs.
243
+ */
244
+ export function resolveSubagentSkillPrompt(subAgent, skillsBySlug) {
245
+ if (subAgent.skillRefs.length === 0)
246
+ return "";
247
+ const matchedSkills = [];
248
+ const matchedPaths = new Map();
249
+ for (const ref of subAgent.skillRefs) {
250
+ const slug = ref.slug;
251
+ if (!slug)
252
+ continue;
253
+ const entry = skillsBySlug.get(slug);
254
+ if (entry) {
255
+ matchedSkills.push(entry.skill);
256
+ const id = entry.skill.metadata?.id;
257
+ if (id)
258
+ matchedPaths.set(id, entry.path);
259
+ }
260
+ }
261
+ if (matchedSkills.length === 0)
262
+ return "";
263
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
264
+ return generatePromptSection(matchedSkills, matchedPaths);
265
+ }
266
+ // =========================================================================
267
+ // Compilation pipeline
268
+ // =========================================================================
269
+ /**
270
+ * Compile transformed subagent specifications into CompiledSubAgent instances.
271
+ *
272
+ * Each subagent gets:
273
+ * - Its own agent graph (via createDeepAgent with FilesystemBackend sharing the workspace)
274
+ * - Per-subagent middleware (loop detection, budget, truncation, cost cap view)
275
+ * - Concurrency gating via shared SubAgentGate
276
+ */
277
+ export async function compileSubagents(transformed, opts) {
278
+ if (transformed.length === 0)
279
+ return [];
280
+ const gate = new SubAgentGate();
281
+ const compiled = [];
282
+ for (const spec of transformed) {
283
+ try {
284
+ const middleware = buildSubAgentMiddleware({
285
+ costCap: opts.costCap,
286
+ });
287
+ const modelName = spec.model ?? opts.parentModelName;
288
+ // Use a configured model instance (proxy base URL + auth) when a
289
+ // factory is supplied so sub-agent LLM calls route through the same
290
+ // proxy as the parent. Falling back to the bare name lets deepagents
291
+ // construct a default client (unit tests / no-proxy paths).
292
+ const model = opts.modelFactory ? opts.modelFactory(modelName) : modelName;
293
+ const agentGraph = await createDeepAgent({
294
+ model,
295
+ systemPrompt: spec.systemPrompt,
296
+ tools: spec.tools.length > 0 ? spec.tools : undefined,
297
+ middleware: middleware,
298
+ backend: new FilesystemBackend({ rootDir: opts.workspaceRootDir }),
299
+ generalPurposeAgent: false,
300
+ });
301
+ const gatedRunnable = gate.wrapRunnable(
302
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
+ agentGraph, spec.name);
304
+ compiled.push({
305
+ name: spec.name,
306
+ description: spec.description,
307
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
308
+ runnable: gatedRunnable,
309
+ });
310
+ console.log(`[subagent-transformer] Compiled sub-agent '${spec.name}' ` +
311
+ `(model=${modelName}, tools=${spec.tools.length})`);
312
+ }
313
+ catch (err) {
314
+ console.error(`[subagent-transformer] Failed to compile sub-agent '${spec.name}': ${err}`);
315
+ }
316
+ }
317
+ return compiled;
318
+ }
319
+ // =========================================================================
320
+ // Top-level orchestrator
321
+ // =========================================================================
322
+ /**
323
+ * Transform proto SubAgents and compile into CompiledSubAgent instances.
324
+ *
325
+ * This is the main entry point called from setup.ts. It orchestrates:
326
+ * 1. Built-in subagent creation (explore + shell)
327
+ * 2. Per-subagent transformation (proto → TransformedSubagent)
328
+ * 3. MCP tool filtering per subagent
329
+ * 4. Skill resolution and prompt injection (Session 2)
330
+ * 5. Compilation with middleware + gate wrapping
331
+ *
332
+ * Returns null if no valid subagents after transformation.
333
+ */
334
+ export async function transformAndCompileSubagents(options) {
335
+ const { subAgents, parentMcpTools, parentMcpServerToolMap, parentMcpUsages, skillClient, workspaceBackend, parentModelName, parentHasNativeThinking, costCap, modelFactory, } = options;
336
+ if (subAgents.length === 0 && !workspaceBackend.rootDir) {
337
+ return null;
338
+ }
339
+ console.log(`[subagent-transformer] Transforming ${subAgents.length} proto sub-agent(s)` +
340
+ (workspaceBackend.rootDir ? " + built-in types" : ""));
341
+ // Step 1: Create built-in subagents
342
+ const builtins = createBuiltinSubagents(!!workspaceBackend.rootDir);
343
+ // Step 1b: Batch fetch all skills referenced by subagents
344
+ const allSkillRefs = collectAllSkillRefs(subAgents);
345
+ const skillsBySlug = new Map();
346
+ if (allSkillRefs.length > 0) {
347
+ try {
348
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
349
+ const refs = allSkillRefs.map((r) => r.ref);
350
+ const skills = await fetchSkillsByRefs(skillClient, refs);
351
+ if (skills.length > 0) {
352
+ const artifacts = await fetchSkillArtifacts(skillClient, skills);
353
+ const { paths: skillPaths } = await writeSkills(skills, workspaceBackend, artifacts);
354
+ for (const skill of skills) {
355
+ const slug = skill.metadata?.slug;
356
+ const id = skill.metadata?.id;
357
+ if (slug && id) {
358
+ skillsBySlug.set(slug, { skill, path: skillPaths.get(id) ?? "" });
359
+ }
360
+ }
361
+ console.log(`[subagent-transformer] Fetched ${skills.length} skill(s) for subagents`);
362
+ }
363
+ }
364
+ catch (err) {
365
+ console.error(`[subagent-transformer] Failed to fetch skills for subagents: ${err}`);
366
+ }
367
+ }
368
+ // Step 2: Transform proto subagents
369
+ const transformed = [];
370
+ for (const subAgent of subAgents) {
371
+ if (BUILTIN_SUBAGENT_TYPES.has(subAgent.name)) {
372
+ console.warn(`[subagent-transformer] Sub-agent name '${subAgent.name}' conflicts with ` +
373
+ "built-in type. The proto definition will override the built-in.");
374
+ }
375
+ try {
376
+ const result = await transformSingleSubagent(subAgent, {
377
+ parentMcpTools,
378
+ parentMcpServerToolMap,
379
+ parentMcpUsages,
380
+ parentHasNativeThinking,
381
+ parentModelName,
382
+ });
383
+ if (result) {
384
+ // Apply MCP filtering for this subagent
385
+ const mcpTools = filterMcpToolsForSubagent(subAgent.mcpAccess, parentMcpServerToolMap, parentMcpUsages);
386
+ // Resolve skills prompt section for this subagent
387
+ const skillsSection = resolveSubagentSkillPrompt(subAgent, skillsBySlug);
388
+ const enhancedPrompt = skillsSection
389
+ ? result.systemPrompt.replace(RESPONSE_RULES, skillsSection + RESPONSE_RULES)
390
+ : result.systemPrompt;
391
+ transformed.push({
392
+ ...result,
393
+ systemPrompt: enhancedPrompt,
394
+ tools: [...mcpTools, ...result.tools],
395
+ });
396
+ }
397
+ }
398
+ catch (err) {
399
+ console.error(`[subagent-transformer] Failed to transform sub-agent '${subAgent.name}': ${err}`);
400
+ }
401
+ }
402
+ // Step 3: Merge built-ins with transformed (proto overrides take precedence)
403
+ const protoNames = new Set(transformed.map((t) => t.name));
404
+ const allSpecs = [
405
+ ...builtins.filter((b) => !protoNames.has(b.name)),
406
+ ...transformed,
407
+ ];
408
+ if (allSpecs.length === 0) {
409
+ console.warn("[subagent-transformer] No valid subagents after transformation");
410
+ return null;
411
+ }
412
+ // Step 4: Compile all subagents
413
+ const compiled = await compileSubagents(allSpecs, {
414
+ costCap,
415
+ parentModelName,
416
+ workspaceRootDir: workspaceBackend.rootDir,
417
+ modelFactory,
418
+ });
419
+ if (compiled.length === 0) {
420
+ console.warn("[subagent-transformer] No subagents compiled successfully");
421
+ return null;
422
+ }
423
+ console.log(`[subagent-transformer] Successfully compiled ${compiled.length} sub-agent(s)`);
424
+ return compiled;
425
+ }
426
+ // =========================================================================
427
+ // Private helpers
428
+ // =========================================================================
429
+ /**
430
+ * Check if a model supports native extended thinking.
431
+ *
432
+ * Heuristic: models with "claude" in the name that are NOT haiku-class
433
+ * support thinking. Models with "o1", "o3", "o4" support reasoning.
434
+ * This is a conservative heuristic — err on the side of injecting the
435
+ * think tool (it's harmless if the model already thinks natively).
436
+ */
437
+ async function _modelSupportsThinking(modelId) {
438
+ const lower = modelId.toLowerCase();
439
+ if (lower.includes("haiku"))
440
+ return false;
441
+ if (lower.includes("gpt-4o-mini"))
442
+ return false;
443
+ if (lower.includes("claude") && (lower.includes("sonnet") || lower.includes("opus")))
444
+ return true;
445
+ if (lower.includes("o1") || lower.includes("o3") || lower.includes("o4")) {
446
+ return true;
447
+ }
448
+ return false;
449
+ }
450
+ //# sourceMappingURL=subagent-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-transformer.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/subagent-transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Sub-agent middleware composition for ExecuteDeepAgent.
3
+ *
4
+ * Each sub-agent gets its own middleware stack with:
5
+ * - Fresh loop detection (independent cycle tracking)
6
+ * - Fresh tool truncation (same limits as parent)
7
+ * - Periodic execution budget (interval=30, max=4 advisories)
8
+ * - Shared cost cap view (parent's budget, no reset on sub-agent start)
9
+ *
10
+ * The sub-agent middleware stack does NOT include:
11
+ * - Graceful stop (parent handles STOP signal propagation)
12
+ * - OTel spans (parent's OTel context propagates automatically)
13
+ * - Error hints (applied at tool level, not sub-agent level)
14
+ * - Approval gate (sub-agent interrupts propagate to parent checkpoint)
15
+ */
16
+ import type { StigmerMiddleware, ToolTruncationConfig } from "../../middleware/types.js";
17
+ import type { CostCapMiddleware } from "../../middleware/index.js";
18
+ export interface SubAgentMiddlewareOptions {
19
+ readonly costCap?: CostCapMiddleware;
20
+ readonly toolTruncation?: Partial<ToolTruncationConfig>;
21
+ }
22
+ /**
23
+ * Build the middleware stack for a single sub-agent.
24
+ *
25
+ * Returns an ordered array matching the Python `compile_subagent` composition:
26
+ * loop detection → execution budget (periodic) → tool truncation → cost cap view.
27
+ */
28
+ export declare function buildSubAgentMiddleware(options?: SubAgentMiddlewareOptions): StigmerMiddleware[];