@calliopelabs/cli 2.3.0 → 3.0.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 (538) hide show
  1. package/README.md +45 -644
  2. package/dist/acp.d.ts +78 -0
  3. package/dist/acp.d.ts.map +1 -0
  4. package/dist/acp.js +572 -0
  5. package/dist/acp.js.map +1 -0
  6. package/dist/auto-compressor.d.ts.map +1 -1
  7. package/dist/auto-compressor.js +9 -5
  8. package/dist/auto-compressor.js.map +1 -1
  9. package/dist/bin.d.ts +9 -5
  10. package/dist/bin.d.ts.map +1 -1
  11. package/dist/bin.js +108 -76
  12. package/dist/bin.js.map +1 -1
  13. package/dist/budget.d.ts +64 -0
  14. package/dist/budget.d.ts.map +1 -0
  15. package/dist/budget.js +157 -0
  16. package/dist/budget.js.map +1 -0
  17. package/dist/checkpoint.d.ts +63 -30
  18. package/dist/checkpoint.d.ts.map +1 -1
  19. package/dist/checkpoint.js +249 -150
  20. package/dist/checkpoint.js.map +1 -1
  21. package/dist/circuit-breaker/breaker.js.map +1 -1
  22. package/dist/config.d.ts +86 -81
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +237 -305
  25. package/dist/config.js.map +1 -1
  26. package/dist/cost.d.ts +114 -0
  27. package/dist/cost.d.ts.map +1 -0
  28. package/dist/cost.js +499 -0
  29. package/dist/cost.js.map +1 -0
  30. package/dist/diff.d.ts.map +1 -1
  31. package/dist/diff.js +53 -11
  32. package/dist/diff.js.map +1 -1
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/errors.js +33 -6
  35. package/dist/errors.js.map +1 -1
  36. package/dist/files.js.map +1 -1
  37. package/dist/fleet.d.ts +30 -0
  38. package/dist/fleet.d.ts.map +1 -0
  39. package/dist/fleet.js +86 -0
  40. package/dist/fleet.js.map +1 -0
  41. package/dist/fuzzy-search.d.ts.map +1 -1
  42. package/dist/fuzzy-search.js +2 -1
  43. package/dist/fuzzy-search.js.map +1 -1
  44. package/dist/git-status.js.map +1 -1
  45. package/dist/headless.d.ts +1 -2
  46. package/dist/headless.d.ts.map +1 -1
  47. package/dist/headless.js +222 -26
  48. package/dist/headless.js.map +1 -1
  49. package/dist/hooks.d.ts +8 -2
  50. package/dist/hooks.d.ts.map +1 -1
  51. package/dist/hooks.js +97 -11
  52. package/dist/hooks.js.map +1 -1
  53. package/dist/hud/api.d.ts +3 -18
  54. package/dist/hud/api.d.ts.map +1 -1
  55. package/dist/hud/api.js +9 -352
  56. package/dist/hud/api.js.map +1 -1
  57. package/dist/hud/palettes.d.ts.map +1 -1
  58. package/dist/hud/palettes.js +0 -180
  59. package/dist/hud/palettes.js.map +1 -1
  60. package/dist/hud/skins.d.ts.map +1 -1
  61. package/dist/hud/skins.js +0 -263
  62. package/dist/hud/skins.js.map +1 -1
  63. package/dist/hud/types.d.ts +2 -5
  64. package/dist/hud/types.d.ts.map +1 -1
  65. package/dist/index.d.ts +1 -4
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -4
  68. package/dist/index.js.map +1 -1
  69. package/dist/iteration-ledger.d.ts.map +1 -1
  70. package/dist/iteration-ledger.js +3 -2
  71. package/dist/iteration-ledger.js.map +1 -1
  72. package/dist/local-model.d.ts +150 -0
  73. package/dist/local-model.d.ts.map +1 -0
  74. package/dist/local-model.js +408 -0
  75. package/dist/local-model.js.map +1 -0
  76. package/dist/markdown.d.ts.map +1 -1
  77. package/dist/markdown.js +32 -10
  78. package/dist/markdown.js.map +1 -1
  79. package/dist/mcp.d.ts +35 -5
  80. package/dist/mcp.d.ts.map +1 -1
  81. package/dist/mcp.js +190 -13
  82. package/dist/mcp.js.map +1 -1
  83. package/dist/memory.d.ts.map +1 -1
  84. package/dist/memory.js +6 -4
  85. package/dist/memory.js.map +1 -1
  86. package/dist/model-detection.d.ts +14 -1
  87. package/dist/model-detection.d.ts.map +1 -1
  88. package/dist/model-detection.js +308 -115
  89. package/dist/model-detection.js.map +1 -1
  90. package/dist/parallel-tools.d.ts +9 -1
  91. package/dist/parallel-tools.d.ts.map +1 -1
  92. package/dist/parallel-tools.js +6 -5
  93. package/dist/parallel-tools.js.map +1 -1
  94. package/dist/plugins.d.ts +68 -0
  95. package/dist/plugins.d.ts.map +1 -1
  96. package/dist/plugins.js +201 -3
  97. package/dist/plugins.js.map +1 -1
  98. package/dist/policy.d.ts +43 -0
  99. package/dist/policy.d.ts.map +1 -0
  100. package/dist/policy.js +139 -0
  101. package/dist/policy.js.map +1 -0
  102. package/dist/project-config.d.ts +1 -2
  103. package/dist/project-config.d.ts.map +1 -1
  104. package/dist/project-config.js +0 -3
  105. package/dist/project-config.js.map +1 -1
  106. package/dist/providers/anthropic.d.ts.map +1 -1
  107. package/dist/providers/anthropic.js +36 -2
  108. package/dist/providers/anthropic.js.map +1 -1
  109. package/dist/providers/bedrock.d.ts.map +1 -1
  110. package/dist/providers/bedrock.js +83 -22
  111. package/dist/providers/bedrock.js.map +1 -1
  112. package/dist/providers/compat.d.ts +21 -0
  113. package/dist/providers/compat.d.ts.map +1 -1
  114. package/dist/providers/compat.js +176 -6
  115. package/dist/providers/compat.js.map +1 -1
  116. package/dist/providers/google.js.map +1 -1
  117. package/dist/providers/index.d.ts +19 -4
  118. package/dist/providers/index.d.ts.map +1 -1
  119. package/dist/providers/index.js +62 -9
  120. package/dist/providers/index.js.map +1 -1
  121. package/dist/providers/ollama.d.ts +2 -2
  122. package/dist/providers/ollama.d.ts.map +1 -1
  123. package/dist/providers/ollama.js +26 -6
  124. package/dist/providers/ollama.js.map +1 -1
  125. package/dist/providers/openai.d.ts.map +1 -1
  126. package/dist/providers/openai.js +14 -10
  127. package/dist/providers/openai.js.map +1 -1
  128. package/dist/providers/types.d.ts +8 -0
  129. package/dist/providers/types.d.ts.map +1 -1
  130. package/dist/providers/types.js +19 -10
  131. package/dist/providers/types.js.map +1 -1
  132. package/dist/replay.d.ts +37 -0
  133. package/dist/replay.d.ts.map +1 -0
  134. package/dist/replay.js +168 -0
  135. package/dist/replay.js.map +1 -0
  136. package/dist/risk.d.ts.map +1 -1
  137. package/dist/risk.js +15 -5
  138. package/dist/risk.js.map +1 -1
  139. package/dist/router.d.ts +133 -0
  140. package/dist/router.d.ts.map +1 -0
  141. package/dist/{model-router.js → router.js} +336 -10
  142. package/dist/router.js.map +1 -0
  143. package/dist/runlog.d.ts +185 -0
  144. package/dist/runlog.d.ts.map +1 -0
  145. package/dist/runlog.js +398 -0
  146. package/dist/runlog.js.map +1 -0
  147. package/dist/{sandbox.d.ts → sandbox/docker.d.ts} +1 -1
  148. package/dist/sandbox/docker.d.ts.map +1 -0
  149. package/dist/{sandbox.js → sandbox/docker.js} +1 -1
  150. package/dist/sandbox/docker.js.map +1 -0
  151. package/dist/sandbox/index.d.ts +36 -0
  152. package/dist/sandbox/index.d.ts.map +1 -0
  153. package/dist/sandbox/index.js +62 -0
  154. package/dist/sandbox/index.js.map +1 -0
  155. package/dist/{sandbox-native.d.ts → sandbox/native.d.ts} +2 -1
  156. package/dist/sandbox/native.d.ts.map +1 -0
  157. package/dist/{sandbox-native.js → sandbox/native.js} +38 -6
  158. package/dist/sandbox/native.js.map +1 -0
  159. package/dist/scope.d.ts +10 -0
  160. package/dist/scope.d.ts.map +1 -1
  161. package/dist/scope.js +76 -16
  162. package/dist/scope.js.map +1 -1
  163. package/dist/scuttlebot/client.d.ts +83 -0
  164. package/dist/scuttlebot/client.d.ts.map +1 -0
  165. package/dist/scuttlebot/client.js +350 -0
  166. package/dist/scuttlebot/client.js.map +1 -0
  167. package/dist/scuttlebot/config.d.ts +28 -0
  168. package/dist/scuttlebot/config.d.ts.map +1 -0
  169. package/dist/scuttlebot/config.js +91 -0
  170. package/dist/scuttlebot/config.js.map +1 -0
  171. package/dist/scuttlebot/http-client.d.ts +63 -0
  172. package/dist/scuttlebot/http-client.d.ts.map +1 -0
  173. package/dist/scuttlebot/http-client.js +124 -0
  174. package/dist/scuttlebot/http-client.js.map +1 -0
  175. package/dist/scuttlebot/index.d.ts +13 -0
  176. package/dist/scuttlebot/index.d.ts.map +1 -0
  177. package/dist/scuttlebot/index.js +10 -0
  178. package/dist/scuttlebot/index.js.map +1 -0
  179. package/dist/scuttlebot/irc-client.d.ts +124 -0
  180. package/dist/scuttlebot/irc-client.d.ts.map +1 -0
  181. package/dist/scuttlebot/irc-client.js +599 -0
  182. package/dist/scuttlebot/irc-client.js.map +1 -0
  183. package/dist/setup.d.ts.map +1 -1
  184. package/dist/setup.js +22 -54
  185. package/dist/setup.js.map +1 -1
  186. package/dist/skills.d.ts +58 -0
  187. package/dist/skills.d.ts.map +1 -1
  188. package/dist/skills.js +186 -16
  189. package/dist/skills.js.map +1 -1
  190. package/dist/storage.d.ts +0 -4
  191. package/dist/storage.d.ts.map +1 -1
  192. package/dist/storage.js +87 -8
  193. package/dist/storage.js.map +1 -1
  194. package/dist/streaming.d.ts +25 -0
  195. package/dist/streaming.d.ts.map +1 -1
  196. package/dist/streaming.js +59 -0
  197. package/dist/streaming.js.map +1 -1
  198. package/dist/styles.d.ts +6 -0
  199. package/dist/styles.d.ts.map +1 -1
  200. package/dist/styles.js +11 -0
  201. package/dist/styles.js.map +1 -1
  202. package/dist/summarization.js.map +1 -1
  203. package/dist/terminal-image.js +1 -1
  204. package/dist/terminal-image.js.map +1 -1
  205. package/dist/themes.d.ts +5 -4
  206. package/dist/themes.d.ts.map +1 -1
  207. package/dist/themes.js +35 -90
  208. package/dist/themes.js.map +1 -1
  209. package/dist/tools.d.ts +27 -3
  210. package/dist/tools.d.ts.map +1 -1
  211. package/dist/tools.js +352 -209
  212. package/dist/tools.js.map +1 -1
  213. package/dist/trust.d.ts +16 -3
  214. package/dist/trust.d.ts.map +1 -1
  215. package/dist/trust.js +23 -4
  216. package/dist/trust.js.map +1 -1
  217. package/dist/types.d.ts +4 -3
  218. package/dist/types.d.ts.map +1 -1
  219. package/dist/types.js +34 -44
  220. package/dist/types.js.map +1 -1
  221. package/dist/ui/agent.d.ts +4 -7
  222. package/dist/ui/agent.d.ts.map +1 -1
  223. package/dist/ui/agent.js +354 -73
  224. package/dist/ui/agent.js.map +1 -1
  225. package/dist/ui/animations.d.ts +37 -0
  226. package/dist/ui/animations.d.ts.map +1 -0
  227. package/dist/ui/animations.js +227 -0
  228. package/dist/ui/animations.js.map +1 -0
  229. package/dist/ui/chat-input-keys.d.ts +42 -0
  230. package/dist/ui/chat-input-keys.d.ts.map +1 -0
  231. package/dist/ui/chat-input-keys.js +360 -0
  232. package/dist/ui/chat-input-keys.js.map +1 -0
  233. package/dist/ui/chat-input.d.ts +5 -2
  234. package/dist/ui/chat-input.d.ts.map +1 -1
  235. package/dist/ui/chat-input.js +54 -308
  236. package/dist/ui/chat-input.js.map +1 -1
  237. package/dist/ui/commands.d.ts +15 -45
  238. package/dist/ui/commands.d.ts.map +1 -1
  239. package/dist/ui/commands.js +461 -2636
  240. package/dist/ui/commands.js.map +1 -1
  241. package/dist/ui/completions.d.ts +1 -0
  242. package/dist/ui/completions.d.ts.map +1 -1
  243. package/dist/ui/completions.js +36 -107
  244. package/dist/ui/completions.js.map +1 -1
  245. package/dist/ui/components.d.ts +14 -6
  246. package/dist/ui/components.d.ts.map +1 -1
  247. package/dist/ui/components.js +17 -226
  248. package/dist/ui/components.js.map +1 -1
  249. package/dist/ui/context.js +6 -6
  250. package/dist/ui/context.js.map +1 -1
  251. package/dist/ui/debug-log.d.ts +11 -0
  252. package/dist/ui/debug-log.d.ts.map +1 -0
  253. package/dist/ui/debug-log.js +21 -0
  254. package/dist/ui/debug-log.js.map +1 -0
  255. package/dist/ui/error-boundary.d.ts.map +1 -1
  256. package/dist/ui/error-boundary.js.map +1 -1
  257. package/dist/ui/frame.d.ts.map +1 -1
  258. package/dist/ui/frame.js +1 -3
  259. package/dist/ui/frame.js.map +1 -1
  260. package/dist/ui/index.d.ts +11 -3
  261. package/dist/ui/index.d.ts.map +1 -1
  262. package/dist/ui/index.js +46 -887
  263. package/dist/ui/index.js.map +1 -1
  264. package/dist/ui/input-utils.d.ts +20 -0
  265. package/dist/ui/input-utils.d.ts.map +1 -0
  266. package/dist/ui/input-utils.js +35 -0
  267. package/dist/ui/input-utils.js.map +1 -0
  268. package/dist/ui/messages.d.ts +8 -7
  269. package/dist/ui/messages.d.ts.map +1 -1
  270. package/dist/ui/messages.js +51 -35
  271. package/dist/ui/messages.js.map +1 -1
  272. package/dist/ui/modals/index.d.ts +11 -0
  273. package/dist/ui/modals/index.d.ts.map +1 -0
  274. package/dist/ui/modals/index.js +10 -0
  275. package/dist/ui/modals/index.js.map +1 -0
  276. package/dist/ui/{modals.d.ts → modals/prompts.d.ts} +5 -20
  277. package/dist/ui/modals/prompts.d.ts.map +1 -0
  278. package/dist/ui/{modals.js → modals/prompts.js} +14 -94
  279. package/dist/ui/modals/prompts.js.map +1 -0
  280. package/dist/ui/modals/selectors.d.ts +33 -0
  281. package/dist/ui/modals/selectors.d.ts.map +1 -0
  282. package/dist/ui/modals/selectors.js +111 -0
  283. package/dist/ui/modals/selectors.js.map +1 -0
  284. package/dist/ui/modals/setup.d.ts +17 -0
  285. package/dist/ui/modals/setup.d.ts.map +1 -0
  286. package/dist/ui/modals/setup.js +51 -0
  287. package/dist/ui/modals/setup.js.map +1 -0
  288. package/dist/ui/regions/input-region.d.ts +40 -0
  289. package/dist/ui/regions/input-region.d.ts.map +1 -0
  290. package/dist/ui/regions/input-region.js +116 -0
  291. package/dist/ui/regions/input-region.js.map +1 -0
  292. package/dist/ui/regions/modal-host.d.ts +41 -0
  293. package/dist/ui/regions/modal-host.d.ts.map +1 -0
  294. package/dist/ui/regions/modal-host.js +51 -0
  295. package/dist/ui/regions/modal-host.js.map +1 -0
  296. package/dist/ui/regions/render-probe.d.ts +22 -0
  297. package/dist/ui/regions/render-probe.d.ts.map +1 -0
  298. package/dist/ui/regions/render-probe.js +45 -0
  299. package/dist/ui/regions/render-probe.js.map +1 -0
  300. package/dist/ui/regions/static-scrollback.d.ts +39 -0
  301. package/dist/ui/regions/static-scrollback.d.ts.map +1 -0
  302. package/dist/ui/regions/static-scrollback.js +68 -0
  303. package/dist/ui/regions/static-scrollback.js.map +1 -0
  304. package/dist/ui/regions/status-region.d.ts +24 -0
  305. package/dist/ui/regions/status-region.d.ts.map +1 -0
  306. package/dist/ui/regions/status-region.js +17 -0
  307. package/dist/ui/regions/status-region.js.map +1 -0
  308. package/dist/ui/regions/transcript-region.d.ts +41 -0
  309. package/dist/ui/regions/transcript-region.d.ts.map +1 -0
  310. package/dist/ui/regions/transcript-region.js +52 -0
  311. package/dist/ui/regions/transcript-region.js.map +1 -0
  312. package/dist/ui/self-restart.d.ts +9 -0
  313. package/dist/ui/self-restart.d.ts.map +1 -0
  314. package/dist/ui/self-restart.js +24 -0
  315. package/dist/ui/self-restart.js.map +1 -0
  316. package/dist/ui/state/use-chat-controller.d.ts +23 -0
  317. package/dist/ui/state/use-chat-controller.d.ts.map +1 -0
  318. package/dist/ui/state/use-chat-controller.js +643 -0
  319. package/dist/ui/state/use-chat-controller.js.map +1 -0
  320. package/dist/ui/state/use-loop-state.d.ts +23 -0
  321. package/dist/ui/state/use-loop-state.d.ts.map +1 -0
  322. package/dist/ui/state/use-loop-state.js +39 -0
  323. package/dist/ui/state/use-loop-state.js.map +1 -0
  324. package/dist/ui/state/use-modal-state.d.ts +52 -0
  325. package/dist/ui/state/use-modal-state.d.ts.map +1 -0
  326. package/dist/ui/state/use-modal-state.js +44 -0
  327. package/dist/ui/state/use-modal-state.js.map +1 -0
  328. package/dist/ui/state/use-model-state.d.ts +29 -0
  329. package/dist/ui/state/use-model-state.d.ts.map +1 -0
  330. package/dist/ui/state/use-model-state.js +47 -0
  331. package/dist/ui/state/use-model-state.js.map +1 -0
  332. package/dist/ui/state/use-processing-state.d.ts +24 -0
  333. package/dist/ui/state/use-processing-state.d.ts.map +1 -0
  334. package/dist/ui/state/use-processing-state.js +46 -0
  335. package/dist/ui/state/use-processing-state.js.map +1 -0
  336. package/dist/ui/state/use-queue-state.d.ts +19 -0
  337. package/dist/ui/state/use-queue-state.d.ts.map +1 -0
  338. package/dist/ui/state/use-queue-state.js +30 -0
  339. package/dist/ui/state/use-queue-state.js.map +1 -0
  340. package/dist/ui/state/use-session-init.d.ts +22 -0
  341. package/dist/ui/state/use-session-init.d.ts.map +1 -0
  342. package/dist/ui/state/use-session-init.js +77 -0
  343. package/dist/ui/state/use-session-init.js.map +1 -0
  344. package/dist/ui/state/use-session-stats.d.ts +16 -0
  345. package/dist/ui/state/use-session-stats.d.ts.map +1 -0
  346. package/dist/ui/state/use-session-stats.js +18 -0
  347. package/dist/ui/state/use-session-stats.js.map +1 -0
  348. package/dist/ui/state/use-terminal-width.d.ts +8 -0
  349. package/dist/ui/state/use-terminal-width.d.ts.map +1 -0
  350. package/dist/ui/state/use-terminal-width.js +22 -0
  351. package/dist/ui/state/use-terminal-width.js.map +1 -0
  352. package/dist/ui/state/use-transcript-state.d.ts +21 -0
  353. package/dist/ui/state/use-transcript-state.d.ts.map +1 -0
  354. package/dist/ui/state/use-transcript-state.js +49 -0
  355. package/dist/ui/state/use-transcript-state.js.map +1 -0
  356. package/dist/ui/status-bar.d.ts +4 -1
  357. package/dist/ui/status-bar.d.ts.map +1 -1
  358. package/dist/ui/status-bar.js +13 -3
  359. package/dist/ui/status-bar.js.map +1 -1
  360. package/dist/ui/types.d.ts +3 -0
  361. package/dist/ui/types.d.ts.map +1 -1
  362. package/dist/version-check.d.ts.map +1 -1
  363. package/dist/version-check.js +10 -0
  364. package/dist/version-check.js.map +1 -1
  365. package/package.json +12 -8
  366. package/dist/agents/agent-config-loader.d.ts +0 -60
  367. package/dist/agents/agent-config-loader.d.ts.map +0 -1
  368. package/dist/agents/agent-config-loader.js +0 -402
  369. package/dist/agents/agent-config-loader.js.map +0 -1
  370. package/dist/agents/agent-config-presets.d.ts +0 -10
  371. package/dist/agents/agent-config-presets.d.ts.map +0 -1
  372. package/dist/agents/agent-config-presets.js +0 -940
  373. package/dist/agents/agent-config-presets.js.map +0 -1
  374. package/dist/agents/agent-config-types.d.ts +0 -145
  375. package/dist/agents/agent-config-types.d.ts.map +0 -1
  376. package/dist/agents/agent-config-types.js +0 -12
  377. package/dist/agents/agent-config-types.js.map +0 -1
  378. package/dist/agents/agent-detection.d.ts +0 -35
  379. package/dist/agents/agent-detection.d.ts.map +0 -1
  380. package/dist/agents/agent-detection.js +0 -110
  381. package/dist/agents/agent-detection.js.map +0 -1
  382. package/dist/agents/aggregator.d.ts +0 -19
  383. package/dist/agents/aggregator.d.ts.map +0 -1
  384. package/dist/agents/aggregator.js +0 -141
  385. package/dist/agents/aggregator.js.map +0 -1
  386. package/dist/agents/cli-backend.d.ts +0 -32
  387. package/dist/agents/cli-backend.d.ts.map +0 -1
  388. package/dist/agents/cli-backend.js +0 -271
  389. package/dist/agents/cli-backend.js.map +0 -1
  390. package/dist/agents/council-types.d.ts +0 -115
  391. package/dist/agents/council-types.d.ts.map +0 -1
  392. package/dist/agents/council-types.js +0 -81
  393. package/dist/agents/council-types.js.map +0 -1
  394. package/dist/agents/council.d.ts +0 -112
  395. package/dist/agents/council.d.ts.map +0 -1
  396. package/dist/agents/council.js +0 -722
  397. package/dist/agents/council.js.map +0 -1
  398. package/dist/agents/decomposer.d.ts +0 -33
  399. package/dist/agents/decomposer.d.ts.map +0 -1
  400. package/dist/agents/decomposer.js +0 -138
  401. package/dist/agents/decomposer.js.map +0 -1
  402. package/dist/agents/dynamic-tools.d.ts +0 -52
  403. package/dist/agents/dynamic-tools.d.ts.map +0 -1
  404. package/dist/agents/dynamic-tools.js +0 -395
  405. package/dist/agents/dynamic-tools.js.map +0 -1
  406. package/dist/agents/index.d.ts +0 -29
  407. package/dist/agents/index.d.ts.map +0 -1
  408. package/dist/agents/index.js +0 -29
  409. package/dist/agents/index.js.map +0 -1
  410. package/dist/agents/installer.d.ts +0 -39
  411. package/dist/agents/installer.d.ts.map +0 -1
  412. package/dist/agents/installer.js +0 -205
  413. package/dist/agents/installer.js.map +0 -1
  414. package/dist/agents/orchestrator.d.ts +0 -106
  415. package/dist/agents/orchestrator.d.ts.map +0 -1
  416. package/dist/agents/orchestrator.js +0 -363
  417. package/dist/agents/orchestrator.js.map +0 -1
  418. package/dist/agents/sdk-backend.d.ts +0 -63
  419. package/dist/agents/sdk-backend.d.ts.map +0 -1
  420. package/dist/agents/sdk-backend.js +0 -489
  421. package/dist/agents/sdk-backend.js.map +0 -1
  422. package/dist/agents/swarm-types.d.ts +0 -84
  423. package/dist/agents/swarm-types.d.ts.map +0 -1
  424. package/dist/agents/swarm-types.js +0 -20
  425. package/dist/agents/swarm-types.js.map +0 -1
  426. package/dist/agents/swarm.d.ts +0 -79
  427. package/dist/agents/swarm.d.ts.map +0 -1
  428. package/dist/agents/swarm.js +0 -375
  429. package/dist/agents/swarm.js.map +0 -1
  430. package/dist/agents/tools.d.ts +0 -26
  431. package/dist/agents/tools.d.ts.map +0 -1
  432. package/dist/agents/tools.js +0 -776
  433. package/dist/agents/tools.js.map +0 -1
  434. package/dist/agents/types.d.ts +0 -108
  435. package/dist/agents/types.d.ts.map +0 -1
  436. package/dist/agents/types.js +0 -43
  437. package/dist/agents/types.js.map +0 -1
  438. package/dist/api-server.d.ts +0 -36
  439. package/dist/api-server.d.ts.map +0 -1
  440. package/dist/api-server.js +0 -255
  441. package/dist/api-server.js.map +0 -1
  442. package/dist/auto-checkpoint.d.ts +0 -35
  443. package/dist/auto-checkpoint.d.ts.map +0 -1
  444. package/dist/auto-checkpoint.js +0 -143
  445. package/dist/auto-checkpoint.js.map +0 -1
  446. package/dist/background-jobs.d.ts +0 -45
  447. package/dist/background-jobs.d.ts.map +0 -1
  448. package/dist/background-jobs.js +0 -127
  449. package/dist/background-jobs.js.map +0 -1
  450. package/dist/branching.d.ts +0 -56
  451. package/dist/branching.d.ts.map +0 -1
  452. package/dist/branching.js +0 -211
  453. package/dist/branching.js.map +0 -1
  454. package/dist/cli/agent.d.ts +0 -9
  455. package/dist/cli/agent.d.ts.map +0 -1
  456. package/dist/cli/agent.js +0 -314
  457. package/dist/cli/agent.js.map +0 -1
  458. package/dist/cli/commands.d.ts +0 -12
  459. package/dist/cli/commands.d.ts.map +0 -1
  460. package/dist/cli/commands.js +0 -943
  461. package/dist/cli/commands.js.map +0 -1
  462. package/dist/cli/index.d.ts +0 -8
  463. package/dist/cli/index.d.ts.map +0 -1
  464. package/dist/cli/index.js +0 -237
  465. package/dist/cli/index.js.map +0 -1
  466. package/dist/cli/types.d.ts +0 -33
  467. package/dist/cli/types.d.ts.map +0 -1
  468. package/dist/cli/types.js +0 -21
  469. package/dist/cli/types.js.map +0 -1
  470. package/dist/companions.d.ts +0 -54
  471. package/dist/companions.d.ts.map +0 -1
  472. package/dist/companions.js +0 -440
  473. package/dist/companions.js.map +0 -1
  474. package/dist/completion.d.ts +0 -75
  475. package/dist/completion.d.ts.map +0 -1
  476. package/dist/completion.js +0 -234
  477. package/dist/completion.js.map +0 -1
  478. package/dist/file-watcher.d.ts +0 -91
  479. package/dist/file-watcher.d.ts.map +0 -1
  480. package/dist/file-watcher.js +0 -269
  481. package/dist/file-watcher.js.map +0 -1
  482. package/dist/hud/theme-packs/api.d.ts +0 -51
  483. package/dist/hud/theme-packs/api.d.ts.map +0 -1
  484. package/dist/hud/theme-packs/api.js +0 -145
  485. package/dist/hud/theme-packs/api.js.map +0 -1
  486. package/dist/hud/theme-packs/index.d.ts +0 -18
  487. package/dist/hud/theme-packs/index.d.ts.map +0 -1
  488. package/dist/hud/theme-packs/index.js +0 -38
  489. package/dist/hud/theme-packs/index.js.map +0 -1
  490. package/dist/hud/theme-packs/types.d.ts +0 -29
  491. package/dist/hud/theme-packs/types.d.ts.map +0 -1
  492. package/dist/hud/theme-packs/types.js +0 -9
  493. package/dist/hud/theme-packs/types.js.map +0 -1
  494. package/dist/idle-eviction.d.ts +0 -34
  495. package/dist/idle-eviction.d.ts.map +0 -1
  496. package/dist/idle-eviction.js +0 -78
  497. package/dist/idle-eviction.js.map +0 -1
  498. package/dist/keyboard.d.ts +0 -57
  499. package/dist/keyboard.d.ts.map +0 -1
  500. package/dist/keyboard.js +0 -265
  501. package/dist/keyboard.js.map +0 -1
  502. package/dist/model-router.d.ts +0 -67
  503. package/dist/model-router.d.ts.map +0 -1
  504. package/dist/model-router.js.map +0 -1
  505. package/dist/providers/openai-compat-shims.d.ts +0 -31
  506. package/dist/providers/openai-compat-shims.d.ts.map +0 -1
  507. package/dist/providers/openai-compat-shims.js +0 -179
  508. package/dist/providers/openai-compat-shims.js.map +0 -1
  509. package/dist/sandbox-native.d.ts.map +0 -1
  510. package/dist/sandbox-native.js.map +0 -1
  511. package/dist/sandbox.d.ts.map +0 -1
  512. package/dist/sandbox.js.map +0 -1
  513. package/dist/session-timeout.d.ts +0 -31
  514. package/dist/session-timeout.d.ts.map +0 -1
  515. package/dist/session-timeout.js +0 -100
  516. package/dist/session-timeout.js.map +0 -1
  517. package/dist/smart-router.d.ts +0 -73
  518. package/dist/smart-router.d.ts.map +0 -1
  519. package/dist/smart-router.js +0 -332
  520. package/dist/smart-router.js.map +0 -1
  521. package/dist/terminal-recording.d.ts +0 -55
  522. package/dist/terminal-recording.d.ts.map +0 -1
  523. package/dist/terminal-recording.js +0 -182
  524. package/dist/terminal-recording.js.map +0 -1
  525. package/dist/tmux.d.ts +0 -35
  526. package/dist/tmux.d.ts.map +0 -1
  527. package/dist/tmux.js +0 -106
  528. package/dist/tmux.js.map +0 -1
  529. package/dist/ui/modals.d.ts.map +0 -1
  530. package/dist/ui/modals.js.map +0 -1
  531. package/dist/ui/pack-picker.d.ts +0 -12
  532. package/dist/ui/pack-picker.d.ts.map +0 -1
  533. package/dist/ui/pack-picker.js +0 -101
  534. package/dist/ui/pack-picker.js.map +0 -1
  535. package/dist/ui/theme-picker.d.ts +0 -24
  536. package/dist/ui/theme-picker.d.ts.map +0 -1
  537. package/dist/ui/theme-picker.js +0 -190
  538. package/dist/ui/theme-picker.js.map +0 -1
