@hansjm10/volt-coding-agent 0.0.0-bootstrap.0 → 0.1.0

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 (1364) hide show
  1. package/BINARY-CAPABILITIES.md +28 -0
  2. package/CHANGELOG.md +4845 -0
  3. package/LICENSE +1 -1
  4. package/README.md +716 -3
  5. package/THIRD-PARTY-NOTICES.md +55 -0
  6. package/dist/LICENSES/clipboard-image-MIT.txt +9 -0
  7. package/dist/LICENSES/highlight.js-10.7.3-BSD-3-Clause.txt +29 -0
  8. package/dist/LICENSES/highlight.js-11.9.0-BSD-3-Clause.txt +29 -0
  9. package/dist/LICENSES/marked-18.0.5-LICENSE.txt +44 -0
  10. package/dist/LICENSES/run-jxa-MIT.txt +9 -0
  11. package/dist/cli/args.d.ts +60 -0
  12. package/dist/cli/args.d.ts.map +1 -0
  13. package/dist/cli/args.js +414 -0
  14. package/dist/cli/args.js.map +1 -0
  15. package/dist/cli/config-selector.d.ts +14 -0
  16. package/dist/cli/config-selector.d.ts.map +1 -0
  17. package/dist/cli/config-selector.js +31 -0
  18. package/dist/cli/config-selector.js.map +1 -0
  19. package/dist/cli/file-processor.d.ts +15 -0
  20. package/dist/cli/file-processor.d.ts.map +1 -0
  21. package/dist/cli/file-processor.js +85 -0
  22. package/dist/cli/file-processor.js.map +1 -0
  23. package/dist/cli/initial-message.d.ts +18 -0
  24. package/dist/cli/initial-message.d.ts.map +1 -0
  25. package/dist/cli/initial-message.js +22 -0
  26. package/dist/cli/initial-message.js.map +1 -0
  27. package/dist/cli/list-models.d.ts +9 -0
  28. package/dist/cli/list-models.d.ts.map +1 -0
  29. package/dist/cli/list-models.js +98 -0
  30. package/dist/cli/list-models.js.map +1 -0
  31. package/dist/cli/project-trust.d.ts +10 -0
  32. package/dist/cli/project-trust.d.ts.map +1 -0
  33. package/dist/cli/project-trust.js +48 -0
  34. package/dist/cli/project-trust.js.map +1 -0
  35. package/dist/cli/session-picker.d.ts +9 -0
  36. package/dist/cli/session-picker.d.ts.map +1 -0
  37. package/dist/cli/session-picker.js +35 -0
  38. package/dist/cli/session-picker.js.map +1 -0
  39. package/dist/cli/startup-ui.d.ts +17 -0
  40. package/dist/cli/startup-ui.d.ts.map +1 -0
  41. package/dist/cli/startup-ui.js +133 -0
  42. package/dist/cli/startup-ui.js.map +1 -0
  43. package/dist/cli.d.ts +3 -0
  44. package/dist/cli.d.ts.map +1 -0
  45. package/dist/cli.js +18 -0
  46. package/dist/cli.js.map +1 -0
  47. package/dist/config.d.ts +85 -0
  48. package/dist/config.d.ts.map +1 -0
  49. package/dist/config.js +487 -0
  50. package/dist/config.js.map +1 -0
  51. package/dist/core/agent-session-runtime.d.ts +160 -0
  52. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  53. package/dist/core/agent-session-runtime.js +397 -0
  54. package/dist/core/agent-session-runtime.js.map +1 -0
  55. package/dist/core/agent-session-services.d.ts +98 -0
  56. package/dist/core/agent-session-services.d.ts.map +1 -0
  57. package/dist/core/agent-session-services.js +125 -0
  58. package/dist/core/agent-session-services.js.map +1 -0
  59. package/dist/core/agent-session.d.ts +739 -0
  60. package/dist/core/agent-session.d.ts.map +1 -0
  61. package/dist/core/agent-session.js +3158 -0
  62. package/dist/core/agent-session.js.map +1 -0
  63. package/dist/core/auth-guidance.d.ts +5 -0
  64. package/dist/core/auth-guidance.d.ts.map +1 -0
  65. package/dist/core/auth-guidance.js +21 -0
  66. package/dist/core/auth-guidance.js.map +1 -0
  67. package/dist/core/auth-storage.d.ts +159 -0
  68. package/dist/core/auth-storage.d.ts.map +1 -0
  69. package/dist/core/auth-storage.js +509 -0
  70. package/dist/core/auth-storage.js.map +1 -0
  71. package/dist/core/bash-executor.d.ts +32 -0
  72. package/dist/core/bash-executor.d.ts.map +1 -0
  73. package/dist/core/bash-executor.js +111 -0
  74. package/dist/core/bash-executor.js.map +1 -0
  75. package/dist/core/compaction/branch-summarization.d.ts +92 -0
  76. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  77. package/dist/core/compaction/branch-summarization.js +257 -0
  78. package/dist/core/compaction/branch-summarization.js.map +1 -0
  79. package/dist/core/compaction/compaction.d.ts +121 -0
  80. package/dist/core/compaction/compaction.d.ts.map +1 -0
  81. package/dist/core/compaction/compaction.js +658 -0
  82. package/dist/core/compaction/compaction.js.map +1 -0
  83. package/dist/core/compaction/index.d.ts +7 -0
  84. package/dist/core/compaction/index.d.ts.map +1 -0
  85. package/dist/core/compaction/index.js +7 -0
  86. package/dist/core/compaction/index.js.map +1 -0
  87. package/dist/core/compaction/utils.d.ts +56 -0
  88. package/dist/core/compaction/utils.d.ts.map +1 -0
  89. package/dist/core/compaction/utils.js +271 -0
  90. package/dist/core/compaction/utils.js.map +1 -0
  91. package/dist/core/defaults.d.ts +3 -0
  92. package/dist/core/defaults.d.ts.map +1 -0
  93. package/dist/core/defaults.js +2 -0
  94. package/dist/core/defaults.js.map +1 -0
  95. package/dist/core/diagnostics.d.ts +15 -0
  96. package/dist/core/diagnostics.d.ts.map +1 -0
  97. package/dist/core/diagnostics.js +2 -0
  98. package/dist/core/diagnostics.js.map +1 -0
  99. package/dist/core/event-bus.d.ts +9 -0
  100. package/dist/core/event-bus.d.ts.map +1 -0
  101. package/dist/core/event-bus.js +25 -0
  102. package/dist/core/event-bus.js.map +1 -0
  103. package/dist/core/exec.d.ts +29 -0
  104. package/dist/core/exec.d.ts.map +1 -0
  105. package/dist/core/exec.js +75 -0
  106. package/dist/core/exec.js.map +1 -0
  107. package/dist/core/experimental.d.ts +2 -0
  108. package/dist/core/experimental.d.ts.map +1 -0
  109. package/dist/core/experimental.js +4 -0
  110. package/dist/core/experimental.js.map +1 -0
  111. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  112. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  113. package/dist/core/export-html/ansi-to-html.js +249 -0
  114. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  115. package/dist/core/export-html/index.d.ts +37 -0
  116. package/dist/core/export-html/index.d.ts.map +1 -0
  117. package/dist/core/export-html/index.js +234 -0
  118. package/dist/core/export-html/index.js.map +1 -0
  119. package/dist/core/export-html/template.css +1066 -0
  120. package/dist/core/export-html/template.html +55 -0
  121. package/dist/core/export-html/template.js +1864 -0
  122. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  123. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  124. package/dist/core/export-html/tool-renderer.js +108 -0
  125. package/dist/core/export-html/tool-renderer.js.map +1 -0
  126. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  127. package/dist/core/export-html/vendor/marked.min.js +78 -0
  128. package/dist/core/extensions/index.d.ts +12 -0
  129. package/dist/core/extensions/index.d.ts.map +1 -0
  130. package/dist/core/extensions/index.js +9 -0
  131. package/dist/core/extensions/index.js.map +1 -0
  132. package/dist/core/extensions/loader.d.ts +25 -0
  133. package/dist/core/extensions/loader.d.ts.map +1 -0
  134. package/dist/core/extensions/loader.js +516 -0
  135. package/dist/core/extensions/loader.js.map +1 -0
  136. package/dist/core/extensions/runner.d.ts +180 -0
  137. package/dist/core/extensions/runner.d.ts.map +1 -0
  138. package/dist/core/extensions/runner.js +938 -0
  139. package/dist/core/extensions/runner.js.map +1 -0
  140. package/dist/core/extensions/types.d.ts +1215 -0
  141. package/dist/core/extensions/types.d.ts.map +1 -0
  142. package/dist/core/extensions/types.js +48 -0
  143. package/dist/core/extensions/types.js.map +1 -0
  144. package/dist/core/extensions/wrapper.d.ts +20 -0
  145. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  146. package/dist/core/extensions/wrapper.js +22 -0
  147. package/dist/core/extensions/wrapper.js.map +1 -0
  148. package/dist/core/footer-data-provider.d.ts +54 -0
  149. package/dist/core/footer-data-provider.d.ts.map +1 -0
  150. package/dist/core/footer-data-provider.js +338 -0
  151. package/dist/core/footer-data-provider.js.map +1 -0
  152. package/dist/core/host-actions.d.ts +107 -0
  153. package/dist/core/host-actions.d.ts.map +1 -0
  154. package/dist/core/host-actions.js +632 -0
  155. package/dist/core/host-actions.js.map +1 -0
  156. package/dist/core/host-interaction.d.ts +35 -0
  157. package/dist/core/host-interaction.d.ts.map +1 -0
  158. package/dist/core/host-interaction.js +2 -0
  159. package/dist/core/host-interaction.js.map +1 -0
  160. package/dist/core/http-dispatcher.d.ts +22 -0
  161. package/dist/core/http-dispatcher.d.ts.map +1 -0
  162. package/dist/core/http-dispatcher.js +64 -0
  163. package/dist/core/http-dispatcher.js.map +1 -0
  164. package/dist/core/index.d.ts +18 -0
  165. package/dist/core/index.d.ts.map +1 -0
  166. package/dist/core/index.js +17 -0
  167. package/dist/core/index.js.map +1 -0
  168. package/dist/core/keybindings.d.ts +373 -0
  169. package/dist/core/keybindings.d.ts.map +1 -0
  170. package/dist/core/keybindings.js +303 -0
  171. package/dist/core/keybindings.js.map +1 -0
  172. package/dist/core/lsp/client.d.ts +119 -0
  173. package/dist/core/lsp/client.d.ts.map +1 -0
  174. package/dist/core/lsp/client.js +711 -0
  175. package/dist/core/lsp/client.js.map +1 -0
  176. package/dist/core/lsp/config.d.ts +96 -0
  177. package/dist/core/lsp/config.d.ts.map +1 -0
  178. package/dist/core/lsp/config.js +206 -0
  179. package/dist/core/lsp/config.js.map +1 -0
  180. package/dist/core/lsp/index.d.ts +6 -0
  181. package/dist/core/lsp/index.d.ts.map +1 -0
  182. package/dist/core/lsp/index.js +6 -0
  183. package/dist/core/lsp/index.js.map +1 -0
  184. package/dist/core/lsp/manager.d.ts +122 -0
  185. package/dist/core/lsp/manager.d.ts.map +1 -0
  186. package/dist/core/lsp/manager.js +1136 -0
  187. package/dist/core/lsp/manager.js.map +1 -0
  188. package/dist/core/lsp/trace.d.ts +26 -0
  189. package/dist/core/lsp/trace.d.ts.map +1 -0
  190. package/dist/core/lsp/trace.js +98 -0
  191. package/dist/core/lsp/trace.js.map +1 -0
  192. package/dist/core/lsp/workspace-edit.d.ts +60 -0
  193. package/dist/core/lsp/workspace-edit.d.ts.map +1 -0
  194. package/dist/core/lsp/workspace-edit.js +71 -0
  195. package/dist/core/lsp/workspace-edit.js.map +1 -0
  196. package/dist/core/mcp/audit.d.ts +39 -0
  197. package/dist/core/mcp/audit.d.ts.map +1 -0
  198. package/dist/core/mcp/audit.js +35 -0
  199. package/dist/core/mcp/audit.js.map +1 -0
  200. package/dist/core/mcp/auth.d.ts +7 -0
  201. package/dist/core/mcp/auth.d.ts.map +1 -0
  202. package/dist/core/mcp/auth.js +56 -0
  203. package/dist/core/mcp/auth.js.map +1 -0
  204. package/dist/core/mcp/client-factory.d.ts +20 -0
  205. package/dist/core/mcp/client-factory.d.ts.map +1 -0
  206. package/dist/core/mcp/client-factory.js +200 -0
  207. package/dist/core/mcp/client-factory.js.map +1 -0
  208. package/dist/core/mcp/config-loader.d.ts +9 -0
  209. package/dist/core/mcp/config-loader.d.ts.map +1 -0
  210. package/dist/core/mcp/config-loader.js +104 -0
  211. package/dist/core/mcp/config-loader.js.map +1 -0
  212. package/dist/core/mcp/config-writer.d.ts +21 -0
  213. package/dist/core/mcp/config-writer.d.ts.map +1 -0
  214. package/dist/core/mcp/config-writer.js +124 -0
  215. package/dist/core/mcp/config-writer.js.map +1 -0
  216. package/dist/core/mcp/config.d.ts +32 -0
  217. package/dist/core/mcp/config.d.ts.map +1 -0
  218. package/dist/core/mcp/config.js +385 -0
  219. package/dist/core/mcp/config.js.map +1 -0
  220. package/dist/core/mcp/direct-tools.d.ts +11 -0
  221. package/dist/core/mcp/direct-tools.d.ts.map +1 -0
  222. package/dist/core/mcp/direct-tools.js +47 -0
  223. package/dist/core/mcp/direct-tools.js.map +1 -0
  224. package/dist/core/mcp/gateway-tool.d.ts +29 -0
  225. package/dist/core/mcp/gateway-tool.d.ts.map +1 -0
  226. package/dist/core/mcp/gateway-tool.js +108 -0
  227. package/dist/core/mcp/gateway-tool.js.map +1 -0
  228. package/dist/core/mcp/index.d.ts +19 -0
  229. package/dist/core/mcp/index.d.ts.map +1 -0
  230. package/dist/core/mcp/index.js +18 -0
  231. package/dist/core/mcp/index.js.map +1 -0
  232. package/dist/core/mcp/manager.d.ts +117 -0
  233. package/dist/core/mcp/manager.d.ts.map +1 -0
  234. package/dist/core/mcp/manager.js +819 -0
  235. package/dist/core/mcp/manager.js.map +1 -0
  236. package/dist/core/mcp/metadata-cache.d.ts +27 -0
  237. package/dist/core/mcp/metadata-cache.d.ts.map +1 -0
  238. package/dist/core/mcp/metadata-cache.js +152 -0
  239. package/dist/core/mcp/metadata-cache.js.map +1 -0
  240. package/dist/core/mcp/oauth-flow.d.ts +94 -0
  241. package/dist/core/mcp/oauth-flow.d.ts.map +1 -0
  242. package/dist/core/mcp/oauth-flow.js +473 -0
  243. package/dist/core/mcp/oauth-flow.js.map +1 -0
  244. package/dist/core/mcp/oauth-provider.d.ts +39 -0
  245. package/dist/core/mcp/oauth-provider.d.ts.map +1 -0
  246. package/dist/core/mcp/oauth-provider.js +149 -0
  247. package/dist/core/mcp/oauth-provider.js.map +1 -0
  248. package/dist/core/mcp/oauth-store.d.ts +27 -0
  249. package/dist/core/mcp/oauth-store.d.ts.map +1 -0
  250. package/dist/core/mcp/oauth-store.js +111 -0
  251. package/dist/core/mcp/oauth-store.js.map +1 -0
  252. package/dist/core/mcp/output-store.d.ts +55 -0
  253. package/dist/core/mcp/output-store.d.ts.map +1 -0
  254. package/dist/core/mcp/output-store.js +206 -0
  255. package/dist/core/mcp/output-store.js.map +1 -0
  256. package/dist/core/mcp/rpc.d.ts +13 -0
  257. package/dist/core/mcp/rpc.d.ts.map +1 -0
  258. package/dist/core/mcp/rpc.js +29 -0
  259. package/dist/core/mcp/rpc.js.map +1 -0
  260. package/dist/core/mcp/safety.d.ts +6 -0
  261. package/dist/core/mcp/safety.d.ts.map +1 -0
  262. package/dist/core/mcp/safety.js +65 -0
  263. package/dist/core/mcp/safety.js.map +1 -0
  264. package/dist/core/mcp/search.d.ts +8 -0
  265. package/dist/core/mcp/search.d.ts.map +1 -0
  266. package/dist/core/mcp/search.js +85 -0
  267. package/dist/core/mcp/search.js.map +1 -0
  268. package/dist/core/mcp/server-supervisor.d.ts +59 -0
  269. package/dist/core/mcp/server-supervisor.d.ts.map +1 -0
  270. package/dist/core/mcp/server-supervisor.js +331 -0
  271. package/dist/core/mcp/server-supervisor.js.map +1 -0
  272. package/dist/core/mcp/types.d.ts +321 -0
  273. package/dist/core/mcp/types.d.ts.map +1 -0
  274. package/dist/core/mcp/types.js +2 -0
  275. package/dist/core/mcp/types.js.map +1 -0
  276. package/dist/core/messages.d.ts +78 -0
  277. package/dist/core/messages.d.ts.map +1 -0
  278. package/dist/core/messages.js +138 -0
  279. package/dist/core/messages.js.map +1 -0
  280. package/dist/core/model-catalog-watcher.d.ts +36 -0
  281. package/dist/core/model-catalog-watcher.d.ts.map +1 -0
  282. package/dist/core/model-catalog-watcher.js +101 -0
  283. package/dist/core/model-catalog-watcher.js.map +1 -0
  284. package/dist/core/model-registry.d.ts +160 -0
  285. package/dist/core/model-registry.d.ts.map +1 -0
  286. package/dist/core/model-registry.js +754 -0
  287. package/dist/core/model-registry.js.map +1 -0
  288. package/dist/core/model-resolver.d.ts +111 -0
  289. package/dist/core/model-resolver.d.ts.map +1 -0
  290. package/dist/core/model-resolver.js +534 -0
  291. package/dist/core/model-resolver.js.map +1 -0
  292. package/dist/core/output-guard.d.ts +7 -0
  293. package/dist/core/output-guard.d.ts.map +1 -0
  294. package/dist/core/output-guard.js +89 -0
  295. package/dist/core/output-guard.js.map +1 -0
  296. package/dist/core/package-manager.d.ts +220 -0
  297. package/dist/core/package-manager.d.ts.map +1 -0
  298. package/dist/core/package-manager.js +2217 -0
  299. package/dist/core/package-manager.js.map +1 -0
  300. package/dist/core/project-trust.d.ts +15 -0
  301. package/dist/core/project-trust.d.ts.map +1 -0
  302. package/dist/core/project-trust.js +58 -0
  303. package/dist/core/project-trust.js.map +1 -0
  304. package/dist/core/prompt-templates.d.ts +53 -0
  305. package/dist/core/prompt-templates.d.ts.map +1 -0
  306. package/dist/core/prompt-templates.js +236 -0
  307. package/dist/core/prompt-templates.js.map +1 -0
  308. package/dist/core/provider-attribution.d.ts +4 -0
  309. package/dist/core/provider-attribution.d.ts.map +1 -0
  310. package/dist/core/provider-attribution.js +81 -0
  311. package/dist/core/provider-attribution.js.map +1 -0
  312. package/dist/core/provider-display-names.d.ts +2 -0
  313. package/dist/core/provider-display-names.d.ts.map +1 -0
  314. package/dist/core/provider-display-names.js +36 -0
  315. package/dist/core/provider-display-names.js.map +1 -0
  316. package/dist/core/remote/iroh/access-grant.d.ts +40 -0
  317. package/dist/core/remote/iroh/access-grant.d.ts.map +1 -0
  318. package/dist/core/remote/iroh/access-grant.js +199 -0
  319. package/dist/core/remote/iroh/access-grant.js.map +1 -0
  320. package/dist/core/remote/iroh/active-stream-registry.d.ts +39 -0
  321. package/dist/core/remote/iroh/active-stream-registry.d.ts.map +1 -0
  322. package/dist/core/remote/iroh/active-stream-registry.js +109 -0
  323. package/dist/core/remote/iroh/active-stream-registry.js.map +1 -0
  324. package/dist/core/remote/iroh/audit.d.ts +67 -0
  325. package/dist/core/remote/iroh/audit.d.ts.map +1 -0
  326. package/dist/core/remote/iroh/audit.js +274 -0
  327. package/dist/core/remote/iroh/audit.js.map +1 -0
  328. package/dist/core/remote/iroh/authorization.d.ts +46 -0
  329. package/dist/core/remote/iroh/authorization.d.ts.map +1 -0
  330. package/dist/core/remote/iroh/authorization.js +327 -0
  331. package/dist/core/remote/iroh/authorization.js.map +1 -0
  332. package/dist/core/remote/iroh/control.d.ts +64 -0
  333. package/dist/core/remote/iroh/control.d.ts.map +1 -0
  334. package/dist/core/remote/iroh/control.js +326 -0
  335. package/dist/core/remote/iroh/control.js.map +1 -0
  336. package/dist/core/remote/iroh/device-log-rpc.d.ts +22 -0
  337. package/dist/core/remote/iroh/device-log-rpc.d.ts.map +1 -0
  338. package/dist/core/remote/iroh/device-log-rpc.js +152 -0
  339. package/dist/core/remote/iroh/device-log-rpc.js.map +1 -0
  340. package/dist/core/remote/iroh/engine.d.ts +148 -0
  341. package/dist/core/remote/iroh/engine.d.ts.map +1 -0
  342. package/dist/core/remote/iroh/engine.js +499 -0
  343. package/dist/core/remote/iroh/engine.js.map +1 -0
  344. package/dist/core/remote/iroh/handshake-reader.d.ts +19 -0
  345. package/dist/core/remote/iroh/handshake-reader.d.ts.map +1 -0
  346. package/dist/core/remote/iroh/handshake-reader.js +91 -0
  347. package/dist/core/remote/iroh/handshake-reader.js.map +1 -0
  348. package/dist/core/remote/iroh/handshake.d.ts +119 -0
  349. package/dist/core/remote/iroh/handshake.d.ts.map +1 -0
  350. package/dist/core/remote/iroh/handshake.js +621 -0
  351. package/dist/core/remote/iroh/handshake.js.map +1 -0
  352. package/dist/core/remote/iroh/host-policy.d.ts +13 -0
  353. package/dist/core/remote/iroh/host-policy.d.ts.map +1 -0
  354. package/dist/core/remote/iroh/host-policy.js +15 -0
  355. package/dist/core/remote/iroh/host-policy.js.map +1 -0
  356. package/dist/core/remote/iroh/index.d.ts +25 -0
  357. package/dist/core/remote/iroh/index.d.ts.map +1 -0
  358. package/dist/core/remote/iroh/index.js +25 -0
  359. package/dist/core/remote/iroh/index.js.map +1 -0
  360. package/dist/core/remote/iroh/metadata.d.ts +28 -0
  361. package/dist/core/remote/iroh/metadata.d.ts.map +1 -0
  362. package/dist/core/remote/iroh/metadata.js +16 -0
  363. package/dist/core/remote/iroh/metadata.js.map +1 -0
  364. package/dist/core/remote/iroh/outbound-filter.d.ts +29 -0
  365. package/dist/core/remote/iroh/outbound-filter.d.ts.map +1 -0
  366. package/dist/core/remote/iroh/outbound-filter.js +692 -0
  367. package/dist/core/remote/iroh/outbound-filter.js.map +1 -0
  368. package/dist/core/remote/iroh/protocol.d.ts +60 -0
  369. package/dist/core/remote/iroh/protocol.d.ts.map +1 -0
  370. package/dist/core/remote/iroh/protocol.js +204 -0
  371. package/dist/core/remote/iroh/protocol.js.map +1 -0
  372. package/dist/core/remote/iroh/push.d.ts +179 -0
  373. package/dist/core/remote/iroh/push.d.ts.map +1 -0
  374. package/dist/core/remote/iroh/push.js +662 -0
  375. package/dist/core/remote/iroh/push.js.map +1 -0
  376. package/dist/core/remote/iroh/qr.d.ts +12 -0
  377. package/dist/core/remote/iroh/qr.d.ts.map +1 -0
  378. package/dist/core/remote/iroh/qr.js +27 -0
  379. package/dist/core/remote/iroh/qr.js.map +1 -0
  380. package/dist/core/remote/iroh/rpc-command-filter.d.ts +47 -0
  381. package/dist/core/remote/iroh/rpc-command-filter.d.ts.map +1 -0
  382. package/dist/core/remote/iroh/rpc-command-filter.js +188 -0
  383. package/dist/core/remote/iroh/rpc-command-filter.js.map +1 -0
  384. package/dist/core/remote/iroh/rpc-transport.d.ts +21 -0
  385. package/dist/core/remote/iroh/rpc-transport.d.ts.map +1 -0
  386. package/dist/core/remote/iroh/rpc-transport.js +106 -0
  387. package/dist/core/remote/iroh/rpc-transport.js.map +1 -0
  388. package/dist/core/remote/iroh/state-manager.d.ts +141 -0
  389. package/dist/core/remote/iroh/state-manager.d.ts.map +1 -0
  390. package/dist/core/remote/iroh/state-manager.js +744 -0
  391. package/dist/core/remote/iroh/state-manager.js.map +1 -0
  392. package/dist/core/remote/iroh/state.d.ts +141 -0
  393. package/dist/core/remote/iroh/state.d.ts.map +1 -0
  394. package/dist/core/remote/iroh/state.js +433 -0
  395. package/dist/core/remote/iroh/state.js.map +1 -0
  396. package/dist/core/remote/iroh/ticket.d.ts +46 -0
  397. package/dist/core/remote/iroh/ticket.d.ts.map +1 -0
  398. package/dist/core/remote/iroh/ticket.js +267 -0
  399. package/dist/core/remote/iroh/ticket.js.map +1 -0
  400. package/dist/core/remote/iroh/transcript-text.d.ts +8 -0
  401. package/dist/core/remote/iroh/transcript-text.d.ts.map +1 -0
  402. package/dist/core/remote/iroh/transcript-text.js +26 -0
  403. package/dist/core/remote/iroh/transcript-text.js.map +1 -0
  404. package/dist/core/remote/iroh/workspace-rpc.d.ts +31 -0
  405. package/dist/core/remote/iroh/workspace-rpc.d.ts.map +1 -0
  406. package/dist/core/remote/iroh/workspace-rpc.js +73 -0
  407. package/dist/core/remote/iroh/workspace-rpc.js.map +1 -0
  408. package/dist/core/remote/iroh/workspace.d.ts +16 -0
  409. package/dist/core/remote/iroh/workspace.d.ts.map +1 -0
  410. package/dist/core/remote/iroh/workspace.js +104 -0
  411. package/dist/core/remote/iroh/workspace.js.map +1 -0
  412. package/dist/core/remote/iroh/worktree-rpc.d.ts +83 -0
  413. package/dist/core/remote/iroh/worktree-rpc.d.ts.map +1 -0
  414. package/dist/core/remote/iroh/worktree-rpc.js +148 -0
  415. package/dist/core/remote/iroh/worktree-rpc.js.map +1 -0
  416. package/dist/core/resolve-config-value.d.ts +30 -0
  417. package/dist/core/resolve-config-value.d.ts.map +1 -0
  418. package/dist/core/resolve-config-value.js +245 -0
  419. package/dist/core/resolve-config-value.js.map +1 -0
  420. package/dist/core/resource-loader.d.ts +214 -0
  421. package/dist/core/resource-loader.d.ts.map +1 -0
  422. package/dist/core/resource-loader.js +824 -0
  423. package/dist/core/resource-loader.js.map +1 -0
  424. package/dist/core/review.d.ts +318 -0
  425. package/dist/core/review.d.ts.map +1 -0
  426. package/dist/core/review.js +1271 -0
  427. package/dist/core/review.js.map +1 -0
  428. package/dist/core/rpc/duplex-write-gate.d.ts +29 -0
  429. package/dist/core/rpc/duplex-write-gate.d.ts.map +1 -0
  430. package/dist/core/rpc/duplex-write-gate.js +124 -0
  431. package/dist/core/rpc/duplex-write-gate.js.map +1 -0
  432. package/dist/core/rpc/index.d.ts +6 -0
  433. package/dist/core/rpc/index.d.ts.map +1 -0
  434. package/dist/core/rpc/index.js +5 -0
  435. package/dist/core/rpc/index.js.map +1 -0
  436. package/dist/core/rpc/iroh-transport.d.ts +58 -0
  437. package/dist/core/rpc/iroh-transport.d.ts.map +1 -0
  438. package/dist/core/rpc/iroh-transport.js +278 -0
  439. package/dist/core/rpc/iroh-transport.js.map +1 -0
  440. package/dist/core/rpc/jsonl.d.ts +17 -0
  441. package/dist/core/rpc/jsonl.d.ts.map +1 -0
  442. package/dist/core/rpc/jsonl.js +49 -0
  443. package/dist/core/rpc/jsonl.js.map +1 -0
  444. package/dist/core/rpc/loopback-transport.d.ts +14 -0
  445. package/dist/core/rpc/loopback-transport.d.ts.map +1 -0
  446. package/dist/core/rpc/loopback-transport.js +120 -0
  447. package/dist/core/rpc/loopback-transport.js.map +1 -0
  448. package/dist/core/rpc/transcript.d.ts +37 -0
  449. package/dist/core/rpc/transcript.d.ts.map +1 -0
  450. package/dist/core/rpc/transcript.js +624 -0
  451. package/dist/core/rpc/transcript.js.map +1 -0
  452. package/dist/core/rpc/transport.d.ts +41 -0
  453. package/dist/core/rpc/transport.d.ts.map +1 -0
  454. package/dist/core/rpc/transport.js +155 -0
  455. package/dist/core/rpc/transport.js.map +1 -0
  456. package/dist/core/rpc/types.d.ts +1254 -0
  457. package/dist/core/rpc/types.d.ts.map +1 -0
  458. package/dist/core/rpc/types.js +8 -0
  459. package/dist/core/rpc/types.js.map +1 -0
  460. package/dist/core/rpc/ui-action-args.d.ts +3 -0
  461. package/dist/core/rpc/ui-action-args.d.ts.map +1 -0
  462. package/dist/core/rpc/ui-action-args.js +66 -0
  463. package/dist/core/rpc/ui-action-args.js.map +1 -0
  464. package/dist/core/rpc/ui-actions.d.ts +43 -0
  465. package/dist/core/rpc/ui-actions.d.ts.map +1 -0
  466. package/dist/core/rpc/ui-actions.js +362 -0
  467. package/dist/core/rpc/ui-actions.js.map +1 -0
  468. package/dist/core/sdk.d.ts +138 -0
  469. package/dist/core/sdk.d.ts.map +1 -0
  470. package/dist/core/sdk.js +324 -0
  471. package/dist/core/sdk.js.map +1 -0
  472. package/dist/core/session-cwd.d.ts +19 -0
  473. package/dist/core/session-cwd.d.ts.map +1 -0
  474. package/dist/core/session-cwd.js +38 -0
  475. package/dist/core/session-cwd.js.map +1 -0
  476. package/dist/core/session-manager.d.ts +346 -0
  477. package/dist/core/session-manager.d.ts.map +1 -0
  478. package/dist/core/session-manager.js +1280 -0
  479. package/dist/core/session-manager.js.map +1 -0
  480. package/dist/core/settings-manager.d.ts +359 -0
  481. package/dist/core/settings-manager.d.ts.map +1 -0
  482. package/dist/core/settings-manager.js +1277 -0
  483. package/dist/core/settings-manager.js.map +1 -0
  484. package/dist/core/skills.d.ts +60 -0
  485. package/dist/core/skills.d.ts.map +1 -0
  486. package/dist/core/skills.js +387 -0
  487. package/dist/core/skills.js.map +1 -0
  488. package/dist/core/slash-commands.d.ts +14 -0
  489. package/dist/core/slash-commands.d.ts.map +1 -0
  490. package/dist/core/slash-commands.js +51 -0
  491. package/dist/core/slash-commands.js.map +1 -0
  492. package/dist/core/source-info.d.ts +18 -0
  493. package/dist/core/source-info.d.ts.map +1 -0
  494. package/dist/core/source-info.js +19 -0
  495. package/dist/core/source-info.js.map +1 -0
  496. package/dist/core/subagents/delegation-scope.d.ts +47 -0
  497. package/dist/core/subagents/delegation-scope.d.ts.map +1 -0
  498. package/dist/core/subagents/delegation-scope.js +134 -0
  499. package/dist/core/subagents/delegation-scope.js.map +1 -0
  500. package/dist/core/subagents/index.d.ts +46 -0
  501. package/dist/core/subagents/index.d.ts.map +1 -0
  502. package/dist/core/subagents/index.js +369 -0
  503. package/dist/core/subagents/index.js.map +1 -0
  504. package/dist/core/subagents/manager.d.ts +183 -0
  505. package/dist/core/subagents/manager.d.ts.map +1 -0
  506. package/dist/core/subagents/manager.js +820 -0
  507. package/dist/core/subagents/manager.js.map +1 -0
  508. package/dist/core/system-prompt.d.ts +28 -0
  509. package/dist/core/system-prompt.d.ts.map +1 -0
  510. package/dist/core/system-prompt.js +180 -0
  511. package/dist/core/system-prompt.js.map +1 -0
  512. package/dist/core/telemetry.d.ts +3 -0
  513. package/dist/core/telemetry.d.ts.map +1 -0
  514. package/dist/core/telemetry.js +9 -0
  515. package/dist/core/telemetry.js.map +1 -0
  516. package/dist/core/theme/dark.json +86 -0
  517. package/dist/core/theme/discovery.d.ts +48 -0
  518. package/dist/core/theme/discovery.d.ts.map +1 -0
  519. package/dist/core/theme/discovery.js +239 -0
  520. package/dist/core/theme/discovery.js.map +1 -0
  521. package/dist/core/theme/index.d.ts +6 -0
  522. package/dist/core/theme/index.d.ts.map +1 -0
  523. package/dist/core/theme/index.js +5 -0
  524. package/dist/core/theme/index.js.map +1 -0
  525. package/dist/core/theme/light.json +85 -0
  526. package/dist/core/theme/runtime.d.ts +55 -0
  527. package/dist/core/theme/runtime.d.ts.map +1 -0
  528. package/dist/core/theme/runtime.js +555 -0
  529. package/dist/core/theme/runtime.js.map +1 -0
  530. package/dist/core/theme/theme-schema.json +335 -0
  531. package/dist/core/theme/theme-service.d.ts +37 -0
  532. package/dist/core/theme/theme-service.d.ts.map +1 -0
  533. package/dist/core/theme/theme-service.js +222 -0
  534. package/dist/core/theme/theme-service.js.map +1 -0
  535. package/dist/core/theme/theme.d.ts +100 -0
  536. package/dist/core/theme/theme.d.ts.map +1 -0
  537. package/dist/core/theme/theme.js +243 -0
  538. package/dist/core/theme/theme.js.map +1 -0
  539. package/dist/core/theme/tokens.d.ts +20 -0
  540. package/dist/core/theme/tokens.d.ts.map +1 -0
  541. package/dist/core/theme/tokens.js +178 -0
  542. package/dist/core/theme/tokens.js.map +1 -0
  543. package/dist/core/theme/types.d.ts +21 -0
  544. package/dist/core/theme/types.d.ts.map +1 -0
  545. package/dist/core/theme/types.js +2 -0
  546. package/dist/core/theme/types.js.map +1 -0
  547. package/dist/core/timings.d.ts +8 -0
  548. package/dist/core/timings.d.ts.map +1 -0
  549. package/dist/core/timings.js +31 -0
  550. package/dist/core/timings.js.map +1 -0
  551. package/dist/core/tools/bash.d.ts +68 -0
  552. package/dist/core/tools/bash.d.ts.map +1 -0
  553. package/dist/core/tools/bash.js +345 -0
  554. package/dist/core/tools/bash.js.map +1 -0
  555. package/dist/core/tools/diagnostics-provider.d.ts +12 -0
  556. package/dist/core/tools/diagnostics-provider.d.ts.map +1 -0
  557. package/dist/core/tools/diagnostics-provider.js +2 -0
  558. package/dist/core/tools/diagnostics-provider.js.map +1 -0
  559. package/dist/core/tools/edit-diff.d.ts +77 -0
  560. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  561. package/dist/core/tools/edit-diff.js +506 -0
  562. package/dist/core/tools/edit-diff.js.map +1 -0
  563. package/dist/core/tools/edit.d.ts +56 -0
  564. package/dist/core/tools/edit.d.ts.map +1 -0
  565. package/dist/core/tools/edit.js +300 -0
  566. package/dist/core/tools/edit.js.map +1 -0
  567. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  568. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  569. package/dist/core/tools/file-mutation-queue.js +52 -0
  570. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  571. package/dist/core/tools/find.d.ts +35 -0
  572. package/dist/core/tools/find.d.ts.map +1 -0
  573. package/dist/core/tools/find.js +337 -0
  574. package/dist/core/tools/find.js.map +1 -0
  575. package/dist/core/tools/grep.d.ts +37 -0
  576. package/dist/core/tools/grep.d.ts.map +1 -0
  577. package/dist/core/tools/grep.js +305 -0
  578. package/dist/core/tools/grep.js.map +1 -0
  579. package/dist/core/tools/index.d.ts +56 -0
  580. package/dist/core/tools/index.d.ts.map +1 -0
  581. package/dist/core/tools/index.js +174 -0
  582. package/dist/core/tools/index.js.map +1 -0
  583. package/dist/core/tools/ls.d.ts +37 -0
  584. package/dist/core/tools/ls.d.ts.map +1 -0
  585. package/dist/core/tools/ls.js +167 -0
  586. package/dist/core/tools/ls.js.map +1 -0
  587. package/dist/core/tools/lsp.d.ts +59 -0
  588. package/dist/core/tools/lsp.d.ts.map +1 -0
  589. package/dist/core/tools/lsp.js +157 -0
  590. package/dist/core/tools/lsp.js.map +1 -0
  591. package/dist/core/tools/output-accumulator.d.ts +52 -0
  592. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  593. package/dist/core/tools/output-accumulator.js +184 -0
  594. package/dist/core/tools/output-accumulator.js.map +1 -0
  595. package/dist/core/tools/path-utils.d.ts +10 -0
  596. package/dist/core/tools/path-utils.d.ts.map +1 -0
  597. package/dist/core/tools/path-utils.js +99 -0
  598. package/dist/core/tools/path-utils.js.map +1 -0
  599. package/dist/core/tools/read.d.ts +35 -0
  600. package/dist/core/tools/read.d.ts.map +1 -0
  601. package/dist/core/tools/read.js +292 -0
  602. package/dist/core/tools/read.js.map +1 -0
  603. package/dist/core/tools/render-utils.d.ts +26 -0
  604. package/dist/core/tools/render-utils.d.ts.map +1 -0
  605. package/dist/core/tools/render-utils.js +69 -0
  606. package/dist/core/tools/render-utils.js.map +1 -0
  607. package/dist/core/tools/subagent.d.ts +219 -0
  608. package/dist/core/tools/subagent.d.ts.map +1 -0
  609. package/dist/core/tools/subagent.js +1445 -0
  610. package/dist/core/tools/subagent.js.map +1 -0
  611. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  612. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  613. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  614. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  615. package/dist/core/tools/truncate.d.ts +70 -0
  616. package/dist/core/tools/truncate.d.ts.map +1 -0
  617. package/dist/core/tools/truncate.js +215 -0
  618. package/dist/core/tools/truncate.js.map +1 -0
  619. package/dist/core/tools/web-search.d.ts +69 -0
  620. package/dist/core/tools/web-search.d.ts.map +1 -0
  621. package/dist/core/tools/web-search.js +634 -0
  622. package/dist/core/tools/web-search.js.map +1 -0
  623. package/dist/core/tools/write.d.ts +33 -0
  624. package/dist/core/tools/write.d.ts.map +1 -0
  625. package/dist/core/tools/write.js +210 -0
  626. package/dist/core/tools/write.js.map +1 -0
  627. package/dist/core/trust-manager.d.ts +36 -0
  628. package/dist/core/trust-manager.d.ts.map +1 -0
  629. package/dist/core/trust-manager.js +220 -0
  630. package/dist/core/trust-manager.js.map +1 -0
  631. package/dist/daemon/cli.d.ts +8 -0
  632. package/dist/daemon/cli.d.ts.map +1 -0
  633. package/dist/daemon/cli.js +468 -0
  634. package/dist/daemon/cli.js.map +1 -0
  635. package/dist/daemon/control-client.d.ts +60 -0
  636. package/dist/daemon/control-client.d.ts.map +1 -0
  637. package/dist/daemon/control-client.js +411 -0
  638. package/dist/daemon/control-client.js.map +1 -0
  639. package/dist/daemon/control-protocol.d.ts +507 -0
  640. package/dist/daemon/control-protocol.d.ts.map +1 -0
  641. package/dist/daemon/control-protocol.js +395 -0
  642. package/dist/daemon/control-protocol.js.map +1 -0
  643. package/dist/daemon/control-server.d.ts +77 -0
  644. package/dist/daemon/control-server.d.ts.map +1 -0
  645. package/dist/daemon/control-server.js +327 -0
  646. package/dist/daemon/control-server.js.map +1 -0
  647. package/dist/daemon/conversation-commands.d.ts +176 -0
  648. package/dist/daemon/conversation-commands.d.ts.map +1 -0
  649. package/dist/daemon/conversation-commands.js +1268 -0
  650. package/dist/daemon/conversation-commands.js.map +1 -0
  651. package/dist/daemon/daemon-lock.d.ts +27 -0
  652. package/dist/daemon/daemon-lock.d.ts.map +1 -0
  653. package/dist/daemon/daemon-lock.js +238 -0
  654. package/dist/daemon/daemon-lock.js.map +1 -0
  655. package/dist/daemon/handshake-responses.d.ts +47 -0
  656. package/dist/daemon/handshake-responses.d.ts.map +1 -0
  657. package/dist/daemon/handshake-responses.js +113 -0
  658. package/dist/daemon/handshake-responses.js.map +1 -0
  659. package/dist/daemon/integrated-runtimes.d.ts +137 -0
  660. package/dist/daemon/integrated-runtimes.d.ts.map +1 -0
  661. package/dist/daemon/integrated-runtimes.js +763 -0
  662. package/dist/daemon/integrated-runtimes.js.map +1 -0
  663. package/dist/daemon/iroh-native.d.ts +76 -0
  664. package/dist/daemon/iroh-native.d.ts.map +1 -0
  665. package/dist/daemon/iroh-native.js +18 -0
  666. package/dist/daemon/iroh-native.js.map +1 -0
  667. package/dist/daemon/iroh-resource-guard.d.ts +57 -0
  668. package/dist/daemon/iroh-resource-guard.d.ts.map +1 -0
  669. package/dist/daemon/iroh-resource-guard.js +134 -0
  670. package/dist/daemon/iroh-resource-guard.js.map +1 -0
  671. package/dist/daemon/iroh-service.d.ts +51 -0
  672. package/dist/daemon/iroh-service.d.ts.map +1 -0
  673. package/dist/daemon/iroh-service.js +2604 -0
  674. package/dist/daemon/iroh-service.js.map +1 -0
  675. package/dist/daemon/keep-awake.d.ts +62 -0
  676. package/dist/daemon/keep-awake.d.ts.map +1 -0
  677. package/dist/daemon/keep-awake.js +190 -0
  678. package/dist/daemon/keep-awake.js.map +1 -0
  679. package/dist/daemon/lease-broker.d.ts +139 -0
  680. package/dist/daemon/lease-broker.d.ts.map +1 -0
  681. package/dist/daemon/lease-broker.js +504 -0
  682. package/dist/daemon/lease-broker.js.map +1 -0
  683. package/dist/daemon/log.d.ts +16 -0
  684. package/dist/daemon/log.d.ts.map +1 -0
  685. package/dist/daemon/log.js +40 -0
  686. package/dist/daemon/log.js.map +1 -0
  687. package/dist/daemon/main.d.ts +70 -0
  688. package/dist/daemon/main.d.ts.map +1 -0
  689. package/dist/daemon/main.js +781 -0
  690. package/dist/daemon/main.js.map +1 -0
  691. package/dist/daemon/paths.d.ts +32 -0
  692. package/dist/daemon/paths.d.ts.map +1 -0
  693. package/dist/daemon/paths.js +208 -0
  694. package/dist/daemon/paths.js.map +1 -0
  695. package/dist/daemon/process-identity.d.ts +58 -0
  696. package/dist/daemon/process-identity.d.ts.map +1 -0
  697. package/dist/daemon/process-identity.js +185 -0
  698. package/dist/daemon/process-identity.js.map +1 -0
  699. package/dist/daemon/relay-stream.d.ts +89 -0
  700. package/dist/daemon/relay-stream.d.ts.map +1 -0
  701. package/dist/daemon/relay-stream.js +202 -0
  702. package/dist/daemon/relay-stream.js.map +1 -0
  703. package/dist/daemon/remote-cli.d.ts +7 -0
  704. package/dist/daemon/remote-cli.d.ts.map +1 -0
  705. package/dist/daemon/remote-cli.js +774 -0
  706. package/dist/daemon/remote-cli.js.map +1 -0
  707. package/dist/daemon/service-install.d.ts +43 -0
  708. package/dist/daemon/service-install.d.ts.map +1 -0
  709. package/dist/daemon/service-install.js +198 -0
  710. package/dist/daemon/service-install.js.map +1 -0
  711. package/dist/daemon/session-target.d.ts +62 -0
  712. package/dist/daemon/session-target.d.ts.map +1 -0
  713. package/dist/daemon/session-target.js +66 -0
  714. package/dist/daemon/session-target.js.map +1 -0
  715. package/dist/daemon/spawn.d.ts +53 -0
  716. package/dist/daemon/spawn.d.ts.map +1 -0
  717. package/dist/daemon/spawn.js +205 -0
  718. package/dist/daemon/spawn.js.map +1 -0
  719. package/dist/daemon/state.d.ts +145 -0
  720. package/dist/daemon/state.d.ts.map +1 -0
  721. package/dist/daemon/state.js +454 -0
  722. package/dist/daemon/state.js.map +1 -0
  723. package/dist/daemon/theme-push.d.ts +23 -0
  724. package/dist/daemon/theme-push.d.ts.map +1 -0
  725. package/dist/daemon/theme-push.js +30 -0
  726. package/dist/daemon/theme-push.js.map +1 -0
  727. package/dist/daemon/viewer-feed.d.ts +42 -0
  728. package/dist/daemon/viewer-feed.d.ts.map +1 -0
  729. package/dist/daemon/viewer-feed.js +138 -0
  730. package/dist/daemon/viewer-feed.js.map +1 -0
  731. package/dist/daemon/workspace-directory.d.ts +35 -0
  732. package/dist/daemon/workspace-directory.d.ts.map +1 -0
  733. package/dist/daemon/workspace-directory.js +105 -0
  734. package/dist/daemon/workspace-directory.js.map +1 -0
  735. package/dist/daemon/workspace-streams.d.ts +70 -0
  736. package/dist/daemon/workspace-streams.d.ts.map +1 -0
  737. package/dist/daemon/workspace-streams.js +289 -0
  738. package/dist/daemon/workspace-streams.js.map +1 -0
  739. package/dist/daemon/worktree-manager.d.ts +219 -0
  740. package/dist/daemon/worktree-manager.d.ts.map +1 -0
  741. package/dist/daemon/worktree-manager.js +1204 -0
  742. package/dist/daemon/worktree-manager.js.map +1 -0
  743. package/dist/index.d.ts +44 -0
  744. package/dist/index.d.ts.map +1 -0
  745. package/dist/index.js +57 -0
  746. package/dist/index.js.map +1 -0
  747. package/dist/main.d.ts +12 -0
  748. package/dist/main.d.ts.map +1 -0
  749. package/dist/main.js +773 -0
  750. package/dist/main.js.map +1 -0
  751. package/dist/mcp-cli.d.ts +6 -0
  752. package/dist/mcp-cli.d.ts.map +1 -0
  753. package/dist/mcp-cli.js +347 -0
  754. package/dist/mcp-cli.js.map +1 -0
  755. package/dist/migrations.d.ts +33 -0
  756. package/dist/migrations.d.ts.map +1 -0
  757. package/dist/migrations.js +281 -0
  758. package/dist/migrations.js.map +1 -0
  759. package/dist/modes/index.d.ts +13 -0
  760. package/dist/modes/index.d.ts.map +1 -0
  761. package/dist/modes/index.js +12 -0
  762. package/dist/modes/index.js.map +1 -0
  763. package/dist/modes/interactive/components/armin.d.ts +34 -0
  764. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  765. package/dist/modes/interactive/components/armin.js +333 -0
  766. package/dist/modes/interactive/components/armin.js.map +1 -0
  767. package/dist/modes/interactive/components/assistant-message.d.ts +22 -0
  768. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  769. package/dist/modes/interactive/components/assistant-message.js +129 -0
  770. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  771. package/dist/modes/interactive/components/bash-execution.d.ts +39 -0
  772. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  773. package/dist/modes/interactive/components/bash-execution.js +212 -0
  774. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  775. package/dist/modes/interactive/components/bordered-loader.d.ts +17 -0
  776. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  777. package/dist/modes/interactive/components/bordered-loader.js +57 -0
  778. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  779. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  780. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  781. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  782. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  783. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  784. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  785. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  786. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  787. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  788. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  789. package/dist/modes/interactive/components/config-selector.js +510 -0
  790. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  791. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  792. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  793. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  794. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  795. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  796. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  797. package/dist/modes/interactive/components/custom-editor.js +70 -0
  798. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  799. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  800. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  801. package/dist/modes/interactive/components/custom-message.js +76 -0
  802. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  803. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  804. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  805. package/dist/modes/interactive/components/daxnuts.js +140 -0
  806. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  807. package/dist/modes/interactive/components/diff.d.ts +12 -0
  808. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  809. package/dist/modes/interactive/components/diff.js +133 -0
  810. package/dist/modes/interactive/components/diff.js.map +1 -0
  811. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  812. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  813. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  814. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  815. package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
  816. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  817. package/dist/modes/interactive/components/extension-editor.js +116 -0
  818. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  819. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  820. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  821. package/dist/modes/interactive/components/extension-input.js +61 -0
  822. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  823. package/dist/modes/interactive/components/extension-selector.d.ts +27 -0
  824. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  825. package/dist/modes/interactive/components/extension-selector.js +98 -0
  826. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  827. package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  828. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  829. package/dist/modes/interactive/components/first-time-setup.js +103 -0
  830. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  831. package/dist/modes/interactive/components/footer.d.ts +27 -0
  832. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  833. package/dist/modes/interactive/components/footer.js +180 -0
  834. package/dist/modes/interactive/components/footer.js.map +1 -0
  835. package/dist/modes/interactive/components/hotkeys.d.ts +24 -0
  836. package/dist/modes/interactive/components/hotkeys.d.ts.map +1 -0
  837. package/dist/modes/interactive/components/hotkeys.js +97 -0
  838. package/dist/modes/interactive/components/hotkeys.js.map +1 -0
  839. package/dist/modes/interactive/components/index.d.ts +35 -0
  840. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  841. package/dist/modes/interactive/components/index.js +36 -0
  842. package/dist/modes/interactive/components/index.js.map +1 -0
  843. package/dist/modes/interactive/components/keybinding-hints.d.ts +19 -0
  844. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  845. package/dist/modes/interactive/components/keybinding-hints.js +48 -0
  846. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  847. package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  848. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  849. package/dist/modes/interactive/components/login-dialog.js +179 -0
  850. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  851. package/dist/modes/interactive/components/logo.d.ts +25 -0
  852. package/dist/modes/interactive/components/logo.d.ts.map +1 -0
  853. package/dist/modes/interactive/components/logo.js +89 -0
  854. package/dist/modes/interactive/components/logo.js.map +1 -0
  855. package/dist/modes/interactive/components/model-selector.d.ts +47 -0
  856. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  857. package/dist/modes/interactive/components/model-selector.js +278 -0
  858. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  859. package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
  860. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  861. package/dist/modes/interactive/components/oauth-selector.js +165 -0
  862. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  863. package/dist/modes/interactive/components/remote-control-center.d.ts +110 -0
  864. package/dist/modes/interactive/components/remote-control-center.d.ts.map +1 -0
  865. package/dist/modes/interactive/components/remote-control-center.js +1217 -0
  866. package/dist/modes/interactive/components/remote-control-center.js.map +1 -0
  867. package/dist/modes/interactive/components/review-tools-selector.d.ts +24 -0
  868. package/dist/modes/interactive/components/review-tools-selector.d.ts.map +1 -0
  869. package/dist/modes/interactive/components/review-tools-selector.js +93 -0
  870. package/dist/modes/interactive/components/review-tools-selector.js.map +1 -0
  871. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  872. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  873. package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
  874. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  875. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  876. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  877. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  878. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  879. package/dist/modes/interactive/components/session-selector.d.ts +95 -0
  880. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  881. package/dist/modes/interactive/components/session-selector.js +856 -0
  882. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  883. package/dist/modes/interactive/components/settings-selector.d.ts +77 -0
  884. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  885. package/dist/modes/interactive/components/settings-selector.js +484 -0
  886. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  887. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  888. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  889. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  890. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  891. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  892. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  893. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  894. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  895. package/dist/modes/interactive/components/streaming-render-coalescer.d.ts +29 -0
  896. package/dist/modes/interactive/components/streaming-render-coalescer.d.ts.map +1 -0
  897. package/dist/modes/interactive/components/streaming-render-coalescer.js +98 -0
  898. package/dist/modes/interactive/components/streaming-render-coalescer.js.map +1 -0
  899. package/dist/modes/interactive/components/subagent-inspector.d.ts +32 -0
  900. package/dist/modes/interactive/components/subagent-inspector.d.ts.map +1 -0
  901. package/dist/modes/interactive/components/subagent-inspector.js +439 -0
  902. package/dist/modes/interactive/components/subagent-inspector.js.map +1 -0
  903. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  904. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  905. package/dist/modes/interactive/components/theme-selector.js +50 -0
  906. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  907. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  908. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  909. package/dist/modes/interactive/components/thinking-selector.js +52 -0
  910. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  911. package/dist/modes/interactive/components/tool-execution.d.ts +83 -0
  912. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  913. package/dist/modes/interactive/components/tool-execution.js +421 -0
  914. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  915. package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
  916. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  917. package/dist/modes/interactive/components/tree-selector.js +1208 -0
  918. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  919. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  920. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  921. package/dist/modes/interactive/components/trust-selector.js +91 -0
  922. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  923. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  924. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  925. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  926. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  927. package/dist/modes/interactive/components/user-message.d.ts +9 -0
  928. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  929. package/dist/modes/interactive/components/user-message.js +42 -0
  930. package/dist/modes/interactive/components/user-message.js.map +1 -0
  931. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  932. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  933. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  934. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  935. package/dist/modes/interactive/components/volt-announcement.d.ts +5 -0
  936. package/dist/modes/interactive/components/volt-announcement.d.ts.map +1 -0
  937. package/dist/modes/interactive/components/volt-announcement.js +15 -0
  938. package/dist/modes/interactive/components/volt-announcement.js.map +1 -0
  939. package/dist/modes/interactive/daemon-attach.d.ts +154 -0
  940. package/dist/modes/interactive/daemon-attach.d.ts.map +1 -0
  941. package/dist/modes/interactive/daemon-attach.js +552 -0
  942. package/dist/modes/interactive/daemon-attach.js.map +1 -0
  943. package/dist/modes/interactive/drain-viewer.d.ts +31 -0
  944. package/dist/modes/interactive/drain-viewer.d.ts.map +1 -0
  945. package/dist/modes/interactive/drain-viewer.js +166 -0
  946. package/dist/modes/interactive/drain-viewer.js.map +1 -0
  947. package/dist/modes/interactive/interactive-mode.d.ts +502 -0
  948. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  949. package/dist/modes/interactive/interactive-mode.js +7007 -0
  950. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  951. package/dist/modes/interactive/prompt-image-attachments.d.ts +34 -0
  952. package/dist/modes/interactive/prompt-image-attachments.d.ts.map +1 -0
  953. package/dist/modes/interactive/prompt-image-attachments.js +120 -0
  954. package/dist/modes/interactive/prompt-image-attachments.js.map +1 -0
  955. package/dist/modes/interactive/relay-stream-adapter.d.ts +19 -0
  956. package/dist/modes/interactive/relay-stream-adapter.d.ts.map +1 -0
  957. package/dist/modes/interactive/relay-stream-adapter.js +107 -0
  958. package/dist/modes/interactive/relay-stream-adapter.js.map +1 -0
  959. package/dist/modes/print-mode.d.ts +28 -0
  960. package/dist/modes/print-mode.d.ts.map +1 -0
  961. package/dist/modes/print-mode.js +132 -0
  962. package/dist/modes/print-mode.js.map +1 -0
  963. package/dist/modes/rpc/in-process-rpc-client.d.ts +31 -0
  964. package/dist/modes/rpc/in-process-rpc-client.d.ts.map +1 -0
  965. package/dist/modes/rpc/in-process-rpc-client.js +63 -0
  966. package/dist/modes/rpc/in-process-rpc-client.js.map +1 -0
  967. package/dist/modes/rpc/iroh-remote-agent-runtime.d.ts +61 -0
  968. package/dist/modes/rpc/iroh-remote-agent-runtime.d.ts.map +1 -0
  969. package/dist/modes/rpc/iroh-remote-agent-runtime.js +155 -0
  970. package/dist/modes/rpc/iroh-remote-agent-runtime.js.map +1 -0
  971. package/dist/modes/rpc/iroh-remote-rpc-mode.d.ts +69 -0
  972. package/dist/modes/rpc/iroh-remote-rpc-mode.d.ts.map +1 -0
  973. package/dist/modes/rpc/iroh-remote-rpc-mode.js +1223 -0
  974. package/dist/modes/rpc/iroh-remote-rpc-mode.js.map +1 -0
  975. package/dist/modes/rpc/jsonl.d.ts +2 -0
  976. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  977. package/dist/modes/rpc/jsonl.js +2 -0
  978. package/dist/modes/rpc/jsonl.js.map +1 -0
  979. package/dist/modes/rpc/rpc-client-base.d.ts +209 -0
  980. package/dist/modes/rpc/rpc-client-base.d.ts.map +1 -0
  981. package/dist/modes/rpc/rpc-client-base.js +530 -0
  982. package/dist/modes/rpc/rpc-client-base.js.map +1 -0
  983. package/dist/modes/rpc/rpc-client.d.ts +50 -0
  984. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  985. package/dist/modes/rpc/rpc-client.js +190 -0
  986. package/dist/modes/rpc/rpc-client.js.map +1 -0
  987. package/dist/modes/rpc/rpc-command-dispatcher.d.ts +43 -0
  988. package/dist/modes/rpc/rpc-command-dispatcher.d.ts.map +1 -0
  989. package/dist/modes/rpc/rpc-command-dispatcher.js +613 -0
  990. package/dist/modes/rpc/rpc-command-dispatcher.js.map +1 -0
  991. package/dist/modes/rpc/rpc-command-validation.d.ts +2 -0
  992. package/dist/modes/rpc/rpc-command-validation.d.ts.map +1 -0
  993. package/dist/modes/rpc/rpc-command-validation.js +207 -0
  994. package/dist/modes/rpc/rpc-command-validation.js.map +1 -0
  995. package/dist/modes/rpc/rpc-mode.d.ts +48 -0
  996. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  997. package/dist/modes/rpc/rpc-mode.js +1089 -0
  998. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  999. package/dist/modes/rpc/rpc-transport-client.d.ts +26 -0
  1000. package/dist/modes/rpc/rpc-transport-client.d.ts.map +1 -0
  1001. package/dist/modes/rpc/rpc-transport-client.js +76 -0
  1002. package/dist/modes/rpc/rpc-transport-client.js.map +1 -0
  1003. package/dist/modes/rpc/rpc-types.d.ts +2 -0
  1004. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  1005. package/dist/modes/rpc/rpc-types.js +2 -0
  1006. package/dist/modes/rpc/rpc-types.js.map +1 -0
  1007. package/dist/package-manager-cli.d.ts +28 -0
  1008. package/dist/package-manager-cli.d.ts.map +1 -0
  1009. package/dist/package-manager-cli.js +667 -0
  1010. package/dist/package-manager-cli.js.map +1 -0
  1011. package/dist/remote/integrated-runtime-retention.d.ts +17 -0
  1012. package/dist/remote/integrated-runtime-retention.d.ts.map +1 -0
  1013. package/dist/remote/integrated-runtime-retention.js +62 -0
  1014. package/dist/remote/integrated-runtime-retention.js.map +1 -0
  1015. package/dist/remote/iroh-native-adapter.cjs +19 -0
  1016. package/dist/sea/cli.d.ts +4 -0
  1017. package/dist/sea/cli.d.ts.map +1 -0
  1018. package/dist/sea/cli.js +4 -0
  1019. package/dist/sea/cli.js.map +1 -0
  1020. package/dist/sea/register-bedrock.d.ts +2 -0
  1021. package/dist/sea/register-bedrock.d.ts.map +1 -0
  1022. package/dist/sea/register-bedrock.js +4 -0
  1023. package/dist/sea/register-bedrock.js.map +1 -0
  1024. package/dist/store/catalog.d.ts +57 -0
  1025. package/dist/store/catalog.d.ts.map +1 -0
  1026. package/dist/store/catalog.js +331 -0
  1027. package/dist/store/catalog.js.map +1 -0
  1028. package/dist/store/inspector.d.ts +36 -0
  1029. package/dist/store/inspector.d.ts.map +1 -0
  1030. package/dist/store/inspector.js +578 -0
  1031. package/dist/store/inspector.js.map +1 -0
  1032. package/dist/store/install-plan.d.ts +26 -0
  1033. package/dist/store/install-plan.d.ts.map +1 -0
  1034. package/dist/store/install-plan.js +80 -0
  1035. package/dist/store/install-plan.js.map +1 -0
  1036. package/dist/store/render.d.ts +11 -0
  1037. package/dist/store/render.d.ts.map +1 -0
  1038. package/dist/store/render.js +153 -0
  1039. package/dist/store/render.js.map +1 -0
  1040. package/dist/store/resolver.d.ts +22 -0
  1041. package/dist/store/resolver.d.ts.map +1 -0
  1042. package/dist/store/resolver.js +207 -0
  1043. package/dist/store/resolver.js.map +1 -0
  1044. package/dist/store/store-cli.d.ts +7 -0
  1045. package/dist/store/store-cli.d.ts.map +1 -0
  1046. package/dist/store/store-cli.js +636 -0
  1047. package/dist/store/store-cli.js.map +1 -0
  1048. package/dist/store/targets.d.ts +21 -0
  1049. package/dist/store/targets.d.ts.map +1 -0
  1050. package/dist/store/targets.js +55 -0
  1051. package/dist/store/targets.js.map +1 -0
  1052. package/dist/utils/ansi.d.ts +2 -0
  1053. package/dist/utils/ansi.d.ts.map +1 -0
  1054. package/dist/utils/ansi.js +52 -0
  1055. package/dist/utils/ansi.js.map +1 -0
  1056. package/dist/utils/changelog.d.ts +22 -0
  1057. package/dist/utils/changelog.d.ts.map +1 -0
  1058. package/dist/utils/changelog.js +165 -0
  1059. package/dist/utils/changelog.js.map +1 -0
  1060. package/dist/utils/child-process.d.ts +18 -0
  1061. package/dist/utils/child-process.d.ts.map +1 -0
  1062. package/dist/utils/child-process.js +106 -0
  1063. package/dist/utils/child-process.js.map +1 -0
  1064. package/dist/utils/clipboard-image.d.ts +11 -0
  1065. package/dist/utils/clipboard-image.d.ts.map +1 -0
  1066. package/dist/utils/clipboard-image.js +245 -0
  1067. package/dist/utils/clipboard-image.js.map +1 -0
  1068. package/dist/utils/clipboard.d.ts +2 -0
  1069. package/dist/utils/clipboard.d.ts.map +1 -0
  1070. package/dist/utils/clipboard.js +94 -0
  1071. package/dist/utils/clipboard.js.map +1 -0
  1072. package/dist/utils/deprecation.d.ts +4 -0
  1073. package/dist/utils/deprecation.d.ts.map +1 -0
  1074. package/dist/utils/deprecation.js +13 -0
  1075. package/dist/utils/deprecation.js.map +1 -0
  1076. package/dist/utils/durable-atomic-write.d.ts +46 -0
  1077. package/dist/utils/durable-atomic-write.d.ts.map +1 -0
  1078. package/dist/utils/durable-atomic-write.js +104 -0
  1079. package/dist/utils/durable-atomic-write.js.map +1 -0
  1080. package/dist/utils/frontmatter.d.ts +8 -0
  1081. package/dist/utils/frontmatter.d.ts.map +1 -0
  1082. package/dist/utils/frontmatter.js +26 -0
  1083. package/dist/utils/frontmatter.js.map +1 -0
  1084. package/dist/utils/fs-watch.d.ts +5 -0
  1085. package/dist/utils/fs-watch.d.ts.map +1 -0
  1086. package/dist/utils/fs-watch.js +25 -0
  1087. package/dist/utils/fs-watch.js.map +1 -0
  1088. package/dist/utils/git.d.ts +26 -0
  1089. package/dist/utils/git.d.ts.map +1 -0
  1090. package/dist/utils/git.js +195 -0
  1091. package/dist/utils/git.js.map +1 -0
  1092. package/dist/utils/html.d.ts +7 -0
  1093. package/dist/utils/html.d.ts.map +1 -0
  1094. package/dist/utils/html.js +40 -0
  1095. package/dist/utils/html.js.map +1 -0
  1096. package/dist/utils/ignore-files.d.ts +5 -0
  1097. package/dist/utils/ignore-files.d.ts.map +1 -0
  1098. package/dist/utils/ignore-files.js +58 -0
  1099. package/dist/utils/ignore-files.js.map +1 -0
  1100. package/dist/utils/image-codec.d.ts +22 -0
  1101. package/dist/utils/image-codec.d.ts.map +1 -0
  1102. package/dist/utils/image-codec.js +35 -0
  1103. package/dist/utils/image-codec.js.map +1 -0
  1104. package/dist/utils/image-convert.d.ts +9 -0
  1105. package/dist/utils/image-convert.d.ts.map +1 -0
  1106. package/dist/utils/image-convert.js +26 -0
  1107. package/dist/utils/image-convert.js.map +1 -0
  1108. package/dist/utils/image-resize-core.d.ts +31 -0
  1109. package/dist/utils/image-resize-core.d.ts.map +1 -0
  1110. package/dist/utils/image-resize-core.js +181 -0
  1111. package/dist/utils/image-resize-core.js.map +1 -0
  1112. package/dist/utils/image-resize-worker.d.ts +2 -0
  1113. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  1114. package/dist/utils/image-resize-worker.js +31 -0
  1115. package/dist/utils/image-resize-worker.js.map +1 -0
  1116. package/dist/utils/image-resize.d.ts +15 -0
  1117. package/dist/utils/image-resize.d.ts.map +1 -0
  1118. package/dist/utils/image-resize.js +92 -0
  1119. package/dist/utils/image-resize.js.map +1 -0
  1120. package/dist/utils/json.d.ts +3 -0
  1121. package/dist/utils/json.d.ts.map +1 -0
  1122. package/dist/utils/json.js +7 -0
  1123. package/dist/utils/json.js.map +1 -0
  1124. package/dist/utils/mime.d.ts +3 -0
  1125. package/dist/utils/mime.d.ts.map +1 -0
  1126. package/dist/utils/mime.js +69 -0
  1127. package/dist/utils/mime.js.map +1 -0
  1128. package/dist/utils/npm-spec.d.ts +9 -0
  1129. package/dist/utils/npm-spec.d.ts.map +1 -0
  1130. package/dist/utils/npm-spec.js +15 -0
  1131. package/dist/utils/npm-spec.js.map +1 -0
  1132. package/dist/utils/open-browser.d.ts +9 -0
  1133. package/dist/utils/open-browser.d.ts.map +1 -0
  1134. package/dist/utils/open-browser.js +22 -0
  1135. package/dist/utils/open-browser.js.map +1 -0
  1136. package/dist/utils/paths.d.ts +31 -0
  1137. package/dist/utils/paths.d.ts.map +1 -0
  1138. package/dist/utils/paths.js +92 -0
  1139. package/dist/utils/paths.js.map +1 -0
  1140. package/dist/utils/private-files.d.ts +21 -0
  1141. package/dist/utils/private-files.d.ts.map +1 -0
  1142. package/dist/utils/private-files.js +103 -0
  1143. package/dist/utils/private-files.js.map +1 -0
  1144. package/dist/utils/process-env.d.ts +2 -0
  1145. package/dist/utils/process-env.d.ts.map +1 -0
  1146. package/dist/utils/process-env.js +31 -0
  1147. package/dist/utils/process-env.js.map +1 -0
  1148. package/dist/utils/shell.d.ts +30 -0
  1149. package/dist/utils/shell.d.ts.map +1 -0
  1150. package/dist/utils/shell.js +195 -0
  1151. package/dist/utils/shell.js.map +1 -0
  1152. package/dist/utils/sleep.d.ts +5 -0
  1153. package/dist/utils/sleep.d.ts.map +1 -0
  1154. package/dist/utils/sleep.js +17 -0
  1155. package/dist/utils/sleep.js.map +1 -0
  1156. package/dist/utils/syntax-highlight.d.ts +18 -0
  1157. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  1158. package/dist/utils/syntax-highlight.js +139 -0
  1159. package/dist/utils/syntax-highlight.js.map +1 -0
  1160. package/dist/utils/tools-manager.d.ts +3 -0
  1161. package/dist/utils/tools-manager.d.ts.map +1 -0
  1162. package/dist/utils/tools-manager.js +328 -0
  1163. package/dist/utils/tools-manager.js.map +1 -0
  1164. package/dist/utils/version-check.d.ts +15 -0
  1165. package/dist/utils/version-check.d.ts.map +1 -0
  1166. package/dist/utils/version-check.js +61 -0
  1167. package/dist/utils/version-check.js.map +1 -0
  1168. package/dist/utils/volt-user-agent.d.ts +2 -0
  1169. package/dist/utils/volt-user-agent.d.ts.map +1 -0
  1170. package/dist/utils/volt-user-agent.js +5 -0
  1171. package/dist/utils/volt-user-agent.js.map +1 -0
  1172. package/dist/utils/windows-self-update.d.ts +3 -0
  1173. package/dist/utils/windows-self-update.d.ts.map +1 -0
  1174. package/dist/utils/windows-self-update.js +77 -0
  1175. package/dist/utils/windows-self-update.js.map +1 -0
  1176. package/docs/compaction.md +394 -0
  1177. package/docs/containerization.md +111 -0
  1178. package/docs/custom-provider.md +737 -0
  1179. package/docs/daemon.md +190 -0
  1180. package/docs/development.md +70 -0
  1181. package/docs/docs.json +176 -0
  1182. package/docs/extensions.md +2692 -0
  1183. package/docs/images/exy.png +0 -0
  1184. package/docs/images/interactive-mode.png +0 -0
  1185. package/docs/images/tree-view.png +0 -0
  1186. package/docs/index.md +82 -0
  1187. package/docs/iroh-remote-access-design.md +340 -0
  1188. package/docs/iroh-remote-protocol.md +431 -0
  1189. package/docs/json.md +87 -0
  1190. package/docs/keybindings.md +200 -0
  1191. package/docs/live-shared-session-daemon-design.md +1090 -0
  1192. package/docs/lsp.md +143 -0
  1193. package/docs/mcp.md +1044 -0
  1194. package/docs/models.md +495 -0
  1195. package/docs/packages.md +230 -0
  1196. package/docs/prompt-templates.md +108 -0
  1197. package/docs/providers.md +274 -0
  1198. package/docs/quickstart.md +165 -0
  1199. package/docs/rpc.md +2050 -0
  1200. package/docs/sdk.md +1267 -0
  1201. package/docs/security.md +139 -0
  1202. package/docs/session-format.md +412 -0
  1203. package/docs/sessions.md +145 -0
  1204. package/docs/settings.md +371 -0
  1205. package/docs/shell-aliases.md +13 -0
  1206. package/docs/skills.md +243 -0
  1207. package/docs/subagents-design.md +419 -0
  1208. package/docs/terminal-setup.md +148 -0
  1209. package/docs/termux.md +127 -0
  1210. package/docs/themes.md +295 -0
  1211. package/docs/tla/ClientAuth.cfg +16 -0
  1212. package/docs/tla/ClientAuth.tla +205 -0
  1213. package/docs/tla/ClientConn.cfg +16 -0
  1214. package/docs/tla/ClientConn.tla +265 -0
  1215. package/docs/tla/LeaseBroker.cfg +43 -0
  1216. package/docs/tla/LeaseBroker.tla +563 -0
  1217. package/docs/tla/PLAN.md +240 -0
  1218. package/docs/tla/PushOrdering.cfg +17 -0
  1219. package/docs/tla/PushOrdering.tla +183 -0
  1220. package/docs/tla/README.md +205 -0
  1221. package/docs/tla/RelayViewer.cfg +26 -0
  1222. package/docs/tla/RelayViewer.tla +299 -0
  1223. package/docs/tla/SessionTarget.cfg +18 -0
  1224. package/docs/tla/SessionTarget.tla +192 -0
  1225. package/docs/tla/check.sh +34 -0
  1226. package/docs/tmux.md +63 -0
  1227. package/docs/tui.md +949 -0
  1228. package/docs/usage.md +482 -0
  1229. package/docs/windows.md +17 -0
  1230. package/docs/worktrees-design.md +605 -0
  1231. package/examples/README.md +28 -0
  1232. package/examples/extensions/README.md +211 -0
  1233. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  1234. package/examples/extensions/bash-spawn-hook.ts +30 -0
  1235. package/examples/extensions/bookmark.ts +50 -0
  1236. package/examples/extensions/border-status-editor.ts +150 -0
  1237. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  1238. package/examples/extensions/claude-rules.ts +86 -0
  1239. package/examples/extensions/commands.ts +72 -0
  1240. package/examples/extensions/confirm-destructive.ts +59 -0
  1241. package/examples/extensions/custom-compaction.ts +127 -0
  1242. package/examples/extensions/custom-footer.ts +64 -0
  1243. package/examples/extensions/custom-header.ts +72 -0
  1244. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  1245. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  1246. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  1247. package/examples/extensions/custom-provider-gitlab-duo/index.ts +400 -0
  1248. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  1249. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  1250. package/examples/extensions/dirty-repo-guard.ts +56 -0
  1251. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  1252. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  1253. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  1254. package/examples/extensions/dynamic-resources/index.ts +15 -0
  1255. package/examples/extensions/dynamic-tools.ts +74 -0
  1256. package/examples/extensions/event-bus.ts +43 -0
  1257. package/examples/extensions/file-trigger.ts +41 -0
  1258. package/examples/extensions/git-checkpoint.ts +53 -0
  1259. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  1260. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  1261. package/examples/extensions/gondolin/index.ts +531 -0
  1262. package/examples/extensions/gondolin/package-lock.json +185 -0
  1263. package/examples/extensions/gondolin/package.json +19 -0
  1264. package/examples/extensions/handoff.ts +191 -0
  1265. package/examples/extensions/hello.ts +26 -0
  1266. package/examples/extensions/hidden-thinking-label.ts +53 -0
  1267. package/examples/extensions/inline-bash.ts +94 -0
  1268. package/examples/extensions/input-transform-streaming.ts +39 -0
  1269. package/examples/extensions/input-transform.ts +43 -0
  1270. package/examples/extensions/interactive-shell.ts +196 -0
  1271. package/examples/extensions/mac-system-theme.ts +47 -0
  1272. package/examples/extensions/message-renderer.ts +59 -0
  1273. package/examples/extensions/minimal-mode.ts +426 -0
  1274. package/examples/extensions/modal-editor.ts +85 -0
  1275. package/examples/extensions/model-status.ts +31 -0
  1276. package/examples/extensions/notify.ts +55 -0
  1277. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  1278. package/examples/extensions/overlay-test.ts +153 -0
  1279. package/examples/extensions/permission-gate.ts +34 -0
  1280. package/examples/extensions/pirate.ts +47 -0
  1281. package/examples/extensions/plan-mode/README.md +65 -0
  1282. package/examples/extensions/plan-mode/index.ts +340 -0
  1283. package/examples/extensions/plan-mode/utils.ts +168 -0
  1284. package/examples/extensions/preset.ts +436 -0
  1285. package/examples/extensions/project-trust.ts +64 -0
  1286. package/examples/extensions/prompt-customizer.ts +97 -0
  1287. package/examples/extensions/protected-paths.ts +30 -0
  1288. package/examples/extensions/provider-payload.ts +18 -0
  1289. package/examples/extensions/qna.ts +122 -0
  1290. package/examples/extensions/question.ts +277 -0
  1291. package/examples/extensions/questionnaire.ts +440 -0
  1292. package/examples/extensions/rainbow-editor.ts +88 -0
  1293. package/examples/extensions/reload-runtime.ts +37 -0
  1294. package/examples/extensions/rpc-demo.ts +118 -0
  1295. package/examples/extensions/sandbox/index.ts +321 -0
  1296. package/examples/extensions/sandbox/package-lock.json +92 -0
  1297. package/examples/extensions/sandbox/package.json +19 -0
  1298. package/examples/extensions/send-user-message.ts +97 -0
  1299. package/examples/extensions/session-name.ts +27 -0
  1300. package/examples/extensions/shutdown-command.ts +63 -0
  1301. package/examples/extensions/snake.ts +343 -0
  1302. package/examples/extensions/space-invaders.ts +560 -0
  1303. package/examples/extensions/ssh.ts +220 -0
  1304. package/examples/extensions/status-line.ts +32 -0
  1305. package/examples/extensions/structured-output.ts +65 -0
  1306. package/examples/extensions/subagent/README.md +175 -0
  1307. package/examples/extensions/subagent/agents/planner.md +37 -0
  1308. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  1309. package/examples/extensions/subagent/agents/scout.md +50 -0
  1310. package/examples/extensions/subagent/agents/worker.md +24 -0
  1311. package/examples/extensions/subagent/agents.ts +126 -0
  1312. package/examples/extensions/subagent/index.ts +1009 -0
  1313. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  1314. package/examples/extensions/subagent/prompts/implement.md +10 -0
  1315. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  1316. package/examples/extensions/summarize.ts +206 -0
  1317. package/examples/extensions/system-prompt-header.ts +17 -0
  1318. package/examples/extensions/tic-tac-toe.ts +1008 -0
  1319. package/examples/extensions/timed-confirm.ts +70 -0
  1320. package/examples/extensions/titlebar-spinner.ts +58 -0
  1321. package/examples/extensions/todo.ts +297 -0
  1322. package/examples/extensions/tool-override.ts +144 -0
  1323. package/examples/extensions/tools.ts +146 -0
  1324. package/examples/extensions/trigger-compact.ts +50 -0
  1325. package/examples/extensions/truncated-tool.ts +195 -0
  1326. package/examples/extensions/widget-placement.ts +9 -0
  1327. package/examples/extensions/with-deps/index.ts +32 -0
  1328. package/examples/extensions/with-deps/package-lock.json +31 -0
  1329. package/examples/extensions/with-deps/package.json +22 -0
  1330. package/examples/extensions/working-indicator.ts +123 -0
  1331. package/examples/extensions/working-message-test.ts +25 -0
  1332. package/examples/remote/firebase-push-relay/README.md +79 -0
  1333. package/examples/remote/firebase-push-relay/firebase.json +12 -0
  1334. package/examples/remote/firebase-push-relay/firestore.indexes.json +11 -0
  1335. package/examples/remote/firebase-push-relay/firestore.rules +9 -0
  1336. package/examples/remote/firebase-push-relay/functions/core.js +511 -0
  1337. package/examples/remote/firebase-push-relay/functions/core.test.js +273 -0
  1338. package/examples/remote/firebase-push-relay/functions/index.js +413 -0
  1339. package/examples/remote/firebase-push-relay/functions/package-lock.json +2974 -0
  1340. package/examples/remote/firebase-push-relay/functions/package.json +18 -0
  1341. package/examples/remote/iroh-sidecar/README.md +211 -0
  1342. package/examples/remote/iroh-sidecar/client.mjs +554 -0
  1343. package/examples/remote/iroh-sidecar/common.mjs +195 -0
  1344. package/examples/remote/iroh-sidecar/host.mjs +4 -0
  1345. package/examples/remote/iroh-sidecar/package-lock.json +213 -0
  1346. package/examples/remote/iroh-sidecar/package.json +13 -0
  1347. package/examples/remote/iroh-sidecar/source-aware-run.mjs +41 -0
  1348. package/examples/rpc-extension-ui.ts +632 -0
  1349. package/examples/sdk/01-minimal.ts +26 -0
  1350. package/examples/sdk/02-custom-model.ts +53 -0
  1351. package/examples/sdk/03-custom-prompt.ts +70 -0
  1352. package/examples/sdk/04-skills.ts +55 -0
  1353. package/examples/sdk/05-tools.ts +48 -0
  1354. package/examples/sdk/06-extensions.ts +94 -0
  1355. package/examples/sdk/07-context-files.ts +42 -0
  1356. package/examples/sdk/08-prompt-templates.ts +51 -0
  1357. package/examples/sdk/09-api-keys-and-oauth.ts +52 -0
  1358. package/examples/sdk/10-settings.ts +53 -0
  1359. package/examples/sdk/11-sessions.ts +52 -0
  1360. package/examples/sdk/12-full-control.ts +78 -0
  1361. package/examples/sdk/13-session-runtime.ts +67 -0
  1362. package/examples/sdk/README.md +147 -0
  1363. package/npm-shrinkwrap.json +3442 -0
  1364. package/package.json +125 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-scope.d.ts","sourceRoot":"","sources":["../../../src/core/subagents/delegation-scope.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,+BAA+B;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC7C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACpD,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,8FAA8F;AAC9F,qBAAa,uBAAuB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAC3D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,OAAO,GAAE,8BAAmC,EAavD;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,6BAA6B,CA2CvE;IAED,KAAK,CAAC,MAAM,GAAE,OAAkD,GAAG,IAAI,CAWtE;IAED,UAAU,IAAI,IAAI,CAGjB;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIjD;IAED,QAAQ,IAAI,+BAA+B,CAa1C;IAED,OAAO,IAAI,IAAI,CAUd;IAED,OAAO,CAAC,WAAW;CAGnB","sourcesContent":["import { randomUUID } from \"node:crypto\";\n\nexport interface SubagentDelegationScopeSnapshot {\n\tid: string;\n\tstartedAt: number;\n\tstartsUsed: number;\n\tactiveDescendants: number;\n\tpeakActiveDescendants: number;\n\tmaxDepthReached: number;\n\tturnsUsed: number;\n\ttokensUsed: number;\n\tcostUsd: number;\n\taborted: boolean;\n}\n\nexport interface SubagentDelegationReservation {\n\tcommit(subagentId: string, abort: () => void): void;\n\trelease(): void;\n\trollback(): void;\n}\n\nexport interface SubagentDelegationScopeOptions {\n\tsignal?: AbortSignal;\n}\n\n/** Shared, root-owned accounting and cancellation scope for one recursive delegation tree. */\nexport class SubagentDelegationScope {\n\treadonly id: string;\n\treadonly startedAt: number;\n\treadonly signal: AbortSignal;\n\n\tprivate readonly controller = new AbortController();\n\tprivate readonly activeAborters = new Map<string, () => void>();\n\tprivate readonly externalSignal: AbortSignal | undefined;\n\tprivate readonly onExternalAbort: (() => void) | undefined;\n\tprivate startsUsed = 0;\n\tprivate activeDescendants = 0;\n\tprivate peakActiveDescendants = 0;\n\tprivate maxDepthReached = 0;\n\tprivate turnsUsed = 0;\n\tprivate tokensUsed = 0;\n\tprivate costUsd = 0;\n\tprivate disposed = false;\n\n\tconstructor(options: SubagentDelegationScopeOptions = {}) {\n\t\tthis.id = `sat_${randomUUID()}`;\n\t\tthis.startedAt = Date.now();\n\t\tthis.signal = this.controller.signal;\n\t\tthis.externalSignal = options.signal;\n\t\tthis.onExternalAbort = options.signal\n\t\t\t? () => this.abort(options.signal?.reason ?? new Error(\"Operation aborted\"))\n\t\t\t: undefined;\n\t\tif (this.externalSignal?.aborted) {\n\t\t\tthis.abort(this.externalSignal.reason ?? new Error(\"Operation aborted\"));\n\t\t} else if (this.externalSignal && this.onExternalAbort) {\n\t\t\tthis.externalSignal.addEventListener(\"abort\", this.onExternalAbort, { once: true });\n\t\t}\n\t}\n\n\treserve(agentName: string, depth: number): SubagentDelegationReservation {\n\t\tif (this.disposed) {\n\t\t\tthrow new Error(`Cannot delegate to \"${agentName}\": delegation scope ${this.id} is disposed.`);\n\t\t}\n\t\tif (this.signal.aborted) {\n\t\t\tthrow this.abortReason();\n\t\t}\n\n\t\tthis.startsUsed += 1;\n\t\tthis.activeDescendants += 1;\n\t\tthis.peakActiveDescendants = Math.max(this.peakActiveDescendants, this.activeDescendants);\n\t\tthis.maxDepthReached = Math.max(this.maxDepthReached, depth);\n\t\tlet committed = false;\n\t\tlet released = false;\n\t\tlet subagentId: string | undefined;\n\n\t\tconst release = (): void => {\n\t\t\tif (released) return;\n\t\t\treleased = true;\n\t\t\tthis.activeDescendants = Math.max(0, this.activeDescendants - 1);\n\t\t\tif (subagentId) {\n\t\t\t\tthis.activeAborters.delete(subagentId);\n\t\t\t}\n\t\t};\n\n\t\treturn {\n\t\t\tcommit: (id, abort) => {\n\t\t\t\tif (committed || released) return;\n\t\t\t\tcommitted = true;\n\t\t\t\tsubagentId = id;\n\t\t\t\tif (this.signal.aborted) {\n\t\t\t\t\tabort();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.activeAborters.set(id, abort);\n\t\t\t},\n\t\t\trelease,\n\t\t\trollback: () => {\n\t\t\t\tif (committed || released) return;\n\t\t\t\tthis.startsUsed = Math.max(0, this.startsUsed - 1);\n\t\t\t\trelease();\n\t\t\t},\n\t\t};\n\t}\n\n\tabort(reason: unknown = new Error(\"Subagent delegation aborted\")): void {\n\t\tif (!this.signal.aborted) {\n\t\t\tthis.controller.abort(reason);\n\t\t}\n\t\tfor (const abort of this.activeAborters.values()) {\n\t\t\ttry {\n\t\t\t\tabort();\n\t\t\t} catch {\n\t\t\t\t// One broken child aborter must not prevent cancellation of siblings.\n\t\t\t}\n\t\t}\n\t}\n\n\trecordTurn(): void {\n\t\tif (this.signal.aborted || this.disposed) return;\n\t\tthis.turnsUsed += 1;\n\t}\n\n\trecordUsage(tokens: number, costUsd: number): void {\n\t\tif (this.signal.aborted || this.disposed) return;\n\t\tif (Number.isFinite(tokens) && tokens > 0) this.tokensUsed += tokens;\n\t\tif (Number.isFinite(costUsd) && costUsd > 0) this.costUsd += costUsd;\n\t}\n\n\tsnapshot(): SubagentDelegationScopeSnapshot {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tstartedAt: this.startedAt,\n\t\t\tstartsUsed: this.startsUsed,\n\t\t\tactiveDescendants: this.activeDescendants,\n\t\t\tpeakActiveDescendants: this.peakActiveDescendants,\n\t\t\tmaxDepthReached: this.maxDepthReached,\n\t\t\tturnsUsed: this.turnsUsed,\n\t\t\ttokensUsed: this.tokensUsed,\n\t\t\tcostUsd: this.costUsd,\n\t\t\taborted: this.signal.aborted,\n\t\t};\n\t}\n\n\tdispose(): void {\n\t\tif (this.disposed) return;\n\t\tthis.disposed = true;\n\t\tif (this.externalSignal && this.onExternalAbort) {\n\t\t\tthis.externalSignal.removeEventListener(\"abort\", this.onExternalAbort);\n\t\t}\n\t\tif (this.activeAborters.size > 0) {\n\t\t\tthis.abort(new Error(\"Subagent delegation scope disposed\"));\n\t\t}\n\t\tthis.activeAborters.clear();\n\t}\n\n\tprivate abortReason(): Error {\n\t\treturn this.signal.reason instanceof Error ? this.signal.reason : new Error(String(this.signal.reason));\n\t}\n}\n"]}
