@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,145 @@
1
+ /**
2
+ * Calliope CLI - LLM-Based Auto-Compression
3
+ *
4
+ * Automatically compresses conversation context using LLM summarization
5
+ * when approaching token limits. Falls back to heuristic summarization.
6
+ */
7
+ import { chat } from './providers/index.js';
8
+ import { summarizeMessages, estimateTotalTokens } from './summarization.js';
9
+ const DEFAULT_CONFIG = {
10
+ enabled: true,
11
+ triggerThreshold: 75,
12
+ targetThreshold: 50,
13
+ preserveRecent: 10,
14
+ useLlm: true,
15
+ };
16
+ let config = { ...DEFAULT_CONFIG };
17
+ /** Configure auto-compressor */
18
+ export function configureAutoCompressor(opts) {
19
+ config = { ...config, ...opts };
20
+ }
21
+ /** Get current config */
22
+ export function getAutoCompressorConfig() {
23
+ return { ...config };
24
+ }
25
+ // ============================================================================
26
+ // LLM-Based Summarization
27
+ // ============================================================================
28
+ const COMPRESSION_PROMPT = `You are a conversation summarizer. Compress the following conversation into a concise summary that preserves:
29
+ 1. Key decisions and their reasoning
30
+ 2. Files modified and their changes
31
+ 3. Commands executed and their outcomes
32
+ 4. Current task status and next steps
33
+ 5. Any errors encountered and how they were resolved
34
+
35
+ Be concise but complete. Use bullet points. Do not lose important technical details like file paths, function names, or error messages.
36
+
37
+ Conversation to summarize:`;
38
+ /**
39
+ * Summarize messages using an LLM call.
40
+ * Returns the summary text, or null if LLM call fails.
41
+ */
42
+ export async function llmSummarize(messages, provider, model) {
43
+ try {
44
+ // Build conversation text for the summarizer
45
+ const conversationText = messages.map(m => {
46
+ const content = typeof m.content === 'string' ? m.content :
47
+ m.content.filter(b => b.type === 'text').map(b => b.text).join('\n');
48
+ const prefix = m.role === 'user' ? 'User' : m.role === 'assistant' ? 'Assistant' : m.role === 'tool' ? 'Tool' : 'System';
49
+ return `${prefix}: ${content.slice(0, 2000)}`; // Cap per-message length
50
+ }).join('\n\n');
51
+ const emptyTools = [];
52
+ const summaryMessages = [
53
+ { role: 'system', content: 'You are a precise conversation summarizer. Output only the summary, no preamble.' },
54
+ { role: 'user', content: `${COMPRESSION_PROMPT}\n\n${conversationText}` },
55
+ ];
56
+ const response = await chat(provider, summaryMessages, emptyTools, model);
57
+ if (response.content && response.content.length > 20) {
58
+ return response.content;
59
+ }
60
+ return null;
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ }
66
+ /**
67
+ * Check if compression is needed and compress if so.
68
+ * Returns the (possibly compressed) message array.
69
+ */
70
+ export async function autoCompress(messages, contextLimit, provider, model) {
71
+ const currentTokens = estimateTotalTokens(messages);
72
+ const triggerAt = contextLimit * (config.triggerThreshold / 100);
73
+ // Not over threshold — no compression needed
74
+ if (!config.enabled || currentTokens < triggerAt) {
75
+ return {
76
+ compressed: false,
77
+ method: 'none',
78
+ messages,
79
+ originalTokens: currentTokens,
80
+ compressedTokens: currentTokens,
81
+ summarizedCount: 0,
82
+ };
83
+ }
84
+ // Separate system messages and recent messages
85
+ // Adapt preserveRecent for small context models (real-world models are >= 2048 tokens)
86
+ // Only override when contextLimit represents a real small model, not test values
87
+ const effectivePreserve = contextLimit >= 2048 && contextLimit < 8000 ? Math.min(config.preserveRecent, 2)
88
+ : contextLimit >= 8000 && contextLimit < 16000 ? Math.min(config.preserveRecent, 4)
89
+ : contextLimit >= 16000 && contextLimit < 32000 ? Math.min(config.preserveRecent, 6)
90
+ : config.preserveRecent;
91
+ const systemMessages = messages.filter(m => m.role === 'system');
92
+ const nonSystem = messages.filter(m => m.role !== 'system');
93
+ const preserveCount = Math.min(effectivePreserve, nonSystem.length);
94
+ const toSummarize = nonSystem.slice(0, nonSystem.length - preserveCount);
95
+ const toKeep = nonSystem.slice(nonSystem.length - preserveCount);
96
+ if (toSummarize.length === 0) {
97
+ return {
98
+ compressed: false,
99
+ method: 'none',
100
+ messages,
101
+ originalTokens: currentTokens,
102
+ compressedTokens: currentTokens,
103
+ summarizedCount: 0,
104
+ };
105
+ }
106
+ // Try LLM summarization first
107
+ let summary = null;
108
+ let method = 'heuristic';
109
+ if (config.useLlm) {
110
+ summary = await llmSummarize(toSummarize, provider, config.compressionModel || model);
111
+ if (summary)
112
+ method = 'llm';
113
+ }
114
+ // Fallback to heuristic
115
+ if (!summary) {
116
+ summary = summarizeMessages(toSummarize);
117
+ method = 'heuristic';
118
+ }
119
+ // Build compressed messages
120
+ const compressed = [
121
+ ...systemMessages,
122
+ { role: 'system', content: `[Auto-compressed context — ${method} summary of ${toSummarize.length} messages]\n\n${summary}` },
123
+ ...toKeep,
124
+ ];
125
+ const compressedTokens = estimateTotalTokens(compressed);
126
+ return {
127
+ compressed: true,
128
+ method,
129
+ messages: compressed,
130
+ originalTokens: currentTokens,
131
+ compressedTokens,
132
+ summarizedCount: toSummarize.length,
133
+ summary,
134
+ };
135
+ }
136
+ /**
137
+ * Check if compression should be triggered (without actually compressing).
138
+ * Useful for status display.
139
+ */
140
+ export function shouldCompress(currentTokens, contextLimit) {
141
+ if (!config.enabled)
142
+ return false;
143
+ return currentTokens >= contextLimit * (config.triggerThreshold / 100);
144
+ }
145
+ //# sourceMappingURL=auto-compressor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-compressor.js","sourceRoot":"","sources":["../src/auto-compressor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Calliope CLI - Background Jobs System
3
+ *
4
+ * Run agent tasks in the background while continuing interactive use.
5
+ * Commands: /bg, /jobs, /job, /cancel
6
+ */
7
+ export type JobStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
8
+ export interface BackgroundJob {
9
+ id: string;
10
+ prompt: string;
11
+ status: JobStatus;
12
+ createdAt: string;
13
+ startedAt?: string;
14
+ completedAt?: string;
15
+ result?: string;
16
+ error?: string;
17
+ provider?: string;
18
+ model?: string;
19
+ iterations: number;
20
+ }
21
+ /** Create a new background job */
22
+ export declare function createJob(prompt: string, options?: {
23
+ provider?: string;
24
+ model?: string;
25
+ }): BackgroundJob;
26
+ /** Start executing a job (call this with your agent runner) */
27
+ export declare function runJob(id: string, executor: (prompt: string, signal: AbortSignal) => Promise<{
28
+ result: string;
29
+ iterations: number;
30
+ }>): Promise<BackgroundJob>;
31
+ /** Cancel a running job */
32
+ export declare function cancelJob(id: string): boolean;
33
+ /** Get a specific job */
34
+ export declare function getJob(id: string): BackgroundJob | undefined;
35
+ /** List all jobs, optionally filtered by status */
36
+ export declare function listJobs(statusFilter?: JobStatus): BackgroundJob[];
37
+ /** Get count of active (pending + running) jobs */
38
+ export declare function activeJobCount(): number;
39
+ /** Clear completed/failed/cancelled jobs */
40
+ export declare function clearFinishedJobs(): number;
41
+ /** Format job for display */
42
+ export declare function formatJob(job: BackgroundJob): string;
43
+ /** Format jobs list for display */
44
+ export declare function formatJobsList(): string;
45
+ //# sourceMappingURL=background-jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-jobs.d.ts","sourceRoot":"","sources":["../src/background-jobs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAQD,kCAAkC;AAClC,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAaxG;AAED,+DAA+D;AAC/D,wBAAsB,MAAM,CAC1B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GACjG,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAED,2BAA2B;AAC3B,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAa7C;AAED,yBAAyB;AACzB,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE5D;AAED,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,EAAE,CAIlE;AAED,mDAAmD;AACnD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,4CAA4C;AAC5C,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C;AAED,6BAA6B;AAC7B,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAcpD;AAED,mCAAmC;AACnC,wBAAgB,cAAc,IAAI,MAAM,CAIvC"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Calliope CLI - Background Jobs System
3
+ *
4
+ * Run agent tasks in the background while continuing interactive use.
5
+ * Commands: /bg, /jobs, /job, /cancel
6
+ */
7
+ // Job registry
8
+ const jobs = new Map();
9
+ const jobRunners = new Map();
10
+ let nextJobId = 1;
11
+ /** Create a new background job */
12
+ export function createJob(prompt, options) {
13
+ const id = `bg-${nextJobId++}`;
14
+ const job = {
15
+ id,
16
+ prompt,
17
+ status: 'pending',
18
+ createdAt: new Date().toISOString(),
19
+ provider: options?.provider,
20
+ model: options?.model,
21
+ iterations: 0,
22
+ };
23
+ jobs.set(id, job);
24
+ return job;
25
+ }
26
+ /** Start executing a job (call this with your agent runner) */
27
+ export async function runJob(id, executor) {
28
+ const job = jobs.get(id);
29
+ if (!job)
30
+ throw new Error(`Job ${id} not found`);
31
+ const controller = new AbortController();
32
+ jobRunners.set(id, controller);
33
+ job.status = 'running';
34
+ job.startedAt = new Date().toISOString();
35
+ try {
36
+ const { result, iterations } = await executor(job.prompt, controller.signal);
37
+ job.status = 'completed';
38
+ job.result = result;
39
+ job.iterations = iterations;
40
+ }
41
+ catch (err) {
42
+ if (controller.signal.aborted) {
43
+ job.status = 'cancelled';
44
+ }
45
+ else {
46
+ job.status = 'failed';
47
+ job.error = err instanceof Error ? err.message : String(err);
48
+ }
49
+ }
50
+ finally {
51
+ job.completedAt = new Date().toISOString();
52
+ jobRunners.delete(id);
53
+ }
54
+ return job;
55
+ }
56
+ /** Cancel a running job */
57
+ export function cancelJob(id) {
58
+ const controller = jobRunners.get(id);
59
+ if (controller) {
60
+ controller.abort();
61
+ return true;
62
+ }
63
+ const job = jobs.get(id);
64
+ if (job && job.status === 'pending') {
65
+ job.status = 'cancelled';
66
+ job.completedAt = new Date().toISOString();
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ /** Get a specific job */
72
+ export function getJob(id) {
73
+ return jobs.get(id);
74
+ }
75
+ /** List all jobs, optionally filtered by status */
76
+ export function listJobs(statusFilter) {
77
+ const all = Array.from(jobs.values());
78
+ if (statusFilter)
79
+ return all.filter(j => j.status === statusFilter);
80
+ return all.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
81
+ }
82
+ /** Get count of active (pending + running) jobs */
83
+ export function activeJobCount() {
84
+ return Array.from(jobs.values()).filter(j => j.status === 'pending' || j.status === 'running').length;
85
+ }
86
+ /** Clear completed/failed/cancelled jobs */
87
+ export function clearFinishedJobs() {
88
+ let cleared = 0;
89
+ for (const [id, job] of jobs) {
90
+ if (job.status === 'completed' || job.status === 'failed' || job.status === 'cancelled') {
91
+ jobs.delete(id);
92
+ cleared++;
93
+ }
94
+ }
95
+ return cleared;
96
+ }
97
+ /** Format job for display */
98
+ export function formatJob(job) {
99
+ const statusIcons = {
100
+ pending: '⏳',
101
+ running: '🔄',
102
+ completed: '✅',
103
+ failed: '❌',
104
+ cancelled: '🚫',
105
+ };
106
+ const icon = statusIcons[job.status];
107
+ const prompt = job.prompt.length > 60 ? job.prompt.slice(0, 57) + '...' : job.prompt;
108
+ let line = `${icon} ${job.id}: ${prompt} [${job.status}]`;
109
+ if (job.iterations > 0)
110
+ line += ` (${job.iterations} iterations)`;
111
+ if (job.error)
112
+ line += `\n Error: ${job.error}`;
113
+ return line;
114
+ }
115
+ /** Format jobs list for display */
116
+ export function formatJobsList() {
117
+ const all = listJobs();
118
+ if (all.length === 0)
119
+ return 'No background jobs.';
120
+ return all.map(formatJob).join('\n');
121
+ }
122
+ //# sourceMappingURL=background-jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-jobs.js","sourceRoot":"","sources":["../src/background-jobs.ts"],"names":[],"mappings":"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"}
package/dist/bin.d.ts CHANGED
@@ -2,10 +2,14 @@
2
2
  /**
3
3
  * Calliope CLI - Main Entry Point
4
4
  *
5
- * Multi-model AI agent CLI with Ralph Wiggum autonomous loops.
5
+ * Multi-model AI agent CLI with autonomous agent loops.
6
6
  * Run `calliope` to start an interactive session.
7
7
  */
8
8
  declare const skipPermissions: boolean;
9
9
  declare const agtermEnabled: boolean;
10
- export { skipPermissions, agtermEnabled };
10
+ declare const useHeadless: boolean;
11
+ declare const envSkin: string | undefined;
12
+ declare const envPalette: string | undefined;
13
+ declare const envCompanion: string | undefined;
14
+ export { skipPermissions, agtermEnabled, useHeadless, envSkin, envPalette, envCompanion };
11
15
  //# sourceMappingURL=bin.d.ts.map
package/dist/bin.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAUH,QAAA,MAAM,eAAe,SACsB,CAAC;AAM5C,QAAA,MAAM,aAAa,SAAmD,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AA6CH,QAAA,MAAM,eAAe,SACsB,CAAC;AAM5C,QAAA,MAAM,aAAa,SAAgF,CAAC;AAGpG,QAAA,MAAM,WAAW,SAA8G,CAAC;AAMhI,QAAA,MAAM,OAAO,oBAA4B,CAAC;AAC1C,QAAA,MAAM,UAAU,oBAA+B,CAAC;AAChD,QAAA,MAAM,YAAY,oBAAiC,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
package/dist/bin.js CHANGED
@@ -2,12 +2,49 @@
2
2
  /**
3
3
  * Calliope CLI - Main Entry Point
4
4
  *
5
- * Multi-model AI agent CLI with Ralph Wiggum autonomous loops.
5
+ * Multi-model AI agent CLI with autonomous agent loops.
6
6
  * Run `calliope` to start an interactive session.
7
7
  */
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
8
10
  import { runSetup } from './setup.js';
9
11
  import * as config from './config.js';
10
12
  import { getVersion, checkForUpdates, getLatestVersion, performUpgrade } from './version-check.js';
13
+ import { colors } from './styles.js';
14
+ // Load .env / cli.env files (dotenv-style, no dependency)
15
+ function loadEnvFile(filePath) {
16
+ try {
17
+ if (!fs.existsSync(filePath))
18
+ return;
19
+ const content = fs.readFileSync(filePath, 'utf-8');
20
+ for (const line of content.split('\n')) {
21
+ const trimmed = line.trim();
22
+ if (!trimmed || trimmed.startsWith('#'))
23
+ continue;
24
+ // Strip optional "export " prefix
25
+ const assignment = trimmed.replace(/^export\s+/, '');
26
+ const eqIndex = assignment.indexOf('=');
27
+ if (eqIndex === -1)
28
+ continue;
29
+ const key = assignment.slice(0, eqIndex).trim();
30
+ let value = assignment.slice(eqIndex + 1).trim();
31
+ // Strip surrounding quotes
32
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
33
+ value = value.slice(1, -1);
34
+ }
35
+ // Don't overwrite existing env vars
36
+ if (!process.env[key]) {
37
+ process.env[key] = value;
38
+ }
39
+ }
40
+ }
41
+ catch {
42
+ // Silently ignore unreadable env files
43
+ }
44
+ }
45
+ // Check for env files in cwd and home directory (cwd takes priority)
46
+ loadEnvFile(path.join(process.cwd(), '.env'));
47
+ loadEnvFile(path.join(process.cwd(), 'cli.env'));
11
48
  // Handle CLI flags
12
49
  const args = process.argv.slice(2);
13
50
  // Check for god-mode flag (skip all permission prompts)
@@ -15,11 +52,26 @@ const skipPermissions = args.includes('--god-mode') ||
15
52
  args.includes('-g');
16
53
  // Check for legacy UI flag
17
54
  const useLegacyUI = args.includes('--legacy');
18
- // Check for AGTerm mode (multi-agent orchestration)
19
- const agtermEnabled = args.includes('--agterm') || args.includes('-a');
55
+ // Check for multi-agent orchestration mode
56
+ const agtermEnabled = args.includes('--agents') || args.includes('--agterm') || args.includes('-a');
57
+ // Check for headless mode (no-TTY agent orchestration)
58
+ const useHeadless = args.includes('--headless') || args.includes('--batch') || args.includes('--pipe') || !process.stdout.isTTY;
59
+ // Check for API server flag
60
+ const useApiServer = args.includes('--serve') || args.includes('--api');
61
+ // HUD environment variable overrides
62
+ const envSkin = process.env.CALLIOPE_SKIN;
63
+ const envPalette = process.env.CALLIOPE_PALETTE;
64
+ const envCompanion = process.env.CALLIOPE_COMPANION;
20
65
  // Export for CLI to access
21
- export { skipPermissions, agtermEnabled };
66
+ export { skipPermissions, agtermEnabled, useHeadless, envSkin, envPalette, envCompanion };
22
67
  async function main() {
68
+ // Check Node.js version — ink requires Node >=20 (uses /v regex flag in string-width)
69
+ const [nodeMaj] = process.versions.node.split('.').map(Number);
70
+ if (nodeMaj < 20) {
71
+ console.error(`calliope requires Node.js 20 or later (you have ${process.versions.node})`);
72
+ console.error('Upgrade: https://nodejs.org/en/download or nvm install 20');
73
+ process.exit(1);
74
+ }
23
75
  // Handle --help
24
76
  if (args.includes('--help') || args.includes('-h')) {
25
77
  printHelp();
@@ -45,18 +97,18 @@ async function main() {
45
97
  const [lMaj, lMin, lPat] = latest.split('.').map(Number);
46
98
  const hasUpdate = lMaj > cMaj || (lMaj === cMaj && lMin > cMin) || (lMaj === cMaj && lMin === cMin && lPat > cPat);
47
99
  if (!hasUpdate) {
48
- console.log(`\x1b[32m✓\x1b[0m Already on latest version (v${current})`);
100
+ console.log(`${colors.green}✓${colors.reset} Already on latest version (v${current})`);
49
101
  process.exit(0);
50
102
  }
51
- console.log(`\x1b[33m→\x1b[0m New version available: v${latest}`);
103
+ console.log(`${colors.yellow}→${colors.reset} New version available: v${latest}`);
52
104
  console.log('Upgrading...');
53
105
  const success = await performUpgrade();
54
106
  if (success) {
55
- console.log(`\x1b[32m✓\x1b[0m Upgraded to v${latest}`);
107
+ console.log(`${colors.green}✓${colors.reset} Upgraded to v${latest}`);
56
108
  process.exit(0);
57
109
  }
58
110
  else {
59
- console.log('\x1b[31m✗\x1b[0m Upgrade failed. Try: npm install -g @calliopelabs/cli@latest');
111
+ console.log(`${colors.red}✗${colors.reset} Upgrade failed. Try: npm install -g @calliopelabs/cli@latest`);
60
112
  process.exit(1);
61
113
  }
62
114
  }
@@ -82,14 +134,14 @@ async function main() {
82
134
  }
83
135
  // Show warning if god-mode enabled
84
136
  if (skipPermissions) {
85
- console.log('\x1b[35m⚡ GOD MODE ENABLED\x1b[0m');
86
- console.log('\x1b[2m Tools execute without confirmation. Use wisely.\x1b[0m');
137
+ console.log(`${colors.magenta}⚡ GOD MODE ENABLED${colors.reset}`);
138
+ console.log(`${colors.dim} Tools execute without confirmation. Use wisely.${colors.reset}`);
87
139
  console.log();
88
140
  }
89
- // Show notice if agterm mode enabled
141
+ // Show notice if agents mode enabled
90
142
  if (agtermEnabled) {
91
- console.log('\x1b[36m🤖 AGTERM MODE ENABLED\x1b[0m');
92
- console.log('\x1b[2m Multi-agent orchestration active. Use /agents to see available sub-agents.\x1b[0m');
143
+ console.log(`${colors.cyan}🤖 AGENTS MODE${colors.reset}`);
144
+ console.log(`${colors.dim} Multi-agent orchestration active. Use /agents to see available sub-agents.${colors.reset}`);
93
145
  console.log();
94
146
  }
95
147
  // Check if setup is needed
@@ -106,9 +158,11 @@ async function main() {
106
158
  process.env.OLLAMA_BASE_URL ||
107
159
  process.env.AI21_API_KEY ||
108
160
  process.env.HUGGINGFACE_API_KEY ||
109
- process.env.LITELLM_BASE_URL;
110
- if (hasEnvKeys && (args.includes('--skip-setup') || skipPermissions)) {
111
- // Skip setup if env keys present and flag set
161
+ process.env.LITELLM_BASE_URL ||
162
+ process.env.BEDROCK_API_KEY ||
163
+ process.env.BEDROCK_BASE_URL;
164
+ if (hasEnvKeys) {
165
+ // Skip setup if env keys present
112
166
  config.markSetupComplete();
113
167
  }
114
168
  else {
@@ -124,19 +178,54 @@ async function main() {
124
178
  await startCLI();
125
179
  }
126
180
  async function startCLI(options = {}) {
181
+ // Initialize HUD (skin + palette + companion)
182
+ const { applySkin, applyPalette } = await import('./hud/api.js');
183
+ const { populateLegacyRegistries } = await import('./hud/theme-packs/api.js');
184
+ const { applyCompanion } = await import('./companions.js');
185
+ // Populate legacy registries from theme packs (optional @calliopelabs/cli-themes)
186
+ await populateLegacyRegistries();
187
+ const skinName = envSkin || config.get('activeSkin') || 'clean';
188
+ const paletteName = envPalette || config.get('activePalette') || 'default';
189
+ const companionName = envCompanion || config.get('activeCompanion') || 'calliope';
190
+ applySkin(skinName);
191
+ applyPalette(paletteName);
192
+ applyCompanion(companionName);
127
193
  // Merge in global flags
128
194
  const fullOptions = {
129
195
  ...options,
130
196
  agtermEnabled: options.agtermEnabled ?? agtermEnabled,
131
197
  };
132
- if (useLegacyUI) {
198
+ // Start API server if --serve/--api flag is set
199
+ if (useApiServer) {
200
+ const { startApiServer } = await import('./api-server.js');
201
+ const port = 3100;
202
+ try {
203
+ const info = await startApiServer({ port, host: '127.0.0.1' });
204
+ console.log(`${colors.dim} API server: http://${info.host}:${info.port}${colors.reset}`);
205
+ }
206
+ catch (err) {
207
+ console.error(`API server failed to start: ${err instanceof Error ? err.message : String(err)}`);
208
+ }
209
+ }
210
+ if (useHeadless) {
211
+ // Use headless renderer (no-TTY, JSON/text output)
212
+ const { runHeadless } = await import('./headless.js');
213
+ // Extract prompt from remaining args (non-flag args)
214
+ const prompt = args.filter(a => !a.startsWith('-')).join(' ');
215
+ const exitCode = await runHeadless({
216
+ prompt: prompt || undefined,
217
+ outputMode: args.includes('--json') ? 'json' : 'text',
218
+ });
219
+ process.exit(exitCode);
220
+ }
221
+ else if (useLegacyUI) {
133
222
  // Use legacy readline-based CLI
134
- const { startCLI: start } = await import('./cli.js');
223
+ const { startCLI: start } = await import('./cli/index.js');
135
224
  await start(fullOptions);
136
225
  }
137
226
  else {
138
227
  // Use new ink-based UI
139
- const { startInkCLI } = await import('./ui-cli.js');
228
+ const { startInkCLI } = await import('./ui/index.js');
140
229
  await startInkCLI(fullOptions);
141
230
  }
142
231
  }
@@ -158,9 +247,14 @@ ${bold('OPTIONS')}
158
247
 
159
248
  -g, --god-mode Run tools without confirmation prompts
160
249
  Enables unrestricted autonomous execution
161
- -a, --agterm Enable multi-agent orchestration mode
162
- Unlock spawn_agent, check_agent tools
250
+ -a, --agents Enable multi-agent orchestration mode
251
+ Unlock spawn_agent, swarm, coordination tools
252
+ --serve, --api Start API server on port 3100 (localhost)
163
253
  --legacy Use legacy readline UI instead of ink
254
+ --headless Headless mode (JSON/text output, no TTY)
255
+ --batch Alias for --headless
256
+ --json Output JSON events (with --headless)
257
+ --pipe Read from stdin, write to stdout (alias)
164
258
 
165
259
  ${bold('ENVIRONMENT VARIABLES')}
166
260
  ANTHROPIC_API_KEY Anthropic Claude API key
@@ -175,27 +269,36 @@ ${bold('ENVIRONMENT VARIABLES')}
175
269
  OLLAMA_BASE_URL Ollama server URL (default: localhost:11434)
176
270
  LITELLM_BASE_URL LiteLLM proxy URL (default: localhost:4000)
177
271
  LITELLM_API_KEY LiteLLM API key (if required)
272
+ BEDROCK_BASE_URL AWS Bedrock gateway/proxy URL
273
+ BEDROCK_API_KEY AWS Bedrock gateway API key (if required)
274
+
275
+ CALLIOPE_SKIN Override active skin (e.g. falcon, matrix)
276
+ CALLIOPE_PALETTE Override active palette (e.g. neon, pastel)
277
+ CALLIOPE_COMPANION Override active companion (e.g. copilot, wopr)
178
278
 
179
279
  ${bold('INTERACTIVE COMMANDS')}
180
280
  /help Show all commands
181
281
  /provider Switch AI provider
182
282
  /model Change model
183
283
  /persona Change personality
184
- /loop Start autonomous loop (Ralph Wiggum)
284
+ /loop Start autonomous agent loop
185
285
  /save Save session
186
286
  /exit Exit
187
287
 
188
288
  ${bold('EXAMPLES')}
189
289
  calliope Start interactive session
190
- calliope --setup Run setup wizard
191
290
  calliope "explain this" Start with a prompt
291
+ calliope --setup Run setup wizard
292
+ calliope --batch "fix lint" Non-interactive batch execution
293
+ echo "review" | calliope Pipe prompt via stdin
294
+ calliope --headless --json JSON event stream output
192
295
 
193
296
  ${bold('MORE INFO')}
194
297
  https://github.com/calliopeai/calliope-cli
195
298
  `);
196
299
  }
197
300
  function bold(text) {
198
- return `\x1b[1m${text}\x1b[0m`;
301
+ return `${colors.bold}${text}${colors.reset}`;
199
302
  }
200
303
  // Run
201
304
  main().catch((err) => {
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}