@calliopelabs/cli 0.8.20 → 2.0.2

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 (402) hide show
  1. package/dist/agents/agent-config-loader.d.ts +60 -0
  2. package/dist/agents/agent-config-loader.d.ts.map +1 -0
  3. package/dist/agents/agent-config-loader.js +402 -0
  4. package/dist/agents/agent-config-loader.js.map +1 -0
  5. package/dist/agents/agent-config-presets.d.ts +10 -0
  6. package/dist/agents/agent-config-presets.d.ts.map +1 -0
  7. package/dist/agents/agent-config-presets.js +940 -0
  8. package/dist/agents/agent-config-presets.js.map +1 -0
  9. package/dist/agents/agent-config-types.d.ts +145 -0
  10. package/dist/agents/agent-config-types.d.ts.map +1 -0
  11. package/dist/agents/agent-config-types.js +12 -0
  12. package/dist/agents/agent-config-types.js.map +1 -0
  13. package/dist/{agterm → agents}/agent-detection.d.ts +1 -1
  14. package/dist/{agterm → agents}/agent-detection.d.ts.map +1 -1
  15. package/dist/{agterm → agents}/agent-detection.js +21 -5
  16. package/dist/agents/agent-detection.js.map +1 -0
  17. package/dist/agents/aggregator.d.ts +19 -0
  18. package/dist/agents/aggregator.d.ts.map +1 -0
  19. package/dist/agents/aggregator.js +141 -0
  20. package/dist/agents/aggregator.js.map +1 -0
  21. package/dist/{agterm → agents}/cli-backend.d.ts +1 -1
  22. package/dist/{agterm → agents}/cli-backend.d.ts.map +1 -1
  23. package/dist/{agterm → agents}/cli-backend.js +90 -12
  24. package/dist/agents/cli-backend.js.map +1 -0
  25. package/dist/agents/council-types.d.ts +113 -0
  26. package/dist/agents/council-types.d.ts.map +1 -0
  27. package/dist/agents/council-types.js +81 -0
  28. package/dist/agents/council-types.js.map +1 -0
  29. package/dist/agents/council.d.ts +107 -0
  30. package/dist/agents/council.d.ts.map +1 -0
  31. package/dist/agents/council.js +586 -0
  32. package/dist/agents/council.js.map +1 -0
  33. package/dist/agents/decomposer.d.ts +33 -0
  34. package/dist/agents/decomposer.d.ts.map +1 -0
  35. package/dist/agents/decomposer.js +138 -0
  36. package/dist/agents/decomposer.js.map +1 -0
  37. package/dist/agents/dynamic-tools.d.ts +52 -0
  38. package/dist/agents/dynamic-tools.d.ts.map +1 -0
  39. package/dist/agents/dynamic-tools.js +395 -0
  40. package/dist/agents/dynamic-tools.js.map +1 -0
  41. package/dist/agents/index.d.ts +29 -0
  42. package/dist/agents/index.d.ts.map +1 -0
  43. package/dist/agents/index.js +29 -0
  44. package/dist/agents/index.js.map +1 -0
  45. package/dist/agents/installer.d.ts +39 -0
  46. package/dist/agents/installer.d.ts.map +1 -0
  47. package/dist/agents/installer.js +205 -0
  48. package/dist/agents/installer.js.map +1 -0
  49. package/dist/{agterm → agents}/orchestrator.d.ts +7 -2
  50. package/dist/agents/orchestrator.d.ts.map +1 -0
  51. package/dist/{agterm → agents}/orchestrator.js +22 -2
  52. package/dist/agents/orchestrator.js.map +1 -0
  53. package/dist/agents/sdk-backend.d.ts +63 -0
  54. package/dist/agents/sdk-backend.d.ts.map +1 -0
  55. package/dist/agents/sdk-backend.js +489 -0
  56. package/dist/agents/sdk-backend.js.map +1 -0
  57. package/dist/agents/swarm-types.d.ts +83 -0
  58. package/dist/agents/swarm-types.d.ts.map +1 -0
  59. package/dist/agents/swarm-types.js +20 -0
  60. package/dist/agents/swarm-types.js.map +1 -0
  61. package/dist/agents/swarm.d.ts +74 -0
  62. package/dist/agents/swarm.d.ts.map +1 -0
  63. package/dist/agents/swarm.js +307 -0
  64. package/dist/agents/swarm.js.map +1 -0
  65. package/dist/{agterm → agents}/tools.d.ts +7 -5
  66. package/dist/agents/tools.d.ts.map +1 -0
  67. package/dist/agents/tools.js +776 -0
  68. package/dist/agents/tools.js.map +1 -0
  69. package/dist/{agterm → agents}/types.d.ts +14 -2
  70. package/dist/agents/types.d.ts.map +1 -0
  71. package/dist/{agterm → agents}/types.js +2 -2
  72. package/dist/agents/types.js.map +1 -0
  73. package/dist/api-server.d.ts +26 -0
  74. package/dist/api-server.d.ts.map +1 -0
  75. package/dist/api-server.js +230 -0
  76. package/dist/api-server.js.map +1 -0
  77. package/dist/auto-checkpoint.d.ts +35 -0
  78. package/dist/auto-checkpoint.d.ts.map +1 -0
  79. package/dist/auto-checkpoint.js +143 -0
  80. package/dist/auto-checkpoint.js.map +1 -0
  81. package/dist/auto-compressor.d.ts +44 -0
  82. package/dist/auto-compressor.d.ts.map +1 -0
  83. package/dist/auto-compressor.js +145 -0
  84. package/dist/auto-compressor.js.map +1 -0
  85. package/dist/background-jobs.d.ts +45 -0
  86. package/dist/background-jobs.d.ts.map +1 -0
  87. package/dist/background-jobs.js +122 -0
  88. package/dist/background-jobs.js.map +1 -0
  89. package/dist/bin.d.ts +6 -2
  90. package/dist/bin.d.ts.map +1 -1
  91. package/dist/bin.js +127 -24
  92. package/dist/bin.js.map +1 -1
  93. package/dist/checkpoint.d.ts +49 -0
  94. package/dist/checkpoint.d.ts.map +1 -0
  95. package/dist/checkpoint.js +219 -0
  96. package/dist/checkpoint.js.map +1 -0
  97. package/dist/circuit-breaker/breaker.d.ts +80 -0
  98. package/dist/circuit-breaker/breaker.d.ts.map +1 -0
  99. package/dist/circuit-breaker/breaker.js +408 -0
  100. package/dist/circuit-breaker/breaker.js.map +1 -0
  101. package/dist/circuit-breaker/defaults.d.ts +8 -0
  102. package/dist/circuit-breaker/defaults.d.ts.map +1 -0
  103. package/dist/circuit-breaker/defaults.js +35 -0
  104. package/dist/circuit-breaker/defaults.js.map +1 -0
  105. package/dist/circuit-breaker/index.d.ts +9 -0
  106. package/dist/circuit-breaker/index.d.ts.map +1 -0
  107. package/dist/circuit-breaker/index.js +8 -0
  108. package/dist/circuit-breaker/index.js.map +1 -0
  109. package/dist/circuit-breaker/types.d.ts +77 -0
  110. package/dist/circuit-breaker/types.d.ts.map +1 -0
  111. package/dist/circuit-breaker/types.js +8 -0
  112. package/dist/circuit-breaker/types.js.map +1 -0
  113. package/dist/circuit-breaker.d.ts +8 -0
  114. package/dist/circuit-breaker.d.ts.map +1 -0
  115. package/dist/circuit-breaker.js +7 -0
  116. package/dist/circuit-breaker.js.map +1 -0
  117. package/dist/cli/agent.d.ts +9 -0
  118. package/dist/cli/agent.d.ts.map +1 -0
  119. package/dist/cli/agent.js +262 -0
  120. package/dist/cli/agent.js.map +1 -0
  121. package/dist/cli/commands.d.ts +12 -0
  122. package/dist/cli/commands.d.ts.map +1 -0
  123. package/dist/{cli.js → cli/commands.js} +285 -422
  124. package/dist/cli/commands.js.map +1 -0
  125. package/dist/cli/index.d.ts +8 -0
  126. package/dist/cli/index.d.ts.map +1 -0
  127. package/dist/cli/index.js +222 -0
  128. package/dist/cli/index.js.map +1 -0
  129. package/dist/cli/types.d.ts +30 -0
  130. package/dist/cli/types.d.ts.map +1 -0
  131. package/dist/cli/types.js +20 -0
  132. package/dist/cli/types.js.map +1 -0
  133. package/dist/companions.d.ts +54 -0
  134. package/dist/companions.d.ts.map +1 -0
  135. package/dist/companions.js +440 -0
  136. package/dist/companions.js.map +1 -0
  137. package/dist/config.d.ts +23 -1
  138. package/dist/config.d.ts.map +1 -1
  139. package/dist/config.js +95 -22
  140. package/dist/config.js.map +1 -1
  141. package/dist/diff.d.ts +27 -0
  142. package/dist/diff.d.ts.map +1 -1
  143. package/dist/diff.js +415 -10
  144. package/dist/diff.js.map +1 -1
  145. package/dist/errors.d.ts.map +1 -1
  146. package/dist/errors.js +20 -11
  147. package/dist/errors.js.map +1 -1
  148. package/dist/git-status.d.ts +23 -0
  149. package/dist/git-status.d.ts.map +1 -0
  150. package/dist/git-status.js +92 -0
  151. package/dist/git-status.js.map +1 -0
  152. package/dist/headless.d.ts +25 -0
  153. package/dist/headless.d.ts.map +1 -0
  154. package/dist/headless.js +182 -0
  155. package/dist/headless.js.map +1 -0
  156. package/dist/hud/api.d.ts +35 -0
  157. package/dist/hud/api.d.ts.map +1 -0
  158. package/dist/hud/api.js +448 -0
  159. package/dist/hud/api.js.map +1 -0
  160. package/dist/hud/palettes.d.ts +9 -0
  161. package/dist/hud/palettes.d.ts.map +1 -0
  162. package/dist/hud/palettes.js +280 -0
  163. package/dist/hud/palettes.js.map +1 -0
  164. package/dist/hud/skins.d.ts +12 -0
  165. package/dist/hud/skins.d.ts.map +1 -0
  166. package/dist/hud/skins.js +365 -0
  167. package/dist/hud/skins.js.map +1 -0
  168. package/dist/hud/theme-packs/api.d.ts +51 -0
  169. package/dist/hud/theme-packs/api.d.ts.map +1 -0
  170. package/dist/hud/theme-packs/api.js +145 -0
  171. package/dist/hud/theme-packs/api.js.map +1 -0
  172. package/dist/hud/theme-packs/index.d.ts +18 -0
  173. package/dist/hud/theme-packs/index.d.ts.map +1 -0
  174. package/dist/hud/theme-packs/index.js +38 -0
  175. package/dist/hud/theme-packs/index.js.map +1 -0
  176. package/dist/hud/theme-packs/types.d.ts +29 -0
  177. package/dist/hud/theme-packs/types.d.ts.map +1 -0
  178. package/dist/hud/theme-packs/types.js +9 -0
  179. package/dist/hud/theme-packs/types.js.map +1 -0
  180. package/dist/hud/types.d.ts +182 -0
  181. package/dist/hud/types.d.ts.map +1 -0
  182. package/dist/hud/types.js +7 -0
  183. package/dist/hud/types.js.map +1 -0
  184. package/dist/idle-eviction.d.ts +34 -0
  185. package/dist/idle-eviction.d.ts.map +1 -0
  186. package/dist/idle-eviction.js +78 -0
  187. package/dist/idle-eviction.js.map +1 -0
  188. package/dist/index.d.ts +9 -3
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +9 -3
  191. package/dist/index.js.map +1 -1
  192. package/dist/iteration-ledger.d.ts +105 -0
  193. package/dist/iteration-ledger.d.ts.map +1 -0
  194. package/dist/iteration-ledger.js +237 -0
  195. package/dist/iteration-ledger.js.map +1 -0
  196. package/dist/markdown.d.ts.map +1 -1
  197. package/dist/markdown.js +1 -27
  198. package/dist/markdown.js.map +1 -1
  199. package/dist/mcp.d.ts +35 -0
  200. package/dist/mcp.d.ts.map +1 -1
  201. package/dist/mcp.js +291 -7
  202. package/dist/mcp.js.map +1 -1
  203. package/dist/memory.d.ts.map +1 -1
  204. package/dist/memory.js +12 -2
  205. package/dist/memory.js.map +1 -1
  206. package/dist/model-detection.d.ts +5 -0
  207. package/dist/model-detection.d.ts.map +1 -1
  208. package/dist/model-detection.js +278 -10
  209. package/dist/model-detection.js.map +1 -1
  210. package/dist/model-router.d.ts.map +1 -1
  211. package/dist/model-router.js +33 -11
  212. package/dist/model-router.js.map +1 -1
  213. package/dist/plugins.d.ts +8 -0
  214. package/dist/plugins.d.ts.map +1 -1
  215. package/dist/plugins.js +97 -6
  216. package/dist/plugins.js.map +1 -1
  217. package/dist/providers/anthropic.d.ts +10 -0
  218. package/dist/providers/anthropic.d.ts.map +1 -0
  219. package/dist/providers/anthropic.js +221 -0
  220. package/dist/providers/anthropic.js.map +1 -0
  221. package/dist/providers/bedrock.d.ts +17 -0
  222. package/dist/providers/bedrock.d.ts.map +1 -0
  223. package/dist/providers/bedrock.js +574 -0
  224. package/dist/providers/bedrock.js.map +1 -0
  225. package/dist/providers/compat.d.ts +13 -0
  226. package/dist/providers/compat.d.ts.map +1 -0
  227. package/dist/providers/compat.js +202 -0
  228. package/dist/providers/compat.js.map +1 -0
  229. package/dist/providers/google.d.ts +10 -0
  230. package/dist/providers/google.d.ts.map +1 -0
  231. package/dist/providers/google.js +203 -0
  232. package/dist/providers/google.js.map +1 -0
  233. package/dist/providers/index.d.ts +23 -0
  234. package/dist/providers/index.d.ts.map +1 -0
  235. package/dist/providers/index.js +145 -0
  236. package/dist/providers/index.js.map +1 -0
  237. package/dist/providers/ollama.d.ts +17 -0
  238. package/dist/providers/ollama.d.ts.map +1 -0
  239. package/dist/providers/ollama.js +289 -0
  240. package/dist/providers/ollama.js.map +1 -0
  241. package/dist/providers/openai.d.ts +121 -0
  242. package/dist/providers/openai.d.ts.map +1 -0
  243. package/dist/providers/openai.js +485 -0
  244. package/dist/providers/openai.js.map +1 -0
  245. package/dist/providers/types.d.ts +63 -0
  246. package/dist/providers/types.d.ts.map +1 -0
  247. package/dist/providers/types.js +164 -0
  248. package/dist/providers/types.js.map +1 -0
  249. package/dist/sandbox-native.d.ts +59 -0
  250. package/dist/sandbox-native.d.ts.map +1 -0
  251. package/dist/sandbox-native.js +292 -0
  252. package/dist/sandbox-native.js.map +1 -0
  253. package/dist/sandbox.d.ts +2 -2
  254. package/dist/sandbox.d.ts.map +1 -1
  255. package/dist/sandbox.js +59 -13
  256. package/dist/sandbox.js.map +1 -1
  257. package/dist/scope.d.ts +3 -1
  258. package/dist/scope.d.ts.map +1 -1
  259. package/dist/scope.js +13 -1
  260. package/dist/scope.js.map +1 -1
  261. package/dist/session-timeout.d.ts +31 -0
  262. package/dist/session-timeout.d.ts.map +1 -0
  263. package/dist/session-timeout.js +100 -0
  264. package/dist/session-timeout.js.map +1 -0
  265. package/dist/setup.d.ts.map +1 -1
  266. package/dist/setup.js +29 -17
  267. package/dist/setup.js.map +1 -1
  268. package/dist/smart-router.d.ts +73 -0
  269. package/dist/smart-router.d.ts.map +1 -0
  270. package/dist/smart-router.js +332 -0
  271. package/dist/smart-router.js.map +1 -0
  272. package/dist/storage.d.ts +19 -0
  273. package/dist/storage.d.ts.map +1 -1
  274. package/dist/storage.js +164 -1
  275. package/dist/storage.js.map +1 -1
  276. package/dist/streaming.d.ts +4 -0
  277. package/dist/streaming.d.ts.map +1 -1
  278. package/dist/streaming.js +12 -0
  279. package/dist/streaming.js.map +1 -1
  280. package/dist/styles.d.ts +32 -0
  281. package/dist/styles.d.ts.map +1 -1
  282. package/dist/styles.js +91 -0
  283. package/dist/styles.js.map +1 -1
  284. package/dist/summarization.d.ts +1 -1
  285. package/dist/summarization.js +4 -4
  286. package/dist/summarization.js.map +1 -1
  287. package/dist/terminal-image.d.ts +115 -0
  288. package/dist/terminal-image.d.ts.map +1 -0
  289. package/dist/terminal-image.js +766 -0
  290. package/dist/terminal-image.js.map +1 -0
  291. package/dist/terminal-recording.d.ts +55 -0
  292. package/dist/terminal-recording.d.ts.map +1 -0
  293. package/dist/terminal-recording.js +182 -0
  294. package/dist/terminal-recording.js.map +1 -0
  295. package/dist/themes.d.ts +19 -35
  296. package/dist/themes.d.ts.map +1 -1
  297. package/dist/themes.js +101 -210
  298. package/dist/themes.js.map +1 -1
  299. package/dist/tmux.d.ts +35 -0
  300. package/dist/tmux.d.ts.map +1 -0
  301. package/dist/tmux.js +106 -0
  302. package/dist/tmux.js.map +1 -0
  303. package/dist/tools.d.ts +3 -3
  304. package/dist/tools.d.ts.map +1 -1
  305. package/dist/tools.js +587 -45
  306. package/dist/tools.js.map +1 -1
  307. package/dist/trust.d.ts +53 -0
  308. package/dist/trust.d.ts.map +1 -0
  309. package/dist/trust.js +154 -0
  310. package/dist/trust.js.map +1 -0
  311. package/dist/types.d.ts +7 -3
  312. package/dist/types.d.ts.map +1 -1
  313. package/dist/types.js +70 -32
  314. package/dist/types.js.map +1 -1
  315. package/dist/ui/agent.d.ts +61 -0
  316. package/dist/ui/agent.d.ts.map +1 -0
  317. package/dist/ui/agent.js +768 -0
  318. package/dist/ui/agent.js.map +1 -0
  319. package/dist/ui/chat-input.d.ts +32 -0
  320. package/dist/ui/chat-input.d.ts.map +1 -0
  321. package/dist/ui/chat-input.js +355 -0
  322. package/dist/ui/chat-input.js.map +1 -0
  323. package/dist/ui/commands.d.ts +92 -0
  324. package/dist/ui/commands.d.ts.map +1 -0
  325. package/dist/ui/commands.js +3006 -0
  326. package/dist/ui/commands.js.map +1 -0
  327. package/dist/ui/completions.d.ts +22 -0
  328. package/dist/ui/completions.d.ts.map +1 -0
  329. package/dist/ui/completions.js +215 -0
  330. package/dist/ui/completions.js.map +1 -0
  331. package/dist/ui/components.d.ts +38 -0
  332. package/dist/ui/components.d.ts.map +1 -0
  333. package/dist/ui/components.js +422 -0
  334. package/dist/ui/components.js.map +1 -0
  335. package/dist/ui/context.d.ts +12 -0
  336. package/dist/ui/context.d.ts.map +1 -0
  337. package/dist/ui/context.js +102 -0
  338. package/dist/ui/context.js.map +1 -0
  339. package/dist/ui/error-boundary.d.ts +33 -0
  340. package/dist/ui/error-boundary.d.ts.map +1 -0
  341. package/dist/ui/error-boundary.js +94 -0
  342. package/dist/ui/error-boundary.js.map +1 -0
  343. package/dist/ui/frame.d.ts +13 -0
  344. package/dist/ui/frame.d.ts.map +1 -0
  345. package/dist/ui/frame.js +89 -0
  346. package/dist/ui/frame.js.map +1 -0
  347. package/dist/ui/index.d.ts +12 -0
  348. package/dist/ui/index.d.ts.map +1 -0
  349. package/dist/ui/index.js +928 -0
  350. package/dist/ui/index.js.map +1 -0
  351. package/dist/ui/messages.d.ts +19 -0
  352. package/dist/ui/messages.d.ts.map +1 -0
  353. package/dist/ui/messages.js +181 -0
  354. package/dist/ui/messages.js.map +1 -0
  355. package/dist/ui/modals.d.ts +52 -0
  356. package/dist/ui/modals.d.ts.map +1 -0
  357. package/dist/ui/modals.js +204 -0
  358. package/dist/ui/modals.js.map +1 -0
  359. package/dist/ui/pack-picker.d.ts +12 -0
  360. package/dist/ui/pack-picker.d.ts.map +1 -0
  361. package/dist/ui/pack-picker.js +101 -0
  362. package/dist/ui/pack-picker.js.map +1 -0
  363. package/dist/ui/status-bar.d.ts +20 -0
  364. package/dist/ui/status-bar.d.ts.map +1 -0
  365. package/dist/ui/status-bar.js +41 -0
  366. package/dist/ui/status-bar.js.map +1 -0
  367. package/dist/ui/theme-picker.d.ts +24 -0
  368. package/dist/ui/theme-picker.d.ts.map +1 -0
  369. package/dist/ui/theme-picker.js +190 -0
  370. package/dist/ui/theme-picker.js.map +1 -0
  371. package/dist/ui/types.d.ts +62 -0
  372. package/dist/ui/types.d.ts.map +1 -0
  373. package/dist/ui/types.js +7 -0
  374. package/dist/ui/types.js.map +1 -0
  375. package/dist/version-check.d.ts.map +1 -1
  376. package/dist/version-check.js +1 -9
  377. package/dist/version-check.js.map +1 -1
  378. package/package.json +8 -3
  379. package/dist/agterm/agent-detection.js.map +0 -1
  380. package/dist/agterm/cli-backend.js.map +0 -1
  381. package/dist/agterm/index.d.ts +0 -12
  382. package/dist/agterm/index.d.ts.map +0 -1
  383. package/dist/agterm/index.js +0 -15
  384. package/dist/agterm/index.js.map +0 -1
  385. package/dist/agterm/orchestrator.d.ts.map +0 -1
  386. package/dist/agterm/orchestrator.js.map +0 -1
  387. package/dist/agterm/tools.d.ts.map +0 -1
  388. package/dist/agterm/tools.js +0 -278
  389. package/dist/agterm/tools.js.map +0 -1
  390. package/dist/agterm/types.d.ts.map +0 -1
  391. package/dist/agterm/types.js.map +0 -1
  392. package/dist/cli.d.ts +0 -14
  393. package/dist/cli.d.ts.map +0 -1
  394. package/dist/cli.js.map +0 -1
  395. package/dist/providers.d.ts +0 -51
  396. package/dist/providers.d.ts.map +0 -1
  397. package/dist/providers.js +0 -1146
  398. package/dist/providers.js.map +0 -1
  399. package/dist/ui-cli.d.ts +0 -17
  400. package/dist/ui-cli.d.ts.map +0 -1
  401. package/dist/ui-cli.js +0 -3730
  402. package/dist/ui-cli.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Calliope Agents — Swarm Manager
