@andorra-labs/code 0.0.0-stage → 0.1.4

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 +48 -0
  652. package/dist/src/update.js +614 -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 +64 -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 +74 -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 +325 -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 +47 -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,1102 @@
1
+ import { mkdir, readFile, readdir, rename, unlink, writeFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { configDirectory } from './config.js';
5
+ import { acquireSaveLock, archiveUnpublishedSnapshot, SaveLockBusyError } from './save-lock.js';
6
+ import { validateMappingConstants, validateMappings, validateSchema, validateValue, schemaAt, nodeOutputSchema } from './handoffs.js';
7
+ import { CANONICAL_CODING_TOOLS, canonicalToolName, canonicalizeToolList, toolNameMatches } from './tool-names.js';
8
+ export const GRAPH_TOOLS = [...CANONICAL_CODING_TOOLS, 'NativeExec', 'AsyncProcess', 'PowerShellFast', 'ShellMetrics', 'read_file', 'list_files', 'search_files', 'write_file', 'edit_file', 'read', 'write', 'edit', 'find', 'grep', 'ls', 'powershell', 'bash', 'shell', 'git_read', 'read_artifact', 'write_artifact', 'repo_explore', 'memory_search', 'set_timer', 'pull_request', 'qa.inspect_project', 'qa.status', 'qa.fast', 'qa.deep', 'qa.test', 'qa.terminal', 'qa.security', 'qa.browser', 'qa.browser_session', 'read_skill_resource', 'browser.panel'];
9
+ /** QA tool names are an explicit allowlist; gating keys off membership, never a name prefix. */
10
+ export const QA_TOOL_NAMES = ['qa.inspect_project', 'qa.status', 'qa.fast', 'qa.deep', 'qa.test', 'qa.terminal', 'qa.security', 'qa.browser'];
11
+ export const isQaToolName = (name) => QA_TOOL_NAMES.includes(name);
12
+ export const LEGACY_DEFAULT_HARNESS = {
13
+ schemaVersion: 1, id: 'default', name: 'Software Engineer', revision: 1, entry: 'engineer',
14
+ nodes: {
15
+ engineer: {
16
+ id: 'engineer', name: 'Software Engineer', type: 'agent', position: { x: 120, y: 120 },
17
+ prompt: "You are the Software Engineer agent.\nInspect the workspace, implement the user's task, and verify changes with appropriate tools.",
18
+ },
19
+ done: { id: 'done', name: 'Done', type: 'end', position: { x: 440, y: 120 } },
20
+ }, edges: [{ source: 'engineer', target: 'done' }],
21
+ };
22
+ /** The intake role is configuration for the shared executor, not a separate runtime. */
23
+ export function createOrchestratorNode(id = 'orchestrator') {
24
+ const list = { type: 'array', items: { type: 'string' } };
25
+ return {
26
+ id, name: 'Orchestrator', type: 'agent', agentRole: 'orchestrator', executor: 'react-basic',
27
+ instruction: 'Understand the requested work before delegating implementation. Inspect relevant repository files, components, interfaces, architecture and testing patterns with the available read tools. Ground codebase findings in inspected paths and distinguish evidence from unknowns. Ask the user to clarify requirements, acceptance criteria, design preferences and important tradeoffs before handing work onward; do not infer approval from silence. Summarize the confirmed requirements, design considerations and codebase findings, then produce a concrete task instruction for the next Agent. Research subagents are optional and bounded; use only those that help resolve specific questions. Do not implement or modify the workspace during intake.',
28
+ capabilities: { filesystem: 'read', shell: 'disabled', git: 'read', github: 'none', browser: 'playwright', deployment: 'none' },
29
+ tools: ['read_file', 'list_files', 'search_files', 'git_read', 'read_artifact', 'write_artifact', 'repo_explore', 'read_skill_resource', 'qa.browser_session', 'browser.panel'],
30
+ completion: { mode: 'single', outcome: 'completed' },
31
+ contextPolicy: { history: true },
32
+ inputs: { originalTask: '$run.input.task' },
33
+ inputSchema: { type: 'object', properties: { originalTask: { type: 'string' } }, required: ['originalTask'], additionalProperties: false },
34
+ outputSchema: { type: 'object', properties: { originalTask: { type: 'string' }, requirements: list, acceptanceCriteria: list, designConsiderations: list, codebaseFindings: list, taskInstruction: { type: 'string' } }, required: ['originalTask', 'requirements', 'acceptanceCriteria', 'designConsiderations', 'codebaseFindings', 'taskInstruction'], additionalProperties: false },
35
+ subagents: { enabled: true, maxConcurrent: 3, maxTotal: 8, maxDepth: 1, workspace: 'shared-read-only', modelPolicy: 'inherit', toolInheritance: 'restricted', context: 'selected', roles: [
36
+ { id: 'repository-researcher', name: 'Repository Researcher', instruction: 'Inspect the assigned repository question. Report evidence with file paths, relevant interfaces and test patterns. Do not change files.', outputSchema: { type: 'object', properties: { findings: list, unknowns: list }, required: ['findings'], additionalProperties: false } },
37
+ ] },
38
+ };
39
+ }
40
+ export const ORCHESTRATOR_HANDOFF = {
41
+ originalTask: '$run.input.task', taskInstruction: '$source.output.taskInstruction', requirements: '$source.output.requirements',
42
+ acceptanceCriteria: '$source.output.acceptanceCriteria', designConsiderations: '$source.output.designConsiderations', codebaseFindings: '$source.output.codebaseFindings',
43
+ };
44
+ /**
45
+ * Revision 2 of the bundled harness, frozen exactly as it was published.
46
+ *
47
+ * A published revision is a promise about behavior, so each one is stored as its own snapshot
48
+ * rather than rebuilt from the current builders. Were revision 2 derived from
49
+ * {@link createOrchestratorNode} or from the current harness body, editing either would silently
50
+ * rewrite history and `loadGraph('default', 2)` would stop describing the graph revision 2 always
51
+ * described; the revision-1 graph above is frozen the same way. Do not tidy this into a builder,
52
+ * and publish a new revision rather than editing it.
53
+ */
54
+ export const DEFAULT_HARNESS_REVISION_2 = {
55
+ schemaVersion: 3, id: "default", name: "Software Engineer", revision: 2, entry: "orchestrator",
56
+ nodes: {
57
+ orchestrator: { "id": "orchestrator", "name": "Orchestrator", "type": "agent", "agentRole": "orchestrator", "executor": "react-basic", "instruction": "Understand the requested work before delegating implementation. Inspect relevant repository files, components, interfaces, architecture and testing patterns with the available read tools. Ground codebase findings in inspected paths and distinguish evidence from unknowns. Ask the user to clarify requirements, acceptance criteria, design preferences and important tradeoffs before handing work onward; do not infer approval from silence. Summarize the confirmed requirements, design considerations and codebase findings, then produce a concrete task instruction for the next Agent. Research subagents are optional and bounded; use only those that help resolve specific questions. Do not implement or modify the workspace during intake.", "capabilities": { "filesystem": "read", "shell": "disabled", "git": "read", "github": "none", "browser": "disabled", "deployment": "none" }, "tools": ["read_file", "list_files", "search_files", "git_read", "read_artifact", "write_artifact", "repo_explore"], "completion": { "mode": "single", "outcome": "completed" }, "contextPolicy": { "history": true }, "inputs": { "originalTask": "$run.input.task" }, "inputSchema": { "type": "object", "properties": { "originalTask": { "type": "string" } }, "required": ["originalTask"], "additionalProperties": false }, "outputSchema": { "type": "object", "properties": { "originalTask": { "type": "string" }, "requirements": { "type": "array", "items": { "type": "string" } }, "acceptanceCriteria": { "type": "array", "items": { "type": "string" } }, "designConsiderations": { "type": "array", "items": { "type": "string" } }, "codebaseFindings": { "type": "array", "items": { "type": "string" } }, "taskInstruction": { "type": "string" } }, "required": ["originalTask", "requirements", "acceptanceCriteria", "designConsiderations", "codebaseFindings", "taskInstruction"], "additionalProperties": false }, "subagents": { "enabled": true, "maxConcurrent": 3, "maxTotal": 8, "maxDepth": 1, "workspace": "shared-read-only", "modelPolicy": "inherit", "toolInheritance": "restricted", "context": "selected", "roles": [{ "id": "repository-researcher", "name": "Repository Researcher", "instruction": "Inspect the assigned repository question. Report evidence with file paths, relevant interfaces and test patterns. Do not change files.", "tools": ["read_file", "list_files", "search_files", "git_read"], "outputSchema": { "type": "object", "properties": { "findings": { "type": "array", "items": { "type": "string" } }, "unknowns": { "type": "array", "items": { "type": "string" } } }, "required": ["findings"], "additionalProperties": false } }] }, "position": { "x": 100, "y": 120 } },
58
+ engineer: { "id": "engineer", "name": "Software Engineer", "type": "agent", "executor": "react-basic", "instruction": "Implement the confirmed task instruction completely. Use the supplied requirements, acceptance criteria, design considerations and repository findings to guide the work. Verify the result and report remaining issues.", "position": { "x": 440, "y": 120 } },
59
+ done: { "id": "done", "name": "Done", "type": "end", "position": { "x": 780, "y": 120 } },
60
+ },
61
+ edges: [{ "id": "orchestrator-engineer", "source": "orchestrator", "target": "engineer", "outcome": "completed", "inputMapping": { "originalTask": "$run.input.task", "taskInstruction": "$source.output.taskInstruction", "requirements": "$source.output.requirements", "acceptanceCriteria": "$source.output.acceptanceCriteria", "designConsiderations": "$source.output.designConsiderations", "codebaseFindings": "$source.output.codebaseFindings" } }, { "id": "engineer-done", "source": "engineer", "target": "done", "outcome": "completed" }],
62
+ };
63
+ /**
64
+ * Frozen revision 3 adds one retry for the Orchestrator to the revision-2 snapshot.
65
+ *
66
+ * Intake is read-only and runs many turns, so one transient provider failure must not discard it,
67
+ * and the retry keeps the user's confirmed clarifications. The Engineer writes to the workspace,
68
+ * where re-running a finished attempt could repeat side effects, so it stays single-shot; a graph
69
+ * that wants retries there opts in per node.
70
+ */
71
+ export const DEFAULT_HARNESS_REVISION_3 = { ...structuredClone(DEFAULT_HARNESS_REVISION_2), revision: 3 };
72
+ DEFAULT_HARNESS_REVISION_3.nodes.orchestrator.retry = { maxAttempts: 2 };
73
+ /** Frozen revision 4 adds skill resources to the published revision-3 snapshot. */
74
+ export const DEFAULT_HARNESS_REVISION_4 = { ...structuredClone(DEFAULT_HARNESS_REVISION_3), revision: 4 };
75
+ DEFAULT_HARNESS_REVISION_4.nodes.orchestrator.tools.push('read_skill_resource');
76
+ /** Revision 5 enables the integrated browser for all default agents. */
77
+ export const DEFAULT_HARNESS = {
78
+ schemaVersion: 3, id: 'default', name: 'Software Engineer', revision: 5, entry: 'orchestrator',
79
+ nodes: {
80
+ orchestrator: { ...createOrchestratorNode(), retry: { maxAttempts: 2 }, position: { x: 100, y: 120 } },
81
+ engineer: { id: 'engineer', name: 'Software Engineer', type: 'agent', executor: 'react-basic', instruction: 'Implement the confirmed task instruction completely. Use the supplied requirements, acceptance criteria, design considerations and repository findings to guide the work. Verify the result and report remaining issues.', position: { x: 440, y: 120 } },
82
+ done: { id: 'done', name: 'Done', type: 'end', position: { x: 780, y: 120 } },
83
+ }, edges: [{ id: 'orchestrator-engineer', source: 'orchestrator', target: 'engineer', outcome: 'completed', inputMapping: structuredClone(ORCHESTRATOR_HANDOFF) }, { id: 'engineer-done', source: 'engineer', target: 'done', outcome: 'completed' }],
84
+ };
85
+ /** Upgrade only in-memory copies. Stored snapshots remain unchanged. */
86
+ /**
87
+ * `addOrchestrator: false` upgrades a legacy graph without an Orchestrator to the current schema as it
88
+ * stands, rather than placing an Orchestrator in front of its entry: a free account's graph may not
89
+ * carry one, and inserting it would leave an eligible graph unsavable.
90
+ */
91
+ export function migrateGraphForEditor(input, options = {}) {
92
+ const graph = validateGraphInternal(input);
93
+ for (const node of Object.values(graph.nodes)) {
94
+ // Assign only when a list exists: writing back undefined would add a `tools: undefined`
95
+ // own property, and the editor's round-trip checks compare the copy against loaded
96
+ // snapshots that never carried the key.
97
+ if (node.tools)
98
+ node.tools = canonicalizeToolList(node.tools);
99
+ if (node.subagents?.roles)
100
+ for (const role of node.subagents.roles)
101
+ if (role.tools)
102
+ role.tools = canonicalizeToolList(role.tools);
103
+ }
104
+ if (graph.schemaVersion === 3)
105
+ return graph;
106
+ const existing = Object.values(graph.nodes).filter(node => node.agentRole === 'orchestrator');
107
+ if (existing.length === 1 && existing[0].id === graph.entry && !graph.edges.some(edge => edge.target === graph.entry)
108
+ && ['read', 'find', 'grep', 'ls', 'read_file', 'list_files', 'search_files'].some(tool => permitsBuiltInTool(existing[0], tool))) {
109
+ const intake = existing[0];
110
+ if (intake.maxIterations !== undefined)
111
+ intake.maxIterations = Math.max(intake.maxIterations, 3);
112
+ if (intake.limits?.maxIterations !== undefined)
113
+ intake.limits.maxIterations = Math.max(intake.limits.maxIterations, 3);
114
+ if (intake.limits?.maxToolCalls !== undefined)
115
+ intake.limits.maxToolCalls = Math.max(intake.limits.maxToolCalls, 2);
116
+ graph.schemaVersion = 3;
117
+ raiseGraphToolCallsToMinimum(graph);
118
+ return validateGraph(graph);
119
+ }
120
+ if (options.addOrchestrator === false && !existing.length) {
121
+ graph.schemaVersion = 3;
122
+ raiseGraphToolCallsToMinimum(graph);
123
+ return validateGraph(graph);
124
+ }
125
+ for (const node of existing) {
126
+ if (node.maxSubagents !== undefined && node.subagents) {
127
+ if (node.maxSubagents === 0)
128
+ node.subagents.enabled = false;
129
+ else {
130
+ node.subagents.maxTotal = Math.min(node.subagents.maxTotal ?? 8, node.maxSubagents);
131
+ node.subagents.maxConcurrent = Math.min(node.subagents.maxConcurrent ?? 3, node.subagents.maxTotal);
132
+ node.subagents.maxDepth = Math.min(node.subagents.maxDepth ?? 1, node.subagents.maxConcurrent);
133
+ }
134
+ }
135
+ delete node.agentRole;
136
+ delete node.maxSubagents;
137
+ }
138
+ const previousEntry = graph.nodes[graph.entry];
139
+ let id = 'orchestrator';
140
+ for (let i = 2; Object.hasOwn(graph.nodes, id); i++)
141
+ id = `orchestrator-${i}`;
142
+ const orchestrator = createOrchestratorNode(id);
143
+ // The promoted intake is built after the canonicalization loop above, and the builder
144
+ // must keep the frozen legacy spellings for the published revisions. Rewrite this copy
145
+ // so the editor graph is canonical end to end, and re-migrating it is a no-op.
146
+ if (orchestrator.tools)
147
+ orchestrator.tools = canonicalizeToolList(orchestrator.tools);
148
+ if (orchestrator.subagents?.roles)
149
+ for (const role of orchestrator.subagents.roles)
150
+ if (role.tools)
151
+ role.tools = canonicalizeToolList(role.tools);
152
+ orchestrator.position = { x: Math.max(-100000, (previousEntry.position?.x ?? 440) - 340), y: previousEntry.position?.y ?? 120 };
153
+ const inputMapping = Object.fromEntries(Object.entries(ORCHESTRATOR_HANDOFF).filter(([key]) => {
154
+ if (Object.hasOwn(previousEntry.inputs ?? {}, key))
155
+ return false;
156
+ const target = previousEntry.inputSchema?.properties?.[key];
157
+ if (!target)
158
+ return previousEntry.inputSchema?.additionalProperties !== false;
159
+ const source = orchestrator.outputSchema.properties[key];
160
+ return target.type === source.type && (source.type !== 'array' || !target.items || target.items.type === 'string');
161
+ }));
162
+ let edgeId = `${id}-entry`;
163
+ for (let i = 2; graph.edges.some(edge => edge.id === edgeId); i++)
164
+ edgeId = `${id}-entry-${i}`;
165
+ graph.nodes[id] = orchestrator;
166
+ const bootstrap = previousEntry.type === 'join' && graph.edges.some(edge => edge.target === graph.entry);
167
+ graph.edges.unshift({ id: edgeId, source: id, target: graph.entry, outcome: 'completed', inputMapping, ...(bootstrap ? { bootstrap: true } : {}) });
168
+ graph.entry = id;
169
+ graph.schemaVersion = 3;
170
+ raiseGraphToolCallsToMinimum(graph);
171
+ return validateGraph(graph);
172
+ }
173
+ const validId = (value) => typeof value === 'string' && /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,79}$/.test(value) && !['constructor', 'prototype', '__proto__'].includes(value);
174
+ /**
175
+ * Outcome names are author-facing phrases rather than identifiers ("FAILED TESTING"), yet
176
+ * they still travel through loop exits, edge routing and criteria keys, so single inner
177
+ * spaces are the only addition over the identifier rules and both ends stay alphanumeric.
178
+ */
179
+ const validOutcomeName = (value) => typeof value === 'string'
180
+ && /^[a-zA-Z0-9][a-zA-Z0-9_ -]{0,79}$/.test(value) && !value.endsWith(' ') && !value.includes(' ')
181
+ && !['constructor', 'prototype', '__proto__'].includes(value);
182
+ const record = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
183
+ const fail = (message) => { throw new Error(`Invalid graph: ${message}`); };
184
+ const policies = { filesystem: ['none', 'read', 'read-write'], shell: ['disabled', 'read-only', 'allowed'], git: ['none', 'read', 'write'], github: ['none', 'read', 'pull-request', 'review'], browser: ['disabled', 'playwright'], deployment: ['none', 'allowed'] };
185
+ export function effectiveCapabilities(node) {
186
+ return node.capabilities ?? { filesystem: 'read-write', shell: 'allowed', git: 'write', github: 'none', browser: 'playwright', deployment: 'none' };
187
+ }
188
+ export function intakeCapabilities(node) {
189
+ const policy = effectiveCapabilities(node);
190
+ return { filesystem: policy.filesystem === 'none' ? 'none' : 'read', shell: 'disabled',
191
+ git: policy.git === 'none' ? 'none' : 'read', github: 'none', browser: policy.browser, deployment: 'none' };
192
+ }
193
+ const canRunCommands = (policy, child) => !child && policy.shell === 'allowed' && policy.filesystem === 'read-write' && policy.git === 'write';
194
+ export function permitsBuiltInTool(node, name, child = false) {
195
+ if (node.tools !== undefined && !node.tools.some(configured => toolNameMatches(configured, name)))
196
+ return false;
197
+ const policy = effectiveCapabilities(node);
198
+ const canonical = canonicalToolName(name);
199
+ if (name === 'qa.browser_session')
200
+ return policy.browser === 'playwright';
201
+ if (['Read', 'Glob', 'Grep', 'repo_explore', 'read_skill_resource'].includes(canonical))
202
+ return policy.filesystem !== 'none';
203
+ if (['Write', 'Edit'].includes(canonical))
204
+ return policy.filesystem === 'read-write';
205
+ if (['PowerShell', 'Bash', 'NativeExec', 'AsyncProcess', 'PowerShellFast'].includes(canonical))
206
+ return canRunCommands(policy, child);
207
+ if (name === 'ShellMetrics')
208
+ return policy.filesystem !== 'none';
209
+ // Every QA tool is part of the command-execution surface: even the read-only
210
+ // pair only makes sense for nodes that can run the QA pipeline itself.
211
+ if (isQaToolName(name))
212
+ return canRunCommands(policy, child);
213
+ if (name === 'git_read')
214
+ return policy.git !== 'none';
215
+ return name === 'read_artifact' || name === 'write_artifact';
216
+ }
217
+ export function capabilitySubset(child, parent) {
218
+ return Object.keys(policies).every(key => {
219
+ if (key === 'github' && ['pull-request', 'review'].includes(child[key]))
220
+ return child[key] === parent[key];
221
+ const levels = policies[key];
222
+ return levels.indexOf(child[key]) <= levels.indexOf(parent[key]);
223
+ });
224
+ }
225
+ export function nodeOutcomes(node) {
226
+ if (node.type === 'end')
227
+ return [];
228
+ if (node.type === 'condition' || node.modifiers?.condition)
229
+ return ['true', 'false'];
230
+ if (node.type === 'loop')
231
+ return ['body', 'done'];
232
+ if (node.modifiers?.loop?.until.outcome !== undefined)
233
+ return [node.modifiers.loop.until.outcome];
234
+ if (node.type === 'approval')
235
+ return ['approved', 'rejected'];
236
+ return node.completion?.mode === 'outcomes' ? node.completion.outcomes : [node.completion?.outcome ?? 'completed'];
237
+ }
238
+ function guaranteedGraphInvocations(graph) {
239
+ const nodes = Object.values(graph.nodes);
240
+ const routes = (id, outcome) => graph.edges.filter(edge => edge.source === id && (edge.outcome ?? 'completed') === outcome);
241
+ const loopBodies = new Map();
242
+ const guarantees = (boundary) => {
243
+ const guaranteed = new Map(nodes.map(node => [node.id, new Set([node.id])]));
244
+ let changed = true;
245
+ while (changed) {
246
+ changed = false;
247
+ for (const node of nodes) {
248
+ if (node.id === boundary)
249
+ continue;
250
+ const alternatives = nodeOutcomes(node).map(outcome => {
251
+ const reached = new Set();
252
+ for (const edge of routes(node.id, outcome))
253
+ for (const id of guaranteed.get(edge.target))
254
+ reached.add(id);
255
+ return reached;
256
+ });
257
+ const body = boundary === undefined ? loopBodies.get(node.id) : undefined;
258
+ const nestedDone = boundary !== undefined && node.type === 'loop' && alternatives[0].has(node.id);
259
+ const requiredAfter = nestedDone ? alternatives[1] : body ? new Set([
260
+ ...body,
261
+ ...(body.has(node.id) ? alternatives[1] : []),
262
+ ]) : new Set([...(alternatives[0] ?? [])].filter(id => alternatives.every(branch => branch.has(id))));
263
+ const required = guaranteed.get(node.id);
264
+ for (const id of requiredAfter)
265
+ if (!required.has(id)) {
266
+ required.add(id);
267
+ changed = true;
268
+ }
269
+ }
270
+ }
271
+ return guaranteed;
272
+ };
273
+ for (const node of nodes.filter(node => node.type === 'loop')) {
274
+ const local = guarantees(node.id);
275
+ loopBodies.set(node.id, new Set(routes(node.id, 'body').flatMap(edge => [...local.get(edge.target)])));
276
+ }
277
+ const required = guarantees().get(graph.entry);
278
+ return { required, loopBodies };
279
+ }
280
+ function minimumGraphToolCalls(graph) {
281
+ const { required, loopBodies } = guaranteedGraphInvocations(graph);
282
+ const calls = new Map([...required].map(id => [id, graph.nodes[id].agentRole === 'orchestrator' ? 2 : graph.nodes[id].type === 'action' ? 1 : 0]));
283
+ for (const [loopId, body] of loopBodies) {
284
+ if (!required.has(loopId) || !body.has(loopId))
285
+ continue;
286
+ for (const id of body)
287
+ if (graph.nodes[id].type === 'action')
288
+ calls.set(id, Math.max(calls.get(id) ?? 0, graph.nodes[loopId].loop.maxIterations));
289
+ }
290
+ return [...calls.values()].reduce((total, count) => total + count, 0);
291
+ }
292
+ /**
293
+ * Whether a configured tool-call ceiling is at least what the graph needs.
294
+ *
295
+ * An absent ceiling means unlimited, so it always satisfies the minimum. Comparing
296
+ * against the old numeric default instead would read an unset limit as "no budget"
297
+ * and reject a graph that is in fact unbounded.
298
+ * @param configured - the graph's explicit ceiling, or undefined when unlimited.
299
+ * @param minimum - the fewest tool calls the graph provably needs.
300
+ * @returns whether the graph can afford its guaranteed tool calls.
301
+ */
302
+ function meetsMinimumToolCalls(configured, minimum) {
303
+ return configured === undefined || configured >= minimum;
304
+ }
305
+ /**
306
+ * Raise a graph's explicit tool-call ceiling to the minimum its guaranteed
307
+ * invocations need. An unlimited graph needs no ceiling, so this is a no-op then.
308
+ * @param graph - graph being migrated in place.
309
+ */
310
+ function raiseGraphToolCallsToMinimum(graph) {
311
+ const configured = graph.limits?.maxToolCalls;
312
+ if (configured === undefined)
313
+ return;
314
+ const minimum = minimumGraphToolCalls(graph);
315
+ if (configured < minimum)
316
+ graph.limits = { ...graph.limits, maxToolCalls: minimum };
317
+ }
318
+ function bounds(value, label, max = 1_000_000_000, min = 1) {
319
+ if (value !== undefined && (!Number.isSafeInteger(value) || value < min || value > max))
320
+ fail(`${label} must be an integer between ${min} and ${max}`);
321
+ }
322
+ /**
323
+ * Erase the explicit `0` spelling of an unlimited deadline-shaped bound.
324
+ *
325
+ * Internally an absent key is the only spelling of unlimited, so the alias is resolved at the
326
+ * one boundary where graph JSON enters rather than making every consumer handle two
327
+ * encodings. A zero tool-call ceiling is untouched: there it genuinely means "no calls".
328
+ * @param holder - the object owning the limit.
329
+ * @param key - the limit key to normalize.
330
+ */
331
+ function normalizeUnlimited(holder, key) {
332
+ const limits = holder;
333
+ if (limits[key] === 0)
334
+ delete limits[key];
335
+ }
336
+ /**
337
+ * The visit ceiling a graph enforces on each node, or `Infinity` when it enforces none.
338
+ *
339
+ * Node visits are unlimited unless a graph says otherwise: the setting's default is `0`, and a
340
+ * `0` is normalized away, so an absent limit is the single internal spelling of "no ceiling".
341
+ * @param graph - the graph whose limits apply.
342
+ * @returns the maximum visits per node, or Infinity when visits are unbounded.
343
+ */
344
+ export function maxNodeVisitsOf(graph) {
345
+ const limit = graph.limits?.maxNodeVisits;
346
+ return limit === undefined || limit === 0 ? Infinity : limit;
347
+ }
348
+ /**
349
+ * Whether a graph's run is bounded well enough for a return connection to terminate.
350
+ *
351
+ * A cycle repeats the same agents until something stops it. Visits are unlimited by default, so
352
+ * a cycle needs a ceiling of its own: a finite visit count, or the run's wall clock, which
353
+ * advances whatever the agents do.
354
+ * @param graph - the validated graph.
355
+ * @returns whether the graph bounds how long its cycles may run.
356
+ */
357
+ function hasRunCeiling(graph) {
358
+ return graph.limits?.maxNodeVisits !== undefined || graph.limits?.wallTimeMs !== undefined;
359
+ }
360
+ function capabilities(value, label) {
361
+ if (!record(value) || Object.keys(value).length !== Object.keys(policies).length || Object.entries(policies).some(([key, choices]) => !choices.includes(value[key])))
362
+ fail(`${label}: select a valid permission for each capability`);
363
+ }
364
+ function modelRef(value, label, options) {
365
+ if (value.provider !== undefined && (typeof value.provider !== 'string' || !/^[\w-]+$/.test(value.provider)))
366
+ fail(`${label}: provider must be a configured provider id`);
367
+ if (value.model !== undefined && (typeof value.model !== 'string' || !value.model.trim() || value.model.length > 500))
368
+ fail(`${label}: model must be a nonempty model reference`);
369
+ if (options.providers && !options.allowMissingProviders && value.provider && !options.providers.some(p => p.id === value.provider))
370
+ fail(`${label}: unknown model profile; configure provider ${value.provider} with andorra and open /providers first`);
371
+ }
372
+ function subagentModelRef(value, label, options) {
373
+ modelRef(value, label, options);
374
+ if (options.providers && !options.allowMissingProviders && value.model !== undefined && !value.provider)
375
+ fail(`${label}: select a configured provider profile for this subagent model`);
376
+ const profile = options.providers?.find(p => p.id === value.provider);
377
+ if (!options.allowMissingProviders && profile && value.model !== undefined && ![profile.model, ...(profile.models ?? [])].includes(value.model))
378
+ fail(`${label}: unknown subagent model profile; configure an additional provider profile for model ${value.model} with andorra and open /providers`);
379
+ }
380
+ function objectSchema(schema, label) {
381
+ validateSchema(schema, label);
382
+ if (schema.type !== 'object')
383
+ fail(`${label}: top-level handoff schema must be an object; put arrays or primitive values inside named properties`);
384
+ }
385
+ function validateOrchestratorContracts(node, label) {
386
+ const check = (schema, fields, side) => {
387
+ if (!schema)
388
+ return;
389
+ for (const [key, type] of Object.entries(fields)) {
390
+ const field = schema.properties?.[key];
391
+ if (!field) {
392
+ if (schema.additionalProperties === false)
393
+ fail(`${label}: closed Orchestrator ${side} schema must allow ${key}; declare the field or permit additional properties`);
394
+ continue;
395
+ }
396
+ if (field.type !== type || type === 'array' && field.items !== undefined && field.items.type !== 'string')
397
+ fail(`${label}: Orchestrator ${side} ${key} must be ${type === 'array' ? 'an array of strings' : 'a string'} to match the intake runtime contract`);
398
+ }
399
+ };
400
+ check(node.inputSchema, { originalTask: 'string' }, 'input');
401
+ check(node.outputSchema, { originalTask: 'string', taskInstruction: 'string', requirements: 'array', acceptanceCriteria: 'array', designConsiderations: 'array', codebaseFindings: 'array' }, 'output');
402
+ }
403
+ function toolsValid(value, label) {
404
+ if (value !== undefined && (!Array.isArray(value) || value.some(t => !GRAPH_TOOLS.includes(t)) || new Set(value).size !== value.length))
405
+ fail(`${label}: tools must be unique supported tool names`);
406
+ }
407
+ export function validateGraph(value, options = {}) { return validateGraphInternal(value, options); }
408
+ /**
409
+ * Whether a run of this graph can execute the session's own provider/model pair.
410
+ *
411
+ * An agent node that omits its provider resolves against the live session pair, so the run's own
412
+ * adapter is reachable and its metadata has to be resolved. When every agent node names its own
413
+ * provider, every model call resolves against that node's provider instead — this is the same
414
+ * predicate the desktop's model-pinning read applies when it hides the session model controls —
415
+ * and a run of the graph cannot consult the session pair at all. A graph with no agent node leaves
416
+ * it unused as well.
417
+ */
418
+ export function graphLeavesNodesToSession(graph) {
419
+ const agents = Object.values(graph?.nodes ?? {}).filter(node => node.type === 'agent');
420
+ return agents.length === 0 || agents.some(node => node.provider === undefined);
421
+ }
422
+ function validateGraphInternal(value, options = {}) {
423
+ if (!record(value))
424
+ fail('expected an object');
425
+ validateMappingConstants(value);
426
+ const graph = structuredClone(value);
427
+ if (Object.keys(graph).some(k => !['schemaVersion', 'id', 'name', 'revision', 'entry', 'nodes', 'edges', 'metadata', 'limits', 'widgets', 'inputSchema', 'stateSchema'].includes(k)))
428
+ fail('unsupported graph settings');
429
+ if (![1, 2, 3].includes(graph.schemaVersion) || !validId(graph.id))
430
+ fail('schemaVersion must be 1, 2 or 3 and id must be a safe identifier');
431
+ if (typeof graph.name !== 'string' || !graph.name.trim() || graph.name.length > 200)
432
+ fail('name must contain 1-200 characters');
433
+ bounds(graph.revision, 'revision', 1_000_000_000, 0);
434
+ if (graph.revision === undefined)
435
+ fail('revision is required');
436
+ if (!record(graph.nodes) || !Array.isArray(graph.edges))
437
+ fail('nodes must be a map and edges must be an array');
438
+ const entries = Object.entries(graph.nodes);
439
+ const hasOrchestrator = graph.schemaVersion === 3 && entries.some(([, node]) => record(node) && node.type === 'agent' && node.agentRole === 'orchestrator');
440
+ if (entries.length < 2 || entries.length > (hasOrchestrator ? 101 : 100))
441
+ fail('include between 2 and 100 nodes (plus the version 3 Orchestrator)');
442
+ if (!validId(graph.entry) || !Object.hasOwn(graph.nodes, graph.entry))
443
+ fail('entry must reference an existing node');
444
+ if (graph.metadata !== undefined) {
445
+ if (!record(graph.metadata))
446
+ fail('graph metadata must be an object');
447
+ // Studio layout data has a dedicated versioned key; metadata.groups was
448
+ // previously unrestricted extension data and must not be reinterpreted.
449
+ const groups = graph.metadata.studioLayoutGroupsV1;
450
+ if (groups !== undefined) {
451
+ if (!Array.isArray(groups) || groups.length > 50)
452
+ fail('studioLayoutGroupsV1 must contain at most 50 groups');
453
+ const groupIds = new Set(), membership = new Set();
454
+ for (const group of groups) {
455
+ if (!record(group) || Object.keys(group).some(key => !['id', 'name', 'nodeIds'].includes(key))
456
+ || !validId(group.id) || groupIds.has(group.id) || typeof group.name !== 'string'
457
+ || !group.name.trim() || group.name.length > 80 || !Array.isArray(group.nodeIds)
458
+ || group.nodeIds.length < 1 || group.nodeIds.length > 100)
459
+ fail('invalid graph layout group');
460
+ groupIds.add(group.id);
461
+ for (const nodeId of group.nodeIds) {
462
+ if (typeof nodeId !== 'string' || !Object.hasOwn(graph.nodes, nodeId) || membership.has(nodeId))
463
+ fail('layout group refers to an unknown or already grouped node');
464
+ membership.add(nodeId);
465
+ }
466
+ }
467
+ }
468
+ }
469
+ // A zero tool-call ceiling is valid: it permits a node to complete without tools while
470
+ // refusing any call. The runtime accepts it, so the validator must too, or a graph the
471
+ // editor offers to save cannot be saved. A zero wall time, iteration or node-visit ceiling
472
+ // is a different thing — the explicit spelling of unlimited — and is normalized away below.
473
+ if (graph.limits !== undefined) {
474
+ if (!record(graph.limits))
475
+ fail('limits must be an object');
476
+ for (const [k, v] of Object.entries(graph.limits)) {
477
+ if (k === 'maxTokens')
478
+ continue;
479
+ if (!['maxNodeVisits', 'maxConcurrency', 'maxToolCalls', 'wallTimeMs'].includes(k))
480
+ fail(`unsupported graph limit ${k}`);
481
+ bounds(v, `graph ${k}`, k === 'maxConcurrency' ? 32 : 1_000_000_000, k === 'maxToolCalls' || k === 'wallTimeMs' || k === 'maxNodeVisits' ? 0 : 1);
482
+ }
483
+ normalizeUnlimited(graph.limits, 'wallTimeMs');
484
+ normalizeUnlimited(graph.limits, 'maxNodeVisits');
485
+ }
486
+ if (graph.widgets !== undefined) {
487
+ if (!Array.isArray(graph.widgets) || graph.widgets.length > 5)
488
+ fail('widgets must be an array of at most 5 widgets');
489
+ const widgetIds = new Set();
490
+ for (const [index, widget] of graph.widgets.entries()) {
491
+ const label = `widget ${index + 1}`;
492
+ if (!record(widget) || Object.keys(widget).some(k => !['id', 'name', 'description'].includes(k)))
493
+ fail(`${label}: unsupported widget setting`);
494
+ if (!validId(widget.id))
495
+ fail(`${label}: id must be a safe identifier`);
496
+ if (widgetIds.has(widget.id))
497
+ fail(`${label}: duplicate widget id ${widget.id}`);
498
+ widgetIds.add(widget.id);
499
+ if (typeof widget.name !== 'string' || !widget.name.trim() || widget.name.length > 80)
500
+ fail(`${label}: provide a name of up to 80 characters`);
501
+ if (typeof widget.description !== 'string' || !widget.description.trim() || widget.description.length > 1000)
502
+ fail(`${label}: provide a description of up to 1000 characters`);
503
+ }
504
+ }
505
+ for (const [id, node] of entries) {
506
+ const label = `node ${id}`;
507
+ if (!validId(id) || !record(node) || node.id !== id)
508
+ fail(`${label} must have a matching safe id`);
509
+ if (Object.keys(node).some(k => !['id', 'name', 'type', 'position', 'agentRole', 'maxSubagents', 'executor', 'instruction', 'systemPrompt', 'prompt', 'provider', 'model', 'tools', 'maxIterations', 'completion', 'capabilities', 'contextPolicy', 'inputs', 'inputSchema', 'outputSchema', 'limits', 'retry', 'subagents', 'join', 'condition', 'loop', 'action', 'modifiers', 'jevEnabled'].includes(k)))
510
+ fail(`${label}: unsupported node setting`);
511
+ if (node.jevEnabled !== undefined && (node.type !== 'agent' || typeof node.jevEnabled !== 'boolean'))
512
+ fail(`${label}: jevEnabled must be a boolean on an Agent node`);
513
+ if (!['agent', 'end', 'join', 'parallel', 'condition', 'loop', 'action', 'approval'].includes(node.type))
514
+ fail(`${label}: unsupported node type`);
515
+ if (typeof node.name !== 'string' || !node.name.trim() || node.name.length > 200)
516
+ fail(`${label}: provide a name of up to 200 characters`);
517
+ if (node.position !== undefined && (!record(node.position) || !Number.isFinite(node.position.x) || !Number.isFinite(node.position.y) || Math.abs(node.position.x) > 100000 || Math.abs(node.position.y) > 100000))
518
+ fail(`${label}: position must contain finite canvas coordinates`);
519
+ for (const k of ['prompt', 'instruction', 'systemPrompt'])
520
+ if (node[k] !== undefined && (typeof node[k] !== 'string' || node[k].length > 100000))
521
+ fail(`${label}: invalid ${k}`);
522
+ modelRef(node, label, options);
523
+ toolsValid(node.tools, label);
524
+ bounds(node.maxIterations, `${label} maxIterations`, 1000, 0);
525
+ if (node.maxIterations === 0)
526
+ delete node.maxIterations;
527
+ if (node.type === 'end' && Object.keys(node).some(k => !['id', 'name', 'type', 'position'].includes(k)))
528
+ fail(`${label}: End cannot have Agent settings`);
529
+ if (node.agentRole !== undefined && (node.type !== 'agent' || node.agentRole !== 'orchestrator'))
530
+ fail(`${label}: only Agent nodes can have the orchestrator role`);
531
+ if (node.maxSubagents !== undefined) {
532
+ if (node.agentRole !== 'orchestrator')
533
+ fail(`${label}: maxSubagents belongs to the Orchestrator role`);
534
+ bounds(node.maxSubagents, `${label} maxSubagents`, 100, 0);
535
+ }
536
+ if (node.subagents !== undefined && node.type !== 'agent')
537
+ fail(`${label}: subagent policies are only supported on Agent nodes`);
538
+ if (node.executor !== undefined && node.executor !== 'react-basic')
539
+ fail(`${label}: select the shared react-basic executor`);
540
+ if (node.type === 'agent') {
541
+ node.executor ??= 'react-basic';
542
+ node.completion ??= { mode: 'single', outcome: 'completed' };
543
+ node.subagents ??= { enabled: false };
544
+ }
545
+ if (node.completion !== undefined) {
546
+ if (node.type !== 'agent')
547
+ fail(`${label}: completion policies are only supported on Agent nodes`);
548
+ const c = node.completion;
549
+ if (!record(c) || !['single', 'outcomes'].includes(c.mode) || (c.mode === 'single' ? !validOutcomeName(c.outcome) : !Array.isArray(c.outcomes) || !c.outcomes.length || c.outcomes.length > 20 || c.outcomes.some(o => !validOutcomeName(o)) || new Set(c.outcomes).size !== c.outcomes.length))
550
+ fail(`${label}: outcome names must be unique phrases of 1-80 characters using letters, numbers, single spaces, underscores or hyphens and starting with a letter or number`);
551
+ if (c.mode === 'outcomes' && c.requireRoutes !== undefined && typeof c.requireRoutes !== 'boolean')
552
+ fail(`${label}: requireRoutes must be boolean`);
553
+ if ('criteria' in c && c.criteria !== undefined) {
554
+ if (c.mode === 'outcomes') {
555
+ if (!record(c.criteria))
556
+ fail(`${label}: completion criteria must be a mapping for named outcomes`);
557
+ else
558
+ for (const [outcome, criterion] of Object.entries(c.criteria)) {
559
+ if (!c.outcomes.includes(outcome))
560
+ fail(`${label}: completion criteria must reference a declared outcome`);
561
+ if (typeof criterion !== 'string' || !criterion.trim() || criterion.length > 8000)
562
+ fail(`${label}: each completion criterion must contain 1-8000 characters and cannot be blank`);
563
+ }
564
+ }
565
+ else if (typeof c.criteria !== 'string' || !c.criteria.trim() || c.criteria.length > 8000)
566
+ fail(`${label}: completion criteria must contain 1-8000 characters and cannot be blank`);
567
+ }
568
+ }
569
+ if (node.capabilities !== undefined)
570
+ capabilities(node.capabilities, label);
571
+ if (node.contextPolicy !== undefined) {
572
+ const c = node.contextPolicy;
573
+ if (!record(c) || (c.history !== undefined && typeof c.history !== 'boolean') || (c.predecessors !== undefined && !['none', 'direct', 'all'].includes(c.predecessors)) || (c.conversation !== undefined && !['reuse', 'isolate'].includes(c.conversation)) || (c.skillInheritance !== undefined && !['inherit', 'none'].includes(c.skillInheritance)))
574
+ fail(`${label}: invalid context policy`);
575
+ bounds(c.maxChars, `${label} context maxChars`);
576
+ }
577
+ if (node.type === 'agent' && graph.schemaVersion === 1)
578
+ node.contextPolicy = { history: true, ...node.contextPolicy };
579
+ if (node.inputs !== undefined && !record(node.inputs))
580
+ fail(`${label}: inputs must be a mapping object`);
581
+ if (node.inputSchema)
582
+ objectSchema(node.inputSchema, `${label} inputSchema`);
583
+ if (node.outputSchema) {
584
+ objectSchema(node.outputSchema, `${label} outputSchema`);
585
+ if (['condition', 'approval', 'loop', 'action'].includes(node.type)) {
586
+ const output = node.type === 'loop' ? { iteration: 1 } : node.type === 'action' ? { result: '' } : {};
587
+ validateValue(node.outputSchema, output, `${label} outputSchema incompatible with ${node.type} output`);
588
+ }
589
+ }
590
+ if (node.type !== 'agent' && (node.limits !== undefined || node.maxIterations !== undefined))
591
+ fail(`${label}: node limits are supported only on Agent nodes; remove them and use graph limits (or loop.maxIterations for a Loop)`);
592
+ if (node.agentRole === 'orchestrator')
593
+ validateOrchestratorContracts(node, label);
594
+ // `maxTokens` is accepted but ignored: graphs saved before the cumulative token
595
+ // ceiling was removed still carry it, and rejecting an unknown key would make those
596
+ // graphs fail to load instead of simply dropping a setting that no longer applies.
597
+ if (node.limits !== undefined) {
598
+ if (!record(node.limits))
599
+ fail(`${label}: limits must be an object`);
600
+ for (const [k, v] of Object.entries(node.limits)) {
601
+ if (k === 'maxTokens')
602
+ continue;
603
+ if (!['maxIterations', 'maxToolCalls', 'wallTimeMs', 'maxContextChars', 'maxCompletionRepairs'].includes(k))
604
+ fail(`${label}: unsupported limit ${k}`);
605
+ const deadlineShaped = k === 'maxIterations' || k === 'wallTimeMs';
606
+ bounds(v, `${label} ${k}`, k === 'maxIterations' ? 1000 : 1_000_000_000, k === 'maxCompletionRepairs' || k === 'maxToolCalls' || deadlineShaped ? 0 : 1);
607
+ if (deadlineShaped)
608
+ normalizeUnlimited(node.limits, k);
609
+ }
610
+ }
611
+ if (node.retry !== undefined) {
612
+ if (node.type !== 'agent')
613
+ fail(`${label}: retry policies are only supported on Agent nodes`);
614
+ if (!record(node.retry))
615
+ fail(`${label}: retry must be an object`);
616
+ bounds(node.retry.maxAttempts, `${label} retry maxAttempts`, 10);
617
+ if (node.retry.maxAttempts === undefined)
618
+ fail(`${label}: retry requires maxAttempts`);
619
+ if (node.retry.fallback !== undefined) {
620
+ if (!record(node.retry.fallback))
621
+ fail(`${label}: invalid fallback`);
622
+ if ((typeof node.retry.fallback.provider !== 'string' || !/^[\w-]+$/.test(node.retry.fallback.provider)))
623
+ fail(`${label}: fallback requires a configured provider id; select a fallback provider`);
624
+ modelRef(node.retry.fallback, `${label} fallback`, options);
625
+ }
626
+ }
627
+ if (node.modifiers !== undefined) {
628
+ const rawModifiers = node.modifiers;
629
+ if (node.type !== 'agent' || node.agentRole === 'orchestrator')
630
+ fail(`${label}: modifiers require an ordinary Agent`);
631
+ if (!record(rawModifiers) || Object.keys(rawModifiers).some(key => !['condition', 'loop', 'parallel'].includes(key)))
632
+ fail(`${label}: unsupported Agent modifier`);
633
+ const m = node.modifiers;
634
+ const predicate = (p, name) => {
635
+ if (!record(p) || typeof p.path !== 'string' || !p.path.trim() || p.path.split('.').some(part => !/^[a-zA-Z0-9_-]+$/.test(part) || ['__proto__', 'constructor', 'prototype'].includes(part)) || !['string', 'number', 'boolean'].includes(typeof p.equals) || typeof p.equals === 'number' && !Number.isFinite(p.equals))
636
+ fail(`${label}: ${name} needs an output path and finite scalar comparison`);
637
+ };
638
+ if (m.condition !== undefined) {
639
+ predicate(m.condition, 'Condition');
640
+ if (Object.keys(m.condition).some(key => !['path', 'equals'].includes(key)))
641
+ fail(`${label}: unsupported Condition setting`);
642
+ }
643
+ if (m.loop !== undefined) {
644
+ const l = m.loop;
645
+ if (!record(l) || Object.keys(l).some(key => !['maxIterations', 'until'].includes(key)) || l.maxIterations === undefined || !record(l.until))
646
+ fail(`${label}: Loop needs bounded maxIterations and an exit condition`);
647
+ bounds(l.maxIterations, `${label} loop maxIterations`, 1000);
648
+ if (Object.keys(l.until).some(key => !['outcome', 'path', 'equals'].includes(key)))
649
+ fail(`${label}: unsupported Loop exit condition`);
650
+ if (l.until.outcome !== undefined) {
651
+ const outcomes = node.completion?.mode === 'outcomes' ? node.completion.outcomes : [node.completion?.outcome ?? 'completed'];
652
+ if (l.until.path !== undefined || l.until.equals !== undefined || !outcomes.includes(l.until.outcome))
653
+ fail(`${label}: Loop exit must select one declared completion outcome`);
654
+ }
655
+ else
656
+ predicate(l.until, 'Loop exit');
657
+ }
658
+ if (m.parallel !== undefined) {
659
+ const parallel = m.parallel;
660
+ if (!record(parallel) || Object.keys(parallel).some(key => !['mode', 'maxConcurrent', 'copies'].includes(key)) || !['branches', 'copies'].includes(parallel.mode) || parallel.maxConcurrent === undefined)
661
+ fail(`${label}: Parallel needs a mode and concurrency limit`);
662
+ bounds(parallel.maxConcurrent, `${label} parallel concurrency`, 32);
663
+ if (parallel.mode === 'copies') {
664
+ if (parallel.copies === undefined)
665
+ fail(`${label}: Parallel copies needs a copy count`);
666
+ bounds(parallel.copies, `${label} parallel copies`, 100);
667
+ const c = effectiveCapabilities(node);
668
+ if (c.filesystem === 'read-write' || c.git === 'write' || c.shell === 'allowed' || c.github === 'pull-request' || c.github === 'review' || c.deployment === 'allowed')
669
+ fail(`${label}: parallel copies require read-only capabilities in the shared workspace`);
670
+ }
671
+ else if (parallel.copies !== undefined)
672
+ fail(`${label}: copy count is only supported for parallel copies`);
673
+ }
674
+ for (const predicate of [m.condition, m.loop?.until.outcome === undefined ? m.loop?.until : undefined]) {
675
+ if (!predicate?.path)
676
+ continue;
677
+ const selected = schemaAt(nodeOutputSchema(node), predicate.path.split('.'), `${label} modifier output path`);
678
+ if (selected)
679
+ validateValue(selected, predicate.equals, `${label} modifier comparison`);
680
+ }
681
+ }
682
+ if (node.type === 'join' && (!record(node.join) || !['all', 'any'].includes(node.join.mode)))
683
+ fail(`${label}: choose Join all or any`);
684
+ if (node.type === 'condition' && (!record(node.condition) || !Object.hasOwn(graph.nodes, node.condition.source) || typeof node.condition.path !== 'string' || !['string', 'number', 'boolean'].includes(typeof node.condition.equals)))
685
+ fail(`${label}: Condition needs an existing source, path and comparison value`);
686
+ if (node.type === 'condition' && typeof node.condition.equals === 'number' && !Number.isFinite(node.condition.equals))
687
+ fail(`${label}: Condition comparison must be finite; replace NaN or infinity with a finite number`);
688
+ if (node.type === 'condition') {
689
+ const c = node.condition;
690
+ const selected = schemaAt(nodeOutputSchema(graph.nodes[c.source]), c.path.split('.').filter(Boolean), `${label} Condition path`);
691
+ if (selected)
692
+ validateValue(selected, c.equals, `${label} Condition comparison`);
693
+ }
694
+ if (node.type === 'loop') {
695
+ if (!record(node.loop) || node.loop.maxIterations === undefined)
696
+ fail(`${label}: Loop requires bounded maxIterations`);
697
+ bounds(node.loop.maxIterations, `${label} loop maxIterations`, 1000);
698
+ }
699
+ if (node.type === 'action' && (!record(node.action) || !['command', 'tests', 'git'].includes(node.action.kind) || typeof node.action.command !== 'string' || !node.action.command.trim()))
700
+ fail(`${label}: Action requires a kind and command`);
701
+ if (node.subagents !== undefined) {
702
+ const s = node.subagents;
703
+ if (!record(s) || typeof s.enabled !== 'boolean')
704
+ fail(`${label}: subagents.enabled must be boolean`);
705
+ // The two subagent token budgets are accepted but ignored for the same reason as
706
+ // node maxTokens: previously saved graphs must keep loading.
707
+ for (const key of Object.keys(s)) {
708
+ if (key === 'maxTokensPerSubagent' || key === 'maxCombinedTokens')
709
+ continue;
710
+ if (!['enabled', 'maxConcurrent', 'maxTotal', 'maxDepth', 'modelPolicy', 'provider', 'model', 'workspace', 'toolInheritance', 'context', 'maxWallTimeMs', 'roles'].includes(key))
711
+ fail(`${label}: unsupported subagent setting ${key}; use a supported SubagentPolicy field`);
712
+ }
713
+ bounds(s.maxConcurrent, `${label} subagent concurrency`, 16);
714
+ bounds(s.maxTotal, `${label} subagent maxTotal`, 1000);
715
+ bounds(s.maxDepth, `${label} subagent maxDepth`, 3);
716
+ bounds(s.maxWallTimeMs, `${label} maxWallTimeMs`);
717
+ for (const [k, values] of Object.entries({ modelPolicy: ['inherit', 'specific', 'per-role'], workspace: ['shared-read-only', 'shared-write', 'worktree'], toolInheritance: ['restricted', 'inherit'], context: ['selected', 'task-only'] }))
718
+ if (s[k] !== undefined && !values.includes(s[k]))
719
+ fail(`${label}: invalid subagent ${k}`);
720
+ subagentModelRef({ ...s, provider: s.provider ?? node.provider ?? options.defaultProvider }, `${label} subagent`, options);
721
+ const spawningEnabled = s.enabled && node.maxSubagents !== 0;
722
+ if (spawningEnabled && options.spawnAvailable === false)
723
+ fail(`${label}: runtime lacks spawn capability; enable spawn_subagent or disable subagents`);
724
+ if (spawningEnabled && s.modelPolicy === 'specific' && !s.provider)
725
+ fail(`${label}: select a specific subagent model profile`);
726
+ if (spawningEnabled && (s.maxDepth ?? 1) > (s.maxConcurrent ?? 3))
727
+ fail(`${label}: subagent maxDepth cannot exceed maxConcurrent; increase concurrent slots or reduce nesting depth`);
728
+ if ((s.maxConcurrent ?? 3) > (s.maxTotal ?? 8))
729
+ fail(`${label}: subagent concurrency cannot exceed maxTotal`);
730
+ if (s.roles !== undefined && !Array.isArray(s.roles))
731
+ fail(`${label}: subagent roles must be an array`);
732
+ const ids = new Set();
733
+ for (const r of s.roles ?? []) {
734
+ if (!record(r) || !validId(r.id) || ids.has(r.id) || typeof r.name !== 'string' || !r.name.trim() || typeof r.instruction !== 'string' || !r.instruction.trim())
735
+ fail(`${label}: each subagent role needs a unique safe id, name and instruction`);
736
+ for (const key of Object.keys(r))
737
+ if (!['id', 'name', 'instruction', 'provider', 'model', 'capabilities', 'tools', 'inputSchema', 'outputSchema'].includes(key))
738
+ fail(`${label}: unsupported subagent role setting ${key}; use a supported SubagentRole field (for permissions use capabilities)`);
739
+ ids.add(r.id);
740
+ if (r.inputSchema)
741
+ objectSchema(r.inputSchema, `${label} role inputSchema`);
742
+ if (r.outputSchema)
743
+ objectSchema(r.outputSchema, `${label} role outputSchema`);
744
+ subagentModelRef({ ...r, provider: r.provider ?? node.provider ?? options.defaultProvider }, `${label} role ${r.id}`, options);
745
+ toolsValid(r.tools, `${label} role ${r.id}`);
746
+ if (s.context === 'task-only' && r.inputSchema?.required?.length)
747
+ fail(`${label}: task-only context cannot supply required inputs for role ${r.id}; select selected context or make the role inputs optional`);
748
+ if (r.capabilities)
749
+ capabilities(r.capabilities, `${label} role ${r.id}`);
750
+ const parent = node.agentRole === 'orchestrator' && spawningEnabled ? intakeCapabilities(node) : effectiveCapabilities(node);
751
+ const child = r.capabilities ?? { ...parent, ...((s.workspace ?? 'shared-read-only') === 'shared-read-only' ? { filesystem: parent.filesystem === 'none' ? 'none' : 'read', git: parent.git === 'none' ? 'none' : 'read', shell: 'disabled' } : {}) };
752
+ if (!capabilitySubset(child, parent))
753
+ fail(`${label}: role ${r.id} capability exceeds parent${node.agentRole === 'orchestrator' ? ' intake read-only ceiling; reduce child permissions' : '; reduce child permissions or explicitly grant them to the parent'}`);
754
+ if (r.tools?.some(t => !permitsBuiltInTool({ ...node, capabilities: parent }, t)))
755
+ fail(`${label}: role ${r.id} tools exceed effective parent capabilities; reduce its tools or explicitly grant parent permissions`);
756
+ if (r.tools?.some(t => !permitsBuiltInTool({ capabilities: child }, t, true)))
757
+ fail(`${label}: role ${r.id} tools exceed its child capabilities; remove unavailable tools (subagents cannot use the host shell)`);
758
+ const writes = child.filesystem === 'read-write' || child.git === 'write';
759
+ if (spawningEnabled && s.workspace === 'worktree' && writes && parent.git !== 'write')
760
+ fail(`${label}: writing worktree role ${r.id} requires parent Git write access; grant Git write or select a read-only role`);
761
+ if (spawningEnabled && (s.workspace ?? 'shared-read-only') === 'shared-read-only' && writes)
762
+ fail(`${label}: shared read-only subagents cannot write files or Git; reduce role permissions or select a writable workspace`);
763
+ if (spawningEnabled && (s.workspace ?? 'shared-read-only') === 'shared-write' && (s.maxConcurrent ?? 3) > 1 && writes)
764
+ fail(`${label}: concurrent writing subagents require separate worktrees; select worktree or maxConcurrent 1`);
765
+ }
766
+ if (spawningEnabled && (s.workspace ?? 'shared-read-only') === 'shared-write' && (s.maxConcurrent ?? 3) > 1 && !s.roles?.length)
767
+ fail(`${label}: concurrent writing subagents require separate worktrees or maxConcurrent 1`);
768
+ }
769
+ }
770
+ if (graph.metadata !== undefined && (!record(graph.metadata) || (graph.metadata.description !== undefined && (typeof graph.metadata.description !== 'string' || graph.metadata.description.length > 2000)) || (graph.metadata.updatedAt !== undefined && typeof graph.metadata.updatedAt !== 'string')))
771
+ fail('invalid metadata');
772
+ const ids = new Set(), pairs = new Set();
773
+ const outgoing = new Map(), incoming = new Map();
774
+ for (const [i, edge] of graph.edges.entries()) {
775
+ if (!record(edge) || !validId(edge.source) || !validId(edge.target) || !Object.hasOwn(graph.nodes, edge.source) || !Object.hasOwn(graph.nodes, edge.target))
776
+ fail('every edge must connect existing nodes');
777
+ if (Object.keys(edge).some(k => !['id', 'source', 'target', 'outcome', 'toInput', 'inputMapping', 'bootstrap'].includes(k)))
778
+ fail('unsupported edge setting; use outcome for named completion routing');
779
+ edge.id ??= `edge-${i + 1}`;
780
+ edge.outcome ??= 'completed';
781
+ if (!validId(edge.id) || ids.has(edge.id))
782
+ fail('duplicate/invalid edge id; assign a unique safe identifier');
783
+ ids.add(edge.id);
784
+ if (!nodeOutcomes(graph.nodes[edge.source]).includes(edge.outcome))
785
+ fail(`edge ${edge.id}: nonexistent outcome ${edge.outcome}; select a declared output port`);
786
+ if (edge.toInput !== undefined && !validId(edge.toInput))
787
+ fail(`edge ${edge.id}: invalid target input name`);
788
+ if (edge.bootstrap !== undefined && (edge.bootstrap !== true || graph.schemaVersion !== 3 || edge.source !== graph.entry || graph.nodes[edge.source].agentRole !== 'orchestrator' || graph.nodes[edge.target].type !== 'join' || graph.edges.filter(candidate => candidate.bootstrap === true).length !== 1 || !graph.edges.some(candidate => candidate !== edge && candidate.target === edge.target && candidate.bootstrap !== true)))
789
+ fail(`edge ${edge.id}: bootstrap must be the single version 3 Orchestrator-entry route to a Join with existing cyclic incoming branches`);
790
+ const pair = JSON.stringify([edge.source, edge.outcome, edge.target]);
791
+ if (pairs.has(pair))
792
+ fail(`duplicate edge ${edge.id}; remove the repeated connection (toInput does not create a separate runtime route)`);
793
+ pairs.add(pair);
794
+ outgoing.set(edge.source, [...(outgoing.get(edge.source) ?? []), edge]);
795
+ incoming.set(edge.target, [...(incoming.get(edge.target) ?? []), edge]);
796
+ }
797
+ const visited = new Set(), active = new Set();
798
+ function walk(id) { if (active.has(id)) {
799
+ if (!hasRunCeiling(graph))
800
+ fail('unlimited graph cycle; set graph limits.maxNodeVisits to a finite number of visits, or graph limits.wallTimeMs to a finite duration');
801
+ return;
802
+ } if (visited.has(id))
803
+ return; visited.add(id); active.add(id); for (const e of outgoing.get(id) ?? [])
804
+ walk(e.target); active.delete(id); }
805
+ walk(graph.entry);
806
+ for (const edge of graph.edges.filter(edge => edge.bootstrap)) {
807
+ const reachable = new Set();
808
+ const visit = (id) => {
809
+ if (reachable.has(id))
810
+ return;
811
+ reachable.add(id);
812
+ for (const next of outgoing.get(id) ?? [])
813
+ if (!next.bootstrap)
814
+ visit(next.target);
815
+ };
816
+ visit(edge.target);
817
+ if (graph.edges.some(branch => branch.target === edge.target && !branch.bootstrap && !reachable.has(branch.source)))
818
+ fail(`edge ${edge.id}: bootstrap requires every ordinary incoming branch to cycle back from this Join; remove bootstrap for acyclic dependencies`);
819
+ if (graph.nodes[edge.target].join?.mode === 'all' && (incoming.get(edge.target) ?? []).filter(branch => !branch.bootstrap).length > 1)
820
+ fail(`Join ${edge.target}: bootstrap Join all supports only one ordinary cyclic incoming branch; use Join any or a single return branch`);
821
+ }
822
+ if (visited.size !== entries.length)
823
+ fail('all nodes must be reachable from the entry; connect or remove disconnected nodes');
824
+ if (!entries.some(([, n]) => n.type === 'end'))
825
+ fail('include an End node');
826
+ const canReach = (start, target, blocked, seen = new Set()) => {
827
+ if (start === blocked || seen.has(start))
828
+ return false;
829
+ if (start === target)
830
+ return true;
831
+ seen.add(start);
832
+ return (outgoing.get(start) ?? []).some(edge => canReach(edge.target, target, blocked, seen));
833
+ };
834
+ const { required: guaranteedNodes, loopBodies } = guaranteedGraphInvocations(graph);
835
+ for (const [id, node] of entries) {
836
+ if (node.modifiers?.parallel?.mode === 'branches') {
837
+ for (const edge of outgoing.get(id) ?? []) {
838
+ const target = graph.nodes[edge.target];
839
+ if (target.type !== 'agent' || target.agentRole === 'orchestrator')
840
+ fail(`Agent ${id}: Parallel branches must connect directly to ordinary Agents; connect an End after those Agents`);
841
+ if (node.modifiers.parallel.maxConcurrent > 1) {
842
+ const c = effectiveCapabilities(target);
843
+ if (c.filesystem === 'read-write' || c.git === 'write' || c.shell === 'allowed' || c.github === 'pull-request' || c.github === 'review' || c.deployment === 'allowed')
844
+ fail(`Agent ${id}: parallel branch target ${edge.target} requires read-only capabilities in the shared workspace; reduce target permissions or set maxConcurrent to 1`);
845
+ }
846
+ }
847
+ }
848
+ if (node.type === 'loop' && (outgoing.get(id) ?? []).some(edge => edge.outcome === 'body' && canReach(edge.target, id))) {
849
+ let entriesRequired = 1;
850
+ for (const [outerId, body] of loopBodies) {
851
+ if (outerId !== id && guaranteedNodes.has(outerId) && body.has(outerId) && body.has(id))
852
+ entriesRequired = Math.max(entriesRequired, graph.nodes[outerId].loop.maxIterations);
853
+ }
854
+ const minimumVisits = node.loop.maxIterations + entriesRequired;
855
+ // An unlimited visit budget can always reach the done outcome, so the check is about a
856
+ // finite cap that is too small to get there.
857
+ if (maxNodeVisitsOf(graph) < minimumVisits)
858
+ fail(`Loop ${id}: set graph limits.maxNodeVisits to at least ${minimumVisits} so the body cycle and enclosing reentries can return for the done outcome`);
859
+ }
860
+ if (node.type === 'condition' && (node.condition.source === id || canReach(graph.entry, id, node.condition.source)))
861
+ fail(`Condition ${id}: source ${node.condition.source} must execute on every path before this condition; route through the source first`);
862
+ for (const outcome of nodeOutcomes(node))
863
+ if (!(node.completion?.mode === 'outcomes' && node.completion.requireRoutes === false) && !(outgoing.get(id) ?? []).some(e => e.outcome === outcome))
864
+ fail(`node ${id}: required outcome ${outcome} has no route; connect its output port`);
865
+ if (node.type === 'join' && node.join?.mode === 'all') {
866
+ const edges = (incoming.get(id) ?? []).filter(edge => !edge.bootstrap);
867
+ if (!edges.length)
868
+ fail(`Join ${id} needs an incoming branch`);
869
+ // Like bootstrap entry, direct entry skips the first barrier. Each cyclic
870
+ // return then advances its own generation, so multiple returns cannot join.
871
+ if (graph.schemaVersion === 3 && graph.entry === id && edges.length > 1)
872
+ fail(`Join ${id}: direct-start Join all supports only one ordinary cyclic incoming branch; use Join any or a single return branch`);
873
+ if (graph.schemaVersion === 3 && edges.some(edge => canReach(graph.entry, edge.source, id)) && edges.some(edge => canReach(id, edge.source)))
874
+ fail(`Join ${id}: cyclic entry dependencies require a bootstrap edge from the Orchestrator; use bootstrap only when every other incoming branch cycles back from this Join`);
875
+ for (const edge of edges)
876
+ if (edges.some(other => other.source === edge.source && other.outcome !== edge.outcome))
877
+ fail(`Join ${id} waits on impossible exclusive outcomes; use Join any or join independent branches`);
878
+ for (const [loopId, loopNode] of entries) {
879
+ if (loopNode.type !== 'loop')
880
+ continue;
881
+ const routes = outgoing.get(loopId) ?? [];
882
+ const returnsBeforeJoin = routes.some(edge => edge.outcome === 'body' && canReach(edge.target, loopId, id));
883
+ const suppliesDone = edges.some(branch => branch.source === loopId ? branch.outcome === 'done' : routes.some(edge => edge.outcome === 'done' && canReach(edge.target, branch.source, id)));
884
+ if (returnsBeforeJoin && suppliesDone && edges.some(branch => !canReach(loopId, branch.source, id)))
885
+ fail(`Join ${id}: returning Loop ${loopId} advances generations independently of a sibling branch; use Join any or move the Loop before the shared fan-out`);
886
+ }
887
+ for (const [ancestorId, ancestor] of entries) {
888
+ if (nodeOutcomes(ancestor).length < 2)
889
+ continue;
890
+ const reaches = (start, target, seen = new Set()) => { if (start === target)
891
+ return true; if (start === id || start === ancestorId || seen.has(start))
892
+ return false; seen.add(start); return (outgoing.get(start) ?? []).some(e => reaches(e.target, target, seen)); };
893
+ const possibilities = edges.map(branch => new Set((outgoing.get(ancestorId) ?? []).filter(e => ancestorId === branch.source ? e.outcome === branch.outcome : reaches(e.target, branch.source)).map(e => e.outcome)));
894
+ for (let a = 0; a < possibilities.length; a++)
895
+ for (let b = a + 1; b < possibilities.length; b++)
896
+ if (possibilities[a].size && possibilities[b].size && ![...possibilities[a]].some(o => possibilities[b].has(o)))
897
+ fail(`Join ${id} waits on impossible branches from exclusive outcomes of ${ancestorId}; choose Join any or independent fan-out branches`);
898
+ }
899
+ }
900
+ }
901
+ if (graph.inputSchema !== undefined) {
902
+ objectSchema(graph.inputSchema, 'graph inputSchema');
903
+ const taskSchema = graph.inputSchema.properties?.task;
904
+ if (graph.inputSchema.additionalProperties === false && !taskSchema)
905
+ fail('graph inputSchema: closed schemas must declare the reserved task property as a string');
906
+ if (taskSchema && taskSchema.type !== 'string')
907
+ fail('graph inputSchema: the reserved canonical task property must have type string');
908
+ }
909
+ if (graph.stateSchema !== undefined)
910
+ objectSchema(graph.stateSchema, 'graph stateSchema');
911
+ validateMappings(graph);
912
+ const orchestrators = entries.filter(([, node]) => node.agentRole === 'orchestrator');
913
+ if (graph.schemaVersion === 3 && orchestrators.length) {
914
+ if (orchestrators.length > 1 || orchestrators[0][0] !== graph.entry)
915
+ fail('version 3 allows at most one Orchestrator Agent, which must be the graph entry');
916
+ if (!['read', 'find', 'grep', 'ls', 'read_file', 'list_files', 'search_files', 'repo_explore'].some(tool => permitsBuiltInTool(orchestrators[0][1], tool)))
917
+ fail('Orchestrator requires a usable research path; enable a filesystem read tool and filesystem read access');
918
+ const intake = orchestrators[0][1];
919
+ // An unlimited iteration ceiling has no upper bound at all, so it satisfies the minimum
920
+ // trivially. Only an explicit ceiling that is too small can fail this check; treating an
921
+ // absent bound as `3` would have made the check pass for the wrong reason.
922
+ const intakeIterations = [intake.maxIterations, intake.limits?.maxIterations].filter((value) => typeof value === 'number' && value > 0);
923
+ if (intakeIterations.length && Math.min(...intakeIterations) < 3)
924
+ fail('Orchestrator requires at least three model iterations; raise maxIterations or limits.maxIterations for research, clarification and completion, or leave them unset for no ceiling; todo-only turns have a separate budget');
925
+ // An absent ceiling is unlimited, which satisfies the Orchestrator minimum; only
926
+ // an explicit ceiling that is too small fails.
927
+ if (!meetsMinimumToolCalls(intake.limits?.maxToolCalls, 2))
928
+ fail('Orchestrator requires at least two tool calls; increase node limits.maxToolCalls for research and ask_user');
929
+ if (!meetsMinimumToolCalls(graph.limits?.maxToolCalls, 2))
930
+ fail('Orchestrator requires at least two tool calls; increase graph limits.maxToolCalls for research and ask_user');
931
+ if (graph.edges.some(edge => edge.target === graph.entry))
932
+ fail('Orchestrator intake cannot have incoming edges; route remediation to the downstream worker instead');
933
+ }
934
+ if (graph.schemaVersion === 3) {
935
+ const minimumToolCalls = minimumGraphToolCalls(graph);
936
+ const requiredWork = orchestrators.length ? 'Orchestrator research, ask_user and unavoidable Action nodes' : 'unavoidable Action nodes';
937
+ if (!meetsMinimumToolCalls(graph.limits?.maxToolCalls, minimumToolCalls))
938
+ fail(`graph maxToolCalls must be at least ${minimumToolCalls} for ${requiredWork}`);
939
+ }
940
+ if (graph.schemaVersion !== 3)
941
+ graph.schemaVersion = 2;
942
+ return graph;
943
+ }
944
+ export class GraphConflictError extends Error {
945
+ constructor(message = 'This graph changed in another editor. Reload it before saving.') { super(message); this.name = 'GraphConflictError'; }
946
+ }
947
+ /** Publish an immutable cloud revision only when the local revision is absent or identical. */
948
+ export async function restoreGraphRevision(input, directory) {
949
+ const graph = validateGraphInternal(input);
950
+ if (graph.id === 'default' || graph.revision < 1)
951
+ throw new Error('Invalid cloud revision');
952
+ const folder = join(directory, 'graphs', graph.id);
953
+ await mkdir(folder, { recursive: true });
954
+ const release = await acquireSaveLock(folder);
955
+ const temp = join(folder, `latest-${randomUUID()}.tmp`);
956
+ try {
957
+ const snapshot = join(folder, `${graph.revision}.json`);
958
+ let exists = false;
959
+ try {
960
+ const previousRaw = await readFile(snapshot, 'utf8');
961
+ let previous;
962
+ try {
963
+ previous = validateGraphInternal(JSON.parse(previousRaw));
964
+ }
965
+ catch {
966
+ throw new GraphConflictError('The local revision is damaged; preserve it as a conflict.');
967
+ }
968
+ if (JSON.stringify(previous) !== JSON.stringify(graph))
969
+ throw new GraphConflictError();
970
+ exists = true;
971
+ }
972
+ catch (error) {
973
+ if (error.code !== 'ENOENT')
974
+ throw error;
975
+ }
976
+ if (!exists)
977
+ await writeFile(snapshot, JSON.stringify(graph, null, 2) + '\n', { flag: 'wx', mode: 0o600 });
978
+ let current = 0;
979
+ try {
980
+ const raw = await readFile(join(folder, 'latest.json'), 'utf8');
981
+ try {
982
+ current = JSON.parse(raw);
983
+ }
984
+ catch {
985
+ throw new GraphConflictError('The local latest pointer is damaged; preserve it as a conflict.');
986
+ }
987
+ }
988
+ catch (error) {
989
+ if (error.code !== 'ENOENT')
990
+ throw error;
991
+ }
992
+ if (!Number.isSafeInteger(current) || current < 0)
993
+ throw new GraphConflictError('Invalid latest revision');
994
+ if (graph.revision > current) {
995
+ await writeFile(temp, JSON.stringify(graph.revision), { flag: 'wx', mode: 0o600 });
996
+ await rename(temp, join(folder, 'latest.json'));
997
+ }
998
+ return graph;
999
+ }
1000
+ finally {
1001
+ await unlink(temp).catch(() => { });
1002
+ await release();
1003
+ }
1004
+ }
1005
+ export async function loadGraph(id, revision, directory = configDirectory()) {
1006
+ if (!validId(id))
1007
+ throw new Error('Invalid graph id');
1008
+ if (revision !== undefined && (!Number.isSafeInteger(revision) || revision < 1))
1009
+ throw new Error('Invalid graph revision');
1010
+ if (id === 'default') {
1011
+ if (revision !== undefined && ![1, 2, 3, 4, 5].includes(revision))
1012
+ throw new Error('Default graph revision does not exist');
1013
+ return structuredClone(revision === 1 ? LEGACY_DEFAULT_HARNESS : revision === 2 ? DEFAULT_HARNESS_REVISION_2 : revision === 3 ? DEFAULT_HARNESS_REVISION_3 : revision === 4 ? DEFAULT_HARNESS_REVISION_4 : DEFAULT_HARNESS);
1014
+ }
1015
+ const folder = join(directory, 'graphs', id);
1016
+ const selected = revision ?? JSON.parse(await readFile(join(folder, 'latest.json'), 'utf8'));
1017
+ if (!Number.isSafeInteger(selected) || selected < 1)
1018
+ throw new Error('Invalid stored graph revision');
1019
+ const graph = validateGraphInternal(JSON.parse(await readFile(join(folder, `${selected}.json`), 'utf8')));
1020
+ if (graph.id !== id || graph.revision !== selected)
1021
+ throw new Error('Stored graph identity does not match its revision');
1022
+ return graph;
1023
+ }
1024
+ export async function listGraphs(directory = configDirectory(), onLoadError) {
1025
+ let entries;
1026
+ try {
1027
+ entries = await readdir(join(directory, 'graphs'), { withFileTypes: true });
1028
+ }
1029
+ catch (error) {
1030
+ if (error.code === 'ENOENT')
1031
+ return [structuredClone(DEFAULT_HARNESS)];
1032
+ throw error;
1033
+ }
1034
+ const graphs = [structuredClone(DEFAULT_HARNESS)];
1035
+ for (const entry of entries.filter(item => item.isDirectory() && validId(item.name) && item.name !== 'default').sort((a, b) => a.name.localeCompare(b.name))) {
1036
+ try {
1037
+ graphs.push(await loadGraph(entry.name, undefined, directory));
1038
+ }
1039
+ catch (error) {
1040
+ onLoadError?.(entry.name, error);
1041
+ }
1042
+ }
1043
+ return graphs;
1044
+ }
1045
+ export async function saveGraph(input, expectedRevision, directory = configDirectory()) {
1046
+ const graph = validateGraph(input);
1047
+ if (graph.id === 'default')
1048
+ throw new Error('Duplicate the bundled default graph before customizing it');
1049
+ if (expectedRevision !== null && (!Number.isSafeInteger(expectedRevision) || expectedRevision < 1))
1050
+ throw new Error('Invalid expected revision');
1051
+ if (graph.revision !== (expectedRevision ?? 0))
1052
+ throw new GraphConflictError('The graph revision does not match the expected revision');
1053
+ const folder = join(directory, 'graphs', graph.id);
1054
+ await mkdir(folder, { recursive: true });
1055
+ let releaseLock;
1056
+ try {
1057
+ releaseLock = await acquireSaveLock(folder);
1058
+ }
1059
+ catch (error) {
1060
+ if (error instanceof SaveLockBusyError)
1061
+ throw new GraphConflictError(error.message);
1062
+ throw error;
1063
+ }
1064
+ const temporary = join(folder, `latest-${randomUUID()}.tmp`);
1065
+ let createdSnapshot;
1066
+ try {
1067
+ let current;
1068
+ try {
1069
+ current = await loadGraph(graph.id, undefined, directory);
1070
+ }
1071
+ catch (error) {
1072
+ if (error.code !== 'ENOENT')
1073
+ throw error;
1074
+ }
1075
+ if ((current?.revision ?? null) !== expectedRevision)
1076
+ throw new GraphConflictError();
1077
+ graph.revision = (expectedRevision ?? 0) + 1;
1078
+ // The creation time comes from storage, not the submitted graph: it decides which graph a free
1079
+ // account keeps, so a save cannot move it.
1080
+ const now = new Date().toISOString();
1081
+ const createdAt = current ? current.metadata?.createdAt : now;
1082
+ graph.metadata = { ...graph.metadata, updatedAt: now };
1083
+ if (typeof createdAt === 'string')
1084
+ graph.metadata.createdAt = createdAt;
1085
+ else
1086
+ delete graph.metadata.createdAt;
1087
+ await archiveUnpublishedSnapshot(folder, graph.revision);
1088
+ const snapshot = join(folder, `${graph.revision}.json`);
1089
+ await writeFile(snapshot, JSON.stringify(graph, null, 2) + '\n', { flag: 'wx', mode: 0o600 });
1090
+ createdSnapshot = snapshot;
1091
+ await writeFile(temporary, JSON.stringify(graph.revision) + '\n', { flag: 'wx', mode: 0o600 });
1092
+ await rename(temporary, join(folder, 'latest.json'));
1093
+ createdSnapshot = undefined;
1094
+ return graph;
1095
+ }
1096
+ finally {
1097
+ await unlink(temporary).catch(() => { });
1098
+ if (createdSnapshot)
1099
+ await unlink(createdSnapshot).catch(() => { });
1100
+ await releaseLock();
1101
+ }
1102
+ }