@andorra-labs/code 0.0.0-stage → 0.1.5

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 (1847) hide show
  1. package/LICENSE.md +38 -0
  2. package/README.md +231 -3
  3. package/THIRD_PARTY_NOTICES.md +56 -0
  4. package/dist/src/account-presentation.d.ts +53 -0
  5. package/dist/src/account-presentation.js +99 -0
  6. package/dist/src/activity.d.ts +41 -0
  7. package/dist/src/activity.js +79 -0
  8. package/dist/src/agent-definitions.d.ts +61 -0
  9. package/dist/src/agent-definitions.js +303 -0
  10. package/dist/src/agent-execution.d.ts +4 -0
  11. package/dist/src/agent-execution.js +1198 -0
  12. package/dist/src/agent-mcp.d.ts +105 -0
  13. package/dist/src/agent-mcp.js +859 -0
  14. package/dist/src/agent-modifiers.d.ts +8 -0
  15. package/dist/src/agent-modifiers.js +333 -0
  16. package/dist/src/analytics.d.ts +81 -0
  17. package/dist/src/analytics.js +81 -0
  18. package/dist/src/anthropic-console-auth.d.ts +68 -0
  19. package/dist/src/anthropic-console-auth.js +318 -0
  20. package/dist/src/anthropic-credentials.d.ts +41 -0
  21. package/dist/src/anthropic-credentials.js +107 -0
  22. package/dist/src/app-server/protocol.d.ts +500 -0
  23. package/dist/src/app-server/protocol.js +106 -0
  24. package/dist/src/app-server/reasoning.d.ts +43 -0
  25. package/dist/src/app-server/reasoning.js +173 -0
  26. package/dist/src/app-server/terminal.d.ts +77 -0
  27. package/dist/src/app-server/terminal.js +177 -0
  28. package/dist/src/app-server/workspace.d.ts +247 -0
  29. package/dist/src/app-server/workspace.js +1098 -0
  30. package/dist/src/app-server.d.ts +1039 -0
  31. package/dist/src/app-server.js +6594 -0
  32. package/dist/src/artifacts.d.ts +27 -0
  33. package/dist/src/artifacts.js +103 -0
  34. package/dist/src/attachments.d.ts +158 -0
  35. package/dist/src/attachments.js +466 -0
  36. package/dist/src/auth/AuthManager.d.ts +110 -0
  37. package/dist/src/auth/AuthManager.js +435 -0
  38. package/dist/src/auth/callback.d.ts +10 -0
  39. package/dist/src/auth/callback.js +96 -0
  40. package/dist/src/auth/deployment.d.ts +18 -0
  41. package/dist/src/auth/deployment.js +18 -0
  42. package/dist/src/auth/index.d.ts +31 -0
  43. package/dist/src/auth/index.js +27 -0
  44. package/dist/src/auth/lock.d.ts +2 -0
  45. package/dist/src/auth/lock.js +29 -0
  46. package/dist/src/auth/store.d.ts +20 -0
  47. package/dist/src/auth/store.js +93 -0
  48. package/dist/src/auth/types.d.ts +24 -0
  49. package/dist/src/auth/types.js +8 -0
  50. package/dist/src/auth-commands.d.ts +5 -0
  51. package/dist/src/auth-commands.js +28 -0
  52. package/dist/src/automation-runner.d.ts +7 -0
  53. package/dist/src/automation-runner.js +113 -0
  54. package/dist/src/automation-service.d.ts +28 -0
  55. package/dist/src/automation-service.js +299 -0
  56. package/dist/src/automation-tool.d.ts +2 -0
  57. package/dist/src/automation-tool.js +49 -0
  58. package/dist/src/automation-worker-shutdown.d.ts +3 -0
  59. package/dist/src/automation-worker-shutdown.js +13 -0
  60. package/dist/src/automations.d.ts +63 -0
  61. package/dist/src/automations.js +265 -0
  62. package/dist/src/boot-trace.d.ts +15 -0
  63. package/dist/src/boot-trace.js +25 -0
  64. package/dist/src/browser-activity.d.ts +4 -0
  65. package/dist/src/browser-activity.js +18 -0
  66. package/dist/src/browser-bridge.d.ts +56 -0
  67. package/dist/src/browser-bridge.js +372 -0
  68. package/dist/src/browser-observation.d.ts +24 -0
  69. package/dist/src/browser-observation.js +104 -0
  70. package/dist/src/browser-panel-tool.d.ts +39 -0
  71. package/dist/src/browser-panel-tool.js +227 -0
  72. package/dist/src/browser-runner.d.ts +16 -0
  73. package/dist/src/browser-runner.js +302 -0
  74. package/dist/src/browser-server.d.ts +31 -0
  75. package/dist/src/browser-server.js +1189 -0
  76. package/dist/src/browser-session.d.ts +19 -0
  77. package/dist/src/browser-session.js +649 -0
  78. package/dist/src/browser-ui/andorra-logo.png +0 -0
  79. package/dist/src/browser-ui/app.js +419 -0
  80. package/dist/src/browser-ui/index.html +13 -0
  81. package/dist/src/browser-ui/style.css +243 -0
  82. package/dist/src/browser-view.d.ts +348 -0
  83. package/dist/src/browser-view.js +1487 -0
  84. package/dist/src/capabilities.d.ts +9 -0
  85. package/dist/src/capabilities.js +135 -0
  86. package/dist/src/clarification-ui.d.ts +23 -0
  87. package/dist/src/clarification-ui.js +59 -0
  88. package/dist/src/claude-executable.d.ts +6 -0
  89. package/dist/src/claude-executable.js +56 -0
  90. package/dist/src/claude-provider.d.ts +35 -0
  91. package/dist/src/claude-provider.js +391 -0
  92. package/dist/src/cli.d.ts +85 -0
  93. package/dist/src/cli.js +2564 -0
  94. package/dist/src/code-intelligence/CodeIntelligenceManager.d.ts +108 -0
  95. package/dist/src/code-intelligence/CodeIntelligenceManager.js +616 -0
  96. package/dist/src/code-intelligence/ContextLedger.d.ts +32 -0
  97. package/dist/src/code-intelligence/ContextLedger.js +77 -0
  98. package/dist/src/code-intelligence/ContextRouter.d.ts +8 -0
  99. package/dist/src/code-intelligence/ContextRouter.js +18 -0
  100. package/dist/src/code-intelligence/codegraph/CodeGraphProjectSession.d.ts +82 -0
  101. package/dist/src/code-intelligence/codegraph/CodeGraphProjectSession.js +444 -0
  102. package/dist/src/code-intelligence/codegraph/CodeGraphProvider.d.ts +40 -0
  103. package/dist/src/code-intelligence/codegraph/CodeGraphProvider.js +84 -0
  104. package/dist/src/code-intelligence/codegraph/CodeGraphSyncBarrier.d.ts +22 -0
  105. package/dist/src/code-intelligence/codegraph/CodeGraphSyncBarrier.js +71 -0
  106. package/dist/src/code-intelligence/codegraph/repoExploreTool.d.ts +9 -0
  107. package/dist/src/code-intelligence/codegraph/repoExploreTool.js +26 -0
  108. package/dist/src/code-intelligence/repository.d.ts +13 -0
  109. package/dist/src/code-intelligence/repository.js +48 -0
  110. package/dist/src/code-intelligence/types.d.ts +78 -0
  111. package/dist/src/code-intelligence/types.js +3 -0
  112. package/dist/src/codex-auth.d.ts +83 -0
  113. package/dist/src/codex-auth.js +168 -0
  114. package/dist/src/codex-browser-auth.d.ts +74 -0
  115. package/dist/src/codex-browser-auth.js +429 -0
  116. package/dist/src/codex-errors.d.ts +3 -0
  117. package/dist/src/codex-errors.js +50 -0
  118. package/dist/src/codex-executable.d.ts +12 -0
  119. package/dist/src/codex-executable.js +154 -0
  120. package/dist/src/codex-provider.d.ts +25 -0
  121. package/dist/src/codex-provider.js +211 -0
  122. package/dist/src/codex-rpc.d.ts +43 -0
  123. package/dist/src/codex-rpc.js +136 -0
  124. package/dist/src/coding-tools.d.ts +19 -0
  125. package/dist/src/coding-tools.js +875 -0
  126. package/dist/src/command-metrics.d.ts +17 -0
  127. package/dist/src/command-metrics.js +34 -0
  128. package/dist/src/command-screens.d.ts +44 -0
  129. package/dist/src/command-screens.js +601 -0
  130. package/dist/src/commands.d.ts +111 -0
  131. package/dist/src/commands.js +550 -0
  132. package/dist/src/completion.d.ts +45 -0
  133. package/dist/src/completion.js +195 -0
  134. package/dist/src/config.d.ts +163 -0
  135. package/dist/src/config.js +663 -0
  136. package/dist/src/context-budget.d.ts +32 -0
  137. package/dist/src/context-budget.js +151 -0
  138. package/dist/src/context-compaction.d.ts +43 -0
  139. package/dist/src/context-compaction.js +269 -0
  140. package/dist/src/context-selection.d.ts +65 -0
  141. package/dist/src/context-selection.js +130 -0
  142. package/dist/src/dashboard-view.d.ts +37 -0
  143. package/dist/src/dashboard-view.js +254 -0
  144. package/dist/src/dashboard.d.ts +41 -0
  145. package/dist/src/dashboard.js +160 -0
  146. package/dist/src/deadline.d.ts +55 -0
  147. package/dist/src/deadline.js +164 -0
  148. package/dist/src/decision/ContinuationAdapter.d.ts +6 -0
  149. package/dist/src/decision/ContinuationAdapter.js +11 -0
  150. package/dist/src/decision/DecisionEngine.d.ts +23 -0
  151. package/dist/src/decision/DecisionEngine.js +1 -0
  152. package/dist/src/decision/DecisionManager.d.ts +47 -0
  153. package/dist/src/decision/DecisionManager.js +280 -0
  154. package/dist/src/decision/DecisionPolicy.d.ts +8 -0
  155. package/dist/src/decision/DecisionPolicy.js +54 -0
  156. package/dist/src/decision/FactContinuations.d.ts +147 -0
  157. package/dist/src/decision/FactContinuations.js +472 -0
  158. package/dist/src/decision/FactServiceGate.d.ts +12 -0
  159. package/dist/src/decision/FactServiceGate.js +37 -0
  160. package/dist/src/decision/PreparedSteps.d.ts +51 -0
  161. package/dist/src/decision/PreparedSteps.js +147 -0
  162. package/dist/src/decision/applyToolMenu.d.ts +3 -0
  163. package/dist/src/decision/applyToolMenu.js +61 -0
  164. package/dist/src/decision/checks.d.ts +13 -0
  165. package/dist/src/decision/checks.js +104 -0
  166. package/dist/src/decision/facts.d.ts +64 -0
  167. package/dist/src/decision/facts.js +90 -0
  168. package/dist/src/decision/guidancePolicy.d.ts +3 -0
  169. package/dist/src/decision/guidancePolicy.js +10 -0
  170. package/dist/src/decision/hostedPolicy.d.ts +14 -0
  171. package/dist/src/decision/hostedPolicy.js +21 -0
  172. package/dist/src/decision/index.d.ts +6 -0
  173. package/dist/src/decision/index.js +6 -0
  174. package/dist/src/decision/optimizationPolicy.d.ts +26 -0
  175. package/dist/src/decision/optimizationPolicy.js +38 -0
  176. package/dist/src/decision/providers/AndorraDecisionProvider.d.ts +17 -0
  177. package/dist/src/decision/providers/AndorraDecisionProvider.js +251 -0
  178. package/dist/src/decision/providers/HttpDecisionProvider.d.ts +16 -0
  179. package/dist/src/decision/providers/HttpDecisionProvider.js +105 -0
  180. package/dist/src/decision/providers/NoOpDecisionProvider.d.ts +4 -0
  181. package/dist/src/decision/providers/NoOpDecisionProvider.js +3 -0
  182. package/dist/src/decision/providers/index.d.ts +3 -0
  183. package/dist/src/decision/providers/index.js +13 -0
  184. package/dist/src/decision/providers/questions.d.ts +3 -0
  185. package/dist/src/decision/providers/questions.js +31 -0
  186. package/dist/src/decision/routeTools.d.ts +59 -0
  187. package/dist/src/decision/routeTools.js +131 -0
  188. package/dist/src/decision/toolFamilies.d.ts +7 -0
  189. package/dist/src/decision/toolFamilies.js +55 -0
  190. package/dist/src/decision/toolMenu.d.ts +35 -0
  191. package/dist/src/decision/toolMenu.js +73 -0
  192. package/dist/src/decision/types.d.ts +99 -0
  193. package/dist/src/decision/types.js +1 -0
  194. package/dist/src/diff-preview.d.ts +6 -0
  195. package/dist/src/diff-preview.js +120 -0
  196. package/dist/src/duration.d.ts +44 -0
  197. package/dist/src/duration.js +72 -0
  198. package/dist/src/efficiency.d.ts +101 -0
  199. package/dist/src/efficiency.js +104 -0
  200. package/dist/src/engine/protocol.d.ts +11 -0
  201. package/dist/src/engine/protocol.js +51 -0
  202. package/dist/src/extensions.d.ts +46 -0
  203. package/dist/src/extensions.js +846 -0
  204. package/dist/src/favicons.d.ts +37 -0
  205. package/dist/src/favicons.js +216 -0
  206. package/dist/src/file-read-state.d.ts +8 -0
  207. package/dist/src/file-read-state.js +31 -0
  208. package/dist/src/git-summary.d.ts +67 -0
  209. package/dist/src/git-summary.js +461 -0
  210. package/dist/src/goal-completion-verification.d.ts +18 -0
  211. package/dist/src/goal-completion-verification.js +43 -0
  212. package/dist/src/graph-account.d.ts +31 -0
  213. package/dist/src/graph-account.js +57 -0
  214. package/dist/src/graph-editor-session.d.ts +15 -0
  215. package/dist/src/graph-editor-session.js +70 -0
  216. package/dist/src/graph-health.d.ts +88 -0
  217. package/dist/src/graph-health.js +243 -0
  218. package/dist/src/graph-provider-portability.d.ts +30 -0
  219. package/dist/src/graph-provider-portability.js +197 -0
  220. package/dist/src/graph-quota.d.ts +55 -0
  221. package/dist/src/graph-quota.js +131 -0
  222. package/dist/src/graph-runner.d.ts +4 -0
  223. package/dist/src/graph-runner.js +1356 -0
  224. package/dist/src/graph-selection.d.ts +17 -0
  225. package/dist/src/graph-selection.js +31 -0
  226. package/dist/src/graph-server.d.ts +13 -0
  227. package/dist/src/graph-server.js +483 -0
  228. package/dist/src/graph-studio-features.d.ts +61 -0
  229. package/dist/src/graph-studio-features.js +348 -0
  230. package/dist/src/graph-sync.d.ts +76 -0
  231. package/dist/src/graph-sync.js +619 -0
  232. package/dist/src/graph-ui/andorra-logo.png +0 -0
  233. package/dist/src/graph-ui/app.js +1803 -0
  234. package/dist/src/graph-ui/compat.js +43 -0
  235. package/dist/src/graph-ui/controls.css +190 -0
  236. package/dist/src/graph-ui/controls.js +567 -0
  237. package/dist/src/graph-ui/edge-router.js +117 -0
  238. package/dist/src/graph-ui/embed.js +324 -0
  239. package/dist/src/graph-ui/fonts/geist-mono-latin-400-normal.woff2 +0 -0
  240. package/dist/src/graph-ui/fonts/geist-sans-latin-400-normal.woff2 +0 -0
  241. package/dist/src/graph-ui/fonts/geist-sans-latin-500-normal.woff2 +0 -0
  242. package/dist/src/graph-ui/icons.js +117 -0
  243. package/dist/src/graph-ui/index.html +7 -0
  244. package/dist/src/graph-ui/library.css +26 -0
  245. package/dist/src/graph-ui/sidebar.js +61 -0
  246. package/dist/src/graph-ui/studio-canvas.js +454 -0
  247. package/dist/src/graph-ui/studio.css +110 -0
  248. package/dist/src/graph-ui/studio.js +720 -0
  249. package/dist/src/graph-ui/style.css +477 -0
  250. package/dist/src/graph-ui/theme.js +92 -0
  251. package/dist/src/graph-ui/tokens.css +187 -0
  252. package/dist/src/graphs.d.ts +270 -0
  253. package/dist/src/graphs.js +1102 -0
  254. package/dist/src/grep-regex-worker.d.ts +1 -0
  255. package/dist/src/grep-regex-worker.js +20 -0
  256. package/dist/src/grep-regex.d.ts +11 -0
  257. package/dist/src/grep-regex.js +64 -0
  258. package/dist/src/handoffs.d.ts +34 -0
  259. package/dist/src/handoffs.js +229 -0
  260. package/dist/src/hardened-runtime.d.ts +14 -0
  261. package/dist/src/hardened-runtime.js +264 -0
  262. package/dist/src/limits.d.ts +77 -0
  263. package/dist/src/limits.js +88 -0
  264. package/dist/src/markdown.d.ts +31 -0
  265. package/dist/src/markdown.js +553 -0
  266. package/dist/src/mcp.d.ts +11 -0
  267. package/dist/src/mcp.js +175 -0
  268. package/dist/src/membership-errors.d.ts +4 -0
  269. package/dist/src/membership-errors.js +4 -0
  270. package/dist/src/membership.d.ts +81 -0
  271. package/dist/src/membership.js +247 -0
  272. package/dist/src/memory/LocalToolMemory.d.ts +20 -0
  273. package/dist/src/memory/LocalToolMemory.js +114 -0
  274. package/dist/src/memory/MemoryDistiller.d.ts +35 -0
  275. package/dist/src/memory/MemoryDistiller.js +216 -0
  276. package/dist/src/memory/MemoryManager.d.ts +76 -0
  277. package/dist/src/memory/MemoryManager.js +386 -0
  278. package/dist/src/memory/MemoryPolicy.d.ts +30 -0
  279. package/dist/src/memory/MemoryPolicy.js +96 -0
  280. package/dist/src/memory/MemoryProvider.d.ts +18 -0
  281. package/dist/src/memory/MemoryProvider.js +1 -0
  282. package/dist/src/memory/MemoryRetriever.d.ts +27 -0
  283. package/dist/src/memory/MemoryRetriever.js +149 -0
  284. package/dist/src/memory/PermissionMemoryProvider.d.ts +22 -0
  285. package/dist/src/memory/PermissionMemoryProvider.js +50 -0
  286. package/dist/src/memory/ToolFailureLessons.d.ts +39 -0
  287. package/dist/src/memory/ToolFailureLessons.js +167 -0
  288. package/dist/src/memory/index.d.ts +12 -0
  289. package/dist/src/memory/index.js +11 -0
  290. package/dist/src/memory/providers/NoOpMemoryProvider.d.ts +13 -0
  291. package/dist/src/memory/providers/NoOpMemoryProvider.js +15 -0
  292. package/dist/src/memory/providers/graphiti/GraphitiClient.d.ts +27 -0
  293. package/dist/src/memory/providers/graphiti/GraphitiClient.js +76 -0
  294. package/dist/src/memory/providers/graphiti/GraphitiMapper.d.ts +6 -0
  295. package/dist/src/memory/providers/graphiti/GraphitiMapper.js +116 -0
  296. package/dist/src/memory/providers/graphiti/GraphitiMemoryProvider.d.ts +27 -0
  297. package/dist/src/memory/providers/graphiti/GraphitiMemoryProvider.js +137 -0
  298. package/dist/src/memory/providers/graphiti/GraphitiTypes.d.ts +57 -0
  299. package/dist/src/memory/providers/graphiti/GraphitiTypes.js +2 -0
  300. package/dist/src/memory/redaction.d.ts +11 -0
  301. package/dist/src/memory/redaction.js +58 -0
  302. package/dist/src/memory/repository.d.ts +11 -0
  303. package/dist/src/memory/repository.js +74 -0
  304. package/dist/src/memory/tools/memorySearchTool.d.ts +4 -0
  305. package/dist/src/memory/tools/memorySearchTool.js +77 -0
  306. package/dist/src/memory/types.d.ts +112 -0
  307. package/dist/src/memory/types.js +7 -0
  308. package/dist/src/model-metadata.d.ts +28 -0
  309. package/dist/src/model-metadata.js +274 -0
  310. package/dist/src/model-override.d.ts +60 -0
  311. package/dist/src/model-override.js +146 -0
  312. package/dist/src/model-tiers.d.ts +61 -0
  313. package/dist/src/model-tiers.js +109 -0
  314. package/dist/src/opencode-catalog.d.ts +16 -0
  315. package/dist/src/opencode-catalog.js +135 -0
  316. package/dist/src/opencode-provider.d.ts +10 -0
  317. package/dist/src/opencode-provider.js +525 -0
  318. package/dist/src/paged-transcript.d.ts +58 -0
  319. package/dist/src/paged-transcript.js +205 -0
  320. package/dist/src/palette.d.ts +61 -0
  321. package/dist/src/palette.js +63 -0
  322. package/dist/src/permissions.d.ts +36 -0
  323. package/dist/src/permissions.js +93 -0
  324. package/dist/src/powershell-pool.d.ts +26 -0
  325. package/dist/src/powershell-pool.js +235 -0
  326. package/dist/src/profile.d.ts +80 -0
  327. package/dist/src/profile.js +200 -0
  328. package/dist/src/provider-connection.d.ts +36 -0
  329. package/dist/src/provider-connection.js +222 -0
  330. package/dist/src/provider-engine.d.ts +37 -0
  331. package/dist/src/provider-engine.js +401 -0
  332. package/dist/src/provider-import.d.ts +68 -0
  333. package/dist/src/provider-import.js +355 -0
  334. package/dist/src/provider-settings.d.ts +8 -0
  335. package/dist/src/provider-settings.js +451 -0
  336. package/dist/src/providers.d.ts +219 -0
  337. package/dist/src/providers.js +1230 -0
  338. package/dist/src/pull-requests.d.ts +195 -0
  339. package/dist/src/pull-requests.js +514 -0
  340. package/dist/src/qa/api/http-runner.d.ts +3 -0
  341. package/dist/src/qa/api/http-runner.js +47 -0
  342. package/dist/src/qa/browser/PlaywrightRunner.d.ts +21 -0
  343. package/dist/src/qa/browser/PlaywrightRunner.js +190 -0
  344. package/dist/src/qa/command-policy.d.ts +28 -0
  345. package/dist/src/qa/command-policy.js +122 -0
  346. package/dist/src/qa/git/ChangeDetector.d.ts +26 -0
  347. package/dist/src/qa/git/ChangeDetector.js +177 -0
  348. package/dist/src/qa/git/DiffReviewer.d.ts +28 -0
  349. package/dist/src/qa/git/DiffReviewer.js +115 -0
  350. package/dist/src/qa/index.d.ts +11 -0
  351. package/dist/src/qa/index.js +19 -0
  352. package/dist/src/qa/orchestrator/ChangeClassifier.d.ts +14 -0
  353. package/dist/src/qa/orchestrator/ChangeClassifier.js +28 -0
  354. package/dist/src/qa/orchestrator/MergeGate.d.ts +14 -0
  355. package/dist/src/qa/orchestrator/MergeGate.js +40 -0
  356. package/dist/src/qa/orchestrator/QaOrchestrator.d.ts +79 -0
  357. package/dist/src/qa/orchestrator/QaOrchestrator.js +373 -0
  358. package/dist/src/qa/profile/ProjectInspector.d.ts +9 -0
  359. package/dist/src/qa/profile/ProjectInspector.js +295 -0
  360. package/dist/src/qa/profile/QaConfigLoader.d.ts +43 -0
  361. package/dist/src/qa/profile/QaConfigLoader.js +261 -0
  362. package/dist/src/qa/profile/QaProfile.d.ts +17 -0
  363. package/dist/src/qa/profile/QaProfile.js +15 -0
  364. package/dist/src/qa/profile/yaml.d.ts +12 -0
  365. package/dist/src/qa/profile/yaml.js +203 -0
  366. package/dist/src/qa/qa-authorize.d.ts +25 -0
  367. package/dist/src/qa/qa-authorize.js +82 -0
  368. package/dist/src/qa/runners/CommandRunner.d.ts +22 -0
  369. package/dist/src/qa/runners/CommandRunner.js +96 -0
  370. package/dist/src/qa/runners/TestRunner.d.ts +21 -0
  371. package/dist/src/qa/runners/TestRunner.js +66 -0
  372. package/dist/src/qa/runtime/ProcessManager.d.ts +53 -0
  373. package/dist/src/qa/runtime/ProcessManager.js +225 -0
  374. package/dist/src/qa/runtime/PtyManager.d.ts +57 -0
  375. package/dist/src/qa/runtime/PtyManager.js +338 -0
  376. package/dist/src/qa/runtime/RuntimeSmoke.d.ts +11 -0
  377. package/dist/src/qa/runtime/RuntimeSmoke.js +78 -0
  378. package/dist/src/qa/runtime-detect.d.ts +10 -0
  379. package/dist/src/qa/runtime-detect.js +72 -0
  380. package/dist/src/qa/security/DependencyScanner.d.ts +19 -0
  381. package/dist/src/qa/security/DependencyScanner.js +167 -0
  382. package/dist/src/qa/security/SecretScanner.d.ts +3 -0
  383. package/dist/src/qa/security/SecretScanner.js +55 -0
  384. package/dist/src/qa/tools.d.ts +3 -0
  385. package/dist/src/qa/tools.js +301 -0
  386. package/dist/src/qa/types.d.ts +134 -0
  387. package/dist/src/qa/types.js +3 -0
  388. package/dist/src/react-runtime.d.ts +53 -0
  389. package/dist/src/react-runtime.js +1753 -0
  390. package/dist/src/remote/cert.d.ts +29 -0
  391. package/dist/src/remote/cert.js +136 -0
  392. package/dist/src/remote/client.d.ts +189 -0
  393. package/dist/src/remote/client.js +659 -0
  394. package/dist/src/remote/command.d.ts +4 -0
  395. package/dist/src/remote/command.js +211 -0
  396. package/dist/src/remote/engine-pool.d.ts +230 -0
  397. package/dist/src/remote/engine-pool.js +1160 -0
  398. package/dist/src/remote/errors.d.ts +26 -0
  399. package/dist/src/remote/errors.js +21 -0
  400. package/dist/src/remote/network.d.ts +48 -0
  401. package/dist/src/remote/network.js +135 -0
  402. package/dist/src/remote/pairing.d.ts +98 -0
  403. package/dist/src/remote/pairing.js +306 -0
  404. package/dist/src/remote/roots.d.ts +29 -0
  405. package/dist/src/remote/roots.js +44 -0
  406. package/dist/src/remote/serve.d.ts +115 -0
  407. package/dist/src/remote/serve.js +274 -0
  408. package/dist/src/remote/server.d.ts +35 -0
  409. package/dist/src/remote/server.js +484 -0
  410. package/dist/src/remote/types.d.ts +86 -0
  411. package/dist/src/remote/types.js +11 -0
  412. package/dist/src/run-control.d.ts +17 -0
  413. package/dist/src/run-control.js +52 -0
  414. package/dist/src/run-progress.d.ts +226 -0
  415. package/dist/src/run-progress.js +724 -0
  416. package/dist/src/run-records.d.ts +500 -0
  417. package/dist/src/run-records.js +1678 -0
  418. package/dist/src/runtime.d.ts +418 -0
  419. package/dist/src/runtime.js +247 -0
  420. package/dist/src/sandbox-child.d.ts +1 -0
  421. package/dist/src/sandbox-child.js +14 -0
  422. package/dist/src/save-lock.d.ts +9 -0
  423. package/dist/src/save-lock.js +186 -0
  424. package/dist/src/session-monitor.d.ts +98 -0
  425. package/dist/src/session-monitor.js +323 -0
  426. package/dist/src/session-reaper.d.ts +23 -0
  427. package/dist/src/session-reaper.js +33 -0
  428. package/dist/src/session-summary.d.ts +27 -0
  429. package/dist/src/session-summary.js +66 -0
  430. package/dist/src/session-title.d.ts +18 -0
  431. package/dist/src/session-title.js +54 -0
  432. package/dist/src/sessions.d.ts +211 -0
  433. package/dist/src/sessions.js +620 -0
  434. package/dist/src/shell.d.ts +40 -0
  435. package/dist/src/shell.js +504 -0
  436. package/dist/src/side-panel.d.ts +144 -0
  437. package/dist/src/side-panel.js +366 -0
  438. package/dist/src/skill-commands.d.ts +1 -0
  439. package/dist/src/skill-commands.js +11 -0
  440. package/dist/src/skills/bundled/ai-elements/SKILL.md +155 -0
  441. package/dist/src/skills/bundled/ai-elements/references/agent.md +138 -0
  442. package/dist/src/skills/bundled/ai-elements/references/artifact.md +91 -0
  443. package/dist/src/skills/bundled/ai-elements/references/attachments.md +197 -0
  444. package/dist/src/skills/bundled/ai-elements/references/audio-player.md +141 -0
  445. package/dist/src/skills/bundled/ai-elements/references/canvas.md +39 -0
  446. package/dist/src/skills/bundled/ai-elements/references/chain-of-thought.md +88 -0
  447. package/dist/src/skills/bundled/ai-elements/references/checkpoint.md +171 -0
  448. package/dist/src/skills/bundled/ai-elements/references/code-block.md +177 -0
  449. package/dist/src/skills/bundled/ai-elements/references/commit.md +184 -0
  450. package/dist/src/skills/bundled/ai-elements/references/confirmation.md +268 -0
  451. package/dist/src/skills/bundled/ai-elements/references/connection.md +39 -0
  452. package/dist/src/skills/bundled/ai-elements/references/context.md +133 -0
  453. package/dist/src/skills/bundled/ai-elements/references/controls.md +37 -0
  454. package/dist/src/skills/bundled/ai-elements/references/conversation.md +224 -0
  455. package/dist/src/skills/bundled/ai-elements/references/edge.md +57 -0
  456. package/dist/src/skills/bundled/ai-elements/references/environment-variables.md +109 -0
  457. package/dist/src/skills/bundled/ai-elements/references/file-tree.md +79 -0
  458. package/dist/src/skills/bundled/ai-elements/references/image.md +150 -0
  459. package/dist/src/skills/bundled/ai-elements/references/inline-citation.md +300 -0
  460. package/dist/src/skills/bundled/ai-elements/references/jsx-preview.md +108 -0
  461. package/dist/src/skills/bundled/ai-elements/references/message.md +231 -0
  462. package/dist/src/skills/bundled/ai-elements/references/mic-selector.md +193 -0
  463. package/dist/src/skills/bundled/ai-elements/references/model-selector.md +119 -0
  464. package/dist/src/skills/bundled/ai-elements/references/node.md +78 -0
  465. package/dist/src/skills/bundled/ai-elements/references/open-in-chat.md +74 -0
  466. package/dist/src/skills/bundled/ai-elements/references/package-info.md +102 -0
  467. package/dist/src/skills/bundled/ai-elements/references/panel.md +38 -0
  468. package/dist/src/skills/bundled/ai-elements/references/persona.md +173 -0
  469. package/dist/src/skills/bundled/ai-elements/references/plan.md +86 -0
  470. package/dist/src/skills/bundled/ai-elements/references/prompt-input.md +572 -0
  471. package/dist/src/skills/bundled/ai-elements/references/queue.md +179 -0
  472. package/dist/src/skills/bundled/ai-elements/references/reasoning.md +226 -0
  473. package/dist/src/skills/bundled/ai-elements/references/sandbox.md +133 -0
  474. package/dist/src/skills/bundled/ai-elements/references/schema-display.md +109 -0
  475. package/dist/src/skills/bundled/ai-elements/references/shimmer.md +55 -0
  476. package/dist/src/skills/bundled/ai-elements/references/snippet.md +71 -0
  477. package/dist/src/skills/bundled/ai-elements/references/sources.md +200 -0
  478. package/dist/src/skills/bundled/ai-elements/references/speech-input.md +167 -0
  479. package/dist/src/skills/bundled/ai-elements/references/stack-trace.md +225 -0
  480. package/dist/src/skills/bundled/ai-elements/references/suggestion.md +128 -0
  481. package/dist/src/skills/bundled/ai-elements/references/task.md +222 -0
  482. package/dist/src/skills/bundled/ai-elements/references/terminal.md +110 -0
  483. package/dist/src/skills/bundled/ai-elements/references/test-results.md +164 -0
  484. package/dist/src/skills/bundled/ai-elements/references/tool.md +282 -0
  485. package/dist/src/skills/bundled/ai-elements/references/toolbar.md +37 -0
  486. package/dist/src/skills/bundled/ai-elements/references/transcription.md +127 -0
  487. package/dist/src/skills/bundled/ai-elements/references/voice-selector.md +248 -0
  488. package/dist/src/skills/bundled/ai-elements/references/web-preview.md +204 -0
  489. package/dist/src/skills/bundled/ai-elements/scripts/agent.tsx +67 -0
  490. package/dist/src/skills/bundled/ai-elements/scripts/artifact.tsx +117 -0
  491. package/dist/src/skills/bundled/ai-elements/scripts/attachments-inline.tsx +123 -0
  492. package/dist/src/skills/bundled/ai-elements/scripts/attachments-list.tsx +94 -0
  493. package/dist/src/skills/bundled/ai-elements/scripts/attachments.tsx +84 -0
  494. package/dist/src/skills/bundled/ai-elements/scripts/audio-player-remote.tsx +35 -0
  495. package/dist/src/skills/bundled/ai-elements/scripts/audio-player.tsx +74 -0
  496. package/dist/src/skills/bundled/ai-elements/scripts/chain-of-thought.tsx +80 -0
  497. package/dist/src/skills/bundled/ai-elements/scripts/checkpoint.tsx +96 -0
  498. package/dist/src/skills/bundled/ai-elements/scripts/code-block-dark.tsx +46 -0
  499. package/dist/src/skills/bundled/ai-elements/scripts/code-block.tsx +120 -0
  500. package/dist/src/skills/bundled/ai-elements/scripts/commit.tsx +94 -0
  501. package/dist/src/skills/bundled/ai-elements/scripts/confirmation-accepted.tsx +41 -0
  502. package/dist/src/skills/bundled/ai-elements/scripts/confirmation-rejected.tsx +41 -0
  503. package/dist/src/skills/bundled/ai-elements/scripts/confirmation-request.tsx +54 -0
  504. package/dist/src/skills/bundled/ai-elements/scripts/confirmation.tsx +59 -0
  505. package/dist/src/skills/bundled/ai-elements/scripts/context.tsx +45 -0
  506. package/dist/src/skills/bundled/ai-elements/scripts/conversation.tsx +182 -0
  507. package/dist/src/skills/bundled/ai-elements/scripts/environment-variables.tsx +61 -0
  508. package/dist/src/skills/bundled/ai-elements/scripts/file-tree-basic.tsx +20 -0
  509. package/dist/src/skills/bundled/ai-elements/scripts/file-tree-expanded.tsx +23 -0
  510. package/dist/src/skills/bundled/ai-elements/scripts/file-tree-selection.tsx +26 -0
  511. package/dist/src/skills/bundled/ai-elements/scripts/file-tree.tsx +44 -0
  512. package/dist/src/skills/bundled/ai-elements/scripts/image.tsx +20 -0
  513. package/dist/src/skills/bundled/ai-elements/scripts/inline-citation.tsx +101 -0
  514. package/dist/src/skills/bundled/ai-elements/scripts/jsx-preview.tsx +105 -0
  515. package/dist/src/skills/bundled/ai-elements/scripts/message.tsx +330 -0
  516. package/dist/src/skills/bundled/ai-elements/scripts/mic-selector.tsx +52 -0
  517. package/dist/src/skills/bundled/ai-elements/scripts/model-selector.tsx +368 -0
  518. package/dist/src/skills/bundled/ai-elements/scripts/open-in-chat.tsx +33 -0
  519. package/dist/src/skills/bundled/ai-elements/scripts/package-info.tsx +52 -0
  520. package/dist/src/skills/bundled/ai-elements/scripts/persona-command.tsx +101 -0
  521. package/dist/src/skills/bundled/ai-elements/scripts/persona-glint.tsx +101 -0
  522. package/dist/src/skills/bundled/ai-elements/scripts/persona-halo.tsx +101 -0
  523. package/dist/src/skills/bundled/ai-elements/scripts/persona-mana.tsx +101 -0
  524. package/dist/src/skills/bundled/ai-elements/scripts/persona-obsidian.tsx +101 -0
  525. package/dist/src/skills/bundled/ai-elements/scripts/persona-opal.tsx +101 -0
  526. package/dist/src/skills/bundled/ai-elements/scripts/plan.tsx +69 -0
  527. package/dist/src/skills/bundled/ai-elements/scripts/prompt-input-cursor.tsx +462 -0
  528. package/dist/src/skills/bundled/ai-elements/scripts/prompt-input-tooltip.tsx +46 -0
  529. package/dist/src/skills/bundled/ai-elements/scripts/prompt-input.tsx +254 -0
  530. package/dist/src/skills/bundled/ai-elements/scripts/queue-prompt-input.tsx +372 -0
  531. package/dist/src/skills/bundled/ai-elements/scripts/queue.tsx +281 -0
  532. package/dist/src/skills/bundled/ai-elements/scripts/reasoning.tsx +73 -0
  533. package/dist/src/skills/bundled/ai-elements/scripts/sandbox.tsx +171 -0
  534. package/dist/src/skills/bundled/ai-elements/scripts/schema-display-basic.tsx +13 -0
  535. package/dist/src/skills/bundled/ai-elements/scripts/schema-display-body.tsx +20 -0
  536. package/dist/src/skills/bundled/ai-elements/scripts/schema-display-nested.tsx +23 -0
  537. package/dist/src/skills/bundled/ai-elements/scripts/schema-display-params.tsx +16 -0
  538. package/dist/src/skills/bundled/ai-elements/scripts/schema-display.tsx +110 -0
  539. package/dist/src/skills/bundled/ai-elements/scripts/shimmer-duration.tsx +35 -0
  540. package/dist/src/skills/bundled/ai-elements/scripts/shimmer-elements.tsx +45 -0
  541. package/dist/src/skills/bundled/ai-elements/scripts/shimmer.tsx +17 -0
  542. package/dist/src/skills/bundled/ai-elements/scripts/snippet-plain.tsx +19 -0
  543. package/dist/src/skills/bundled/ai-elements/scripts/snippet.tsx +25 -0
  544. package/dist/src/skills/bundled/ai-elements/scripts/sources-custom.tsx +40 -0
  545. package/dist/src/skills/bundled/ai-elements/scripts/sources.tsx +33 -0
  546. package/dist/src/skills/bundled/ai-elements/scripts/speech-input.tsx +85 -0
  547. package/dist/src/skills/bundled/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
  548. package/dist/src/skills/bundled/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
  549. package/dist/src/skills/bundled/ai-elements/scripts/stack-trace.tsx +60 -0
  550. package/dist/src/skills/bundled/ai-elements/scripts/suggestion-input.tsx +142 -0
  551. package/dist/src/skills/bundled/ai-elements/scripts/suggestion.tsx +34 -0
  552. package/dist/src/skills/bundled/ai-elements/scripts/task.tsx +59 -0
  553. package/dist/src/skills/bundled/ai-elements/scripts/terminal-basic.tsx +7 -0
  554. package/dist/src/skills/bundled/ai-elements/scripts/terminal-clear.tsx +19 -0
  555. package/dist/src/skills/bundled/ai-elements/scripts/terminal-streaming.tsx +38 -0
  556. package/dist/src/skills/bundled/ai-elements/scripts/terminal.tsx +83 -0
  557. package/dist/src/skills/bundled/ai-elements/scripts/test-results-basic.tsx +27 -0
  558. package/dist/src/skills/bundled/ai-elements/scripts/test-results-errors.tsx +51 -0
  559. package/dist/src/skills/bundled/ai-elements/scripts/test-results-suites.tsx +40 -0
  560. package/dist/src/skills/bundled/ai-elements/scripts/test-results.tsx +84 -0
  561. package/dist/src/skills/bundled/ai-elements/scripts/tool-input-available.tsx +31 -0
  562. package/dist/src/skills/bundled/ai-elements/scripts/tool-input-streaming.tsx +30 -0
  563. package/dist/src/skills/bundled/ai-elements/scripts/tool-output-available.tsx +81 -0
  564. package/dist/src/skills/bundled/ai-elements/scripts/tool-output-error.tsx +50 -0
  565. package/dist/src/skills/bundled/ai-elements/scripts/tool.tsx +210 -0
  566. package/dist/src/skills/bundled/ai-elements/scripts/transcription.tsx +289 -0
  567. package/dist/src/skills/bundled/ai-elements/scripts/voice-selector.tsx +233 -0
  568. package/dist/src/skills/bundled/ai-elements/scripts/web-preview.tsx +105 -0
  569. package/dist/src/skills/bundled/control-browser/SKILL.md +21 -0
  570. package/dist/src/skills/bundled/dynamic-workflows/SKILL.md +1520 -0
  571. package/dist/src/skills/bundled/dynamic-workflows/examples.md +801 -0
  572. package/dist/src/skills/bundled/dynamic-workflows/patterns.md +460 -0
  573. package/dist/src/skills/bundled/provenance.json +684 -0
  574. package/dist/src/skills/bundled/web-gui-tester/SKILL.md +159 -0
  575. package/dist/src/skills/project-skills.d.ts +11 -0
  576. package/dist/src/skills/project-skills.js +132 -0
  577. package/dist/src/skills/runtime-skills.d.ts +10 -0
  578. package/dist/src/skills/runtime-skills.js +237 -0
  579. package/dist/src/subagent-run.d.ts +278 -0
  580. package/dist/src/subagent-run.js +930 -0
  581. package/dist/src/telemetry/aggregate.d.ts +80 -0
  582. package/dist/src/telemetry/aggregate.js +217 -0
  583. package/dist/src/telemetry/capture-core.d.ts +190 -0
  584. package/dist/src/telemetry/capture-core.js +374 -0
  585. package/dist/src/telemetry/capture.d.ts +5 -0
  586. package/dist/src/telemetry/capture.js +16 -0
  587. package/dist/src/telemetry/classify.d.ts +102 -0
  588. package/dist/src/telemetry/classify.js +252 -0
  589. package/dist/src/telemetry/decision-capture.d.ts +13 -0
  590. package/dist/src/telemetry/decision-capture.js +40 -0
  591. package/dist/src/telemetry/emitter.d.ts +77 -0
  592. package/dist/src/telemetry/emitter.js +279 -0
  593. package/dist/src/telemetry/gate.d.ts +48 -0
  594. package/dist/src/telemetry/gate.js +55 -0
  595. package/dist/src/telemetry/identity.d.ts +19 -0
  596. package/dist/src/telemetry/identity.js +109 -0
  597. package/dist/src/telemetry/outbox.d.ts +91 -0
  598. package/dist/src/telemetry/outbox.js +356 -0
  599. package/dist/src/telemetry/schema.d.ts +184 -0
  600. package/dist/src/telemetry/schema.js +492 -0
  601. package/dist/src/telemetry/state.d.ts +90 -0
  602. package/dist/src/telemetry/state.js +195 -0
  603. package/dist/src/telemetry/surface.d.ts +76 -0
  604. package/dist/src/telemetry/surface.js +116 -0
  605. package/dist/src/telemetry/uploader.d.ts +29 -0
  606. package/dist/src/telemetry/uploader.js +151 -0
  607. package/dist/src/telemetry/uploads.d.ts +13 -0
  608. package/dist/src/telemetry/uploads.js +19 -0
  609. package/dist/src/telemetry/version.d.ts +5 -0
  610. package/dist/src/telemetry/version.js +25 -0
  611. package/dist/src/telemetry/workspace.d.ts +14 -0
  612. package/dist/src/telemetry/workspace.js +93 -0
  613. package/dist/src/terminal-ui.d.ts +744 -0
  614. package/dist/src/terminal-ui.js +3012 -0
  615. package/dist/src/text.d.ts +2 -0
  616. package/dist/src/text.js +8 -0
  617. package/dist/src/timers.d.ts +189 -0
  618. package/dist/src/timers.js +244 -0
  619. package/dist/src/todos.d.ts +12 -0
  620. package/dist/src/todos.js +33 -0
  621. package/dist/src/token-rate.d.ts +119 -0
  622. package/dist/src/token-rate.js +287 -0
  623. package/dist/src/tool-activity.d.ts +20 -0
  624. package/dist/src/tool-activity.js +76 -0
  625. package/dist/src/tool-call-clock.d.ts +32 -0
  626. package/dist/src/tool-call-clock.js +157 -0
  627. package/dist/src/tool-catalog.d.ts +40 -0
  628. package/dist/src/tool-catalog.js +100 -0
  629. package/dist/src/tool-dependencies.d.ts +23 -0
  630. package/dist/src/tool-dependencies.js +36 -0
  631. package/dist/src/tool-diff-stats.d.ts +24 -0
  632. package/dist/src/tool-diff-stats.js +122 -0
  633. package/dist/src/tool-errors.d.ts +12 -0
  634. package/dist/src/tool-errors.js +13 -0
  635. package/dist/src/tool-failure-tracker.d.ts +17 -0
  636. package/dist/src/tool-failure-tracker.js +71 -0
  637. package/dist/src/tool-names.d.ts +16 -0
  638. package/dist/src/tool-names.js +75 -0
  639. package/dist/src/tool-result-filter.d.ts +65 -0
  640. package/dist/src/tool-result-filter.js +447 -0
  641. package/dist/src/tool-schema-compatibility.d.ts +2 -0
  642. package/dist/src/tool-schema-compatibility.js +42 -0
  643. package/dist/src/tools.d.ts +3 -0
  644. package/dist/src/tools.js +663 -0
  645. package/dist/src/trajectory.d.ts +34 -0
  646. package/dist/src/trajectory.js +426 -0
  647. package/dist/src/transcript.d.ts +45 -0
  648. package/dist/src/transcript.js +228 -0
  649. package/dist/src/types.d.ts +248 -0
  650. package/dist/src/types.js +1 -0
  651. package/dist/src/update.d.ts +58 -0
  652. package/dist/src/update.js +571 -0
  653. package/dist/src/usage-analytics.d.ts +48 -0
  654. package/dist/src/usage-analytics.js +663 -0
  655. package/dist/src/widgets.d.ts +45 -0
  656. package/dist/src/widgets.js +71 -0
  657. package/dist/src/workspace-facts.d.ts +35 -0
  658. package/dist/src/workspace-facts.js +85 -0
  659. package/dist/src/workspace-git-metadata.d.ts +6 -0
  660. package/dist/src/workspace-git-metadata.js +114 -0
  661. package/dist/src/workspace-instructions.d.ts +7 -0
  662. package/dist/src/workspace-instructions.js +46 -0
  663. package/dist/vendor/engine/LICENSE.upstream +21 -0
  664. package/dist/vendor/engine/provenance.json +17923 -0
  665. package/dist/vendor/engine/runtime/agent/agent-loop.d.ts +23 -0
  666. package/dist/vendor/engine/runtime/agent/agent-loop.js +601 -0
  667. package/dist/vendor/engine/runtime/agent/agent.d.ts +130 -0
  668. package/dist/vendor/engine/runtime/agent/agent.js +430 -0
  669. package/dist/vendor/engine/runtime/agent/harness/agent-harness.d.ts +715 -0
  670. package/dist/vendor/engine/runtime/agent/harness/agent-harness.js +5 -0
  671. package/dist/vendor/engine/runtime/agent/harness/compaction/branch-summarization.d.ts +67 -0
  672. package/dist/vendor/engine/runtime/agent/harness/compaction/branch-summarization.js +175 -0
  673. package/dist/vendor/engine/runtime/agent/harness/compaction/compaction.d.ts +125 -0
  674. package/dist/vendor/engine/runtime/agent/harness/compaction/compaction.js +559 -0
  675. package/dist/vendor/engine/runtime/agent/harness/compaction/utils.d.ts +24 -0
  676. package/dist/vendor/engine/runtime/agent/harness/compaction/utils.js +119 -0
  677. package/dist/vendor/engine/runtime/agent/harness/config.d.ts +8 -0
  678. package/dist/vendor/engine/runtime/agent/harness/config.js +34 -0
  679. package/dist/vendor/engine/runtime/agent/harness/context.d.ts +8 -0
  680. package/dist/vendor/engine/runtime/agent/harness/context.js +12 -0
  681. package/dist/vendor/engine/runtime/agent/harness/events.d.ts +24 -0
  682. package/dist/vendor/engine/runtime/agent/harness/events.js +249 -0
  683. package/dist/vendor/engine/runtime/agent/harness/execution/assistant.d.ts +41 -0
  684. package/dist/vendor/engine/runtime/agent/harness/execution/assistant.js +81 -0
  685. package/dist/vendor/engine/runtime/agent/harness/execution/effect-gate.d.ts +21 -0
  686. package/dist/vendor/engine/runtime/agent/harness/execution/effect-gate.js +48 -0
  687. package/dist/vendor/engine/runtime/agent/harness/execution/tools.d.ts +66 -0
  688. package/dist/vendor/engine/runtime/agent/harness/execution/tools.js +118 -0
  689. package/dist/vendor/engine/runtime/agent/harness/hooks.d.ts +37 -0
  690. package/dist/vendor/engine/runtime/agent/harness/hooks.js +405 -0
  691. package/dist/vendor/engine/runtime/agent/harness/messages.d.ts +50 -0
  692. package/dist/vendor/engine/runtime/agent/harness/messages.js +102 -0
  693. package/dist/vendor/engine/runtime/agent/harness/prompt-templates.d.ts +48 -0
  694. package/dist/vendor/engine/runtime/agent/harness/prompt-templates.js +224 -0
  695. package/dist/vendor/engine/runtime/agent/harness/result.d.ts +132 -0
  696. package/dist/vendor/engine/runtime/agent/harness/result.js +80 -0
  697. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/boundary.d.ts +27 -0
  698. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/boundary.js +172 -0
  699. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/checkpoint.d.ts +7 -0
  700. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/checkpoint.js +132 -0
  701. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/deferred.d.ts +14 -0
  702. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/deferred.js +178 -0
  703. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/generation.d.ts +7 -0
  704. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/generation.js +204 -0
  705. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/reconcile.d.ts +4 -0
  706. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/reconcile.js +139 -0
  707. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/recovery.d.ts +7 -0
  708. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/recovery.js +84 -0
  709. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/response.d.ts +22 -0
  710. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/response.js +393 -0
  711. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/retry.d.ts +3 -0
  712. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/retry.js +33 -0
  713. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/structural.d.ts +31 -0
  714. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/structural.js +928 -0
  715. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/terminal.d.ts +6 -0
  716. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/terminal.js +48 -0
  717. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/tool-placement.d.ts +13 -0
  718. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/tool-placement.js +218 -0
  719. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/tools.d.ts +5 -0
  720. package/dist/vendor/engine/runtime/agent/harness/runtime/drive/tools.js +448 -0
  721. package/dist/vendor/engine/runtime/agent/harness/runtime/drive.d.ts +5 -0
  722. package/dist/vendor/engine/runtime/agent/harness/runtime/drive.js +92 -0
  723. package/dist/vendor/engine/runtime/agent/harness/runtime/harness.d.ts +58 -0
  724. package/dist/vendor/engine/runtime/agent/harness/runtime/harness.js +310 -0
  725. package/dist/vendor/engine/runtime/agent/harness/runtime/lane.d.ts +117 -0
  726. package/dist/vendor/engine/runtime/agent/harness/runtime/lane.js +1574 -0
  727. package/dist/vendor/engine/runtime/agent/harness/runtime/progress.d.ts +14 -0
  728. package/dist/vendor/engine/runtime/agent/harness/runtime/progress.js +65 -0
  729. package/dist/vendor/engine/runtime/agent/harness/runtime/reducer.d.ts +4 -0
  730. package/dist/vendor/engine/runtime/agent/harness/runtime/reducer.js +239 -0
  731. package/dist/vendor/engine/runtime/agent/harness/runtime/restore.d.ts +23 -0
  732. package/dist/vendor/engine/runtime/agent/harness/runtime/restore.js +116 -0
  733. package/dist/vendor/engine/runtime/agent/harness/runtime/transcript.d.ts +20 -0
  734. package/dist/vendor/engine/runtime/agent/harness/runtime/transcript.js +71 -0
  735. package/dist/vendor/engine/runtime/agent/harness/runtime/types.d.ts +104 -0
  736. package/dist/vendor/engine/runtime/agent/harness/runtime/types.js +60 -0
  737. package/dist/vendor/engine/runtime/agent/harness/session/commit.d.ts +52 -0
  738. package/dist/vendor/engine/runtime/agent/harness/session/commit.js +56 -0
  739. package/dist/vendor/engine/runtime/agent/harness/session/context.d.ts +9 -0
  740. package/dist/vendor/engine/runtime/agent/harness/session/context.js +48 -0
  741. package/dist/vendor/engine/runtime/agent/harness/session/fork-policy.d.ts +20 -0
  742. package/dist/vendor/engine/runtime/agent/harness/session/fork-policy.js +54 -0
  743. package/dist/vendor/engine/runtime/agent/harness/session/fork.d.ts +15 -0
  744. package/dist/vendor/engine/runtime/agent/harness/session/fork.js +78 -0
  745. package/dist/vendor/engine/runtime/agent/harness/session/in-memory-storage-state.d.ts +38 -0
  746. package/dist/vendor/engine/runtime/agent/harness/session/in-memory-storage-state.js +275 -0
  747. package/dist/vendor/engine/runtime/agent/harness/session/index.d.ts +10 -0
  748. package/dist/vendor/engine/runtime/agent/harness/session/index.js +8 -0
  749. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/codec.d.ts +20 -0
  750. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/codec.js +44 -0
  751. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/fork.d.ts +37 -0
  752. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/fork.js +263 -0
  753. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/index.d.ts +3 -0
  754. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/index.js +3 -0
  755. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/io.d.ts +13 -0
  756. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/io.js +85 -0
  757. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/legacy-v3.d.ts +43 -0
  758. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/legacy-v3.js +461 -0
  759. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/repo.d.ts +34 -0
  760. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/repo.js +300 -0
  761. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/storage.d.ts +40 -0
  762. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/storage.js +199 -0
  763. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/types.d.ts +38 -0
  764. package/dist/vendor/engine/runtime/agent/harness/session/jsonl/types.js +2 -0
  765. package/dist/vendor/engine/runtime/agent/harness/session/memory.d.ts +47 -0
  766. package/dist/vendor/engine/runtime/agent/harness/session/memory.js +368 -0
  767. package/dist/vendor/engine/runtime/agent/harness/session/mutation-line.d.ts +7 -0
  768. package/dist/vendor/engine/runtime/agent/harness/session/mutation-line.js +20 -0
  769. package/dist/vendor/engine/runtime/agent/harness/session/session.d.ts +81 -0
  770. package/dist/vendor/engine/runtime/agent/harness/session/session.js +360 -0
  771. package/dist/vendor/engine/runtime/agent/harness/session/types.d.ts +511 -0
  772. package/dist/vendor/engine/runtime/agent/harness/session/types.js +8 -0
  773. package/dist/vendor/engine/runtime/agent/harness/session/values.d.ts +94 -0
  774. package/dist/vendor/engine/runtime/agent/harness/session/values.js +80 -0
  775. package/dist/vendor/engine/runtime/agent/harness/skills.d.ts +45 -0
  776. package/dist/vendor/engine/runtime/agent/harness/skills.js +325 -0
  777. package/dist/vendor/engine/runtime/agent/harness/system-prompt.d.ts +2 -0
  778. package/dist/vendor/engine/runtime/agent/harness/system-prompt.js +29 -0
  779. package/dist/vendor/engine/runtime/agent/harness/telemetry.d.ts +1241 -0
  780. package/dist/vendor/engine/runtime/agent/harness/telemetry.js +526 -0
  781. package/dist/vendor/engine/runtime/agent/harness/tools/bash.d.ts +26 -0
  782. package/dist/vendor/engine/runtime/agent/harness/tools/bash.js +104 -0
  783. package/dist/vendor/engine/runtime/agent/harness/tools/edit-diff.d.ts +88 -0
  784. package/dist/vendor/engine/runtime/agent/harness/tools/edit-diff.js +385 -0
  785. package/dist/vendor/engine/runtime/agent/harness/tools/edit.d.ts +18 -0
  786. package/dist/vendor/engine/runtime/agent/harness/tools/edit.js +107 -0
  787. package/dist/vendor/engine/runtime/agent/harness/tools/file-mutation-queue.d.ts +4 -0
  788. package/dist/vendor/engine/runtime/agent/harness/tools/file-mutation-queue.js +45 -0
  789. package/dist/vendor/engine/runtime/agent/harness/tools/image.d.ts +2 -0
  790. package/dist/vendor/engine/runtime/agent/harness/tools/image.js +105 -0
  791. package/dist/vendor/engine/runtime/agent/harness/tools/index.d.ts +5 -0
  792. package/dist/vendor/engine/runtime/agent/harness/tools/index.js +4 -0
  793. package/dist/vendor/engine/runtime/agent/harness/tools/path-utils.d.ts +4 -0
  794. package/dist/vendor/engine/runtime/agent/harness/tools/path-utils.js +25 -0
  795. package/dist/vendor/engine/runtime/agent/harness/tools/read.d.ts +34 -0
  796. package/dist/vendor/engine/runtime/agent/harness/tools/read.js +107 -0
  797. package/dist/vendor/engine/runtime/agent/harness/tools/tool-context.d.ts +5 -0
  798. package/dist/vendor/engine/runtime/agent/harness/tools/tool-context.js +1 -0
  799. package/dist/vendor/engine/runtime/agent/harness/tools/write.d.ts +10 -0
  800. package/dist/vendor/engine/runtime/agent/harness/tools/write.js +30 -0
  801. package/dist/vendor/engine/runtime/agent/harness/types.d.ts +304 -0
  802. package/dist/vendor/engine/runtime/agent/harness/types.js +74 -0
  803. package/dist/vendor/engine/runtime/agent/harness/utils/adaptive-publisher.d.ts +23 -0
  804. package/dist/vendor/engine/runtime/agent/harness/utils/adaptive-publisher.js +78 -0
  805. package/dist/vendor/engine/runtime/agent/harness/utils/output-capture.d.ts +30 -0
  806. package/dist/vendor/engine/runtime/agent/harness/utils/output-capture.js +216 -0
  807. package/dist/vendor/engine/runtime/agent/harness/utils/shell-output.d.ts +28 -0
  808. package/dist/vendor/engine/runtime/agent/harness/utils/shell-output.js +70 -0
  809. package/dist/vendor/engine/runtime/agent/harness/utils/truncate.d.ts +70 -0
  810. package/dist/vendor/engine/runtime/agent/harness/utils/truncate.js +295 -0
  811. package/dist/vendor/engine/runtime/agent/harness/utils/usage.d.ts +3 -0
  812. package/dist/vendor/engine/runtime/agent/harness/utils/usage.js +32 -0
  813. package/dist/vendor/engine/runtime/agent/index.d.ts +27 -0
  814. package/dist/vendor/engine/runtime/agent/index.js +25 -0
  815. package/dist/vendor/engine/runtime/agent/proxy.d.ts +71 -0
  816. package/dist/vendor/engine/runtime/agent/proxy.js +309 -0
  817. package/dist/vendor/engine/runtime/agent/search/index.d.ts +28 -0
  818. package/dist/vendor/engine/runtime/agent/search/index.js +1 -0
  819. package/dist/vendor/engine/runtime/agent/stream-fn.d.ts +9 -0
  820. package/dist/vendor/engine/runtime/agent/stream-fn.js +16 -0
  821. package/dist/vendor/engine/runtime/agent/types.d.ts +431 -0
  822. package/dist/vendor/engine/runtime/agent/types.js +1 -0
  823. package/dist/vendor/engine/runtime/ai/api/anthropic-messages.d.ts +70 -0
  824. package/dist/vendor/engine/runtime/ai/api/anthropic-messages.js +1204 -0
  825. package/dist/vendor/engine/runtime/ai/api/anthropic-messages.lazy.d.ts +2 -0
  826. package/dist/vendor/engine/runtime/ai/api/anthropic-messages.lazy.js +2 -0
  827. package/dist/vendor/engine/runtime/ai/api/azure-openai-responses.d.ts +16 -0
  828. package/dist/vendor/engine/runtime/ai/api/azure-openai-responses.js +260 -0
  829. package/dist/vendor/engine/runtime/ai/api/azure-openai-responses.lazy.d.ts +2 -0
  830. package/dist/vendor/engine/runtime/ai/api/azure-openai-responses.lazy.js +2 -0
  831. package/dist/vendor/engine/runtime/ai/api/bedrock-converse-stream.d.ts +37 -0
  832. package/dist/vendor/engine/runtime/ai/api/bedrock-converse-stream.js +1091 -0
  833. package/dist/vendor/engine/runtime/ai/api/bedrock-converse-stream.lazy.d.ts +9 -0
  834. package/dist/vendor/engine/runtime/ai/api/bedrock-converse-stream.lazy.js +21 -0
  835. package/dist/vendor/engine/runtime/ai/api/constrained-sampling.d.ts +19 -0
  836. package/dist/vendor/engine/runtime/ai/api/constrained-sampling.js +221 -0
  837. package/dist/vendor/engine/runtime/ai/api/github-copilot-headers.d.ts +7 -0
  838. package/dist/vendor/engine/runtime/ai/api/github-copilot-headers.js +28 -0
  839. package/dist/vendor/engine/runtime/ai/api/google-generative-ai.d.ts +12 -0
  840. package/dist/vendor/engine/runtime/ai/api/google-generative-ai.js +368 -0
  841. package/dist/vendor/engine/runtime/ai/api/google-generative-ai.lazy.d.ts +2 -0
  842. package/dist/vendor/engine/runtime/ai/api/google-generative-ai.lazy.js +2 -0
  843. package/dist/vendor/engine/runtime/ai/api/google-shared.d.ts +92 -0
  844. package/dist/vendor/engine/runtime/ai/api/google-shared.js +450 -0
  845. package/dist/vendor/engine/runtime/ai/api/google-vertex.d.ts +14 -0
  846. package/dist/vendor/engine/runtime/ai/api/google-vertex.js +429 -0
  847. package/dist/vendor/engine/runtime/ai/api/google-vertex.lazy.d.ts +2 -0
  848. package/dist/vendor/engine/runtime/ai/api/google-vertex.lazy.js +2 -0
  849. package/dist/vendor/engine/runtime/ai/api/lazy.d.ts +24 -0
  850. package/dist/vendor/engine/runtime/ai/api/lazy.js +69 -0
  851. package/dist/vendor/engine/runtime/ai/api/mistral-conversations.d.ts +24 -0
  852. package/dist/vendor/engine/runtime/ai/api/mistral-conversations.js +747 -0
  853. package/dist/vendor/engine/runtime/ai/api/mistral-conversations.lazy.d.ts +2 -0
  854. package/dist/vendor/engine/runtime/ai/api/mistral-conversations.lazy.js +2 -0
  855. package/dist/vendor/engine/runtime/ai/api/openai-codex-responses.d.ts +30 -0
  856. package/dist/vendor/engine/runtime/ai/api/openai-codex-responses.js +1302 -0
  857. package/dist/vendor/engine/runtime/ai/api/openai-codex-responses.lazy.d.ts +2 -0
  858. package/dist/vendor/engine/runtime/ai/api/openai-codex-responses.lazy.js +2 -0
  859. package/dist/vendor/engine/runtime/ai/api/openai-completions.d.ts +25 -0
  860. package/dist/vendor/engine/runtime/ai/api/openai-completions.js +1339 -0
  861. package/dist/vendor/engine/runtime/ai/api/openai-completions.lazy.d.ts +2 -0
  862. package/dist/vendor/engine/runtime/ai/api/openai-completions.lazy.js +2 -0
  863. package/dist/vendor/engine/runtime/ai/api/openai-prompt-cache.d.ts +2 -0
  864. package/dist/vendor/engine/runtime/ai/api/openai-prompt-cache.js +9 -0
  865. package/dist/vendor/engine/runtime/ai/api/openai-responses-shared.d.ts +27 -0
  866. package/dist/vendor/engine/runtime/ai/api/openai-responses-shared.js +688 -0
  867. package/dist/vendor/engine/runtime/ai/api/openai-responses.d.ts +13 -0
  868. package/dist/vendor/engine/runtime/ai/api/openai-responses.js +292 -0
  869. package/dist/vendor/engine/runtime/ai/api/openai-responses.lazy.d.ts +2 -0
  870. package/dist/vendor/engine/runtime/ai/api/openai-responses.lazy.js +2 -0
  871. package/dist/vendor/engine/runtime/ai/api/openrouter-images.d.ts +2 -0
  872. package/dist/vendor/engine/runtime/ai/api/openrouter-images.js +131 -0
  873. package/dist/vendor/engine/runtime/ai/api/openrouter-images.lazy.d.ts +2 -0
  874. package/dist/vendor/engine/runtime/ai/api/openrouter-images.lazy.js +3 -0
  875. package/dist/vendor/engine/runtime/ai/api/pi-messages.d.ts +98 -0
  876. package/dist/vendor/engine/runtime/ai/api/pi-messages.js +312 -0
  877. package/dist/vendor/engine/runtime/ai/api/pi-messages.lazy.d.ts +2 -0
  878. package/dist/vendor/engine/runtime/ai/api/pi-messages.lazy.js +2 -0
  879. package/dist/vendor/engine/runtime/ai/api/simple-options.d.ts +14 -0
  880. package/dist/vendor/engine/runtime/ai/api/simple-options.js +65 -0
  881. package/dist/vendor/engine/runtime/ai/api/transform-messages.d.ts +7 -0
  882. package/dist/vendor/engine/runtime/ai/api/transform-messages.js +200 -0
  883. package/dist/vendor/engine/runtime/ai/auth/context.d.ts +6 -0
  884. package/dist/vendor/engine/runtime/ai/auth/context.js +33 -0
  885. package/dist/vendor/engine/runtime/ai/auth/credential-store.d.ts +16 -0
  886. package/dist/vendor/engine/runtime/ai/auth/credential-store.js +50 -0
  887. package/dist/vendor/engine/runtime/ai/auth/helpers.d.ts +21 -0
  888. package/dist/vendor/engine/runtime/ai/auth/helpers.js +52 -0
  889. package/dist/vendor/engine/runtime/ai/auth/oauth/load.d.ts +28 -0
  890. package/dist/vendor/engine/runtime/ai/auth/oauth/load.js +55 -0
  891. package/dist/vendor/engine/runtime/ai/auth/resolve.d.ts +26 -0
  892. package/dist/vendor/engine/runtime/ai/auth/resolve.js +131 -0
  893. package/dist/vendor/engine/runtime/ai/auth/types.d.ts +230 -0
  894. package/dist/vendor/engine/runtime/ai/auth/types.js +1 -0
  895. package/dist/vendor/engine/runtime/ai/compat/extension-oauth-types.d.ts +38 -0
  896. package/dist/vendor/engine/runtime/ai/compat/extension-oauth-types.js +1 -0
  897. package/dist/vendor/engine/runtime/ai/compat.d.ts +66 -0
  898. package/dist/vendor/engine/runtime/ai/compat.js +201 -0
  899. package/dist/vendor/engine/runtime/ai/env-api-keys.d.ts +20 -0
  900. package/dist/vendor/engine/runtime/ai/env-api-keys.js +148 -0
  901. package/dist/vendor/engine/runtime/ai/image-models.d.ts +9 -0
  902. package/dist/vendor/engine/runtime/ai/image-models.generated.d.ts +814 -0
  903. package/dist/vendor/engine/runtime/ai/image-models.generated.js +816 -0
  904. package/dist/vendor/engine/runtime/ai/image-models.js +22 -0
  905. package/dist/vendor/engine/runtime/ai/images-api-registry.d.ts +13 -0
  906. package/dist/vendor/engine/runtime/ai/images-api-registry.js +21 -0
  907. package/dist/vendor/engine/runtime/ai/images-models.d.ts +94 -0
  908. package/dist/vendor/engine/runtime/ai/images-models.js +142 -0
  909. package/dist/vendor/engine/runtime/ai/images.d.ts +3 -0
  910. package/dist/vendor/engine/runtime/ai/images.js +13 -0
  911. package/dist/vendor/engine/runtime/ai/index.d.ts +36 -0
  912. package/dist/vendor/engine/runtime/ai/index.js +23 -0
  913. package/dist/vendor/engine/runtime/ai/legacy-api-aliases.d.ts +41 -0
  914. package/dist/vendor/engine/runtime/ai/legacy-api-aliases.js +48 -0
  915. package/dist/vendor/engine/runtime/ai/model-catalog.d.ts +16 -0
  916. package/dist/vendor/engine/runtime/ai/model-catalog.js +3 -0
  917. package/dist/vendor/engine/runtime/ai/models-store.d.ts +28 -0
  918. package/dist/vendor/engine/runtime/ai/models-store.js +16 -0
  919. package/dist/vendor/engine/runtime/ai/models.d.ts +201 -0
  920. package/dist/vendor/engine/runtime/ai/models.generated.d.ts +84 -0
  921. package/dist/vendor/engine/runtime/ai/models.generated.js +86 -0
  922. package/dist/vendor/engine/runtime/ai/models.js +593 -0
  923. package/dist/vendor/engine/runtime/ai/oauth.d.ts +2 -0
  924. package/dist/vendor/engine/runtime/ai/oauth.js +1 -0
  925. package/dist/vendor/engine/runtime/ai/providers/all.d.ts +27 -0
  926. package/dist/vendor/engine/runtime/ai/providers/all.js +132 -0
  927. package/dist/vendor/engine/runtime/ai/providers/amazon-bedrock.d.ts +2 -0
  928. package/dist/vendor/engine/runtime/ai/providers/amazon-bedrock.js +92 -0
  929. package/dist/vendor/engine/runtime/ai/providers/amazon-bedrock.models.d.ts +3 -0
  930. package/dist/vendor/engine/runtime/ai/providers/amazon-bedrock.models.js +5 -0
  931. package/dist/vendor/engine/runtime/ai/providers/ant-ling.d.ts +2 -0
  932. package/dist/vendor/engine/runtime/ai/providers/ant-ling.js +14 -0
  933. package/dist/vendor/engine/runtime/ai/providers/ant-ling.models.d.ts +3 -0
  934. package/dist/vendor/engine/runtime/ai/providers/ant-ling.models.js +5 -0
  935. package/dist/vendor/engine/runtime/ai/providers/anthropic.d.ts +2 -0
  936. package/dist/vendor/engine/runtime/ai/providers/anthropic.js +55 -0
  937. package/dist/vendor/engine/runtime/ai/providers/anthropic.models.d.ts +3 -0
  938. package/dist/vendor/engine/runtime/ai/providers/anthropic.models.js +5 -0
  939. package/dist/vendor/engine/runtime/ai/providers/azure-openai-responses.d.ts +2 -0
  940. package/dist/vendor/engine/runtime/ai/providers/azure-openai-responses.js +13 -0
  941. package/dist/vendor/engine/runtime/ai/providers/azure-openai-responses.models.d.ts +3 -0
  942. package/dist/vendor/engine/runtime/ai/providers/azure-openai-responses.models.js +5 -0
  943. package/dist/vendor/engine/runtime/ai/providers/baseten.d.ts +2 -0
  944. package/dist/vendor/engine/runtime/ai/providers/baseten.js +14 -0
  945. package/dist/vendor/engine/runtime/ai/providers/baseten.models.d.ts +3 -0
  946. package/dist/vendor/engine/runtime/ai/providers/baseten.models.js +5 -0
  947. package/dist/vendor/engine/runtime/ai/providers/cerebras.d.ts +2 -0
  948. package/dist/vendor/engine/runtime/ai/providers/cerebras.js +14 -0
  949. package/dist/vendor/engine/runtime/ai/providers/cerebras.models.d.ts +3 -0
  950. package/dist/vendor/engine/runtime/ai/providers/cerebras.models.js +5 -0
  951. package/dist/vendor/engine/runtime/ai/providers/cloudflare-ai-gateway.d.ts +4 -0
  952. package/dist/vendor/engine/runtime/ai/providers/cloudflare-ai-gateway.js +24 -0
  953. package/dist/vendor/engine/runtime/ai/providers/cloudflare-ai-gateway.models.d.ts +3 -0
  954. package/dist/vendor/engine/runtime/ai/providers/cloudflare-ai-gateway.models.js +5 -0
  955. package/dist/vendor/engine/runtime/ai/providers/cloudflare-auth.d.ts +3 -0
  956. package/dist/vendor/engine/runtime/ai/providers/cloudflare-auth.js +85 -0
  957. package/dist/vendor/engine/runtime/ai/providers/cloudflare-stream.d.ts +7 -0
  958. package/dist/vendor/engine/runtime/ai/providers/cloudflare-stream.js +20 -0
  959. package/dist/vendor/engine/runtime/ai/providers/cloudflare-workers-ai.d.ts +2 -0
  960. package/dist/vendor/engine/runtime/ai/providers/cloudflare-workers-ai.js +14 -0
  961. package/dist/vendor/engine/runtime/ai/providers/cloudflare-workers-ai.models.d.ts +3 -0
  962. package/dist/vendor/engine/runtime/ai/providers/cloudflare-workers-ai.models.js +5 -0
  963. package/dist/vendor/engine/runtime/ai/providers/data/.manifest.json +1 -0
  964. package/dist/vendor/engine/runtime/ai/providers/data/amazon-bedrock.json +1 -0
  965. package/dist/vendor/engine/runtime/ai/providers/data/ant-ling.json +1 -0
  966. package/dist/vendor/engine/runtime/ai/providers/data/anthropic.json +1 -0
  967. package/dist/vendor/engine/runtime/ai/providers/data/azure-openai-responses.json +1 -0
  968. package/dist/vendor/engine/runtime/ai/providers/data/baseten.json +1 -0
  969. package/dist/vendor/engine/runtime/ai/providers/data/cerebras.json +1 -0
  970. package/dist/vendor/engine/runtime/ai/providers/data/cloudflare-ai-gateway.json +1 -0
  971. package/dist/vendor/engine/runtime/ai/providers/data/cloudflare-workers-ai.json +1 -0
  972. package/dist/vendor/engine/runtime/ai/providers/data/deepseek.json +1 -0
  973. package/dist/vendor/engine/runtime/ai/providers/data/fireworks.json +1 -0
  974. package/dist/vendor/engine/runtime/ai/providers/data/github-copilot.json +1 -0
  975. package/dist/vendor/engine/runtime/ai/providers/data/google-vertex.json +1 -0
  976. package/dist/vendor/engine/runtime/ai/providers/data/google.json +1 -0
  977. package/dist/vendor/engine/runtime/ai/providers/data/groq.json +1 -0
  978. package/dist/vendor/engine/runtime/ai/providers/data/huggingface.json +1 -0
  979. package/dist/vendor/engine/runtime/ai/providers/data/kimi-coding.json +1 -0
  980. package/dist/vendor/engine/runtime/ai/providers/data/meta.json +1 -0
  981. package/dist/vendor/engine/runtime/ai/providers/data/minimax-cn.json +1 -0
  982. package/dist/vendor/engine/runtime/ai/providers/data/minimax.json +1 -0
  983. package/dist/vendor/engine/runtime/ai/providers/data/mistral.json +1 -0
  984. package/dist/vendor/engine/runtime/ai/providers/data/moonshotai-cn.json +1 -0
  985. package/dist/vendor/engine/runtime/ai/providers/data/moonshotai.json +1 -0
  986. package/dist/vendor/engine/runtime/ai/providers/data/nvidia.json +1 -0
  987. package/dist/vendor/engine/runtime/ai/providers/data/openai-codex.json +1 -0
  988. package/dist/vendor/engine/runtime/ai/providers/data/openai.json +1 -0
  989. package/dist/vendor/engine/runtime/ai/providers/data/opencode-go.json +1 -0
  990. package/dist/vendor/engine/runtime/ai/providers/data/opencode.json +1 -0
  991. package/dist/vendor/engine/runtime/ai/providers/data/openrouter.json +1 -0
  992. package/dist/vendor/engine/runtime/ai/providers/data/qwen-token-plan-cn.json +1 -0
  993. package/dist/vendor/engine/runtime/ai/providers/data/qwen-token-plan-individual.json +1 -0
  994. package/dist/vendor/engine/runtime/ai/providers/data/qwen-token-plan.json +1 -0
  995. package/dist/vendor/engine/runtime/ai/providers/data/radius.json +1 -0
  996. package/dist/vendor/engine/runtime/ai/providers/data/together.json +1 -0
  997. package/dist/vendor/engine/runtime/ai/providers/data/vercel-ai-gateway.json +1 -0
  998. package/dist/vendor/engine/runtime/ai/providers/data/xai.json +1 -0
  999. package/dist/vendor/engine/runtime/ai/providers/data/xiaomi-token-plan-ams.json +1 -0
  1000. package/dist/vendor/engine/runtime/ai/providers/data/xiaomi-token-plan-cn.json +1 -0
  1001. package/dist/vendor/engine/runtime/ai/providers/data/xiaomi-token-plan-sgp.json +1 -0
  1002. package/dist/vendor/engine/runtime/ai/providers/data/xiaomi.json +1 -0
  1003. package/dist/vendor/engine/runtime/ai/providers/data/zai-coding-cn.json +1 -0
  1004. package/dist/vendor/engine/runtime/ai/providers/data/zai.json +1 -0
  1005. package/dist/vendor/engine/runtime/ai/providers/deepseek.d.ts +2 -0
  1006. package/dist/vendor/engine/runtime/ai/providers/deepseek.js +14 -0
  1007. package/dist/vendor/engine/runtime/ai/providers/deepseek.models.d.ts +3 -0
  1008. package/dist/vendor/engine/runtime/ai/providers/deepseek.models.js +5 -0
  1009. package/dist/vendor/engine/runtime/ai/providers/faux.d.ts +102 -0
  1010. package/dist/vendor/engine/runtime/ai/providers/faux.js +488 -0
  1011. package/dist/vendor/engine/runtime/ai/providers/fireworks.d.ts +2 -0
  1012. package/dist/vendor/engine/runtime/ai/providers/fireworks.js +18 -0
  1013. package/dist/vendor/engine/runtime/ai/providers/fireworks.models.d.ts +3 -0
  1014. package/dist/vendor/engine/runtime/ai/providers/fireworks.models.js +5 -0
  1015. package/dist/vendor/engine/runtime/ai/providers/github-copilot.d.ts +2 -0
  1016. package/dist/vendor/engine/runtime/ai/providers/github-copilot.js +34 -0
  1017. package/dist/vendor/engine/runtime/ai/providers/github-copilot.models.d.ts +3 -0
  1018. package/dist/vendor/engine/runtime/ai/providers/github-copilot.models.js +5 -0
  1019. package/dist/vendor/engine/runtime/ai/providers/google-vertex.d.ts +2 -0
  1020. package/dist/vendor/engine/runtime/ai/providers/google-vertex.js +93 -0
  1021. package/dist/vendor/engine/runtime/ai/providers/google-vertex.models.d.ts +3 -0
  1022. package/dist/vendor/engine/runtime/ai/providers/google-vertex.models.js +5 -0
  1023. package/dist/vendor/engine/runtime/ai/providers/google.d.ts +2 -0
  1024. package/dist/vendor/engine/runtime/ai/providers/google.js +14 -0
  1025. package/dist/vendor/engine/runtime/ai/providers/google.models.d.ts +3 -0
  1026. package/dist/vendor/engine/runtime/ai/providers/google.models.js +5 -0
  1027. package/dist/vendor/engine/runtime/ai/providers/groq.d.ts +2 -0
  1028. package/dist/vendor/engine/runtime/ai/providers/groq.js +14 -0
  1029. package/dist/vendor/engine/runtime/ai/providers/groq.models.d.ts +3 -0
  1030. package/dist/vendor/engine/runtime/ai/providers/groq.models.js +5 -0
  1031. package/dist/vendor/engine/runtime/ai/providers/huggingface.d.ts +2 -0
  1032. package/dist/vendor/engine/runtime/ai/providers/huggingface.js +14 -0
  1033. package/dist/vendor/engine/runtime/ai/providers/huggingface.models.d.ts +3 -0
  1034. package/dist/vendor/engine/runtime/ai/providers/huggingface.models.js +5 -0
  1035. package/dist/vendor/engine/runtime/ai/providers/images/register-builtins.d.ts +3 -0
  1036. package/dist/vendor/engine/runtime/ai/providers/images/register-builtins.js +33 -0
  1037. package/dist/vendor/engine/runtime/ai/providers/kimi-coding.d.ts +2 -0
  1038. package/dist/vendor/engine/runtime/ai/providers/kimi-coding.js +23 -0
  1039. package/dist/vendor/engine/runtime/ai/providers/kimi-coding.models.d.ts +3 -0
  1040. package/dist/vendor/engine/runtime/ai/providers/kimi-coding.models.js +5 -0
  1041. package/dist/vendor/engine/runtime/ai/providers/meta.d.ts +2 -0
  1042. package/dist/vendor/engine/runtime/ai/providers/meta.js +23 -0
  1043. package/dist/vendor/engine/runtime/ai/providers/meta.models.d.ts +3 -0
  1044. package/dist/vendor/engine/runtime/ai/providers/meta.models.js +5 -0
  1045. package/dist/vendor/engine/runtime/ai/providers/minimax-cn.d.ts +2 -0
  1046. package/dist/vendor/engine/runtime/ai/providers/minimax-cn.js +14 -0
  1047. package/dist/vendor/engine/runtime/ai/providers/minimax-cn.models.d.ts +3 -0
  1048. package/dist/vendor/engine/runtime/ai/providers/minimax-cn.models.js +5 -0
  1049. package/dist/vendor/engine/runtime/ai/providers/minimax.d.ts +2 -0
  1050. package/dist/vendor/engine/runtime/ai/providers/minimax.js +14 -0
  1051. package/dist/vendor/engine/runtime/ai/providers/minimax.models.d.ts +3 -0
  1052. package/dist/vendor/engine/runtime/ai/providers/minimax.models.js +5 -0
  1053. package/dist/vendor/engine/runtime/ai/providers/mistral.d.ts +2 -0
  1054. package/dist/vendor/engine/runtime/ai/providers/mistral.js +14 -0
  1055. package/dist/vendor/engine/runtime/ai/providers/mistral.models.d.ts +3 -0
  1056. package/dist/vendor/engine/runtime/ai/providers/mistral.models.js +5 -0
  1057. package/dist/vendor/engine/runtime/ai/providers/moonshotai-cn.d.ts +2 -0
  1058. package/dist/vendor/engine/runtime/ai/providers/moonshotai-cn.js +14 -0
  1059. package/dist/vendor/engine/runtime/ai/providers/moonshotai-cn.models.d.ts +3 -0
  1060. package/dist/vendor/engine/runtime/ai/providers/moonshotai-cn.models.js +5 -0
  1061. package/dist/vendor/engine/runtime/ai/providers/moonshotai.d.ts +2 -0
  1062. package/dist/vendor/engine/runtime/ai/providers/moonshotai.js +14 -0
  1063. package/dist/vendor/engine/runtime/ai/providers/moonshotai.models.d.ts +3 -0
  1064. package/dist/vendor/engine/runtime/ai/providers/moonshotai.models.js +5 -0
  1065. package/dist/vendor/engine/runtime/ai/providers/nvidia.d.ts +2 -0
  1066. package/dist/vendor/engine/runtime/ai/providers/nvidia.js +14 -0
  1067. package/dist/vendor/engine/runtime/ai/providers/nvidia.models.d.ts +3 -0
  1068. package/dist/vendor/engine/runtime/ai/providers/nvidia.models.js +5 -0
  1069. package/dist/vendor/engine/runtime/ai/providers/openai-codex.d.ts +2 -0
  1070. package/dist/vendor/engine/runtime/ai/providers/openai-codex.js +21 -0
  1071. package/dist/vendor/engine/runtime/ai/providers/openai-codex.models.d.ts +3 -0
  1072. package/dist/vendor/engine/runtime/ai/providers/openai-codex.models.js +5 -0
  1073. package/dist/vendor/engine/runtime/ai/providers/openai.d.ts +2 -0
  1074. package/dist/vendor/engine/runtime/ai/providers/openai.js +14 -0
  1075. package/dist/vendor/engine/runtime/ai/providers/openai.models.d.ts +3 -0
  1076. package/dist/vendor/engine/runtime/ai/providers/openai.models.js +5 -0
  1077. package/dist/vendor/engine/runtime/ai/providers/opencode-go.d.ts +2 -0
  1078. package/dist/vendor/engine/runtime/ai/providers/opencode-go.js +20 -0
  1079. package/dist/vendor/engine/runtime/ai/providers/opencode-go.models.d.ts +3 -0
  1080. package/dist/vendor/engine/runtime/ai/providers/opencode-go.models.js +5 -0
  1081. package/dist/vendor/engine/runtime/ai/providers/opencode-headers.d.ts +3 -0
  1082. package/dist/vendor/engine/runtime/ai/providers/opencode-headers.js +21 -0
  1083. package/dist/vendor/engine/runtime/ai/providers/opencode.d.ts +2 -0
  1084. package/dist/vendor/engine/runtime/ai/providers/opencode.js +22 -0
  1085. package/dist/vendor/engine/runtime/ai/providers/opencode.models.d.ts +3 -0
  1086. package/dist/vendor/engine/runtime/ai/providers/opencode.models.js +5 -0
  1087. package/dist/vendor/engine/runtime/ai/providers/openrouter-images.d.ts +2 -0
  1088. package/dist/vendor/engine/runtime/ai/providers/openrouter-images.js +21 -0
  1089. package/dist/vendor/engine/runtime/ai/providers/openrouter.d.ts +2 -0
  1090. package/dist/vendor/engine/runtime/ai/providers/openrouter.js +26 -0
  1091. package/dist/vendor/engine/runtime/ai/providers/openrouter.models.d.ts +3 -0
  1092. package/dist/vendor/engine/runtime/ai/providers/openrouter.models.js +5 -0
  1093. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-cn.d.ts +2 -0
  1094. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-cn.js +14 -0
  1095. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-cn.models.d.ts +3 -0
  1096. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-cn.models.js +5 -0
  1097. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-individual.d.ts +2 -0
  1098. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-individual.js +14 -0
  1099. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-individual.models.d.ts +3 -0
  1100. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan-individual.models.js +5 -0
  1101. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan.d.ts +2 -0
  1102. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan.js +14 -0
  1103. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan.models.d.ts +3 -0
  1104. package/dist/vendor/engine/runtime/ai/providers/qwen-token-plan.models.js +5 -0
  1105. package/dist/vendor/engine/runtime/ai/providers/radius-config.d.ts +25 -0
  1106. package/dist/vendor/engine/runtime/ai/providers/radius-config.js +62 -0
  1107. package/dist/vendor/engine/runtime/ai/providers/radius.d.ts +8 -0
  1108. package/dist/vendor/engine/runtime/ai/providers/radius.js +77 -0
  1109. package/dist/vendor/engine/runtime/ai/providers/radius.models.d.ts +3 -0
  1110. package/dist/vendor/engine/runtime/ai/providers/radius.models.js +5 -0
  1111. package/dist/vendor/engine/runtime/ai/providers/together.d.ts +2 -0
  1112. package/dist/vendor/engine/runtime/ai/providers/together.js +14 -0
  1113. package/dist/vendor/engine/runtime/ai/providers/together.models.d.ts +3 -0
  1114. package/dist/vendor/engine/runtime/ai/providers/together.models.js +5 -0
  1115. package/dist/vendor/engine/runtime/ai/providers/vercel-ai-gateway.d.ts +2 -0
  1116. package/dist/vendor/engine/runtime/ai/providers/vercel-ai-gateway.js +14 -0
  1117. package/dist/vendor/engine/runtime/ai/providers/vercel-ai-gateway.models.d.ts +3 -0
  1118. package/dist/vendor/engine/runtime/ai/providers/vercel-ai-gateway.models.js +5 -0
  1119. package/dist/vendor/engine/runtime/ai/providers/xai.d.ts +2 -0
  1120. package/dist/vendor/engine/runtime/ai/providers/xai.js +23 -0
  1121. package/dist/vendor/engine/runtime/ai/providers/xai.models.d.ts +3 -0
  1122. package/dist/vendor/engine/runtime/ai/providers/xai.models.js +5 -0
  1123. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-ams.d.ts +2 -0
  1124. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-ams.js +14 -0
  1125. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-ams.models.d.ts +3 -0
  1126. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-ams.models.js +5 -0
  1127. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-cn.d.ts +2 -0
  1128. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-cn.js +14 -0
  1129. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-cn.models.d.ts +3 -0
  1130. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-cn.models.js +5 -0
  1131. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-sgp.d.ts +2 -0
  1132. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-sgp.js +14 -0
  1133. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-sgp.models.d.ts +3 -0
  1134. package/dist/vendor/engine/runtime/ai/providers/xiaomi-token-plan-sgp.models.js +5 -0
  1135. package/dist/vendor/engine/runtime/ai/providers/xiaomi.d.ts +2 -0
  1136. package/dist/vendor/engine/runtime/ai/providers/xiaomi.js +14 -0
  1137. package/dist/vendor/engine/runtime/ai/providers/xiaomi.models.d.ts +3 -0
  1138. package/dist/vendor/engine/runtime/ai/providers/xiaomi.models.js +5 -0
  1139. package/dist/vendor/engine/runtime/ai/providers/zai-coding-cn.d.ts +2 -0
  1140. package/dist/vendor/engine/runtime/ai/providers/zai-coding-cn.js +14 -0
  1141. package/dist/vendor/engine/runtime/ai/providers/zai-coding-cn.models.d.ts +3 -0
  1142. package/dist/vendor/engine/runtime/ai/providers/zai-coding-cn.models.js +5 -0
  1143. package/dist/vendor/engine/runtime/ai/providers/zai.d.ts +2 -0
  1144. package/dist/vendor/engine/runtime/ai/providers/zai.js +14 -0
  1145. package/dist/vendor/engine/runtime/ai/providers/zai.models.d.ts +3 -0
  1146. package/dist/vendor/engine/runtime/ai/providers/zai.models.js +5 -0
  1147. package/dist/vendor/engine/runtime/ai/session-resources.d.ts +3 -0
  1148. package/dist/vendor/engine/runtime/ai/session-resources.js +21 -0
  1149. package/dist/vendor/engine/runtime/ai/types.d.ts +835 -0
  1150. package/dist/vendor/engine/runtime/ai/types.js +1 -0
  1151. package/dist/vendor/engine/runtime/ai/utils/abort-signals.d.ts +5 -0
  1152. package/dist/vendor/engine/runtime/ai/utils/abort-signals.js +33 -0
  1153. package/dist/vendor/engine/runtime/ai/utils/abort.d.ts +7 -0
  1154. package/dist/vendor/engine/runtime/ai/utils/abort.js +48 -0
  1155. package/dist/vendor/engine/runtime/ai/utils/assistant-message-frame.d.ts +76 -0
  1156. package/dist/vendor/engine/runtime/ai/utils/assistant-message-frame.js +424 -0
  1157. package/dist/vendor/engine/runtime/ai/utils/diagnostics.d.ts +19 -0
  1158. package/dist/vendor/engine/runtime/ai/utils/diagnostics.js +24 -0
  1159. package/dist/vendor/engine/runtime/ai/utils/error-body.d.ts +24 -0
  1160. package/dist/vendor/engine/runtime/ai/utils/error-body.js +132 -0
  1161. package/dist/vendor/engine/runtime/ai/utils/estimate.d.ts +16 -0
  1162. package/dist/vendor/engine/runtime/ai/utils/estimate.js +94 -0
  1163. package/dist/vendor/engine/runtime/ai/utils/event-stream.d.ts +20 -0
  1164. package/dist/vendor/engine/runtime/ai/utils/event-stream.js +98 -0
  1165. package/dist/vendor/engine/runtime/ai/utils/hash.d.ts +2 -0
  1166. package/dist/vendor/engine/runtime/ai/utils/hash.js +13 -0
  1167. package/dist/vendor/engine/runtime/ai/utils/headers.d.ts +3 -0
  1168. package/dist/vendor/engine/runtime/ai/utils/headers.js +17 -0
  1169. package/dist/vendor/engine/runtime/ai/utils/json-parse.d.ts +15 -0
  1170. package/dist/vendor/engine/runtime/ai/utils/json-parse.js +112 -0
  1171. package/dist/vendor/engine/runtime/ai/utils/node-http-proxy.d.ts +3 -0
  1172. package/dist/vendor/engine/runtime/ai/utils/node-http-proxy.js +132 -0
  1173. package/dist/vendor/engine/runtime/ai/utils/overflow.d.ts +68 -0
  1174. package/dist/vendor/engine/runtime/ai/utils/overflow.js +177 -0
  1175. package/dist/vendor/engine/runtime/ai/utils/pi-user-agent.d.ts +1 -0
  1176. package/dist/vendor/engine/runtime/ai/utils/pi-user-agent.js +11 -0
  1177. package/dist/vendor/engine/runtime/ai/utils/provider-env.d.ts +6 -0
  1178. package/dist/vendor/engine/runtime/ai/utils/provider-env.js +43 -0
  1179. package/dist/vendor/engine/runtime/ai/utils/provider-retry.d.ts +15 -0
  1180. package/dist/vendor/engine/runtime/ai/utils/provider-retry.js +93 -0
  1181. package/dist/vendor/engine/runtime/ai/utils/retry.d.ts +57 -0
  1182. package/dist/vendor/engine/runtime/ai/utils/retry.js +182 -0
  1183. package/dist/vendor/engine/runtime/ai/utils/sanitize-unicode.d.ts +21 -0
  1184. package/dist/vendor/engine/runtime/ai/utils/sanitize-unicode.js +25 -0
  1185. package/dist/vendor/engine/runtime/ai/utils/text.d.ts +13 -0
  1186. package/dist/vendor/engine/runtime/ai/utils/text.js +35 -0
  1187. package/dist/vendor/engine/runtime/ai/utils/transcript.d.ts +83 -0
  1188. package/dist/vendor/engine/runtime/ai/utils/transcript.js +203 -0
  1189. package/dist/vendor/engine/runtime/ai/utils/typebox-helpers.d.ts +16 -0
  1190. package/dist/vendor/engine/runtime/ai/utils/typebox-helpers.js +20 -0
  1191. package/dist/vendor/engine/runtime/ai/utils/uuid.d.ts +2 -0
  1192. package/dist/vendor/engine/runtime/ai/utils/uuid.js +41 -0
  1193. package/dist/vendor/engine/runtime/ai/utils/validation.d.ts +17 -0
  1194. package/dist/vendor/engine/runtime/ai/utils/validation.js +308 -0
  1195. package/dist/vendor/engine/runtime/chord/api.d.ts +14 -0
  1196. package/dist/vendor/engine/runtime/chord/api.js +71 -0
  1197. package/dist/vendor/engine/runtime/chord/context/index.d.ts +23 -0
  1198. package/dist/vendor/engine/runtime/chord/context/index.js +96 -0
  1199. package/dist/vendor/engine/runtime/chord/delta/index.d.ts +118 -0
  1200. package/dist/vendor/engine/runtime/chord/delta/index.js +1903 -0
  1201. package/dist/vendor/engine/runtime/chord/facets/host.d.ts +11 -0
  1202. package/dist/vendor/engine/runtime/chord/facets/host.js +762 -0
  1203. package/dist/vendor/engine/runtime/chord/facets/loader.d.ts +2 -0
  1204. package/dist/vendor/engine/runtime/chord/facets/loader.js +4 -0
  1205. package/dist/vendor/engine/runtime/chord/index.d.ts +10 -0
  1206. package/dist/vendor/engine/runtime/chord/index.js +9 -0
  1207. package/dist/vendor/engine/runtime/chord/json.d.ts +3 -0
  1208. package/dist/vendor/engine/runtime/chord/json.js +56 -0
  1209. package/dist/vendor/engine/runtime/chord/services/consumer.d.ts +10 -0
  1210. package/dist/vendor/engine/runtime/chord/services/consumer.js +536 -0
  1211. package/dist/vendor/engine/runtime/chord/services/errors.d.ts +7 -0
  1212. package/dist/vendor/engine/runtime/chord/services/errors.js +21 -0
  1213. package/dist/vendor/engine/runtime/chord/services/handle.d.ts +14 -0
  1214. package/dist/vendor/engine/runtime/chord/services/handle.js +100 -0
  1215. package/dist/vendor/engine/runtime/chord/services/instances.d.ts +24 -0
  1216. package/dist/vendor/engine/runtime/chord/services/instances.js +136 -0
  1217. package/dist/vendor/engine/runtime/chord/services/loopback.d.ts +4 -0
  1218. package/dist/vendor/engine/runtime/chord/services/loopback.js +14 -0
  1219. package/dist/vendor/engine/runtime/chord/services/provider.d.ts +36 -0
  1220. package/dist/vendor/engine/runtime/chord/services/provider.js +471 -0
  1221. package/dist/vendor/engine/runtime/chord/services/state-codec.d.ts +14 -0
  1222. package/dist/vendor/engine/runtime/chord/services/state-codec.js +114 -0
  1223. package/dist/vendor/engine/runtime/chord/services/state-internals.d.ts +10 -0
  1224. package/dist/vendor/engine/runtime/chord/services/state-internals.js +9 -0
  1225. package/dist/vendor/engine/runtime/chord/services/state.d.ts +22 -0
  1226. package/dist/vendor/engine/runtime/chord/services/state.js +123 -0
  1227. package/dist/vendor/engine/runtime/chord/services/wire.d.ts +59 -0
  1228. package/dist/vendor/engine/runtime/chord/services/wire.js +172 -0
  1229. package/dist/vendor/engine/runtime/chord/types.d.ts +202 -0
  1230. package/dist/vendor/engine/runtime/chord/types.js +1 -0
  1231. package/dist/vendor/engine/runtime/coding-agent/cli/args.d.ts +60 -0
  1232. package/dist/vendor/engine/runtime/coding-agent/cli/args.js +439 -0
  1233. package/dist/vendor/engine/runtime/coding-agent/cli/auth-check.d.ts +18 -0
  1234. package/dist/vendor/engine/runtime/coding-agent/cli/auth-check.js +49 -0
  1235. package/dist/vendor/engine/runtime/coding-agent/cli/auth-command.d.ts +23 -0
  1236. package/dist/vendor/engine/runtime/coding-agent/cli/auth-command.js +102 -0
  1237. package/dist/vendor/engine/runtime/coding-agent/cli/config-selector.d.ts +15 -0
  1238. package/dist/vendor/engine/runtime/coding-agent/cli/config-selector.js +31 -0
  1239. package/dist/vendor/engine/runtime/coding-agent/cli/credential-print.d.ts +12 -0
  1240. package/dist/vendor/engine/runtime/coding-agent/cli/credential-print.js +75 -0
  1241. package/dist/vendor/engine/runtime/coding-agent/cli/file-processor.d.ts +14 -0
  1242. package/dist/vendor/engine/runtime/coding-agent/cli/file-processor.js +70 -0
  1243. package/dist/vendor/engine/runtime/coding-agent/cli/initial-message.d.ts +17 -0
  1244. package/dist/vendor/engine/runtime/coding-agent/cli/initial-message.js +21 -0
  1245. package/dist/vendor/engine/runtime/coding-agent/cli/list-models.d.ts +8 -0
  1246. package/dist/vendor/engine/runtime/coding-agent/cli/list-models.js +97 -0
  1247. package/dist/vendor/engine/runtime/coding-agent/cli/project-trust.d.ts +9 -0
  1248. package/dist/vendor/engine/runtime/coding-agent/cli/project-trust.js +47 -0
  1249. package/dist/vendor/engine/runtime/coding-agent/cli/session-picker.d.ts +9 -0
  1250. package/dist/vendor/engine/runtime/coding-agent/cli/session-picker.js +35 -0
  1251. package/dist/vendor/engine/runtime/coding-agent/cli/startup-ui.d.ts +19 -0
  1252. package/dist/vendor/engine/runtime/coding-agent/cli/startup-ui.js +184 -0
  1253. package/dist/vendor/engine/runtime/coding-agent/config.d.ts +97 -0
  1254. package/dist/vendor/engine/runtime/coding-agent/config.js +463 -0
  1255. package/dist/vendor/engine/runtime/coding-agent/core/agent-session-runtime.d.ts +118 -0
  1256. package/dist/vendor/engine/runtime/coding-agent/core/agent-session-runtime.js +316 -0
  1257. package/dist/vendor/engine/runtime/coding-agent/core/agent-session-services.d.ts +85 -0
  1258. package/dist/vendor/engine/runtime/coding-agent/core/agent-session-services.js +133 -0
  1259. package/dist/vendor/engine/runtime/coding-agent/core/agent-session.d.ts +771 -0
  1260. package/dist/vendor/engine/runtime/coding-agent/core/agent-session.js +2990 -0
  1261. package/dist/vendor/engine/runtime/coding-agent/core/auth-guidance.d.ts +4 -0
  1262. package/dist/vendor/engine/runtime/coding-agent/core/auth-guidance.js +20 -0
  1263. package/dist/vendor/engine/runtime/coding-agent/core/auth-storage.d.ts +71 -0
  1264. package/dist/vendor/engine/runtime/coding-agent/core/auth-storage.js +425 -0
  1265. package/dist/vendor/engine/runtime/coding-agent/core/bash-executor.d.ts +31 -0
  1266. package/dist/vendor/engine/runtime/coding-agent/core/bash-executor.js +110 -0
  1267. package/dist/vendor/engine/runtime/coding-agent/core/bug-report-upload.d.ts +11 -0
  1268. package/dist/vendor/engine/runtime/coding-agent/core/bug-report-upload.js +21 -0
  1269. package/dist/vendor/engine/runtime/coding-agent/core/bug-report.d.ts +175 -0
  1270. package/dist/vendor/engine/runtime/coding-agent/core/bug-report.js +291 -0
  1271. package/dist/vendor/engine/runtime/coding-agent/core/cache-stats.d.ts +48 -0
  1272. package/dist/vendor/engine/runtime/coding-agent/core/cache-stats.js +111 -0
  1273. package/dist/vendor/engine/runtime/coding-agent/core/cache-warmer.d.ts +102 -0
  1274. package/dist/vendor/engine/runtime/coding-agent/core/cache-warmer.js +355 -0
  1275. package/dist/vendor/engine/runtime/coding-agent/core/compaction/branch-summarization.d.ts +97 -0
  1276. package/dist/vendor/engine/runtime/coding-agent/core/compaction/branch-summarization.js +250 -0
  1277. package/dist/vendor/engine/runtime/coding-agent/core/compaction/compaction.d.ts +142 -0
  1278. package/dist/vendor/engine/runtime/coding-agent/core/compaction/compaction.js +666 -0
  1279. package/dist/vendor/engine/runtime/coding-agent/core/compaction/index.d.ts +6 -0
  1280. package/dist/vendor/engine/runtime/coding-agent/core/compaction/index.js +6 -0
  1281. package/dist/vendor/engine/runtime/coding-agent/core/compaction/utils.d.ts +37 -0
  1282. package/dist/vendor/engine/runtime/coding-agent/core/compaction/utils.js +141 -0
  1283. package/dist/vendor/engine/runtime/coding-agent/core/crash-log.d.ts +26 -0
  1284. package/dist/vendor/engine/runtime/coding-agent/core/crash-log.js +138 -0
  1285. package/dist/vendor/engine/runtime/coding-agent/core/defaults.d.ts +3 -0
  1286. package/dist/vendor/engine/runtime/coding-agent/core/defaults.js +10 -0
  1287. package/dist/vendor/engine/runtime/coding-agent/core/diagnostics.d.ts +14 -0
  1288. package/dist/vendor/engine/runtime/coding-agent/core/diagnostics.js +1 -0
  1289. package/dist/vendor/engine/runtime/coding-agent/core/event-bus.d.ts +8 -0
  1290. package/dist/vendor/engine/runtime/coding-agent/core/event-bus.js +24 -0
  1291. package/dist/vendor/engine/runtime/coding-agent/core/exec.d.ts +28 -0
  1292. package/dist/vendor/engine/runtime/coding-agent/core/exec.js +74 -0
  1293. package/dist/vendor/engine/runtime/coding-agent/core/experimental.d.ts +1 -0
  1294. package/dist/vendor/engine/runtime/coding-agent/core/experimental.js +3 -0
  1295. package/dist/vendor/engine/runtime/coding-agent/core/export-html/ansi-to-html.d.ts +21 -0
  1296. package/dist/vendor/engine/runtime/coding-agent/core/export-html/ansi-to-html.js +248 -0
  1297. package/dist/vendor/engine/runtime/coding-agent/core/export-html/index.d.ts +36 -0
  1298. package/dist/vendor/engine/runtime/coding-agent/core/export-html/index.js +225 -0
  1299. package/dist/vendor/engine/runtime/coding-agent/core/export-html/template.css +1066 -0
  1300. package/dist/vendor/engine/runtime/coding-agent/core/export-html/template.html +55 -0
  1301. package/dist/vendor/engine/runtime/coding-agent/core/export-html/template.js +1864 -0
  1302. package/dist/vendor/engine/runtime/coding-agent/core/export-html/tool-renderer.d.ts +33 -0
  1303. package/dist/vendor/engine/runtime/coding-agent/core/export-html/tool-renderer.js +107 -0
  1304. package/dist/vendor/engine/runtime/coding-agent/core/export-html/vendor/highlight.min.js +1213 -0
  1305. package/dist/vendor/engine/runtime/coding-agent/core/export-html/vendor/marked.min.js +78 -0
  1306. package/dist/vendor/engine/runtime/coding-agent/core/extensions/index.d.ts +11 -0
  1307. package/dist/vendor/engine/runtime/coding-agent/core/extensions/index.js +8 -0
  1308. package/dist/vendor/engine/runtime/coding-agent/core/extensions/jiti-loader.d.ts +1 -0
  1309. package/dist/vendor/engine/runtime/coding-agent/core/extensions/jiti-loader.js +3 -0
  1310. package/dist/vendor/engine/runtime/coding-agent/core/extensions/jiti-static-loader.d.ts +1 -0
  1311. package/dist/vendor/engine/runtime/coding-agent/core/extensions/jiti-static-loader.js +3 -0
  1312. package/dist/vendor/engine/runtime/coding-agent/core/extensions/loader.d.ts +22 -0
  1313. package/dist/vendor/engine/runtime/coding-agent/core/extensions/loader.js +633 -0
  1314. package/dist/vendor/engine/runtime/coding-agent/core/extensions/runner.d.ts +180 -0
  1315. package/dist/vendor/engine/runtime/coding-agent/core/extensions/runner.js +1028 -0
  1316. package/dist/vendor/engine/runtime/coding-agent/core/extensions/types.d.ts +1362 -0
  1317. package/dist/vendor/engine/runtime/coding-agent/core/extensions/types.js +47 -0
  1318. package/dist/vendor/engine/runtime/coding-agent/core/extensions/virtual-modules.d.ts +2 -0
  1319. package/dist/vendor/engine/runtime/coding-agent/core/extensions/virtual-modules.js +37 -0
  1320. package/dist/vendor/engine/runtime/coding-agent/core/extensions/wrapper.d.ts +19 -0
  1321. package/dist/vendor/engine/runtime/coding-agent/core/extensions/wrapper.js +21 -0
  1322. package/dist/vendor/engine/runtime/coding-agent/core/footer-data-provider.d.ts +63 -0
  1323. package/dist/vendor/engine/runtime/coding-agent/core/footer-data-provider.js +337 -0
  1324. package/dist/vendor/engine/runtime/coding-agent/core/http-dispatcher.d.ts +21 -0
  1325. package/dist/vendor/engine/runtime/coding-agent/core/http-dispatcher.js +97 -0
  1326. package/dist/vendor/engine/runtime/coding-agent/core/keybindings.d.ts +427 -0
  1327. package/dist/vendor/engine/runtime/coding-agent/core/keybindings.js +320 -0
  1328. package/dist/vendor/engine/runtime/coding-agent/core/messages.d.ts +76 -0
  1329. package/dist/vendor/engine/runtime/coding-agent/core/messages.js +123 -0
  1330. package/dist/vendor/engine/runtime/coding-agent/core/model-config.d.ts +723 -0
  1331. package/dist/vendor/engine/runtime/coding-agent/core/model-config.js +281 -0
  1332. package/dist/vendor/engine/runtime/coding-agent/core/model-registry.d.ts +48 -0
  1333. package/dist/vendor/engine/runtime/coding-agent/core/model-registry.js +114 -0
  1334. package/dist/vendor/engine/runtime/coding-agent/core/model-resolver.d.ts +123 -0
  1335. package/dist/vendor/engine/runtime/coding-agent/core/model-resolver.js +589 -0
  1336. package/dist/vendor/engine/runtime/coding-agent/core/model-runtime.d.ts +100 -0
  1337. package/dist/vendor/engine/runtime/coding-agent/core/model-runtime.js +603 -0
  1338. package/dist/vendor/engine/runtime/coding-agent/core/models-store.d.ts +21 -0
  1339. package/dist/vendor/engine/runtime/coding-agent/core/models-store.js +114 -0
  1340. package/dist/vendor/engine/runtime/coding-agent/core/output-guard.d.ts +6 -0
  1341. package/dist/vendor/engine/runtime/coding-agent/core/output-guard.js +88 -0
  1342. package/dist/vendor/engine/runtime/coding-agent/core/package-manager.d.ts +212 -0
  1343. package/dist/vendor/engine/runtime/coding-agent/core/package-manager.js +2176 -0
  1344. package/dist/vendor/engine/runtime/coding-agent/core/pi-manifest.d.ts +7 -0
  1345. package/dist/vendor/engine/runtime/coding-agent/core/pi-manifest.js +25 -0
  1346. package/dist/vendor/engine/runtime/coding-agent/core/project-trust.d.ts +14 -0
  1347. package/dist/vendor/engine/runtime/coding-agent/core/project-trust.js +58 -0
  1348. package/dist/vendor/engine/runtime/coding-agent/core/prompt-templates.d.ts +53 -0
  1349. package/dist/vendor/engine/runtime/coding-agent/core/prompt-templates.js +235 -0
  1350. package/dist/vendor/engine/runtime/coding-agent/core/provider-attribution.d.ts +3 -0
  1351. package/dist/vendor/engine/runtime/coding-agent/core/provider-attribution.js +71 -0
  1352. package/dist/vendor/engine/runtime/coding-agent/core/provider-composer.d.ts +59 -0
  1353. package/dist/vendor/engine/runtime/coding-agent/core/provider-composer.js +422 -0
  1354. package/dist/vendor/engine/runtime/coding-agent/core/radius.d.ts +4 -0
  1355. package/dist/vendor/engine/runtime/coding-agent/core/radius.js +7 -0
  1356. package/dist/vendor/engine/runtime/coding-agent/core/remote-catalog-provider.d.ts +4 -0
  1357. package/dist/vendor/engine/runtime/coding-agent/core/remote-catalog-provider.js +121 -0
  1358. package/dist/vendor/engine/runtime/coding-agent/core/resolve-config-value.d.ts +29 -0
  1359. package/dist/vendor/engine/runtime/coding-agent/core/resolve-config-value.js +246 -0
  1360. package/dist/vendor/engine/runtime/coding-agent/core/resource-loader.d.ts +220 -0
  1361. package/dist/vendor/engine/runtime/coding-agent/core/resource-loader.js +874 -0
  1362. package/dist/vendor/engine/runtime/coding-agent/core/runtime-credentials.d.ts +14 -0
  1363. package/dist/vendor/engine/runtime/coding-agent/core/runtime-credentials.js +38 -0
  1364. package/dist/vendor/engine/runtime/coding-agent/core/sdk.d.ts +107 -0
  1365. package/dist/vendor/engine/runtime/coding-agent/core/sdk.js +296 -0
  1366. package/dist/vendor/engine/runtime/coding-agent/core/session-cwd.d.ts +18 -0
  1367. package/dist/vendor/engine/runtime/coding-agent/core/session-cwd.js +37 -0
  1368. package/dist/vendor/engine/runtime/coding-agent/core/session-export.d.ts +7 -0
  1369. package/dist/vendor/engine/runtime/coding-agent/core/session-export.js +32 -0
  1370. package/dist/vendor/engine/runtime/coding-agent/core/session-manager.d.ts +379 -0
  1371. package/dist/vendor/engine/runtime/coding-agent/core/session-manager.js +1432 -0
  1372. package/dist/vendor/engine/runtime/coding-agent/core/settings-diagnostics.d.ts +8 -0
  1373. package/dist/vendor/engine/runtime/coding-agent/core/settings-diagnostics.js +20 -0
  1374. package/dist/vendor/engine/runtime/coding-agent/core/settings-manager.d.ts +346 -0
  1375. package/dist/vendor/engine/runtime/coding-agent/core/settings-manager.js +1032 -0
  1376. package/dist/vendor/engine/runtime/coding-agent/core/skills.d.ts +59 -0
  1377. package/dist/vendor/engine/runtime/coding-agent/core/skills.js +406 -0
  1378. package/dist/vendor/engine/runtime/coding-agent/core/slash-commands.d.ts +14 -0
  1379. package/dist/vendor/engine/runtime/coding-agent/core/slash-commands.js +27 -0
  1380. package/dist/vendor/engine/runtime/coding-agent/core/source-info.d.ts +17 -0
  1381. package/dist/vendor/engine/runtime/coding-agent/core/source-info.js +18 -0
  1382. package/dist/vendor/engine/runtime/coding-agent/core/system-prompt.d.ts +70 -0
  1383. package/dist/vendor/engine/runtime/coding-agent/core/system-prompt.js +146 -0
  1384. package/dist/vendor/engine/runtime/coding-agent/core/telemetry.d.ts +2 -0
  1385. package/dist/vendor/engine/runtime/coding-agent/core/telemetry.js +8 -0
  1386. package/dist/vendor/engine/runtime/coding-agent/core/timings.d.ts +9 -0
  1387. package/dist/vendor/engine/runtime/coding-agent/core/timings.js +40 -0
  1388. package/dist/vendor/engine/runtime/coding-agent/core/tools/bash.d.ts +89 -0
  1389. package/dist/vendor/engine/runtime/coding-agent/core/tools/bash.js +303 -0
  1390. package/dist/vendor/engine/runtime/coding-agent/core/tools/edit-diff.d.ts +100 -0
  1391. package/dist/vendor/engine/runtime/coding-agent/core/tools/edit-diff.js +420 -0
  1392. package/dist/vendor/engine/runtime/coding-agent/core/tools/edit.d.ts +43 -0
  1393. package/dist/vendor/engine/runtime/coding-agent/core/tools/edit.js +146 -0
  1394. package/dist/vendor/engine/runtime/coding-agent/core/tools/file-mutation-queue.d.ts +5 -0
  1395. package/dist/vendor/engine/runtime/coding-agent/core/tools/file-mutation-queue.js +51 -0
  1396. package/dist/vendor/engine/runtime/coding-agent/core/tools/find.d.ts +41 -0
  1397. package/dist/vendor/engine/runtime/coding-agent/core/tools/find.js +250 -0
  1398. package/dist/vendor/engine/runtime/coding-agent/core/tools/grep.d.ts +40 -0
  1399. package/dist/vendor/engine/runtime/coding-agent/core/tools/grep.js +251 -0
  1400. package/dist/vendor/engine/runtime/coding-agent/core/tools/index.d.ts +42 -0
  1401. package/dist/vendor/engine/runtime/coding-agent/core/tools/index.js +128 -0
  1402. package/dist/vendor/engine/runtime/coding-agent/core/tools/ls.d.ts +40 -0
  1403. package/dist/vendor/engine/runtime/coding-agent/core/tools/ls.js +125 -0
  1404. package/dist/vendor/engine/runtime/coding-agent/core/tools/output-accumulator.d.ts +54 -0
  1405. package/dist/vendor/engine/runtime/coding-agent/core/tools/output-accumulator.js +189 -0
  1406. package/dist/vendor/engine/runtime/coding-agent/core/tools/path-utils.d.ts +9 -0
  1407. package/dist/vendor/engine/runtime/coding-agent/core/tools/path-utils.js +98 -0
  1408. package/dist/vendor/engine/runtime/coding-agent/core/tools/powershell.d.ts +15 -0
  1409. package/dist/vendor/engine/runtime/coding-agent/core/tools/powershell.js +38 -0
  1410. package/dist/vendor/engine/runtime/coding-agent/core/tools/read.d.ts +41 -0
  1411. package/dist/vendor/engine/runtime/coding-agent/core/tools/read.js +168 -0
  1412. package/dist/vendor/engine/runtime/coding-agent/core/tools/render-utils.d.ts +23 -0
  1413. package/dist/vendor/engine/runtime/coding-agent/core/tools/render-utils.js +64 -0
  1414. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/bash.d.ts +11 -0
  1415. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/bash.js +137 -0
  1416. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/edit.d.ts +22 -0
  1417. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/edit.js +166 -0
  1418. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/find.d.ts +9 -0
  1419. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/find.js +63 -0
  1420. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/grep.d.ts +9 -0
  1421. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/grep.js +68 -0
  1422. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/index.d.ts +27 -0
  1423. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/index.js +46 -0
  1424. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/ls.d.ts +9 -0
  1425. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/ls.js +57 -0
  1426. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/read.d.ts +10 -0
  1427. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/read.js +128 -0
  1428. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/write.d.ts +9 -0
  1429. package/dist/vendor/engine/runtime/coding-agent/core/tools/renderers/write.js +152 -0
  1430. package/dist/vendor/engine/runtime/coding-agent/core/tools/tool-definition-wrapper.d.ts +13 -0
  1431. package/dist/vendor/engine/runtime/coding-agent/core/tools/tool-definition-wrapper.js +35 -0
  1432. package/dist/vendor/engine/runtime/coding-agent/core/tools/truncate.d.ts +69 -0
  1433. package/dist/vendor/engine/runtime/coding-agent/core/tools/truncate.js +214 -0
  1434. package/dist/vendor/engine/runtime/coding-agent/core/tools/write.d.ts +29 -0
  1435. package/dist/vendor/engine/runtime/coding-agent/core/tools/write.js +60 -0
  1436. package/dist/vendor/engine/runtime/coding-agent/core/trust-manager.d.ts +35 -0
  1437. package/dist/vendor/engine/runtime/coding-agent/core/trust-manager.js +202 -0
  1438. package/dist/vendor/engine/runtime/coding-agent/core/usage-totals.d.ts +18 -0
  1439. package/dist/vendor/engine/runtime/coding-agent/core/usage-totals.js +55 -0
  1440. package/dist/vendor/engine/runtime/coding-agent/extensions/index.d.ts +2 -0
  1441. package/dist/vendor/engine/runtime/coding-agent/extensions/index.js +2 -0
  1442. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/client.d.ts +68 -0
  1443. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/client.js +312 -0
  1444. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/huggingface.d.ts +22 -0
  1445. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/huggingface.js +140 -0
  1446. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/index.d.ts +2 -0
  1447. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/index.js +218 -0
  1448. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/provider.d.ts +11 -0
  1449. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/provider.js +160 -0
  1450. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/ui.d.ts +41 -0
  1451. package/dist/vendor/engine/runtime/coding-agent/extensions/llama/ui.js +415 -0
  1452. package/dist/vendor/engine/runtime/coding-agent/index.d.ts +36 -0
  1453. package/dist/vendor/engine/runtime/coding-agent/index.js +47 -0
  1454. package/dist/vendor/engine/runtime/coding-agent/main.d.ts +15 -0
  1455. package/dist/vendor/engine/runtime/coding-agent/main.js +808 -0
  1456. package/dist/vendor/engine/runtime/coding-agent/migrations.d.ts +32 -0
  1457. package/dist/vendor/engine/runtime/coding-agent/migrations.js +281 -0
  1458. package/dist/vendor/engine/runtime/coding-agent/modes/index.d.ts +9 -0
  1459. package/dist/vendor/engine/runtime/coding-agent/modes/index.js +7 -0
  1460. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/bug-report.d.ts +15 -0
  1461. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/bug-report.js +209 -0
  1462. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/chat-viewport.d.ts +19 -0
  1463. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/chat-viewport.js +27 -0
  1464. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/armin.d.ts +33 -0
  1465. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/armin.js +332 -0
  1466. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/assistant-message.d.ts +25 -0
  1467. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/assistant-message.js +157 -0
  1468. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/bash-execution.d.ts +33 -0
  1469. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/bash-execution.js +174 -0
  1470. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/bordered-loader.d.ts +15 -0
  1471. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/bordered-loader.js +53 -0
  1472. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/branch-summary-message.d.ts +15 -0
  1473. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/branch-summary-message.js +50 -0
  1474. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/compaction-summary-message.d.ts +15 -0
  1475. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/compaction-summary-message.js +51 -0
  1476. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/config-selector.d.ts +101 -0
  1477. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/config-selector.js +760 -0
  1478. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/countdown-timer.d.ts +13 -0
  1479. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/countdown-timer.js +32 -0
  1480. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/custom-editor.d.ts +29 -0
  1481. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/custom-editor.js +114 -0
  1482. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/custom-entry.d.ts +18 -0
  1483. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/custom-entry.js +51 -0
  1484. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/custom-message.d.ts +21 -0
  1485. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/custom-message.js +86 -0
  1486. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/daxnuts.d.ts +22 -0
  1487. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/daxnuts.js +139 -0
  1488. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/diff.d.ts +11 -0
  1489. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/diff.js +132 -0
  1490. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/dynamic-border.d.ts +14 -0
  1491. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/dynamic-border.js +20 -0
  1492. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/earendil-announcement.d.ts +4 -0
  1493. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/earendil-announcement.js +39 -0
  1494. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/extension-editor.d.ts +23 -0
  1495. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/extension-editor.js +102 -0
  1496. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/extension-input.d.ts +24 -0
  1497. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/extension-input.js +66 -0
  1498. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/extension-selector.d.ts +26 -0
  1499. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/extension-selector.js +86 -0
  1500. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/first-time-setup.d.ts +24 -0
  1501. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/first-time-setup.js +102 -0
  1502. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/footer.d.ts +31 -0
  1503. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/footer.js +224 -0
  1504. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/index.d.ts +33 -0
  1505. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/index.js +34 -0
  1506. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/keybinding-hints.d.ts +12 -0
  1507. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/keybinding-hints.js +35 -0
  1508. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/login-dialog.d.ts +51 -0
  1509. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/login-dialog.js +187 -0
  1510. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/markdown-transform.d.ts +2 -0
  1511. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/markdown-transform.js +18 -0
  1512. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/mermaid.d.ts +10 -0
  1513. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/mermaid.js +74 -0
  1514. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/model-selector.d.ts +59 -0
  1515. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/model-selector.js +360 -0
  1516. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/oauth-selector.d.ts +32 -0
  1517. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/oauth-selector.js +162 -0
  1518. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/scoped-models-selector.d.ts +45 -0
  1519. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/scoped-models-selector.js +325 -0
  1520. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/session-selector-search.d.ts +22 -0
  1521. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/session-selector-search.js +154 -0
  1522. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/session-selector.d.ts +94 -0
  1523. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/session-selector.js +892 -0
  1524. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/settings-selector.d.ts +93 -0
  1525. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/settings-selector.js +719 -0
  1526. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/settings-submenu.d.ts +71 -0
  1527. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/settings-submenu.js +164 -0
  1528. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/show-images-selector.d.ts +9 -0
  1529. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/show-images-selector.js +38 -0
  1530. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/skill-invocation-message.d.ts +16 -0
  1531. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/skill-invocation-message.js +53 -0
  1532. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/status-indicator.d.ts +29 -0
  1533. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/status-indicator.js +66 -0
  1534. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/theme-selector.d.ts +10 -0
  1535. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/theme-selector.js +49 -0
  1536. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/thinking-selector.d.ts +22 -0
  1537. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/thinking-selector.js +108 -0
  1538. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/tool-execution.d.ts +79 -0
  1539. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/tool-execution.js +336 -0
  1540. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/tree-selector.d.ts +93 -0
  1541. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/tree-selector.js +1246 -0
  1542. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/trust-selector.d.ts +22 -0
  1543. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/trust-selector.js +90 -0
  1544. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/user-message-selector.d.ts +29 -0
  1545. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/user-message-selector.js +113 -0
  1546. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/user-message.d.ts +15 -0
  1547. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/user-message.js +48 -0
  1548. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/visual-truncate.d.ts +23 -0
  1549. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/components/visual-truncate.js +32 -0
  1550. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/external-editor.d.ts +11 -0
  1551. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/external-editor.js +37 -0
  1552. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/interactive-mode.d.ts +467 -0
  1553. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/interactive-mode.js +5720 -0
  1554. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/model-catalog-refresh.d.ts +6 -0
  1555. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/model-catalog-refresh.js +33 -0
  1556. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/model-search.d.ts +11 -0
  1557. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/model-search.js +14 -0
  1558. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/session-share.d.ts +17 -0
  1559. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/session-share.js +187 -0
  1560. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/dark.json +91 -0
  1561. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/light.json +90 -0
  1562. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/theme-controller.d.ts +40 -0
  1563. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/theme-controller.js +129 -0
  1564. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/theme-json.d.ts +83 -0
  1565. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/theme-json.js +129 -0
  1566. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/theme-schema.json +356 -0
  1567. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/theme.d.ts +130 -0
  1568. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/theme/theme.js +990 -0
  1569. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/tui-renderer.d.ts +20 -0
  1570. package/dist/vendor/engine/runtime/coding-agent/modes/interactive/tui-renderer.js +65 -0
  1571. package/dist/vendor/engine/runtime/coding-agent/modes/json-event.d.ts +33 -0
  1572. package/dist/vendor/engine/runtime/coding-agent/modes/json-event.js +28 -0
  1573. package/dist/vendor/engine/runtime/coding-agent/modes/print-mode.d.ts +27 -0
  1574. package/dist/vendor/engine/runtime/coding-agent/modes/print-mode.js +141 -0
  1575. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/jsonl.d.ts +16 -0
  1576. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/jsonl.js +48 -0
  1577. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/rpc-client.d.ts +253 -0
  1578. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/rpc-client.js +494 -0
  1579. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/rpc-mode.d.ts +19 -0
  1580. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/rpc-mode.js +656 -0
  1581. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/rpc-types.d.ts +468 -0
  1582. package/dist/vendor/engine/runtime/coding-agent/modes/rpc/rpc-types.js +7 -0
  1583. package/dist/vendor/engine/runtime/coding-agent/package-manager-cli.d.ts +8 -0
  1584. package/dist/vendor/engine/runtime/coding-agent/package-manager-cli.js +960 -0
  1585. package/dist/vendor/engine/runtime/coding-agent/utils/abort.d.ts +4 -0
  1586. package/dist/vendor/engine/runtime/coding-agent/utils/abort.js +47 -0
  1587. package/dist/vendor/engine/runtime/coding-agent/utils/ansi.d.ts +1 -0
  1588. package/dist/vendor/engine/runtime/coding-agent/utils/ansi.js +51 -0
  1589. package/dist/vendor/engine/runtime/coding-agent/utils/changelog.d.ts +21 -0
  1590. package/dist/vendor/engine/runtime/coding-agent/utils/changelog.js +164 -0
  1591. package/dist/vendor/engine/runtime/coding-agent/utils/child-process.d.ts +17 -0
  1592. package/dist/vendor/engine/runtime/coding-agent/utils/child-process.js +105 -0
  1593. package/dist/vendor/engine/runtime/coding-agent/utils/clipboard-command.d.ts +6 -0
  1594. package/dist/vendor/engine/runtime/coding-agent/utils/clipboard-command.js +44 -0
  1595. package/dist/vendor/engine/runtime/coding-agent/utils/clipboard-image.d.ts +10 -0
  1596. package/dist/vendor/engine/runtime/coding-agent/utils/clipboard-image.js +216 -0
  1597. package/dist/vendor/engine/runtime/coding-agent/utils/clipboard.d.ts +3 -0
  1598. package/dist/vendor/engine/runtime/coding-agent/utils/clipboard.js +150 -0
  1599. package/dist/vendor/engine/runtime/coding-agent/utils/exif-orientation.d.ts +4 -0
  1600. package/dist/vendor/engine/runtime/coding-agent/utils/exif-orientation.js +156 -0
  1601. package/dist/vendor/engine/runtime/coding-agent/utils/frontmatter.d.ts +7 -0
  1602. package/dist/vendor/engine/runtime/coding-agent/utils/frontmatter.js +26 -0
  1603. package/dist/vendor/engine/runtime/coding-agent/utils/fs-watch.d.ts +4 -0
  1604. package/dist/vendor/engine/runtime/coding-agent/utils/fs-watch.js +24 -0
  1605. package/dist/vendor/engine/runtime/coding-agent/utils/git.d.ts +25 -0
  1606. package/dist/vendor/engine/runtime/coding-agent/utils/git.js +194 -0
  1607. package/dist/vendor/engine/runtime/coding-agent/utils/html.d.ts +6 -0
  1608. package/dist/vendor/engine/runtime/coding-agent/utils/html.js +39 -0
  1609. package/dist/vendor/engine/runtime/coding-agent/utils/image-convert.d.ts +9 -0
  1610. package/dist/vendor/engine/runtime/coding-agent/utils/image-convert.js +44 -0
  1611. package/dist/vendor/engine/runtime/coding-agent/utils/image-process.d.ts +17 -0
  1612. package/dist/vendor/engine/runtime/coding-agent/utils/image-process.js +82 -0
  1613. package/dist/vendor/engine/runtime/coding-agent/utils/image-resize-core.d.ts +29 -0
  1614. package/dist/vendor/engine/runtime/coding-agent/utils/image-resize-core.js +123 -0
  1615. package/dist/vendor/engine/runtime/coding-agent/utils/image-resize-worker.d.ts +1 -0
  1616. package/dist/vendor/engine/runtime/coding-agent/utils/image-resize-worker.js +30 -0
  1617. package/dist/vendor/engine/runtime/coding-agent/utils/image-resize.d.ts +15 -0
  1618. package/dist/vendor/engine/runtime/coding-agent/utils/image-resize.js +96 -0
  1619. package/dist/vendor/engine/runtime/coding-agent/utils/json.d.ts +2 -0
  1620. package/dist/vendor/engine/runtime/coding-agent/utils/json.js +6 -0
  1621. package/dist/vendor/engine/runtime/coding-agent/utils/management-http.d.ts +24 -0
  1622. package/dist/vendor/engine/runtime/coding-agent/utils/management-http.js +53 -0
  1623. package/dist/vendor/engine/runtime/coding-agent/utils/mime.d.ts +2 -0
  1624. package/dist/vendor/engine/runtime/coding-agent/utils/mime.js +109 -0
  1625. package/dist/vendor/engine/runtime/coding-agent/utils/open-browser.d.ts +8 -0
  1626. package/dist/vendor/engine/runtime/coding-agent/utils/open-browser.js +21 -0
  1627. package/dist/vendor/engine/runtime/coding-agent/utils/paths.d.ts +33 -0
  1628. package/dist/vendor/engine/runtime/coding-agent/utils/paths.js +113 -0
  1629. package/dist/vendor/engine/runtime/coding-agent/utils/photon.d.ts +20 -0
  1630. package/dist/vendor/engine/runtime/coding-agent/utils/photon.js +120 -0
  1631. package/dist/vendor/engine/runtime/coding-agent/utils/pi-user-agent.d.ts +1 -0
  1632. package/dist/vendor/engine/runtime/coding-agent/utils/pi-user-agent.js +4 -0
  1633. package/dist/vendor/engine/runtime/coding-agent/utils/shell.d.ts +33 -0
  1634. package/dist/vendor/engine/runtime/coding-agent/utils/shell.js +215 -0
  1635. package/dist/vendor/engine/runtime/coding-agent/utils/sleep.d.ts +4 -0
  1636. package/dist/vendor/engine/runtime/coding-agent/utils/sleep.js +16 -0
  1637. package/dist/vendor/engine/runtime/coding-agent/utils/syntax-highlight.d.ts +12 -0
  1638. package/dist/vendor/engine/runtime/coding-agent/utils/syntax-highlight.js +176 -0
  1639. package/dist/vendor/engine/runtime/coding-agent/utils/text.d.ts +7 -0
  1640. package/dist/vendor/engine/runtime/coding-agent/utils/text.js +8 -0
  1641. package/dist/vendor/engine/runtime/coding-agent/utils/tool-result-images.d.ts +20 -0
  1642. package/dist/vendor/engine/runtime/coding-agent/utils/tool-result-images.js +47 -0
  1643. package/dist/vendor/engine/runtime/coding-agent/utils/tools-manager.d.ts +12 -0
  1644. package/dist/vendor/engine/runtime/coding-agent/utils/tools-manager.js +308 -0
  1645. package/dist/vendor/engine/runtime/coding-agent/utils/version-check.d.ts +18 -0
  1646. package/dist/vendor/engine/runtime/coding-agent/utils/version-check.js +78 -0
  1647. package/dist/vendor/engine/runtime/coding-agent/utils/windows-self-update.d.ts +2 -0
  1648. package/dist/vendor/engine/runtime/coding-agent/utils/windows-self-update.js +76 -0
  1649. package/dist/vendor/engine/runtime/coding-agent/utils/wsl.d.ts +2 -0
  1650. package/dist/vendor/engine/runtime/coding-agent/utils/wsl.js +14 -0
  1651. package/dist/vendor/engine/runtime/coding-agent/utils/zip.d.ts +6 -0
  1652. package/dist/vendor/engine/runtime/coding-agent/utils/zip.js +59 -0
  1653. package/dist/vendor/engine/runtime/package.json +9 -0
  1654. package/dist/vendor/engine/runtime/telemetry/index.d.ts +193 -0
  1655. package/dist/vendor/engine/runtime/telemetry/index.js +17 -0
  1656. package/dist/vendor/engine/runtime/telemetry/memory.d.ts +25 -0
  1657. package/dist/vendor/engine/runtime/telemetry/memory.js +153 -0
  1658. package/dist/vendor/engine/runtime/telemetry/noop.d.ts +3 -0
  1659. package/dist/vendor/engine/runtime/telemetry/noop.js +17 -0
  1660. package/dist/vendor/engine/runtime/tui/alt-screen-search.d.ts +45 -0
  1661. package/dist/vendor/engine/runtime/tui/alt-screen-search.js +281 -0
  1662. package/dist/vendor/engine/runtime/tui/autocomplete.d.ts +56 -0
  1663. package/dist/vendor/engine/runtime/tui/autocomplete.js +671 -0
  1664. package/dist/vendor/engine/runtime/tui/components/alt-screen-flash.d.ts +12 -0
  1665. package/dist/vendor/engine/runtime/tui/components/alt-screen-flash.js +36 -0
  1666. package/dist/vendor/engine/runtime/tui/components/box.d.ts +23 -0
  1667. package/dist/vendor/engine/runtime/tui/components/box.js +132 -0
  1668. package/dist/vendor/engine/runtime/tui/components/cancellable-loader.d.ts +21 -0
  1669. package/dist/vendor/engine/runtime/tui/components/cancellable-loader.js +34 -0
  1670. package/dist/vendor/engine/runtime/tui/components/editor.d.ts +259 -0
  1671. package/dist/vendor/engine/runtime/tui/components/editor.js +2041 -0
  1672. package/dist/vendor/engine/runtime/tui/components/h-stack.d.ts +6 -0
  1673. package/dist/vendor/engine/runtime/tui/components/h-stack.js +42 -0
  1674. package/dist/vendor/engine/runtime/tui/components/image.d.ts +27 -0
  1675. package/dist/vendor/engine/runtime/tui/components/image.js +89 -0
  1676. package/dist/vendor/engine/runtime/tui/components/input.d.ts +47 -0
  1677. package/dist/vendor/engine/runtime/tui/components/input.js +416 -0
  1678. package/dist/vendor/engine/runtime/tui/components/loader.d.ts +32 -0
  1679. package/dist/vendor/engine/runtime/tui/components/loader.js +75 -0
  1680. package/dist/vendor/engine/runtime/tui/components/markdown.d.ts +102 -0
  1681. package/dist/vendor/engine/runtime/tui/components/markdown.js +810 -0
  1682. package/dist/vendor/engine/runtime/tui/components/mouse-region.d.ts +11 -0
  1683. package/dist/vendor/engine/runtime/tui/components/mouse-region.js +20 -0
  1684. package/dist/vendor/engine/runtime/tui/components/scroll-view.d.ts +58 -0
  1685. package/dist/vendor/engine/runtime/tui/components/scroll-view.js +194 -0
  1686. package/dist/vendor/engine/runtime/tui/components/select-list.d.ts +52 -0
  1687. package/dist/vendor/engine/runtime/tui/components/select-list.js +205 -0
  1688. package/dist/vendor/engine/runtime/tui/components/settings-list.d.ts +59 -0
  1689. package/dist/vendor/engine/runtime/tui/components/settings-list.js +251 -0
  1690. package/dist/vendor/engine/runtime/tui/components/spacer.d.ts +11 -0
  1691. package/dist/vendor/engine/runtime/tui/components/spacer.js +22 -0
  1692. package/dist/vendor/engine/runtime/tui/components/stack.d.ts +31 -0
  1693. package/dist/vendor/engine/runtime/tui/components/stack.js +110 -0
  1694. package/dist/vendor/engine/runtime/tui/components/text.d.ts +18 -0
  1695. package/dist/vendor/engine/runtime/tui/components/text.js +89 -0
  1696. package/dist/vendor/engine/runtime/tui/components/truncated-text.d.ts +12 -0
  1697. package/dist/vendor/engine/runtime/tui/components/truncated-text.js +50 -0
  1698. package/dist/vendor/engine/runtime/tui/components/v-stack.d.ts +7 -0
  1699. package/dist/vendor/engine/runtime/tui/components/v-stack.js +25 -0
  1700. package/dist/vendor/engine/runtime/tui/editor-component.d.ts +38 -0
  1701. package/dist/vendor/engine/runtime/tui/editor-component.js +1 -0
  1702. package/dist/vendor/engine/runtime/tui/fuzzy.d.ts +15 -0
  1703. package/dist/vendor/engine/runtime/tui/fuzzy.js +110 -0
  1704. package/dist/vendor/engine/runtime/tui/index.d.ts +32 -0
  1705. package/dist/vendor/engine/runtime/tui/index.js +44 -0
  1706. package/dist/vendor/engine/runtime/tui/keybindings.d.ts +272 -0
  1707. package/dist/vendor/engine/runtime/tui/keybindings.js +232 -0
  1708. package/dist/vendor/engine/runtime/tui/keys.d.ts +183 -0
  1709. package/dist/vendor/engine/runtime/tui/keys.js +1173 -0
  1710. package/dist/vendor/engine/runtime/tui/kill-ring.d.ts +27 -0
  1711. package/dist/vendor/engine/runtime/tui/kill-ring.js +43 -0
  1712. package/dist/vendor/engine/runtime/tui/latex.d.ts +9 -0
  1713. package/dist/vendor/engine/runtime/tui/latex.js +1377 -0
  1714. package/dist/vendor/engine/runtime/tui/layout-node.d.ts +39 -0
  1715. package/dist/vendor/engine/runtime/tui/layout-node.js +5 -0
  1716. package/dist/vendor/engine/runtime/tui/layout.d.ts +41 -0
  1717. package/dist/vendor/engine/runtime/tui/layout.js +343 -0
  1718. package/dist/vendor/engine/runtime/tui/native-modifiers.d.ts +3 -0
  1719. package/dist/vendor/engine/runtime/tui/native-modifiers.js +12 -0
  1720. package/dist/vendor/engine/runtime/tui/native-module-path.d.ts +6 -0
  1721. package/dist/vendor/engine/runtime/tui/native-module-path.js +18 -0
  1722. package/dist/vendor/engine/runtime/tui/native-platform.d.ts +17 -0
  1723. package/dist/vendor/engine/runtime/tui/native-platform.js +41 -0
  1724. package/dist/vendor/engine/runtime/tui/stdin-buffer.d.ts +55 -0
  1725. package/dist/vendor/engine/runtime/tui/stdin-buffer.js +365 -0
  1726. package/dist/vendor/engine/runtime/tui/terminal-colors.d.ts +9 -0
  1727. package/dist/vendor/engine/runtime/tui/terminal-colors.js +58 -0
  1728. package/dist/vendor/engine/runtime/tui/terminal-image.d.ts +117 -0
  1729. package/dist/vendor/engine/runtime/tui/terminal-image.js +549 -0
  1730. package/dist/vendor/engine/runtime/tui/terminal.d.ts +122 -0
  1731. package/dist/vendor/engine/runtime/tui/terminal.js +441 -0
  1732. package/dist/vendor/engine/runtime/tui/tui-alt-screen.d.ts +159 -0
  1733. package/dist/vendor/engine/runtime/tui/tui-alt-screen.js +1507 -0
  1734. package/dist/vendor/engine/runtime/tui/tui-main-screen.d.ts +38 -0
  1735. package/dist/vendor/engine/runtime/tui/tui-main-screen.js +593 -0
  1736. package/dist/vendor/engine/runtime/tui/tui.d.ts +385 -0
  1737. package/dist/vendor/engine/runtime/tui/tui.js +1054 -0
  1738. package/dist/vendor/engine/runtime/tui/undo-stack.d.ts +16 -0
  1739. package/dist/vendor/engine/runtime/tui/undo-stack.js +24 -0
  1740. package/dist/vendor/engine/runtime/tui/utils.d.ts +100 -0
  1741. package/dist/vendor/engine/runtime/tui/utils.js +1203 -0
  1742. package/dist/vendor/engine/runtime/tui/word-navigation.d.ts +24 -0
  1743. package/dist/vendor/engine/runtime/tui/word-navigation.js +95 -0
  1744. package/dist/vendor/zcode/LICENSE.upstream +202 -0
  1745. package/dist/vendor/zcode/provenance.json +141 -0
  1746. package/dist/vendor/zcode/source/agent/turn-machine.d.ts +56 -0
  1747. package/dist/vendor/zcode/source/agent/turn-machine.js +214 -0
  1748. package/dist/vendor/zcode/source/agent/turn-state.d.ts +118 -0
  1749. package/dist/vendor/zcode/source/agent/turn-state.js +93 -0
  1750. package/dist/vendor/zcode/source/compact/manual.d.ts +11 -0
  1751. package/dist/vendor/zcode/source/compact/manual.js +38 -0
  1752. package/dist/vendor/zcode/source/compact/microcompact.d.ts +47 -0
  1753. package/dist/vendor/zcode/source/compact/microcompact.js +194 -0
  1754. package/dist/vendor/zcode/source/compact/policy.d.ts +59 -0
  1755. package/dist/vendor/zcode/source/compact/policy.js +89 -0
  1756. package/dist/vendor/zcode/source/compact/selection.d.ts +6 -0
  1757. package/dist/vendor/zcode/source/compact/selection.js +12 -0
  1758. package/dist/vendor/zcode/source/contracts.d.ts +52 -0
  1759. package/dist/vendor/zcode/source/contracts.js +9 -0
  1760. package/dist/vendor/zcode/source/runtime/goal-completion-verification.d.ts +17 -0
  1761. package/dist/vendor/zcode/source/runtime/goal-completion-verification.js +138 -0
  1762. package/dist/vendor/zcode/source/runtime/turn-loop.d.ts +3 -0
  1763. package/dist/vendor/zcode/source/runtime/turn-loop.js +21 -0
  1764. package/dist/vendor/zcode/source/runtime/turn-model-step.d.ts +54 -0
  1765. package/dist/vendor/zcode/source/runtime/turn-model-step.js +97 -0
  1766. package/dist/vendor/zcode/source/runtime/turn-output-token-continuation.d.ts +8 -0
  1767. package/dist/vendor/zcode/source/runtime/turn-output-token-continuation.js +15 -0
  1768. package/dist/vendor/zcode/source/runtime/turn-stop.d.ts +6 -0
  1769. package/dist/vendor/zcode/source/runtime/turn-stop.js +18 -0
  1770. package/dist/vendor/zcode/source/tool/executor/validation.d.ts +6 -0
  1771. package/dist/vendor/zcode/source/tool/executor/validation.js +76 -0
  1772. package/dist/vendor/zcode/source/tool/input-normalization.d.ts +16 -0
  1773. package/dist/vendor/zcode/source/tool/input-normalization.js +62 -0
  1774. package/dist/vendor/zcode/source/tool/input-validation-model-content.d.ts +4 -0
  1775. package/dist/vendor/zcode/source/tool/input-validation-model-content.js +263 -0
  1776. package/dist/vendor/zcode/source/tool/json-schema.d.ts +9 -0
  1777. package/dist/vendor/zcode/source/tool/json-schema.js +230 -0
  1778. package/dist/vendor/zcode/source/tool/scheduler.d.ts +43 -0
  1779. package/dist/vendor/zcode/source/tool/scheduler.js +167 -0
  1780. package/dist/vendor/zcode/source/tool/tool-input-validation-issues.d.ts +76 -0
  1781. package/dist/vendor/zcode/source/tool/tool-input-validation-issues.js +148 -0
  1782. package/dist/vendor/zcode/source/tool/validation-contracts.d.ts +27 -0
  1783. package/dist/vendor/zcode/source/tool/validation-contracts.js +8 -0
  1784. package/docs/README.md +36 -0
  1785. package/docs/agents/README.md +62 -0
  1786. package/docs/agents/install-for-agents.md +55 -0
  1787. package/docs/agents/mcp-server.md +187 -0
  1788. package/docs/agents/subagent-mode.md +146 -0
  1789. package/docs/concepts/README.md +47 -0
  1790. package/docs/concepts/jev-actionable-routing.md +113 -0
  1791. package/docs/concepts/jev-decision-thresholds.md +412 -0
  1792. package/docs/concepts/jev-efficiency.md +216 -0
  1793. package/docs/concepts/jev-eval-2026-11-01.md +78 -0
  1794. package/docs/concepts/limits.md +43 -0
  1795. package/docs/concepts/memory.md +30 -0
  1796. package/docs/concepts/security.md +40 -0
  1797. package/docs/concepts/workspace-instructions.md +28 -0
  1798. package/docs/getting-started/README.md +82 -0
  1799. package/docs/getting-started/accounts.md +67 -0
  1800. package/docs/getting-started/configure-providers.md +103 -0
  1801. package/docs/guides/README.md +12 -0
  1802. package/docs/guides/browser.md +15 -0
  1803. package/docs/guides/desktop-app.md +354 -0
  1804. package/docs/guides/extensions.md +100 -0
  1805. package/docs/guides/graph-builder.md +93 -0
  1806. package/docs/guides/headless.md +45 -0
  1807. package/docs/guides/tui.md +75 -0
  1808. package/docs/guides/update.md +68 -0
  1809. package/docs/guides/windows-code-signing.md +316 -0
  1810. package/docs/llms.txt +45 -0
  1811. package/docs/reference/README.md +7 -0
  1812. package/docs/reference/cli.md +70 -0
  1813. package/docs/reference/config.md +85 -0
  1814. package/docs/reference/slash-commands.md +54 -0
  1815. package/docs/superpowers/plans/2026-11-01-claude-console-sign-in.md +111 -0
  1816. package/docs/superpowers/plans/2026-11-01-jev-node-opt-in.md +910 -0
  1817. package/docs/superpowers/plans/2026-11-02-workflow-pane.md +398 -0
  1818. package/docs/superpowers/specs/2026-10-31-work-line-summary-design.md +50 -0
  1819. package/docs/superpowers/specs/2026-11-01-claude-console-sign-in-design.md +176 -0
  1820. package/docs/superpowers/specs/2026-11-01-jev-node-opt-in-design.md +164 -0
  1821. package/docs/superpowers/specs/2026-11-01-pr-section-design.md +104 -0
  1822. package/docs/superpowers/specs/2026-11-02-workflow-pane-design.md +130 -0
  1823. package/licenses/GEIST-OFL-1.1.txt +92 -0
  1824. package/licenses/ZCODE-APACHE-2.0.txt +202 -0
  1825. package/package.json +118 -6
  1826. package/scripts/jev-efficiency-eval.mjs +187 -0
  1827. package/scripts/jev-efficiency-live.mjs +193 -0
  1828. package/scripts/zcode-engine-replay.mjs +223 -0
  1829. package/tests/agent-centric-mcp-test-plan.md +208 -0
  1830. package/tests/analytics-settings-test-plan.md +165 -0
  1831. package/tests/browser-cli-smoke.mjs +276 -0
  1832. package/tests/browser-test-plan.md +280 -0
  1833. package/tests/chat-side-panel-test-plan.md +309 -0
  1834. package/tests/decision-engine-test-plan.md +163 -0
  1835. package/tests/default-active-jev-test-plan.md +85 -0
  1836. package/tests/graphiti-test-plan.md +359 -0
  1837. package/tests/harness-extensions-test-plan.md +110 -0
  1838. package/tests/jev-all-decisions-test-plan.md +156 -0
  1839. package/tests/jev-efficiency/criteria.json +158 -0
  1840. package/tests/jev-efficiency/workloads.mjs +242 -0
  1841. package/tests/jev-efficiency-test-plan.md +198 -0
  1842. package/tests/mock-graphiti.mjs +106 -0
  1843. package/tests/permissions-sandbox-probe.mjs +74 -0
  1844. package/tests/permissions-test-plan.md +190 -0
  1845. package/tests/product-telemetry-test-plan.md +536 -0
  1846. package/tests/thinking-stream-preview-test-plan.md +136 -0
  1847. package/tests/zcode-react-engine-test-plan.md +396 -0