3
+ *
4
+ * Orchestrates swarm mode: overseer decomposes tasks, dispatches to parallel
5
+ * workers via the orchestrator, and aggregates results.
6
+ */
7
+ import type { SwarmSession, SwarmConfig } from './swarm-types.js';
8
+ /**
9
+ * Swarm Manager - Singleton
10
+ *
11
+ * Manages swarm sessions and coordinates decomposition, execution, and aggregation.
12
+ */
13
+ declare class SwarmManager {
14
+ private sessions;
15
+ /**
16
+ * Start a new swarm session
17
+ */
18
+ startSwarm(prompt: string, config?: Partial<SwarmConfig>, cwd?: string): Promise<SwarmSession>;
19
+ /**
20
+ * Get a swarm session by ID
21
+ */
22
+ getSession(sessionId: string): SwarmSession | undefined;
23
+ /**
24
+ * Get all swarm sessions
25
+ */
26
+ getAllSessions(): SwarmSession[];
27
+ /**
28
+ * Cancel a swarm session
29
+ */
30
+ cancelSwarm(sessionId: string): Promise<boolean>;
31
+ /**
32
+ * Get swarm statistics
33
+ */
34
+ getStats(): {
35
+ totalSessions: number;
36
+ activeSessions: number;
37
+ completedSessions: number;
38
+ failedSessions: number;
39
+ };
40
+ /**
41
+ * Run the full swarm lifecycle: decompose → execute → recover → aggregate
42
+ */
43
+ private runSwarmLifecycle;
44
+ /**
45
+ * Execute pending subtasks respecting dependencies and concurrency
46
+ */
47
+ private executeSubtasks;
48
+ /**
49
+ * Get an alternate agent to try on retry
50
+ */
51
+ private getAlternateAgent;
52
+ /**
53
+ * Select the best agent for a subtask using smart routing
54
+ */
55
+ private selectAgentForSubtask;
56
+ /**
57
+ * Execute a single subtask via the orchestrator
58
+ */
59
+ private executeSubtask;
60
+ /**
61
+ * Format swarm session status for display
62
+ */
63
+ formatSessionStatus(session: SwarmSession): string;
64
+ /**
65
+ * Reset all sessions
66
+ */
67
+ reset(): void;
68
+ }
69
+ /**
70
+ * Singleton swarm manager instance
71
+ */
72
+ export declare const swarmManager: SwarmManager;
73
+ export {};
74
+ //# sourceMappingURL=swarm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/agents/swarm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,YAAY,EAEZ,WAAW,EAEZ,MAAM,kBAAkB,CAAC;AAgB1B;;;;GAIG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAmC;IAEnD;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,EACjC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC;IAyBxB;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIvD;;OAEG;IACH,cAAc,IAAI,YAAY,EAAE;IAIhC;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBtD;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;KACxB;IAUD;;OAEG;YACW,iBAAiB;IA4F/B;;OAEG;YACW,eAAe;IAyC7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;YACW,cAAc;IAkD5B;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAiClD;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1,307 @@
1
+ /**
2
+ * Calliope Agents — Swarm Manager
3
+ *
4
+ * Orchestrates swarm mode: overseer decomposes tasks, dispatches to parallel
5
+ * workers via the orchestrator, and aggregates results.
6
+ */
7
+ import { randomUUID } from 'crypto';
8
+ import { DEFAULT_SWARM_CONFIG } from './swarm-types.js';
9
+ import { buildDecompositionPrompt, parseDecompositionResponse, resolveDependencies, getReadySubtasks, allSubtasksDone, hasFailedSubtasks, } from './decomposer.js';
10
+ import { aggregateResults } from './aggregator.js';
11
+ import { orchestrator } from './orchestrator.js';
12
+ import { smartRoute, getDefaultSmartRoutingConfig } from '../smart-router.js';
13
+ import * as config from '../config.js';
14
+ /**
15
+ * Swarm Manager - Singleton
16
+ *
17
+ * Manages swarm sessions and coordinates decomposition, execution, and aggregation.
18
+ */
19
+ class SwarmManager {
20
+ sessions = new Map();
21
+ /**
22
+ * Start a new swarm session
23
+ */
24
+ async startSwarm(prompt, config = {}, cwd) {
25
+ const mergedConfig = { ...DEFAULT_SWARM_CONFIG, ...config };
26
+ const session = {
27
+ id: randomUUID(),
28
+ prompt,
29
+ status: 'decomposing',
30
+ config: mergedConfig,
31
+ subtasks: [],
32
+ createdAt: new Date(),
33
+ updatedAt: new Date(),
34
+ };
35
+ this.sessions.set(session.id, session);
36
+ // Start the swarm lifecycle (fire and forget for background execution)
37
+ this.runSwarmLifecycle(session, cwd).catch(err => {
38
+ session.status = 'failed';
39
+ session.error = err instanceof Error ? err.message : String(err);
40
+ session.updatedAt = new Date();
41
+ });
42
+ return session;
43
+ }
44
+ /**
45
+ * Get a swarm session by ID
46
+ */
47
+ getSession(sessionId) {
48
+ return this.sessions.get(sessionId);
49
+ }
50
+ /**
51
+ * Get all swarm sessions
52
+ */
53
+ getAllSessions() {
54
+ return Array.from(this.sessions.values());
55
+ }
56
+ /**
57
+ * Cancel a swarm session
58
+ */
59
+ async cancelSwarm(sessionId) {
60
+ const session = this.sessions.get(sessionId);
61
+ if (!session)
62
+ return false;
63
+ // Cancel all running subtasks
64
+ for (const subtask of session.subtasks) {
65
+ if (subtask.taskId && (subtask.status === 'running' || subtask.status === 'pending')) {
66
+ try {
67
+ await orchestrator.cancelTask(subtask.taskId);
68
+ }
69
+ catch {
70
+ // Best effort cancellation
71
+ }
72
+ subtask.status = 'failed';
73
+ subtask.error = 'Cancelled';
74
+ }
75
+ }
76
+ session.status = 'cancelled';
77
+ session.updatedAt = new Date();
78
+ session.completedAt = new Date();
79
+ return true;
80
+ }
81
+ /**
82
+ * Get swarm statistics
83
+ */
84
+ getStats() {
85
+ const all = Array.from(this.sessions.values());
86
+ return {
87
+ totalSessions: all.length,
88
+ activeSessions: all.filter(s => ['decomposing', 'executing', 'recovering', 'aggregating'].includes(s.status)).length,
89
+ completedSessions: all.filter(s => s.status === 'completed').length,
90
+ failedSessions: all.filter(s => s.status === 'failed').length,
91
+ };
92
+ }
93
+ /**
94
+ * Run the full swarm lifecycle: decompose → execute → recover → aggregate
95
+ */
96
+ async runSwarmLifecycle(session, cwd) {
97
+ try {
98
+ // Phase 1: Decompose
99
+ session.status = 'decomposing';
100
+ session.updatedAt = new Date();
101
+ const decompositionPrompt = buildDecompositionPrompt(session.prompt, session.config.decomposition, session.config.workerAgent);
102
+ // Use overseer agent to decompose
103
+ const decompositionTask = await orchestrator.spawnAgent(decompositionPrompt, session.config.overseerAgent, { background: false, priority: 'high', cwd });
104
+ if (decompositionTask.status !== 'completed' || !decompositionTask.result) {
105
+ throw new Error(`Decomposition failed: ${decompositionTask.error || 'no result'}`);
106
+ }
107
+ // Parse subtasks from response
108
+ let subtasks = parseDecompositionResponse(decompositionTask.result, session.config.workerAgent, session.config.maxRetries);
109
+ // Resolve dependency indices to IDs
110
+ subtasks = resolveDependencies(subtasks);
111
+ session.subtasks = subtasks;
112
+ session.updatedAt = new Date();
113
+ // Phase 2: Execute
114
+ session.status = 'executing';
115
+ session.updatedAt = new Date();
116
+ await this.executeSubtasks(session, cwd);
117
+ // Phase 3: Recovery (retry failed subtasks)
118
+ if (hasFailedSubtasks(session.subtasks)) {
119
+ session.status = 'recovering';
120
+ session.updatedAt = new Date();
121
+ // Retry failed subtasks that haven't exceeded max attempts
122
+ const retryable = session.subtasks.filter(s => s.status === 'failed' && s.attempts < s.maxAttempts);
123
+ for (const subtask of retryable) {
124
+ subtask.status = 'pending';
125
+ // Try a different agent on retry if available
126
+ const alternateAgent = this.getAlternateAgent(subtask.agent);
127
+ if (alternateAgent && subtask.attempts >= 1) {
128
+ subtask.agent = alternateAgent;
129
+ }
130
+ }
131
+ if (retryable.length > 0) {
132
+ await this.executeSubtasks(session, cwd);
133
+ }
134
+ }
135
+ // Phase 4: Aggregate
136
+ session.status = 'aggregating';
137
+ session.updatedAt = new Date();
138
+ session.result = aggregateResults(session.subtasks, session.config.aggregation, session.prompt);
139
+ // Final status
140
+ const hasAnyCompleted = session.subtasks.some(s => s.status === 'completed');
141
+ session.status = hasAnyCompleted ? 'completed' : 'failed';
142
+ if (!hasAnyCompleted) {
143
+ session.error = 'All subtasks failed';
144
+ }
145
+ session.completedAt = new Date();
146
+ session.updatedAt = new Date();
147
+ }
148
+ catch (error) {
149
+ session.status = 'failed';
150
+ session.error = error instanceof Error ? error.message : String(error);
151
+ session.completedAt = new Date();
152
+ session.updatedAt = new Date();
153
+ }
154
+ }
155
+ /**
156
+ * Execute pending subtasks respecting dependencies and concurrency
157
+ */
158
+ async executeSubtasks(session, cwd) {
159
+ const maxConcurrent = session.config.maxWorkers;
160
+ // Loop until all subtasks are done
161
+ while (!allSubtasksDone(session.subtasks)) {
162
+ // Check if session was cancelled
163
+ if (session.status === 'cancelled')
164
+ return;
165
+ const ready = getReadySubtasks(session.subtasks);
166
+ const running = session.subtasks.filter(s => s.status === 'running');
167
+ // If nothing ready and nothing running, we're stuck (dependency deadlock or all failed)
168
+ if (ready.length === 0 && running.length === 0) {
169
+ break;
170
+ }
171
+ // Dispatch up to maxConcurrent - running.length
172
+ const slotsAvailable = maxConcurrent - running.length;
173
+ const toDispatch = ready.slice(0, slotsAvailable);
174
+ const promises = [];
175
+ for (const subtask of toDispatch) {
176
+ subtask.status = 'running';
177
+ subtask.attempts++;
178
+ session.updatedAt = new Date();
179
+ const promise = this.executeSubtask(subtask, session, cwd);
180
+ promises.push(promise);
181
+ }
182
+ // Wait for at least one to complete before checking again
183
+ if (promises.length > 0) {
184
+ await Promise.race(promises);
185
+ }
186
+ else if (running.length > 0) {
187
+ // Wait a bit for running tasks to complete
188
+ await new Promise(resolve => setTimeout(resolve, 1000));
189
+ }
190
+ }
191
+ }
192
+ /**
193
+ * Get an alternate agent to try on retry
194
+ */
195
+ getAlternateAgent(currentAgent) {
196
+ const agents = ['claude', 'gemini', 'calliope', 'codex'];
197
+ const alternatives = agents.filter(a => a !== currentAgent);
198
+ return alternatives.length > 0 ? alternatives[0] : null;
199
+ }
200
+ /**
201
+ * Select the best agent for a subtask using smart routing
202
+ */
203
+ selectAgentForSubtask(subtask, session) {
204
+ if (!session.config.useSmartRouting) {
205
+ return subtask.agent;
206
+ }
207
+ try {
208
+ // Use smart routing to determine task type and best provider
209
+ const routingConfig = {
210
+ ...getDefaultSmartRoutingConfig(),
211
+ enabled: true,
212
+ costSensitivity: config.get('smartRoutingCostSensitivity') ?? 0.3,
213
+ };
214
+ const decision = smartRoute(subtask.prompt, routingConfig);
215
+ // Map provider to agent type
216
+ const providerToAgent = {
217
+ anthropic: 'claude',
218
+ google: 'gemini',
219
+ openai: 'codex',
220
+ };
221
+ return providerToAgent[decision.selected.provider] || subtask.agent;
222
+ }
223
+ catch {
224
+ return subtask.agent;
225
+ }
226
+ }
227
+ /**
228
+ * Execute a single subtask via the orchestrator
229
+ */
230
+ async executeSubtask(subtask, session, cwd) {
231
+ try {
232
+ // Smart routing: select best agent for this subtask
233
+ const agent = this.selectAgentForSubtask(subtask, session);
234
+ // Add context from dependencies to the prompt
235
+ let enrichedPrompt = subtask.prompt;
236
+ if (subtask.dependsOn.length > 0) {
237
+ const depResults = session.subtasks
238
+ .filter(s => subtask.dependsOn.includes(s.id) && s.status === 'completed' && s.result)
239
+ .map(s => `Previous result (${s.prompt.slice(0, 60)}): ${s.result}`);
240
+ if (depResults.length > 0) {
241
+ enrichedPrompt = `${subtask.prompt}\n\nContext from previous steps:\n${depResults.join('\n\n')}`;
242
+ }
243
+ }
244
+ // If retrying, add error context
245
+ if (subtask.attempts > 1 && subtask.error) {
246
+ enrichedPrompt += `\n\nNote: Previous attempt failed with: ${subtask.error}\nPlease try a different approach.`;
247
+ }
248
+ const task = await orchestrator.spawnAgent(enrichedPrompt, agent, { background: false, priority: subtask.priority, cwd });
249
+ subtask.taskId = task.id;
250
+ if (task.status === 'completed') {
251
+ subtask.status = 'completed';
252
+ subtask.result = task.result;
253
+ subtask.completedAt = new Date();
254
+ }
255
+ else {
256
+ subtask.status = 'failed';
257
+ subtask.error = task.error || `Task ended with status: ${task.status}`;
258
+ }
259
+ }
260
+ catch (error) {
261
+ subtask.status = 'failed';
262
+ subtask.error = error instanceof Error ? error.message : String(error);
263
+ }
264
+ session.updatedAt = new Date();
265
+ }
266
+ /**
267
+ * Format swarm session status for display
268
+ */
269
+ formatSessionStatus(session) {
270
+ const lines = [
271
+ `Swarm: ${session.id.slice(0, 8)}`,
272
+ `Status: ${session.status}`,
273
+ `Strategy: ${session.config.decomposition} → ${session.config.aggregation}`,
274
+ `Task: ${session.prompt.slice(0, 80)}${session.prompt.length > 80 ? '...' : ''}`,
275
+ ];
276
+ if (session.subtasks.length > 0) {
277
+ const completed = session.subtasks.filter(s => s.status === 'completed').length;
278
+ const failed = session.subtasks.filter(s => s.status === 'failed').length;
279
+ const running = session.subtasks.filter(s => s.status === 'running').length;
280
+ const pending = session.subtasks.filter(s => s.status === 'pending').length;
281
+ lines.push(`Subtasks: ${completed}/${session.subtasks.length} done, ${running} running, ${pending} pending, ${failed} failed`);
282
+ for (const subtask of session.subtasks) {
283
+ const icon = subtask.status === 'completed' ? '\u2713'
284
+ : subtask.status === 'failed' ? '\u2717'
285
+ : subtask.status === 'running' ? '\u25B6'
286
+ : '\u25CB';
287
+ const suffix = subtask.attempts > 1 ? ` (attempt ${subtask.attempts})` : '';
288
+ lines.push(` ${icon} [${subtask.index + 1}] ${subtask.prompt.slice(0, 60)}${suffix}`);
289
+ }
290
+ }
291
+ if (session.error) {
292
+ lines.push(`Error: ${session.error}`);
293
+ }
294
+ return lines.join('\n');
295
+ }
296
+ /**
297
+ * Reset all sessions
298
+ */
299
+ reset() {
300
+ this.sessions.clear();
301
+ }
302
+ }
303
+ /**
304
+ * Singleton swarm manager instance
305
+ */
306
+ export const swarmManager = new SwarmManager();
307
+ //# sourceMappingURL=swarm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/agents/swarm.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,26 @@
1
1
  /**
2
- * AGTerm Tools
2
+ * Calliope Agents — Tools
3
3
  *
4
4
  * Tool definitions for spawn_agent, check_agent, and list_agents.
5
5
  */
