@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,67 @@
1
+ /**
2
+ * Tool result truncation middleware.
3
+ *
4
+ * Prevents any single tool result from consuming an excessive share of
5
+ * the LLM's context window. Applied uniformly to ALL tools via
6
+ * wrapToolCall. When a ToolMessage result exceeds maxChars, the content
7
+ * is prefix-truncated and a marker is appended telling the LLM to
8
+ * request specific sections.
9
+ *
10
+ * Default limit: 30,000 characters (~7,500 tokens).
11
+ */
12
+ import { ToolMessage } from "@langchain/core/messages";
13
+ const DEFAULT_MAX_CHARS = 30_000;
14
+ export function createToolTruncationMiddleware(config = {}) {
15
+ const maxChars = config.maxChars ?? DEFAULT_MAX_CHARS;
16
+ if (maxChars <= 0) {
17
+ throw new Error(`maxChars must be positive, got ${maxChars}`);
18
+ }
19
+ let truncationCount = 0;
20
+ let totalCharsTruncated = 0;
21
+ function buildMarker(originalChars) {
22
+ return (`\n\n[truncated — result was ${originalChars.toLocaleString()} chars, ` +
23
+ `exceeded ${maxChars.toLocaleString()} char limit. ` +
24
+ `Ask for specific sections or narrow your query.]`);
25
+ }
26
+ const middleware = {
27
+ name: "ToolTruncationMiddleware",
28
+ get truncationCount() { return truncationCount; },
29
+ get totalCharsTruncated() { return totalCharsTruncated; },
30
+ beforeAgent() {
31
+ truncationCount = 0;
32
+ totalCharsTruncated = 0;
33
+ },
34
+ async wrapToolCall(request, handler) {
35
+ const result = await handler(request);
36
+ if (!(result instanceof ToolMessage))
37
+ return result;
38
+ const content = result.content;
39
+ if (typeof content !== "string")
40
+ return result;
41
+ if (content.length <= maxChars)
42
+ return result;
43
+ const originalChars = content.length;
44
+ const charsTruncated = originalChars - maxChars;
45
+ const truncatedContent = content.slice(0, maxChars) + buildMarker(originalChars);
46
+ truncationCount++;
47
+ totalCharsTruncated += charsTruncated;
48
+ const toolName = request.toolCall.name;
49
+ console.warn(`[TRUNCATED] tool=${toolName} original_chars=${originalChars} ` +
50
+ `limit=${maxChars} chars_truncated=${charsTruncated}`);
51
+ config.onTruncation?.(toolName, charsTruncated);
52
+ return new ToolMessage({
53
+ content: truncatedContent,
54
+ tool_call_id: request.toolCall.id,
55
+ name: toolName,
56
+ });
57
+ },
58
+ afterAgent() {
59
+ if (truncationCount > 0) {
60
+ console.log(`[ToolTruncation] Summary: ${truncationCount} results truncated, ` +
61
+ `${totalCharsTruncated} total chars removed (limit=${maxChars})`);
62
+ }
63
+ },
64
+ };
65
+ return middleware;
66
+ }
67
+ //# sourceMappingURL=tool-truncation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-truncation.js","sourceRoot":"","sources":["../../src/middleware/tool-truncation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAOvD,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC,MAAM,UAAU,8BAA8B,CAC5C,SAAwC,EAAE;IAE1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACtD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,SAAS,WAAW,CAAC,aAAqB;QACxC,OAAO,CACL,+BAA+B,aAAa,CAAC,cAAc,EAAE,UAAU;YACvE,YAAY,QAAQ,CAAC,cAAc,EAAE,eAAe;YACpD,kDAAkD,CACnD,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAmG;QACjH,IAAI,EAAE,0BAA0B;QAEhC,IAAI,eAAe,KAAK,OAAO,eAAe,CAAC,CAAC,CAAC;QACjD,IAAI,mBAAmB,KAAK,OAAO,mBAAmB,CAAC,CAAC,CAAC;QAEzD,WAAW;YACT,eAAe,GAAG,CAAC,CAAC;YACpB,mBAAmB,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO;YACjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC;gBAAE,OAAO,MAAM,CAAC;YAEpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAC/C,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAE9C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YACrC,MAAM,cAAc,GAAG,aAAa,GAAG,QAAQ,CAAC;YAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;YAEjF,eAAe,EAAE,CAAC;YAClB,mBAAmB,IAAI,cAAc,CAAC;YAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvC,OAAO,CAAC,IAAI,CACV,oBAAoB,QAAQ,mBAAmB,aAAa,GAAG;gBAC/D,SAAS,QAAQ,oBAAoB,cAAc,EAAE,CACtD,CAAC;YAEF,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAEhD,OAAO,IAAI,WAAW,CAAC;gBACrB,OAAO,EAAE,gBAAgB;gBACzB,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACjC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,UAAU;YACR,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CACT,6BAA6B,eAAe,sBAAsB;oBAClE,GAAG,mBAAmB,+BAA+B,QAAQ,GAAG,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Shared configuration types for the middleware stack.
3
+ *
4
+ * Each middleware module reads its own slice of MiddlewareStackConfig.
5
+ * The factory in index.ts assembles the config from ExecutionConfig
6
+ * proto fields and passes it to buildMiddlewareStack().
7
+ */
8
+ import type { ToolMessage, SystemMessage, AIMessage } from "@langchain/core/messages";
9
+ import type { Command } from "@langchain/langgraph";
10
+ export type { ToolMessage, SystemMessage, AIMessage };
11
+ /**
12
+ * Minimal AgentMiddleware interface matching the langchain JS contract.
13
+ *
14
+ * The canonical type lives in langchain (nested under deepagents), but
15
+ * is not directly importable from our dependency graph. This structural
16
+ * type is wire-compatible — langchain uses structural typing, not
17
+ * nominal, so any object matching this shape is accepted as middleware.
18
+ */
19
+ export interface StigmerMiddleware {
20
+ readonly name: string;
21
+ beforeAgent?: (state: Record<string, unknown>, runtime: unknown) => unknown;
22
+ afterModel?: (state: Record<string, unknown>, runtime: unknown) => unknown;
23
+ wrapToolCall?: (request: ToolCallRequest, handler: (request: ToolCallRequest) => Promise<ToolMessage | Command> | ToolMessage | Command) => Promise<ToolMessage | Command> | ToolMessage | Command;
24
+ wrapModelCall?: (request: ModelCallRequest, handler: (request: ModelCallRequest) => Promise<AIMessage | Command> | AIMessage | Command) => Promise<AIMessage | Command> | AIMessage | Command;
25
+ afterAgent?: (state: Record<string, unknown>, runtime: unknown) => unknown;
26
+ }
27
+ /**
28
+ * Tool call request — the shape passed to wrapToolCall.
29
+ * Matches langchain ToolCallRequest structurally.
30
+ */
31
+ export interface ToolCallRequest {
32
+ readonly toolCall: {
33
+ readonly id: string;
34
+ readonly name: string;
35
+ readonly args: Record<string, unknown>;
36
+ };
37
+ readonly tool: unknown;
38
+ readonly state: Record<string, unknown> & {
39
+ messages?: unknown[];
40
+ };
41
+ readonly runtime: unknown;
42
+ }
43
+ /**
44
+ * Model call request — the shape passed to wrapModelCall.
45
+ * Matches langchain ModelRequest structurally.
46
+ */
47
+ export interface ModelCallRequest {
48
+ readonly model: unknown;
49
+ readonly messages: unknown[];
50
+ readonly systemPrompt?: string;
51
+ readonly systemMessage?: SystemMessage;
52
+ readonly tools?: unknown[];
53
+ readonly state: Record<string, unknown> & {
54
+ messages?: unknown[];
55
+ };
56
+ readonly runtime: unknown;
57
+ }
58
+ export interface LoopDetectionConfig {
59
+ readonly historySize: number;
60
+ readonly consecutiveThreshold: number;
61
+ readonly totalThreshold: number;
62
+ readonly enabled: boolean;
63
+ }
64
+ export interface ExecutionBudgetConfig {
65
+ readonly recursionLimit: number;
66
+ readonly warningPct: number;
67
+ readonly warningInterval: number | null;
68
+ readonly maxWarnings: number;
69
+ }
70
+ export interface ToolTruncationConfig {
71
+ readonly maxChars: number;
72
+ readonly onTruncation?: (toolName: string, charsTruncated: number) => void;
73
+ }
74
+ export interface CostCapConfig {
75
+ readonly maxCostUsd: number;
76
+ readonly inputPricePerMillion: number;
77
+ readonly outputPricePerMillion: number;
78
+ readonly cacheReadPricePerMillion: number;
79
+ readonly warningPct: number;
80
+ }
81
+ export interface OtelSpansConfig {
82
+ readonly toolServerMap: ReadonlyMap<string, string>;
83
+ }
84
+ export interface ApprovalGateConfig {
85
+ readonly policies: ReadonlyMap<string, import("../shared/approval-policy.js").MergedToolPolicy>;
86
+ readonly autoApproveAll: boolean;
87
+ readonly toolServerMap: ReadonlyMap<string, string>;
88
+ }
89
+ /**
90
+ * Top-level configuration for buildMiddlewareStack().
91
+ * All sections are optional — the factory applies sensible defaults.
92
+ */
93
+ export interface MiddlewareStackConfig {
94
+ readonly loopDetection?: Partial<LoopDetectionConfig>;
95
+ readonly executionBudget?: Partial<ExecutionBudgetConfig>;
96
+ readonly toolTruncation?: Partial<ToolTruncationConfig>;
97
+ readonly costCap?: CostCapConfig | null;
98
+ readonly otelSpans?: Partial<OtelSpansConfig>;
99
+ readonly approvalGate?: ApprovalGateConfig | null;
100
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared configuration types for the middleware stack.
3
+ *
4
+ * Each middleware module reads its own slice of MiddlewareStackConfig.
5
+ * The factory in index.ts assembles the config from ExecutionConfig
6
+ * proto fields and passes it to buildMiddlewareStack().
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/middleware/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,2 @@
1
+ export { type NotificationProvider, type NotificationRequest, type NotificationResult, registerProvider, getProvider, resetProviders, } from "./provider.js";
2
+ export { WebhookProvider } from "./webhook.js";
@@ -0,0 +1,6 @@
1
+ export { registerProvider, getProvider, resetProviders, } from "./provider.js";
2
+ export { WebhookProvider } from "./webhook.js";
3
+ import { registerProvider } from "./provider.js";
4
+ import { WebhookProvider } from "./webhook.js";
5
+ registerProvider(new WebhookProvider());
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notification/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,gBAAgB,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Notification provider registry.
3
+ *
4
+ * Channels are string identifiers (not an enum) for extensibility —
5
+ * new channels can be added without code changes beyond implementing
6
+ * the Provider interface and calling registerProvider().
7
+ */
8
+ export interface NotificationRequest {
9
+ readonly channel: string;
10
+ readonly recipients: readonly string[];
11
+ readonly subject: string;
12
+ readonly body: string;
13
+ readonly template?: string;
14
+ readonly metadata: Readonly<Record<string, string>>;
15
+ }
16
+ export interface NotificationResult {
17
+ readonly channel: string;
18
+ readonly recipients: readonly string[];
19
+ readonly delivered: boolean;
20
+ readonly delivered_at?: string;
21
+ readonly error?: string;
22
+ }
23
+ export interface NotificationProvider {
24
+ channel(): string;
25
+ send(request: NotificationRequest): Promise<NotificationResult>;
26
+ }
27
+ export declare function registerProvider(provider: NotificationProvider): void;
28
+ export declare function getProvider(channel: string): NotificationProvider;
29
+ export declare function resetProviders(): void;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Notification provider registry.
3
+ *
4
+ * Channels are string identifiers (not an enum) for extensibility —
5
+ * new channels can be added without code changes beyond implementing
6
+ * the Provider interface and calling registerProvider().
7
+ */
8
+ const providers = new Map();
9
+ export function registerProvider(provider) {
10
+ providers.set(provider.channel(), provider);
11
+ }
12
+ export function getProvider(channel) {
13
+ const provider = providers.get(channel);
14
+ if (!provider) {
15
+ const available = providers.size > 0
16
+ ? Array.from(providers.keys()).join(", ")
17
+ : "(none)";
18
+ throw new Error(`Notification channel '${channel}' is not implemented; available channels: ${available}`);
19
+ }
20
+ return provider;
21
+ }
22
+ export function resetProviders() {
23
+ providers.clear();
24
+ }
25
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/notification/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwBH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,QAA8B;IAC7D,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC,QAAQ,CAAC;QACb,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,6CAA6C,SAAS,EAAE,CACzF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Webhook notification provider — delivers notifications via HTTP POST.
3
+ *
4
+ * Each recipient is treated as a URL. The notification body is sent as
5
+ * a JSON payload: { subject, body, metadata }. Delivery is best-effort:
6
+ * HTTP errors or network failures produce a result with delivered=false
7
+ * rather than throwing, matching Go's non-fatal delivery semantics.
8
+ */
9
+ import type { NotificationProvider, NotificationRequest, NotificationResult } from "./provider.js";
10
+ export declare class WebhookProvider implements NotificationProvider {
11
+ channel(): string;
12
+ send(request: NotificationRequest): Promise<NotificationResult>;
13
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Webhook notification provider — delivers notifications via HTTP POST.
3
+ *
4
+ * Each recipient is treated as a URL. The notification body is sent as
5
+ * a JSON payload: { subject, body, metadata }. Delivery is best-effort:
6
+ * HTTP errors or network failures produce a result with delivered=false
7
+ * rather than throwing, matching Go's non-fatal delivery semantics.
8
+ */
9
+ const WEBHOOK_TIMEOUT_MS = 30_000;
10
+ export class WebhookProvider {
11
+ channel() {
12
+ return "webhook";
13
+ }
14
+ async send(request) {
15
+ const payload = JSON.stringify({
16
+ subject: request.subject,
17
+ body: request.body,
18
+ metadata: request.metadata,
19
+ });
20
+ for (const url of request.recipients) {
21
+ try {
22
+ const response = await fetch(url, {
23
+ method: "POST",
24
+ headers: { "Content-Type": "application/json" },
25
+ body: payload,
26
+ signal: AbortSignal.timeout(WEBHOOK_TIMEOUT_MS),
27
+ });
28
+ if (response.status >= 400) {
29
+ return {
30
+ channel: "webhook",
31
+ recipients: [...request.recipients],
32
+ delivered: false,
33
+ error: `Webhook ${url} returned status ${response.status}`,
34
+ };
35
+ }
36
+ }
37
+ catch (err) {
38
+ const message = err instanceof Error ? err.message : String(err);
39
+ return {
40
+ channel: "webhook",
41
+ recipients: [...request.recipients],
42
+ delivered: false,
43
+ error: `Webhook delivery to ${url} failed: ${message}`,
44
+ };
45
+ }
46
+ }
47
+ return {
48
+ channel: "webhook",
49
+ recipients: [...request.recipients],
50
+ delivered: true,
51
+ delivered_at: new Date().toISOString(),
52
+ };
53
+ }
54
+ }
55
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/notification/webhook.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,OAAO,eAAe;IAC1B,OAAO;QACL,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA4B;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;iBAChD,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAC3B,OAAO;wBACL,OAAO,EAAE,SAAS;wBAClB,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;wBACnC,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,WAAW,GAAG,oBAAoB,QAAQ,CAAC,MAAM,EAAE;qBAC3D,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO;oBACL,OAAO,EAAE,SAAS;oBAClB,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;oBACnC,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,uBAAuB,GAAG,YAAY,OAAO,EAAE;iBACvD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YACnC,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * OTel metric instrument registry for the unified runner.
3
+ *
4
+ * Matches Go workflow-runner's `pkg/otel/metrics.go` instrument names.
5
+ * All instruments are created lazily on first access. When no
6
+ * MeterProvider is configured, they are no-ops (OTel global fallback).
7
+ */
8
+ import type { Counter, Histogram, UpDownCounter } from "@opentelemetry/api";
9
+ export interface RunnerInstruments {
10
+ readonly executionCount: Counter;
11
+ readonly executionActive: UpDownCounter;
12
+ readonly activityDuration: Histogram;
13
+ readonly workflowTaskDuration: Histogram;
14
+ readonly workflowTaskCount: Counter;
15
+ readonly llmCallDuration: Histogram;
16
+ readonly llmCallCount: Counter;
17
+ readonly llmTokensInput: Counter;
18
+ readonly llmTokensOutput: Counter;
19
+ }
20
+ export declare function getInstruments(): Promise<RunnerInstruments>;
21
+ export declare function resetInstruments(): void;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * OTel metric instrument registry for the unified runner.
3
+ *
4
+ * Matches Go workflow-runner's `pkg/otel/metrics.go` instrument names.
5
+ * All instruments are created lazily on first access. When no
6
+ * MeterProvider is configured, they are no-ops (OTel global fallback).
7
+ */
8
+ const METER_NAME = "stigmer-runner";
9
+ let instruments = null;
10
+ export async function getInstruments() {
11
+ if (instruments)
12
+ return instruments;
13
+ const api = await import("@opentelemetry/api");
14
+ const meter = api.metrics.getMeter(METER_NAME);
15
+ instruments = {
16
+ executionCount: meter.createCounter("stigmer.execution.count", {
17
+ description: "Total number of workflow executions started",
18
+ }),
19
+ executionActive: meter.createUpDownCounter("stigmer.execution.active", {
20
+ description: "Currently active workflow executions",
21
+ }),
22
+ activityDuration: meter.createHistogram("stigmer.activity.duration", {
23
+ unit: "ms",
24
+ description: "Duration of Temporal activities in milliseconds",
25
+ }),
26
+ workflowTaskDuration: meter.createHistogram("stigmer.workflow.task.duration", {
27
+ unit: "ms",
28
+ description: "Duration of individual workflow tasks in milliseconds",
29
+ }),
30
+ workflowTaskCount: meter.createCounter("stigmer.workflow.task.count", {
31
+ description: "Total number of workflow tasks executed",
32
+ }),
33
+ llmCallDuration: meter.createHistogram("stigmer.llm.call.duration", {
34
+ unit: "ms",
35
+ description: "Duration of LLM API calls in milliseconds",
36
+ }),
37
+ llmCallCount: meter.createCounter("stigmer.llm.call.count", {
38
+ description: "Total number of LLM API calls",
39
+ }),
40
+ llmTokensInput: meter.createCounter("stigmer.llm.tokens.input", {
41
+ unit: "{token}",
42
+ description: "Total input tokens consumed across LLM calls",
43
+ }),
44
+ llmTokensOutput: meter.createCounter("stigmer.llm.tokens.output", {
45
+ unit: "{token}",
46
+ description: "Total output tokens produced across LLM calls",
47
+ }),
48
+ };
49
+ return instruments;
50
+ }
51
+ export function resetInstruments() {
52
+ instruments = null;
53
+ }
54
+ //# sourceMappingURL=otel-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-metrics.js","sourceRoot":"","sources":["../src/otel-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAcpC,IAAI,WAAW,GAA6B,IAAI,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE/C,WAAW,GAAG;QACZ,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE;YAC7D,WAAW,EAAE,6CAA6C;SAC3D,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,mBAAmB,CAAC,0BAA0B,EAAE;YACrE,WAAW,EAAE,sCAAsC;SACpD,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,2BAA2B,EAAE;YACnE,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,iDAAiD;SAC/D,CAAC;QACF,oBAAoB,EAAE,KAAK,CAAC,eAAe,CAAC,gCAAgC,EAAE;YAC5E,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,uDAAuD;SACrE,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,6BAA6B,EAAE;YACpE,WAAW,EAAE,yCAAyC;SACvD,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,2BAA2B,EAAE;YAClE,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,2CAA2C;SACzD,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,wBAAwB,EAAE;YAC1D,WAAW,EAAE,+BAA+B;SAC7C,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,0BAA0B,EAAE;YAC9D,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,8CAA8C;SAC5D,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,2BAA2B,EAAE;YAChE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,+CAA+C;SAC7D,CAAC;KACH,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC"}
package/dist/otel.d.ts ADDED
@@ -0,0 +1,57 @@
1
+ /**
2
+ * OpenTelemetry tracing and metrics initialization.
3
+ *
4
+ * Env-var-driven: reads OTEL_EXPORTER_OTLP_ENDPOINT and configures an
5
+ * OTLP/gRPC exporter with W3C TraceContext + Baggage propagation. When
6
+ * the env var is unset, returns null — zero overhead.
7
+ */
8
+ export declare function initTracing(serviceName: string): Promise<(() => Promise<void>) | null>;
9
+ export declare function initMetrics(serviceName: string): Promise<(() => Promise<void>) | null>;
10
+ export declare const SPAN_CURSOR_TURN = "stigmer.cursor.turn";
11
+ export declare const SPAN_DEEP_AGENT_RUN = "stigmer.deepagent.run";
12
+ export declare const SPAN_LLM_CALL = "stigmer.llm.call";
13
+ export declare const SPAN_LLM_EVAL = "stigmer.llm.eval";
14
+ export declare const SPAN_MCP_TOOL = "stigmer.mcp.tool_call";
15
+ export declare const SPAN_WORKFLOW_EXECUTE = "stigmer.workflow.execute";
16
+ export declare const SPAN_WORKFLOW_TASK = "stigmer.workflow.task";
17
+ export declare const ATTR_LLM_PROVIDER = "stigmer.llm.provider";
18
+ export declare const ATTR_LLM_MODEL = "stigmer.llm.model";
19
+ export declare const ATTR_LLM_PROXY_ACTIVE = "stigmer.llm.proxy_active";
20
+ export declare const ATTR_LLM_INPUT_TOKENS = "stigmer.llm.input_tokens";
21
+ export declare const ATTR_LLM_OUTPUT_TOKENS = "stigmer.llm.output_tokens";
22
+ export declare const ATTR_CURSOR_MODE = "stigmer.cursor.mode";
23
+ export declare const ATTR_CURSOR_MODEL = "stigmer.cursor.model";
24
+ export declare const ATTR_SESSION_ID = "stigmer.session.id";
25
+ export declare const ATTR_HARNESS = "stigmer.harness";
26
+ export declare const ATTR_MCP_TOOL_NAME = "stigmer.mcp.tool_name";
27
+ export declare const ATTR_MCP_SERVER_NAME = "stigmer.mcp.server_name";
28
+ export declare const ATTR_MCP_SERVER_ID = "stigmer.mcp.server_id";
29
+ export declare const ATTR_WORKFLOW_EXECUTION_ID = "stigmer.workflow.execution_id";
30
+ export declare const ATTR_WORKFLOW_NAME = "stigmer.workflow.name";
31
+ export declare const ATTR_TASK_NAME = "stigmer.workflow.task.name";
32
+ export declare const ATTR_TASK_KIND = "stigmer.workflow.task.kind";
33
+ export declare const BAGGAGE_EXECUTION_ID = "stigmer.execution_id";
34
+ export declare const BAGGAGE_SESSION_ID = "stigmer.session_id";
35
+ export declare const BAGGAGE_ORG_ID = "stigmer.org_id";
36
+ /**
37
+ * Start a cursor turn span. No-op when tracing is not initialized.
38
+ */
39
+ export declare function startCursorTurnSpan(attrs: {
40
+ model: string;
41
+ mode: string;
42
+ sessionId: string;
43
+ }): Promise<{
44
+ setTokens(input: number, output: number): void;
45
+ end(): void;
46
+ }>;
47
+ /**
48
+ * Record cursor turn metrics. No-op when metrics are not initialized.
49
+ */
50
+ export declare function recordTurnMetrics(opts: {
51
+ durationMs: number;
52
+ inputTokens: number;
53
+ outputTokens: number;
54
+ model: string;
55
+ mode: string;
56
+ }): Promise<void>;
57
+ export declare function setBaggage(items: Record<string, string>): Promise<void>;
package/dist/otel.js ADDED
@@ -0,0 +1,164 @@
1
+ /**
2
+ * OpenTelemetry tracing and metrics initialization.
3
+ *
4
+ * Env-var-driven: reads OTEL_EXPORTER_OTLP_ENDPOINT and configures an
5
+ * OTLP/gRPC exporter with W3C TraceContext + Baggage propagation. When
6
+ * the env var is unset, returns null — zero overhead.
7
+ */
8
+ export async function initTracing(serviceName) {
9
+ const endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
10
+ if (!endpoint) {
11
+ return null;
12
+ }
13
+ const { NodeTracerProvider } = await import("@opentelemetry/sdk-trace-node");
14
+ const { BatchSpanProcessor } = await import("@opentelemetry/sdk-trace-base");
15
+ const { OTLPTraceExporter } = await import("@opentelemetry/exporter-trace-otlp-grpc");
16
+ const { resourceFromAttributes } = await import("@opentelemetry/resources");
17
+ const { W3CTraceContextPropagator, CompositePropagator, W3CBaggagePropagator } = await import("@opentelemetry/core");
18
+ const otelApi = await import("@opentelemetry/api");
19
+ const resource = resourceFromAttributes({ "service.name": serviceName });
20
+ const exporter = new OTLPTraceExporter({ url: endpoint });
21
+ const provider = new NodeTracerProvider({
22
+ resource,
23
+ spanProcessors: [new BatchSpanProcessor(exporter)],
24
+ });
25
+ provider.register();
26
+ otelApi.propagation.setGlobalPropagator(new CompositePropagator({
27
+ propagators: [new W3CTraceContextPropagator(), new W3CBaggagePropagator()],
28
+ }));
29
+ console.log(`OTel tracing enabled (endpoint=${endpoint}, service=${serviceName})`);
30
+ return async () => {
31
+ await provider.shutdown();
32
+ };
33
+ }
34
+ export async function initMetrics(serviceName) {
35
+ const endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
36
+ if (!endpoint) {
37
+ return null;
38
+ }
39
+ const { MeterProvider, PeriodicExportingMetricReader } = await import("@opentelemetry/sdk-metrics");
40
+ const { OTLPMetricExporter } = await import("@opentelemetry/exporter-metrics-otlp-grpc");
41
+ const { resourceFromAttributes } = await import("@opentelemetry/resources");
42
+ const otelApi = await import("@opentelemetry/api");
43
+ const resource = resourceFromAttributes({ "service.name": serviceName });
44
+ const exporter = new OTLPMetricExporter({ url: endpoint });
45
+ const reader = new PeriodicExportingMetricReader({
46
+ exporter,
47
+ exportIntervalMillis: 30_000,
48
+ });
49
+ const provider = new MeterProvider({ resource, readers: [reader] });
50
+ otelApi.metrics.setGlobalMeterProvider(provider);
51
+ console.log(`OTel metrics enabled (endpoint=${endpoint}, service=${serviceName})`);
52
+ return async () => {
53
+ await provider.shutdown();
54
+ };
55
+ }
56
+ // Span names — shared across all Stigmer runners (Go, Python, TypeScript)
57
+ export const SPAN_CURSOR_TURN = "stigmer.cursor.turn";
58
+ export const SPAN_DEEP_AGENT_RUN = "stigmer.deepagent.run";
59
+ export const SPAN_LLM_CALL = "stigmer.llm.call";
60
+ export const SPAN_LLM_EVAL = "stigmer.llm.eval";
61
+ export const SPAN_MCP_TOOL = "stigmer.mcp.tool_call";
62
+ export const SPAN_WORKFLOW_EXECUTE = "stigmer.workflow.execute";
63
+ export const SPAN_WORKFLOW_TASK = "stigmer.workflow.task";
64
+ // Attribute keys — LLM
65
+ export const ATTR_LLM_PROVIDER = "stigmer.llm.provider";
66
+ export const ATTR_LLM_MODEL = "stigmer.llm.model";
67
+ export const ATTR_LLM_PROXY_ACTIVE = "stigmer.llm.proxy_active";
68
+ export const ATTR_LLM_INPUT_TOKENS = "stigmer.llm.input_tokens";
69
+ export const ATTR_LLM_OUTPUT_TOKENS = "stigmer.llm.output_tokens";
70
+ // Attribute keys — Cursor/harness
71
+ export const ATTR_CURSOR_MODE = "stigmer.cursor.mode";
72
+ export const ATTR_CURSOR_MODEL = "stigmer.cursor.model";
73
+ export const ATTR_SESSION_ID = "stigmer.session.id";
74
+ export const ATTR_HARNESS = "stigmer.harness";
75
+ // Attribute keys — MCP
76
+ export const ATTR_MCP_TOOL_NAME = "stigmer.mcp.tool_name";
77
+ export const ATTR_MCP_SERVER_NAME = "stigmer.mcp.server_name";
78
+ export const ATTR_MCP_SERVER_ID = "stigmer.mcp.server_id";
79
+ // Attribute keys — Workflow
80
+ export const ATTR_WORKFLOW_EXECUTION_ID = "stigmer.workflow.execution_id";
81
+ export const ATTR_WORKFLOW_NAME = "stigmer.workflow.name";
82
+ export const ATTR_TASK_NAME = "stigmer.workflow.task.name";
83
+ export const ATTR_TASK_KIND = "stigmer.workflow.task.kind";
84
+ // Baggage keys — propagated through W3C baggage headers
85
+ export const BAGGAGE_EXECUTION_ID = "stigmer.execution_id";
86
+ export const BAGGAGE_SESSION_ID = "stigmer.session_id";
87
+ export const BAGGAGE_ORG_ID = "stigmer.org_id";
88
+ /**
89
+ * Start a cursor turn span. No-op when tracing is not initialized.
90
+ */
91
+ export async function startCursorTurnSpan(attrs) {
92
+ const noop = { setTokens() { }, end() { } };
93
+ try {
94
+ const otelApi = await import("@opentelemetry/api");
95
+ const tracer = otelApi.trace.getTracer("stigmer-runner");
96
+ const span = tracer.startSpan(SPAN_CURSOR_TURN, {
97
+ attributes: {
98
+ [ATTR_CURSOR_MODEL]: attrs.model,
99
+ [ATTR_CURSOR_MODE]: attrs.mode,
100
+ [ATTR_SESSION_ID]: attrs.sessionId,
101
+ },
102
+ });
103
+ return {
104
+ setTokens(input, output) {
105
+ if (input)
106
+ span.setAttribute(ATTR_LLM_INPUT_TOKENS, input);
107
+ if (output)
108
+ span.setAttribute(ATTR_LLM_OUTPUT_TOKENS, output);
109
+ },
110
+ end() {
111
+ span.end();
112
+ },
113
+ };
114
+ }
115
+ catch {
116
+ return noop;
117
+ }
118
+ }
119
+ /**
120
+ * Record cursor turn metrics. No-op when metrics are not initialized.
121
+ */
122
+ export async function recordTurnMetrics(opts) {
123
+ try {
124
+ const otelApi = await import("@opentelemetry/api");
125
+ const meter = otelApi.metrics.getMeter("stigmer-runner");
126
+ const attrs = {
127
+ [ATTR_CURSOR_MODEL]: opts.model,
128
+ [ATTR_CURSOR_MODE]: opts.mode,
129
+ };
130
+ meter.createHistogram("stigmer.llm.call.duration", { unit: "ms" })
131
+ .record(opts.durationMs, attrs);
132
+ meter.createCounter("stigmer.llm.call.count")
133
+ .add(1, attrs);
134
+ if (opts.inputTokens) {
135
+ meter.createCounter("stigmer.llm.tokens.input", { unit: "{token}" })
136
+ .add(opts.inputTokens, attrs);
137
+ }
138
+ if (opts.outputTokens) {
139
+ meter.createCounter("stigmer.llm.tokens.output", { unit: "{token}" })
140
+ .add(opts.outputTokens, attrs);
141
+ }
142
+ }
143
+ catch {
144
+ // Metrics not initialized — silently skip.
145
+ }
146
+ }
147
+ export async function setBaggage(items) {
148
+ try {
149
+ const otelApi = await import("@opentelemetry/api");
150
+ const ctx = otelApi.context.active();
151
+ let bag = otelApi.propagation.getBaggage(ctx) ?? otelApi.propagation.createBaggage();
152
+ for (const [k, v] of Object.entries(items)) {
153
+ if (v) {
154
+ bag = bag.setEntry(k, { value: v });
155
+ }
156
+ }
157
+ const newCtx = otelApi.propagation.setBaggage(ctx, bag);
158
+ otelApi.context.with(newCtx, () => { });
159
+ }
160
+ catch {
161
+ // Tracing not initialized — silently skip.
162
+ }
163
+ }
164
+ //# sourceMappingURL=otel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.js","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"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"}