@calliopelabs/cli 0.8.20 → 2.0.1

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 +120 -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 +7 -2
  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,10 +52,18 @@ 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() {
23
68
  // Handle --help
24
69
  if (args.includes('--help') || args.includes('-h')) {
@@ -45,18 +90,18 @@ async function main() {
45
90
  const [lMaj, lMin, lPat] = latest.split('.').map(Number);
46
91
  const hasUpdate = lMaj > cMaj || (lMaj === cMaj && lMin > cMin) || (lMaj === cMaj && lMin === cMin && lPat > cPat);
47
92
  if (!hasUpdate) {
48
- console.log(`\x1b[32m✓\x1b[0m Already on latest version (v${current})`);
93
+ console.log(`${colors.green}✓${colors.reset} Already on latest version (v${current})`);
49
94
  process.exit(0);
50
95
  }
51
- console.log(`\x1b[33m→\x1b[0m New version available: v${latest}`);
96
+ console.log(`${colors.yellow}→${colors.reset} New version available: v${latest}`);
52
97
  console.log('Upgrading...');
53
98
  const success = await performUpgrade();
54
99
  if (success) {
55
- console.log(`\x1b[32m✓\x1b[0m Upgraded to v${latest}`);
100
+ console.log(`${colors.green}✓${colors.reset} Upgraded to v${latest}`);
56
101
  process.exit(0);
57
102
  }
58
103
  else {
59
- console.log('\x1b[31m✗\x1b[0m Upgrade failed. Try: npm install -g @calliopelabs/cli@latest');
104
+ console.log(`${colors.red}✗${colors.reset} Upgrade failed. Try: npm install -g @calliopelabs/cli@latest`);
60
105
  process.exit(1);
61
106
  }
62
107
  }
@@ -82,14 +127,14 @@ async function main() {
82
127
  }
83
128
  // Show warning if god-mode enabled
84
129
  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');
130
+ console.log(`${colors.magenta}⚡ GOD MODE ENABLED${colors.reset}`);
131
+ console.log(`${colors.dim} Tools execute without confirmation. Use wisely.${colors.reset}`);
87
132
  console.log();
88
133
  }
89
- // Show notice if agterm mode enabled
134
+ // Show notice if agents mode enabled
90
135
  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');
136
+ console.log(`${colors.cyan}🤖 AGENTS MODE${colors.reset}`);
137
+ console.log(`${colors.dim} Multi-agent orchestration active. Use /agents to see available sub-agents.${colors.reset}`);
93
138
  console.log();
94
139
  }
95
140
  // Check if setup is needed
