@calliopelabs/cli 2.5.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/README.md +45 -661
  2. package/dist/acp.d.ts +78 -0
  3. package/dist/acp.d.ts.map +1 -0
  4. package/dist/acp.js +572 -0
  5. package/dist/acp.js.map +1 -0
  6. package/dist/bin.d.ts +3 -7
  7. package/dist/bin.d.ts.map +1 -1
  8. package/dist/bin.js +56 -79
  9. package/dist/bin.js.map +1 -1
  10. package/dist/budget.d.ts +64 -0
  11. package/dist/budget.d.ts.map +1 -0
  12. package/dist/budget.js +157 -0
  13. package/dist/budget.js.map +1 -0
  14. package/dist/checkpoint.d.ts +63 -30
  15. package/dist/checkpoint.d.ts.map +1 -1
  16. package/dist/checkpoint.js +247 -160
  17. package/dist/checkpoint.js.map +1 -1
  18. package/dist/circuit-breaker/breaker.js.map +1 -1
  19. package/dist/config.d.ts +86 -81
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +236 -304
  22. package/dist/config.js.map +1 -1
  23. package/dist/cost.d.ts +114 -0
  24. package/dist/cost.d.ts.map +1 -0
  25. package/dist/cost.js +499 -0
  26. package/dist/cost.js.map +1 -0
  27. package/dist/diff.d.ts.map +1 -1
  28. package/dist/diff.js +11 -7
  29. package/dist/diff.js.map +1 -1
  30. package/dist/errors.js +3 -3
  31. package/dist/errors.js.map +1 -1
  32. package/dist/files.js.map +1 -1
  33. package/dist/fleet.d.ts +30 -0
  34. package/dist/fleet.d.ts.map +1 -0
  35. package/dist/fleet.js +86 -0
  36. package/dist/fleet.js.map +1 -0
  37. package/dist/fuzzy-search.d.ts.map +1 -1
  38. package/dist/fuzzy-search.js +2 -1
  39. package/dist/fuzzy-search.js.map +1 -1
  40. package/dist/git-status.js.map +1 -1
  41. package/dist/headless.d.ts +1 -2
  42. package/dist/headless.d.ts.map +1 -1
  43. package/dist/headless.js +166 -24
  44. package/dist/headless.js.map +1 -1
  45. package/dist/hud/api.d.ts +3 -18
  46. package/dist/hud/api.d.ts.map +1 -1
  47. package/dist/hud/api.js +9 -352
  48. package/dist/hud/api.js.map +1 -1
  49. package/dist/hud/palettes.d.ts.map +1 -1
  50. package/dist/hud/palettes.js +0 -180
  51. package/dist/hud/palettes.js.map +1 -1
  52. package/dist/hud/skins.d.ts.map +1 -1
  53. package/dist/hud/skins.js +0 -263
  54. package/dist/hud/skins.js.map +1 -1
  55. package/dist/hud/types.d.ts +2 -5
  56. package/dist/hud/types.d.ts.map +1 -1
  57. package/dist/index.d.ts +1 -4
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +1 -4
  60. package/dist/index.js.map +1 -1
  61. package/dist/iteration-ledger.d.ts.map +1 -1
  62. package/dist/iteration-ledger.js +3 -2
  63. package/dist/iteration-ledger.js.map +1 -1
  64. package/dist/local-model.d.ts +150 -0
  65. package/dist/local-model.d.ts.map +1 -0
  66. package/dist/local-model.js +408 -0
  67. package/dist/local-model.js.map +1 -0
  68. package/dist/mcp.d.ts.map +1 -1
  69. package/dist/mcp.js +5 -2
  70. package/dist/mcp.js.map +1 -1
  71. package/dist/memory.d.ts.map +1 -1
  72. package/dist/memory.js +6 -4
  73. package/dist/memory.js.map +1 -1
  74. package/dist/model-detection.js +2 -2
  75. package/dist/model-detection.js.map +1 -1
  76. package/dist/parallel-tools.js.map +1 -1
  77. package/dist/plugins.d.ts +32 -1
  78. package/dist/plugins.d.ts.map +1 -1
  79. package/dist/plugins.js +116 -5
  80. package/dist/plugins.js.map +1 -1
  81. package/dist/policy.d.ts +43 -0
  82. package/dist/policy.d.ts.map +1 -0
  83. package/dist/policy.js +139 -0
  84. package/dist/policy.js.map +1 -0
  85. package/dist/project-config.d.ts +1 -2
  86. package/dist/project-config.d.ts.map +1 -1
  87. package/dist/project-config.js +0 -3
  88. package/dist/project-config.js.map +1 -1
  89. package/dist/providers/bedrock.d.ts.map +1 -1
  90. package/dist/providers/bedrock.js +2 -5
  91. package/dist/providers/bedrock.js.map +1 -1
  92. package/dist/providers/compat.d.ts +21 -0
  93. package/dist/providers/compat.d.ts.map +1 -1
  94. package/dist/providers/compat.js +176 -6
  95. package/dist/providers/compat.js.map +1 -1
  96. package/dist/providers/google.js.map +1 -1
  97. package/dist/providers/index.d.ts +19 -4
  98. package/dist/providers/index.d.ts.map +1 -1
  99. package/dist/providers/index.js +61 -10
  100. package/dist/providers/index.js.map +1 -1
  101. package/dist/providers/ollama.d.ts +2 -2
  102. package/dist/providers/ollama.d.ts.map +1 -1
  103. package/dist/providers/ollama.js +26 -6
  104. package/dist/providers/ollama.js.map +1 -1
  105. package/dist/providers/openai.d.ts.map +1 -1
  106. package/dist/providers/openai.js +14 -10
  107. package/dist/providers/openai.js.map +1 -1
  108. package/dist/providers/types.d.ts +8 -0
  109. package/dist/providers/types.d.ts.map +1 -1
  110. package/dist/providers/types.js.map +1 -1
  111. package/dist/replay.d.ts +37 -0
  112. package/dist/replay.d.ts.map +1 -0
  113. package/dist/replay.js +168 -0
  114. package/dist/replay.js.map +1 -0
  115. package/dist/router.d.ts +133 -0
  116. package/dist/router.d.ts.map +1 -0
  117. package/dist/{model-router.js → router.js} +329 -3
  118. package/dist/router.js.map +1 -0
  119. package/dist/runlog.d.ts +185 -0
  120. package/dist/runlog.d.ts.map +1 -0
  121. package/dist/runlog.js +398 -0
  122. package/dist/runlog.js.map +1 -0
  123. package/dist/{sandbox.d.ts → sandbox/docker.d.ts} +1 -1
  124. package/dist/sandbox/docker.d.ts.map +1 -0
  125. package/dist/{sandbox.js → sandbox/docker.js} +1 -1
  126. package/dist/sandbox/docker.js.map +1 -0
  127. package/dist/sandbox/index.d.ts +36 -0
  128. package/dist/sandbox/index.d.ts.map +1 -0
  129. package/dist/sandbox/index.js +62 -0
  130. package/dist/sandbox/index.js.map +1 -0
  131. package/dist/{sandbox-native.d.ts → sandbox/native.d.ts} +1 -1
  132. package/dist/sandbox/native.d.ts.map +1 -0
  133. package/dist/{sandbox-native.js → sandbox/native.js} +1 -1
  134. package/dist/sandbox/native.js.map +1 -0
  135. package/dist/scope.js +1 -1
  136. package/dist/scope.js.map +1 -1
  137. package/dist/scuttlebot/config.js.map +1 -1
  138. package/dist/scuttlebot/irc-client.js.map +1 -1
  139. package/dist/setup.d.ts.map +1 -1
  140. package/dist/setup.js +22 -54
  141. package/dist/setup.js.map +1 -1
  142. package/dist/skills.d.ts +39 -0
  143. package/dist/skills.d.ts.map +1 -1
  144. package/dist/skills.js +90 -8
  145. package/dist/skills.js.map +1 -1
  146. package/dist/storage.d.ts.map +1 -1
  147. package/dist/storage.js +6 -3
  148. package/dist/storage.js.map +1 -1
  149. package/dist/streaming.d.ts +25 -0
  150. package/dist/streaming.d.ts.map +1 -1
  151. package/dist/streaming.js +59 -0
  152. package/dist/streaming.js.map +1 -1
  153. package/dist/styles.d.ts +6 -0
  154. package/dist/styles.d.ts.map +1 -1
  155. package/dist/styles.js +11 -0
  156. package/dist/styles.js.map +1 -1
  157. package/dist/summarization.js.map +1 -1
  158. package/dist/terminal-image.js +1 -1
  159. package/dist/terminal-image.js.map +1 -1
  160. package/dist/themes.d.ts +5 -4
  161. package/dist/themes.d.ts.map +1 -1
  162. package/dist/themes.js +35 -90
  163. package/dist/themes.js.map +1 -1
  164. package/dist/tools.d.ts +27 -3
  165. package/dist/tools.d.ts.map +1 -1
  166. package/dist/tools.js +128 -179
  167. package/dist/tools.js.map +1 -1
  168. package/dist/types.d.ts +4 -3
  169. package/dist/types.d.ts.map +1 -1
  170. package/dist/types.js +21 -40
  171. package/dist/types.js.map +1 -1
  172. package/dist/ui/agent.d.ts +3 -6
  173. package/dist/ui/agent.d.ts.map +1 -1
  174. package/dist/ui/agent.js +328 -38
  175. package/dist/ui/agent.js.map +1 -1
  176. package/dist/ui/animations.d.ts +37 -0
  177. package/dist/ui/animations.d.ts.map +1 -0
  178. package/dist/ui/animations.js +227 -0
  179. package/dist/ui/animations.js.map +1 -0
  180. package/dist/ui/chat-input-keys.d.ts +42 -0
  181. package/dist/ui/chat-input-keys.d.ts.map +1 -0
  182. package/dist/ui/chat-input-keys.js +360 -0
  183. package/dist/ui/chat-input-keys.js.map +1 -0
  184. package/dist/ui/chat-input.d.ts +2 -1
  185. package/dist/ui/chat-input.d.ts.map +1 -1
  186. package/dist/ui/chat-input.js +31 -350
  187. package/dist/ui/chat-input.js.map +1 -1
  188. package/dist/ui/commands.d.ts +14 -46
  189. package/dist/ui/commands.d.ts.map +1 -1
  190. package/dist/ui/commands.js +416 -2899
  191. package/dist/ui/commands.js.map +1 -1
  192. package/dist/ui/completions.d.ts +1 -0
  193. package/dist/ui/completions.d.ts.map +1 -1
  194. package/dist/ui/completions.js +36 -107
  195. package/dist/ui/completions.js.map +1 -1
  196. package/dist/ui/components.d.ts +14 -6
  197. package/dist/ui/components.d.ts.map +1 -1
  198. package/dist/ui/components.js +17 -226
  199. package/dist/ui/components.js.map +1 -1
  200. package/dist/ui/context.js +6 -6
  201. package/dist/ui/context.js.map +1 -1
  202. package/dist/ui/debug-log.d.ts +11 -0
  203. package/dist/ui/debug-log.d.ts.map +1 -0
  204. package/dist/ui/debug-log.js +21 -0
  205. package/dist/ui/debug-log.js.map +1 -0
  206. package/dist/ui/error-boundary.d.ts.map +1 -1
  207. package/dist/ui/error-boundary.js.map +1 -1
  208. package/dist/ui/frame.d.ts.map +1 -1
  209. package/dist/ui/frame.js +1 -3
  210. package/dist/ui/frame.js.map +1 -1
  211. package/dist/ui/index.d.ts +11 -3
  212. package/dist/ui/index.d.ts.map +1 -1
  213. package/dist/ui/index.js +45 -1076
  214. package/dist/ui/index.js.map +1 -1
  215. package/dist/ui/messages.d.ts +4 -7
  216. package/dist/ui/messages.d.ts.map +1 -1
  217. package/dist/ui/messages.js +15 -30
  218. package/dist/ui/messages.js.map +1 -1
  219. package/dist/ui/modals/index.d.ts +11 -0
  220. package/dist/ui/modals/index.d.ts.map +1 -0
  221. package/dist/ui/modals/index.js +10 -0
  222. package/dist/ui/modals/index.js.map +1 -0
  223. package/dist/ui/modals/prompts.d.ts +37 -0
  224. package/dist/ui/modals/prompts.d.ts.map +1 -0
  225. package/dist/ui/modals/prompts.js +124 -0
  226. package/dist/ui/modals/prompts.js.map +1 -0
  227. package/dist/ui/modals/selectors.d.ts +33 -0
  228. package/dist/ui/modals/selectors.d.ts.map +1 -0
  229. package/dist/ui/modals/selectors.js +111 -0
  230. package/dist/ui/modals/selectors.js.map +1 -0
  231. package/dist/ui/modals/setup.d.ts +17 -0
  232. package/dist/ui/modals/setup.d.ts.map +1 -0
  233. package/dist/ui/modals/setup.js +51 -0
  234. package/dist/ui/modals/setup.js.map +1 -0
  235. package/dist/ui/regions/input-region.d.ts +40 -0
  236. package/dist/ui/regions/input-region.d.ts.map +1 -0
  237. package/dist/ui/regions/input-region.js +116 -0
  238. package/dist/ui/regions/input-region.js.map +1 -0
  239. package/dist/ui/regions/modal-host.d.ts +41 -0
  240. package/dist/ui/regions/modal-host.d.ts.map +1 -0
  241. package/dist/ui/regions/modal-host.js +51 -0
  242. package/dist/ui/regions/modal-host.js.map +1 -0
  243. package/dist/ui/regions/render-probe.d.ts +22 -0
  244. package/dist/ui/regions/render-probe.d.ts.map +1 -0
  245. package/dist/ui/regions/render-probe.js +45 -0
  246. package/dist/ui/regions/render-probe.js.map +1 -0
  247. package/dist/ui/regions/static-scrollback.d.ts +39 -0
  248. package/dist/ui/regions/static-scrollback.d.ts.map +1 -0
  249. package/dist/ui/regions/static-scrollback.js +68 -0
  250. package/dist/ui/regions/static-scrollback.js.map +1 -0
  251. package/dist/ui/regions/status-region.d.ts +24 -0
  252. package/dist/ui/regions/status-region.d.ts.map +1 -0
  253. package/dist/ui/regions/status-region.js +17 -0
  254. package/dist/ui/regions/status-region.js.map +1 -0
  255. package/dist/ui/regions/transcript-region.d.ts +41 -0
  256. package/dist/ui/regions/transcript-region.d.ts.map +1 -0
  257. package/dist/ui/regions/transcript-region.js +52 -0
  258. package/dist/ui/regions/transcript-region.js.map +1 -0
  259. package/dist/ui/self-restart.d.ts +9 -0
  260. package/dist/ui/self-restart.d.ts.map +1 -0
  261. package/dist/ui/self-restart.js +24 -0
  262. package/dist/ui/self-restart.js.map +1 -0
  263. package/dist/ui/state/use-chat-controller.d.ts +23 -0
  264. package/dist/ui/state/use-chat-controller.d.ts.map +1 -0
  265. package/dist/ui/state/use-chat-controller.js +643 -0
  266. package/dist/ui/state/use-chat-controller.js.map +1 -0
  267. package/dist/ui/state/use-loop-state.d.ts +23 -0
  268. package/dist/ui/state/use-loop-state.d.ts.map +1 -0
  269. package/dist/ui/state/use-loop-state.js +39 -0
  270. package/dist/ui/state/use-loop-state.js.map +1 -0
  271. package/dist/ui/state/use-modal-state.d.ts +52 -0
  272. package/dist/ui/state/use-modal-state.d.ts.map +1 -0
  273. package/dist/ui/state/use-modal-state.js +44 -0
  274. package/dist/ui/state/use-modal-state.js.map +1 -0
  275. package/dist/ui/state/use-model-state.d.ts +29 -0
  276. package/dist/ui/state/use-model-state.d.ts.map +1 -0
  277. package/dist/ui/state/use-model-state.js +47 -0
  278. package/dist/ui/state/use-model-state.js.map +1 -0
  279. package/dist/ui/state/use-processing-state.d.ts +24 -0
  280. package/dist/ui/state/use-processing-state.d.ts.map +1 -0
  281. package/dist/ui/state/use-processing-state.js +46 -0
  282. package/dist/ui/state/use-processing-state.js.map +1 -0
  283. package/dist/ui/state/use-queue-state.d.ts +19 -0
  284. package/dist/ui/state/use-queue-state.d.ts.map +1 -0
  285. package/dist/ui/state/use-queue-state.js +30 -0
  286. package/dist/ui/state/use-queue-state.js.map +1 -0
  287. package/dist/ui/state/use-session-init.d.ts +22 -0
  288. package/dist/ui/state/use-session-init.d.ts.map +1 -0
  289. package/dist/ui/state/use-session-init.js +77 -0
  290. package/dist/ui/state/use-session-init.js.map +1 -0
  291. package/dist/ui/state/use-session-stats.d.ts +16 -0
  292. package/dist/ui/state/use-session-stats.d.ts.map +1 -0
  293. package/dist/ui/state/use-session-stats.js +18 -0
  294. package/dist/ui/state/use-session-stats.js.map +1 -0
  295. package/dist/ui/state/use-terminal-width.d.ts +8 -0
  296. package/dist/ui/state/use-terminal-width.d.ts.map +1 -0
  297. package/dist/ui/state/use-terminal-width.js +22 -0
  298. package/dist/ui/state/use-terminal-width.js.map +1 -0
  299. package/dist/ui/state/use-transcript-state.d.ts +21 -0
  300. package/dist/ui/state/use-transcript-state.d.ts.map +1 -0
  301. package/dist/ui/state/use-transcript-state.js +49 -0
  302. package/dist/ui/state/use-transcript-state.js.map +1 -0
  303. package/dist/ui/status-bar.d.ts.map +1 -1
  304. package/dist/ui/status-bar.js +2 -3
  305. package/dist/ui/status-bar.js.map +1 -1
  306. package/dist/version-check.d.ts.map +1 -1
  307. package/dist/version-check.js +10 -0
  308. package/dist/version-check.js.map +1 -1
  309. package/package.json +10 -3
  310. package/dist/agents/agent-config-loader.d.ts +0 -60
  311. package/dist/agents/agent-config-loader.d.ts.map +0 -1
  312. package/dist/agents/agent-config-loader.js +0 -402
  313. package/dist/agents/agent-config-loader.js.map +0 -1
  314. package/dist/agents/agent-config-presets.d.ts +0 -10
  315. package/dist/agents/agent-config-presets.d.ts.map +0 -1
  316. package/dist/agents/agent-config-presets.js +0 -940
  317. package/dist/agents/agent-config-presets.js.map +0 -1
  318. package/dist/agents/agent-config-types.d.ts +0 -145
  319. package/dist/agents/agent-config-types.d.ts.map +0 -1
  320. package/dist/agents/agent-config-types.js +0 -12
  321. package/dist/agents/agent-config-types.js.map +0 -1
  322. package/dist/agents/agent-detection.d.ts +0 -35
  323. package/dist/agents/agent-detection.d.ts.map +0 -1
  324. package/dist/agents/agent-detection.js +0 -110
  325. package/dist/agents/agent-detection.js.map +0 -1
  326. package/dist/agents/aggregator.d.ts +0 -19
  327. package/dist/agents/aggregator.d.ts.map +0 -1
  328. package/dist/agents/aggregator.js +0 -141
  329. package/dist/agents/aggregator.js.map +0 -1
  330. package/dist/agents/cli-backend.d.ts +0 -32
  331. package/dist/agents/cli-backend.d.ts.map +0 -1
  332. package/dist/agents/cli-backend.js +0 -271
  333. package/dist/agents/cli-backend.js.map +0 -1
  334. package/dist/agents/council-types.d.ts +0 -115
  335. package/dist/agents/council-types.d.ts.map +0 -1
  336. package/dist/agents/council-types.js +0 -81
  337. package/dist/agents/council-types.js.map +0 -1
  338. package/dist/agents/council.d.ts +0 -112
  339. package/dist/agents/council.d.ts.map +0 -1
  340. package/dist/agents/council.js +0 -722
  341. package/dist/agents/council.js.map +0 -1
  342. package/dist/agents/decomposer.d.ts +0 -33
  343. package/dist/agents/decomposer.d.ts.map +0 -1
  344. package/dist/agents/decomposer.js +0 -138
  345. package/dist/agents/decomposer.js.map +0 -1
  346. package/dist/agents/dynamic-tools.d.ts +0 -52
  347. package/dist/agents/dynamic-tools.d.ts.map +0 -1
  348. package/dist/agents/dynamic-tools.js +0 -424
  349. package/dist/agents/dynamic-tools.js.map +0 -1
  350. package/dist/agents/index.d.ts +0 -29
  351. package/dist/agents/index.d.ts.map +0 -1
  352. package/dist/agents/index.js +0 -29
  353. package/dist/agents/index.js.map +0 -1
  354. package/dist/agents/installer.d.ts +0 -39
  355. package/dist/agents/installer.d.ts.map +0 -1
  356. package/dist/agents/installer.js +0 -205
  357. package/dist/agents/installer.js.map +0 -1
  358. package/dist/agents/orchestrator.d.ts +0 -106
  359. package/dist/agents/orchestrator.d.ts.map +0 -1
  360. package/dist/agents/orchestrator.js +0 -363
  361. package/dist/agents/orchestrator.js.map +0 -1
  362. package/dist/agents/sdk-backend.d.ts +0 -63
  363. package/dist/agents/sdk-backend.d.ts.map +0 -1
  364. package/dist/agents/sdk-backend.js +0 -489
  365. package/dist/agents/sdk-backend.js.map +0 -1
  366. package/dist/agents/swarm-types.d.ts +0 -84
  367. package/dist/agents/swarm-types.d.ts.map +0 -1
  368. package/dist/agents/swarm-types.js +0 -20
  369. package/dist/agents/swarm-types.js.map +0 -1
  370. package/dist/agents/swarm.d.ts +0 -79
  371. package/dist/agents/swarm.d.ts.map +0 -1
  372. package/dist/agents/swarm.js +0 -375
  373. package/dist/agents/swarm.js.map +0 -1
  374. package/dist/agents/tools.d.ts +0 -26
  375. package/dist/agents/tools.d.ts.map +0 -1
  376. package/dist/agents/tools.js +0 -776
  377. package/dist/agents/tools.js.map +0 -1
  378. package/dist/agents/types.d.ts +0 -108
  379. package/dist/agents/types.d.ts.map +0 -1
  380. package/dist/agents/types.js +0 -43
  381. package/dist/agents/types.js.map +0 -1
  382. package/dist/api-server.d.ts +0 -45
  383. package/dist/api-server.d.ts.map +0 -1
  384. package/dist/api-server.js +0 -326
  385. package/dist/api-server.js.map +0 -1
  386. package/dist/auto-checkpoint.d.ts +0 -35
  387. package/dist/auto-checkpoint.d.ts.map +0 -1
  388. package/dist/auto-checkpoint.js +0 -176
  389. package/dist/auto-checkpoint.js.map +0 -1
  390. package/dist/background-jobs.d.ts +0 -45
  391. package/dist/background-jobs.d.ts.map +0 -1
  392. package/dist/background-jobs.js +0 -127
  393. package/dist/background-jobs.js.map +0 -1
  394. package/dist/branching.d.ts +0 -56
  395. package/dist/branching.d.ts.map +0 -1
  396. package/dist/branching.js +0 -224
  397. package/dist/branching.js.map +0 -1
  398. package/dist/cli/agent.d.ts +0 -9
  399. package/dist/cli/agent.d.ts.map +0 -1
  400. package/dist/cli/agent.js +0 -330
  401. package/dist/cli/agent.js.map +0 -1
  402. package/dist/cli/commands.d.ts +0 -12
  403. package/dist/cli/commands.d.ts.map +0 -1
  404. package/dist/cli/commands.js +0 -1042
  405. package/dist/cli/commands.js.map +0 -1
  406. package/dist/cli/index.d.ts +0 -8
  407. package/dist/cli/index.d.ts.map +0 -1
  408. package/dist/cli/index.js +0 -268
  409. package/dist/cli/index.js.map +0 -1
  410. package/dist/cli/types.d.ts +0 -33
  411. package/dist/cli/types.d.ts.map +0 -1
  412. package/dist/cli/types.js +0 -21
  413. package/dist/cli/types.js.map +0 -1
  414. package/dist/companions.d.ts +0 -54
  415. package/dist/companions.d.ts.map +0 -1
  416. package/dist/companions.js +0 -440
  417. package/dist/companions.js.map +0 -1
  418. package/dist/file-watcher.d.ts +0 -91
  419. package/dist/file-watcher.d.ts.map +0 -1
  420. package/dist/file-watcher.js +0 -269
  421. package/dist/file-watcher.js.map +0 -1
  422. package/dist/hud/theme-packs/api.d.ts +0 -51
  423. package/dist/hud/theme-packs/api.d.ts.map +0 -1
  424. package/dist/hud/theme-packs/api.js +0 -145
  425. package/dist/hud/theme-packs/api.js.map +0 -1
  426. package/dist/hud/theme-packs/index.d.ts +0 -18
  427. package/dist/hud/theme-packs/index.d.ts.map +0 -1
  428. package/dist/hud/theme-packs/index.js +0 -38
  429. package/dist/hud/theme-packs/index.js.map +0 -1
  430. package/dist/hud/theme-packs/types.d.ts +0 -29
  431. package/dist/hud/theme-packs/types.d.ts.map +0 -1
  432. package/dist/hud/theme-packs/types.js +0 -9
  433. package/dist/hud/theme-packs/types.js.map +0 -1
  434. package/dist/idle-eviction.d.ts +0 -34
  435. package/dist/idle-eviction.d.ts.map +0 -1
  436. package/dist/idle-eviction.js +0 -85
  437. package/dist/idle-eviction.js.map +0 -1
  438. package/dist/model-router.d.ts +0 -67
  439. package/dist/model-router.d.ts.map +0 -1
  440. package/dist/model-router.js.map +0 -1
  441. package/dist/providers/openai-compat-shims.d.ts +0 -31
  442. package/dist/providers/openai-compat-shims.d.ts.map +0 -1
  443. package/dist/providers/openai-compat-shims.js +0 -179
  444. package/dist/providers/openai-compat-shims.js.map +0 -1
  445. package/dist/sandbox-native.d.ts.map +0 -1
  446. package/dist/sandbox-native.js.map +0 -1
  447. package/dist/sandbox.d.ts.map +0 -1
  448. package/dist/sandbox.js.map +0 -1
  449. package/dist/session-timeout.d.ts +0 -31
  450. package/dist/session-timeout.d.ts.map +0 -1
  451. package/dist/session-timeout.js +0 -100
  452. package/dist/session-timeout.js.map +0 -1
  453. package/dist/smart-router.d.ts +0 -73
  454. package/dist/smart-router.d.ts.map +0 -1
  455. package/dist/smart-router.js +0 -332
  456. package/dist/smart-router.js.map +0 -1
  457. package/dist/terminal-recording.d.ts +0 -55
  458. package/dist/terminal-recording.d.ts.map +0 -1
  459. package/dist/terminal-recording.js +0 -182
  460. package/dist/terminal-recording.js.map +0 -1
  461. package/dist/tmux.d.ts +0 -35
  462. package/dist/tmux.d.ts.map +0 -1
  463. package/dist/tmux.js +0 -106
  464. package/dist/tmux.js.map +0 -1
  465. package/dist/ui/modals.d.ts +0 -72
  466. package/dist/ui/modals.d.ts.map +0 -1
  467. package/dist/ui/modals.js +0 -266
  468. package/dist/ui/modals.js.map +0 -1
  469. package/dist/ui/pack-picker.d.ts +0 -12
  470. package/dist/ui/pack-picker.d.ts.map +0 -1
  471. package/dist/ui/pack-picker.js +0 -101
  472. package/dist/ui/pack-picker.js.map +0 -1
  473. package/dist/ui/theme-picker.d.ts +0 -24
  474. package/dist/ui/theme-picker.d.ts.map +0 -1
  475. package/dist/ui/theme-picker.js +0 -190
  476. package/dist/ui/theme-picker.js.map +0 -1