6
6
  import type { Tool, ToolCall, ToolResult } from '../types.js';
7
7
  /**
8
- * Get agterm tool definitions
8
+ * Get agent tool definitions
9
9
  * Returns tools dynamically based on available agents
10
10
  */
11
11
  export declare function getAgtermTools(): Tool[];
12
12
  /**
13
- * AGTerm tool names for quick lookup
13
+ * Calliope Agents — tool names for quick lookup
14
14
  */
15
15
  export declare const AGTERM_TOOL_NAMES: string[];
16
+ export declare function setCommandDispatcher(dispatcher: (command: string) => Promise<string>): void;
17
+ export declare function getCommandDispatcher(): ((command: string) => Promise<string>) | null;
16
18
  /**
17
- * Check if a tool name is an agterm tool
19
+ * Check if a tool name is an agent tool
18
20
  */
19
21
  export declare function isAgtermTool(name: string): boolean;
20
22
  /**
21
- * Execute an agterm tool
23
+ * Execute an agent tool
22
24
  */
23
25
  export declare function executeAgtermTool(toolCall: ToolCall, cwd: string): Promise<ToolResult>;
24
26
  //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/agents/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA6C9D;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,EAAE,CAkRvC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAwM,CAAC;AAQvO,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAE3F;AAED,wBAAgB,oBAAoB,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAEpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC,CAmdrB"}