@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,489 @@
1
+ /**
2
+ * Calliope Agents — SDK Backend
3
+ *
4
+ * In-process agent executors using Claude Agent SDK, OpenAI Agents JS, and Google ADK.
5
+ * All are optional dependencies — gracefully degrade to CLI backend if absent.
6
+ *
7
+ * Supports all providers: Anthropic, OpenAI, Google, Bedrock, Vertex, Azure,
8
+ * Ollama, OpenRouter, Together, Groq, Fireworks, Mistral, and more.
9
+ */
10
+ import * as config from '../config.js';
11
+ // ============================================================================
12
+ // SDK availability detection
13
+ // ============================================================================
14
+ let claudeSdkAvailable = null;
15
+ let openaiSdkAvailable = null;
16
+ let googleAdkAvailable = null;
17
+ /**
18
+ * Check if Claude Agent SDK is installed
19
+ */
20
+ export async function isClaudeSdkAvailable() {
21
+ if (claudeSdkAvailable !== null)
22
+ return claudeSdkAvailable;
23
+ try {
24
+ await import('@anthropic-ai/claude-agent-sdk');
25
+ claudeSdkAvailable = true;
26
+ }
27
+ catch {
28
+ claudeSdkAvailable = false;
29
+ }
30
+ return claudeSdkAvailable;
31
+ }
32
+ /**
33
+ * Check if OpenAI Agents JS is installed
34
+ */
35
+ export async function isOpenaiSdkAvailable() {
36
+ if (openaiSdkAvailable !== null)
37
+ return openaiSdkAvailable;
38
+ try {
39
+ await import('@openai/agents');
40
+ openaiSdkAvailable = true;
41
+ }
42
+ catch {
43
+ openaiSdkAvailable = false;
44
+ }
45
+ return openaiSdkAvailable;
46
+ }
47
+ /**
48
+ * Check if Google ADK is installed
49
+ */
50
+ export async function isGoogleAdkAvailable() {
51
+ if (googleAdkAvailable !== null)
52
+ return googleAdkAvailable;
53
+ try {
54
+ await import('@google/adk');
55
+ googleAdkAvailable = true;
56
+ }
57
+ catch {
58
+ googleAdkAvailable = false;
59
+ }
60
+ return googleAdkAvailable;
61
+ }
62
+ /**
63
+ * Get available SDK executors
64
+ */
65
+ export async function getAvailableExecutors() {
66
+ const executors = ['cli']; // CLI always available
67
+ if (await isClaudeSdkAvailable())
68
+ executors.push('claude-sdk');
69
+ if (await isOpenaiSdkAvailable())
70
+ executors.push('openai-sdk');
71
+ if (await isGoogleAdkAvailable())
72
+ executors.push('google-adk');
73
+ return executors;
74
+ }
75
+ // ============================================================================
76
+ // Provider configuration mapping
77
+ // ============================================================================
78
+ /**
79
+ * Get API key for the task's provider (from env or config)
80
+ */
81
+ function getTaskApiKey(task) {
82
+ const provider = task.provider || config.get('defaultProvider');
83
+ return config.getApiKey(provider);
84
+ }
85
+ /**
86
+ * Get base URL for the task's provider (for Ollama, LiteLLM, Bedrock, etc.)
87
+ */
88
+ function getTaskBaseUrl(task) {
89
+ const provider = task.provider || config.get('defaultProvider');
90
+ return config.getBaseUrl(provider);
91
+ }
92
+ /**
93
+ * Map calliope provider name to OpenAI-compatible base URL
94
+ * OpenAI Agents JS can use any OpenAI-compatible API via baseURL
95
+ */
96
+ function getOpenAICompatBaseUrl(provider) {
97
+ const urlMap = {
98
+ openai: undefined, // default
99
+ anthropic: undefined, // uses native SDK path
100
+ ollama: (process.env.OLLAMA_BASE_URL || config.getBaseUrl('ollama') || 'http://localhost:11434') + '/v1',
101
+ openrouter: 'https://openrouter.ai/api/v1',
102
+ together: 'https://api.together.xyz/v1',
103
+ groq: 'https://api.groq.com/openai/v1',
104
+ fireworks: 'https://api.fireworks.ai/inference/v1',
105
+ mistral: 'https://api.mistral.ai/v1',
106
+ litellm: (process.env.LITELLM_BASE_URL || config.getBaseUrl('litellm') || 'http://localhost:4000') + '/v1',
107
+ bedrock: config.getBaseUrl('bedrock'),
108
+ };
109
+ return urlMap[provider];
110
+ }
111
+ /**
112
+ * Restore environment variables from a snapshot
113
+ */
114
+ function restoreEnv(prevEnv) {
115
+ for (const [key, val] of Object.entries(prevEnv)) {
116
+ if (val === undefined) {
117
+ delete process.env[key];
118
+ }
119
+ else {
120
+ process.env[key] = val;
121
+ }
122
+ }
123
+ }
124
+ // ============================================================================
125
+ // Claude Agent SDK executor
126
+ // ============================================================================
127
+ /**
128
+ * Execute a task using Claude Agent SDK (@anthropic-ai/claude-agent-sdk)
129
+ *
130
+ * Supports:
131
+ * - Native Anthropic API keys
132
+ * - AWS Bedrock via ANTHROPIC_BEDROCK_BASE_URL
133
+ * - Google Vertex via ANTHROPIC_VERTEX_PROJECT_ID
134
+ * - Any provider that speaks the Anthropic API format
135
+ */
136
+ export async function* executeClaudeSdk(task, cwd, timeout = 15 * 60 * 1000) {
137
+ yield {
138
+ type: 'start',
139
+ taskId: task.id,
140
+ timestamp: new Date(),
141
+ message: `Starting Claude SDK executor (model: ${task.model || 'default'})`,
142
+ };
143
+ // Track env vars to restore (must be outside try for finally access)
144
+ const prevEnv = {};
145
+ try {
146
+ const sdk = await import('@anthropic-ai/claude-agent-sdk');
147
+ const { query } = sdk;
148
+ const apiKey = getTaskApiKey(task);
149
+ if (!apiKey) {
150
+ throw new Error('No API key available for Claude SDK executor');
151
+ }
152
+ // Set up env for the SDK
153
+ const provider = task.provider || config.get('defaultProvider');
154
+ // The Claude SDK uses ANTHROPIC_API_KEY
155
+ if (provider === 'anthropic' || !provider || provider === 'auto') {
156
+ prevEnv['ANTHROPIC_API_KEY'] = process.env.ANTHROPIC_API_KEY;
157
+ process.env.ANTHROPIC_API_KEY = apiKey;
158
+ }
159
+ else if (provider === 'bedrock') {
160
+ // Bedrock support via Claude SDK
161
+ const baseUrl = getTaskBaseUrl(task);
162
+ if (baseUrl) {
163
+ prevEnv['ANTHROPIC_BEDROCK_BASE_URL'] = process.env.ANTHROPIC_BEDROCK_BASE_URL;
164
+ process.env.ANTHROPIC_BEDROCK_BASE_URL = baseUrl;
165
+ }
166
+ }
167
+ // Build query options
168
+ const queryOptions = {
169
+ prompt: task.prompt,
170
+ options: {
171
+ model: task.model || 'claude-sonnet-4-20250514',
172
+ permissionMode: 'bypassPermissions',
173
+ maxTurns: 50,
174
+ cwd,
175
+ ...(task.systemPrompt && { systemPrompt: task.systemPrompt }),
176
+ },
177
+ };
178
+ // Set up timeout
179
+ const timeoutPromise = new Promise((_, reject) => {
180
+ setTimeout(() => reject(new Error(`Task timed out after ${timeout}ms`)), timeout);
181
+ });
182
+ // Run the query
183
+ let fullOutput = '';
184
+ // The SDK's query() returns an async generator of messages
185
+ const queryGen = query(queryOptions);
186
+ // Race between query execution and timeout
187
+ const processQuery = async () => {
188
+ for await (const message of queryGen) {
189
+ const msgAny = message;
190
+ // Extract text content from SDK messages
191
+ if (msgAny.type === 'text' || msgAny.type === 'assistant') {
192
+ const content = String(msgAny.content || msgAny.text || '');
193
+ if (content) {
194
+ fullOutput += content;
195
+ }
196
+ }
197
+ else if (msgAny.type === 'result') {
198
+ const content = String(msgAny.content || msgAny.text || msgAny.result || '');
199
+ if (content) {
200
+ fullOutput += content;
201
+ }
202
+ }
203
+ }
204
+ };
205
+ await Promise.race([processQuery(), timeoutPromise]);
206
+ // Emit result
207
+ if (fullOutput) {
208
+ yield {
209
+ type: 'text',
210
+ taskId: task.id,
211
+ timestamp: new Date(),
212
+ content: fullOutput,
213
+ };
214
+ }
215
+ yield {
216
+ type: 'complete',
217
+ taskId: task.id,
218
+ timestamp: new Date(),
219
+ };
220
+ }
221
+ catch (error) {
222
+ const msg = error instanceof Error ? error.message : String(error);
223
+ yield {
224
+ type: 'error',
225
+ taskId: task.id,
226
+ timestamp: new Date(),
227
+ code: 'SDK_ERROR',
228
+ message: `Claude SDK error: ${msg}`,
229
+ };
230
+ }
231
+ finally {
232
+ // Always restore env vars, even on timeout/error
233
+ restoreEnv(prevEnv);
234
+ }
235
+ }
236
+ // ============================================================================
237
+ // OpenAI Agents JS executor
238
+ // ============================================================================
239
+ /**
240
+ * Execute a task using OpenAI Agents JS (@openai/agents)
241
+ *
242
+ * Supports any OpenAI-compatible API via baseURL:
243
+ * - Native OpenAI
244
+ * - Azure OpenAI (via base URL)
245
+ * - Ollama (via /v1 endpoint)
246
+ * - OpenRouter, Together, Groq, Fireworks, Mistral
247
+ * - LiteLLM proxy
248
+ * - Any OpenAI-compatible API
249
+ */
250
+ export async function* executeOpenaiSdk(task, cwd, timeout = 15 * 60 * 1000) {
251
+ yield {
252
+ type: 'start',
253
+ taskId: task.id,
254
+ timestamp: new Date(),
255
+ message: `Starting OpenAI Agents executor (model: ${task.model || 'default'})`,
256
+ };
257
+ try {
258
+ const agentsSdk = await import('@openai/agents');
259
+ const { Agent, run } = agentsSdk;
260
+ const provider = task.provider || config.get('defaultProvider') || 'openai';
261
+ const apiKey = getTaskApiKey(task);
262
+ const baseUrl = getOpenAICompatBaseUrl(provider);
263
+ // For providers that need API keys, validate
264
+ if (!apiKey && provider !== 'ollama') {
265
+ throw new Error(`No API key available for provider '${provider}'`);
266
+ }
267
+ // Create agent with model configuration
268
+ const agentConfig = {
269
+ name: `calliope-subagent-${task.id.slice(0, 8)}`,
270
+ instructions: task.systemPrompt || `You are a sub-agent executing a delegated task. Complete the task thoroughly and return your findings. Working directory: ${cwd}`,
271
+ model: task.model || 'gpt-4o',
272
+ };
273
+ // Configure model provider if not default OpenAI
274
+ if (baseUrl || (apiKey && provider !== 'openai')) {
275
+ agentConfig.modelSettings = {
276
+ ...(baseUrl && { baseUrl }),
277
+ ...(apiKey && { apiKey }),
278
+ };
279
+ }
280
+ const agent = new Agent(agentConfig);
281
+ // Set up timeout
282
+ const timeoutPromise = new Promise((_, reject) => {
283
+ setTimeout(() => reject(new Error(`Task timed out after ${timeout}ms`)), timeout);
284
+ });
285
+ let fullOutput = '';
286
+ const processRun = async () => {
287
+ // Try streaming first, fall back to non-streaming
288
+ try {
289
+ const result = await run(agent, task.prompt, { stream: true });
290
+ const resultAny = result;
291
+ // Handle streamed result
292
+ if (typeof resultAny.toTextStream === 'function') {
293
+ const stream = resultAny.toTextStream();
294
+ for await (const chunk of stream) {
295
+ fullOutput += chunk;
296
+ }
297
+ }
298
+ else if (typeof resultAny.finalOutput === 'string') {
299
+ fullOutput = resultAny.finalOutput;
300
+ }
301
+ else if (resultAny.output) {
302
+ fullOutput = String(resultAny.output);
303
+ }
304
+ }
305
+ catch {
306
+ // Fall back to non-streaming
307
+ const result = await run(agent, task.prompt);
308
+ const resultAny = result;
309
+ fullOutput = String(resultAny.finalOutput || resultAny.output || '');
310
+ }
311
+ };
312
+ await Promise.race([processRun(), timeoutPromise]);
313
+ if (fullOutput) {
314
+ yield {
315
+ type: 'text',
316
+ taskId: task.id,
317
+ timestamp: new Date(),
318
+ content: fullOutput,
319
+ };
320
+ }
321
+ yield {
322
+ type: 'complete',
323
+ taskId: task.id,
324
+ timestamp: new Date(),
325
+ };
326
+ }
327
+ catch (error) {
328
+ const msg = error instanceof Error ? error.message : String(error);
329
+ yield {
330
+ type: 'error',
331
+ taskId: task.id,
332
+ timestamp: new Date(),
333
+ code: 'SDK_ERROR',
334
+ message: `OpenAI Agents error: ${msg}`,
335
+ };
336
+ }
337
+ }
338
+ // ============================================================================
339
+ // Google ADK executor
340
+ // ============================================================================
341
+ /**
342
+ * Execute a task using Google ADK (@google/adk)
343
+ *
344
+ * Supports:
345
+ * - Native Google AI (Gemini API key)
346
+ * - Google Cloud Vertex AI
347
+ * - Any model supported by ADK
348
+ */
349
+ export async function* executeGoogleAdk(task, cwd, timeout = 15 * 60 * 1000) {
350
+ yield {
351
+ type: 'start',
352
+ taskId: task.id,
353
+ timestamp: new Date(),
354
+ message: `Starting Google ADK executor (model: ${task.model || 'default'})`,
355
+ };
356
+ const prevEnv = {};
357
+ try {
358
+ const adk = await import('@google/adk');
359
+ const { Agent, Runner } = adk;
360
+ const apiKey = getTaskApiKey(task);
361
+ if (!apiKey) {
362
+ throw new Error('No API key available for Google ADK executor. Set GOOGLE_API_KEY.');
363
+ }
364
+ // Set up env for the ADK
365
+ prevEnv['GOOGLE_API_KEY'] = process.env.GOOGLE_API_KEY;
366
+ process.env.GOOGLE_API_KEY = apiKey;
367
+ // Create agent
368
+ const agent = new Agent({
369
+ name: `calliope-subagent-${task.id.slice(0, 8)}`,
370
+ model: task.model || 'gemini-2.0-flash',
371
+ instruction: task.systemPrompt || `You are a sub-agent executing a delegated task. Complete the task thoroughly and return your findings. Working directory: ${cwd}`,
372
+ });
373
+ // Set up timeout
374
+ const timeoutPromise = new Promise((_, reject) => {
375
+ setTimeout(() => reject(new Error(`Task timed out after ${timeout}ms`)), timeout);
376
+ });
377
+ let fullOutput = '';
378
+ const processRun = async () => {
379
+ // ADK uses Runner to execute agents
380
+ const runner = new Runner({ agent, appName: 'calliope-subagent' });
381
+ const runnerAny = runner;
382
+ // Try the run method
383
+ if (typeof runnerAny.run === 'function') {
384
+ const result = await runnerAny.run(task.prompt);
385
+ fullOutput = String(result.output || result.text || result.content || '');
386
+ }
387
+ else {
388
+ // Fallback: use agent directly if Runner pattern differs
389
+ const agentAny = agent;
390
+ if (typeof agentAny.generate === 'function') {
391
+ const result = await agentAny.generate(task.prompt);
392
+ fullOutput = String(result.text || result.content || result.output || '');
393
+ }
394
+ else {
395
+ throw new Error('Google ADK: could not find run() or generate() method. Check ADK version.');
396
+ }
397
+ }
398
+ };
399
+ await Promise.race([processRun(), timeoutPromise]);
400
+ if (fullOutput) {
401
+ yield {
402
+ type: 'text',
403
+ taskId: task.id,
404
+ timestamp: new Date(),
405
+ content: fullOutput,
406
+ };
407
+ }
408
+ yield {
409
+ type: 'complete',
410
+ taskId: task.id,
411
+ timestamp: new Date(),
412
+ };
413
+ }
414
+ catch (error) {
415
+ const msg = error instanceof Error ? error.message : String(error);
416
+ yield {
417
+ type: 'error',
418
+ taskId: task.id,
419
+ timestamp: new Date(),
420
+ code: 'SDK_ERROR',
421
+ message: `Google ADK error: ${msg}`,
422
+ };
423
+ }
424
+ finally {
425
+ restoreEnv(prevEnv);
426
+ }
427
+ }
428
+ // ============================================================================
429
+ // Executor dispatcher
430
+ // ============================================================================
431
+ /**
432
+ * Execute a task using the appropriate SDK backend.
433
+ * Falls back to CLI backend if the requested SDK is not available.
434
+ */
435
+ export async function* executeSdkAgent(task, cwd, timeout = 15 * 60 * 1000) {
436
+ switch (task.executor) {
437
+ case 'claude-sdk':
438
+ if (await isClaudeSdkAvailable()) {
439
+ yield* executeClaudeSdk(task, cwd, timeout);
440
+ }
441
+ else {
442
+ yield {
443
+ type: 'error',
444
+ taskId: task.id,
445
+ timestamp: new Date(),
446
+ code: 'SDK_MISSING',
447
+ message: 'Claude Agent SDK not installed. Run: npm install @anthropic-ai/claude-agent-sdk',
448
+ };
449
+ }
450
+ break;
451
+ case 'openai-sdk':
452
+ if (await isOpenaiSdkAvailable()) {
453
+ yield* executeOpenaiSdk(task, cwd, timeout);
454
+ }
455
+ else {
456
+ yield {
457
+ type: 'error',
458
+ taskId: task.id,
459
+ timestamp: new Date(),
460
+ code: 'SDK_MISSING',
461
+ message: 'OpenAI Agents JS not installed. Run: npm install @openai/agents',
462
+ };
463
+ }
464
+ break;
465
+ case 'google-adk':
466
+ if (await isGoogleAdkAvailable()) {
467
+ yield* executeGoogleAdk(task, cwd, timeout);
468
+ }
469
+ else {
470
+ yield {
471
+ type: 'error',
472
+ taskId: task.id,
473
+ timestamp: new Date(),
474
+ code: 'SDK_MISSING',
475
+ message: 'Google ADK not installed. Run: npm install @google/adk',
476
+ };
477
+ }
478
+ break;
479
+ default:
480
+ yield {
481
+ type: 'error',
482
+ taskId: task.id,
483
+ timestamp: new Date(),
484
+ code: 'INVALID_EXECUTOR',
485
+ message: `Unknown executor: ${task.executor}`,
486
+ };
487
+ }
488
+ }
489
+ //# sourceMappingURL=sdk-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-backend.js","sourceRoot":"","sources":["../../src/agents/sdk-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Calliope Agents — Swarm Types
3
+ *
4
+ * Type definitions for swarm mode: overseer-driven task decomposition,
5
+ * parallel worker dispatch, and result aggregation.
6
+ */
7
+ import type { SubAgentType, TaskPriority } from './types.js';
8
+ /**
9
+ * Decomposition strategies for breaking tasks into subtasks
10
+ */
11
+ export type DecompositionStrategy = 'parallel' | 'sequential' | 'map-reduce' | 'pipeline';
12
+ /**
13
+ * Aggregation strategies for merging subtask results
14
+ */
15
+ export type AggregationStrategy = 'concatenate' | 'merge-dedupe' | 'summarize' | 'structured';
16
+ /**
17
+ * Swarm session status
18
+ */
19
+ export type SwarmStatus = 'decomposing' | 'executing' | 'recovering' | 'aggregating' | 'completed' | 'failed' | 'cancelled';
20
+ /**
21
+ * Subtask status within a swarm
22
+ */
23
+ export type SwarmSubtaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'retrying';
24
+ /**
25
+ * A single subtask within a swarm
26
+ */
27
+ export interface SwarmSubtask {
28
+ id: string;
29
+ index: number;
30
+ prompt: string;
31
+ agent: SubAgentType;
32
+ priority: TaskPriority;
33
+ status: SwarmSubtaskStatus;
34
+ dependsOn: string[];
35
+ result?: string;
36
+ error?: string;
37
+ attempts: number;
38
+ maxAttempts: number;
39
+ taskId?: string;
40
+ createdAt: Date;
41
+ completedAt?: Date;
42
+ }
43
+ /**
44
+ * Swarm session configuration
45
+ */
46
+ export interface SwarmConfig {
47
+ /** Maximum concurrent workers (default: 3) */
48
+ maxWorkers: number;
49
+ /** Decomposition strategy */
50
+ decomposition: DecompositionStrategy;
51
+ /** Aggregation strategy */
52
+ aggregation: AggregationStrategy;
53
+ /** Max retries per subtask (default: 2) */
54
+ maxRetries: number;
55
+ /** Timeout per subtask in ms (default: 5 min) */
56
+ subtaskTimeout: number;
57
+ /** Agent type for workers (default: 'claude') */
58
+ workerAgent: SubAgentType;
59
+ /** Agent type for overseer (default: 'claude') */
60
+ overseerAgent: SubAgentType;
61
+ /** Use smart routing to select worker agent per subtask (default: false) */
62
+ useSmartRouting: boolean;
63
+ }
64
+ /**
65
+ * Default swarm configuration
66
+ */
67
+ export declare const DEFAULT_SWARM_CONFIG: SwarmConfig;
68
+ /**
69
+ * A swarm session representing a full decompose→execute→aggregate cycle
70
+ */
71
+ export interface SwarmSession {
72
+ id: string;
73
+ prompt: string;
74
+ status: SwarmStatus;
75
+ config: SwarmConfig;
76
+ subtasks: SwarmSubtask[];
77
+ result?: string;
78
+ error?: string;
79
+ createdAt: Date;
80
+ updatedAt: Date;
81
+ completedAt?: Date;
82
+ }
83
+ //# sourceMappingURL=swarm-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-types.d.ts","sourceRoot":"","sources":["../../src/agents/swarm-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1F;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,WAAW,GACX,YAAY,GACZ,aAAa,GACb,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,qBAAqB,CAAC;IACrC,2BAA2B;IAC3B,WAAW,EAAE,mBAAmB,CAAC;IACjC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,WAAW,EAAE,YAAY,CAAC;IAC1B,kDAAkD;IAClD,aAAa,EAAE,YAAY,CAAC;IAC5B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WASlC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Calliope Agents — Swarm Types
3
+ *
4
+ * Type definitions for swarm mode: overseer-driven task decomposition,
5
+ * parallel worker dispatch, and result aggregation.
6
+ */
7
+ /**
8
+ * Default swarm configuration
9
+ */
10
+ export const DEFAULT_SWARM_CONFIG = {
11
+ maxWorkers: 3,
12
+ decomposition: 'parallel',
13
+ aggregation: 'concatenate',
14
+ maxRetries: 2,
15
+ subtaskTimeout: 5 * 60 * 1000,
16
+ workerAgent: 'claude',
17
+ overseerAgent: 'claude',
18
+ useSmartRouting: false,
19
+ };
20
+ //# sourceMappingURL=swarm-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-types.js","sourceRoot":"","sources":["../../src/agents/swarm-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8EH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC7B,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,QAAQ;IACvB,eAAe,EAAE,KAAK;CACvB,CAAC"}