@mastra/code-sdk 0.0.0-aggregate-trace-20261015182851

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 (749) hide show
  1. package/LICENSE.md +32 -0
  2. package/README.md +284 -0
  3. package/dist/acp/agent.d.ts +48 -0
  4. package/dist/acp/agent.d.ts.map +1 -0
  5. package/dist/acp/agent.js +416 -0
  6. package/dist/acp/agent.js.map +1 -0
  7. package/dist/acp/errors.d.ts +3 -0
  8. package/dist/acp/errors.d.ts.map +1 -0
  9. package/dist/acp/errors.js +14 -0
  10. package/dist/acp/errors.js.map +1 -0
  11. package/dist/acp/event-mapper.d.ts +28 -0
  12. package/dist/acp/event-mapper.d.ts.map +1 -0
  13. package/dist/acp/event-mapper.js +279 -0
  14. package/dist/acp/event-mapper.js.map +1 -0
  15. package/dist/acp/index.d.ts +9 -0
  16. package/dist/acp/index.d.ts.map +1 -0
  17. package/dist/acp/index.js +24 -0
  18. package/dist/acp/index.js.map +1 -0
  19. package/dist/acp/runtime.d.ts +5 -0
  20. package/dist/acp/runtime.d.ts.map +1 -0
  21. package/dist/acp/runtime.js +91 -0
  22. package/dist/acp/runtime.js.map +1 -0
  23. package/dist/acp/server.d.ts +4 -0
  24. package/dist/acp/server.d.ts.map +1 -0
  25. package/dist/acp/server.js +38 -0
  26. package/dist/acp/server.js.map +1 -0
  27. package/dist/acp/skills.d.ts +6 -0
  28. package/dist/acp/skills.d.ts.map +1 -0
  29. package/dist/acp/skills.js +33 -0
  30. package/dist/acp/skills.js.map +1 -0
  31. package/dist/acp.d.ts +2 -0
  32. package/dist/acp.d.ts.map +1 -0
  33. package/dist/acp.js +2 -0
  34. package/dist/agent-connections/messaging-processor.d.ts +17 -0
  35. package/dist/agent-connections/messaging-processor.d.ts.map +1 -0
  36. package/dist/agent-connections/messaging-processor.js +134 -0
  37. package/dist/agent-connections/messaging-processor.js.map +1 -0
  38. package/dist/agent-connections/ownership.d.ts +24 -0
  39. package/dist/agent-connections/ownership.d.ts.map +1 -0
  40. package/dist/agent-connections/ownership.js +99 -0
  41. package/dist/agent-connections/ownership.js.map +1 -0
  42. package/dist/agent-connections/registry.d.ts +20 -0
  43. package/dist/agent-connections/registry.d.ts.map +1 -0
  44. package/dist/agent-connections/registry.js +170 -0
  45. package/dist/agent-connections/registry.js.map +1 -0
  46. package/dist/agent-connections/session-advertisement.d.ts +27 -0
  47. package/dist/agent-connections/session-advertisement.d.ts.map +1 -0
  48. package/dist/agent-connections/session-advertisement.js +89 -0
  49. package/dist/agent-connections/session-advertisement.js.map +1 -0
  50. package/dist/agent-connections/signal-provider.d.ts +141 -0
  51. package/dist/agent-connections/signal-provider.d.ts.map +1 -0
  52. package/dist/agent-connections/signal-provider.js +38 -0
  53. package/dist/agent-connections/signal-provider.js.map +1 -0
  54. package/dist/agent-connections/state-processor.d.ts +23 -0
  55. package/dist/agent-connections/state-processor.d.ts.map +1 -0
  56. package/dist/agent-connections/state-processor.js +273 -0
  57. package/dist/agent-connections/state-processor.js.map +1 -0
  58. package/dist/agent-connections/thread-state.d.ts +41 -0
  59. package/dist/agent-connections/thread-state.d.ts.map +1 -0
  60. package/dist/agent-connections/thread-state.js +160 -0
  61. package/dist/agent-connections/thread-state.js.map +1 -0
  62. package/dist/agent-connections/tools.d.ts +133 -0
  63. package/dist/agent-connections/tools.d.ts.map +1 -0
  64. package/dist/agent-connections/tools.js +552 -0
  65. package/dist/agent-connections/tools.js.map +1 -0
  66. package/dist/agent-connections/types.d.ts +99 -0
  67. package/dist/agent-connections/types.d.ts.map +1 -0
  68. package/dist/agent-connections/types.js +7 -0
  69. package/dist/agent-connections/types.js.map +1 -0
  70. package/dist/agent-connections/untrusted-text.d.ts +5 -0
  71. package/dist/agent-connections/untrusted-text.d.ts.map +1 -0
  72. package/dist/agent-connections/untrusted-text.js +22 -0
  73. package/dist/agent-connections/untrusted-text.js.map +1 -0
  74. package/dist/agents/background-completion-events.d.ts +16 -0
  75. package/dist/agents/background-completion-events.d.ts.map +1 -0
  76. package/dist/agents/background-completion-events.js +19 -0
  77. package/dist/agents/background-completion-events.js.map +1 -0
  78. package/dist/agents/background-completion.d.ts +9 -0
  79. package/dist/agents/background-completion.d.ts.map +1 -0
  80. package/dist/agents/background-completion.js +59 -0
  81. package/dist/agents/background-completion.js.map +1 -0
  82. package/dist/agents/context-audit.d.ts +84 -0
  83. package/dist/agents/context-audit.d.ts.map +1 -0
  84. package/dist/agents/context-audit.js +118 -0
  85. package/dist/agents/context-audit.js.map +1 -0
  86. package/dist/agents/credential-resolver.d.ts +67 -0
  87. package/dist/agents/credential-resolver.d.ts.map +1 -0
  88. package/dist/agents/credential-resolver.js +136 -0
  89. package/dist/agents/credential-resolver.js.map +1 -0
  90. package/dist/agents/custom-provider-source.d.ts +35 -0
  91. package/dist/agents/custom-provider-source.d.ts.map +1 -0
  92. package/dist/agents/custom-provider-source.js +25 -0
  93. package/dist/agents/custom-provider-source.js.map +1 -0
  94. package/dist/agents/instructions.d.ts +40 -0
  95. package/dist/agents/instructions.d.ts.map +1 -0
  96. package/dist/agents/instructions.js +63 -0
  97. package/dist/agents/instructions.js.map +1 -0
  98. package/dist/agents/mastracode-gateway.d.ts +76 -0
  99. package/dist/agents/mastracode-gateway.d.ts.map +1 -0
  100. package/dist/agents/mastracode-gateway.js +434 -0
  101. package/dist/agents/mastracode-gateway.js.map +1 -0
  102. package/dist/agents/memory.d.ts +39 -0
  103. package/dist/agents/memory.d.ts.map +1 -0
  104. package/dist/agents/memory.js +266 -0
  105. package/dist/agents/memory.js.map +1 -0
  106. package/dist/agents/model.d.ts +123 -0
  107. package/dist/agents/model.d.ts.map +1 -0
  108. package/dist/agents/model.js +295 -0
  109. package/dist/agents/model.js.map +1 -0
  110. package/dist/agents/modes/build.d.ts +12 -0
  111. package/dist/agents/modes/build.d.ts.map +1 -0
  112. package/dist/agents/modes/build.js +36 -0
  113. package/dist/agents/modes/build.js.map +1 -0
  114. package/dist/agents/modes/explore.d.ts +10 -0
  115. package/dist/agents/modes/explore.d.ts.map +1 -0
  116. package/dist/agents/modes/explore.js +28 -0
  117. package/dist/agents/modes/explore.js.map +1 -0
  118. package/dist/agents/modes/plan.d.ts +8 -0
  119. package/dist/agents/modes/plan.d.ts.map +1 -0
  120. package/dist/agents/modes/plan.js +46 -0
  121. package/dist/agents/modes/plan.js.map +1 -0
  122. package/dist/agents/prompts/agent-instructions.d.ts +99 -0
  123. package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
  124. package/dist/agents/prompts/agent-instructions.js +275 -0
  125. package/dist/agents/prompts/agent-instructions.js.map +1 -0
  126. package/dist/agents/prompts/build.d.ts +12 -0
  127. package/dist/agents/prompts/build.d.ts.map +1 -0
  128. package/dist/agents/prompts/build.js +76 -0
  129. package/dist/agents/prompts/build.js.map +1 -0
  130. package/dist/agents/prompts/fast.d.ts +5 -0
  131. package/dist/agents/prompts/fast.d.ts.map +1 -0
  132. package/dist/agents/prompts/fast.js +26 -0
  133. package/dist/agents/prompts/fast.js.map +1 -0
  134. package/dist/agents/prompts/index.d.ts +54 -0
  135. package/dist/agents/prompts/index.d.ts.map +1 -0
  136. package/dist/agents/prompts/index.js +127 -0
  137. package/dist/agents/prompts/index.js.map +1 -0
  138. package/dist/agents/prompts/model.d.ts +5 -0
  139. package/dist/agents/prompts/model.d.ts.map +1 -0
  140. package/dist/agents/prompts/model.js +23 -0
  141. package/dist/agents/prompts/model.js.map +1 -0
  142. package/dist/agents/prompts/plan.d.ts +8 -0
  143. package/dist/agents/prompts/plan.d.ts.map +1 -0
  144. package/dist/agents/prompts/plan.js +129 -0
  145. package/dist/agents/prompts/plan.js.map +1 -0
  146. package/dist/agents/prompts/tool-guidance.d.ts +18 -0
  147. package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
  148. package/dist/agents/prompts/tool-guidance.js +181 -0
  149. package/dist/agents/prompts/tool-guidance.js.map +1 -0
  150. package/dist/agents/sandbox-filesystem.d.ts +151 -0
  151. package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
  152. package/dist/agents/sandbox-filesystem.js +581 -0
  153. package/dist/agents/sandbox-filesystem.js.map +1 -0
  154. package/dist/agents/subagents/execute.d.ts +3 -0
  155. package/dist/agents/subagents/execute.d.ts.map +1 -0
  156. package/dist/agents/subagents/execute.js +27 -0
  157. package/dist/agents/subagents/execute.js.map +1 -0
  158. package/dist/agents/subagents/explore.d.ts +3 -0
  159. package/dist/agents/subagents/explore.d.ts.map +1 -0
  160. package/dist/agents/subagents/explore.js +18 -0
  161. package/dist/agents/subagents/explore.js.map +1 -0
  162. package/dist/agents/subagents/plan.d.ts +3 -0
  163. package/dist/agents/subagents/plan.d.ts.map +1 -0
  164. package/dist/agents/subagents/plan.js +18 -0
  165. package/dist/agents/subagents/plan.js.map +1 -0
  166. package/dist/agents/thread-caveman-state.d.ts +17 -0
  167. package/dist/agents/thread-caveman-state.d.ts.map +1 -0
  168. package/dist/agents/thread-caveman-state.js +107 -0
  169. package/dist/agents/thread-caveman-state.js.map +1 -0
  170. package/dist/agents/tool-availability.d.ts +12 -0
  171. package/dist/agents/tool-availability.d.ts.map +1 -0
  172. package/dist/agents/tool-availability.js +129 -0
  173. package/dist/agents/tool-availability.js.map +1 -0
  174. package/dist/agents/tools.d.ts +37 -0
  175. package/dist/agents/tools.d.ts.map +1 -0
  176. package/dist/agents/tools.js +131 -0
  177. package/dist/agents/tools.js.map +1 -0
  178. package/dist/agents/workflow-builder-agent.d.ts +2 -0
  179. package/dist/agents/workflow-builder-agent.d.ts.map +1 -0
  180. package/dist/agents/workflow-builder-agent.js +82 -0
  181. package/dist/agents/workflow-builder-agent.js.map +1 -0
  182. package/dist/agents/workspace.d.ts +33 -0
  183. package/dist/agents/workspace.d.ts.map +1 -0
  184. package/dist/agents/workspace.js +208 -0
  185. package/dist/agents/workspace.js.map +1 -0
  186. package/dist/analytics.d.ts +18 -0
  187. package/dist/analytics.d.ts.map +1 -0
  188. package/dist/analytics.js +162 -0
  189. package/dist/analytics.js.map +1 -0
  190. package/dist/auth/account-rotation-processor.d.ts +182 -0
  191. package/dist/auth/account-rotation-processor.d.ts.map +1 -0
  192. package/dist/auth/account-rotation-processor.js +609 -0
  193. package/dist/auth/account-rotation-processor.js.map +1 -0
  194. package/dist/auth/account-routing-context.d.ts +13 -0
  195. package/dist/auth/account-routing-context.d.ts.map +1 -0
  196. package/dist/auth/account-routing-context.js +41 -0
  197. package/dist/auth/account-routing-context.js.map +1 -0
  198. package/dist/auth/authorization-input.d.ts +16 -0
  199. package/dist/auth/authorization-input.d.ts.map +1 -0
  200. package/dist/auth/authorization-input.js +42 -0
  201. package/dist/auth/authorization-input.js.map +1 -0
  202. package/dist/auth/device-code.d.ts +93 -0
  203. package/dist/auth/device-code.d.ts.map +1 -0
  204. package/dist/auth/device-code.js +129 -0
  205. package/dist/auth/device-code.js.map +1 -0
  206. package/dist/auth/index.d.ts +13 -0
  207. package/dist/auth/index.d.ts.map +1 -0
  208. package/dist/auth/index.js +9 -0
  209. package/dist/auth/pkce.d.ts +13 -0
  210. package/dist/auth/pkce.d.ts.map +1 -0
  211. package/dist/auth/pkce.js +32 -0
  212. package/dist/auth/pkce.js.map +1 -0
  213. package/dist/auth/provider-auth-error.d.ts +12 -0
  214. package/dist/auth/provider-auth-error.d.ts.map +1 -0
  215. package/dist/auth/provider-auth-error.js +16 -0
  216. package/dist/auth/provider-auth-error.js.map +1 -0
  217. package/dist/auth/providers/anthropic.d.ts +40 -0
  218. package/dist/auth/providers/anthropic.d.ts.map +1 -0
  219. package/dist/auth/providers/anthropic.js +120 -0
  220. package/dist/auth/providers/anthropic.js.map +1 -0
  221. package/dist/auth/providers/github-copilot.d.ts +154 -0
  222. package/dist/auth/providers/github-copilot.d.ts.map +1 -0
  223. package/dist/auth/providers/github-copilot.js +362 -0
  224. package/dist/auth/providers/github-copilot.js.map +1 -0
  225. package/dist/auth/providers/kimi-coding.d.ts +38 -0
  226. package/dist/auth/providers/kimi-coding.d.ts.map +1 -0
  227. package/dist/auth/providers/kimi-coding.js +228 -0
  228. package/dist/auth/providers/kimi-coding.js.map +1 -0
  229. package/dist/auth/providers/openai-codex.d.ts +141 -0
  230. package/dist/auth/providers/openai-codex.d.ts.map +1 -0
  231. package/dist/auth/providers/openai-codex.js +533 -0
  232. package/dist/auth/providers/openai-codex.js.map +1 -0
  233. package/dist/auth/providers/xai.d.ts +64 -0
  234. package/dist/auth/providers/xai.d.ts.map +1 -0
  235. package/dist/auth/providers/xai.js +226 -0
  236. package/dist/auth/providers/xai.js.map +1 -0
  237. package/dist/auth/storage.d.ts +214 -0
  238. package/dist/auth/storage.d.ts.map +1 -0
  239. package/dist/auth/storage.js +774 -0
  240. package/dist/auth/storage.js.map +1 -0
  241. package/dist/auth/types.d.ts +164 -0
  242. package/dist/auth/types.d.ts.map +1 -0
  243. package/dist/auth/types.js +1 -0
  244. package/dist/clipboard/index.d.ts +26 -0
  245. package/dist/clipboard/index.d.ts.map +1 -0
  246. package/dist/clipboard/index.js +226 -0
  247. package/dist/clipboard/index.js.map +1 -0
  248. package/dist/constants.d.ts +12 -0
  249. package/dist/constants.d.ts.map +1 -0
  250. package/dist/constants.js +20 -0
  251. package/dist/constants.js.map +1 -0
  252. package/dist/error-classification.d.ts +10 -0
  253. package/dist/error-classification.d.ts.map +1 -0
  254. package/dist/error-classification.js +22 -0
  255. package/dist/error-classification.js.map +1 -0
  256. package/dist/evals/context-builder.d.ts +41 -0
  257. package/dist/evals/context-builder.d.ts.map +1 -0
  258. package/dist/evals/context-builder.js +161 -0
  259. package/dist/evals/context-builder.js.map +1 -0
  260. package/dist/evals/index.d.ts +4 -0
  261. package/dist/evals/index.d.ts.map +1 -0
  262. package/dist/evals/index.js +5 -0
  263. package/dist/evals/scorers/classify-command.d.ts +31 -0
  264. package/dist/evals/scorers/classify-command.d.ts.map +1 -0
  265. package/dist/evals/scorers/classify-command.js +73 -0
  266. package/dist/evals/scorers/classify-command.js.map +1 -0
  267. package/dist/evals/scorers/efficiency.d.ts +44 -0
  268. package/dist/evals/scorers/efficiency.d.ts.map +1 -0
  269. package/dist/evals/scorers/efficiency.js +259 -0
  270. package/dist/evals/scorers/efficiency.js.map +1 -0
  271. package/dist/evals/scorers/extract-tools.d.ts +25 -0
  272. package/dist/evals/scorers/extract-tools.d.ts.map +1 -0
  273. package/dist/evals/scorers/extract-tools.js +60 -0
  274. package/dist/evals/scorers/extract-tools.js.map +1 -0
  275. package/dist/evals/scorers/index.d.ts +3 -0
  276. package/dist/evals/scorers/index.d.ts.map +1 -0
  277. package/dist/evals/scorers/index.js +3 -0
  278. package/dist/evals/scorers/outcome.d.ts +49 -0
  279. package/dist/evals/scorers/outcome.d.ts.map +1 -0
  280. package/dist/evals/scorers/outcome.js +347 -0
  281. package/dist/evals/scorers/outcome.js.map +1 -0
  282. package/dist/experimental-agent.d.ts +11 -0
  283. package/dist/experimental-agent.d.ts.map +1 -0
  284. package/dist/experimental-agent.js +36 -0
  285. package/dist/experimental-agent.js.map +1 -0
  286. package/dist/goal-manager.d.ts +114 -0
  287. package/dist/goal-manager.d.ts.map +1 -0
  288. package/dist/goal-manager.js +354 -0
  289. package/dist/goal-manager.js.map +1 -0
  290. package/dist/goal-signal.d.ts +14 -0
  291. package/dist/goal-signal.d.ts.map +1 -0
  292. package/dist/goal-signal.js +17 -0
  293. package/dist/goal-signal.js.map +1 -0
  294. package/dist/headless/cli.d.ts +48 -0
  295. package/dist/headless/cli.d.ts.map +1 -0
  296. package/dist/headless/cli.js +239 -0
  297. package/dist/headless/cli.js.map +1 -0
  298. package/dist/headless/flags.d.ts +33 -0
  299. package/dist/headless/flags.d.ts.map +1 -0
  300. package/dist/headless/flags.js +203 -0
  301. package/dist/headless/flags.js.map +1 -0
  302. package/dist/headless/format.d.ts +39 -0
  303. package/dist/headless/format.d.ts.map +1 -0
  304. package/dist/headless/format.js +85 -0
  305. package/dist/headless/format.js.map +1 -0
  306. package/dist/headless/index.d.ts +25 -0
  307. package/dist/headless/index.d.ts.map +1 -0
  308. package/dist/headless/index.js +6 -0
  309. package/dist/headless/policy.d.ts +17 -0
  310. package/dist/headless/policy.d.ts.map +1 -0
  311. package/dist/headless/policy.js +42 -0
  312. package/dist/headless/policy.js.map +1 -0
  313. package/dist/headless/run-mc.d.ts +7 -0
  314. package/dist/headless/run-mc.d.ts.map +1 -0
  315. package/dist/headless/run-mc.js +408 -0
  316. package/dist/headless/run-mc.js.map +1 -0
  317. package/dist/headless/types.d.ts +174 -0
  318. package/dist/headless/types.d.ts.map +1 -0
  319. package/dist/headless/types.js +19 -0
  320. package/dist/headless/types.js.map +1 -0
  321. package/dist/hooks/config.d.ts +11 -0
  322. package/dist/hooks/config.d.ts.map +1 -0
  323. package/dist/hooks/config.js +80 -0
  324. package/dist/hooks/config.js.map +1 -0
  325. package/dist/hooks/executor.d.ts +13 -0
  326. package/dist/hooks/executor.d.ts.map +1 -0
  327. package/dist/hooks/executor.js +129 -0
  328. package/dist/hooks/executor.js.map +1 -0
  329. package/dist/hooks/index.d.ts +6 -0
  330. package/dist/hooks/index.d.ts.map +1 -0
  331. package/dist/hooks/index.js +5 -0
  332. package/dist/hooks/manager.d.ts +54 -0
  333. package/dist/hooks/manager.d.ts.map +1 -0
  334. package/dist/hooks/manager.js +241 -0
  335. package/dist/hooks/manager.js.map +1 -0
  336. package/dist/hooks/types.d.ts +172 -0
  337. package/dist/hooks/types.d.ts.map +1 -0
  338. package/dist/hooks/types.js +8 -0
  339. package/dist/hooks/types.js.map +1 -0
  340. package/dist/index.d.ts +463 -0
  341. package/dist/index.d.ts.map +1 -0
  342. package/dist/index.js +1305 -0
  343. package/dist/index.js.map +1 -0
  344. package/dist/ipc/ipc-reporter.d.ts +14 -0
  345. package/dist/ipc/ipc-reporter.d.ts.map +1 -0
  346. package/dist/ipc/ipc-reporter.js +21 -0
  347. package/dist/ipc/ipc-reporter.js.map +1 -0
  348. package/dist/knowledge-inspector.d.ts +123 -0
  349. package/dist/knowledge-inspector.d.ts.map +1 -0
  350. package/dist/knowledge-inspector.js +516 -0
  351. package/dist/knowledge-inspector.js.map +1 -0
  352. package/dist/knowledge-scope.d.ts +35 -0
  353. package/dist/knowledge-scope.d.ts.map +1 -0
  354. package/dist/knowledge-scope.js +47 -0
  355. package/dist/knowledge-scope.js.map +1 -0
  356. package/dist/lsp/client.d.ts +56 -0
  357. package/dist/lsp/client.d.ts.map +1 -0
  358. package/dist/lsp/client.js +251 -0
  359. package/dist/lsp/client.js.map +1 -0
  360. package/dist/lsp/index.d.ts +4 -0
  361. package/dist/lsp/index.d.ts.map +1 -0
  362. package/dist/lsp/index.js +4 -0
  363. package/dist/lsp/language.d.ts +9 -0
  364. package/dist/lsp/language.d.ts.map +1 -0
  365. package/dist/lsp/language.js +44 -0
  366. package/dist/lsp/language.js.map +1 -0
  367. package/dist/lsp/manager.d.ts +34 -0
  368. package/dist/lsp/manager.d.ts.map +1 -0
  369. package/dist/lsp/manager.js +82 -0
  370. package/dist/lsp/manager.js.map +1 -0
  371. package/dist/lsp/server.d.ts +27 -0
  372. package/dist/lsp/server.d.ts.map +1 -0
  373. package/dist/lsp/server.js +159 -0
  374. package/dist/lsp/server.js.map +1 -0
  375. package/dist/lsp/workspace.d.ts +9 -0
  376. package/dist/lsp/workspace.d.ts.map +1 -0
  377. package/dist/lsp/workspace.js +55 -0
  378. package/dist/lsp/workspace.js.map +1 -0
  379. package/dist/mcp/config.d.ts +77 -0
  380. package/dist/mcp/config.d.ts.map +1 -0
  381. package/dist/mcp/config.js +316 -0
  382. package/dist/mcp/config.js.map +1 -0
  383. package/dist/mcp/index.d.ts +6 -0
  384. package/dist/mcp/index.d.ts.map +1 -0
  385. package/dist/mcp/index.js +3 -0
  386. package/dist/mcp/manager.d.ts +102 -0
  387. package/dist/mcp/manager.d.ts.map +1 -0
  388. package/dist/mcp/manager.js +650 -0
  389. package/dist/mcp/manager.js.map +1 -0
  390. package/dist/mcp/state.d.ts +35 -0
  391. package/dist/mcp/state.d.ts.map +1 -0
  392. package/dist/mcp/state.js +97 -0
  393. package/dist/mcp/state.js.map +1 -0
  394. package/dist/mcp/types.d.ts +139 -0
  395. package/dist/mcp/types.d.ts.map +1 -0
  396. package/dist/mcp/types.js +1 -0
  397. package/dist/onboarding/custom-packs.d.ts +7 -0
  398. package/dist/onboarding/custom-packs.d.ts.map +1 -0
  399. package/dist/onboarding/custom-packs.js +20 -0
  400. package/dist/onboarding/custom-packs.js.map +1 -0
  401. package/dist/onboarding/custom-providers.d.ts +4 -0
  402. package/dist/onboarding/custom-providers.d.ts.map +1 -0
  403. package/dist/onboarding/custom-providers.js +30 -0
  404. package/dist/onboarding/custom-providers.js.map +1 -0
  405. package/dist/onboarding/index.d.ts +5 -0
  406. package/dist/onboarding/index.d.ts.map +1 -0
  407. package/dist/onboarding/index.js +3 -0
  408. package/dist/onboarding/om-settings.d.ts +47 -0
  409. package/dist/onboarding/om-settings.d.ts.map +1 -0
  410. package/dist/onboarding/om-settings.js +83 -0
  411. package/dist/onboarding/om-settings.js.map +1 -0
  412. package/dist/onboarding/pack-activation.d.ts +52 -0
  413. package/dist/onboarding/pack-activation.d.ts.map +1 -0
  414. package/dist/onboarding/pack-activation.js +108 -0
  415. package/dist/onboarding/pack-activation.js.map +1 -0
  416. package/dist/onboarding/packs.d.ts +102 -0
  417. package/dist/onboarding/packs.d.ts.map +1 -0
  418. package/dist/onboarding/packs.js +278 -0
  419. package/dist/onboarding/packs.js.map +1 -0
  420. package/dist/onboarding/settings.d.ts +538 -0
  421. package/dist/onboarding/settings.d.ts.map +1 -0
  422. package/dist/onboarding/settings.js +1060 -0
  423. package/dist/onboarding/settings.js.map +1 -0
  424. package/dist/permissions.d.ts +55 -0
  425. package/dist/permissions.d.ts.map +1 -0
  426. package/dist/permissions.js +142 -0
  427. package/dist/permissions.js.map +1 -0
  428. package/dist/plugin.d.ts +156 -0
  429. package/dist/plugin.d.ts.map +1 -0
  430. package/dist/plugin.js +30 -0
  431. package/dist/plugin.js.map +1 -0
  432. package/dist/plugins/dependencies.d.ts +9 -0
  433. package/dist/plugins/dependencies.d.ts.map +1 -0
  434. package/dist/plugins/dependencies.js +87 -0
  435. package/dist/plugins/dependencies.js.map +1 -0
  436. package/dist/plugins/install.d.ts +21 -0
  437. package/dist/plugins/install.d.ts.map +1 -0
  438. package/dist/plugins/install.js +190 -0
  439. package/dist/plugins/install.js.map +1 -0
  440. package/dist/plugins/loader.d.ts +19 -0
  441. package/dist/plugins/loader.d.ts.map +1 -0
  442. package/dist/plugins/loader.js +260 -0
  443. package/dist/plugins/loader.js.map +1 -0
  444. package/dist/plugins/manager.d.ts +98 -0
  445. package/dist/plugins/manager.d.ts.map +1 -0
  446. package/dist/plugins/manager.js +456 -0
  447. package/dist/plugins/manager.js.map +1 -0
  448. package/dist/plugins/manifest.d.ts +14 -0
  449. package/dist/plugins/manifest.d.ts.map +1 -0
  450. package/dist/plugins/manifest.js +50 -0
  451. package/dist/plugins/manifest.js.map +1 -0
  452. package/dist/plugins/package-link.d.ts +3 -0
  453. package/dist/plugins/package-link.d.ts.map +1 -0
  454. package/dist/plugins/package-link.js +61 -0
  455. package/dist/plugins/package-link.js.map +1 -0
  456. package/dist/plugins/paths.d.ts +10 -0
  457. package/dist/plugins/paths.d.ts.map +1 -0
  458. package/dist/plugins/paths.js +25 -0
  459. package/dist/plugins/paths.js.map +1 -0
  460. package/dist/plugins/registry.d.ts +8 -0
  461. package/dist/plugins/registry.d.ts.map +1 -0
  462. package/dist/plugins/registry.js +112 -0
  463. package/dist/plugins/registry.js.map +1 -0
  464. package/dist/plugins/scaffold.d.ts +10 -0
  465. package/dist/plugins/scaffold.d.ts.map +1 -0
  466. package/dist/plugins/scaffold.js +116 -0
  467. package/dist/plugins/scaffold.js.map +1 -0
  468. package/dist/plugins/signal-lane.d.ts +58 -0
  469. package/dist/plugins/signal-lane.d.ts.map +1 -0
  470. package/dist/plugins/signal-lane.js +166 -0
  471. package/dist/plugins/signal-lane.js.map +1 -0
  472. package/dist/plugins/types.d.ts +81 -0
  473. package/dist/plugins/types.d.ts.map +1 -0
  474. package/dist/plugins/types.js +1 -0
  475. package/dist/process-memory-diagnostics.d.ts +135 -0
  476. package/dist/process-memory-diagnostics.d.ts.map +1 -0
  477. package/dist/process-memory-diagnostics.js +499 -0
  478. package/dist/process-memory-diagnostics.js.map +1 -0
  479. package/dist/processors/plan-rejection-abort.d.ts +12 -0
  480. package/dist/processors/plan-rejection-abort.d.ts.map +1 -0
  481. package/dist/processors/plan-rejection-abort.js +54 -0
  482. package/dist/processors/plan-rejection-abort.js.map +1 -0
  483. package/dist/providers/amazon-bedrock-gateway.d.ts +47 -0
  484. package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
  485. package/dist/providers/amazon-bedrock-gateway.js +144 -0
  486. package/dist/providers/amazon-bedrock-gateway.js.map +1 -0
  487. package/dist/providers/amazon-bedrock.d.ts +28 -0
  488. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  489. package/dist/providers/amazon-bedrock.js +102 -0
  490. package/dist/providers/amazon-bedrock.js.map +1 -0
  491. package/dist/providers/anthropic-prompt-cache.d.ts +19 -0
  492. package/dist/providers/anthropic-prompt-cache.d.ts.map +1 -0
  493. package/dist/providers/anthropic-prompt-cache.js +11 -0
  494. package/dist/providers/anthropic-prompt-cache.js.map +1 -0
  495. package/dist/providers/anthropic-thinking.d.ts +5 -0
  496. package/dist/providers/anthropic-thinking.d.ts.map +1 -0
  497. package/dist/providers/anthropic-thinking.js +25 -0
  498. package/dist/providers/anthropic-thinking.js.map +1 -0
  499. package/dist/providers/claude-max.d.ts +67 -0
  500. package/dist/providers/claude-max.d.ts.map +1 -0
  501. package/dist/providers/claude-max.js +226 -0
  502. package/dist/providers/claude-max.js.map +1 -0
  503. package/dist/providers/github-copilot-gateway.d.ts +35 -0
  504. package/dist/providers/github-copilot-gateway.d.ts.map +1 -0
  505. package/dist/providers/github-copilot-gateway.js +61 -0
  506. package/dist/providers/github-copilot-gateway.js.map +1 -0
  507. package/dist/providers/github-copilot.d.ts +60 -0
  508. package/dist/providers/github-copilot.d.ts.map +1 -0
  509. package/dist/providers/github-copilot.js +318 -0
  510. package/dist/providers/github-copilot.js.map +1 -0
  511. package/dist/providers/google-thinking.d.ts +31 -0
  512. package/dist/providers/google-thinking.d.ts.map +1 -0
  513. package/dist/providers/google-thinking.js +67 -0
  514. package/dist/providers/google-thinking.js.map +1 -0
  515. package/dist/providers/kimi-coding.d.ts +14 -0
  516. package/dist/providers/kimi-coding.d.ts.map +1 -0
  517. package/dist/providers/kimi-coding.js +78 -0
  518. package/dist/providers/kimi-coding.js.map +1 -0
  519. package/dist/providers/model-ids.d.ts +30 -0
  520. package/dist/providers/model-ids.d.ts.map +1 -0
  521. package/dist/providers/model-ids.js +79 -0
  522. package/dist/providers/model-ids.js.map +1 -0
  523. package/dist/providers/openai-codex.d.ts +84 -0
  524. package/dist/providers/openai-codex.d.ts.map +1 -0
  525. package/dist/providers/openai-codex.js +347 -0
  526. package/dist/providers/openai-codex.js.map +1 -0
  527. package/dist/providers/provider-thinking.d.ts +23 -0
  528. package/dist/providers/provider-thinking.d.ts.map +1 -0
  529. package/dist/providers/provider-thinking.js +64 -0
  530. package/dist/providers/provider-thinking.js.map +1 -0
  531. package/dist/providers/thinking-request.d.ts +14 -0
  532. package/dist/providers/thinking-request.d.ts.map +1 -0
  533. package/dist/providers/thinking-request.js +90 -0
  534. package/dist/providers/thinking-request.js.map +1 -0
  535. package/dist/providers/xai.d.ts +33 -0
  536. package/dist/providers/xai.d.ts.map +1 -0
  537. package/dist/providers/xai.js +71 -0
  538. package/dist/providers/xai.js.map +1 -0
  539. package/dist/schedules/index.d.ts +10 -0
  540. package/dist/schedules/index.d.ts.map +1 -0
  541. package/dist/schedules/index.js +6 -0
  542. package/dist/schedules/interval.d.ts +49 -0
  543. package/dist/schedules/interval.d.ts.map +1 -0
  544. package/dist/schedules/interval.js +215 -0
  545. package/dist/schedules/interval.js.map +1 -0
  546. package/dist/schedules/prompt.d.ts +36 -0
  547. package/dist/schedules/prompt.d.ts.map +1 -0
  548. package/dist/schedules/prompt.js +39 -0
  549. package/dist/schedules/prompt.js.map +1 -0
  550. package/dist/schedules/run-script.d.ts +8 -0
  551. package/dist/schedules/run-script.d.ts.map +1 -0
  552. package/dist/schedules/run-script.js +83 -0
  553. package/dist/schedules/run-script.js.map +1 -0
  554. package/dist/schedules/scheduler.d.ts +101 -0
  555. package/dist/schedules/scheduler.d.ts.map +1 -0
  556. package/dist/schedules/scheduler.js +169 -0
  557. package/dist/schedules/scheduler.js.map +1 -0
  558. package/dist/schedules/tools.d.ts +57 -0
  559. package/dist/schedules/tools.d.ts.map +1 -0
  560. package/dist/schedules/tools.js +220 -0
  561. package/dist/schedules/tools.js.map +1 -0
  562. package/dist/schema.d.ts +499 -0
  563. package/dist/schema.d.ts.map +1 -0
  564. package/dist/schema.js +134 -0
  565. package/dist/schema.js.map +1 -0
  566. package/dist/theme-palette.d.ts +17 -0
  567. package/dist/theme-palette.d.ts.map +1 -0
  568. package/dist/theme-palette.js +21 -0
  569. package/dist/theme-palette.js.map +1 -0
  570. package/dist/thinking-catalog.d.ts +4 -0
  571. package/dist/thinking-catalog.d.ts.map +1 -0
  572. package/dist/thinking-catalog.js +13 -0
  573. package/dist/thinking-catalog.js.map +1 -0
  574. package/dist/thinking.d.ts +37 -0
  575. package/dist/thinking.d.ts.map +1 -0
  576. package/dist/thinking.js +137 -0
  577. package/dist/thinking.js.map +1 -0
  578. package/dist/tool-names.d.ts +77 -0
  579. package/dist/tool-names.d.ts.map +1 -0
  580. package/dist/tool-names.js +56 -0
  581. package/dist/tool-names.js.map +1 -0
  582. package/dist/tools/index.d.ts +6 -0
  583. package/dist/tools/index.d.ts.map +1 -0
  584. package/dist/tools/index.js +3 -0
  585. package/dist/tools/request-sandbox-access.d.ts +6 -0
  586. package/dist/tools/request-sandbox-access.d.ts.map +1 -0
  587. package/dist/tools/request-sandbox-access.js +80 -0
  588. package/dist/tools/request-sandbox-access.js.map +1 -0
  589. package/dist/tools/utils.d.ts +20 -0
  590. package/dist/tools/utils.d.ts.map +1 -0
  591. package/dist/tools/utils.js +32 -0
  592. package/dist/tools/utils.js.map +1 -0
  593. package/dist/tools/web-search.d.ts +114 -0
  594. package/dist/tools/web-search.d.ts.map +1 -0
  595. package/dist/tools/web-search.js +155 -0
  596. package/dist/tools/web-search.js.map +1 -0
  597. package/dist/tools/workflows/create-workflow.d.ts +7 -0
  598. package/dist/tools/workflows/create-workflow.d.ts.map +1 -0
  599. package/dist/tools/workflows/create-workflow.js +81 -0
  600. package/dist/tools/workflows/create-workflow.js.map +1 -0
  601. package/dist/tools/workflows/delete-workflow.d.ts +7 -0
  602. package/dist/tools/workflows/delete-workflow.d.ts.map +1 -0
  603. package/dist/tools/workflows/delete-workflow.js +21 -0
  604. package/dist/tools/workflows/delete-workflow.js.map +1 -0
  605. package/dist/tools/workflows/ephemeral-memory.d.ts +28 -0
  606. package/dist/tools/workflows/ephemeral-memory.d.ts.map +1 -0
  607. package/dist/tools/workflows/ephemeral-memory.js +44 -0
  608. package/dist/tools/workflows/ephemeral-memory.js.map +1 -0
  609. package/dist/tools/workflows/extract-json-schema.d.ts +12 -0
  610. package/dist/tools/workflows/extract-json-schema.d.ts.map +1 -0
  611. package/dist/tools/workflows/extract-json-schema.js +22 -0
  612. package/dist/tools/workflows/extract-json-schema.js.map +1 -0
  613. package/dist/tools/workflows/get-workflow.d.ts +11 -0
  614. package/dist/tools/workflows/get-workflow.d.ts.map +1 -0
  615. package/dist/tools/workflows/get-workflow.js +34 -0
  616. package/dist/tools/workflows/get-workflow.js.map +1 -0
  617. package/dist/tools/workflows/list-available-agents.d.ts +8 -0
  618. package/dist/tools/workflows/list-available-agents.d.ts.map +1 -0
  619. package/dist/tools/workflows/list-available-agents.js +32 -0
  620. package/dist/tools/workflows/list-available-agents.js.map +1 -0
  621. package/dist/tools/workflows/list-available-classifiers.d.ts +19 -0
  622. package/dist/tools/workflows/list-available-classifiers.d.ts.map +1 -0
  623. package/dist/tools/workflows/list-available-classifiers.js +56 -0
  624. package/dist/tools/workflows/list-available-classifiers.js.map +1 -0
  625. package/dist/tools/workflows/list-available-tools.d.ts +9 -0
  626. package/dist/tools/workflows/list-available-tools.d.ts.map +1 -0
  627. package/dist/tools/workflows/list-available-tools.js +40 -0
  628. package/dist/tools/workflows/list-available-tools.js.map +1 -0
  629. package/dist/tools/workflows/list-available-workflows.d.ts +9 -0
  630. package/dist/tools/workflows/list-available-workflows.d.ts.map +1 -0
  631. package/dist/tools/workflows/list-available-workflows.js +32 -0
  632. package/dist/tools/workflows/list-available-workflows.js.map +1 -0
  633. package/dist/tools/workflows/list-workflows.d.ts +9 -0
  634. package/dist/tools/workflows/list-workflows.d.ts.map +1 -0
  635. package/dist/tools/workflows/list-workflows.js +33 -0
  636. package/dist/tools/workflows/list-workflows.js.map +1 -0
  637. package/dist/tools/workflows/run-workflow.d.ts +9 -0
  638. package/dist/tools/workflows/run-workflow.d.ts.map +1 -0
  639. package/dist/tools/workflows/run-workflow.js +52 -0
  640. package/dist/tools/workflows/run-workflow.js.map +1 -0
  641. package/dist/tools/workflows/save-workflow.d.ts +1125 -0
  642. package/dist/tools/workflows/save-workflow.d.ts.map +1 -0
  643. package/dist/tools/workflows/save-workflow.js +28 -0
  644. package/dist/tools/workflows/save-workflow.js.map +1 -0
  645. package/dist/tools/workflows/tool-ids.d.ts +16 -0
  646. package/dist/tools/workflows/tool-ids.d.ts.map +1 -0
  647. package/dist/tools/workflows/tool-ids.js +20 -0
  648. package/dist/tools/workflows/tool-ids.js.map +1 -0
  649. package/dist/utils/binaries.d.ts +7 -0
  650. package/dist/utils/binaries.d.ts.map +1 -0
  651. package/dist/utils/binaries.js +78 -0
  652. package/dist/utils/binaries.js.map +1 -0
  653. package/dist/utils/debug-log.d.ts +12 -0
  654. package/dist/utils/debug-log.d.ts.map +1 -0
  655. package/dist/utils/debug-log.js +59 -0
  656. package/dist/utils/debug-log.js.map +1 -0
  657. package/dist/utils/discarding-scores-storage.d.ts +33 -0
  658. package/dist/utils/discarding-scores-storage.d.ts.map +1 -0
  659. package/dist/utils/discarding-scores-storage.js +54 -0
  660. package/dist/utils/discarding-scores-storage.js.map +1 -0
  661. package/dist/utils/errors.d.ts +36 -0
  662. package/dist/utils/errors.d.ts.map +1 -0
  663. package/dist/utils/errors.js +196 -0
  664. package/dist/utils/errors.js.map +1 -0
  665. package/dist/utils/gateway-sync.d.ts +26 -0
  666. package/dist/utils/gateway-sync.d.ts.map +1 -0
  667. package/dist/utils/gateway-sync.js +61 -0
  668. package/dist/utils/gateway-sync.js.map +1 -0
  669. package/dist/utils/maintenance-lock.d.ts +42 -0
  670. package/dist/utils/maintenance-lock.d.ts.map +1 -0
  671. package/dist/utils/maintenance-lock.js +199 -0
  672. package/dist/utils/maintenance-lock.js.map +1 -0
  673. package/dist/utils/notification-dispatch.d.ts +59 -0
  674. package/dist/utils/notification-dispatch.d.ts.map +1 -0
  675. package/dist/utils/notification-dispatch.js +109 -0
  676. package/dist/utils/notification-dispatch.js.map +1 -0
  677. package/dist/utils/open-url.d.ts +10 -0
  678. package/dist/utils/open-url.d.ts.map +1 -0
  679. package/dist/utils/open-url.js +30 -0
  680. package/dist/utils/open-url.js.map +1 -0
  681. package/dist/utils/path-security.d.ts +2 -0
  682. package/dist/utils/path-security.d.ts.map +1 -0
  683. package/dist/utils/path-security.js +10 -0
  684. package/dist/utils/path-security.js.map +1 -0
  685. package/dist/utils/plan-diff.d.ts +25 -0
  686. package/dist/utils/plan-diff.d.ts.map +1 -0
  687. package/dist/utils/plan-diff.js +62 -0
  688. package/dist/utils/plan-diff.js.map +1 -0
  689. package/dist/utils/plans.d.ts +59 -0
  690. package/dist/utils/plans.d.ts.map +1 -0
  691. package/dist/utils/plans.js +117 -0
  692. package/dist/utils/plans.js.map +1 -0
  693. package/dist/utils/project.d.ts +160 -0
  694. package/dist/utils/project.d.ts.map +1 -0
  695. package/dist/utils/project.js +364 -0
  696. package/dist/utils/project.js.map +1 -0
  697. package/dist/utils/prune-cli.d.ts +24 -0
  698. package/dist/utils/prune-cli.d.ts.map +1 -0
  699. package/dist/utils/prune-cli.js +125 -0
  700. package/dist/utils/prune-cli.js.map +1 -0
  701. package/dist/utils/signals-pubsub.d.ts +101 -0
  702. package/dist/utils/signals-pubsub.d.ts.map +1 -0
  703. package/dist/utils/signals-pubsub.js +410 -0
  704. package/dist/utils/signals-pubsub.js.map +1 -0
  705. package/dist/utils/slash-command-loader.d.ts +52 -0
  706. package/dist/utils/slash-command-loader.d.ts.map +1 -0
  707. package/dist/utils/slash-command-loader.js +142 -0
  708. package/dist/utils/slash-command-loader.js.map +1 -0
  709. package/dist/utils/slash-command-processor.d.ts +14 -0
  710. package/dist/utils/slash-command-processor.d.ts.map +1 -0
  711. package/dist/utils/slash-command-processor.js +109 -0
  712. package/dist/utils/slash-command-processor.js.map +1 -0
  713. package/dist/utils/stdin-pipe.d.ts +33 -0
  714. package/dist/utils/stdin-pipe.d.ts.map +1 -0
  715. package/dist/utils/stdin-pipe.js +96 -0
  716. package/dist/utils/stdin-pipe.js.map +1 -0
  717. package/dist/utils/storage-factory.d.ts +50 -0
  718. package/dist/utils/storage-factory.d.ts.map +1 -0
  719. package/dist/utils/storage-factory.js +121 -0
  720. package/dist/utils/storage-factory.js.map +1 -0
  721. package/dist/utils/storage-maintenance.d.ts +121 -0
  722. package/dist/utils/storage-maintenance.d.ts.map +1 -0
  723. package/dist/utils/storage-maintenance.js +355 -0
  724. package/dist/utils/storage-maintenance.js.map +1 -0
  725. package/dist/utils/thread-lock.d.ts +26 -0
  726. package/dist/utils/thread-lock.d.ts.map +1 -0
  727. package/dist/utils/thread-lock.js +112 -0
  728. package/dist/utils/thread-lock.js.map +1 -0
  729. package/dist/utils/token-estimator.d.ts +3 -0
  730. package/dist/utils/token-estimator.d.ts.map +1 -0
  731. package/dist/utils/token-estimator.js +21 -0
  732. package/dist/utils/token-estimator.js.map +1 -0
  733. package/dist/utils/update-check.d.ts +151 -0
  734. package/dist/utils/update-check.d.ts.map +1 -0
  735. package/dist/utils/update-check.js +432 -0
  736. package/dist/utils/update-check.js.map +1 -0
  737. package/dist/voice/stt-registry.d.ts +64 -0
  738. package/dist/voice/stt-registry.d.ts.map +1 -0
  739. package/dist/voice/stt-registry.js +144 -0
  740. package/dist/voice/stt-registry.js.map +1 -0
  741. package/dist/workflows/register-primitives.d.ts +52 -0
  742. package/dist/workflows/register-primitives.d.ts.map +1 -0
  743. package/dist/workflows/register-primitives.js +40 -0
  744. package/dist/workflows/register-primitives.js.map +1 -0
  745. package/dist/workflows/service.d.ts +64 -0
  746. package/dist/workflows/service.d.ts.map +1 -0
  747. package/dist/workflows/service.js +53 -0
  748. package/dist/workflows/service.js.map +1 -0
  749. package/package.json +107 -0