package/README.md CHANGED
@@ -1,708 +1,92 @@
1
1
  # Calliope CLI
2
2
 
3
- > The Muse of Digital Eloquence
4
-
5
- Multi-model AI agent CLI with autonomous loops, project memory, and advanced tooling. Use Claude, Gemini, GPT, and more from a single elegant interface.
6
-
7
- ```
8
- ██████╗ █████╗ ██╗ ██╗ ██╗ ██████╗ ██████╗ ███████╗
9
- ██╔════╝██╔══██╗██║ ██║ ██║██╔═══██╗██╔══██╗██╔════╝
10
- ██║ ███████║██║ ██║ ██║██║ ██║██████╔╝█████╗
11
- ██║ ██╔══██║██║ ██║ ██║██║ ██║██╔═══╝ ██╔══╝
12
- ╚██████╗██║ ██║███████╗███████╗██║╚██████╔╝██║ ███████╗
13
- ╚═════╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚══════╝
14
-
15
- The Muse of Digital Eloquence
16
- ```
17
-
18
- ## Installation
3
+ **The private-AI agent CLI.** One terminal agent for any model backend — including the ones you run yourself. MIT-licensed, small core, no lock-in.
19
4
 
20
5
  ```bash
21
- # Quick install
22
- curl -fsSL https://calliope.ai/install.sh | bash
23
-
24
- # Or via npm
25
6
  npm install -g @calliopelabs/cli
26
- ```
27
-
28
- ## Quick Start
29
-
30
- ```bash
31
- # Run Calliope (first run will prompt for setup)
32
7
  calliope
33
-
34
- # Or set API key via environment
35
- export ANTHROPIC_API_KEY=sk-ant-...
36
- calliope
37
-
38
- # Run in god mode (no permission prompts)
39
- calliope -g
40
- calliope --god-mode
41
- ```
42
-
43
- ## Features
44
-
45
- ### 🚀 Scuttlebot Integration (New!)
46
-
47
- Native support for [scuttlebot](https://scuttlebot.dev) - real-time IRC mirroring and fleet coordination:
48
-
49
- ```bash
50
- export SCUTTLEBOT_URL=http://localhost:8080
51
- export SCUTTLEBOT_TOKEN=your-token
52
- calliope
53
- ```
54
-
55
- - **Real-time Mirroring**: Tool calls and responses stream to IRC as they happen
56
- - **Operator Intervention**: Address your session by name in IRC to redirect it mid-task
57
- - **Fleet Coordination**: Run multiple agents (Claude, Gemini, Calliope) in parallel
58
- - **Secret Sanitization**: Automatic redaction of API keys and tokens
59
-
60
- See [scuttlebot integration docs](docs/scuttlebot-integration.md) for details.
61
-
62
- ### Multi-Model Support
63
-
64
- Switch between 12+ providers on the fly:
65
-
66
- ```
67
- /provider anthropic # Use Claude
68
- /provider google # Use Gemini
69
- /provider openai # Use GPT
70
- /provider mistral # Use Mistral
71
- /provider ollama # Use local models
72
- /provider openrouter # Use any model via OpenRouter
73
- ```
74
-
75
- **Supported Providers:**
76
- - Anthropic (Claude): Sonnet 4, Opus 4, Haiku
77
- - OpenAI: GPT-4o, o1, o3-mini
78
- - Google: Gemini 2.0 Flash, 1.5 Pro
79
- - Mistral: Large, Small
80
- - Groq: Llama 3.3, Mixtral
81
- - Cerebras: Llama 3.3
82
- - Fireworks: Llama models
83
- - xAI: Grok
84
- - Ollama: Local models
85
- - OpenRouter: 100+ models
86
- - GitHub Models: Via Azure
87
- - DeepSeek: R1, V3
88
-
89
- ### 🔒 Scope Management
90
-
91
- Control which directories your AI can access for enhanced security:
92
-
93
- ```bash
94
- /scope add ./src # Grant access to src directory
95
- /scope add ./tests # Add tests directory
96
- /scope list # View current scope
97
- /scope remove ./src # Revoke access
98
- /scope reset # Clear all scope restrictions
99
- ```
100
-
101
- **Benefits:**
102
- - 🔒 **Security** - Prevent accidental modifications outside project areas
103
- - 🎯 **Focus** - Keep AI operations within relevant directories
104
- - ⚡ **Performance** - Reduce unnecessary file scanning
105
- - 📋 **Audit trail** - Track which directories are in scope
106
-
107
- ### 🔁 Session Management & Continuity
108
-
109
- Seamless continuity between sessions:
110
-
111
- ```bash
112
- # On startup, Calliope detects previous sessions:
113
- ╭─ 🎭 Calliope v0.6.11
114
- │ Found previous session (2 hours ago)
115
- │ • 12 messages, 2 TODOs pending
116
- ╰─ [R]esume [N]ew session
117
-
118
- # Commands
119
- /session list # List all sessions
120
- /session info # Current session details
121
- /history # View conversation history
122
- /export [file.md] # Export conversation to markdown
123
- ```
124
-
125
- ### 🔖 Bookmarks & Navigation
126
-
127
- Mark and return to important moments in your conversation:
128
-
129
- ```bash
130
- /bookmark "Got auth working" # Create a bookmark
131
- /bookmarks # List all bookmarks
132
- /goto bookmark-1 # Jump to that point in history
133
- /bookmark delete 1 # Remove a bookmark
134
- ```
135
-
136
- **Use cases:**
137
- - Mark successful implementations
138
- - Save decision points
139
- - Quick navigation in long conversations
140
-
141
- ### 📋 Templates
142
-
143
- Save and reuse common prompts and workflows:
144
-
145
- ```bash
146
- /template save code-review "Review this code for bugs, performance, and best practices"
147
- /template list # View all templates
148
- /template use code-review # Use a saved template
149
- /template delete code-review # Remove a template
150
- ```
151
-
152
- **Built-in templates include:**
153
- - Code review
154
- - Bug investigation
155
- - Refactoring plans
156
- - Testing strategies
157
-
158
- ### ↩️ Undo/Redo
159
-
160
- Navigate conversation history with full state management:
161
-
162
- ```bash
163
- /undo # Undo last exchange (message + all responses)
164
- /redo # Redo previously undone exchange
165
- /history # View full conversation timeline
166
- ```
167
-
168
- **Features:**
169
- - Preserves entire conversation state
170
- - Works across tool executions
171
- - Unlimited undo/redo stack
172
- - Shows available undo/redo count
173
-
174
- ### 💰 Cost Tracking
175
-
176
- Monitor API usage and costs across sessions:
177
-
178
- ```bash
179
- # Automatic tracking in status bar:
180
- # anthropic:claude-sonnet-4 │ 5.2K/200K │ 12.5K used │ $0.45
181
-
182
- /cost # Detailed cost breakdown
183
- ```
184
-
185
- **Tracks:**
186
- - Current session cost
187
- - Total cost across all sessions
188
- - Cost per provider
189
- - Token usage (input/output)
190
- - Persists across sessions
191
-
192
- ### ⌨️ Advanced Input Experience
193
-
194
- Enhanced input with modern conveniences:
195
-
196
- - **Tab completion** - Slash commands and file paths autocomplete
197
- - **History navigation** - Up/down arrows to browse previous inputs
198
- - **Multi-line editing** - Shift+Enter for new lines (if supported)
199
- - **Path suggestions** - Real-time file path completion
200
- - **Command hints** - Footer shows available options
201
-
202
- **Example:**
203
- ```
204
- > /boo[TAB] → /bookmark
205
- > /scope add ./[TAB] → ./src/ ./tests/ ./docs/
206
- > [Up Arrow] → Previous command
207
- ```
208
-
209
- ### 🚀 Parallel Tool Execution
210
-
211
- Automatically executes independent tool calls in parallel for 2-5x speedup:
212
-
213
- ```
214
- # When AI needs to read 3 files:
215
- Sequential: Read file1 → wait → Read file2 → wait → Read file3
216
- Parallel: Read file1, file2, file3 → all at once!
217
-
218
- # Dependency-aware:
219
- - Detects when tools depend on each other
220
- - Executes in optimal order
221
- - Shows parallel execution progress
222
- ```
223
-
224
- ### ⚡ Autonomous Loops
225
-
226
- Enable continuous execution for complex multi-step tasks:
227
-
228
- ```bash
229
- /loop on # Enable autonomous loops
230
- /loop off # Disable
231
- /loop 10 # Set max iterations
232
-
233
- # The AI will:
234
- # 1. Plan the approach
235
- # 2. Execute tools
236
- # 3. Evaluate results
237
- # 4. Continue until goal achieved or max iterations
238
- ```
239
-
240
- ### 🧠 Project Memory (CALLIOPE.md)
241
-
242
- Persistent memory across sessions using markdown files:
243
-
244
- ```
245
- /memory init # Create CALLIOPE.md
246
- /memory add context "This is a TypeScript project"
247
- /memory add preference "Use functional components"
248
- /memory show # View project memory
249
- /memory global # View global preferences
250
- ```
251
-
252
- Calliope automatically loads context from standard files:
253
- - `CALLIOPE.md` - Project memory
254
- - `CLAUDE.md` - Claude context
255
- - `README.md`, `SPEC.md`, `TODO.md`
256
- - `ARCHITECTURE.md`, `DESIGN.md`, `NOTES.md`
257
- - `.cursorrules`, `.github/copilot-instructions.md`
258
-
259
- ### 🛠️ Tools
260
-
261
- Built-in tools for autonomous operation:
262
-
263
- | Tool | Description |
264
- |------|-------------|
265
- | `shell` | Execute shell commands with safety checks |
266
- | `read_file` | Read file contents |
267
- | `write_file` | Write files with diff preview |
268
- | `list_files` | Directory listing |
269
- | `think` | Structured reasoning (visible in output) |
270
- | `execute_code` | Run Python/Node/Bash in sandbox |
271
- | `web_search` | Search the web for information |
272
- | `git` | Git operations (status, diff, log, etc.) |
273
- | `mermaid` | Generate diagrams |
274
-
275
- ### 🐳 Sandboxed Code Execution
276
-
277
- Execute code safely in Docker containers:
278
-
279
- ```
280
- The execute_code tool automatically:
281
- - Uses Docker when available (recommended)
282
- - Falls back to local execution if needed
283
- - Shows [sandboxed] or [unsandboxed] status
284
- - Enforces resource limits and timeouts
285
- ```
286
-
287
- ### 🌐 MCP Server Support
288
-
289
- Connect external tools via Model Context Protocol:
290
-
291
- ```bash
292
- /mcp add https://mcp-server.example.com
293
- /mcp list # Show connected servers
294
- /mcp tools # List available tools from all servers
295
- /mcp refresh # Reconnect all servers
296
- ```
297
-
298
- ### 📦 Agent Skills (AgentSkills.io)
299
-
300
- Install reusable skills from the community registry:
301
-
302
- ```bash
303
- /skills add git-workflow
304
- /skills add code-review
305
- /skills list # Show installed skills
306
- /skills info <name> # Skill details
307
8
  ```
308
9
 
309
- ### 🌲 Conversation Branching
10
+ Single-binary installs (Homebrew and a `curl` installer, no Node.js required) are
11
+ coming with the v3.0.0 stable release — see
12
+ [Install as a single binary](docs/getting-started.md#install-as-a-single-binary).
310
13
 
311
- Fork conversations to explore different approaches:
14
+ ## Why Calliope
312
15
 
313
- ```bash
314
- /branch new experiment "Try approach B"
315
- /branch list # Show all branches
316
- /branch switch experiment
317
- /branch delete experiment
318
- ```
319
-
320
- ### 🎨 Themes & Personas
16
+ - **Any backend, live-discovered.** 13 providers — Anthropic, OpenAI, Google, AWS Bedrock, Ollama, OpenRouter, Together, Groq, Fireworks, Mistral, AI21, Hugging Face, LiteLLM, plus any OpenAI-compatible server. No hardcoded model lists: models and capabilities are discovered from each provider's API, so new models work the day they ship.
17
+ - **Built for models you run yourself.** Ollama and self-hosted OpenAI-compatible servers are first-class targets, not checkboxes. Run fully air-gapped.
18
+ - **Sandbox-first execution.** Shell and code tools run inside macOS Seatbelt or Docker sandboxes (`auto`/`native`/`docker`/`off`). Blocklists are advisory; the sandbox is the boundary.
19
+ - **Safety rails that survive long sessions.** Circuit breakers, iteration budgets, git-based checkpoints with `/restore`, and automatic context compaction.
20
+ - **Governance built in.** Tamper-evident audit run logs (on by default), a `replay` command to inspect and verify them, budget caps that halt a run before it overspends, and a pre-tool policy hook for an external allow/deny engine. See [docs/governance.md](docs/governance.md).
21
+ - **Small on purpose.** 22 commands. 16 config keys. 11 flags. v3 removed more code than it kept — the changelog lists everything that went and why.
22
+ - **Tested like infrastructure.** 3,500 tests, 93%+ line coverage with an enforced 90% floor.
321
23
 
322
- Customize the visual style and AI personality:
24
+ ## Quick start
323
25
 
324
26
  ```bash
325
- # Themes
326
- /theme list # Show available themes
327
- /theme monokai # Set theme
328
- /theme # Cycle through themes
329
-
330
- # Personas
331
- /persona professional # Professional, concise responses
332
- /persona minimal # Minimal output, just essentials
333
- /persona calliope # Poetic, elegant responses (default)
27
+ calliope --setup # pick a provider, paste a key (or point at Ollama)
28
+ calliope # start a session in the current directory
334
29
  ```
335
30
 
336
- **Available themes:** `default`, `light`, `monokai`, `nord`, `minimal`
31
+ Inside a session:
337
32
 
338
- ### 🪝 Hooks System
339
-
340
- Run custom scripts before/after tool execution:
341
-
342
- ```bash
343
- /hooks init # Initialize default hooks
344
- /hooks list # Show configured hooks
345
- /hooks add pre-shell "echo Running: $CALLIOPE_COMMAND"
346
33
  ```
347
-
348
- **Hook events:** `pre-tool`, `post-tool`, `pre-shell`, `post-shell`, `pre-write`, `post-write`, `session-start`, `session-end`
349
-
350
- ### 📊 Context Management & Warnings
351
-
352
- Smart context tracking with proactive warnings:
353
-
34
+ /mode plan think first — the agent proposes, you approve
35
+ /model list see live-discovered models for your provider
36
+ /scope add ../lib widen file access deliberately
37
+ /compact compress context when it grows
38
+ /restore list git checkpoints; /restore <path> to roll back
39
+ /help everything else — it fits on one screen
354
40
  ```
355
- ⚠️ Context at 85% capacity (170K/200K tokens)
356
- Consider: /summarize compact | /clear | shorter messages
357
41
 
358
- 🚨 Context at 95% capacity! (190K/200K tokens)
359
- Action required: /summarize compact | /clear
360
- ```
42
+ Headless, for CI and scripts:
361
43
 
362
- **Commands:**
363
44
  ```bash
364
- /summarize context # View conversation summary
365
- /summarize compact # Compress context to fit limits
366
- /clear # Clear conversation
367
- ```
368
-
369
- ### 🔍 Smart Search
370
-
371
- Find anything in your conversation or project:
372
-
373
- ```bash
374
- /search error handling # Fuzzy search through history
375
- /find auth # Find files in project
376
- ```
377
-
378
- ### ⚙️ Modes
379
-
380
- Three distinct operating modes for different workflows:
381
-
382
- ```bash
383
- /mode plan # Analyze and plan, don't execute
384
- /mode hybrid # Plan then execute (default)
385
- /mode work # Execute directly without planning
386
- ```
387
-
388
- | Mode | Icon | Behavior | Use Case |
389
- |------|------|----------|----------|
390
- | **Plan** | 📋 | Chat only, no execution | Design discussions, exploration |
391
- | **Hybrid** | 🔄 | Smart planning before complex ops | Default for most users |
392
- | **Work** | 🔧 | Direct execution | Experienced users, simple tasks |
393
-
394
- ### 🛡️ Risk Assessment & Safety
395
-
396
- Built-in safety for potentially dangerous operations:
397
-
398
- - Automatic risk classification (low/medium/high/critical)
399
- - Permission prompts for risky operations
400
- - God mode (`-g`) to bypass prompts for trusted tasks
401
- - Detailed explanations of risks
402
- - Scope restrictions for file access
403
-
404
- ### 🚄 Streaming & Real-time Feedback
405
-
406
- Live response rendering for immediate feedback:
407
-
408
- - Token-by-token streaming for text responses
409
- - Live tool execution status with progress indicators
410
- - Visual diffs for file changes
411
- - Parallel tool execution visualization
412
- - Thinking process display
413
-
414
- ## Commands Reference
415
-
416
- ### Core Commands
417
- ```bash
418
- /help, /h # Show all commands
419
- /exit, /quit, /q # Exit Calliope
420
- /clear, /c # Clear conversation
421
- /status, /s # Show current status
422
- /config # Show configuration
423
- /debug [on|off] # Toggle debug mode
424
- ```
425
-
426
- ### Model & Provider
427
- ```bash
428
- /provider, /p [name] # Switch AI provider
429
- /model, /m [name] # Set model (interactive if no name)
430
- /models # Browse available models
431
- /persona [name] # Switch persona (calliope/professional/minimal)
432
- ```
433
-
434
- ### Modes & Settings
435
- ```bash
436
- /mode [plan|hybrid|work] # Switch operating mode
437
- /loop [on|off|N] # Toggle/configure autonomous mode
438
- /confirm [on|off] # Toggle risky operation confirmation
439
- /theme [name] # Switch theme
440
- ```
441
-
442
- ### Scope Management
443
- ```bash
444
- /scope add <path> # Add directory to scope
445
- /scope remove <path> # Remove directory from scope
446
- /scope list # Show current scope
447
- /scope reset # Clear all scope restrictions
448
- ```
449
-
450
- ### Session & History
451
- ```bash
452
- /session list # List all sessions
453
- /session info # Current session details
454
- /history [search] # View/search conversation history
455
- /bookmark [name] # Create bookmark
456
- /bookmarks # List bookmarks
457
- /goto <id> # Jump to bookmark
458
- /undo # Undo last exchange
459
- /redo # Redo exchange
460
- ```
461
-
462
- ### Templates & Memory
463
- ```bash
464
- /template save <name> <prompt> # Save template
465
- /template list # View all templates
466
- /template use <name> # Use template
467
- /template delete <name> # Remove template
468
-
469
- /memory init # Initialize project memory
470
- /memory add <text> # Add to memory
471
- /memory show # View project memory
472
- /memory global # View global memory
473
- ```
474
-
475
- ### Context & Search
476
- ```bash
477
- /summarize [context|compact] # Summarize/compress conversation
478
- /search <query> # Search conversation history
479
- /find <pattern> # Fuzzy file search in project
480
- /branch [new|switch|list] # Conversation branches
481
- ```
482
-
483
- ### Tools & Extensions
484
- ```bash
485
- /mcp [list|add|remove|tools] # MCP server management
486
- /skills [list|add|remove|info] # Agent skills
487
- /hooks [list|add|init] # Pre/post tool hooks
488
- ```
489
-
490
- ### Tasks & Planning
491
- ```bash
492
- /todo [add|done|work|clear|list] # Manage TODOs
493
- /plans [list|view|rerun] # View and rerun plans
494
- ```
495
-
496
- ### Utility
497
- ```bash
498
- /cost # Show cost breakdown
499
- /copy # Copy last response
500
- /export [file.md] # Export conversation to file
501
- /upgrade # Check for updates
502
- /set <key> <value> # Set runtime config (e.g., maxIterations)
503
- /context # Show loaded project context
504
- ```
505
-
506
- ## Environment Variables
507
-
508
- ```bash
509
- # API Keys
510
- ANTHROPIC_API_KEY=sk-ant-...
511
- OPENAI_API_KEY=sk-...
512
- GOOGLE_API_KEY=...
513
- MISTRAL_API_KEY=...
514
- GROQ_API_KEY=...
515
- XAI_API_KEY=...
516
- CEREBRAS_API_KEY=...
517
- FIREWORKS_API_KEY=...
518
- DEEPSEEK_API_KEY=...
519
- OPENROUTER_API_KEY=...
520
-
521
- # Configuration
522
- CALLIOPE_PROVIDER=anthropic
523
- CALLIOPE_MODEL=claude-sonnet-4-20250514
524
- CALLIOPE_GOD_MODE=false
525
- CALLIOPE_DEBUG=false
526
-
527
- # Ollama
528
- OLLAMA_BASE_URL=http://localhost:11434
529
-
530
- # LiteLLM
531
- LITELLM_BASE_URL=http://localhost:4000
532
- LITELLM_API_KEY=...
45
+ calliope --headless --json "run the tests and summarize failures"
533
46
  ```
534
47
 
535
48
  ## Configuration
536
49
 
537
- Config is stored in `~/.config/calliope/config.json` (or platform equivalent).
538
-
539
- ```bash
540
- # Show config location
541
- calliope --config
50
+ One file, 16 keys. Credentials live in a per-provider map with environment-variable fallbacks:
542
51
 
543
- # Reset config
544
- calliope --reset
545
-
546
- # Force setup wizard
547
- calliope --setup
548
- ```
549
-
550
- ### Sample config.json
551
- ```json
52
+ ```jsonc
552
53
  {
553
- "provider": "anthropic",
554
- "model": "claude-sonnet-4-20250514",
555
- "apiKeys": {
556
- "anthropic": "sk-ant-...",
557
- "openai": "sk-...",
558
- "google": "..."
54
+ "defaultProvider": "anthropic",
55
+ "providers": {
56
+ "anthropic": { "apiKey": "sk-ant-..." },
57
+ "ollama": { "baseUrl": "http://localhost:11434" }
559
58
  },
560
- "theme": "default",
561
- "persona": "calliope",
562
- "godMode": false,
563
- "maxIterations": 25,
564
- "scope": ["./src", "./tests"]
59
+ "sandboxMode": "auto",
60
+ "routing": { "enabled": false, "costSensitivity": 0.3 }
565
61
  }
566
62
  ```
567
63
 
568
- ### Profiles
569
-
570
- Save and switch between configurations:
571
-
572
- ```bash
573
- /profile save work # Save current settings as "work"
574
- /profile work # Load "work" profile
575
- /profile delete work # Delete profile
576
- /profile list # Show all profiles
577
- ```
578
-
579
- **Built-in profiles:** `fast`, `smart`, `cheap`, `local`
580
-
581
- ## Keyboard Shortcuts
582
-
583
- | Key | Action |
584
- |-----|--------|
585
- | `ESC` | Exit Calliope |
586
- | `Ctrl+C` | Cancel current operation |
587
- | `Ctrl+L` | Clear screen |
588
- | `Up/Down` | Navigate input history |
589
- | `Tab` | Autocomplete commands/paths |
590
- | `Shift+Enter` | Multi-line input (where supported) |
591
-
592
- ## File References
593
-
594
- Reference files directly in your messages:
595
-
596
- ```
597
- @filename.ts # Include file content
598
- ./path/to/file # Relative path
599
- /absolute/path/file # Absolute path
600
- ```
601
-
602
- Images are automatically detected and sent for vision-capable models.
603
-
604
- ## Security & Best Practices
605
-
606
- ### API Key Storage
607
- - Keys stored in `~/.config/calliope/config.json`
608
- - Prefer environment variables for better security
609
- - Never commit config to version control
610
-
611
- ### Tool Execution Safety
612
- - Path traversal protection
613
- - Sandboxed code execution via Docker
614
- - Timeout limits on all commands
615
- - Risk assessment for dangerous operations
616
- - Scope restrictions for file access
617
- - Hook system for custom validation
64
+ `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `OLLAMA_BASE_URL`, and friends work as before. v2 configs migrate automatically on first run.
618
65
 
619
- ### Best Practices
620
- 1. Use `/scope` to limit directory access
621
- 2. Review tool calls before execution (unless in god mode)
622
- 3. Set iteration limits on autonomous loops
623
- 4. Work from project directories, not system directories
624
- 5. Regular `/summarize` to manage context
625
- 6. Use bookmarks for important moments
66
+ Docs: [getting started](docs/getting-started.md) · [commands](docs/commands.md) · [configuration](docs/configuration.md) · [providers](docs/providers.md) · [features](docs/features.md) · [fleet mode](docs/fleet.md)
626
67
 
627
- ## Development
68
+ ## Editors
628
69
 
629
- ```bash
630
- # Clone and setup
631
- git clone https://github.com/calliopeai/calliope-cli.git
632
- cd calliope-cli
633
- npm install
634
-
635
- # Build
636
- npm run build
637
-
638
- # Run locally
639
- node dist/bin.js
640
-
641
- # Run tests
642
- npm test
643
-
644
- # Watch mode for development
645
- npm run dev
646
- ```
647
-
648
- ## Architecture
70
+ Run Calliope as an [Agent Client Protocol](https://agentclientprotocol.com) agent (`calliope acp`) inside Zed, JetBrains, Neovim, and other ACP editors — client-side file edits, per-tool permissions, and the same audit trail. See [docs/acp.md](docs/acp.md).
649
71
 
650
- - **TypeScript** - Full type safety throughout
651
- - **Ink (React)** - Declarative CLI rendering
652
- - **Vitest** - Fast unit testing framework
653
- - **Multi-provider** - Unified interface for 12+ LLM providers
654
- - **Modular design** - Clean separation of concerns
655
- - **Parallel execution** - Dependency-aware tool execution
656
- - **Error boundaries** - Graceful crash recovery
72
+ ## Fleet mode
657
73
 
658
- ## Troubleshooting
74
+ Coordinate a fleet of agents and human operators over a self-hosted IRC channel that doubles as an audit trail. Off by default, zero cost when disabled. See [docs/fleet.md](docs/fleet.md).
659
75
 
660
- **"No API keys configured"**
661
- - Run `calliope --setup` to configure keys
662
- - Or set environment variables (see above)
76
+ ## Project memory
663
77
 
664
- **"Empty response from API"**
665
- - Check API key validity
666
- - Verify account credits/quota
667
- - Try a different provider
78
+ Drop a `CALLIOPE.md` in your repo and every session starts knowing your conventions. `/memory` manages it.
668
79
 
669
- **Context limit warnings**
670
- - Use `/summarize compact` to compress
671
- - Or `/clear` to start fresh
672
- - Consider shorter messages
80
+ ## v3.0
673
81
 
674
- **"Access denied" for file operations**
675
- - Operations restricted to cwd and home directory
676
- - Check `/scope list` for current restrictions
677
- - Use `/scope add <path>` to grant access
82
+ v3 is a deliberate reduction: 84 commands, 40 config keys, and ~20k lines of speculative features (theme packs, companions, multi-agent orchestration, an embedded API server, and more) were removed to make the core fast, predictable, and maintainable. The full list and rationale live in [CHANGELOG.md](CHANGELOG.md) and the [v3.0 roadmap](https://github.com/calliopeai/calliope-cli/issues/195).
678
83
 
679
- **Docker not available for sandbox**
680
- - Install Docker for safer code execution
681
- - Without Docker, code runs locally (less safe)
84
+ Coming in v3.0 stable: single-binary installs (brew/curl, no Node required) and enforced performance budgets. Governance primitives — replayable audit run logs, budget caps, and a policy hook — have landed; see [docs/governance.md](docs/governance.md). Coming after: local-model edit-reliability hardening.
682
85
 
683
86
  ## Contributing
684
87
 
685
- We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
88
+ Issues and PRs welcome — [CONTRIBUTING.md](CONTRIBUTING.md). The codebase is TypeScript ESM with React/Ink; `npm test` must stay green and coverage must stay above 90%.
686
89
 
687
90
  ## License
688
91
 
689
- MIT License - see [LICENSE](LICENSE)
690
-
691
- ## Support
692
-
693
- - **Issues**: [GitHub Issues](https://github.com/calliopeai/calliope-cli/issues)
694
- - **Discussions**: [GitHub Discussions](https://github.com/calliopeai/calliope-cli/discussions)
695
- - **Twitter**: [@calliopelabs](https://twitter.com/calliopelabs)
696
-
697
- ## Acknowledgments
698
-
699
- Built with love by the Calliope team. Special thanks to:
700
- - Anthropic for Claude
701
- - OpenAI for GPT
702
- - Google for Gemini
703
- - The open-source community
704
- - All contributors and users
705
-
706
- ---
707
-
708
- *May your code be elegant, your execution swift, and your automation poetic.* 🎭✨
92
+ MIT © Calliope Labs Inc