@calliopelabs/cli 2.5.0 → 3.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 (490) hide show
  1. package/README.md +45 -661
  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/bin.d.ts +3 -7
  7. package/dist/bin.d.ts.map +1 -1
  8. package/dist/bin.js +56 -79
  9. package/dist/bin.js.map +1 -1
  10. package/dist/budget.d.ts +64 -0
  11. package/dist/budget.d.ts.map +1 -0
  12. package/dist/budget.js +157 -0
  13. package/dist/budget.js.map +1 -0
  14. package/dist/checkpoint.d.ts +63 -30
  15. package/dist/checkpoint.d.ts.map +1 -1
  16. package/dist/checkpoint.js +247 -160
  17. package/dist/checkpoint.js.map +1 -1
  18. package/dist/circuit-breaker/breaker.d.ts.map +1 -1
  19. package/dist/circuit-breaker/breaker.js.map +1 -1
  20. package/dist/config.d.ts +86 -81
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +236 -304
  23. package/dist/config.js.map +1 -1
  24. package/dist/cost.d.ts +114 -0
  25. package/dist/cost.d.ts.map +1 -0
  26. package/dist/cost.js +499 -0
  27. package/dist/cost.js.map +1 -0
  28. package/dist/diff.d.ts.map +1 -1
  29. package/dist/diff.js +11 -7
  30. package/dist/diff.js.map +1 -1
  31. package/dist/env-expansion.js.map +1 -1
  32. package/dist/errors.js +3 -3
  33. package/dist/errors.js.map +1 -1
  34. package/dist/files.js.map +1 -1
  35. package/dist/fleet.d.ts +30 -0
  36. package/dist/fleet.d.ts.map +1 -0
  37. package/dist/fleet.js +86 -0
  38. package/dist/fleet.js.map +1 -0
  39. package/dist/fuzzy-search.d.ts.map +1 -1
  40. package/dist/fuzzy-search.js +2 -1
  41. package/dist/fuzzy-search.js.map +1 -1
  42. package/dist/git-status.js.map +1 -1
  43. package/dist/headless.d.ts +1 -2
  44. package/dist/headless.d.ts.map +1 -1
  45. package/dist/headless.js +166 -24
  46. package/dist/headless.js.map +1 -1
  47. package/dist/hud/api.d.ts +3 -18
  48. package/dist/hud/api.d.ts.map +1 -1
  49. package/dist/hud/api.js +9 -352
  50. package/dist/hud/api.js.map +1 -1
  51. package/dist/hud/palettes.d.ts.map +1 -1
  52. package/dist/hud/palettes.js +0 -180
  53. package/dist/hud/palettes.js.map +1 -1
  54. package/dist/hud/skins.d.ts.map +1 -1
  55. package/dist/hud/skins.js +0 -263
  56. package/dist/hud/skins.js.map +1 -1
  57. package/dist/hud/types.d.ts +2 -5
  58. package/dist/hud/types.d.ts.map +1 -1
  59. package/dist/index.d.ts +1 -4
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -4
  62. package/dist/index.js.map +1 -1
  63. package/dist/iteration-ledger.d.ts.map +1 -1
  64. package/dist/iteration-ledger.js +3 -2
  65. package/dist/iteration-ledger.js.map +1 -1
  66. package/dist/local-model.d.ts +150 -0
  67. package/dist/local-model.d.ts.map +1 -0
  68. package/dist/local-model.js +408 -0
  69. package/dist/local-model.js.map +1 -0
  70. package/dist/mcp.d.ts.map +1 -1
  71. package/dist/mcp.js +5 -2
  72. package/dist/mcp.js.map +1 -1
  73. package/dist/memory.d.ts.map +1 -1
  74. package/dist/memory.js +6 -4
  75. package/dist/memory.js.map +1 -1
  76. package/dist/model-detection.js +2 -2
  77. package/dist/model-detection.js.map +1 -1
  78. package/dist/parallel-tools.js.map +1 -1
  79. package/dist/plugins.d.ts +32 -1
  80. package/dist/plugins.d.ts.map +1 -1
  81. package/dist/plugins.js +116 -5
  82. package/dist/plugins.js.map +1 -1
  83. package/dist/policy.d.ts +43 -0
  84. package/dist/policy.d.ts.map +1 -0
  85. package/dist/policy.js +139 -0
  86. package/dist/policy.js.map +1 -0
  87. package/dist/project-config.d.ts +1 -2
  88. package/dist/project-config.d.ts.map +1 -1
  89. package/dist/project-config.js +0 -3
  90. package/dist/project-config.js.map +1 -1
  91. package/dist/providers/bedrock.d.ts.map +1 -1
  92. package/dist/providers/bedrock.js +2 -5
  93. package/dist/providers/bedrock.js.map +1 -1
  94. package/dist/providers/compat.d.ts +21 -0
  95. package/dist/providers/compat.d.ts.map +1 -1
  96. package/dist/providers/compat.js +176 -6
  97. package/dist/providers/compat.js.map +1 -1
  98. package/dist/providers/google.js.map +1 -1
  99. package/dist/providers/index.d.ts +19 -4
  100. package/dist/providers/index.d.ts.map +1 -1
  101. package/dist/providers/index.js +61 -10
  102. package/dist/providers/index.js.map +1 -1
  103. package/dist/providers/ollama.d.ts +2 -2
  104. package/dist/providers/ollama.d.ts.map +1 -1
  105. package/dist/providers/ollama.js +26 -6
  106. package/dist/providers/ollama.js.map +1 -1
  107. package/dist/providers/openai.d.ts +10 -10
  108. package/dist/providers/openai.d.ts.map +1 -1
  109. package/dist/providers/openai.js +18 -10
  110. package/dist/providers/openai.js.map +1 -1
  111. package/dist/providers/types.d.ts +8 -0
  112. package/dist/providers/types.d.ts.map +1 -1
  113. package/dist/providers/types.js.map +1 -1
  114. package/dist/replay.d.ts +37 -0
  115. package/dist/replay.d.ts.map +1 -0
  116. package/dist/replay.js +168 -0
  117. package/dist/replay.js.map +1 -0
  118. package/dist/router.d.ts +133 -0
  119. package/dist/router.d.ts.map +1 -0
  120. package/dist/{model-router.js → router.js} +329 -3
  121. package/dist/router.js.map +1 -0
  122. package/dist/runlog.d.ts +185 -0
  123. package/dist/runlog.d.ts.map +1 -0
  124. package/dist/runlog.js +398 -0
  125. package/dist/runlog.js.map +1 -0
  126. package/dist/{sandbox.d.ts → sandbox/docker.d.ts} +1 -1
  127. package/dist/sandbox/docker.d.ts.map +1 -0
  128. package/dist/{sandbox.js → sandbox/docker.js} +1 -1
  129. package/dist/sandbox/docker.js.map +1 -0
  130. package/dist/sandbox/index.d.ts +36 -0
  131. package/dist/sandbox/index.d.ts.map +1 -0
  132. package/dist/sandbox/index.js +62 -0
  133. package/dist/sandbox/index.js.map +1 -0
  134. package/dist/{sandbox-native.d.ts → sandbox/native.d.ts} +1 -1
  135. package/dist/sandbox/native.d.ts.map +1 -0
  136. package/dist/{sandbox-native.js → sandbox/native.js} +1 -1
  137. package/dist/sandbox/native.js.map +1 -0
  138. package/dist/scope.d.ts.map +1 -1
  139. package/dist/scope.js +1 -1
  140. package/dist/scope.js.map +1 -1
  141. package/dist/scuttlebot/client.d.ts.map +1 -1
  142. package/dist/scuttlebot/client.js.map +1 -1
  143. package/dist/scuttlebot/config.js.map +1 -1
  144. package/dist/scuttlebot/http-client.d.ts.map +1 -1
  145. package/dist/scuttlebot/irc-client.d.ts +5 -5
  146. package/dist/scuttlebot/irc-client.d.ts.map +1 -1
  147. package/dist/scuttlebot/irc-client.js.map +1 -1
  148. package/dist/setup.d.ts.map +1 -1
  149. package/dist/setup.js +25 -54
  150. package/dist/setup.js.map +1 -1
  151. package/dist/skills.d.ts +39 -0
  152. package/dist/skills.d.ts.map +1 -1
  153. package/dist/skills.js +90 -8
  154. package/dist/skills.js.map +1 -1
  155. package/dist/storage.d.ts.map +1 -1
  156. package/dist/storage.js +6 -3
  157. package/dist/storage.js.map +1 -1
  158. package/dist/streaming.d.ts +25 -0
  159. package/dist/streaming.d.ts.map +1 -1
  160. package/dist/streaming.js +59 -0
  161. package/dist/streaming.js.map +1 -1
  162. package/dist/styles.d.ts +62 -56
  163. package/dist/styles.d.ts.map +1 -1
  164. package/dist/styles.js +11 -0
  165. package/dist/styles.js.map +1 -1
  166. package/dist/summarization.d.ts.map +1 -1
  167. package/dist/summarization.js.map +1 -1
  168. package/dist/terminal-image.js +1 -1
  169. package/dist/terminal-image.js.map +1 -1
  170. package/dist/themes.d.ts +5 -4
  171. package/dist/themes.d.ts.map +1 -1
  172. package/dist/themes.js +35 -90
  173. package/dist/themes.js.map +1 -1
  174. package/dist/tools.d.ts +27 -3
  175. package/dist/tools.d.ts.map +1 -1
  176. package/dist/tools.js +128 -179
  177. package/dist/tools.js.map +1 -1
  178. package/dist/trust.js.map +1 -1
  179. package/dist/types.d.ts +4 -3
  180. package/dist/types.d.ts.map +1 -1
  181. package/dist/types.js +21 -40
  182. package/dist/types.js.map +1 -1
  183. package/dist/ui/agent.d.ts +3 -6
  184. package/dist/ui/agent.d.ts.map +1 -1
  185. package/dist/ui/agent.js +328 -38
  186. package/dist/ui/agent.js.map +1 -1
  187. package/dist/ui/animations.d.ts +37 -0
  188. package/dist/ui/animations.d.ts.map +1 -0
  189. package/dist/ui/animations.js +227 -0
  190. package/dist/ui/animations.js.map +1 -0
  191. package/dist/ui/chat-input-keys.d.ts +42 -0
  192. package/dist/ui/chat-input-keys.d.ts.map +1 -0
  193. package/dist/ui/chat-input-keys.js +360 -0
  194. package/dist/ui/chat-input-keys.js.map +1 -0
  195. package/dist/ui/chat-input.d.ts +4 -2
  196. package/dist/ui/chat-input.d.ts.map +1 -1
  197. package/dist/ui/chat-input.js +31 -350
  198. package/dist/ui/chat-input.js.map +1 -1
  199. package/dist/ui/commands.d.ts +14 -46
  200. package/dist/ui/commands.d.ts.map +1 -1
  201. package/dist/ui/commands.js +416 -2899
  202. package/dist/ui/commands.js.map +1 -1
  203. package/dist/ui/completions.d.ts +1 -0
  204. package/dist/ui/completions.d.ts.map +1 -1
  205. package/dist/ui/completions.js +36 -107
  206. package/dist/ui/completions.js.map +1 -1
  207. package/dist/ui/components.d.ts +20 -12
  208. package/dist/ui/components.d.ts.map +1 -1
  209. package/dist/ui/components.js +17 -226
  210. package/dist/ui/components.js.map +1 -1
  211. package/dist/ui/context.js +6 -6
  212. package/dist/ui/context.js.map +1 -1
  213. package/dist/ui/debug-log.d.ts +11 -0
  214. package/dist/ui/debug-log.d.ts.map +1 -0
  215. package/dist/ui/debug-log.js +21 -0
  216. package/dist/ui/debug-log.js.map +1 -0
  217. package/dist/ui/error-boundary.d.ts +1 -1
  218. package/dist/ui/error-boundary.d.ts.map +1 -1
  219. package/dist/ui/error-boundary.js.map +1 -1
  220. package/dist/ui/frame.d.ts +1 -1
  221. package/dist/ui/frame.d.ts.map +1 -1
  222. package/dist/ui/frame.js +1 -3
  223. package/dist/ui/frame.js.map +1 -1
  224. package/dist/ui/index.d.ts +11 -3
  225. package/dist/ui/index.d.ts.map +1 -1
  226. package/dist/ui/index.js +45 -1076
  227. package/dist/ui/index.js.map +1 -1
  228. package/dist/ui/messages.d.ts +5 -8
  229. package/dist/ui/messages.d.ts.map +1 -1
  230. package/dist/ui/messages.js +15 -30
  231. package/dist/ui/messages.js.map +1 -1
  232. package/dist/ui/modals/index.d.ts +11 -0
  233. package/dist/ui/modals/index.d.ts.map +1 -0
  234. package/dist/ui/modals/index.js +10 -0
  235. package/dist/ui/modals/index.js.map +1 -0
  236. package/dist/ui/modals/prompts.d.ts +38 -0
  237. package/dist/ui/modals/prompts.d.ts.map +1 -0
  238. package/dist/ui/modals/prompts.js +124 -0
  239. package/dist/ui/modals/prompts.js.map +1 -0
  240. package/dist/ui/modals/selectors.d.ts +34 -0
  241. package/dist/ui/modals/selectors.d.ts.map +1 -0
  242. package/dist/ui/modals/selectors.js +111 -0
  243. package/dist/ui/modals/selectors.js.map +1 -0
  244. package/dist/ui/modals/setup.d.ts +18 -0
  245. package/dist/ui/modals/setup.d.ts.map +1 -0
  246. package/dist/ui/modals/setup.js +51 -0
  247. package/dist/ui/modals/setup.js.map +1 -0
  248. package/dist/ui/regions/input-region.d.ts +40 -0
  249. package/dist/ui/regions/input-region.d.ts.map +1 -0
  250. package/dist/ui/regions/input-region.js +116 -0
  251. package/dist/ui/regions/input-region.js.map +1 -0
  252. package/dist/ui/regions/modal-host.d.ts +41 -0
  253. package/dist/ui/regions/modal-host.d.ts.map +1 -0
  254. package/dist/ui/regions/modal-host.js +51 -0
  255. package/dist/ui/regions/modal-host.js.map +1 -0
  256. package/dist/ui/regions/render-probe.d.ts +22 -0
  257. package/dist/ui/regions/render-probe.d.ts.map +1 -0
  258. package/dist/ui/regions/render-probe.js +45 -0
  259. package/dist/ui/regions/render-probe.js.map +1 -0
  260. package/dist/ui/regions/static-scrollback.d.ts +39 -0
  261. package/dist/ui/regions/static-scrollback.d.ts.map +1 -0
  262. package/dist/ui/regions/static-scrollback.js +68 -0
  263. package/dist/ui/regions/static-scrollback.js.map +1 -0
  264. package/dist/ui/regions/status-region.d.ts +24 -0
  265. package/dist/ui/regions/status-region.d.ts.map +1 -0
  266. package/dist/ui/regions/status-region.js +17 -0
  267. package/dist/ui/regions/status-region.js.map +1 -0
  268. package/dist/ui/regions/transcript-region.d.ts +41 -0
  269. package/dist/ui/regions/transcript-region.d.ts.map +1 -0
  270. package/dist/ui/regions/transcript-region.js +52 -0
  271. package/dist/ui/regions/transcript-region.js.map +1 -0
  272. package/dist/ui/self-restart.d.ts +9 -0
  273. package/dist/ui/self-restart.d.ts.map +1 -0
  274. package/dist/ui/self-restart.js +24 -0
  275. package/dist/ui/self-restart.js.map +1 -0
  276. package/dist/ui/state/use-chat-controller.d.ts +23 -0
  277. package/dist/ui/state/use-chat-controller.d.ts.map +1 -0
  278. package/dist/ui/state/use-chat-controller.js +643 -0
  279. package/dist/ui/state/use-chat-controller.js.map +1 -0
  280. package/dist/ui/state/use-loop-state.d.ts +23 -0
  281. package/dist/ui/state/use-loop-state.d.ts.map +1 -0
  282. package/dist/ui/state/use-loop-state.js +39 -0
  283. package/dist/ui/state/use-loop-state.js.map +1 -0
  284. package/dist/ui/state/use-modal-state.d.ts +52 -0
  285. package/dist/ui/state/use-modal-state.d.ts.map +1 -0
  286. package/dist/ui/state/use-modal-state.js +44 -0
  287. package/dist/ui/state/use-modal-state.js.map +1 -0
  288. package/dist/ui/state/use-model-state.d.ts +29 -0
  289. package/dist/ui/state/use-model-state.d.ts.map +1 -0
  290. package/dist/ui/state/use-model-state.js +47 -0
  291. package/dist/ui/state/use-model-state.js.map +1 -0
  292. package/dist/ui/state/use-processing-state.d.ts +24 -0
  293. package/dist/ui/state/use-processing-state.d.ts.map +1 -0
  294. package/dist/ui/state/use-processing-state.js +46 -0
  295. package/dist/ui/state/use-processing-state.js.map +1 -0
  296. package/dist/ui/state/use-queue-state.d.ts +19 -0
  297. package/dist/ui/state/use-queue-state.d.ts.map +1 -0
  298. package/dist/ui/state/use-queue-state.js +30 -0
  299. package/dist/ui/state/use-queue-state.js.map +1 -0
  300. package/dist/ui/state/use-session-init.d.ts +22 -0
  301. package/dist/ui/state/use-session-init.d.ts.map +1 -0
  302. package/dist/ui/state/use-session-init.js +77 -0
  303. package/dist/ui/state/use-session-init.js.map +1 -0
  304. package/dist/ui/state/use-session-stats.d.ts +16 -0
  305. package/dist/ui/state/use-session-stats.d.ts.map +1 -0
  306. package/dist/ui/state/use-session-stats.js +18 -0
  307. package/dist/ui/state/use-session-stats.js.map +1 -0
  308. package/dist/ui/state/use-terminal-width.d.ts +8 -0
  309. package/dist/ui/state/use-terminal-width.d.ts.map +1 -0
  310. package/dist/ui/state/use-terminal-width.js +22 -0
  311. package/dist/ui/state/use-terminal-width.js.map +1 -0
  312. package/dist/ui/state/use-transcript-state.d.ts +21 -0
  313. package/dist/ui/state/use-transcript-state.d.ts.map +1 -0
  314. package/dist/ui/state/use-transcript-state.js +49 -0
  315. package/dist/ui/state/use-transcript-state.js.map +1 -0
  316. package/dist/ui/status-bar.d.ts +1 -1
  317. package/dist/ui/status-bar.d.ts.map +1 -1
  318. package/dist/ui/status-bar.js +3 -4
  319. package/dist/ui/status-bar.js.map +1 -1
  320. package/dist/version-check.d.ts.map +1 -1
  321. package/dist/version-check.js +10 -0
  322. package/dist/version-check.js.map +1 -1
  323. package/package.json +17 -10
  324. package/dist/agents/agent-config-loader.d.ts +0 -60
  325. package/dist/agents/agent-config-loader.d.ts.map +0 -1
  326. package/dist/agents/agent-config-loader.js +0 -402
  327. package/dist/agents/agent-config-loader.js.map +0 -1
  328. package/dist/agents/agent-config-presets.d.ts +0 -10
  329. package/dist/agents/agent-config-presets.d.ts.map +0 -1
  330. package/dist/agents/agent-config-presets.js +0 -940
  331. package/dist/agents/agent-config-presets.js.map +0 -1
  332. package/dist/agents/agent-config-types.d.ts +0 -145
  333. package/dist/agents/agent-config-types.d.ts.map +0 -1
  334. package/dist/agents/agent-config-types.js +0 -12
  335. package/dist/agents/agent-config-types.js.map +0 -1
  336. package/dist/agents/agent-detection.d.ts +0 -35
  337. package/dist/agents/agent-detection.d.ts.map +0 -1
  338. package/dist/agents/agent-detection.js +0 -110
  339. package/dist/agents/agent-detection.js.map +0 -1
  340. package/dist/agents/aggregator.d.ts +0 -19
  341. package/dist/agents/aggregator.d.ts.map +0 -1
  342. package/dist/agents/aggregator.js +0 -141
  343. package/dist/agents/aggregator.js.map +0 -1
  344. package/dist/agents/cli-backend.d.ts +0 -32
  345. package/dist/agents/cli-backend.d.ts.map +0 -1
  346. package/dist/agents/cli-backend.js +0 -271
  347. package/dist/agents/cli-backend.js.map +0 -1
  348. package/dist/agents/council-types.d.ts +0 -115
  349. package/dist/agents/council-types.d.ts.map +0 -1
  350. package/dist/agents/council-types.js +0 -81
  351. package/dist/agents/council-types.js.map +0 -1
  352. package/dist/agents/council.d.ts +0 -112
  353. package/dist/agents/council.d.ts.map +0 -1
  354. package/dist/agents/council.js +0 -722
  355. package/dist/agents/council.js.map +0 -1
  356. package/dist/agents/decomposer.d.ts +0 -33
  357. package/dist/agents/decomposer.d.ts.map +0 -1
  358. package/dist/agents/decomposer.js +0 -138
  359. package/dist/agents/decomposer.js.map +0 -1
  360. package/dist/agents/dynamic-tools.d.ts +0 -52
  361. package/dist/agents/dynamic-tools.d.ts.map +0 -1
  362. package/dist/agents/dynamic-tools.js +0 -424
  363. package/dist/agents/dynamic-tools.js.map +0 -1
  364. package/dist/agents/index.d.ts +0 -29
  365. package/dist/agents/index.d.ts.map +0 -1
  366. package/dist/agents/index.js +0 -29
  367. package/dist/agents/index.js.map +0 -1
  368. package/dist/agents/installer.d.ts +0 -39
  369. package/dist/agents/installer.d.ts.map +0 -1
  370. package/dist/agents/installer.js +0 -205
  371. package/dist/agents/installer.js.map +0 -1
  372. package/dist/agents/orchestrator.d.ts +0 -106
  373. package/dist/agents/orchestrator.d.ts.map +0 -1
  374. package/dist/agents/orchestrator.js +0 -363
  375. package/dist/agents/orchestrator.js.map +0 -1
  376. package/dist/agents/sdk-backend.d.ts +0 -63
  377. package/dist/agents/sdk-backend.d.ts.map +0 -1
  378. package/dist/agents/sdk-backend.js +0 -489
  379. package/dist/agents/sdk-backend.js.map +0 -1
  380. package/dist/agents/swarm-types.d.ts +0 -84
  381. package/dist/agents/swarm-types.d.ts.map +0 -1
  382. package/dist/agents/swarm-types.js +0 -20
  383. package/dist/agents/swarm-types.js.map +0 -1
  384. package/dist/agents/swarm.d.ts +0 -79
  385. package/dist/agents/swarm.d.ts.map +0 -1
  386. package/dist/agents/swarm.js +0 -375
  387. package/dist/agents/swarm.js.map +0 -1
  388. package/dist/agents/tools.d.ts +0 -26
  389. package/dist/agents/tools.d.ts.map +0 -1
  390. package/dist/agents/tools.js +0 -776
  391. package/dist/agents/tools.js.map +0 -1
  392. package/dist/agents/types.d.ts +0 -108
  393. package/dist/agents/types.d.ts.map +0 -1
  394. package/dist/agents/types.js +0 -43
  395. package/dist/agents/types.js.map +0 -1
  396. package/dist/api-server.d.ts +0 -45
  397. package/dist/api-server.d.ts.map +0 -1
  398. package/dist/api-server.js +0 -326
  399. package/dist/api-server.js.map +0 -1
  400. package/dist/auto-checkpoint.d.ts +0 -35
  401. package/dist/auto-checkpoint.d.ts.map +0 -1
  402. package/dist/auto-checkpoint.js +0 -176
  403. package/dist/auto-checkpoint.js.map +0 -1
  404. package/dist/background-jobs.d.ts +0 -45
  405. package/dist/background-jobs.d.ts.map +0 -1
  406. package/dist/background-jobs.js +0 -127
  407. package/dist/background-jobs.js.map +0 -1
  408. package/dist/branching.d.ts +0 -56
  409. package/dist/branching.d.ts.map +0 -1
  410. package/dist/branching.js +0 -224
  411. package/dist/branching.js.map +0 -1
  412. package/dist/cli/agent.d.ts +0 -9
  413. package/dist/cli/agent.d.ts.map +0 -1
  414. package/dist/cli/agent.js +0 -330
  415. package/dist/cli/agent.js.map +0 -1
  416. package/dist/cli/commands.d.ts +0 -12
  417. package/dist/cli/commands.d.ts.map +0 -1
  418. package/dist/cli/commands.js +0 -1042
  419. package/dist/cli/commands.js.map +0 -1
  420. package/dist/cli/index.d.ts +0 -8
  421. package/dist/cli/index.d.ts.map +0 -1
  422. package/dist/cli/index.js +0 -268
  423. package/dist/cli/index.js.map +0 -1
  424. package/dist/cli/types.d.ts +0 -33
  425. package/dist/cli/types.d.ts.map +0 -1
  426. package/dist/cli/types.js +0 -21
  427. package/dist/cli/types.js.map +0 -1
  428. package/dist/companions.d.ts +0 -54
  429. package/dist/companions.d.ts.map +0 -1
  430. package/dist/companions.js +0 -440
  431. package/dist/companions.js.map +0 -1
  432. package/dist/file-watcher.d.ts +0 -91
  433. package/dist/file-watcher.d.ts.map +0 -1
  434. package/dist/file-watcher.js +0 -269
  435. package/dist/file-watcher.js.map +0 -1
  436. package/dist/hud/theme-packs/api.d.ts +0 -51
  437. package/dist/hud/theme-packs/api.d.ts.map +0 -1
  438. package/dist/hud/theme-packs/api.js +0 -145
  439. package/dist/hud/theme-packs/api.js.map +0 -1
  440. package/dist/hud/theme-packs/index.d.ts +0 -18
  441. package/dist/hud/theme-packs/index.d.ts.map +0 -1
  442. package/dist/hud/theme-packs/index.js +0 -38
  443. package/dist/hud/theme-packs/index.js.map +0 -1
  444. package/dist/hud/theme-packs/types.d.ts +0 -29
  445. package/dist/hud/theme-packs/types.d.ts.map +0 -1
  446. package/dist/hud/theme-packs/types.js +0 -9
  447. package/dist/hud/theme-packs/types.js.map +0 -1
  448. package/dist/idle-eviction.d.ts +0 -34
  449. package/dist/idle-eviction.d.ts.map +0 -1
  450. package/dist/idle-eviction.js +0 -85
  451. package/dist/idle-eviction.js.map +0 -1
  452. package/dist/model-router.d.ts +0 -67
  453. package/dist/model-router.d.ts.map +0 -1
  454. package/dist/model-router.js.map +0 -1
  455. package/dist/providers/openai-compat-shims.d.ts +0 -31
  456. package/dist/providers/openai-compat-shims.d.ts.map +0 -1
  457. package/dist/providers/openai-compat-shims.js +0 -179
  458. package/dist/providers/openai-compat-shims.js.map +0 -1
  459. package/dist/sandbox-native.d.ts.map +0 -1
  460. package/dist/sandbox-native.js.map +0 -1
  461. package/dist/sandbox.d.ts.map +0 -1
  462. package/dist/sandbox.js.map +0 -1
  463. package/dist/session-timeout.d.ts +0 -31
  464. package/dist/session-timeout.d.ts.map +0 -1
  465. package/dist/session-timeout.js +0 -100
  466. package/dist/session-timeout.js.map +0 -1
  467. package/dist/smart-router.d.ts +0 -73
  468. package/dist/smart-router.d.ts.map +0 -1
  469. package/dist/smart-router.js +0 -332
  470. package/dist/smart-router.js.map +0 -1
  471. package/dist/terminal-recording.d.ts +0 -55
  472. package/dist/terminal-recording.d.ts.map +0 -1
  473. package/dist/terminal-recording.js +0 -182
  474. package/dist/terminal-recording.js.map +0 -1
  475. package/dist/tmux.d.ts +0 -35
  476. package/dist/tmux.d.ts.map +0 -1
  477. package/dist/tmux.js +0 -106
  478. package/dist/tmux.js.map +0 -1
  479. package/dist/ui/modals.d.ts +0 -72
  480. package/dist/ui/modals.d.ts.map +0 -1
  481. package/dist/ui/modals.js +0 -266
  482. package/dist/ui/modals.js.map +0 -1
  483. package/dist/ui/pack-picker.d.ts +0 -12
  484. package/dist/ui/pack-picker.d.ts.map +0 -1
  485. package/dist/ui/pack-picker.js +0 -101
  486. package/dist/ui/pack-picker.js.map +0 -1
  487. package/dist/ui/theme-picker.d.ts +0 -24
  488. package/dist/ui/theme-picker.d.ts.map +0 -1
  489. package/dist/ui/theme-picker.js +0 -190
  490. 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