@@ -106,9 +151,11 @@ async function main() {
106
151
  process.env.OLLAMA_BASE_URL ||
107
152
  process.env.AI21_API_KEY ||
108
153
  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
154
+ process.env.LITELLM_BASE_URL ||
155
+ process.env.BEDROCK_API_KEY ||
156
+ process.env.BEDROCK_BASE_URL;
157
+ if (hasEnvKeys) {
158
+ // Skip setup if env keys present
112
159
  config.markSetupComplete();
113
160
  }
114
161
  else {
@@ -124,19 +171,54 @@ async function main() {
124
171
  await startCLI();
125
172
  }
126
173
  async function startCLI(options = {}) {
174
+ // Initialize HUD (skin + palette + companion)
175
+ const { applySkin, applyPalette } = await import('./hud/api.js');
176
+ const { populateLegacyRegistries } = await import('./hud/theme-packs/api.js');
177
+ const { applyCompanion } = await import('./companions.js');
178
+ // Populate legacy registries from theme packs (optional @calliopelabs/cli-themes)
179
+ await populateLegacyRegistries();
180
+ const skinName = envSkin || config.get('activeSkin') || 'clean';
181
+ const paletteName = envPalette || config.get('activePalette') || 'default';
182
+ const companionName = envCompanion || config.get('activeCompanion') || 'calliope';
183
+ applySkin(skinName);
184
+ applyPalette(paletteName);
185
+ applyCompanion(companionName);
127
186
  // Merge in global flags
128
187
  const fullOptions = {
129
188
  ...options,
130
189
  agtermEnabled: options.agtermEnabled ?? agtermEnabled,
131
190
  };
132
- if (useLegacyUI) {
191
+ // Start API server if --serve/--api flag is set
192
+ if (useApiServer) {
193
+ const { startApiServer } = await import('./api-server.js');
194
+ const port = 3100;
195
+ try {
196
+ const info = await startApiServer({ port, host: '127.0.0.1' });
197
+ console.log(`${colors.dim} API server: http://${info.host}:${info.port}${colors.reset}`);
198
+ }
199
+ catch (err) {
200
+ console.error(`API server failed to start: ${err instanceof Error ? err.message : String(err)}`);
201
+ }
202
+ }
203
+ if (useHeadless) {
204
+ // Use headless renderer (no-TTY, JSON/text output)
205
+ const { runHeadless } = await import('./headless.js');
206
+ // Extract prompt from remaining args (non-flag args)
207
+ const prompt = args.filter(a => !a.startsWith('-')).join(' ');
208
+ const exitCode = await runHeadless({
209
+ prompt: prompt || undefined,
210
+ outputMode: args.includes('--json') ? 'json' : 'text',
211
+ });
212
+ process.exit(exitCode);
213
+ }
214
+ else if (useLegacyUI) {
133
215
  // Use legacy readline-based CLI
134
- const { startCLI: start } = await import('./cli.js');
216
+ const { startCLI: start } = await import('./cli/index.js');
135
217
  await start(fullOptions);
136
218
  }
137
219
  else {
138
220
  // Use new ink-based UI
139
- const { startInkCLI } = await import('./ui-cli.js');
221
+ const { startInkCLI } = await import('./ui/index.js');
140
222
  await startInkCLI(fullOptions);
141
223
  }
142
224
  }
@@ -158,9 +240,14 @@ ${bold('OPTIONS')}
158
240
 
159
241
  -g, --god-mode Run tools without confirmation prompts
160
242
  Enables unrestricted autonomous execution
161
- -a, --agterm Enable multi-agent orchestration mode
162
- Unlock spawn_agent, check_agent tools
243
+ -a, --agents Enable multi-agent orchestration mode
244
+ Unlock spawn_agent, swarm, coordination tools
245
+ --serve, --api Start API server on port 3100 (localhost)
163
246
  --legacy Use legacy readline UI instead of ink
247
+ --headless Headless mode (JSON/text output, no TTY)
248
+ --batch Alias for --headless
249
+ --json Output JSON events (with --headless)
250
+ --pipe Read from stdin, write to stdout (alias)
164
251
 
165
252
  ${bold('ENVIRONMENT VARIABLES')}
166
253
  ANTHROPIC_API_KEY Anthropic Claude API key
@@ -175,27 +262,36 @@ ${bold('ENVIRONMENT VARIABLES')}
175
262
  OLLAMA_BASE_URL Ollama server URL (default: localhost:11434)
176
263
  LITELLM_BASE_URL LiteLLM proxy URL (default: localhost:4000)
177
264
  LITELLM_API_KEY LiteLLM API key (if required)
265
+ BEDROCK_BASE_URL AWS Bedrock gateway/proxy URL
266
+ BEDROCK_API_KEY AWS Bedrock gateway API key (if required)
267
+
268
+ CALLIOPE_SKIN Override active skin (e.g. falcon, matrix)
269
+ CALLIOPE_PALETTE Override active palette (e.g. neon, pastel)
270
+ CALLIOPE_COMPANION Override active companion (e.g. copilot, wopr)
178
271
 
179
272
  ${bold('INTERACTIVE COMMANDS')}
180
273
  /help Show all commands
181
274
  /provider Switch AI provider
182
275
  /model Change model
183
276
  /persona Change personality
184
- /loop Start autonomous loop (Ralph Wiggum)
277
+ /loop Start autonomous agent loop
185
278
  /save Save session
186
279
  /exit Exit
187
280
 
188
281
  ${bold('EXAMPLES')}
189
282
  calliope Start interactive session
190
- calliope --setup Run setup wizard
191
283
  calliope "explain this" Start with a prompt
284
+ calliope --setup Run setup wizard
285
+ calliope --batch "fix lint" Non-interactive batch execution
286
+ echo "review" | calliope Pipe prompt via stdin
287
+ calliope --headless --json JSON event stream output
192
288
 
193
289
  ${bold('MORE INFO')}
194
290
  https://github.com/calliopeai/calliope-cli
195
291
  `);
196
292
  }
197
293
  function bold(text) {
198
- return `\x1b[1m${text}\x1b[0m`;
294
+ return `${colors.bold}${text}${colors.reset}`;
199
295
  }
200
296
  // Run
201
297
  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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"}