@@ -0,0 +1,85 @@
1
+ //#region src/headless/format.ts
2
+ /** Truncate a string to `max` characters, appending "..." if truncated. */
3
+ function truncate(s, max) {
4
+ return s.length > max ? s.slice(0, max) + "..." : s;
5
+ }
6
+ function createHumanFormatState() {
7
+ return { lastTextLength: 0 };
8
+ }
9
+ /**
10
+ * Human-readable streaming formatter (the historical default). Assistant text
11
+ * streams to stdout; tool/subagent/shell/error activity goes to stderr. The
12
+ * `state` cursor is mutated so repeated `message_update` events only emit the
13
+ * newly-appended text.
14
+ */
15
+ function formatHuman(event, state) {
16
+ switch (event.type) {
17
+ case "agent_start":
18
+ state.lastTextLength = 0;
19
+ return {};
20
+ case "message_start":
21
+ if (event.message.role === "assistant") {
22
+ state.activeAssistantMessageId = event.message.id;
23
+ state.lastTextLength = 0;
24
+ }
25
+ return {};
26
+ case "message_update":
27
+ if (event.event.type !== "text-delta" || event.id !== state.activeAssistantMessageId || !event.event.delta) return {};
28
+ state.lastTextLength += event.event.delta.length;
29
+ return { stdout: event.event.delta };
30
+ case "message_end":
31
+ if (event.id !== state.activeAssistantMessageId) return {};
32
+ state.activeAssistantMessageId = void 0;
33
+ if (state.lastTextLength === 0) return {};
34
+ state.lastTextLength = 0;
35
+ return { stdout: "\n" };
36
+ case "tool_start": return { stderr: `[tool] ${event.toolName}\n` };
37
+ case "tool_end": return event.isError ? { stderr: `[tool error] ${truncate(String(event.result), 200)}\n` } : {};
38
+ case "shell_output": return { stderr: event.output };
39
+ case "subagent_start": return { stderr: `[subagent:${event.forked ? "forked:" : ""}${event.agentType}] ${truncate(event.task, 100)}\n` };
40
+ case "subagent_end": return event.isError ? { stderr: `[subagent error] ${truncate(event.result, 200)}\n` } : {};
41
+ case "error": return { stderr: `[error] ${event.error.message}\n` };
42
+ default: return {};
43
+ }
44
+ }
45
+ /** Convert an `Error` instance into a JSON-serializable plain object. */
46
+ function serializeError(err) {
47
+ return {
48
+ name: err.name,
49
+ message: err.message,
50
+ stack: err.stack
51
+ };
52
+ }
53
+ /**
54
+ * JSONL (stream-json) formatter — returns a plain object to be `JSON.stringify`'d
55
+ * as one line per event by the sink. `Error` instances are normalized so their
56
+ * `name`/`message`/`stack` survive serialization (`JSON.stringify` turns a raw
57
+ * `Error` into `{}`).
58
+ */
59
+ function formatJsonl(event) {
60
+ const out = { ...event };
61
+ if ("error" in event && event.error instanceof Error) out.error = serializeError(event.error);
62
+ return out;
63
+ }
64
+ /** Render the final result for `--output text`: assistant text, newline-terminated. */
65
+ function renderTextResult(result) {
66
+ return result.text.endsWith("\n") ? result.text : result.text + "\n";
67
+ }
68
+ /** Render the final result for `--output json`: one JSON object. */
69
+ function renderJsonResult(result) {
70
+ return JSON.stringify({
71
+ status: result.status,
72
+ text: result.text,
73
+ finishReason: result.finishReason,
74
+ usage: result.usage,
75
+ toolCalls: result.toolCalls,
76
+ toolResults: result.toolResults,
77
+ error: result.error,
78
+ threadId: result.threadId,
79
+ exitCode: result.exitCode
80
+ }) + "\n";
81
+ }
82
+ //#endregion
83
+ export { createHumanFormatState, formatHuman, formatJsonl, renderJsonResult, renderTextResult, truncate };
84
+
85
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","names":[],"sources":["../../src/headless/format.ts"],"sourcesContent":["/**\n * Output formatters for headless runs. All functions here are pure — they take\n * an event (or a final result) and return strings / plain objects. They never\n * touch `process.*`; the CLI adapter owns the sinks.\n */\nimport type { AgentControllerEvent } from '@mastra/core/agent-controller';\n\nimport type { RunMCResult } from './types.js';\n\n/** Truncate a string to `max` characters, appending \"...\" if truncated. */\nexport function truncate(s: string, max: number): string {\n return s.length > max ? s.slice(0, max) + '...' : s;\n}\n\n/** Mutable per-stream cursor used by {@link formatHuman} to stream assistant text. */\nexport interface HumanFormatState {\n activeAssistantMessageId?: string;\n lastTextLength: number;\n}\n\nexport function createHumanFormatState(): HumanFormatState {\n return { lastTextLength: 0 };\n}\n\n/** A chunk of formatted output destined for stdout and/or stderr. */\nexport interface FormattedOutput {\n stdout?: string;\n stderr?: string;\n}\n\n/**\n * Human-readable streaming formatter (the historical default). Assistant text\n * streams to stdout; tool/subagent/shell/error activity goes to stderr. The\n * `state` cursor is mutated so repeated `message_update` events only emit the\n * newly-appended text.\n */\nexport function formatHuman(event: AgentControllerEvent, state: HumanFormatState): FormattedOutput {\n switch (event.type) {\n case 'agent_start':\n state.lastTextLength = 0;\n return {};\n case 'message_start':\n if (event.message.role === 'assistant') {\n state.activeAssistantMessageId = event.message.id;\n state.lastTextLength = 0;\n }\n return {};\n case 'message_update':\n if (event.event.type !== 'text-delta' || event.id !== state.activeAssistantMessageId || !event.event.delta)\n return {};\n state.lastTextLength += event.event.delta.length;\n return { stdout: event.event.delta };\n case 'message_end':\n if (event.id !== state.activeAssistantMessageId) return {};\n state.activeAssistantMessageId = undefined;\n if (state.lastTextLength === 0) return {};\n state.lastTextLength = 0;\n return { stdout: '\\n' };\n case 'tool_start':\n return { stderr: `[tool] ${event.toolName}\\n` };\n case 'tool_end':\n return event.isError ? { stderr: `[tool error] ${truncate(String(event.result), 200)}\\n` } : {};\n case 'shell_output':\n return { stderr: event.output };\n case 'subagent_start':\n return {\n stderr: `[subagent:${event.forked ? 'forked:' : ''}${event.agentType}] ${truncate(event.task, 100)}\\n`,\n };\n case 'subagent_end':\n return event.isError ? { stderr: `[subagent error] ${truncate(event.result, 200)}\\n` } : {};\n case 'error':\n return { stderr: `[error] ${event.error.message}\\n` };\n default:\n return {};\n }\n}\n\n/** Convert an `Error` instance into a JSON-serializable plain object. */\nfunction serializeError(err: Error): { name: string; message: string; stack?: string } {\n return { name: err.name, message: err.message, stack: err.stack };\n}\n\n/**\n * JSONL (stream-json) formatter — returns a plain object to be `JSON.stringify`'d\n * as one line per event by the sink. `Error` instances are normalized so their\n * `name`/`message`/`stack` survive serialization (`JSON.stringify` turns a raw\n * `Error` into `{}`).\n */\nexport function formatJsonl(event: AgentControllerEvent): Record<string, unknown> {\n const out: Record<string, unknown> = { ...event };\n if ('error' in event && event.error instanceof Error) {\n out.error = serializeError(event.error);\n }\n return out;\n}\n\n/** Render the final result for `--output text`: assistant text, newline-terminated. */\nexport function renderTextResult(result: RunMCResult): string {\n return result.text.endsWith('\\n') ? result.text : result.text + '\\n';\n}\n\n/** Render the final result for `--output json`: one JSON object. */\nexport function renderJsonResult(result: RunMCResult): string {\n return (\n JSON.stringify({\n status: result.status,\n text: result.text,\n finishReason: result.finishReason,\n usage: result.usage,\n toolCalls: result.toolCalls,\n toolResults: result.toolResults,\n error: result.error,\n threadId: result.threadId,\n exitCode: result.exitCode,\n }) + '\\n'\n );\n}\n"],"mappings":";;AAUA,SAAgB,SAAS,GAAW,KAAqB;CACvD,OAAO,EAAE,SAAS,MAAM,EAAE,MAAM,GAAG,GAAG,IAAI,QAAQ;AACpD;AAQA,SAAgB,yBAA2C;CACzD,OAAO,EAAE,gBAAgB,EAAE;AAC7B;;;;;;;AAcA,SAAgB,YAAY,OAA6B,OAA0C;CACjG,QAAQ,MAAM,MAAd;EACE,KAAK;GACH,MAAM,iBAAiB;GACvB,OAAO,CAAC;EACV,KAAK;GACH,IAAI,MAAM,QAAQ,SAAS,aAAa;IACtC,MAAM,2BAA2B,MAAM,QAAQ;IAC/C,MAAM,iBAAiB;GACzB;GACA,OAAO,CAAC;EACV,KAAK;GACH,IAAI,MAAM,MAAM,SAAS,gBAAgB,MAAM,OAAO,MAAM,4BAA4B,CAAC,MAAM,MAAM,OACnG,OAAO,CAAC;GACV,MAAM,kBAAkB,MAAM,MAAM,MAAM;GAC1C,OAAO,EAAE,QAAQ,MAAM,MAAM,MAAM;EACrC,KAAK;GACH,IAAI,MAAM,OAAO,MAAM,0BAA0B,OAAO,CAAC;GACzD,MAAM,2BAA2B,KAAA;GACjC,IAAI,MAAM,mBAAmB,GAAG,OAAO,CAAC;GACxC,MAAM,iBAAiB;GACvB,OAAO,EAAE,QAAQ,KAAK;EACxB,KAAK,cACH,OAAO,EAAE,QAAQ,UAAU,MAAM,SAAS,IAAI;EAChD,KAAK,YACH,OAAO,MAAM,UAAU,EAAE,QAAQ,gBAAgB,SAAS,OAAO,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC;EAChG,KAAK,gBACH,OAAO,EAAE,QAAQ,MAAM,OAAO;EAChC,KAAK,kBACH,OAAO,EACL,QAAQ,aAAa,MAAM,SAAS,YAAY,KAAK,MAAM,UAAU,IAAI,SAAS,MAAM,MAAM,GAAG,EAAE,IACrG;EACF,KAAK,gBACH,OAAO,MAAM,UAAU,EAAE,QAAQ,oBAAoB,SAAS,MAAM,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC;EAC5F,KAAK,SACH,OAAO,EAAE,QAAQ,WAAW,MAAM,MAAM,QAAQ,IAAI;EACtD,SACE,OAAO,CAAC;CACZ;AACF;;AAGA,SAAS,eAAe,KAA+D;CACrF,OAAO;EAAE,MAAM,IAAI;EAAM,SAAS,IAAI;EAAS,OAAO,IAAI;CAAM;AAClE;;;;;;;AAQA,SAAgB,YAAY,OAAsD;CAChF,MAAM,MAA+B,EAAE,GAAG,MAAM;CAChD,IAAI,WAAW,SAAS,MAAM,iBAAiB,OAC7C,IAAI,QAAQ,eAAe,MAAM,KAAK;CAExC,OAAO;AACT;;AAGA,SAAgB,iBAAiB,QAA6B;CAC5D,OAAO,OAAO,KAAK,SAAS,IAAI,IAAI,OAAO,OAAO,OAAO,OAAO;AAClE;;AAGA,SAAgB,iBAAiB,QAA6B;CAC5D,OACE,KAAK,UAAU;EACb,QAAQ,OAAO;EACf,MAAM,OAAO;EACb,cAAc,OAAO;EACrB,OAAO,OAAO;EACd,WAAW,OAAO;EAClB,aAAa,OAAO;EACpB,OAAO,OAAO;EACd,UAAU,OAAO;EACjB,UAAU,OAAO;CACnB,CAAC,IAAI;AAET"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Public headless / programmatic API for MastraCode.
3
+ *
4
+ * Programmatic (CI / Node) usage:
5
+ * ```ts
6
+ * import { createMastraCode } from 'mastracode';
7
+ * import { runMC } from 'mastracode/headless';
8
+ *
9
+ * const { controller, session } = await createMastraCode({ settingsPath });
10
+ * const run = runMC({ controller, session, prompt: 'Fix the bug' });
11
+ * for await (const event of run) { ... } // optional live events
12
+ * const result = await run.result; // typed RunMCResult
13
+ * ```
14
+ *
15
+ * The CLI adapter (`runMCCli`) wraps the same `createMastraCode` → `runMC` flow.
16
+ */
17
+ export { runMC } from './run-mc.js';
18
+ export { autoApprovePolicy, denyPolicy, permissionModeToPolicy } from './policy.js';
19
+ export { formatHuman, formatJsonl, renderTextResult, renderJsonResult, createHumanFormatState, truncate, } from './format.js';
20
+ export type { FormattedOutput, HumanFormatState } from './format.js';
21
+ export { runMCCli, hasHeadlessFlag, parseHeadlessArgs, printHeadlessUsage } from './cli.js';
22
+ export type { HeadlessArgs, OutputMode } from './cli.js';
23
+ export type { RunMCOptions, RunMCResult, RunMCStatus, RunMCUsage, RunMCToolCall, RunMCToolResult, RunMCError, RunMCThreadOptions, MCRun, RunMCGoalOptions, ResolutionPolicy, RunMode, ThinkingLevel, PermissionMode, } from './types.js';
24
+ export { VALID_MODES, VALID_THINKING_LEVELS, VALID_PERMISSION_MODES } from './types.js';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/headless/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGpF,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGzD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { autoApprovePolicy, denyPolicy, permissionModeToPolicy } from "./policy.js";
2
+ import { runMC } from "./run-mc.js";
3
+ import { createHumanFormatState, formatHuman, formatJsonl, renderJsonResult, renderTextResult, truncate } from "./format.js";
4
+ import { VALID_MODES, VALID_PERMISSION_MODES, VALID_THINKING_LEVELS } from "./types.js";
5
+ import { hasHeadlessFlag, parseHeadlessArgs, printHeadlessUsage, runMCCli } from "./cli.js";
6
+ export { VALID_MODES, VALID_PERMISSION_MODES, VALID_THINKING_LEVELS, autoApprovePolicy, createHumanFormatState, denyPolicy, formatHuman, formatJsonl, hasHeadlessFlag, parseHeadlessArgs, permissionModeToPolicy, printHeadlessUsage, renderJsonResult, renderTextResult, runMC, runMCCli, truncate };
@@ -0,0 +1,17 @@
1
+ import type { PermissionMode, ResolutionPolicy } from './types.js';
2
+ /**
3
+ * Default policy — reproduces the historical headless behavior:
4
+ * - approve every tool approval request,
5
+ * - auto-approve `request_access` / sandbox access suspensions ("Yes"),
6
+ * - auto-approve `submit_plan` suspensions (`{ action: 'approved' }`),
7
+ * - answer any other suspension with a "use your best judgment" instruction.
8
+ */
9
+ export declare const autoApprovePolicy: ResolutionPolicy;
10
+ /**
11
+ * Strict policy — refuses every tool approval and aborts on any suspension.
12
+ * Useful for CI gating where unattended tool execution must not happen.
13
+ */
14
+ export declare const denyPolicy: ResolutionPolicy;
15
+ /** Resolve a named {@link PermissionMode} to its built-in {@link ResolutionPolicy}. */
16
+ export declare function permissionModeToPolicy(mode: PermissionMode): ResolutionPolicy;
17
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/headless/policy.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAoB/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,gBAUxB,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAQ7E"}
@@ -0,0 +1,42 @@
1
+ //#region src/headless/policy.ts
2
+ /**
3
+ * Default policy — reproduces the historical headless behavior:
4
+ * - approve every tool approval request,
5
+ * - auto-approve `request_access` / sandbox access suspensions ("Yes"),
6
+ * - auto-approve `submit_plan` suspensions (`{ action: 'approved' }`),
7
+ * - answer any other suspension with a "use your best judgment" instruction.
8
+ */
9
+ const autoApprovePolicy = {
10
+ onToolApproval(_event) {
11
+ return "approve";
12
+ },
13
+ onSuspension(event) {
14
+ const payload = event.suspendPayload ?? {};
15
+ if (event.toolName === "request_access" || payload.kind === "sandbox_access_request") return { resumeData: "Yes" };
16
+ if (event.toolName === "submit_plan") return { resumeData: { action: "approved" } };
17
+ return { resumeData: "Proceed with your best judgment. Do not ask further questions." };
18
+ }
19
+ };
20
+ /**
21
+ * Strict policy — refuses every tool approval and aborts on any suspension.
22
+ * Useful for CI gating where unattended tool execution must not happen.
23
+ */
24
+ const denyPolicy = {
25
+ onToolApproval(_event) {
26
+ return "deny";
27
+ },
28
+ onSuspension(_event) {
29
+ return { abort: true };
30
+ }
31
+ };
32
+ /** Resolve a named {@link PermissionMode} to its built-in {@link ResolutionPolicy}. */
33
+ function permissionModeToPolicy(mode) {
34
+ switch (mode) {
35
+ case "deny": return denyPolicy;
36
+ default: return autoApprovePolicy;
37
+ }
38
+ }
39
+ //#endregion
40
+ export { autoApprovePolicy, denyPolicy, permissionModeToPolicy };
41
+
42
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","names":[],"sources":["../../src/headless/policy.ts"],"sourcesContent":["/**\n * Resolution policies decide how `runMC` resumes interactive events\n * (`tool_approval_required`, `tool_suspended`) without a human in the loop.\n *\n * Policies are pure decision objects: they inspect the event and return a\n * decision. The runner is responsible for applying the decision to the session\n * and for any side effects (emitting labels, etc.). This keeps policies testable\n * and lets CI swap in stricter behavior without touching the runner.\n */\nimport type { AgentControllerEvent } from '@mastra/core/agent-controller';\n\nimport type { PermissionMode, ResolutionPolicy } from './types.js';\n\n/**\n * Default policy — reproduces the historical headless behavior:\n * - approve every tool approval request,\n * - auto-approve `request_access` / sandbox access suspensions (\"Yes\"),\n * - auto-approve `submit_plan` suspensions (`{ action: 'approved' }`),\n * - answer any other suspension with a \"use your best judgment\" instruction.\n */\nexport const autoApprovePolicy: ResolutionPolicy = {\n onToolApproval(_event: Extract<AgentControllerEvent, { type: 'tool_approval_required' }>): 'approve' | 'deny' {\n return 'approve';\n },\n\n onSuspension(\n event: Extract<AgentControllerEvent, { type: 'tool_suspended' }>,\n ): { resumeData: unknown } | { abort: true } {\n const payload = (event.suspendPayload ?? {}) as Record<string, unknown>;\n\n if (event.toolName === 'request_access' || payload.kind === 'sandbox_access_request') {\n return { resumeData: 'Yes' };\n }\n\n if (event.toolName === 'submit_plan') {\n return { resumeData: { action: 'approved' } };\n }\n\n return { resumeData: 'Proceed with your best judgment. Do not ask further questions.' };\n },\n};\n\n/**\n * Strict policy — refuses every tool approval and aborts on any suspension.\n * Useful for CI gating where unattended tool execution must not happen.\n */\nexport const denyPolicy: ResolutionPolicy = {\n onToolApproval(_event: Extract<AgentControllerEvent, { type: 'tool_approval_required' }>): 'approve' | 'deny' {\n return 'deny';\n },\n\n onSuspension(\n _event: Extract<AgentControllerEvent, { type: 'tool_suspended' }>,\n ): { resumeData: unknown } | { abort: true } {\n return { abort: true };\n },\n};\n\n/** Resolve a named {@link PermissionMode} to its built-in {@link ResolutionPolicy}. */\nexport function permissionModeToPolicy(mode: PermissionMode): ResolutionPolicy {\n switch (mode) {\n case 'deny':\n return denyPolicy;\n case 'auto':\n default:\n return autoApprovePolicy;\n }\n}\n"],"mappings":";;;;;;;;AAoBA,MAAa,oBAAsC;CACjD,eAAe,QAA+F;EAC5G,OAAO;CACT;CAEA,aACE,OAC2C;EAC3C,MAAM,UAAW,MAAM,kBAAkB,CAAC;EAE1C,IAAI,MAAM,aAAa,oBAAoB,QAAQ,SAAS,0BAC1D,OAAO,EAAE,YAAY,MAAM;EAG7B,IAAI,MAAM,aAAa,eACrB,OAAO,EAAE,YAAY,EAAE,QAAQ,WAAW,EAAE;EAG9C,OAAO,EAAE,YAAY,iEAAiE;CACxF;AACF;;;;;AAMA,MAAa,aAA+B;CAC1C,eAAe,QAA+F;EAC5G,OAAO;CACT;CAEA,aACE,QAC2C;EAC3C,OAAO,EAAE,OAAO,KAAK;CACvB;AACF;;AAGA,SAAgB,uBAAuB,MAAwC;CAC7E,QAAQ,MAAR;EACE,KAAK,QACH,OAAO;EAET,SACE,OAAO;CACX;AACF"}
@@ -0,0 +1,7 @@
1
+ import type { MCRun, RunMCOptions } from './types.js';
2
+ /**
3
+ * Run a headless MastraCode turn. Returns an {@link MCRun} handle that is
4
+ * async-iterable over controller events and resolves to a {@link RunMCResult}.
5
+ */
6
+ export declare function runMC<TState extends Record<string, unknown>>(options: RunMCOptions<TState>): MCRun;
7
+ //# sourceMappingURL=run-mc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-mc.d.ts","sourceRoot":"","sources":["../../src/headless/run-mc.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAoB,YAAY,EAA4B,MAAM,YAAY,CAAC;AA2IlG;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,KAAK,CA+WlG"}
@@ -0,0 +1,408 @@
1
+ import { THREAD_ACTIVE_MODEL_PACK_ID_KEY } from "../onboarding/settings.js";
2
+ import { GoalManager } from "../goal-manager.js";
3
+ import { createGoalReminderSignal } from "../goal-signal.js";
4
+ import { MODEL_FALLBACK_STATE_KEY } from "../auth/account-rotation-processor.js";
5
+ import { autoApprovePolicy } from "./policy.js";
6
+ import { isSessionStartupCancelledError } from "@mastra/core/agent-controller";
7
+ //#region src/headless/run-mc.ts
8
+ /**
9
+ * Core programmatic runner for MastraCode headless runs.
10
+ *
11
+ * `runMC` is a pure async runner: it takes an already-built `controller` +
12
+ * `session` (from `createMastraCode(...)`), resolves run config, subscribes to
13
+ * the session, applies a {@link ResolutionPolicy} for approvals/suspensions,
14
+ * sends the prompt, and aggregates events into a {@link RunMCResult}.
15
+ *
16
+ * It never touches `process.*` and never calls `process.exit`. The returned
17
+ * {@link MCRun} is async-iterable over controller events and also resolves to a
18
+ * final result via `result`.
19
+ */
20
+ function exitCodeForStatus(status) {
21
+ switch (status) {
22
+ case "completed":
23
+ case "done": return 0;
24
+ case "timeout": return 2;
25
+ default: return 1;
26
+ }
27
+ }
28
+ function aggregate(event, acc) {
29
+ switch (event.type) {
30
+ case "message_start":
31
+ if (event.message.role === "assistant") acc.activeAssistantMessageId = event.message.id;
32
+ break;
33
+ case "message_update":
34
+ if (event.event.type === "text-delta" && event.id === acc.activeAssistantMessageId) acc.text += event.event.delta;
35
+ break;
36
+ case "message_end":
37
+ if (event.id === acc.activeAssistantMessageId) acc.activeAssistantMessageId = void 0;
38
+ break;
39
+ case "tool_start":
40
+ acc.toolCalls.push({
41
+ id: event.toolCallId,
42
+ name: event.toolName,
43
+ args: event.args
44
+ });
45
+ break;
46
+ case "tool_end": {
47
+ const matching = acc.toolCalls.find((c) => c.id === event.toolCallId);
48
+ acc.toolResults.push({
49
+ id: event.toolCallId,
50
+ name: matching?.name ?? "",
51
+ result: event.result,
52
+ isError: event.isError
53
+ });
54
+ break;
55
+ }
56
+ case "usage_update":
57
+ acc.usage = {
58
+ inputTokens: event.usage.promptTokens,
59
+ outputTokens: event.usage.completionTokens,
60
+ totalTokens: event.usage.totalTokens
61
+ };
62
+ break;
63
+ case "error":
64
+ acc.error = {
65
+ name: event.error.name,
66
+ message: event.error.message,
67
+ stack: event.error.stack
68
+ };
69
+ break;
70
+ }
71
+ }
72
+ /** Resolve a thread by its exact ID. Titles are not unique, so we don't match on them. */
73
+ async function resolveThread(session, threadId, resourceId) {
74
+ const byId = (await session.thread.list(resourceId ? { allResources: true } : void 0)).find((thread) => thread.id === threadId && (!resourceId || thread.resourceId === resourceId));
75
+ if (byId) return { threadId: byId.id };
76
+ return { error: `No thread found with ID "${threadId}"` };
77
+ }
78
+ /**
79
+ * A simple back-pressured async queue. Events are pushed in; consumers pull via
80
+ * the async iterator. `close()` ends iteration after draining buffered events.
81
+ *
82
+ * Buffered events are bounded by `maxBuffer`: if a consumer never iterates (the
83
+ * result-only path, `await run.result` without `for await (...)`) — or simply
84
+ * falls far behind — the oldest buffered events are dropped instead of growing
85
+ * without limit. The aggregated {@link RunMCResult} is built independently of
86
+ * this queue, so dropping buffered events never affects the final result.
87
+ */
88
+ var EventQueue = class {
89
+ #buffer = [];
90
+ #resolvers = [];
91
+ #closed = false;
92
+ #maxBuffer;
93
+ constructor(maxBuffer = 1e4) {
94
+ this.#maxBuffer = maxBuffer;
95
+ }
96
+ push(value) {
97
+ if (this.#closed) return;
98
+ const resolve = this.#resolvers.shift();
99
+ if (resolve) {
100
+ resolve({
101
+ value,
102
+ done: false
103
+ });
104
+ return;
105
+ }
106
+ this.#buffer.push(value);
107
+ if (this.#buffer.length > this.#maxBuffer) this.#buffer.shift();
108
+ }
109
+ close() {
110
+ if (this.#closed) return;
111
+ this.#closed = true;
112
+ for (const resolve of this.#resolvers.splice(0)) resolve({
113
+ value: void 0,
114
+ done: true
115
+ });
116
+ }
117
+ [Symbol.asyncIterator]() {
118
+ return { next: () => {
119
+ if (this.#buffer.length > 0) return Promise.resolve({
120
+ value: this.#buffer.shift(),
121
+ done: false
122
+ });
123
+ if (this.#closed) return Promise.resolve({
124
+ value: void 0,
125
+ done: true
126
+ });
127
+ return new Promise((resolve) => this.#resolvers.push(resolve));
128
+ } };
129
+ }
130
+ };
131
+ /**
132
+ * Run a headless MastraCode turn. Returns an {@link MCRun} handle that is
133
+ * async-iterable over controller events and resolves to a {@link RunMCResult}.
134
+ */
135
+ function runMC(options) {
136
+ const { controller, session } = options;
137
+ const goal = options.goal;
138
+ const policy = options.policy ?? autoApprovePolicy;
139
+ const queue = new EventQueue();
140
+ const acc = {
141
+ text: "",
142
+ toolCalls: [],
143
+ toolResults: []
144
+ };
145
+ let timeoutId;
146
+ let timedOut = false;
147
+ let aborted = false;
148
+ let maxTurnsExceeded = false;
149
+ let assistantTurns = 0;
150
+ let activeAssistantMessageId;
151
+ let settled = false;
152
+ let unsubscribe;
153
+ let resolveResult;
154
+ const result = new Promise((resolve) => {
155
+ resolveResult = resolve;
156
+ });
157
+ function finish(status, data = {}) {
158
+ if (settled) return;
159
+ settled = true;
160
+ if (timeoutId) clearTimeout(timeoutId);
161
+ unsubscribe?.();
162
+ queue.close();
163
+ resolveResult({
164
+ status,
165
+ text: acc.text,
166
+ finishReason: acc.finishReason,
167
+ usage: acc.usage,
168
+ toolCalls: acc.toolCalls,
169
+ toolResults: acc.toolResults,
170
+ threadId: acc.threadId ?? session.thread.getId() ?? void 0,
171
+ error: acc.error,
172
+ exitCode: exitCodeForStatus(status),
173
+ ...data
174
+ });
175
+ }
176
+ function fail(message, name = "Error") {
177
+ if (!acc.error) acc.error = {
178
+ name,
179
+ message
180
+ };
181
+ finish("error");
182
+ }
183
+ function abort() {
184
+ if (settled) return;
185
+ aborted = true;
186
+ session.abort();
187
+ }
188
+ if (options.signal) if (options.signal.aborted) queueMicrotask(() => abort());
189
+ else options.signal.addEventListener("abort", () => abort(), { once: true });
190
+ function armTimeout() {
191
+ if (!options.timeoutMs || settled) return;
192
+ if (timeoutId) clearTimeout(timeoutId);
193
+ timeoutId = setTimeout(() => {
194
+ timedOut = true;
195
+ session.abort();
196
+ if (goal) finish("timeout");
197
+ }, options.timeoutMs);
198
+ }
199
+ (async () => {
200
+ armTimeout();
201
+ unsubscribe = session.subscribe((event) => {
202
+ if (settled) return;
203
+ if (goal) armTimeout();
204
+ if (event.type === "tool_approval_required") {
205
+ let decision;
206
+ try {
207
+ decision = policy.onToolApproval(event);
208
+ } catch (err) {
209
+ fail(`Resolution policy failed: ${err.message}`);
210
+ return;
211
+ }
212
+ session.respondToToolApproval({
213
+ decision: decision === "approve" ? "approve" : "decline",
214
+ toolCallId: event.toolCallId
215
+ });
216
+ queue.push(event);
217
+ return;
218
+ }
219
+ if (event.type === "tool_suspended") {
220
+ let outcome;
221
+ try {
222
+ outcome = policy.onSuspension(event);
223
+ } catch (err) {
224
+ fail(`Resolution policy failed: ${err.message}`);
225
+ return;
226
+ }
227
+ if ("abort" in outcome) {
228
+ queue.push(event);
229
+ abort();
230
+ return;
231
+ }
232
+ session.respondToToolSuspension({
233
+ toolCallId: event.toolCallId,
234
+ resumeData: outcome.resumeData
235
+ });
236
+ queue.push(event);
237
+ return;
238
+ }
239
+ if (event.type === "message_start" && event.message.role === "assistant") activeAssistantMessageId = event.message.id;
240
+ aggregate(event, acc);
241
+ queue.push(event);
242
+ if (event.type === "error" && goal) {
243
+ finish("error");
244
+ return;
245
+ }
246
+ if (event.type === "message_end" && event.id === activeAssistantMessageId && options.maxTurns !== void 0) {
247
+ activeAssistantMessageId = void 0;
248
+ assistantTurns += 1;
249
+ if (assistantTurns >= options.maxTurns && !maxTurnsExceeded) {
250
+ maxTurnsExceeded = true;
251
+ abort();
252
+ }
253
+ }
254
+ if (event.type === "goal_evaluation" && goal && !event.payload.pending) {
255
+ if (event.payload.status === "done" || event.payload.status === "paused") finish(event.payload.status, {
256
+ objective: goal.objective,
257
+ goalEvent: event,
258
+ reason: event.payload.reason ?? event.payload.results?.[0]?.reason,
259
+ iterations: event.payload.iteration,
260
+ maxRuns: event.payload.maxRuns
261
+ });
262
+ return;
263
+ }
264
+ if (event.type === "agent_end") {
265
+ acc.finishReason = event.reason;
266
+ if (goal) return;
267
+ if (timedOut) finish("timeout");
268
+ else if (event.reason === "error") finish("error");
269
+ else if (maxTurnsExceeded && event.reason !== "complete") finish("max_turns");
270
+ else if ((event.reason === "aborted" || aborted) && !maxTurnsExceeded) finish("aborted");
271
+ else finish("completed");
272
+ }
273
+ });
274
+ const thread = options.thread;
275
+ const targetResourceId = options.resourceId ?? session.identity.getResourceId();
276
+ let restoredThreadId;
277
+ try {
278
+ if (thread?.id) {
279
+ const resolved = await resolveThread(session, thread.id, targetResourceId);
280
+ if ("error" in resolved) return fail(resolved.error);
281
+ restoredThreadId = resolved.threadId;
282
+ } else if (thread?.continueLatest) {
283
+ const threads = await session.thread.list(targetResourceId ? { allResources: true } : void 0);
284
+ const resourceThreads = targetResourceId ? threads.filter((candidate) => candidate.resourceId === targetResourceId) : threads;
285
+ if (resourceThreads.length > 0) restoredThreadId = [...resourceThreads].sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime())[0].id;
286
+ }
287
+ } catch (err) {
288
+ return fail(`Failed to resolve thread: ${err.message}`);
289
+ }
290
+ const restoredThreadSelection = Boolean(restoredThreadId || thread?.clone);
291
+ const modeIdForModel = options.mode ?? (options.modeDefaults ? session.mode.get() : void 0);
292
+ const configuredDefaultModelId = modeIdForModel ? options.modeDefaults?.[modeIdForModel] : void 0;
293
+ const modelIdToApply = options.pack ? options.model : options.model ?? (options.mode || !restoredThreadSelection ? configuredDefaultModelId : void 0);
294
+ const modelSource = options.model ? "flag" : "mode";
295
+ try {
296
+ if (options.mode && !controller.listModes().some((mode) => mode.id === options.mode)) return fail(`Unknown mode: "${options.mode}"`);
297
+ if (modelIdToApply) {
298
+ const match = (await controller.listAvailableModels()).find((model) => model.id === modelIdToApply);
299
+ if (!match) {
300
+ if (modelSource === "flag") return fail(`Unknown model: "${modelIdToApply}"`);
301
+ return fail(`Unknown model "${modelIdToApply}" configured for mode "${modeIdForModel}"`);
302
+ }
303
+ if (!match.hasApiKey) {
304
+ const keyHint = match.apiKeyEnvVar ? ` Set ${match.apiKeyEnvVar} to use this model.` : "";
305
+ if (modelSource === "flag") return fail(`Model "${modelIdToApply}" has no API key configured.${keyHint}`);
306
+ return fail(`Model "${modelIdToApply}" (mode: ${modeIdForModel}) has no API key configured.${keyHint}`);
307
+ }
308
+ }
309
+ } catch (err) {
310
+ return fail(`Failed to resolve run config: ${err.message}`);
311
+ }
312
+ try {
313
+ if (options.resourceId) await controller.setResourceId(session, { resourceId: options.resourceId });
314
+ } catch (err) {
315
+ return fail(`Failed to set resource id: ${err.message}`);
316
+ }
317
+ try {
318
+ if (restoredThreadId) await session.thread.switch({ threadId: restoredThreadId });
319
+ else if (!thread?.clone) await session.thread.create();
320
+ } catch (err) {
321
+ return fail(`Failed to select thread: ${err.message}`);
322
+ }
323
+ if (thread?.clone) try {
324
+ await session.thread.clone();
325
+ } catch (err) {
326
+ return fail(`Failed to clone thread: ${err.message}`);
327
+ }
328
+ try {
329
+ if (options.mode) await session.mode.switch({ modeId: options.mode });
330
+ let packModelId;
331
+ if (options.pack) {
332
+ const packModeId = options.mode ?? session.mode.get();
333
+ const packSelection = options.pack.resolve(packModeId);
334
+ if (!packSelection) return fail(`Model pack "${options.pack.id}" has no model for ${packModeId} mode`);
335
+ const match = (await controller.listAvailableModels()).find((model) => model.id === packSelection.modelId);
336
+ if (!match) return fail(`Unknown model "${packSelection.modelId}" from pack "${options.pack.id}"`);
337
+ if (!match.hasApiKey) {
338
+ const keyHint = match.apiKeyEnvVar ? ` Set ${match.apiKeyEnvVar} to use this model.` : "";
339
+ return fail(`Model "${packSelection.modelId}" (pack: ${options.pack.id}) has no API key configured.${keyHint}`);
340
+ }
341
+ packModelId = packSelection.modelId;
342
+ await session.thread.setSetting({
343
+ key: THREAD_ACTIVE_MODEL_PACK_ID_KEY,
344
+ value: options.pack.id
345
+ });
346
+ await session.thread.setSetting({
347
+ key: MODEL_FALLBACK_STATE_KEY,
348
+ value: void 0
349
+ });
350
+ for (const [agentType, modelId] of Object.entries(packSelection.subagentModels ?? {})) await session.subagents.model.set({
351
+ modelId,
352
+ agentType
353
+ });
354
+ await session.state.set({
355
+ modelRoute: packSelection.modelRoute,
356
+ [MODEL_FALLBACK_STATE_KEY]: null
357
+ });
358
+ }
359
+ const sessionModelId = modelIdToApply ?? packModelId;
360
+ if (sessionModelId) await session.model.switch(sessionModelId);
361
+ options.pack?.onApplied?.();
362
+ if (options.thinkingLevel) await session.state.set({ thinkingLevel: options.thinkingLevel });
363
+ } catch (err) {
364
+ return fail(`Failed to apply run config: ${err.message}`);
365
+ }
366
+ if (options.title) try {
367
+ await session.thread.rename({ title: options.title });
368
+ } catch (err) {
369
+ return fail(`Failed to set thread title: ${err.message}`);
370
+ }
371
+ try {
372
+ if (goal) {
373
+ const threadId = session.thread.getId();
374
+ if (!threadId || !await session.thread.getById({ threadId })) await session.thread.create();
375
+ const goalManager = goal.goalManager ?? new GoalManager();
376
+ const state = {
377
+ controller,
378
+ session,
379
+ goalManager,
380
+ pendingNewThread: false
381
+ };
382
+ const objective = await goalManager.setGoal(state, goal.objective, goal.judgeModelId, goal.maxRuns);
383
+ if (!objective) return fail("Failed to set goal.");
384
+ const persisted = await controller.getCurrentAgent(session).getObjective({ threadId: session.thread.getId() });
385
+ if (!persisted || persisted.id !== objective.id) return fail("Failed to persist goal objective before sending goal signal.");
386
+ await goalManager.saveToThread(state);
387
+ if (!settled) await session.sendSignal(createGoalReminderSignal(objective)).accepted;
388
+ } else {
389
+ if (!options.prompt) return fail("A prompt or goal is required.");
390
+ await session.sendMessage({ content: options.prompt });
391
+ }
392
+ } catch (err) {
393
+ if (isSessionStartupCancelledError(err) || err instanceof Error && err.name === "AbortError" && (aborted || timedOut || options.signal?.aborted)) return finish(timedOut ? "timeout" : maxTurnsExceeded ? "max_turns" : "aborted");
394
+ return fail(`Failed to start run: ${err.message}`);
395
+ }
396
+ })();
397
+ return {
398
+ result,
399
+ abort,
400
+ [Symbol.asyncIterator]() {
401
+ return queue[Symbol.asyncIterator]();
402
+ }
403
+ };
404
+ }
405
+ //#endregion
406
+ export { runMC };
407
+
408
+ //# sourceMappingURL=run-mc.js.map