@@ -0,0 +1,1356 @@
1
+ import { permissionMode } from './permissions.js';
2
+ import { DecisionManager } from './decision/DecisionManager.js';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { TodoStore } from './todos.js';
5
+ import { WidgetStore } from './widgets.js';
6
+ import { isDeepStrictEqual } from 'node:util';
7
+ import { validateGraph, nodeOutcomes, maxNodeVisitsOf } from './graphs.js';
8
+ import { executeModifiedAgent, matchesOutput } from './agent-modifiers.js';
9
+ import { executeAgentNode } from './agent-execution.js';
10
+ import { resolveLimits, stopReasonSentence, withinToolBudget, generateWithUsage } from './runtime.js';
11
+ import { bindUserWaits, createRuntimeBudget } from './deadline.js';
12
+ import { capabilityTools } from './capabilities.js';
13
+ import { canonicalToolName } from './tool-names.js';
14
+ import { ArtifactStore } from './artifacts.js';
15
+ import { resolveValue, validateValue, nodeOutputSchema } from './handoffs.js';
16
+ import { memorySearchTool } from './memory/tools/memorySearchTool.js';
17
+ import { resolveEfficiency } from './efficiency.js';
18
+ import { collectWorkspaceFacts } from './workspace-facts.js';
19
+ import { MemoryManager } from './memory/MemoryManager.js';
20
+ import { loadConfig, resolveMemoryConfig } from './config.js';
21
+ import { elapsedMs, monotonicNow } from './duration.js';
22
+ import { dashboardAdapter } from './dashboard.js';
23
+ import { createRunTelemetry, mergeRunTelemetry, recordAttempt, recordTestCommand, recordToolFailure, recordToolUse } from './telemetry/capture.js';
24
+ import { isTestCommandLine } from './telemetry/classify.js';
25
+ /**
26
+ * Fold one node's telemetry and failure classification into the run.
27
+ *
28
+ * A graph run loses the structured provider-failure marker unless it is copied here, which would
29
+ * report every provider outage as `infrastructure`. The same is true of the context-overflow
30
+ * classification: copying it keeps an over-window input out of the provider-failure rate.
31
+ */
32
+ function absorbTelemetry(result, outcome) {
33
+ if (outcome.telemetry)
34
+ mergeRunTelemetry(result.telemetry, outcome.telemetry);
35
+ if (outcome.providerRequestFailed)
36
+ result.providerRequestFailed = true;
37
+ if (outcome.providerOverflow)
38
+ result.providerOverflow = true;
39
+ }
40
+ const freeze = (value) => {
41
+ for (const child of Object.values(value))
42
+ if (child && typeof child === 'object')
43
+ freeze(child);
44
+ Object.freeze(value);
45
+ };
46
+ /**
47
+ * Tool calls still available to one node when the run ceiling is optional.
48
+ * Unlimited stays undefined; subtracting from an absent ceiling would produce NaN
49
+ * and hand every downstream branch a meaningless budget.
50
+ * @param maxToolCalls - run ceiling, or undefined for unlimited.
51
+ * @param used - tool calls the run has already consumed.
52
+ * @returns the remaining allowance, or undefined for unlimited.
53
+ */
54
+ function remainingToolBudget(maxToolCalls, used) {
55
+ return maxToolCalls === undefined ? undefined : maxToolCalls - used;
56
+ }
57
+ /**
58
+ * Split the remaining run allowance across concurrent branches.
59
+ * @param maxToolCalls - run ceiling, or undefined for unlimited.
60
+ * @param used - tool calls the run has already consumed.
61
+ * @param branches - number of branches sharing the remaining allowance.
62
+ * @returns each branch's share, or undefined when the run is unlimited.
63
+ */
64
+ function shareToolBudget(maxToolCalls, used, branches) {
65
+ const remaining = remainingToolBudget(maxToolCalls, used);
66
+ return remaining === undefined ? undefined : Math.floor(remaining / branches);
67
+ }
68
+ const equal = isDeepStrictEqual;
69
+ function mergeInputs(target, incoming, nodeId) {
70
+ for (const [key, value] of Object.entries(incoming)) {
71
+ if (Object.hasOwn(target, key) && !equal(target[key], value))
72
+ throw new Error(`Node ${nodeId}: conflicting input "${key}" from incoming routes. Rename the mappings or use matching values.`);
73
+ target[key] = value;
74
+ }
75
+ }
76
+ /** Graph stages route validated completions only. Internal delegation remains inside executeAgentNode. */
77
+ export async function runGraph(graph, options) {
78
+ if (!options.memory || !options.decisionManager) {
79
+ const config = await loadConfig();
80
+ options = { ...options, decisionManager: options.decisionManager ?? new DecisionManager({ config: config.decisions, onEvent: options.onEvent }), memory: options.memory ?? await MemoryManager.create({
81
+ config: resolveMemoryConfig(config), workspace: options.context.workspace, onEvent: options.onEvent, getPermissions: () => permissionMode(options.context),
82
+ }) };
83
+ }
84
+ options.memory.setPermissionsReader(() => permissionMode(options.context));
85
+ const pinned = validateGraph(graph);
86
+ freeze(pinned);
87
+ const limits = resolveLimits(options.limits);
88
+ for (const [name, value] of Object.entries(limits)) {
89
+ if (value === undefined)
90
+ continue;
91
+ if (!Number.isSafeInteger(value) || value < (name === 'maxCompletionRepairs' || name === 'maxToolCalls' ? 0 : 1))
92
+ throw new Error(`Invalid limit: ${name}`);
93
+ }
94
+ // Only an explicit graph ceiling can tighten the run allowance; when neither is set
95
+ // the run is unbounded and stays undefined rather than becoming a fabricated number.
96
+ for (const key of ['maxToolCalls', 'wallTimeMs']) {
97
+ const pinnedLimit = pinned.limits?.[key];
98
+ if (pinnedLimit === undefined)
99
+ continue;
100
+ limits[key] = limits[key] === undefined ? pinnedLimit : Math.min(limits[key], pinnedLimit);
101
+ }
102
+ const runInput = { ...options.runInput, task: options.task };
103
+ const runState = structuredClone(options.runState ?? {});
104
+ if (pinned.inputSchema)
105
+ validateValue(pinned.inputSchema, runInput, 'Run inputs');
106
+ if (pinned.stateSchema)
107
+ validateValue(pinned.stateSchema, runState, 'Run state');
108
+ // The model identity this run would execute a node with, mirroring the runtime's own resolution
109
+ // (`node.provider ?? run provider`, and the model the node declares or the resolved provider's
110
+ // configured one). A per-provider model the runtime resolves later is unknowable here, so only
111
+ // the identities this build can prove are compared.
112
+ const nodeIdentity = (nodeId) => {
113
+ const node = pinned.nodes[nodeId];
114
+ const provider = node?.provider ?? options.provider;
115
+ if (node?.model !== undefined)
116
+ return { provider, model: node.model };
117
+ if (node?.provider === undefined)
118
+ return { provider, model: options.model };
119
+ try {
120
+ return { provider, model: options.resolveProvider?.(node.provider)?.model };
121
+ }
122
+ catch {
123
+ return { provider };
124
+ }
125
+ };
126
+ // Only an agent node runs a model, so only its start line names one: an action or routing node
127
+ // has no model identity, and claiming the run's inherited one would tell a surface reading the
128
+ // rail that the node ran on a model it never called.
129
+ const startIdentity = (nodeId, routed) => routed ?? (pinned.nodes[nodeId]?.type === 'agent' ? nodeIdentity(nodeId) : {});
130
+ // A checkpoint's conversation is the NODE's own transcript — system prompt, tool definitions,
131
+ // continuation counters — and the runtime installs it as the resumed visit's history without
132
+ // checking who wrote it (unlike a predecessor handoff, which is gated on the same identity).
133
+ // Handing it to a node the graph or profile now resolves to another provider/model would give
134
+ // the new model instructions and counters from a different one: restart that visit fresh.
135
+ // `undefined` on either side of a comparison means unknowable, not different.
136
+ const sameIdentity = (candidate, identity) => {
137
+ if (!candidate)
138
+ return false;
139
+ if (candidate.provider !== undefined && candidate.provider !== identity.provider)
140
+ return false;
141
+ return candidate.model === undefined || identity.model === undefined || candidate.model === identity.model;
142
+ };
143
+ const continuableByThisRun = (nodeId, checkpoint) => {
144
+ if (checkpoint.provider === undefined && checkpoint.model === undefined)
145
+ return true;
146
+ const identity = nodeIdentity(nodeId);
147
+ // The conversation's own pair matching the configured one is the unchanged rule. Adaptive
148
+ // routing adds a second way: the checkpoint carries the baseline it was routed FROM, and a
149
+ // baseline this run still computes proves the routed pair was this configuration's own
150
+ // decision — so the conversation may continue on the model that actually ran. A baseline
151
+ // that no longer matches (the graph or provider configuration changed) keeps the old rule
152
+ // and the visit restarts fresh.
153
+ if (sameIdentity(checkpoint, identity))
154
+ return true;
155
+ return sameIdentity(checkpoint.routedFrom, identity);
156
+ };
157
+ // The pair a continuable checkpoint's conversation ran on when it is NOT the configured one:
158
+ // the routed pair this run's own routing decision produced. The re-entered visit is pinned to
159
+ // it (see the seeding below), so the transcript continues on the model that wrote it.
160
+ const routedContinuation = (nodeId, checkpoint) => {
161
+ if (checkpoint.provider === undefined || checkpoint.model === undefined)
162
+ return undefined;
163
+ const identity = nodeIdentity(nodeId);
164
+ if (sameIdentity(checkpoint, identity))
165
+ return undefined;
166
+ if (!sameIdentity(checkpoint.routedFrom, identity))
167
+ return undefined;
168
+ return { provider: checkpoint.provider, model: checkpoint.model };
169
+ };
170
+ if (options.resumeFrom) {
171
+ // The journal replay can prove the stopped attempt already ran its whole graph with nothing
172
+ // left to continue: an empty frontier alongside nodes or visits the journal proves (visits
173
+ // included, because a node removed from the edited graph keeps its visit count but can never
174
+ // re-enter), no completed End whose bare re-entry would finalize the attempt instead, and no
175
+ // checkpoint still owning a conversation to re-enter. Seeding that position would leave only
176
+ // the entry queue: every completed node run again, its tool effects and token spend paid a
177
+ // second time. That is not continuing an invocation, so the refusal lands here — before the
178
+ // budget timer, the user-wait binding, and telemetry open — and nothing opened needs
179
+ // unwinding. The follow-up the user sends carries the finished work as session context.
180
+ // The exemption mirrors the seeding below exactly: a checkpoint the seeding would install
181
+ // (its node in the graph, no recorded completion — an interrupted frontier is impossible
182
+ // with a pending array this code has already proven empty — and the provider/model stamp
183
+ // this run may continue) means the journal's empty frontier only says the node's start line
184
+ // never reached it: the attempt is recoverable, not finished. And an End completed on one
185
+ // branch cannot finalize while a join another branch owes still sits unresolved — the
186
+ // re-entry would throw after `run.started`, so the request is refused instead.
187
+ const stopped = options.resumeFrom.progress;
188
+ const provenWork = Object.keys(stopped.nodeResults).length > 0 || Object.values(stopped.visits).some(count => count > 0);
189
+ const unresolvedJoins = (stopped.waitingJoins ?? []).some(join => pinned.nodes[join.nodeId] !== undefined && !Object.hasOwn(stopped.nodeResults, join.nodeId));
190
+ const canFinalizeThroughEnd = !unresolvedJoins && Object.values(pinned.nodes).some(node => node.type === 'end' && stopped.nodeResults[node.id] !== undefined);
191
+ const recoverableCheckpoint = (options.resumeFrom.checkpoints ?? []).some(checkpoint => pinned.nodes[checkpoint.nodeId] !== undefined && !Object.hasOwn(stopped.nodeResults, checkpoint.nodeId) && continuableByThisRun(checkpoint.nodeId, checkpoint));
192
+ if (stopped.pending.length === 0 && provenWork && !canFinalizeThroughEnd && !recoverableCheckpoint) {
193
+ throw new Error('Cannot resume: the stopped attempt had already run every step its journal records, so there is nothing left to continue. Send a follow-up message instead of resuming.');
194
+ }
195
+ }
196
+ const budget = createRuntimeBudget(options.context.signal, limits.wallTimeMs, options.context.runControl);
197
+ const signal = budget.signal;
198
+ const confirmedClarifications = [];
199
+ let approvalQueue = Promise.resolve();
200
+ // Bind before queueing: the queue must serialize the budget-aware `approve`, or a wait
201
+ // that only enters the queue would still be charged to the run's clock.
202
+ const awaiting = bindUserWaits(options.context, budget, signal);
203
+ const askUser = awaiting.askUser;
204
+ const context = {
205
+ ...awaiting,
206
+ toolState: awaiting.toolState ?? { fileReads: new Map() },
207
+ approve: (...args) => {
208
+ const pending = approvalQueue.then(() => { args[2].throwIfAborted(); return awaiting.approve(...args); });
209
+ approvalQueue = pending.catch(() => { });
210
+ return pending;
211
+ },
212
+ ...(askUser ? { askUser: async (...args) => {
213
+ const answer = await askUser(...args);
214
+ if (typeof answer === 'string' && answer.trim())
215
+ confirmedClarifications.push({ question: args[0], answer });
216
+ return answer;
217
+ } } : {}),
218
+ };
219
+ const result = {
220
+ id: options.runId ?? randomUUID(), graph: pinned, provider: options.provider, model: options.model,
221
+ status: 'exhausted', usage: { inputTokens: 0, outputTokens: 0, requests: 0 }, toolCalls: 0, nodeResults: {},
222
+ limits: { ...limits }, telemetry: createRunTelemetry(),
223
+ };
224
+ const todoStore = options.todoStore ?? new TodoStore();
225
+ // Widgets belong to the run, not to a branch: every node and every parallel copy updates the
226
+ // same values, exactly as they all keep the one plan.
227
+ const widgetStore = options.widgetStore ?? new WidgetStore(pinned.widgets);
228
+ // A resumed run's plan is seeded into the store where it is read, but announced only after
229
+ // `graph.started`: the browser activity sink clears its checklist on that event, so publishing
230
+ // earlier would have the resume erase the very plan it carried.
231
+ let seededPlan;
232
+ const artifactStore = options.artifactStore ?? new ArtifactStore(result.id);
233
+ options.codeIntel?.beginRun(result.id);
234
+ const emit = async (type, data = {}) => {
235
+ const event = { type, time: new Date().toISOString(), data: { runId: result.id, ...(typeof data.nodeId === 'string' ? { nodeName: pinned.nodes[data.nodeId]?.name, nodeType: pinned.nodes[data.nodeId]?.type } : {}), ...data } };
236
+ options.commandMemory?.observe(event);
237
+ await options.onEvent?.(event);
238
+ };
239
+ // Skill activation is run-wide and independent of conversation reuse or provider identity.
240
+ // Journal replay restores it before any resumed frontier node starts.
241
+ const activeSkills = new Set(options.resumeFrom?.progress.activeSkills ?? []);
242
+ const queue = [{ nodeId: pinned.entry, generation: 0, path: [], inputs: {}, predecessors: {} }];
243
+ const visits = new Map();
244
+ const executed = new Set();
245
+ let nextGeneration = 0;
246
+ const pendingJoins = new Map();
247
+ let currentNode = pinned.entry;
248
+ let lastCompletion;
249
+ if (options.resumeFrom) {
250
+ // Rehydrate the scheduler from the journal replay of a stopped attempt. The frontier is
251
+ // assembled first and only installed when the journal proved something worth continuing.
252
+ // Every frontier entry carries the mapped inputs and predecessors its activation had —
253
+ // replay proves those queued but unfinished, and re-entering one with empty inputs would
254
+ // fail the node's own schema checks for work its predecessor already paid for. A captured
255
+ // checkpoint re-enters its node's conversation too (the same continuation the pause/resume
256
+ // control uses), one per unfinished branch. With nothing proven, nothing is seeded at all —
257
+ // running the task from entry is the safe restart, and an empty seeded frontier would only
258
+ // trip `maxNodeVisits`.
259
+ const { progress, checkpoints: captured } = options.resumeFrom;
260
+ // Draw fresh generation numbers from where the stopped attempt left them: the executed set
261
+ // below is seeded with the journal's generation-keyed entries, so a resumed revisit must draw
262
+ // a number that has never run rather than reissue one the journal already used.
263
+ nextGeneration = Math.max(nextGeneration, progress.generation ?? 0);
264
+ const resumable = [];
265
+ // The seeded activation of every `(generation, node)` identity the frontier carried: a cycle can
266
+ // hold the same node at two generations, and a checkpoint, a predecessor handoff, or a second
267
+ // activation of that node must address the one its own visit belongs to.
268
+ const byIdentity = new Map();
269
+ const generationsPerNode = new Map();
270
+ // The seeded re-entry of each node — the one unfinished visit it can have — for the legacy
271
+ // checkpoint shape that carries no visit stamp to look itself up by.
272
+ const reentryByNode = new Map();
273
+ const seededByNode = new Map();
274
+ const reentry = new Set();
275
+ const droppedNodes = new Set();
276
+ for (const activation of progress.pending) {
277
+ const node = pinned.nodes[activation.nodeId];
278
+ if (!node) {
279
+ // The graph was edited between the stop and this resume. The activation cannot be seeded,
280
+ // and a frontier that vanishes silently would restart the whole task from the entry —
281
+ // rerunning nodes `progress.nodeResults` already proves completed (and their tool effects
282
+ // with them). Refuse below when nothing else is left to continue.
283
+ droppedNodes.add(activation.nodeId);
284
+ continue;
285
+ }
286
+ if (activation.interrupted && node.type === 'action') {
287
+ // The stopped attempt was inside the shell command when it died: the journal cannot show
288
+ // how far the command got, and re-running it could duplicate effects that already fully
289
+ // or partially applied. An action node is the one node type whose work the replay cannot
290
+ // safely put back on the executable frontier, so the whole resume is refused and the
291
+ // workspace stays as the crash left it, for a human to inspect and re-start fresh.
292
+ throw new Error(`Cannot resume into the "${node.name}" action: the stopped attempt died while its shell command was running, and replaying it could repeat its effects. Check what the command already changed, then start a new run.`);
293
+ }
294
+ // The replay carried the generation and path this activation had at the stop: seeding them
295
+ // is what lets a resumed cycle classify its outgoing back-edge as a revisit instead of an
296
+ // already-executed suppression, and lets a later-generation activation avoid colliding with
297
+ // the generation-zero executed set.
298
+ // The parallel-group identity rides along: a branch-mode source that dispatched these
299
+ // successors before dying had them on the prefetch path sharing its tool-budget slice, and
300
+ // seeding them groupless would run the first branch on the FULL remaining allowance and
301
+ // starve the rest of the group.
302
+ const seeded = { nodeId: activation.nodeId, generation: activation.generation ?? 0, path: activation.path ?? [], inputs: structuredClone(activation.inputs), ...(activation.source ? { source: structuredClone(activation.source) } : {}), ...(activation.sourceGeneration === undefined ? {} : { sourceGeneration: activation.sourceGeneration }), predecessors: structuredClone(activation.predecessors),
303
+ ...(activation.parallelGroup === undefined ? {} : { parallelGroup: activation.parallelGroup, ...(activation.concurrency === undefined ? {} : { concurrency: activation.concurrency }) }) };
304
+ if (activation.interrupted) {
305
+ reentry.add(activation.nodeId);
306
+ reentryByNode.set(activation.nodeId, seeded);
307
+ }
308
+ byIdentity.set(`${seeded.generation}:${seeded.nodeId}`, seeded);
309
+ seededByNode.set(seeded.nodeId, seeded);
310
+ const seen = generationsPerNode.get(seeded.nodeId) ?? new Set();
311
+ seen.add(seeded.generation);
312
+ generationsPerNode.set(seeded.nodeId, seen);
313
+ resumable.push(seeded);
314
+ }
315
+ // The frontier nodes the journal shows as unfinished re-entries, used below to tell a
316
+ // completed node apart from a node that completed an earlier visit and was interrupted during
317
+ // a later one.
318
+ const interruptedFrontier = new Set(progress.pending.filter(entry => entry.interrupted).map(entry => entry.nodeId));
319
+ for (const checkpoint of captured ?? []) {
320
+ // Parallel branches each checkpoint their own conversation, and each unfinished one gets
321
+ // it back. A checkpoint naming a node the current graph no longer has (the graph was
322
+ // edited since), or one whose node already completed, cannot re-enter anything — except a
323
+ // node that completed an earlier visit and was interrupted on a later one: the completion
324
+ // describes the earlier pass, while the checkpoint holds the unfinished revisit's own
325
+ // conversation, which is exactly what resume must not throw away.
326
+ if ((Object.hasOwn(progress.nodeResults, checkpoint.nodeId) && !interruptedFrontier.has(checkpoint.nodeId)) || !pinned.nodes[checkpoint.nodeId])
327
+ continue;
328
+ // The stamped visit is the only activation this conversation can continue, so the file is
329
+ // addressed by the identity it carries. A stamp naming a visit this resume did not seed
330
+ // belongs to a visit that already ended (or to a generation the node ran at before): attaching
331
+ // it to whatever activation the node happens to hold instead would continue a finished
332
+ // conversation as if it were the unfinished one, with counters that disagree with the graph
333
+ // being replayed. A file from before the stamp carries no visit identity at all, so it goes to
334
+ // the node's unfinished visit — the only conversation an unstamped file can belong to — and
335
+ // otherwise to the activation the node was seeded with.
336
+ const stamped = checkpoint.generation === undefined ? undefined : byIdentity.get(`${checkpoint.generation}:${checkpoint.nodeId}`);
337
+ if (checkpoint.generation !== undefined && stamped === undefined && generationsPerNode.has(checkpoint.nodeId))
338
+ continue;
339
+ const seeded = stamped
340
+ ?? (checkpoint.generation === undefined ? reentryByNode.get(checkpoint.nodeId) ?? seededByNode.get(checkpoint.nodeId) : undefined)
341
+ ?? { nodeId: checkpoint.nodeId, generation: checkpoint.generation ?? 0, path: [], inputs: {}, predecessors: {} };
342
+ if (!continuableByThisRun(checkpoint.nodeId, checkpoint))
343
+ continue;
344
+ // A checkpoint older than the node's newest journaled effectful tool boundary does not cover
345
+ // that call: the resumed visit would re-enter the conversation from before it and can issue
346
+ // the same mutation again (the observation the tool produced is nowhere in the conversation).
347
+ // Effect-free calls — reads, run-scoped metadata, an unanswered ask_user — keep no boundary,
348
+ // so a crash between a checkpoint and one of those re-enters safely. The same reasoning that
349
+ // refuses an interrupted action node refuses this re-entry — the workspace is left as the
350
+ // crash left it for a human to inspect.
351
+ const toolEvent = progress.lastEffectfulToolEvent?.[checkpoint.nodeId];
352
+ if (toolEvent !== undefined && Date.parse(checkpoint.savedAt) < Date.parse(toolEvent)) {
353
+ throw new Error(`Cannot resume the "${pinned.nodes[checkpoint.nodeId]?.name ?? checkpoint.nodeId}" node: the stopped attempt ran a tool call after the conversation this checkpoint saved, so re-entering it could repeat an effect the checkpoint does not cover. Check what the call changed, then start a new run.`);
354
+ }
355
+ // A routed checkpoint re-enters its visit on the pair that wrote the conversation, so the
356
+ // restored transcript continues on the model that produced it. The pair is resolved here,
357
+ // before anything is seeded: an unresolvable target becomes a clean refusal instead of a
358
+ // mid-run failure after `run.started`, and dropping the checkpoint instead would restart
359
+ // the node fresh and repeat the mutations the conversation's transcript already observed.
360
+ const routed = routedContinuation(checkpoint.nodeId, checkpoint);
361
+ if (routed) {
362
+ const routedResolved = await (options.resolveModel
363
+ ? options.resolveModel(routed.provider, routed.model, context.signal).catch(() => undefined)
364
+ : routed.provider === options.provider
365
+ ? { model: routed.model, adapter: options.adapter }
366
+ : options.resolveProvider?.(routed.provider));
367
+ if (!routedResolved) {
368
+ throw new Error(`Cannot resume the "${pinned.nodes[checkpoint.nodeId]?.name ?? checkpoint.nodeId}" node: its conversation ran on ${routed.provider}/${routed.model}, which this configuration no longer resolves. Restore that provider, or start a new run.`);
369
+ }
370
+ seeded.routedModel = routed;
371
+ }
372
+ seeded.continuation = { messages: checkpoint.messages, state: checkpoint.state, revision: checkpoint.revision };
373
+ if (!byIdentity.has(`${seeded.generation}:${seeded.nodeId}`)) {
374
+ // A checkpoint whose node never reached the journal (the process died before the start
375
+ // line appended) still owns the conversation: re-enter it ahead of the rest.
376
+ resumable.unshift(seeded);
377
+ byIdentity.set(`${seeded.generation}:${seeded.nodeId}`, seeded);
378
+ reentry.add(checkpoint.nodeId);
379
+ }
380
+ reentry.add(checkpoint.nodeId);
381
+ }
382
+ // Nothing left to continue although the journal proved queued work: the graph no longer carries
383
+ // the nodes that work named. Seeding nothing would run `queue`'s entry activation and redo
384
+ // every node already completed, so the resume is refused instead.
385
+ if (resumable.length === 0 && droppedNodes.size > 0) {
386
+ const missing = [...droppedNodes].map(nodeId => `"${nodeId}"`).join(', ');
387
+ throw new Error(`Cannot resume: the graph no longer contains the node${droppedNodes.size > 1 ? 's' : ''} ${missing} the stopped attempt still had queued. Restore the graph as it was, or start a new run.`);
388
+ }
389
+ // The live scheduler hands a routed successor the completing predecessor's model transcript
390
+ // (unless the predecessor asked for isolation), and a stop between the edge being journaled and
391
+ // the successor starting loses that handoff: the checkpoint loop above only re-attaches
392
+ // conversations to unfinished nodes, and a completed source's checkpoint would otherwise be
393
+ // discarded with it. Rebuild the handoff from the completed predecessor's durable checkpoint —
394
+ // its provider/model stamp is what the runtime's continue-in-place gate requires.
395
+ const checkpointsPerNode = new Map();
396
+ for (const checkpoint of captured ?? []) {
397
+ const list = checkpointsPerNode.get(checkpoint.nodeId) ?? [];
398
+ list.push(checkpoint);
399
+ checkpointsPerNode.set(checkpoint.nodeId, list);
400
+ }
401
+ for (const seeded of resumable) {
402
+ if (seeded.continuation !== undefined || seeded.conversation !== undefined)
403
+ continue;
404
+ if (pinned.nodes[seeded.nodeId]?.type !== 'agent')
405
+ continue;
406
+ for (const sourceId of Object.keys(seeded.predecessors)) {
407
+ const sourceNode = pinned.nodes[sourceId];
408
+ if (!sourceNode || sourceNode.type !== 'agent' || sourceNode.contextPolicy?.conversation === 'isolate')
409
+ continue;
410
+ // ... and only when the file still holds the conversation of the visit that routed this
411
+ // activation. A cyclic source can complete again after routing it — its checkpoint file is
412
+ // replaced per visit and now carries that later transcript — and handing the later
413
+ // conversation to this successor would give it context that did not exist when its edge was
414
+ // routed. The generation stamp is what tells the visits apart, so a file stamped for another
415
+ // visit hands off nothing at all: the successor keeps the completion as its input and
416
+ // starts its own conversation.
417
+ const checkpoint = (checkpointsPerNode.get(sourceId) ?? []).find(candidate => (candidate.generation ?? 0) === (seeded.sourceGeneration ?? 0));
418
+ if (!checkpoint || typeof checkpoint.provider !== 'string' || typeof checkpoint.model !== 'string' || checkpoint.messages.length === 0)
419
+ continue;
420
+ seeded.conversation = { provider: checkpoint.provider, model: checkpoint.model, messages: structuredClone(checkpoint.messages), ...(checkpoint.state.toolOutputArchive ? { toolOutputArchive: checkpoint.state.toolOutputArchive } : {}) };
421
+ }
422
+ }
423
+ for (const waitingJoin of progress.waitingJoins ?? []) {
424
+ // Partial arrivals of an all-mode join go back into the scheduler's waiting state, not the
425
+ // queue: the join must not run on the completed branches alone while the branches that never
426
+ // completed still have their work to do. It fires when the resumed completions bring the
427
+ // arrival for every remaining member edge, exactly as an uninterrupted run would.
428
+ if (!pinned.nodes[waitingJoin.nodeId] || Object.hasOwn(progress.nodeResults, waitingJoin.nodeId))
429
+ continue;
430
+ const targetKey = `${waitingJoin.generation}:${waitingJoin.nodeId}`;
431
+ const held = pendingJoins.get(targetKey) ?? new Map();
432
+ for (const [sourceId, member] of Object.entries(waitingJoin.members)) {
433
+ const edgeIndex = pinned.edges.findIndex(edge => edge.target === waitingJoin.nodeId && edge.source === sourceId
434
+ && (edge.outcome ?? 'completed') === (member.completion.outcome ?? 'completed'));
435
+ if (edgeIndex < 0 || held.has(edgeIndex))
436
+ continue;
437
+ held.set(edgeIndex, { nodeId: waitingJoin.nodeId, generation: waitingJoin.generation, path: [...waitingJoin.path],
438
+ inputs: structuredClone(member.inputs), source: structuredClone(member.completion), predecessors: { [sourceId]: structuredClone(member.completion) } });
439
+ }
440
+ if (held.size > 0)
441
+ pendingJoins.set(targetKey, held);
442
+ }
443
+ if (resumable.length === 0) {
444
+ // The journal can prove a whole finished graph whose final record never landed: every
445
+ // node completed, End among them, and no unfired arrival left to seed. Replaying nothing
446
+ // would restart from the entry node and re-run every completed mutation the journal
447
+ // already proved done. Re-enter End alone instead: its pass performs no work, the seeded
448
+ // completions stand, and the scheduler finalizes on the completion that routed into End.
449
+ // (A proven-done frontier with NO completed End never reaches here — the refusal above
450
+ // rejects that shape before any of the run's resources are opened.)
451
+ // A graph may hold several End nodes — pick the one the journal proves completed; the
452
+ // first End in object order may belong to a branch that never ran.
453
+ const endNode = Object.values(pinned.nodes).find(node => node.type === 'end' && progress.nodeResults[node.id])
454
+ ?? Object.values(pinned.nodes).find(node => node.type === 'end');
455
+ const endResult = endNode ? progress.nodeResults[endNode.id] : undefined;
456
+ if (endNode && endResult) {
457
+ for (const [nodeId, completion] of Object.entries(progress.nodeResults))
458
+ result.nodeResults[nodeId] = structuredClone(completion);
459
+ for (const [nodeId, count] of Object.entries(progress.visits))
460
+ visits.set(nodeId, count);
461
+ // End's journaled visit belongs to the stopped attempt; entering it here completes that
462
+ // pass, it is not a second visit.
463
+ visits.set(endNode.id, 0);
464
+ if (progress.toolCalls !== undefined)
465
+ result.toolCalls = progress.toolCalls;
466
+ for (const edge of pinned.edges) {
467
+ if (edge.target !== endNode.id)
468
+ continue;
469
+ const source = progress.nodeResults[edge.source];
470
+ if (source && (edge.outcome ?? 'completed') === (source.outcome ?? 'completed')) {
471
+ lastCompletion = structuredClone(source);
472
+ break;
473
+ }
474
+ }
475
+ queue.length = 0;
476
+ queue.push({ nodeId: endNode.id, generation: 0, path: [], inputs: {}, predecessors: {} });
477
+ currentNode = endNode.id;
478
+ // The seeded plan is seeded here too, exactly as the resumable path below does, and announced
479
+ // once `graph.started` has passed: a client builds its checklist from the event, and this
480
+ // attempt has nothing else to report — but a sink that clears its checklist on the start
481
+ // event would swallow a plan announced before it.
482
+ if (progress.todos?.length) {
483
+ todoStore.update(progress.todos);
484
+ seededPlan = todoStore.snapshot();
485
+ }
486
+ if (progress.widgets)
487
+ widgetStore.restore(progress.widgets);
488
+ }
489
+ }
490
+ if (resumable.length > 0) {
491
+ for (const [nodeId, completion] of Object.entries(progress.nodeResults)) {
492
+ result.nodeResults[nodeId] = structuredClone(completion);
493
+ }
494
+ // Key the executed set the way the stopped attempt keyed it — every `(generation, node)` the
495
+ // journal proves, not only each node's latest generation: a cycle can complete one node at two
496
+ // generations while older-generation work is still queued, and seeding only the later key lets
497
+ // the delayed earlier-generation activation run again, repeating effects the stopped attempt
498
+ // already paid for. A caller that carries only the per-node map (an older reader, or a test
499
+ // fixture) keeps its last-generation keys.
500
+ const executedKeys = progress.executed ?? Object.keys(progress.nodeResults).map(nodeId => `${progress.generations?.[nodeId] ?? 0}:${nodeId}`);
501
+ for (const key of executedKeys)
502
+ executed.add(key);
503
+ for (const [nodeId, count] of Object.entries(progress.visits))
504
+ visits.set(nodeId, count);
505
+ // The stopped attempt's tool spend carries over: a run capped at N calls had spent some (or
506
+ // all) of the graph-level allowance before the crash, and the resumed scheduler must budget
507
+ // from what is left, not hand the allowance out again.
508
+ if (progress.toolCalls !== undefined)
509
+ result.toolCalls = progress.toolCalls;
510
+ // Re-entry completes the stopped attempt's unfinished pass rather than costing a new visit:
511
+ // the node that started there already spent the visit its journal recorded, so that spend
512
+ // is given back or the re-entry would trip `maxNodeVisits` before it could finish.
513
+ for (const nodeId of reentry) {
514
+ const spent = visits.get(nodeId) ?? 0;
515
+ if (spent > 0)
516
+ visits.set(nodeId, spent - 1);
517
+ }
518
+ queue.length = 0;
519
+ queue.push(...resumable);
520
+ currentNode = resumable[0].nodeId;
521
+ // A run resumed straight into End: an uninterrupted run finalizes on the completion of the
522
+ // node that routed into End, but nothing runs between the seed and End's own completion to
523
+ // set `lastCompletion`. Seed it from the routing source the replay carried.
524
+ const endSeed = resumable.find(item => pinned.nodes[item.nodeId]?.type === 'end' && item.source !== undefined);
525
+ if (endSeed?.source)
526
+ lastCompletion = structuredClone(endSeed.source);
527
+ // The stopped attempt's plan comes back with the position it was written for, and it is
528
+ // announced rather than only seeded: the runtime reads the snapshot out of the todo store on
529
+ // its own, but every client's checklist is built from the event, and a continuation that stayed
530
+ // silent until the model happened to update the plan would look like the plan was lost. The
531
+ // announcement waits for after `graph.started` — see `seededPlan`.
532
+ if (progress.todos?.length) {
533
+ todoStore.update(progress.todos);
534
+ seededPlan = todoStore.snapshot();
535
+ }
536
+ if (progress.widgets)
537
+ widgetStore.restore(progress.widgets);
538
+ }
539
+ }
540
+ const liveUsage = { inputTokens: 0, outputTokens: 0, requests: 0 };
541
+ // Per-node token accounting, kept separate from `liveUsage` (which is run-cumulative): the
542
+ // timeline's node chips show each node's own input/output tokens and decode-window throughput.
543
+ // A node that runs twice (a cycle) accumulates across visits, which is what the chip shows.
544
+ const nodeUsageTotals = new Map();
545
+ // Cache splits stay sparse through every graph aggregation: a node or provider
546
+ // that reports no cache traffic never materializes explicit zeros downstream.
547
+ const addUsage = (target, delta) => {
548
+ target.inputTokens += delta.inputTokens;
549
+ target.outputTokens += delta.outputTokens;
550
+ target.requests += delta.requests;
551
+ const read = (target.cacheRead ?? 0) + (delta.cacheRead ?? 0);
552
+ if (read > 0)
553
+ target.cacheRead = read;
554
+ const write = (target.cacheWrite ?? 0) + (delta.cacheWrite ?? 0);
555
+ if (write > 0)
556
+ target.cacheWrite = write;
557
+ if (delta.decodeMs !== undefined)
558
+ target.decodeMs = (target.decodeMs ?? 0) + delta.decodeMs;
559
+ };
560
+ // The measured aggregation for the chips' aggregates only: the decode windows of a node's
561
+ // requests sum — the throughput divides the covered tokens by this total, so prefill and tool
562
+ // gaps never enter the figure — and the numerator records how many tokens those windows
563
+ // actually generated. Sparse like the cache splits: a request that measured no window covers
564
+ // nothing, and its tokens stay out of the numerator the way its time stays out of the
565
+ // denominator. The field never reaches the plain `Usage` of the run record — only the chips
566
+ // pair a numerator with a denominator, and only these two aggregates are read by the stamp.
567
+ const addMeasuredUsage = (target, delta) => {
568
+ addUsage(target, delta);
569
+ if (delta.decodeMs !== undefined)
570
+ target.measuredOutputTokens = (target.measuredOutputTokens ?? 0) + delta.outputTokens;
571
+ };
572
+ const prefetched = new Map();
573
+ const prefetchedStarted = new Set();
574
+ // Branches whose completion was already announced when their invocation returned: the queue's
575
+ // later pass must not announce them a second time.
576
+ const prefetchedCompleted = new Set();
577
+ const accounted = new Set();
578
+ const checkpoints = new Map();
579
+ const conversations = new WeakMap();
580
+ let lastAgentActivation;
581
+ let controlEvents = Promise.resolve();
582
+ const unsubscribeControl = context.runControl?.onChange(paused => {
583
+ controlEvents = controlEvents.then(() => emit(paused ? 'graph.paused' : 'graph.resumed', { nodeId: currentNode }));
584
+ void controlEvents.catch(() => { });
585
+ });
586
+ // Read-only graph work can be retried after its interrupted request settles. Never
587
+ // use this helper for mutations or memory persistence, which may partially apply.
588
+ const readWhileRunning = async (operation) => {
589
+ for (;;) {
590
+ await context.runControl?.wait(signal);
591
+ const operationSignal = context.runControl ? AbortSignal.any([signal, context.runControl.signal]) : signal;
592
+ try {
593
+ operationSignal.throwIfAborted();
594
+ const value = await operation(operationSignal);
595
+ if (operationSignal.aborted && !signal.aborted)
596
+ continue;
597
+ return value;
598
+ }
599
+ catch (error) {
600
+ if (!operationSignal.aborted || signal.aborted)
601
+ throw error;
602
+ }
603
+ }
604
+ };
605
+ try {
606
+ await options.memory?.beginRun(result.id);
607
+ for (const skillId of options.inheritedSkills ?? []) {
608
+ if (activeSkills.has(skillId))
609
+ continue;
610
+ activeSkills.add(skillId);
611
+ await emit('graph.skill.activated', { skillId });
612
+ }
613
+ const efficiency = resolveEfficiency(options.efficiency);
614
+ const providers = new Map([[options.provider, { model: options.model, adapter: options.adapter }]]);
615
+ for (const node of Object.values(pinned.nodes)) {
616
+ const references = [node.provider, node.retry?.fallback?.provider, node.subagents?.provider, ...(node.subagents?.roles ?? []).map(role => role.provider)];
617
+ for (const provider of references) {
618
+ if (!provider || providers.has(provider))
619
+ continue;
620
+ const resolved = options.resolveProvider?.(provider);
621
+ if (!resolved && options.resolveModel)
622
+ continue;
623
+ if (!resolved?.adapter || typeof resolved.adapter.generate !== 'function')
624
+ throw new Error(`Provider is not available: ${provider}`);
625
+ providers.set(provider, { ...resolved });
626
+ }
627
+ }
628
+ /**
629
+ * @param steerSource - the steering callback this invocation may poll, or undefined to
630
+ * run without steering. Steering is a single destructive queue, so handing the same
631
+ * callback to concurrent branches turns delivery into a race: whichever branch polls
632
+ * first consumes the message and the others never see it. Parallel groups therefore
633
+ * pass a wrapper that admits one branch at a time.
634
+ *
635
+ * Passed explicitly at every call site rather than defaulted: a default would apply
636
+ * when `undefined` is passed, so "no steering" would silently become "use the shared
637
+ * source" and every branch would race again.
638
+ */
639
+ const invoke = async (activation, maxToolCalls, wallTimeMs, concurrencyBudget, steerSource, continuation) => {
640
+ const nodeId = activation.nodeId;
641
+ const node = pinned.nodes[nodeId];
642
+ // A seeded activation carries its own continuation (the re-entered node's captured
643
+ // conversation); the explicit argument keeps the pause/resume control path unchanged.
644
+ continuation = continuation ?? activation.continuation;
645
+ const narrow = (run, remaining) => remaining === undefined ? run : run === undefined ? remaining : Math.min(run, remaining);
646
+ maxToolCalls = narrow(maxToolCalls, continuation?.state.remainingToolCalls);
647
+ wallTimeMs = narrow(wallTimeMs, continuation?.state.remainingWallTimeMs);
648
+ if (wallTimeMs !== undefined && wallTimeMs <= 0)
649
+ return { id: result.id, graph: pinned, provider: result.provider, model: result.model, status: 'exhausted', reason: 'wallTimeMs', toolCalls: 0, usage: { inputTokens: 0, outputTokens: 0, requests: 0 } };
650
+ const branchTodos = new TodoStore();
651
+ const snapshot = todoStore.snapshot();
652
+ if (activation.parallelGroup && snapshot.length)
653
+ branchTodos.update(snapshot);
654
+ const visibility = node.contextPolicy?.predecessors ?? 'none';
655
+ const predecessorOutputs = visibility === 'none' ? undefined : structuredClone(visibility === 'all' ? result.nodeResults : activation.predecessors);
656
+ const runMemory = options.memory?.activeFor(result.id) ? options.memory : undefined;
657
+ const memoryTask = typeof activation.inputs.taskInstruction === 'string' && activation.inputs.taskInstruction.trim()
658
+ ? activation.inputs.taskInstruction.trim() : options.task;
659
+ const memoryEligible = !!runMemory && runMemory.automaticRetrieval && node.agentRole !== 'orchestrator';
660
+ const decisionManager = options.decisionNodeOptIn && node.jevEnabled !== true
661
+ ? new DecisionManager({ config: { mode: 'off', provider: 'none' } }) : options.decisionManager;
662
+ // An empty workspace has no repository history to recall: under context selection the
663
+ // baseline retrieval is skipped on that fact alone, and the node learns the same facts.
664
+ // The facts are recollected per activation: an implementation node can create the very
665
+ // files a later node needs to retrieve, and a run-started snapshot would keep gating that
666
+ // retrieval on the empty workspace the run began in.
667
+ const facts = efficiency.contextSelection || efficiency.catalogSelection
668
+ ? await collectWorkspaceFacts(context.workspace, { signal: context.signal }) : undefined;
669
+ const retrievalGated = efficiency.contextSelection && facts?.empty === true;
670
+ // Disabled preflight cannot replace baseline memory retrieval.
671
+ const baselineMemoryRetrieval = !decisionManager?.active || options.efficiency?.jevPreflight === false;
672
+ if (retrievalGated && baselineMemoryRetrieval && runMemory && node.agentRole !== 'orchestrator') {
673
+ await emit('efficiency.context.retrieval_skipped', { nodeId, reason: 'empty_workspace', source: 'memory' });
674
+ }
675
+ const memory = baselineMemoryRetrieval && runMemory && node.agentRole !== 'orchestrator' && !retrievalGated
676
+ ? await readWhileRunning(operationSignal => runMemory.retrieve({ task: memoryTask, nodeId, runId: result.id, signal: operationSignal }))
677
+ : undefined;
678
+ const invocationTools = runMemory ? [...options.tools, memorySearchTool(runMemory, result.id)] : options.tools;
679
+ const invocationTask = [options.task, memory?.block, options.commandMemory?.context()].filter(Boolean).join('\n\n');
680
+ const instrument = (provider, resolved) => ({
681
+ ...resolved, adapter: dashboardAdapter(resolved.adapter, provider, event => options.onEvent?.(event), { runId: result.id, nodeId, nodeName: node.name, nodeType: node.type }),
682
+ });
683
+ let completedConversation;
684
+ // A routed continuation runs on the pair its conversation was written with: the visit is
685
+ // pinned (its routing already served it), so re-deciding could move the model out from
686
+ // under the restored transcript mid-visit. Routing decides again on the visit's next
687
+ // fresh activation, exactly as it would for any new node entry. The override rides the
688
+ // node, so both executor paths resolve the routed pair through their normal machinery.
689
+ const routedNode = activation.routedModel ? { ...node, provider: activation.routedModel.provider, model: activation.routedModel.model } : node;
690
+ const outcome = await (continuation && !continuation.state.copies ? executeAgentNode : executeModifiedAgent)(routedNode, {
691
+ ...options,
692
+ ...(activation.routedModel ? { modelPinned: true } : {}),
693
+ adapter: instrument(options.provider, { model: options.model, adapter: options.adapter }).adapter,
694
+ ...(options.resolveModel ? { resolveModel: async (provider, model, signal) => instrument(provider, await options.resolveModel(provider, model, signal)) } : {}),
695
+ // A live replacement enters through getLiveModel rather than resolveModel. Keep the
696
+ // same per-node request boundaries and duration events after the switch.
697
+ ...(options.getLiveModel ? { getLiveModel: async (id, provider, model, signal) => {
698
+ const live = await options.getLiveModel(id, provider, model, signal);
699
+ return live ? { ...instrument(live.provider, live), provider: live.provider } : undefined;
700
+ } } : {}),
701
+ task: invocationTask,
702
+ inheritedSkills: node.contextPolicy?.skillInheritance === 'none' ? [] : [...activeSkills],
703
+ instructions: node.contextPolicy?.skillInheritance === 'none' ? options.instructions
704
+ : [options.instructions, options.skillInvocationInstruction].filter(Boolean).join('\n\n'),
705
+ onSkillActivated: async (skillId) => {
706
+ if (activeSkills.has(skillId))
707
+ return;
708
+ activeSkills.add(skillId);
709
+ await emit('graph.skill.activated', { nodeId, skillId });
710
+ },
711
+ ...(continuation ? { resumeMessages: continuation.messages, resumeState: continuation.state, resumeDirectionRevision: continuation.revision } : {}),
712
+ previousConversation: !continuation && node.contextPolicy?.conversation !== 'isolate' && node.contextPolicy?.skillInheritance !== 'none' ? activation.conversation : undefined,
713
+ onConversationCheckpoint: async (messages, state, conversation) => {
714
+ if (context.runControl)
715
+ checkpoints.set(nodeId, { messages, state, revision: state.directionRevision });
716
+ completedConversation = conversation;
717
+ // Published per node so the caller can persist the run's furthest conversation: unlike the
718
+ // in-memory `checkpoints` map, which only fills while a pause control exists, durability
719
+ // has to hold for every run, including one that is killed with no control ever armed. The
720
+ // generation stamp tells a later resume which visit this conversation belongs to. The
721
+ // identity stamp names the model the handed-off conversation ran on: continuing a
722
+ // conversation requires the same provider and model, so a resume that restores this
723
+ // transcript to a pending successor must know what it was built against.
724
+ // The write is awaited: the checkpoint is the conversation a resume re-enters the node
725
+ // with, so a run that advanced past a mutating tool call while its checkpoint was still
726
+ // queued could be killed with that conversation unwritten — and the resume would re-enter
727
+ // the node from its opening task and repeat the work it had already done.
728
+ const identity = nodeIdentity(nodeId);
729
+ await options.onNodeCheckpoint?.(nodeId, messages, state, {
730
+ generation: activation.generation,
731
+ ...(conversation ? { provider: conversation.provider, model: conversation.model } : {}),
732
+ // The baseline this run had configured for the node: a resume whose recomputed
733
+ // baseline still matches knows the conversation's own pair (if it differs) was this
734
+ // configuration's routing decision, and continues the visit on it instead of
735
+ // restarting the node from its opening task.
736
+ routedFrom: { provider: identity.provider, ...(identity.model === undefined ? {} : { model: identity.model }) },
737
+ });
738
+ await options.onConversationCheckpoint?.(messages, state, conversation);
739
+ },
740
+ decisionManager,
741
+ ...(facts ? { workspaceFacts: facts } : {}),
742
+ decisionPreflight: { task: memoryTask, memory: memoryEligible, memoryAvailable: !!runMemory },
743
+ tools: invocationTools,
744
+ memory: runMemory,
745
+ concurrencyBudget, context, artifactStore,
746
+ todoStore: activation.parallelGroup ? branchTodos : todoStore,
747
+ widgetStore,
748
+ ...(activation.parallelGroup ? { onTodosUpdated: undefined } : {}), graph: pinned, runId: result.id, nodeId,
749
+ resolveProvider: id => { const resolved = providers.get(id); if (!resolved)
750
+ throw new Error(`Provider is not available: ${id}`); return instrument(id, resolved); },
751
+ mappedInputs: activation.inputs, predecessorOutputs,
752
+ getSteeringMessages: steerSource,
753
+ limits: { ...limits, maxToolCalls, wallTimeMs },
754
+ onUsage: (usage, origin) => {
755
+ addMeasuredUsage(liveUsage, usage);
756
+ const total = nodeUsageTotals.get(nodeId) ?? { inputTokens: 0, outputTokens: 0, requests: 0 };
757
+ addMeasuredUsage(total, usage);
758
+ nodeUsageTotals.set(nodeId, total);
759
+ options.onUsage?.(usage, origin);
760
+ },
761
+ onEvent: async (event) => {
762
+ // The agent's own events name the invocation but never the run; every graph event
763
+ // carries one. Seeding it here too is what lets the desktop key each node chip's
764
+ // figures by run, so a second task in the same session that reuses a node id
765
+ // cannot repaint the first task's chips with its spend.
766
+ event = { ...event, data: { runId: result.id, ...event.data, nodeName: node.name, nodeType: node.type } };
767
+ // `graphUsage` stays the run-cumulative reading it always was — the plain `Usage`,
768
+ // without the chips' internal measured-token pairing; `nodeUsage` is the same event's
769
+ // per-node figure for the chip — this activation's node so far, pairing included.
770
+ if (event.type === 'agent.model.completed') {
771
+ const { measuredOutputTokens: _chipsOnly, ...runUsage } = liveUsage;
772
+ event = { ...event, data: { ...event.data, graphUsage: runUsage,
773
+ nodeUsage: { ...(nodeUsageTotals.get(nodeId) ?? { inputTokens: 0, outputTokens: 0, requests: 0 }) } } };
774
+ }
775
+ if (activation.parallelGroup && event.type === 'graph.todos.updated')
776
+ event = { ...event, type: 'agent.modifier.todos.updated' };
777
+ options.commandMemory?.observe(event);
778
+ await options.onEvent?.(event);
779
+ },
780
+ });
781
+ if (outcome.status === 'succeeded' && completedConversation)
782
+ conversations.set(activation, completedConversation);
783
+ else
784
+ conversations.delete(activation);
785
+ return outcome;
786
+ };
787
+ await emit('graph.started', { graph: pinned });
788
+ // The resumed run's plan is published here, not at the seed: the browser activity sink clears its
789
+ // checklist on `graph.started`, so an earlier announcement would be erased by the event that
790
+ // announces the very run carrying it. The store already holds it, so nothing reading the store in
791
+ // between sees a gap — only the event stream had to wait for the reset.
792
+ if (seededPlan !== undefined)
793
+ await emit('graph.todos.updated', { todos: seededPlan });
794
+ // Widgets are announced on every run that defines them, resumed or not: the definitions
795
+ // themselves are part of what the user watches, so the panel appears with empty values the
796
+ // moment the run starts rather than waiting for the first update.
797
+ if (widgetStore.definitionsList().length)
798
+ await emit('graph.widgets.updated', { widgets: widgetStore.snapshot() });
799
+ if (options.memory) {
800
+ try {
801
+ const health = await options.memory.health(result.id);
802
+ await emit('memory.health', { status: health.status, ...(health.detail ? { detail: health.detail } : {}) });
803
+ }
804
+ catch (error) {
805
+ await emit('memory.health', { status: 'unavailable', detail: error instanceof Error ? error.message : 'memory health check failed' });
806
+ }
807
+ }
808
+ while (queue.length) {
809
+ signal.throwIfAborted();
810
+ await context.runControl?.wait(signal);
811
+ await controlEvents;
812
+ if (queue[0].parallelGroup && !prefetched.has(queue[0])) {
813
+ const group = queue.filter(item => item.parallelGroup === queue[0].parallelGroup);
814
+ const maxToolCalls = shareToolBudget(limits.maxToolCalls, result.toolCalls, group.length);
815
+ // A zero share is a valid budget: a branch that needs no tool still returns a
816
+ // completion, and the runtime rejects any tool call it cannot afford. Only an
817
+ // already-exhausted allowance stops the group.
818
+ const remaining = remainingToolBudget(limits.maxToolCalls, result.toolCalls);
819
+ if (remaining !== undefined && remaining < 0) {
820
+ result.reason = 'maxToolCalls';
821
+ break;
822
+ }
823
+ const exhausted = group.find(item => (visits.get(item.nodeId) ?? 0) + 1 > maxNodeVisitsOf(pinned));
824
+ if (exhausted) {
825
+ currentNode = exhausted.nodeId;
826
+ result.reason = `maxNodeVisits:${exhausted.nodeId}`;
827
+ break;
828
+ }
829
+ for (const item of group) {
830
+ currentNode = item.nodeId;
831
+ const node = pinned.nodes[item.nodeId];
832
+ const count = (visits.get(item.nodeId) ?? 0) + 1;
833
+ const mapped = {};
834
+ for (const [key, expression] of Object.entries(node.inputs ?? {}))
835
+ mapped[key] = resolveValue(expression, { source: item.source, run: { input: runInput, state: runState, loop: { iteration: count } } });
836
+ mergeInputs(item.inputs, mapped, item.nodeId);
837
+ if (node.inputSchema)
838
+ validateValue(node.inputSchema, item.inputs, `Node ${item.nodeId} inputs`);
839
+ }
840
+ // One branch at a time owns the queue, and ownership transfers as branches come and go.
841
+ // Pinning it to a fixed branch would starve every later branch of a serial group: with
842
+ // maxConcurrent 1 the first branch finishes and the next runs with steering disabled,
843
+ // so a steer submitted then would stay queued and could reach no one.
844
+ const activeBranches = [];
845
+ const steeringFor = (item) => {
846
+ const source = options.getSteeringMessages;
847
+ if (!source)
848
+ return undefined;
849
+ return signal => (activeBranches[0] === item ? source(signal) : Promise.resolve([]));
850
+ };
851
+ const workers = Math.min(group.length, group[0].concurrency ?? 1, pinned.limits?.maxConcurrency ?? 32);
852
+ const concurrencyPerBranch = Math.max(1, Math.floor((pinned.limits?.maxConcurrency ?? 32) / workers));
853
+ let index = 0;
854
+ const failures = [];
855
+ await Promise.all(Array.from({ length: workers }, async () => {
856
+ while (index < group.length && !signal.aborted && !failures.length) {
857
+ const item = group[index++];
858
+ // Registered before the first await so leadership follows the deterministic
859
+ // start order rather than async scheduling.
860
+ activeBranches.push(item);
861
+ try {
862
+ await emit('graph.node.started', { nodeId: item.nodeId, visit: (visits.get(item.nodeId) ?? 0) + 1, generation: item.generation, path: [...item.path], ...startIdentity(item.nodeId, item.routedModel) });
863
+ prefetchedStarted.add(item);
864
+ // Agent executions count their own attempts in the agent runtime; every other node
865
+ // type executes only here, and the ADR counts attempts across all nodes.
866
+ if (pinned.nodes[item.nodeId]?.type !== 'agent')
867
+ recordAttempt(result.telemetry, (visits.get(item.nodeId) ?? 0) > 0);
868
+ const outcome = await invoke(item, maxToolCalls, budget.remainingMs(), concurrencyPerBranch, steeringFor(item));
869
+ prefetched.set(item, outcome);
870
+ // A branch that finished while a sibling still runs answers for itself now. Waiting
871
+ // for the whole Promise.all would report its completion only when the slowest sibling
872
+ // returned, leaving every surface that reads liveness off this event — the TUI's
873
+ // active set, the desktop rail, run progress — calling a done branch working for the
874
+ // sibling's full duration. The queue's later pass skips the second announcement. An
875
+ // outcome the sequential path would reject (unknown, or missing on an agent) is left
876
+ // unannounced so the failure still surfaces from the same place it does today, and a
877
+ // completion the queue's own output-schema validation will reject is left unannounced
878
+ // too (checked below): the event is persisted in the journal, and a replay would read
879
+ // a completion that validation refuses as authoritative, letting a resumed attempt
880
+ // skip the invalid branch entirely. Validating here keeps the journal honest; a
881
+ // violation falls through to the queue pass, which raises it at its deterministic
882
+ // point and never announces the completion either.
883
+ const branch = pinned.nodes[item.nodeId];
884
+ if (branch?.type === 'agent' && outcome.status === 'succeeded' && outcome.completion) {
885
+ const completion = outcome.completion;
886
+ completion.outcome ??= 'completed';
887
+ if (nodeOutcomes({ ...branch, modifiers: undefined }).includes(completion.outcome)) {
888
+ let validated = true;
889
+ const schema = nodeOutputSchema(branch);
890
+ if (schema) {
891
+ try {
892
+ validateValue(schema, completion.output, `Node ${item.nodeId} output`);
893
+ }
894
+ catch {
895
+ validated = false;
896
+ }
897
+ }
898
+ if (validated) {
899
+ await emit('graph.node.completed', {
900
+ nodeId: item.nodeId,
901
+ completion: branch.modifiers?.condition
902
+ ? { ...completion, outcome: matchesOutput(completion, branch.modifiers.condition) ? 'true' : 'false' }
903
+ : completion,
904
+ });
905
+ prefetchedCompleted.add(item);
906
+ }
907
+ }
908
+ }
909
+ }
910
+ catch (error) {
911
+ failures.push(error);
912
+ }
913
+ finally {
914
+ const at = activeBranches.indexOf(item);
915
+ if (at >= 0)
916
+ activeBranches.splice(at, 1);
917
+ }
918
+ }
919
+ }));
920
+ const failedActivation = group.find(item => { const outcome = prefetched.get(item); return outcome && outcome.status !== 'succeeded'; });
921
+ const failed = failedActivation && prefetched.get(failedActivation);
922
+ for (const item of group) {
923
+ const outcome = prefetched.get(item);
924
+ if (!outcome)
925
+ continue;
926
+ result.toolCalls += outcome.toolCalls;
927
+ addUsage(result.usage, outcome.usage);
928
+ absorbTelemetry(result, outcome);
929
+ accounted.add(item);
930
+ }
931
+ if (failed || failures.length || signal.aborted) {
932
+ if (failures.length)
933
+ throw failures[0];
934
+ signal.throwIfAborted();
935
+ currentNode = failedActivation.nodeId;
936
+ result.provider = failed.provider;
937
+ result.model = failed.model;
938
+ result.status = failed.status;
939
+ result.reason = failed.reason ?? failed.status;
940
+ // Report the failing branch's effective bounds, which a node limit can tighten.
941
+ if (failed.limits)
942
+ result.limits = failed.limits;
943
+ break;
944
+ }
945
+ }
946
+ const activation = queue.shift();
947
+ const nodeId = currentNode = activation.nodeId;
948
+ const node = pinned.nodes[nodeId];
949
+ const count = (visits.get(nodeId) ?? 0) + 1;
950
+ if (count > maxNodeVisitsOf(pinned)) {
951
+ result.reason = `maxNodeVisits:${nodeId}`;
952
+ break;
953
+ }
954
+ visits.set(nodeId, count);
955
+ // See the parallel path: an agent counts its own attempts, and every other node type is
956
+ // counted here so `attempts` reflects the run's real node executions.
957
+ if (node.type !== 'agent')
958
+ recordAttempt(result.telemetry, count > 1);
959
+ executed.add(`${activation.generation}:${nodeId}`);
960
+ // The remaining budget comes from the run's own clock, so time a node spent waiting on
961
+ // the user is not charged to the nodes that follow it.
962
+ const wallTimeMs = budget.remainingMs();
963
+ if (wallTimeMs !== undefined && wallTimeMs <= 0) {
964
+ result.reason = 'wallTimeMs';
965
+ break;
966
+ }
967
+ const scope = { source: activation.source, run: { input: runInput, state: runState, loop: { iteration: count } } };
968
+ const configuredInputs = {};
969
+ for (const [key, expression] of Object.entries(node.inputs ?? {}))
970
+ configuredInputs[key] = resolveValue(expression, scope);
971
+ mergeInputs(activation.inputs, configuredInputs, nodeId);
972
+ if (node.inputSchema)
973
+ validateValue(node.inputSchema, activation.inputs, `Node ${nodeId} inputs`);
974
+ let completion = { summary: node.name, tests: [], outcome: 'completed', output: {} };
975
+ // The activation's generation and trail are journalled with the start line: they exist in
976
+ // memory only, and a resume that re-enters this visit journals no routing for it, so a replay
977
+ // has nothing else to reconstruct them from. A second crash would otherwise read the re-entry
978
+ // as a generation-zero, ancestry-free activation — rejecting the checkpoint this visit wrote
979
+ // and losing the revisit its outgoing back-edge owes.
980
+ if (!prefetchedStarted.has(activation))
981
+ await emit('graph.node.started', { nodeId, visit: count, generation: activation.generation, path: [...activation.path], ...startIdentity(nodeId, activation.routedModel) });
982
+ if (node.type === 'agent') {
983
+ const maxToolCalls = remainingToolBudget(limits.maxToolCalls, result.toolCalls);
984
+ // Only an already-overspent allowance stops the node: a zero remainder is a valid
985
+ // budget, since a node that needs no tool still returns a completion.
986
+ if (!prefetched.has(activation) && maxToolCalls !== undefined && maxToolCalls < 0) {
987
+ result.reason = 'maxToolCalls';
988
+ break;
989
+ }
990
+ // A node outside a parallel group runs alone, so it polls the shared source directly.
991
+ const outcome = prefetched.get(activation) ?? await invoke(activation, maxToolCalls, wallTimeMs, pinned.limits?.maxConcurrency ?? 32, options.getSteeringMessages);
992
+ prefetched.delete(activation);
993
+ result.provider = outcome.provider;
994
+ result.model = outcome.model;
995
+ if (!accounted.has(activation)) {
996
+ result.toolCalls += outcome.toolCalls;
997
+ addUsage(result.usage, outcome.usage);
998
+ // A prefetched parallel outcome was merged, telemetry included, when its group settled;
999
+ // absorbing it again would double the run's attempts, tokens and tool counts.
1000
+ absorbTelemetry(result, outcome);
1001
+ }
1002
+ if (outcome.status !== 'succeeded') {
1003
+ // Cancellation is judged from the session signal: the run signal may be fused with
1004
+ // this run's own clock, and a deadline must never be reported as a cancellation.
1005
+ const cancelled = (options.context.userSignal ?? options.context.signal).aborted;
1006
+ result.status = cancelled ? 'cancelled' : budget.expired() ? 'exhausted' : outcome.status;
1007
+ result.reason = cancelled ? 'cancelled' : budget.expired() ? 'wallTimeMs' : outcome.reason ?? outcome.status;
1008
+ // Report the node's effective bounds, which a node limit can tighten.
1009
+ if (outcome.limits)
1010
+ result.limits = outcome.limits;
1011
+ break;
1012
+ }
1013
+ if (!outcome.completion)
1014
+ throw new Error(`Agent ${nodeId} returned no validated completion.`);
1015
+ lastAgentActivation = activation;
1016
+ completion = outcome.completion;
1017
+ completion.outcome ??= 'completed';
1018
+ if (!nodeOutcomes({ ...node, modifiers: undefined }).includes(completion.outcome))
1019
+ throw new Error(`Agent ${nodeId} returned unknown outcome "${completion.outcome}".`);
1020
+ if (node.modifiers?.condition)
1021
+ completion = { ...completion, outcome: matchesOutput(completion, node.modifiers.condition) ? 'true' : 'false' };
1022
+ result.completion = completion;
1023
+ }
1024
+ if (node.type === 'condition') {
1025
+ const source = result.nodeResults[node.condition.source];
1026
+ if (!source)
1027
+ throw new Error(`Condition ${nodeId}: source ${node.condition.source} has not completed. Route its result before the condition.`);
1028
+ const value = node.condition.path.split('.').filter(Boolean).reduce((value, key) => value && typeof value === 'object' && Object.hasOwn(value, key) ? value[key] : undefined, source.output ?? source);
1029
+ completion.outcome = equal(value, node.condition.equals) ? 'true' : 'false';
1030
+ }
1031
+ else if (node.type === 'loop') {
1032
+ completion.outcome = count <= node.loop.maxIterations ? 'body' : 'done';
1033
+ completion.output = { iteration: count };
1034
+ }
1035
+ else if (node.type === 'approval') {
1036
+ await emit('approval.requested', { nodeId, name: node.name });
1037
+ // The approval prompt is a human wait, so it gets the session signal: the run's
1038
+ // wall clock must not answer for the user.
1039
+ let approved = false;
1040
+ for (;;) {
1041
+ await context.runControl?.wait(signal);
1042
+ const promptSignal = context.runControl ? AbortSignal.any([context.userSignal ?? signal, context.runControl.signal]) : context.userSignal ?? signal;
1043
+ try {
1044
+ const answer = (context.runControl?.yolo ?? context.yolo) || (context.approvalMode !== 'headless' && await context.approve('graph.approval', { nodeId, name: node.name, inputs: activation.inputs }, promptSignal));
1045
+ if (answer === 'policy-changed')
1046
+ continue;
1047
+ approved = answer;
1048
+ if (promptSignal.aborted && !signal.aborted)
1049
+ continue;
1050
+ break;
1051
+ }
1052
+ catch (error) {
1053
+ if (!promptSignal.aborted || signal.aborted)
1054
+ throw error;
1055
+ }
1056
+ }
1057
+ signal.throwIfAborted();
1058
+ completion.outcome = approved ? 'approved' : 'rejected';
1059
+ await emit(approved ? 'approval.approved' : 'approval.denied', { nodeId, name: node.name });
1060
+ }
1061
+ else if (node.type === 'action') {
1062
+ // This node consumes one call below, so being already at the ceiling is a stop.
1063
+ if (!withinToolBudget(result.toolCalls + 1, limits.maxToolCalls)) {
1064
+ result.reason = 'maxToolCalls';
1065
+ break;
1066
+ }
1067
+ const shellName = canonicalToolName('shell');
1068
+ const tool = capabilityTools(node, options.tools).find(tool => canonicalToolName(tool.name) === shellName);
1069
+ if (!tool)
1070
+ throw new Error(`Action ${nodeId}: ${shellName} is unavailable under this node capability policy. Explicitly allow shell, filesystem and Git writes and the shell tool, or remove this action.`);
1071
+ result.toolCalls++;
1072
+ // The action path runs the shell outside the hardened runtime, so it records its own
1073
+ // capture entry: otherwise an action-only graph reports no tool call or per-tool row.
1074
+ if (result.telemetry)
1075
+ recordToolUse(result.telemetry, shellName, false);
1076
+ const toolCallId = randomUUID();
1077
+ const actionSignal = context.runControl ? AbortSignal.any([signal, context.runControl.signal]) : signal;
1078
+ await emit('node.tool.started', { nodeId, name: shellName, toolCallId, arguments: { command: node.action.command } });
1079
+ let output;
1080
+ let durationMs;
1081
+ const startedAt = monotonicNow();
1082
+ // The shell's approval prompt is a human wait inside `execute`, and the action node has no
1083
+ // hardened-runtime wrapper to subtract it: measured here the same way, so the terminal
1084
+ // `durationMs` — and the ToolCallClock reading it accepts — never charge the deciding.
1085
+ let userWaitMs = 0;
1086
+ let waitSince;
1087
+ const closeUserWait = () => {
1088
+ if (waitSince !== undefined) {
1089
+ userWaitMs += monotonicNow() - waitSince;
1090
+ waitSince = undefined;
1091
+ }
1092
+ return userWaitMs;
1093
+ };
1094
+ let interrupted = false;
1095
+ try {
1096
+ actionSignal.throwIfAborted();
1097
+ output = await tool.execute({ command: node.action.command }, { ...context, signal: actionSignal, userSignal: actionSignal, onApprovalEvent: (type, data) => {
1098
+ if (type === 'node.tool.approval.requested')
1099
+ waitSince ??= monotonicNow();
1100
+ else if (type === 'node.tool.approval.decided')
1101
+ closeUserWait();
1102
+ return emit(type, { ...data, nodeId, toolCallId });
1103
+ } });
1104
+ const workedMs = elapsedMs(startedAt);
1105
+ const waitedMs = closeUserWait();
1106
+ durationMs = workedMs === undefined ? undefined : Math.max(0, workedMs - waitedMs);
1107
+ }
1108
+ catch (error) {
1109
+ // A pause that aborts the approval mid-prompt leaves the open wait unbilled too.
1110
+ const workedMs = elapsedMs(startedAt);
1111
+ const waitedMs = closeUserWait();
1112
+ durationMs = workedMs === undefined ? undefined : Math.max(0, workedMs - waitedMs);
1113
+ await emit('node.tool.failed', { nodeId, name: shellName, toolCallId, durationMs, output: `Tool error: ${error instanceof Error ? error.message : String(error)}` });
1114
+ if (!actionSignal.aborted || signal.aborted) {
1115
+ // A real shell failure: the call was counted above, and this records the failure. A
1116
+ // suite that ran and failed is still test evidence, so it is recorded before the throw.
1117
+ if (result.telemetry) {
1118
+ recordToolFailure(result.telemetry, shellName);
1119
+ if (isTestCommandLine(node.action.command))
1120
+ recordTestCommand(result.telemetry);
1121
+ }
1122
+ throw error;
1123
+ }
1124
+ interrupted = true;
1125
+ output = `Interrupted by user; effects may be partial. Not replayed. ${error instanceof Error ? error.message : String(error)}`;
1126
+ completion.summary = `${node.name} was interrupted; its effects may be partial and were not replayed.`;
1127
+ await context.runControl?.wait(signal);
1128
+ }
1129
+ finally {
1130
+ options.codeIntel?.notePotentialMutation(context.workspace, '(graph action shell)');
1131
+ }
1132
+ completion.output = { result: output };
1133
+ // A command the user stopped did not run to completion, so it is not test evidence even if
1134
+ // its name looks like a test command; the same rule the hardened runtime applies.
1135
+ if (!interrupted && result.telemetry && isTestCommandLine(node.action.command))
1136
+ recordTestCommand(result.telemetry);
1137
+ if (!interrupted)
1138
+ await emit('node.tool.completed', { nodeId, name: shellName, toolCallId, durationMs, output });
1139
+ }
1140
+ else if (node.type === 'parallel' || node.type === 'join')
1141
+ completion.output = activation.inputs;
1142
+ if (nodeOutputSchema(node))
1143
+ validateValue(nodeOutputSchema(node), completion.output, `Node ${nodeId} output`);
1144
+ signal.throwIfAborted();
1145
+ result.nodeResults[nodeId] = completion;
1146
+ if (node.type !== 'end')
1147
+ lastCompletion = completion;
1148
+ // A prefetched branch already announced its completion when its invocation returned; the
1149
+ // queue reaching it is bookkeeping, not a second completion.
1150
+ if (!prefetchedCompleted.has(activation))
1151
+ await emit('graph.node.completed', { nodeId, completion });
1152
+ const next = [];
1153
+ for (const [edgeIndex, edge] of pinned.edges.entries()) {
1154
+ if (edge.source !== nodeId || (edge.outcome ?? 'completed') !== completion.outcome)
1155
+ continue;
1156
+ const target = pinned.nodes[edge.target];
1157
+ let path = [...activation.path, nodeId];
1158
+ const isRevisit = path.includes(edge.target);
1159
+ const generation = isRevisit ? ++nextGeneration : activation.generation;
1160
+ if (isRevisit)
1161
+ path = [];
1162
+ const targetKey = `${generation}:${edge.target}`;
1163
+ const queued = queue.find(item => item.nodeId === edge.target && item.generation === generation) ?? next.find(item => item.nodeId === edge.target && item.generation === generation);
1164
+ if (queued && !Object.hasOwn(queued.predecessors, nodeId))
1165
+ delete queued.conversation;
1166
+ if (executed.has(targetKey) || queued)
1167
+ continue;
1168
+ const inputs = {};
1169
+ for (const [key, expression] of Object.entries(edge.inputMapping ?? {}))
1170
+ inputs[key] = resolveValue(expression, { source: completion, run: { input: runInput, state: runState, loop: { iteration: count } } });
1171
+ const incoming = { ...(node.modifiers?.parallel?.mode === 'branches' ? { parallelGroup: `${nodeId}:${activation.generation}:${count}`, concurrency: node.modifiers.parallel.maxConcurrent } : {}), nodeId: edge.target, generation, path, inputs, source: completion, predecessors: { [nodeId]: completion } };
1172
+ if (node.type === 'agent' && target.type === 'agent' && node.contextPolicy?.conversation !== 'isolate')
1173
+ incoming.conversation = conversations.get(activation);
1174
+ if (target.type === 'join' && target.join?.mode !== 'any' && !edge.bootstrap) {
1175
+ const pending = pendingJoins.get(targetKey) ?? new Map();
1176
+ pending.set(edgeIndex, incoming);
1177
+ pendingJoins.set(targetKey, pending);
1178
+ const dependencies = pinned.edges.map((candidate, index) => candidate.target === edge.target && !candidate.bootstrap ? index : -1).filter(index => index >= 0);
1179
+ if (!dependencies.every(index => pending.has(index)))
1180
+ continue;
1181
+ const members = [...pending.values()];
1182
+ // Journal every branch's own activation, not one event for whichever branch completed
1183
+ // last: recovery rebuilds a queued join from the journal, and a single final event would
1184
+ // replay the join holding only the last branch's result — the merged inputs and
1185
+ // predecessors the in-memory activation carried would exist nowhere a resume can read.
1186
+ for (const member of members) {
1187
+ const memberSource = Object.keys(member.predecessors)[0];
1188
+ await emit('graph.edge.activated', { source: memberSource, target: edge.target, outcome: member.predecessors[memberSource].outcome });
1189
+ }
1190
+ for (const item of pending.values()) {
1191
+ mergeInputs(incoming.inputs, item.inputs, edge.target);
1192
+ Object.assign(incoming.predecessors, item.predecessors);
1193
+ }
1194
+ incoming.path = [...new Set([...pending.values()].flatMap(item => item.path))];
1195
+ pendingJoins.delete(targetKey);
1196
+ next.push(incoming);
1197
+ continue;
1198
+ }
1199
+ next.push(incoming);
1200
+ await emit('graph.edge.activated', { source: nodeId, target: edge.target, outcome: completion.outcome });
1201
+ }
1202
+ if (activation.parallelGroup) {
1203
+ const pendingSiblings = queue.filter(item => item.parallelGroup === activation.parallelGroup).length;
1204
+ queue.splice(pendingSiblings, 0, ...next);
1205
+ }
1206
+ else
1207
+ queue.unshift(...next);
1208
+ }
1209
+ if (!result.reason && result.status === 'exhausted') {
1210
+ if (pendingJoins.size)
1211
+ throw new Error(`Join ${[...pendingJoins.keys()].join(', ')} cannot receive all required branches. Connect routes that can complete together or change Join to any.`);
1212
+ signal.throwIfAborted();
1213
+ result.status = 'succeeded';
1214
+ result.completion = lastCompletion ?? result.nodeResults[currentNode];
1215
+ let finalizationRevision = lastAgentActivation ? checkpoints.get(lastAgentActivation.nodeId)?.revision ?? context.runControl?.revision ?? 0 : context.runControl?.revision ?? 0;
1216
+ for (;;) {
1217
+ await context.runControl?.wait(signal);
1218
+ await controlEvents;
1219
+ if (context.runControl && context.runControl.revision > finalizationRevision) {
1220
+ const directions = context.runControl.messagesSince(finalizationRevision);
1221
+ finalizationRevision = context.runControl.revision;
1222
+ const checkpoint = lastAgentActivation && checkpoints.get(lastAgentActivation.nodeId);
1223
+ if (lastAgentActivation && checkpoint) {
1224
+ // Routing is complete. Resume the last node's checkpointed conversation
1225
+ // (or each indexed copy) without replaying completed graph actions.
1226
+ await emit('graph.finalization.resumed', { nodeId: lastAgentActivation.nodeId });
1227
+ const continuation = await invoke(lastAgentActivation, remainingToolBudget(limits.maxToolCalls, result.toolCalls), budget.remainingMs(), pinned.limits?.maxConcurrency ?? 32, options.getSteeringMessages, checkpoint);
1228
+ result.toolCalls += continuation.toolCalls;
1229
+ addUsage(result.usage, continuation.usage);
1230
+ absorbTelemetry(result, continuation);
1231
+ result.provider = continuation.provider;
1232
+ result.model = continuation.model;
1233
+ if (continuation.status !== 'succeeded' || !continuation.completion) {
1234
+ result.status = continuation.status;
1235
+ result.reason = continuation.reason ?? continuation.status;
1236
+ break;
1237
+ }
1238
+ const condition = pinned.nodes[lastAgentActivation.nodeId].modifiers?.condition;
1239
+ const completion = condition
1240
+ ? { ...continuation.completion, outcome: matchesOutput(continuation.completion, condition) ? 'true' : 'false' }
1241
+ : continuation.completion;
1242
+ result.completion = completion;
1243
+ result.nodeResults[lastAgentActivation.nodeId] = completion;
1244
+ finalizationRevision = checkpoints.get(lastAgentActivation.nodeId)?.revision ?? finalizationRevision;
1245
+ }
1246
+ else {
1247
+ // Fixed graphs have no model conversation that could act on new prose.
1248
+ // Acknowledge explicitly rather than silently discarding accepted input.
1249
+ await emit('agent.message', { text: `Direction received after fixed graph actions finished: ${directions.join('\n')}\nThis graph has no resumable agent; completed actions were not replayed.` });
1250
+ }
1251
+ }
1252
+ // Memory distillation no longer gates on token headroom: the cumulative ceiling
1253
+ // was removed, and distillation is bounded by its own adapter request instead.
1254
+ if (options.memory?.activeFor(result.id)) {
1255
+ const nodeOutputs = Object.fromEntries(Object.entries(result.nodeResults ?? {}).map(([id, item]) => [id, item.output]));
1256
+ const orchestratorOutputs = Object.entries(pinned.nodes).filter(([, node]) => node.agentRole === 'orchestrator').map(([id]) => result.nodeResults?.[id]?.output);
1257
+ const agentCompletions = Object.entries(result.nodeResults ?? {}).filter(([id]) => pinned.nodes[id]?.type === 'agent').map(([id, item]) => ({ id, item }));
1258
+ const completionSummary = agentCompletions.map(({ id, item }) => `${pinned.nodes[id].name}: ${item.summary}`).join('\n').slice(0, 8000) || result.completion?.summary;
1259
+ const tests = [...new Set(agentCompletions.flatMap(({ item }) => item.tests ?? []))].slice(0, 50);
1260
+ let distillAdapter = providers.get(result.provider)?.adapter;
1261
+ let distillModel = result.model;
1262
+ let distillProviderType = providers.get(result.provider)?.providerType;
1263
+ let distillBaseUrl = providers.get(result.provider)?.baseUrl;
1264
+ if (!distillAdapter && options.resolveModel) {
1265
+ try {
1266
+ const resolved = await readWhileRunning(operationSignal => options.resolveModel(result.provider, result.model, operationSignal));
1267
+ distillAdapter = resolved.adapter;
1268
+ distillModel = result.model || resolved.model;
1269
+ distillProviderType = resolved.providerType;
1270
+ distillBaseUrl = resolved.baseUrl;
1271
+ }
1272
+ catch (error) {
1273
+ if (signal.aborted)
1274
+ throw error;
1275
+ await emit('memory.error', { operation: 'distill-model-resolution', detail: error instanceof Error ? error.message : 'model resolution failed' });
1276
+ }
1277
+ }
1278
+ // A resumed direction invalidates the old completion before any new
1279
+ // persistence attempt, including pauses during model metadata resolution.
1280
+ if (context.runControl && context.runControl.revision > finalizationRevision)
1281
+ continue;
1282
+ // Capture the operation generation before starting graph-owned finalization.
1283
+ // MemoryManager may swallow abort and return partial persisted IDs, so the
1284
+ // checkpoint below is mandatory even when distillation resolves successfully.
1285
+ const distillSignal = context.runControl ? AbortSignal.any([signal, context.runControl.signal]) : signal;
1286
+ try {
1287
+ await options.memory.distillRun({
1288
+ task: options.task, status: result.status, outcome: result.completion?.outcome,
1289
+ completionSummary, tests, nodeOutputs, orchestratorOutputs, confirmedClarifications,
1290
+ // The distillation is a billed model request like any node's, so it goes through the
1291
+ // same instrumented generation path: without that it reported its tokens in the run
1292
+ // totals while contributing no model tuple, and a run whose only model call was the
1293
+ // distillation published no model at all. Its own `onUsage` is therefore not supplied
1294
+ // here — `generateWithUsage` is the single accounting path for this request.
1295
+ adapter: distillAdapter ? dashboardAdapter({
1296
+ generate: request => generateWithUsage({
1297
+ ...options,
1298
+ telemetryIdentity: {
1299
+ role: 'other',
1300
+ ...(distillProviderType === undefined ? {} : { providerType: distillProviderType }),
1301
+ ...(distillBaseUrl === undefined ? {} : { baseUrl: distillBaseUrl }),
1302
+ },
1303
+ // `generateWithUsage` has already added this delta to `result.usage`; adding it
1304
+ // again here would double the run totals against the tuple and the provider.
1305
+ onUsage: (usage, origin) => options.onUsage?.(usage, origin),
1306
+ }, result, request),
1307
+ }, result.provider, event => options.onEvent?.(event), { runId: result.id, operation: 'memory.distillation' }) : undefined,
1308
+ model: distillModel, signal: distillSignal, runId: result.id,
1309
+ });
1310
+ }
1311
+ catch (error) {
1312
+ if (!distillSignal.aborted || signal.aborted)
1313
+ throw error;
1314
+ }
1315
+ signal.throwIfAborted();
1316
+ }
1317
+ await context.runControl?.wait(signal);
1318
+ await controlEvents;
1319
+ if (context.runControl && context.runControl.revision > finalizationRevision)
1320
+ continue;
1321
+ break;
1322
+ }
1323
+ if (result.status === 'succeeded')
1324
+ await emit('graph.completed', { node: currentNode, nodeId: currentNode, usage: { ...result.usage }, toolCalls: result.toolCalls });
1325
+ }
1326
+ }
1327
+ catch (error) {
1328
+ // Cancellation is judged from the session signal; every other abort that reached the run
1329
+ // signal is a deadline.
1330
+ const cancelled = (options.context.userSignal ?? options.context.signal).aborted;
1331
+ const deadline = budget.expired() || signal.aborted;
1332
+ result.status = cancelled ? 'cancelled' : deadline ? 'exhausted' : 'infrastructure_error';
1333
+ result.reason = cancelled ? 'cancelled' : deadline ? 'wallTimeMs' : error instanceof Error ? error.message : 'Graph runtime failure';
1334
+ }
1335
+ // Cleanup must be unconditional: both the stop event and the Code Intelligence handoff await
1336
+ // sinks that can reject, and a rejection would otherwise skip disposal and leave the run's
1337
+ // timer retained until its original deadline.
1338
+ try {
1339
+ await options.commandMemory?.flush(options.context.userSignal ?? options.context.signal);
1340
+ if (result.status !== 'succeeded') {
1341
+ delete result.completion;
1342
+ // The event carries the raw code for a machine and the finished sentence for a person, so a
1343
+ // client that reads only the journal shows the same words as the command line.
1344
+ await emit('graph.stopped', { nodeId: currentNode, status: result.status, reason: result.reason, reasonText: stopReasonSentence(result.reason, result.limits), usage: { ...result.usage }, toolCalls: result.toolCalls });
1345
+ }
1346
+ result.todos = todoStore.snapshot();
1347
+ if (widgetStore.definitionsList().length)
1348
+ result.widgets = widgetStore.snapshot();
1349
+ await options.codeIntel?.endRun({ status: result.status, usage: result.usage, toolCalls: result.toolCalls });
1350
+ return result;
1351
+ }
1352
+ finally {
1353
+ unsubscribeControl?.();
1354
+ budget.dispose();
1355
+ }
1356
+ }