@@ -0,0 +1,134 @@
1
+ import { randomUUID } from "node:crypto";
2
+ /** Shared, root-owned accounting and cancellation scope for one recursive delegation tree. */
3
+ export class SubagentDelegationScope {
4
+ id;
5
+ startedAt;
6
+ signal;
7
+ controller = new AbortController();
8
+ activeAborters = new Map();
9
+ externalSignal;
10
+ onExternalAbort;
11
+ startsUsed = 0;
12
+ activeDescendants = 0;
13
+ peakActiveDescendants = 0;
14
+ maxDepthReached = 0;
15
+ turnsUsed = 0;
16
+ tokensUsed = 0;
17
+ costUsd = 0;
18
+ disposed = false;
19
+ constructor(options = {}) {
20
+ this.id = `sat_${randomUUID()}`;
21
+ this.startedAt = Date.now();
22
+ this.signal = this.controller.signal;
23
+ this.externalSignal = options.signal;
24
+ this.onExternalAbort = options.signal
25
+ ? () => this.abort(options.signal?.reason ?? new Error("Operation aborted"))
26
+ : undefined;
27
+ if (this.externalSignal?.aborted) {
28
+ this.abort(this.externalSignal.reason ?? new Error("Operation aborted"));
29
+ }
30
+ else if (this.externalSignal && this.onExternalAbort) {
31
+ this.externalSignal.addEventListener("abort", this.onExternalAbort, { once: true });
32
+ }
33
+ }
34
+ reserve(agentName, depth) {
35
+ if (this.disposed) {
36
+ throw new Error(`Cannot delegate to "${agentName}": delegation scope ${this.id} is disposed.`);
37
+ }
38
+ if (this.signal.aborted) {
39
+ throw this.abortReason();
40
+ }
41
+ this.startsUsed += 1;
42
+ this.activeDescendants += 1;
43
+ this.peakActiveDescendants = Math.max(this.peakActiveDescendants, this.activeDescendants);
44
+ this.maxDepthReached = Math.max(this.maxDepthReached, depth);
45
+ let committed = false;
46
+ let released = false;
47
+ let subagentId;
48
+ const release = () => {
49
+ if (released)
50
+ return;
51
+ released = true;
52
+ this.activeDescendants = Math.max(0, this.activeDescendants - 1);
53
+ if (subagentId) {
54
+ this.activeAborters.delete(subagentId);
55
+ }
56
+ };
57
+ return {
58
+ commit: (id, abort) => {
59
+ if (committed || released)
60
+ return;
61
+ committed = true;
62
+ subagentId = id;
63
+ if (this.signal.aborted) {
64
+ abort();
65
+ return;
66
+ }
67
+ this.activeAborters.set(id, abort);
68
+ },
69
+ release,
70
+ rollback: () => {
71
+ if (committed || released)
72
+ return;
73
+ this.startsUsed = Math.max(0, this.startsUsed - 1);
74
+ release();
75
+ },
76
+ };
77
+ }
78
+ abort(reason = new Error("Subagent delegation aborted")) {
79
+ if (!this.signal.aborted) {
80
+ this.controller.abort(reason);
81
+ }
82
+ for (const abort of this.activeAborters.values()) {
83
+ try {
84
+ abort();
85
+ }
86
+ catch {
87
+ // One broken child aborter must not prevent cancellation of siblings.
88
+ }
89
+ }
90
+ }
91
+ recordTurn() {
92
+ if (this.signal.aborted || this.disposed)
93
+ return;
94
+ this.turnsUsed += 1;
95
+ }
96
+ recordUsage(tokens, costUsd) {
97
+ if (this.signal.aborted || this.disposed)
98
+ return;
99
+ if (Number.isFinite(tokens) && tokens > 0)
100
+ this.tokensUsed += tokens;
101
+ if (Number.isFinite(costUsd) && costUsd > 0)
102
+ this.costUsd += costUsd;
103
+ }
104
+ snapshot() {
105
+ return {
106
+ id: this.id,
107
+ startedAt: this.startedAt,
108
+ startsUsed: this.startsUsed,
109
+ activeDescendants: this.activeDescendants,
110
+ peakActiveDescendants: this.peakActiveDescendants,
111
+ maxDepthReached: this.maxDepthReached,
112
+ turnsUsed: this.turnsUsed,
113
+ tokensUsed: this.tokensUsed,
114
+ costUsd: this.costUsd,
115
+ aborted: this.signal.aborted,
116
+ };
117
+ }
118
+ dispose() {
119
+ if (this.disposed)
120
+ return;
121
+ this.disposed = true;
122
+ if (this.externalSignal && this.onExternalAbort) {
123
+ this.externalSignal.removeEventListener("abort", this.onExternalAbort);
124
+ }
125
+ if (this.activeAborters.size > 0) {
126
+ this.abort(new Error("Subagent delegation scope disposed"));
127
+ }
128
+ this.activeAborters.clear();
129
+ }
130
+ abortReason() {
131
+ return this.signal.reason instanceof Error ? this.signal.reason : new Error(String(this.signal.reason));
132
+ }
133
+ }
134
+ //# sourceMappingURL=delegation-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-scope.js","sourceRoot":"","sources":["../../../src/core/subagents/delegation-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyBzC,8FAA8F;AAC9F,MAAM,OAAO,uBAAuB;IAC1B,EAAE,CAAS;IACX,SAAS,CAAS;IAClB,MAAM,CAAc;IAEZ,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,cAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,cAAc,CAA0B;IACxC,eAAe,CAA2B;IACnD,UAAU,GAAG,CAAC,CAAC;IACf,iBAAiB,GAAG,CAAC,CAAC;IACtB,qBAAqB,GAAG,CAAC,CAAC;IAC1B,eAAe,GAAG,CAAC,CAAC;IACpB,SAAS,GAAG,CAAC,CAAC;IACd,UAAU,GAAG,CAAC,CAAC;IACf,OAAO,GAAG,CAAC,CAAC;IACZ,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,OAAO,GAAmC,EAAE,EAAE;QACzD,IAAI,CAAC,EAAE,GAAG,OAAO,UAAU,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM;YACpC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC5E,CAAC,CAAC,SAAS,CAAC;QACb,IAAI,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;IAAA,CACD;IAED,OAAO,CAAC,SAAiB,EAAE,KAAa,EAAiC;QACxE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,uBAAuB,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC7D,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,UAA8B,CAAC;QAEnC,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;YACjE,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;QAAA,CACD,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtB,IAAI,SAAS,IAAI,QAAQ;oBAAE,OAAO;gBAClC,SAAS,GAAG,IAAI,CAAC;gBACjB,UAAU,GAAG,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzB,KAAK,EAAE,CAAC;oBACR,OAAO;gBACR,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAAA,CACnC;YACD,OAAO;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC;gBACf,IAAI,SAAS,IAAI,QAAQ;oBAAE,OAAO;gBAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBACnD,OAAO,EAAE,CAAC;YAAA,CACV;SACD,CAAC;IAAA,CACF;IAED,KAAK,CAAC,MAAM,GAAY,IAAI,KAAK,CAAC,6BAA6B,CAAC,EAAQ;QACvE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC;gBACJ,KAAK,EAAE,CAAC;YACT,CAAC;YAAC,MAAM,CAAC;gBACR,sEAAsE;YACvE,CAAC;QACF,CAAC;IAAA,CACD;IAED,UAAU,GAAS;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QACjD,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;IAAA,CACpB;IAED,WAAW,CAAC,MAAc,EAAE,OAAe,EAAQ;QAClD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;QACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC;IAAA,CACrE;IAED,QAAQ,GAAoC;QAC3C,OAAO;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC5B,CAAC;IAAA,CACF;IAED,OAAO,GAAS;QACf,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAAA,CAC5B;IAEO,WAAW,GAAU;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAAA,CACxG;CACD","sourcesContent":["import { randomUUID } from \"node:crypto\";\n\nexport interface SubagentDelegationScopeSnapshot {\n\tid: string;\n\tstartedAt: number;\n\tstartsUsed: number;\n\tactiveDescendants: number;\n\tpeakActiveDescendants: number;\n\tmaxDepthReached: number;\n\tturnsUsed: number;\n\ttokensUsed: number;\n\tcostUsd: number;\n\taborted: boolean;\n}\n\nexport interface SubagentDelegationReservation {\n\tcommit(subagentId: string, abort: () => void): void;\n\trelease(): void;\n\trollback(): void;\n}\n\nexport interface SubagentDelegationScopeOptions {\n\tsignal?: AbortSignal;\n}\n\n/** Shared, root-owned accounting and cancellation scope for one recursive delegation tree. */\nexport class SubagentDelegationScope {\n\treadonly id: string;\n\treadonly startedAt: number;\n\treadonly signal: AbortSignal;\n\n\tprivate readonly controller = new AbortController();\n\tprivate readonly activeAborters = new Map<string, () => void>();\n\tprivate readonly externalSignal: AbortSignal | undefined;\n\tprivate readonly onExternalAbort: (() => void) | undefined;\n\tprivate startsUsed = 0;\n\tprivate activeDescendants = 0;\n\tprivate peakActiveDescendants = 0;\n\tprivate maxDepthReached = 0;\n\tprivate turnsUsed = 0;\n\tprivate tokensUsed = 0;\n\tprivate costUsd = 0;\n\tprivate disposed = false;\n\n\tconstructor(options: SubagentDelegationScopeOptions = {}) {\n\t\tthis.id = `sat_${randomUUID()}`;\n\t\tthis.startedAt = Date.now();\n\t\tthis.signal = this.controller.signal;\n\t\tthis.externalSignal = options.signal;\n\t\tthis.onExternalAbort = options.signal\n\t\t\t? () => this.abort(options.signal?.reason ?? new Error(\"Operation aborted\"))\n\t\t\t: undefined;\n\t\tif (this.externalSignal?.aborted) {\n\t\t\tthis.abort(this.externalSignal.reason ?? new Error(\"Operation aborted\"));\n\t\t} else if (this.externalSignal && this.onExternalAbort) {\n\t\t\tthis.externalSignal.addEventListener(\"abort\", this.onExternalAbort, { once: true });\n\t\t}\n\t}\n\n\treserve(agentName: string, depth: number): SubagentDelegationReservation {\n\t\tif (this.disposed) {\n\t\t\tthrow new Error(`Cannot delegate to \"${agentName}\": delegation scope ${this.id} is disposed.`);\n\t\t}\n\t\tif (this.signal.aborted) {\n\t\t\tthrow this.abortReason();\n\t\t}\n\n\t\tthis.startsUsed += 1;\n\t\tthis.activeDescendants += 1;\n\t\tthis.peakActiveDescendants = Math.max(this.peakActiveDescendants, this.activeDescendants);\n\t\tthis.maxDepthReached = Math.max(this.maxDepthReached, depth);\n\t\tlet committed = false;\n\t\tlet released = false;\n\t\tlet subagentId: string | undefined;\n\n\t\tconst release = (): void => {\n\t\t\tif (released) return;\n\t\t\treleased = true;\n\t\t\tthis.activeDescendants = Math.max(0, this.activeDescendants - 1);\n\t\t\tif (subagentId) {\n\t\t\t\tthis.activeAborters.delete(subagentId);\n\t\t\t}\n\t\t};\n\n\t\treturn {\n\t\t\tcommit: (id, abort) => {\n\t\t\t\tif (committed || released) return;\n\t\t\t\tcommitted = true;\n\t\t\t\tsubagentId = id;\n\t\t\t\tif (this.signal.aborted) {\n\t\t\t\t\tabort();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.activeAborters.set(id, abort);\n\t\t\t},\n\t\t\trelease,\n\t\t\trollback: () => {\n\t\t\t\tif (committed || released) return;\n\t\t\t\tthis.startsUsed = Math.max(0, this.startsUsed - 1);\n\t\t\t\trelease();\n\t\t\t},\n\t\t};\n\t}\n\n\tabort(reason: unknown = new Error(\"Subagent delegation aborted\")): void {\n\t\tif (!this.signal.aborted) {\n\t\t\tthis.controller.abort(reason);\n\t\t}\n\t\tfor (const abort of this.activeAborters.values()) {\n\t\t\ttry {\n\t\t\t\tabort();\n\t\t\t} catch {\n\t\t\t\t// One broken child aborter must not prevent cancellation of siblings.\n\t\t\t}\n\t\t}\n\t}\n\n\trecordTurn(): void {\n\t\tif (this.signal.aborted || this.disposed) return;\n\t\tthis.turnsUsed += 1;\n\t}\n\n\trecordUsage(tokens: number, costUsd: number): void {\n\t\tif (this.signal.aborted || this.disposed) return;\n\t\tif (Number.isFinite(tokens) && tokens > 0) this.tokensUsed += tokens;\n\t\tif (Number.isFinite(costUsd) && costUsd > 0) this.costUsd += costUsd;\n\t}\n\n\tsnapshot(): SubagentDelegationScopeSnapshot {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tstartedAt: this.startedAt,\n\t\t\tstartsUsed: this.startsUsed,\n\t\t\tactiveDescendants: this.activeDescendants,\n\t\t\tpeakActiveDescendants: this.peakActiveDescendants,\n\t\t\tmaxDepthReached: this.maxDepthReached,\n\t\t\tturnsUsed: this.turnsUsed,\n\t\t\ttokensUsed: this.tokensUsed,\n\t\t\tcostUsd: this.costUsd,\n\t\t\taborted: this.signal.aborted,\n\t\t};\n\t}\n\n\tdispose(): void {\n\t\tif (this.disposed) return;\n\t\tthis.disposed = true;\n\t\tif (this.externalSignal && this.onExternalAbort) {\n\t\t\tthis.externalSignal.removeEventListener(\"abort\", this.onExternalAbort);\n\t\t}\n\t\tif (this.activeAborters.size > 0) {\n\t\t\tthis.abort(new Error(\"Subagent delegation scope disposed\"));\n\t\t}\n\t\tthis.activeAborters.clear();\n\t}\n\n\tprivate abortReason(): Error {\n\t\treturn this.signal.reason instanceof Error ? this.signal.reason : new Error(String(this.signal.reason));\n\t}\n}\n"]}
@@ -0,0 +1,46 @@
1
+ import type { ResourceDiagnostic } from "../diagnostics.ts";
2
+ import { type SourceInfo } from "../source-info.ts";
3
+ export type SubagentDefinitionSource = "built-in" | "user" | "project";
4
+ export type FileSubagentDefinitionSource = Exclude<SubagentDefinitionSource, "built-in">;
5
+ export interface SubagentDefinition {
6
+ name: string;
7
+ description: string;
8
+ tools?: string[];
9
+ excludedTools?: string[];
10
+ allowedSubagents?: string[];
11
+ maxSubagentDepth?: number;
12
+ maxChildAgents?: number;
13
+ model?: string;
14
+ thinking?: string;
15
+ systemPrompt: string;
16
+ source: SubagentDefinitionSource;
17
+ sourceInfo: SourceInfo;
18
+ filePath: string;
19
+ }
20
+ export interface ParseSubagentDefinitionOptions {
21
+ content: string;
22
+ filePath: string;
23
+ source: FileSubagentDefinitionSource;
24
+ sourceInfo: SourceInfo;
25
+ }
26
+ export interface ParseSubagentDefinitionResult {
27
+ definition: SubagentDefinition | null;
28
+ diagnostics: ResourceDiagnostic[];
29
+ }
30
+ export interface DiscoverSubagentDefinitionsOptions {
31
+ cwd: string;
32
+ agentDir: string;
33
+ projectTrusted: boolean;
34
+ }
35
+ export interface SubagentDiscoveryResult {
36
+ definitions: SubagentDefinition[];
37
+ diagnostics: ResourceDiagnostic[];
38
+ userAgentsDir: string;
39
+ projectAgentsDir: string;
40
+ }
41
+ export declare function createBuiltInSubagentDefinitions(): SubagentDefinition[];
42
+ export declare function parseSubagentDefinition(options: ParseSubagentDefinitionOptions): ParseSubagentDefinitionResult;
43
+ export declare function discoverSubagentDefinitions(options: DiscoverSubagentDefinitionsOptions): SubagentDiscoveryResult;
44
+ export { type SubagentDelegationReservation, SubagentDelegationScope, type SubagentDelegationScopeOptions, type SubagentDelegationScopeSnapshot, } from "./delegation-scope.ts";
45
+ export { type SubagentActivity, type SubagentActivityEvent, type SubagentActivityListener, type SubagentActivityStatus, SubagentDefinitionConfigurationError, SubagentDefinitionNotFoundError, type SubagentDelegationScopeLease, type SubagentEndEvent, type SubagentEvent, type SubagentEventListener, type SubagentHandle, SubagentManager, type SubagentManagerOptions, type SubagentResult, type SubagentRuntimeCreatedEvent, type SubagentStartByNameOptions, type SubagentStartOptions, } from "./manager.ts";
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/subagents/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/E,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AACvE,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;AAEzF,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,wBAAwB,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,4BAA4B,CAAC;IACrC,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,6BAA6B;IAC7C,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,kCAAkC;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACvC,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CACzB;AASD,wBAAgB,gCAAgC,IAAI,kBAAkB,EAAE,CAqFvE;AA8HD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,6BAA6B,CAuE9G;AAwFD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,kCAAkC,GAAG,uBAAuB,CAsDhH;AAED,OAAO,EACN,KAAK,6BAA6B,EAClC,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,GACpC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,oCAAoC,EACpC,+BAA+B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,GACzB,MAAM,cAAc,CAAC","sourcesContent":["import { type Dirent, existsSync, readdirSync, readFileSync, statSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../../config.ts\";\nimport { parseFrontmatter } from \"../../utils/frontmatter.ts\";\nimport { resolvePath } from \"../../utils/paths.ts\";\nimport type { ResourceDiagnostic } from \"../diagnostics.ts\";\nimport { createSyntheticSourceInfo, type SourceInfo } from \"../source-info.ts\";\n\nexport type SubagentDefinitionSource = \"built-in\" | \"user\" | \"project\";\nexport type FileSubagentDefinitionSource = Exclude<SubagentDefinitionSource, \"built-in\">;\n\nexport interface SubagentDefinition {\n\tname: string;\n\tdescription: string;\n\ttools?: string[];\n\texcludedTools?: string[];\n\tallowedSubagents?: string[];\n\tmaxSubagentDepth?: number;\n\tmaxChildAgents?: number;\n\tmodel?: string;\n\tthinking?: string;\n\tsystemPrompt: string;\n\tsource: SubagentDefinitionSource;\n\tsourceInfo: SourceInfo;\n\tfilePath: string;\n}\n\nexport interface ParseSubagentDefinitionOptions {\n\tcontent: string;\n\tfilePath: string;\n\tsource: FileSubagentDefinitionSource;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface ParseSubagentDefinitionResult {\n\tdefinition: SubagentDefinition | null;\n\tdiagnostics: ResourceDiagnostic[];\n}\n\nexport interface DiscoverSubagentDefinitionsOptions {\n\tcwd: string;\n\tagentDir: string;\n\tprojectTrusted: boolean;\n}\n\nexport interface SubagentDiscoveryResult {\n\tdefinitions: SubagentDefinition[];\n\tdiagnostics: ResourceDiagnostic[];\n\tuserAgentsDir: string;\n\tprojectAgentsDir: string;\n}\n\nconst BUILT_IN_GENERAL_SUBAGENT_FILE_PATH = \"builtin:general\";\nconst BUILT_IN_RESEARCHER_SUBAGENT_FILE_PATH = \"builtin:researcher\";\nconst BUILT_IN_DESIGN_DOC_SUBAGENT_FILE_PATH = \"builtin:design-doc\";\nconst BUILT_IN_SECURITY_REVIEWER_SUBAGENT_FILE_PATH = \"builtin:security-reviewer\";\nconst BUILT_IN_READ_ONLY_TOOLS = [\"read\", \"web_search\", \"grep\", \"find\", \"ls\"];\nconst BUILT_IN_DELEGATING_READ_ONLY_TOOLS = [...BUILT_IN_READ_ONLY_TOOLS, \"subagent\"];\n\nexport function createBuiltInSubagentDefinitions(): SubagentDefinition[] {\n\treturn [\n\t\t{\n\t\t\tname: \"general\",\n\t\t\tdescription: \"General-purpose isolated child agent for ad hoc delegated tasks\",\n\t\t\texcludedTools: [\"subagent\"],\n\t\t\tallowedSubagents: [],\n\t\t\tmaxChildAgents: 0,\n\t\t\tsystemPrompt: [\n\t\t\t\t\"You are the built-in general-purpose Volt subagent.\",\n\t\t\t\t\"Complete the delegated task independently using only the task prompt and available tools.\",\n\t\t\t\t\"You are one contributor in a larger workflow, not the final decision-maker.\",\n\t\t\t\t\"Do not delegate to other subagents; the subagent tool is intentionally unavailable for this role.\",\n\t\t\t\t\"For code or research tasks, return concise findings, evidence, blockers, and next steps.\",\n\t\t\t\t\"For writing or creative tasks, return the requested artifact directly.\",\n\t\t\t\t\"Do not assume parent conversation context beyond the delegated task prompt.\",\n\t\t\t].join(\"\\n\"),\n\t\t\tsource: \"built-in\",\n\t\t\tsourceInfo: createSyntheticSourceInfo(BUILT_IN_GENERAL_SUBAGENT_FILE_PATH, { source: \"built-in\" }),\n\t\t\tfilePath: BUILT_IN_GENERAL_SUBAGENT_FILE_PATH,\n\t\t},\n\t\t{\n\t\t\tname: \"researcher\",\n\t\t\tdescription: \"Non-mutating research scout for web and codebase evidence gathering\",\n\t\t\ttools: [...BUILT_IN_DELEGATING_READ_ONLY_TOOLS],\n\t\t\tallowedSubagents: [\"researcher\"],\n\t\t\tmaxSubagentDepth: 3,\n\t\t\tmaxChildAgents: 2,\n\t\t\tsystemPrompt: [\n\t\t\t\t\"You are the built-in Volt researcher subagent.\",\n\t\t\t\t\"Gather source-backed evidence from the web and/or codebase for the delegated question.\",\n\t\t\t\t\"You are one contributor in a larger workflow, not the final decision-maker.\",\n\t\t\t\t\"Do not modify files or run shell commands; this role has non-mutating local tools plus web_search.\",\n\t\t\t\t\"Use the subagent tool only when you discover a distinct follow-up question that would benefit from a fresh, narrower researcher context.\",\n\t\t\t\t\"Delegate only to researcher subagents and keep recursive research bounded.\",\n\t\t\t\t\"Return concise findings with source URLs or file paths, assumptions, uncertainty, and open questions.\",\n\t\t\t].join(\"\\n\"),\n\t\t\tsource: \"built-in\",\n\t\t\tsourceInfo: createSyntheticSourceInfo(BUILT_IN_RESEARCHER_SUBAGENT_FILE_PATH, { source: \"built-in\" }),\n\t\t\tfilePath: BUILT_IN_RESEARCHER_SUBAGENT_FILE_PATH,\n\t\t},\n\t\t{\n\t\t\tname: \"design-doc\",\n\t\t\tdescription: \"Design document planner and synthesizer that delegates independent research when warranted\",\n\t\t\tallowedSubagents: [\"researcher\", \"security-reviewer\", \"general\"],\n\t\t\tmaxSubagentDepth: 3,\n\t\t\tmaxChildAgents: 8,\n\t\t\tsystemPrompt: [\n\t\t\t\t\"You are the built-in Volt design-document coordinator.\",\n\t\t\t\t\"Your job is to turn an ambiguous technical goal into a sourced design/RFC, decision memo, or implementation plan.\",\n\t\t\t\t\"Use the subagent tool for broad or uncertain work that benefits from independent product, architecture, migration, operations, security, performance, prior-art, or skeptical review research before synthesis.\",\n\t\t\t\t\"Scale delegation to complexity: handle simple questions directly, use 1 child for one focused gap, use 2-4 children for independent medium-sized questions, and exceed 4 only for genuinely broad work with non-overlapping assignments.\",\n\t\t\t\t\"Do not delegate duplicate work, and stop spawning once the available evidence is sufficient to make the design decision.\",\n\t\t\t\t\"Prefer parallel delegation for independent research questions and chain delegation only when later steps depend on prior output.\",\n\t\t\t\t\"Preserve minority reports and unresolved objections; do not collapse disagreement into false consensus.\",\n\t\t\t\t\"When external or current claims matter, perform or delegate web research and cite source URLs.\",\n\t\t\t\t\"When editing files, keep changes scoped to the requested design artifact unless the parent task explicitly asks for code changes.\",\n\t\t\t\t\"Return or write a structured document with context, goals, non-goals, proposal, alternatives, risks, rollout, verification, and open questions.\",\n\t\t\t].join(\"\\n\"),\n\t\t\tsource: \"built-in\",\n\t\t\tsourceInfo: createSyntheticSourceInfo(BUILT_IN_DESIGN_DOC_SUBAGENT_FILE_PATH, { source: \"built-in\" }),\n\t\t\tfilePath: BUILT_IN_DESIGN_DOC_SUBAGENT_FILE_PATH,\n\t\t},\n\t\t{\n\t\t\tname: \"security-reviewer\",\n\t\t\tdescription:\n\t\t\t\t\"Non-mutating security review coordinator for threat modeling, code review, and verification planning\",\n\t\t\ttools: [...BUILT_IN_DELEGATING_READ_ONLY_TOOLS],\n\t\t\tallowedSubagents: [\"researcher\"],\n\t\t\tmaxSubagentDepth: 3,\n\t\t\tmaxChildAgents: 4,\n\t\t\tsystemPrompt: [\n\t\t\t\t\"You are the built-in Volt security-reviewer subagent.\",\n\t\t\t\t\"Analyze code, design, dependencies, configuration, and agent/tool workflows for security risk.\",\n\t\t\t\t\"You are one contributor in a larger workflow, not the final decision-maker.\",\n\t\t\t\t\"Do not edit files, write files, run shell commands, or invoke mutating refactors; this role has non-mutating local tools plus web_search and bounded read-only delegation.\",\n\t\t\t\t\"Use researcher subagents for independent research or second-opinion review when it improves coverage, but keep delegation bounded and evidence-focused.\",\n\t\t\t\t\"For exploit verification or regression tests that require file writes or shell commands, return a precise test plan for the parent to authorize outside this read-only role.\",\n\t\t\t\t\"Report findings with file paths, severity, exploit preconditions, evidence, confidence, remediation, and verification steps.\",\n\t\t\t].join(\"\\n\"),\n\t\t\tsource: \"built-in\",\n\t\t\tsourceInfo: createSyntheticSourceInfo(BUILT_IN_SECURITY_REVIEWER_SUBAGENT_FILE_PATH, { source: \"built-in\" }),\n\t\t\tfilePath: BUILT_IN_SECURITY_REVIEWER_SUBAGENT_FILE_PATH,\n\t\t},\n\t];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getErrorMessage(error: unknown, fallback: string): string {\n\treturn error instanceof Error ? error.message : fallback;\n}\n\nfunction readRequiredStringField(\n\tfrontmatter: Record<string, unknown>,\n\tkey: \"name\" | \"description\",\n\tfilePath: string,\n\tdiagnostics: ResourceDiagnostic[],\n): string | undefined {\n\tconst value = frontmatter[key];\n\tif (typeof value !== \"string\" || value.trim() === \"\") {\n\t\tdiagnostics.push({ type: \"warning\", message: `${key} is required`, path: filePath });\n\t\treturn undefined;\n\t}\n\treturn value.trim();\n}\n\nfunction readOptionalStringField(\n\tfrontmatter: Record<string, unknown>,\n\tkey: \"model\" | \"thinking\",\n\tfilePath: string,\n\tdiagnostics: ResourceDiagnostic[],\n): string | undefined {\n\tconst value = frontmatter[key];\n\tif (value === undefined || value === null) {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"string\") {\n\t\tdiagnostics.push({ type: \"warning\", message: `${key} must be a string`, path: filePath });\n\t\treturn undefined;\n\t}\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction readCommaSeparatedListField(\n\tfrontmatter: Record<string, unknown>,\n\tkey: \"tools\" | \"excludedTools\",\n\tfilePath: string,\n\tdiagnostics: ResourceDiagnostic[],\n): string[] | undefined {\n\tif (!Object.hasOwn(frontmatter, key)) {\n\t\treturn undefined;\n\t}\n\tconst value = frontmatter[key];\n\tif (value === undefined || value === null) {\n\t\treturn [];\n\t}\n\tif (typeof value !== \"string\") {\n\t\tdiagnostics.push({ type: \"warning\", message: `${key} must be a comma-separated string`, path: filePath });\n\t\treturn undefined;\n\t}\n\n\treturn value\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter((item) => item.length > 0);\n}\n\nfunction readAllowedSubagentsField(\n\tfrontmatter: Record<string, unknown>,\n\tfilePath: string,\n\tdiagnostics: ResourceDiagnostic[],\n): string[] | undefined {\n\tif (!Object.hasOwn(frontmatter, \"allowedSubagents\")) {\n\t\treturn undefined;\n\t}\n\tconst value = frontmatter.allowedSubagents;\n\tif (value === undefined || value === null) {\n\t\treturn [];\n\t}\n\tif (typeof value !== \"string\") {\n\t\tdiagnostics.push({\n\t\t\ttype: \"warning\",\n\t\t\tmessage: \"allowedSubagents must be a comma-separated string\",\n\t\t\tpath: filePath,\n\t\t});\n\t\treturn undefined;\n\t}\n\n\treturn value\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter((item) => item.length > 0);\n}\n\nfunction readOptionalNonNegativeIntegerField(\n\tfrontmatter: Record<string, unknown>,\n\tkey: \"maxSubagentDepth\" | \"maxChildAgents\",\n\tfilePath: string,\n\tdiagnostics: ResourceDiagnostic[],\n): number | undefined {\n\tif (!Object.hasOwn(frontmatter, key)) {\n\t\treturn undefined;\n\t}\n\tconst value = frontmatter[key];\n\tconst parsed = parseOptionalNonNegativeInteger(value);\n\tif (parsed === undefined) {\n\t\tdiagnostics.push({ type: \"warning\", message: `${key} must be a non-negative integer`, path: filePath });\n\t\treturn undefined;\n\t}\n\treturn parsed;\n}\n\nfunction parseOptionalNonNegativeInteger(value: unknown): number | undefined {\n\tif (typeof value === \"number\") {\n\t\treturn Number.isInteger(value) && value >= 0 ? value : undefined;\n\t}\n\tif (typeof value !== \"string\") {\n\t\treturn undefined;\n\t}\n\tconst trimmed = value.trim();\n\tif (trimmed.length === 0) {\n\t\treturn undefined;\n\t}\n\tconst parsed = Number(trimmed);\n\treturn Number.isInteger(parsed) && parsed >= 0 ? parsed : undefined;\n}\n\nexport function parseSubagentDefinition(options: ParseSubagentDefinitionOptions): ParseSubagentDefinitionResult {\n\tconst diagnostics: ResourceDiagnostic[] = [];\n\tlet frontmatter: Record<string, unknown>;\n\tlet body: string;\n\n\ttry {\n\t\tconst parsed = parseFrontmatter<Record<string, unknown>>(options.content);\n\t\tif (!isRecord(parsed.frontmatter)) {\n\t\t\tdiagnostics.push({ type: \"warning\", message: \"frontmatter must be a mapping\", path: options.filePath });\n\t\t\treturn { definition: null, diagnostics };\n\t\t}\n\t\tfrontmatter = parsed.frontmatter;\n\t\tbody = parsed.body;\n\t} catch (error) {\n\t\tdiagnostics.push({\n\t\t\ttype: \"warning\",\n\t\t\tmessage: `failed to parse subagent definition: ${getErrorMessage(error, \"invalid frontmatter\")}`,\n\t\t\tpath: options.filePath,\n\t\t});\n\t\treturn { definition: null, diagnostics };\n\t}\n\n\tconst name = readRequiredStringField(frontmatter, \"name\", options.filePath, diagnostics);\n\tconst description = readRequiredStringField(frontmatter, \"description\", options.filePath, diagnostics);\n\tconst systemPrompt = body.trim();\n\tif (systemPrompt.length === 0) {\n\t\tdiagnostics.push({ type: \"warning\", message: \"system prompt body is required\", path: options.filePath });\n\t}\n\n\tconst policyDiagnosticStart = diagnostics.length;\n\tconst tools = readCommaSeparatedListField(frontmatter, \"tools\", options.filePath, diagnostics);\n\tconst excludedTools = readCommaSeparatedListField(frontmatter, \"excludedTools\", options.filePath, diagnostics);\n\tconst allowedSubagents = readAllowedSubagentsField(frontmatter, options.filePath, diagnostics);\n\tconst maxSubagentDepth = readOptionalNonNegativeIntegerField(\n\t\tfrontmatter,\n\t\t\"maxSubagentDepth\",\n\t\toptions.filePath,\n\t\tdiagnostics,\n\t);\n\tconst maxChildAgents = readOptionalNonNegativeIntegerField(\n\t\tfrontmatter,\n\t\t\"maxChildAgents\",\n\t\toptions.filePath,\n\t\tdiagnostics,\n\t);\n\tconst hasMalformedPolicyField = diagnostics.length > policyDiagnosticStart;\n\tconst model = readOptionalStringField(frontmatter, \"model\", options.filePath, diagnostics);\n\tconst thinking = readOptionalStringField(frontmatter, \"thinking\", options.filePath, diagnostics);\n\n\tif (!name || !description || systemPrompt.length === 0 || hasMalformedPolicyField) {\n\t\treturn { definition: null, diagnostics };\n\t}\n\n\treturn {\n\t\tdefinition: {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\t...(tools ? { tools } : {}),\n\t\t\t...(excludedTools ? { excludedTools } : {}),\n\t\t\tallowedSubagents: allowedSubagents ?? [],\n\t\t\t...(maxSubagentDepth !== undefined ? { maxSubagentDepth } : {}),\n\t\t\t...(maxChildAgents !== undefined ? { maxChildAgents } : {}),\n\t\t\t...(model ? { model } : {}),\n\t\t\t...(thinking ? { thinking } : {}),\n\t\t\tsystemPrompt,\n\t\t\tsource: options.source,\n\t\t\tsourceInfo: options.sourceInfo,\n\t\t\tfilePath: options.filePath,\n\t\t},\n\t\tdiagnostics,\n\t};\n}\n\nfunction createSubagentSourceInfo(\n\tfilePath: string,\n\tagentsDir: string,\n\tsource: FileSubagentDefinitionSource,\n): SourceInfo {\n\treturn createSyntheticSourceInfo(filePath, {\n\t\tsource: \"local\",\n\t\tscope: source,\n\t\tbaseDir: agentsDir,\n\t});\n}\n\nfunction loadSubagentDefinitionsFromDir(\n\tdir: string,\n\tsource: FileSubagentDefinitionSource,\n): { definitions: SubagentDefinition[]; diagnostics: ResourceDiagnostic[] } {\n\tconst definitions: SubagentDefinition[] = [];\n\tconst diagnostics: ResourceDiagnostic[] = [];\n\n\tif (!existsSync(dir)) {\n\t\treturn { definitions, diagnostics };\n\t}\n\n\tlet entries: Dirent[];\n\ttry {\n\t\tentries = readdirSync(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name));\n\t} catch (error) {\n\t\tdiagnostics.push({\n\t\t\ttype: \"warning\",\n\t\t\tmessage: getErrorMessage(error, \"failed to read subagent directory\"),\n\t\t\tpath: dir,\n\t\t});\n\t\treturn { definitions, diagnostics };\n\t}\n\n\tfor (const entry of entries) {\n\t\tif (!entry.name.endsWith(\".md\")) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst filePath = join(dir, entry.name);\n\t\tlet isFile = entry.isFile();\n\t\tif (entry.isSymbolicLink()) {\n\t\t\ttry {\n\t\t\t\tisFile = statSync(filePath).isFile();\n\t\t\t} catch (error) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tmessage: getErrorMessage(error, \"failed to read subagent symlink\"),\n\t\t\t\t\tpath: filePath,\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (!isFile) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet content: string;\n\t\ttry {\n\t\t\tcontent = readFileSync(filePath, \"utf-8\");\n\t\t} catch (error) {\n\t\t\tdiagnostics.push({\n\t\t\t\ttype: \"warning\",\n\t\t\t\tmessage: getErrorMessage(error, \"failed to read subagent definition\"),\n\t\t\t\tpath: filePath,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst result = parseSubagentDefinition({\n\t\t\tcontent,\n\t\t\tfilePath,\n\t\t\tsource,\n\t\t\tsourceInfo: createSubagentSourceInfo(filePath, dir, source),\n\t\t});\n\t\tif (result.definition) {\n\t\t\tdefinitions.push(result.definition);\n\t\t}\n\t\tdiagnostics.push(...result.diagnostics);\n\t}\n\n\treturn { definitions, diagnostics };\n}\n\nexport function discoverSubagentDefinitions(options: DiscoverSubagentDefinitionsOptions): SubagentDiscoveryResult {\n\tconst resolvedCwd = resolvePath(options.cwd);\n\tconst resolvedAgentDir = resolvePath(options.agentDir);\n\tconst userAgentsDir = join(resolvedAgentDir, \"agents\");\n\tconst projectAgentsDir = join(resolvedCwd, CONFIG_DIR_NAME, \"agents\");\n\n\tconst diagnostics: ResourceDiagnostic[] = [];\n\tconst definitionsByName = new Map<string, SubagentDefinition>();\n\tconst seenBySource = new Set<string>();\n\tconst builtInDefinitions = createBuiltInSubagentDefinitions();\n\tconst reservedBuiltInNames = new Set(builtInDefinitions.map((definition) => definition.name));\n\n\tfunction addDefinitions(definitions: SubagentDefinition[]): void {\n\t\tfor (const definition of definitions) {\n\t\t\tif (definition.source !== \"built-in\" && reservedBuiltInNames.has(definition.name)) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tmessage: `subagent definition \"${definition.name}\" cannot override a built-in subagent and was ignored`,\n\t\t\t\t\tpath: definition.filePath,\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst sourceKey = `${definition.source}:${definition.name}`;\n\t\t\tif (seenBySource.has(sourceKey)) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tmessage: `duplicate ${definition.source} subagent definition \"${definition.name}\" ignored`,\n\t\t\t\t\tpath: definition.filePath,\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenBySource.add(sourceKey);\n\t\t\tdefinitionsByName.set(definition.name, definition);\n\t\t}\n\t}\n\n\taddDefinitions(builtInDefinitions);\n\n\tconst userResult = loadSubagentDefinitionsFromDir(userAgentsDir, \"user\");\n\taddDefinitions(userResult.definitions);\n\tdiagnostics.push(...userResult.diagnostics);\n\n\tif (options.projectTrusted) {\n\t\tconst projectResult = loadSubagentDefinitionsFromDir(projectAgentsDir, \"project\");\n\t\taddDefinitions(projectResult.definitions);\n\t\tdiagnostics.push(...projectResult.diagnostics);\n\t}\n\n\treturn {\n\t\tdefinitions: Array.from(definitionsByName.values()),\n\t\tdiagnostics,\n\t\tuserAgentsDir,\n\t\tprojectAgentsDir,\n\t};\n}\n\nexport {\n\ttype SubagentDelegationReservation,\n\tSubagentDelegationScope,\n\ttype SubagentDelegationScopeOptions,\n\ttype SubagentDelegationScopeSnapshot,\n} from \"./delegation-scope.ts\";\n\nexport {\n\ttype SubagentActivity,\n\ttype SubagentActivityEvent,\n\ttype SubagentActivityListener,\n\ttype SubagentActivityStatus,\n\tSubagentDefinitionConfigurationError,\n\tSubagentDefinitionNotFoundError,\n\ttype SubagentDelegationScopeLease,\n\ttype SubagentEndEvent,\n\ttype SubagentEvent,\n\ttype SubagentEventListener,\n\ttype SubagentHandle,\n\tSubagentManager,\n\ttype SubagentManagerOptions,\n\ttype SubagentResult,\n\ttype SubagentRuntimeCreatedEvent,\n\ttype SubagentStartByNameOptions,\n\ttype SubagentStartOptions,\n} from \"./manager.ts\";\n"]}
@@ -0,0 +1,369 @@
1
+ import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { CONFIG_DIR_NAME } from "../../config.js";
4
+ import { parseFrontmatter } from "../../utils/frontmatter.js";
5
+ import { resolvePath } from "../../utils/paths.js";
6
+ import { createSyntheticSourceInfo } from "../source-info.js";
7
+ const BUILT_IN_GENERAL_SUBAGENT_FILE_PATH = "builtin:general";
8
+ const BUILT_IN_RESEARCHER_SUBAGENT_FILE_PATH = "builtin:researcher";
9
+ const BUILT_IN_DESIGN_DOC_SUBAGENT_FILE_PATH = "builtin:design-doc";
10
+ const BUILT_IN_SECURITY_REVIEWER_SUBAGENT_FILE_PATH = "builtin:security-reviewer";
11
+ const BUILT_IN_READ_ONLY_TOOLS = ["read", "web_search", "grep", "find", "ls"];
12
+ const BUILT_IN_DELEGATING_READ_ONLY_TOOLS = [...BUILT_IN_READ_ONLY_TOOLS, "subagent"];
13
+ export function createBuiltInSubagentDefinitions() {
14
+ return [
15
+ {
16
+ name: "general",
17
+ description: "General-purpose isolated child agent for ad hoc delegated tasks",
18
+ excludedTools: ["subagent"],
19
+ allowedSubagents: [],
20
+ maxChildAgents: 0,
21
+ systemPrompt: [
22
+ "You are the built-in general-purpose Volt subagent.",
23
+ "Complete the delegated task independently using only the task prompt and available tools.",
24
+ "You are one contributor in a larger workflow, not the final decision-maker.",
25
+ "Do not delegate to other subagents; the subagent tool is intentionally unavailable for this role.",
26
+ "For code or research tasks, return concise findings, evidence, blockers, and next steps.",
27
+ "For writing or creative tasks, return the requested artifact directly.",
28
+ "Do not assume parent conversation context beyond the delegated task prompt.",
29
+ ].join("\n"),
30
+ source: "built-in",
31
+ sourceInfo: createSyntheticSourceInfo(BUILT_IN_GENERAL_SUBAGENT_FILE_PATH, { source: "built-in" }),
32
+ filePath: BUILT_IN_GENERAL_SUBAGENT_FILE_PATH,
33
+ },
34
+ {
35
+ name: "researcher",
36
+ description: "Non-mutating research scout for web and codebase evidence gathering",
37
+ tools: [...BUILT_IN_DELEGATING_READ_ONLY_TOOLS],
38
+ allowedSubagents: ["researcher"],
39
+ maxSubagentDepth: 3,
40
+ maxChildAgents: 2,
41
+ systemPrompt: [
42
+ "You are the built-in Volt researcher subagent.",
43
+ "Gather source-backed evidence from the web and/or codebase for the delegated question.",
44
+ "You are one contributor in a larger workflow, not the final decision-maker.",
45
+ "Do not modify files or run shell commands; this role has non-mutating local tools plus web_search.",
46
+ "Use the subagent tool only when you discover a distinct follow-up question that would benefit from a fresh, narrower researcher context.",
47
+ "Delegate only to researcher subagents and keep recursive research bounded.",
48
+ "Return concise findings with source URLs or file paths, assumptions, uncertainty, and open questions.",
49
+ ].join("\n"),
50
+ source: "built-in",
51
+ sourceInfo: createSyntheticSourceInfo(BUILT_IN_RESEARCHER_SUBAGENT_FILE_PATH, { source: "built-in" }),
52
+ filePath: BUILT_IN_RESEARCHER_SUBAGENT_FILE_PATH,
53
+ },
54
+ {
55
+ name: "design-doc",
56
+ description: "Design document planner and synthesizer that delegates independent research when warranted",
57
+ allowedSubagents: ["researcher", "security-reviewer", "general"],
58
+ maxSubagentDepth: 3,
59
+ maxChildAgents: 8,
60
+ systemPrompt: [
61
+ "You are the built-in Volt design-document coordinator.",
62
+ "Your job is to turn an ambiguous technical goal into a sourced design/RFC, decision memo, or implementation plan.",
63
+ "Use the subagent tool for broad or uncertain work that benefits from independent product, architecture, migration, operations, security, performance, prior-art, or skeptical review research before synthesis.",
64
+ "Scale delegation to complexity: handle simple questions directly, use 1 child for one focused gap, use 2-4 children for independent medium-sized questions, and exceed 4 only for genuinely broad work with non-overlapping assignments.",
65
+ "Do not delegate duplicate work, and stop spawning once the available evidence is sufficient to make the design decision.",
66
+ "Prefer parallel delegation for independent research questions and chain delegation only when later steps depend on prior output.",
67
+ "Preserve minority reports and unresolved objections; do not collapse disagreement into false consensus.",
68
+ "When external or current claims matter, perform or delegate web research and cite source URLs.",
69
+ "When editing files, keep changes scoped to the requested design artifact unless the parent task explicitly asks for code changes.",
70
+ "Return or write a structured document with context, goals, non-goals, proposal, alternatives, risks, rollout, verification, and open questions.",
71
+ ].join("\n"),
72
+ source: "built-in",
73
+ sourceInfo: createSyntheticSourceInfo(BUILT_IN_DESIGN_DOC_SUBAGENT_FILE_PATH, { source: "built-in" }),
74
+ filePath: BUILT_IN_DESIGN_DOC_SUBAGENT_FILE_PATH,
75
+ },
76
+ {
77
+ name: "security-reviewer",
78
+ description: "Non-mutating security review coordinator for threat modeling, code review, and verification planning",
79
+ tools: [...BUILT_IN_DELEGATING_READ_ONLY_TOOLS],
80
+ allowedSubagents: ["researcher"],
81
+ maxSubagentDepth: 3,
82
+ maxChildAgents: 4,
83
+ systemPrompt: [
84
+ "You are the built-in Volt security-reviewer subagent.",
85
+ "Analyze code, design, dependencies, configuration, and agent/tool workflows for security risk.",
86
+ "You are one contributor in a larger workflow, not the final decision-maker.",
87
+ "Do not edit files, write files, run shell commands, or invoke mutating refactors; this role has non-mutating local tools plus web_search and bounded read-only delegation.",
88
+ "Use researcher subagents for independent research or second-opinion review when it improves coverage, but keep delegation bounded and evidence-focused.",
89
+ "For exploit verification or regression tests that require file writes or shell commands, return a precise test plan for the parent to authorize outside this read-only role.",
90
+ "Report findings with file paths, severity, exploit preconditions, evidence, confidence, remediation, and verification steps.",
91
+ ].join("\n"),
92
+ source: "built-in",
93
+ sourceInfo: createSyntheticSourceInfo(BUILT_IN_SECURITY_REVIEWER_SUBAGENT_FILE_PATH, { source: "built-in" }),
94
+ filePath: BUILT_IN_SECURITY_REVIEWER_SUBAGENT_FILE_PATH,
95
+ },
96
+ ];
97
+ }
98
+ function isRecord(value) {
99
+ return typeof value === "object" && value !== null && !Array.isArray(value);
100
+ }
101
+ function getErrorMessage(error, fallback) {
102
+ return error instanceof Error ? error.message : fallback;
103
+ }
104
+ function readRequiredStringField(frontmatter, key, filePath, diagnostics) {
105
+ const value = frontmatter[key];
106
+ if (typeof value !== "string" || value.trim() === "") {
107
+ diagnostics.push({ type: "warning", message: `${key} is required`, path: filePath });
108
+ return undefined;
109
+ }
110
+ return value.trim();
111
+ }
112
+ function readOptionalStringField(frontmatter, key, filePath, diagnostics) {
113
+ const value = frontmatter[key];
114
+ if (value === undefined || value === null) {
115
+ return undefined;
116
+ }
117
+ if (typeof value !== "string") {
118
+ diagnostics.push({ type: "warning", message: `${key} must be a string`, path: filePath });
119
+ return undefined;
120
+ }
121
+ const trimmed = value.trim();
122
+ return trimmed.length > 0 ? trimmed : undefined;
123
+ }
124
+ function readCommaSeparatedListField(frontmatter, key, filePath, diagnostics) {
125
+ if (!Object.hasOwn(frontmatter, key)) {
126
+ return undefined;
127
+ }
128
+ const value = frontmatter[key];
129
+ if (value === undefined || value === null) {
130
+ return [];
131
+ }
132
+ if (typeof value !== "string") {
133
+ diagnostics.push({ type: "warning", message: `${key} must be a comma-separated string`, path: filePath });
134
+ return undefined;
135
+ }
136
+ return value
137
+ .split(",")
138
+ .map((item) => item.trim())
139
+ .filter((item) => item.length > 0);
140
+ }
141
+ function readAllowedSubagentsField(frontmatter, filePath, diagnostics) {
142
+ if (!Object.hasOwn(frontmatter, "allowedSubagents")) {
143
+ return undefined;
144
+ }
145
+ const value = frontmatter.allowedSubagents;
146
+ if (value === undefined || value === null) {
147
+ return [];
148
+ }
149
+ if (typeof value !== "string") {
150
+ diagnostics.push({
151
+ type: "warning",
152
+ message: "allowedSubagents must be a comma-separated string",
153
+ path: filePath,
154
+ });
155
+ return undefined;
156
+ }
157
+ return value
158
+ .split(",")
159
+ .map((item) => item.trim())
160
+ .filter((item) => item.length > 0);
161
+ }
162
+ function readOptionalNonNegativeIntegerField(frontmatter, key, filePath, diagnostics) {
163
+ if (!Object.hasOwn(frontmatter, key)) {
164
+ return undefined;
165
+ }
166
+ const value = frontmatter[key];
167
+ const parsed = parseOptionalNonNegativeInteger(value);
168
+ if (parsed === undefined) {
169
+ diagnostics.push({ type: "warning", message: `${key} must be a non-negative integer`, path: filePath });
170
+ return undefined;
171
+ }
172
+ return parsed;
173
+ }
174
+ function parseOptionalNonNegativeInteger(value) {
175
+ if (typeof value === "number") {
176
+ return Number.isInteger(value) && value >= 0 ? value : undefined;
177
+ }
178
+ if (typeof value !== "string") {
179
+ return undefined;
180
+ }
181
+ const trimmed = value.trim();
182
+ if (trimmed.length === 0) {
183
+ return undefined;
184
+ }
185
+ const parsed = Number(trimmed);
186
+ return Number.isInteger(parsed) && parsed >= 0 ? parsed : undefined;
187
+ }
188
+ export function parseSubagentDefinition(options) {
189
+ const diagnostics = [];
190
+ let frontmatter;
191
+ let body;
192
+ try {
193
+ const parsed = parseFrontmatter(options.content);
194
+ if (!isRecord(parsed.frontmatter)) {
195
+ diagnostics.push({ type: "warning", message: "frontmatter must be a mapping", path: options.filePath });
196
+ return { definition: null, diagnostics };
197
+ }
198
+ frontmatter = parsed.frontmatter;
199
+ body = parsed.body;
200
+ }
201
+ catch (error) {
202
+ diagnostics.push({
203
+ type: "warning",
204
+ message: `failed to parse subagent definition: ${getErrorMessage(error, "invalid frontmatter")}`,
205
+ path: options.filePath,
206
+ });
207
+ return { definition: null, diagnostics };
208
+ }
209
+ const name = readRequiredStringField(frontmatter, "name", options.filePath, diagnostics);
210
+ const description = readRequiredStringField(frontmatter, "description", options.filePath, diagnostics);
211
+ const systemPrompt = body.trim();
212
+ if (systemPrompt.length === 0) {
213
+ diagnostics.push({ type: "warning", message: "system prompt body is required", path: options.filePath });
214
+ }
215
+ const policyDiagnosticStart = diagnostics.length;
216
+ const tools = readCommaSeparatedListField(frontmatter, "tools", options.filePath, diagnostics);
217
+ const excludedTools = readCommaSeparatedListField(frontmatter, "excludedTools", options.filePath, diagnostics);
218
+ const allowedSubagents = readAllowedSubagentsField(frontmatter, options.filePath, diagnostics);
219
+ const maxSubagentDepth = readOptionalNonNegativeIntegerField(frontmatter, "maxSubagentDepth", options.filePath, diagnostics);
220
+ const maxChildAgents = readOptionalNonNegativeIntegerField(frontmatter, "maxChildAgents", options.filePath, diagnostics);
221
+ const hasMalformedPolicyField = diagnostics.length > policyDiagnosticStart;
222
+ const model = readOptionalStringField(frontmatter, "model", options.filePath, diagnostics);
223
+ const thinking = readOptionalStringField(frontmatter, "thinking", options.filePath, diagnostics);
224
+ if (!name || !description || systemPrompt.length === 0 || hasMalformedPolicyField) {
225
+ return { definition: null, diagnostics };
226
+ }
227
+ return {
228
+ definition: {
229
+ name,
230
+ description,
231
+ ...(tools ? { tools } : {}),
232
+ ...(excludedTools ? { excludedTools } : {}),
233
+ allowedSubagents: allowedSubagents ?? [],
234
+ ...(maxSubagentDepth !== undefined ? { maxSubagentDepth } : {}),
235
+ ...(maxChildAgents !== undefined ? { maxChildAgents } : {}),
236
+ ...(model ? { model } : {}),
237
+ ...(thinking ? { thinking } : {}),
238
+ systemPrompt,
239
+ source: options.source,
240
+ sourceInfo: options.sourceInfo,
241
+ filePath: options.filePath,
242
+ },
243
+ diagnostics,
244
+ };
245
+ }
246
+ function createSubagentSourceInfo(filePath, agentsDir, source) {
247
+ return createSyntheticSourceInfo(filePath, {
248
+ source: "local",
249
+ scope: source,
250
+ baseDir: agentsDir,
251
+ });
252
+ }
253
+ function loadSubagentDefinitionsFromDir(dir, source) {
254
+ const definitions = [];
255
+ const diagnostics = [];
256
+ if (!existsSync(dir)) {
257
+ return { definitions, diagnostics };
258
+ }
259
+ let entries;
260
+ try {
261
+ entries = readdirSync(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name));
262
+ }
263
+ catch (error) {
264
+ diagnostics.push({
265
+ type: "warning",
266
+ message: getErrorMessage(error, "failed to read subagent directory"),
267
+ path: dir,
268
+ });
269
+ return { definitions, diagnostics };
270
+ }
271
+ for (const entry of entries) {
272
+ if (!entry.name.endsWith(".md")) {
273
+ continue;
274
+ }
275
+ const filePath = join(dir, entry.name);
276
+ let isFile = entry.isFile();
277
+ if (entry.isSymbolicLink()) {
278
+ try {
279
+ isFile = statSync(filePath).isFile();
280
+ }
281
+ catch (error) {
282
+ diagnostics.push({
283
+ type: "warning",
284
+ message: getErrorMessage(error, "failed to read subagent symlink"),
285
+ path: filePath,
286
+ });
287
+ continue;
288
+ }
289
+ }
290
+ if (!isFile) {
291
+ continue;
292
+ }
293
+ let content;
294
+ try {
295
+ content = readFileSync(filePath, "utf-8");
296
+ }
297
+ catch (error) {
298
+ diagnostics.push({
299
+ type: "warning",
300
+ message: getErrorMessage(error, "failed to read subagent definition"),
301
+ path: filePath,
302
+ });
303
+ continue;
304
+ }
305
+ const result = parseSubagentDefinition({
306
+ content,
307
+ filePath,
308
+ source,
309
+ sourceInfo: createSubagentSourceInfo(filePath, dir, source),
310
+ });
311
+ if (result.definition) {
312
+ definitions.push(result.definition);
313
+ }
314
+ diagnostics.push(...result.diagnostics);
315
+ }
316
+ return { definitions, diagnostics };
317
+ }
318
+ export function discoverSubagentDefinitions(options) {
319
+ const resolvedCwd = resolvePath(options.cwd);
320
+ const resolvedAgentDir = resolvePath(options.agentDir);
321
+ const userAgentsDir = join(resolvedAgentDir, "agents");
322
+ const projectAgentsDir = join(resolvedCwd, CONFIG_DIR_NAME, "agents");
323
+ const diagnostics = [];
324
+ const definitionsByName = new Map();
325
+ const seenBySource = new Set();
326
+ const builtInDefinitions = createBuiltInSubagentDefinitions();
327
+ const reservedBuiltInNames = new Set(builtInDefinitions.map((definition) => definition.name));
328
+ function addDefinitions(definitions) {
329
+ for (const definition of definitions) {
330
+ if (definition.source !== "built-in" && reservedBuiltInNames.has(definition.name)) {
331
+ diagnostics.push({
332
+ type: "warning",
333
+ message: `subagent definition "${definition.name}" cannot override a built-in subagent and was ignored`,
334
+ path: definition.filePath,
335
+ });
336
+ continue;
337
+ }
338
+ const sourceKey = `${definition.source}:${definition.name}`;
339
+ if (seenBySource.has(sourceKey)) {
340
+ diagnostics.push({
341
+ type: "warning",
342
+ message: `duplicate ${definition.source} subagent definition "${definition.name}" ignored`,
343
+ path: definition.filePath,
344
+ });
345
+ continue;
346
+ }
347
+ seenBySource.add(sourceKey);
348
+ definitionsByName.set(definition.name, definition);
349
+ }
350
+ }
351
+ addDefinitions(builtInDefinitions);
352
+ const userResult = loadSubagentDefinitionsFromDir(userAgentsDir, "user");
353
+ addDefinitions(userResult.definitions);
354
+ diagnostics.push(...userResult.diagnostics);
355
+ if (options.projectTrusted) {
356
+ const projectResult = loadSubagentDefinitionsFromDir(projectAgentsDir, "project");
357
+ addDefinitions(projectResult.definitions);
358
+ diagnostics.push(...projectResult.diagnostics);
359
+ }
360
+ return {
361
+ definitions: Array.from(definitionsByName.values()),
362
+ diagnostics,
363
+ userAgentsDir,
364
+ projectAgentsDir,
365
+ };
366
+ }
367
+ export { SubagentDelegationScope, } from "./delegation-scope.js";
368
+ export { SubagentDefinitionConfigurationError, SubagentDefinitionNotFoundError, SubagentManager, } from "./manager.js";
369
+ //# sourceMappingURL=index.js.map