@@ -1,205 +0,0 @@
1
- /**
2
- * Calliope Agents — Agent & SDK Installer
3
- *
4
- * Detects missing agent CLIs and SDK backends, provides install commands,
5
- * and can run installations directly.
6
- */
7
- import { execFileSync, execSync } from 'child_process';
8
- import { detectAgents } from './agent-detection.js';
9
- import { isClaudeSdkAvailable, isOpenaiSdkAvailable, isGoogleAdkAvailable } from './sdk-backend.js';
10
- /**
11
- * CLI agent install commands
12
- */
13
- const CLI_AGENTS = {
14
- calliope: {
15
- description: 'Calliope CLI — multi-model AI agent (self)',
16
- install: 'npm install -g @calliopelabs/cli',
17
- check: 'calliope',
18
- },
19
- claude: {
20
- description: 'Claude Code CLI — Anthropic coding agent',
21
- install: 'npm install -g @anthropic-ai/claude-code',
22
- altInstall: 'brew install --cask claude-code',
23
- check: 'claude',
24
- },
25
- gemini: {
26
- description: 'Gemini CLI — Google AI coding agent',
27
- install: 'npm install -g @google/gemini-cli',
28
- check: 'gemini',
29
- },
30
- codex: {
31
- description: 'Codex CLI — OpenAI coding agent',
32
- install: 'npm install -g @openai/codex',
33
- altInstall: 'brew install --cask codex',
34
- check: 'codex',
35
- },
36
- };
37
- /**
38
- * SDK backend install commands
39
- */
40
- const SDK_BACKENDS = {
41
- 'claude-sdk': {
42
- description: 'Claude Agent SDK — in-process Claude agent (supports Anthropic, Bedrock, Vertex)',
43
- install: 'npm install -g @anthropic-ai/claude-agent-sdk',
44
- },
45
- 'openai-sdk': {
46
- description: 'OpenAI Agents JS — in-process agent framework (supports OpenAI, Azure, Ollama, OpenRouter, Groq, etc.)',
47
- install: 'npm install -g @openai/agents',
48
- },
49
- 'google-adk': {
50
- description: 'Google ADK — in-process agent framework (supports Gemini, Vertex AI)',
51
- install: 'npm install -g @google/adk',
52
- },
53
- };
54
- // ============================================================================
55
- // Detection
56
- // ============================================================================
57
- function commandExists(command) {
58
- try {
59
- execFileSync('which', [command], { stdio: 'ignore' });
60
- return true;
61
- }
62
- catch {
63
- return false;
64
- }
65
- }
66
- /**
67
- * Get full status of all installable items
68
- */
69
- export async function getInstallableItems() {
70
- const items = [];
71
- // CLI agents
72
- const agents = detectAgents();
73
- for (const agent of agents) {
74
- const cliInfo = CLI_AGENTS[agent.type];
75
- if (!cliInfo)
76
- continue;
77
- const cliInstalled = commandExists(agent.command);
78
- items.push({
79
- name: agent.type,
80
- description: cliInfo.description,
81
- category: 'cli',
82
- installCommand: cliInfo.install,
83
- checkCommand: agent.command,
84
- installed: cliInstalled,
85
- reason: cliInstalled ? undefined : `${agent.command} not found in PATH`,
86
- });
87
- }
88
- // SDK backends
89
- const claudeSdk = await isClaudeSdkAvailable();
90
- items.push({
91
- name: 'claude-sdk',
92
- description: SDK_BACKENDS['claude-sdk'].description,
93
- category: 'sdk',
94
- installCommand: SDK_BACKENDS['claude-sdk'].install,
95
- installed: claudeSdk,
96
- reason: claudeSdk ? undefined : 'Package not installed',
97
- });
98
- const openaiSdk = await isOpenaiSdkAvailable();
99
- items.push({
100
- name: 'openai-sdk',
101
- description: SDK_BACKENDS['openai-sdk'].description,
102
- category: 'sdk',
103
- installCommand: SDK_BACKENDS['openai-sdk'].install,
104
- installed: openaiSdk,
105
- reason: openaiSdk ? undefined : 'Package not installed',
106
- });
107
- const googleAdk = await isGoogleAdkAvailable();
108
- items.push({
109
- name: 'google-adk',
110
- description: SDK_BACKENDS['google-adk'].description,
111
- category: 'sdk',
112
- installCommand: SDK_BACKENDS['google-adk'].install,
113
- installed: googleAdk,
114
- reason: googleAdk ? undefined : 'Package not installed',
115
- });
116
- return items;
117
- }
118
- /**
119
- * Format install status report for display
120
- */
121
- export async function getInstallReport() {
122
- const items = await getInstallableItems();
123
- const cliItems = items.filter(i => i.category === 'cli');
124
- const sdkItems = items.filter(i => i.category === 'sdk');
125
- const lines = [];
126
- lines.push('Agent CLIs:');
127
- for (const item of cliItems) {
128
- const status = item.installed ? ' ✓' : ' ✗';
129
- const label = item.installed ? 'installed' : 'not installed';
130
- lines.push(`${status} ${item.name} — ${label}`);
131
- if (!item.installed) {
132
- lines.push(` Install: ${item.installCommand}`);
133
- const cliDef = CLI_AGENTS[item.name];
134
- if (cliDef?.altInstall) {
135
- lines.push(` or: ${cliDef.altInstall}`);
136
- }
137
- }
138
- }
139
- lines.push('');
140
- lines.push('SDK Backends (optional, for in-process execution):');
141
- for (const item of sdkItems) {
142
- const status = item.installed ? ' ✓' : ' ✗';
143
- const label = item.installed ? 'installed' : 'not installed';
144
- lines.push(`${status} ${item.name} — ${label}`);
145
- if (!item.installed) {
146
- lines.push(` ${item.description}`);
147
- lines.push(` Install: ${item.installCommand}`);
148
- }
149
- }
150
- const missing = items.filter(i => !i.installed);
151
- if (missing.length === 0) {
152
- lines.push('');
153
- lines.push('All agents and SDK backends are installed!');
154
- }
155
- else {
156
- lines.push('');
157
- lines.push(`Install all missing: ${missing.map(i => i.installCommand).join(' && ')}`);
158
- }
159
- return lines.join('\n');
160
- }
161
- /**
162
- * Install a specific item by name
163
- * Returns { success, output } with install result
164
- */
165
- export function installItem(name) {
166
- // Find the install command
167
- const cliInfo = CLI_AGENTS[name];
168
- const sdkInfo = SDK_BACKENDS[name];
169
- const installCmd = cliInfo?.install || sdkInfo?.install;
170
- if (!installCmd) {
171
- return { success: false, output: `Unknown item: ${name}. Available: ${[...Object.keys(CLI_AGENTS), ...Object.keys(SDK_BACKENDS)].join(', ')}` };
172
- }
173
- try {
174
- const output = execSync(installCmd, {
175
- encoding: 'utf-8',
176
- timeout: 120_000, // 2 minute timeout
177
- stdio: ['ignore', 'pipe', 'pipe'],
178
- });
179
- return { success: true, output: output.trim() || `${name} installed successfully.` };
180
- }
181
- catch (error) {
182
- const msg = error instanceof Error ? error.stderr || error.message : String(error);
183
- return { success: false, output: `Failed to install ${name}: ${msg}` };
184
- }
185
- }
186
- /**
187
- * Install all missing items
188
- */
189
- export async function installAllMissing() {
190
- const items = await getInstallableItems();
191
- const missing = items.filter(i => !i.installed);
192
- const installed = [];
193
- const failed = [];
194
- for (const item of missing) {
195
- const result = installItem(item.name);
196
- if (result.success) {
197
- installed.push(item.name);
198
- }
199
- else {
200
- failed.push(`${item.name}: ${result.output}`);
201
- }
202
- }
203
- return { installed, failed };
204
- }
205
- //# sourceMappingURL=installer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/agents/installer.ts"],"names":[],"mappings":"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"}
@@ -1,106 +0,0 @@
1
- /**
2
- * Calliope Agents — Orchestrator
3
- *
4
- * Task queue management with depth limiting and priority ordering.
5
- */
6
- import type { SubAgentTask, SubAgentType, TaskPriority, TaskExecutor, OrchestratorConfig } from './types.js';
7
- /**
8
- * Agent Orchestrator
9
- *
10
- * Manages task queue, depth limiting, and sub-agent execution.
11
- */
12
- declare class AgentOrchestrator {
13
- private config;
14
- private tasks;
15
- private taskQueue;
16
- private runningTasks;
17
- private currentCwd;
18
- constructor(config?: Partial<OrchestratorConfig>);
19
- /**
20
- * Update configuration
21
- */
22
- updateConfig(config: Partial<OrchestratorConfig>): void;
23
- /**
24
- * Set the working directory for task execution
25
- */
26
- setCwd(cwd: string): void;
27
- /**
28
- * Spawn a sub-agent task
29
- */
30
- spawnAgent(prompt: string, agent: SubAgentType, options?: {
31
- parentId?: string;
32
- priority?: TaskPriority;
33
- background?: boolean;
34
- cwd?: string;
35
- model?: string;
36
- provider?: string;
37
- executor?: TaskExecutor;
38
- systemPrompt?: string;
39
- timeout?: number;
40
- }): Promise<SubAgentTask>;
41
- /**
42
- * Get a task by ID
43
- */
44
- getTask(taskId: string): SubAgentTask | undefined;
45
- /**
46
- * Wait for a task to reach a final state.
47
- */
48
- waitForTask(taskId: string, options?: {
49
- pollIntervalMs?: number;
50
- timeoutMs?: number;
51
- }): Promise<SubAgentTask>;
52
- /**
53
- * Get all tasks
54
- */
55
- getAllTasks(): SubAgentTask[];
56
- /**
57
- * Get tasks by status
58
- */
59
- getTasksByStatus(status: SubAgentTask['status']): SubAgentTask[];
60
- /**
61
- * Get task tree (task and all descendants)
62
- */
63
- getTaskTree(taskId: string): SubAgentTask[];
64
- /**
65
- * Cancel a task and its children
66
- */
67
- cancelTask(taskId: string): Promise<void>;
68
- /**
69
- * Get orchestrator statistics
70
- */
71
- getStats(): {
72
- totalTasks: number;
73
- queuedTasks: number;
74
- runningTasks: number;
75
- completedTasks: number;
76
- failedTasks: number;
77
- cancelledTasks: number;
78
- maxDepthUsed: number;
79
- };
80
- /**
81
- * Cleanup old completed tasks
82
- */
83
- cleanup(maxAgeMs?: number): number;
84
- /**
85
- * Reset orchestrator state
86
- */
87
- reset(): void;
88
- /**
89
- * Insert task into queue based on priority
90
- */
91
- private insertIntoQueue;
92
- /**
93
- * Process the task queue
94
- */
95
- private processQueue;
96
- /**
97
- * Run a single task
98
- */
99
- private runTask;
100
- }
101
- /**
102
- * Singleton orchestrator instance
103
- */
104
- export declare const orchestrator: AgentOrchestrator;
105
- export {};
106
- //# sourceMappingURL=orchestrator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA4BpB;;;;GAIG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAyB;gBAE/B,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAIpD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC,YAAY,CAAC;IAiGxB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GACL,OAAO,CAAC,YAAY,CAAC;IAuBxB;;OAEG;IACH,WAAW,IAAI,YAAY,EAAE;IAI7B;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE;IAIhE;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAW3C;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB;IAaD;;OAEG;IACH,OAAO,CAAC,QAAQ,GAAE,MAAuB,GAAG,MAAM;IAmClD;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;YACW,YAAY;IAmB1B;;OAEG;YACW,OAAO;CAsDtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,mBAA0B,CAAC"}
@@ -1,363 +0,0 @@
1
- /**
2
- * Calliope Agents — Orchestrator
3
- *
4
- * Task queue management with depth limiting and priority ordering.
5
- */
6
- import { randomUUID } from 'crypto';
7
- import { DEFAULT_ORCHESTRATOR_CONFIG } from './types.js';
8
- import { executeAgent, cancelTask as cancelBackendTask } from './cli-backend.js';
9
- import { executeSdkAgent } from './sdk-backend.js';
10
- import { isAgentAvailable } from './agent-detection.js';
11
- /**
12
- * Priority values for queue ordering
13
- */
14
- const PRIORITY_ORDER = {
15
- critical: 4,
16
- high: 3,
17
- normal: 2,
18
- low: 1,
19
- };
20
- const FINAL_TASK_STATUSES = new Set(['completed', 'failed', 'cancelled']);
21
- function isFinalTaskStatus(status) {
22
- return FINAL_TASK_STATUSES.has(status);
23
- }
24
- function isTaskCancelled(task) {
25
- return task.status === 'cancelled';
26
- }
27
- /**
28
- * Agent Orchestrator
29
- *
30
- * Manages task queue, depth limiting, and sub-agent execution.
31
- */
32
- class AgentOrchestrator {
33
- config;
34
- tasks = new Map();
35
- taskQueue = [];
36
- runningTasks = new Set();
37
- currentCwd = process.cwd();
38
- constructor(config = {}) {
39
- this.config = { ...DEFAULT_ORCHESTRATOR_CONFIG, ...config };
40
- }
41
- /**
42
- * Update configuration
43
- */
44
- updateConfig(config) {
45
- this.config = { ...this.config, ...config };
46
- }
47
- /**
48
- * Set the working directory for task execution
49
- */
50
- setCwd(cwd) {
51
- this.currentCwd = cwd;
52
- }
53
- /**
54
- * Spawn a sub-agent task
55
- */
56
- async spawnAgent(prompt, agent, options = {}) {
57
- // Validate agent availability
58
- if (!isAgentAvailable(agent)) {
59
- throw new Error(`Agent '${agent}' is not available. Check CLI installation and API key.`);
60
- }
61
- // Check queue limits
62
- if (this.taskQueue.length >= this.config.maxQueueSize) {
63
- throw new Error(`Task queue is full (max ${this.config.maxQueueSize})`);
64
- }
65
- // Calculate depth and check limits
66
- let depth = 0;
67
- if (options.parentId) {
68
- const parent = this.tasks.get(options.parentId);
69
- if (parent) {
70
- depth = parent.depth + 1;
71
- // Check nesting allowed
72
- if (!this.config.allowNestedSubAgents && parent.depth > 0) {
73
- throw new Error('Nested sub-agents are disabled');
74
- }
75
- // Check depth limit
76
- if (depth > this.config.maxDepth) {
77
- throw new Error(`Maximum sub-agent depth (${this.config.maxDepth}) exceeded`);
78
- }
79
- // Check children per task limit
80
- if (parent.childIds.length >= this.config.maxChildrenPerTask) {
81
- throw new Error(`Maximum children per task (${this.config.maxChildrenPerTask}) exceeded`);
82
- }
83
- }
84
- }
85
- // Check total sub-agents limit
86
- const totalSubAgents = Array.from(this.tasks.values())
87
- .filter(t => t.parentId && !['completed', 'failed', 'cancelled'].includes(t.status))
88
- .length;
89
- if (options.parentId && totalSubAgents >= this.config.maxTotalSubAgents) {
90
- throw new Error(`Maximum total sub-agents (${this.config.maxTotalSubAgents}) exceeded`);
91
- }
92
- // Create task
93
- const task = {
94
- id: randomUUID(),
95
- prompt,
96
- agent,
97
- executor: options.executor || 'cli',
98
- status: 'pending',
99
- priority: options.priority || 'normal',
100
- parentId: options.parentId,
101
- depth,
102
- childIds: [],
103
- cwd: options.cwd || this.currentCwd,
104
- model: options.model,
105
- provider: options.provider,
106
- systemPrompt: options.systemPrompt,
107
- timeout: options.timeout,
108
- createdAt: new Date(),
109
- updatedAt: new Date(),
110
- };
111
- this.tasks.set(task.id, task);
112
- // Link to parent
113
- if (options.parentId) {
114
- const parent = this.tasks.get(options.parentId);
115
- if (parent) {
116
- parent.childIds.push(task.id);
117
- }
118
- }
119
- // Execute based on background flag
120
- if (options.background) {
121
- // Queue for background execution
122
- this.insertIntoQueue(task.id, task.priority);
123
- task.status = 'queued';
124
- task.updatedAt = new Date();
125
- void this.processQueue();
126
- }
127
- else {
128
- // Execute immediately and wait
129
- await this.runTask(task);
130
- }
131
- return task;
132
- }
133
- /**
134
- * Get a task by ID
135
- */
136
- getTask(taskId) {
137
- return this.tasks.get(taskId);
138
- }
139
- /**
140
- * Wait for a task to reach a final state.
141
- */
142
- async waitForTask(taskId, options = {}) {
143
- const pollIntervalMs = options.pollIntervalMs ?? 25;
144
- const timeoutMs = options.timeoutMs;
145
- const startedAt = Date.now();
146
- while (true) {
147
- const task = this.tasks.get(taskId);
148
- if (!task) {
149
- throw new Error(`Task ${taskId} not found`);
150
- }
151
- if (isFinalTaskStatus(task.status)) {
152
- return task;
153
- }
154
- if (typeof timeoutMs === 'number' && Date.now() - startedAt >= timeoutMs) {
155
- throw new Error(`Timed out waiting for task ${taskId}`);
156
- }
157
- await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
158
- }
159
- }
160
- /**
161
- * Get all tasks
162
- */
163
- getAllTasks() {
164
- return Array.from(this.tasks.values());
165
- }
166
- /**
167
- * Get tasks by status
168
- */
169
- getTasksByStatus(status) {
170
- return Array.from(this.tasks.values()).filter(t => t.status === status);
171
- }
172
- /**
173
- * Get task tree (task and all descendants)
174
- */
175
- getTaskTree(taskId) {
176
- const task = this.tasks.get(taskId);
177
- if (!task)
178
- return [];
179
- const tree = [task];
180
- for (const childId of task.childIds) {
181
- tree.push(...this.getTaskTree(childId));
182
- }
183
- return tree;
184
- }
185
- /**
186
- * Cancel a task and its children
187
- */
188
- async cancelTask(taskId) {
189
- const task = this.tasks.get(taskId);
190
- if (!task)
191
- return;
192
- // Cancel children first
193
- for (const childId of task.childIds) {
194
- await this.cancelTask(childId);
195
- }
196
- // Remove from queue
197
- const queueIndex = this.taskQueue.indexOf(taskId);
198
- if (queueIndex !== -1) {
199
- this.taskQueue.splice(queueIndex, 1);
200
- }
201
- // Cancel if running
202
- if (this.runningTasks.has(taskId)) {
203
- cancelBackendTask(taskId);
204
- this.runningTasks.delete(taskId);
205
- }
206
- task.status = 'cancelled';
207
- task.completedAt = new Date();
208
- task.updatedAt = new Date();
209
- }
210
- /**
211
- * Get orchestrator statistics
212
- */
213
- getStats() {
214
- const allTasks = Array.from(this.tasks.values());
215
- return {
216
- totalTasks: this.tasks.size,
217
- queuedTasks: this.taskQueue.length,
218
- runningTasks: this.runningTasks.size,
219
- completedTasks: allTasks.filter(t => t.status === 'completed').length,
220
- failedTasks: allTasks.filter(t => t.status === 'failed').length,
221
- cancelledTasks: allTasks.filter(t => t.status === 'cancelled').length,
222
- maxDepthUsed: Math.max(0, ...allTasks.map(t => t.depth)),
223
- };
224
- }
225
- /**
226
- * Cleanup old completed tasks
227
- */
228
- cleanup(maxAgeMs = 60 * 60 * 1000) {
229
- const now = Date.now();
230
- let cleaned = 0;
231
- // Collect IDs to delete first, then delete in a separate pass
232
- const toDelete = [];
233
- for (const [taskId, task] of this.tasks) {
234
- if (['completed', 'failed', 'cancelled'].includes(task.status) &&
235
- task.completedAt &&
236
- now - task.completedAt.getTime() > maxAgeMs) {
237
- toDelete.push(taskId);
238
- }
239
- }
240
- for (const taskId of toDelete) {
241
- const task = this.tasks.get(taskId);
242
- if (task) {
243
- // Remove from parent's childIds
244
- if (task.parentId) {
245
- const parent = this.tasks.get(task.parentId);
246
- if (parent) {
247
- const idx = parent.childIds.indexOf(taskId);
248
- if (idx !== -1)
249
- parent.childIds.splice(idx, 1);
250
- }
251
- }
252
- this.tasks.delete(taskId);
253
- cleaned++;
254
- }
255
- }
256
- return cleaned;
257
- }
258
- /**
259
- * Reset orchestrator state
260
- */
261
- reset() {
262
- // Cancel all running tasks
263
- for (const taskId of this.runningTasks) {
264
- cancelBackendTask(taskId);
265
- }
266
- this.tasks.clear();
267
- this.taskQueue.length = 0;
268
- this.runningTasks.clear();
269
- }
270
- /**
271
- * Insert task into queue based on priority
272
- */
273
- insertIntoQueue(taskId, priority) {
274
- const taskPriorityValue = PRIORITY_ORDER[priority];
275
- // Find insertion point to maintain priority order
276
- let insertIndex = this.taskQueue.length;
277
- for (let i = 0; i < this.taskQueue.length; i++) {
278
- const queuedTask = this.tasks.get(this.taskQueue[i]);
279
- if (queuedTask && PRIORITY_ORDER[queuedTask.priority] < taskPriorityValue) {
280
- insertIndex = i;
281
- break;
282
- }
283
- }
284
- this.taskQueue.splice(insertIndex, 0, taskId);
285
- }
286
- /**
287
- * Process the task queue
288
- */
289
- async processQueue() {
290
- while (this.taskQueue.length > 0 &&
291
- this.runningTasks.size < this.config.maxConcurrent) {
292
- const taskId = this.taskQueue.shift();
293
- if (!taskId)
294
- break;
295
- const task = this.tasks.get(taskId);
296
- if (!task || !['pending', 'queued'].includes(task.status))
297
- continue;
298
- this.runningTasks.add(taskId);
299
- // Fire and forget - don't await, let it run in background
300
- this.runTask(task).catch(() => {
301
- // Error already handled in runTask
302
- });
303
- }
304
- }
305
- /**
306
- * Run a single task
307
- */
308
- async runTask(task) {
309
- task.status = 'running';
310
- task.startedAt = new Date();
311
- task.updatedAt = new Date();
312
- try {
313
- let result = '';
314
- const cwd = task.cwd || this.currentCwd;
315
- // Per-task timeout overrides global config (0 = no timeout)
316
- const taskTimeout = task.timeout || this.config.taskTimeout;
317
- // Select executor: SDK backends run in-process, CLI backend spawns a process
318
- const eventSource = task.executor === 'cli'
319
- ? executeAgent(task, cwd, taskTimeout)
320
- : executeSdkAgent(task, cwd, taskTimeout);
321
- for await (const event of eventSource) {
322
- if (isTaskCancelled(task)) {
323
- break;
324
- }
325
- if (event.type === 'text' && event.content) {
326
- result += event.content;
327
- }
328
- else if (event.type === 'error') {
329
- if (isTaskCancelled(task)) {
330
- break;
331
- }
332
- throw new Error(event.message || 'Unknown error');
333
- }
334
- }
335
- if (isTaskCancelled(task)) {
336
- return;
337
- }
338
- task.status = 'completed';
339
- task.result = result.trim() || '(no output)';
340
- task.completedAt = new Date();
341
- task.updatedAt = new Date();
342
- }
343
- catch (error) {
344
- if (isTaskCancelled(task)) {
345
- return;
346
- }
347
- task.status = 'failed';
348
- task.error = error instanceof Error ? error.message : String(error);
349
- task.completedAt = new Date();
350
- task.updatedAt = new Date();
351
- }
352
- finally {
353
- this.runningTasks.delete(task.id);
354
- // Continue processing queue
355
- void this.processQueue();
356
- }
357
- }
358
- }
359
- /**
360
- * Singleton orchestrator instance
361
- */
362
- export const orchestrator = new AgentOrchestrator();
363
- //# sourceMappingURL=orchestrator.js.map