@calliopelabs/cli 2.5.0 → 3.1.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 (490) 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.d.ts.map +1 -1
  19. package/dist/circuit-breaker/breaker.js.map +1 -1
  20. package/dist/config.d.ts +86 -81
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +236 -304
  23. package/dist/config.js.map +1 -1
  24. package/dist/cost.d.ts +114 -0
  25. package/dist/cost.d.ts.map +1 -0
  26. package/dist/cost.js +499 -0
  27. package/dist/cost.js.map +1 -0
  28. package/dist/diff.d.ts.map +1 -1
  29. package/dist/diff.js +11 -7
  30. package/dist/diff.js.map +1 -1
  31. package/dist/env-expansion.js.map +1 -1
  32. package/dist/errors.js +3 -3
  33. package/dist/errors.js.map +1 -1
  34. package/dist/files.js.map +1 -1
  35. package/dist/fleet.d.ts +30 -0
  36. package/dist/fleet.d.ts.map +1 -0
  37. package/dist/fleet.js +86 -0
  38. package/dist/fleet.js.map +1 -0
  39. package/dist/fuzzy-search.d.ts.map +1 -1
  40. package/dist/fuzzy-search.js +2 -1
  41. package/dist/fuzzy-search.js.map +1 -1
  42. package/dist/git-status.js.map +1 -1
  43. package/dist/headless.d.ts +1 -2
  44. package/dist/headless.d.ts.map +1 -1
  45. package/dist/headless.js +166 -24
  46. package/dist/headless.js.map +1 -1
  47. package/dist/hud/api.d.ts +3 -18
  48. package/dist/hud/api.d.ts.map +1 -1
  49. package/dist/hud/api.js +9 -352
  50. package/dist/hud/api.js.map +1 -1
  51. package/dist/hud/palettes.d.ts.map +1 -1
  52. package/dist/hud/palettes.js +0 -180
  53. package/dist/hud/palettes.js.map +1 -1
  54. package/dist/hud/skins.d.ts.map +1 -1
  55. package/dist/hud/skins.js +0 -263
  56. package/dist/hud/skins.js.map +1 -1
  57. package/dist/hud/types.d.ts +2 -5
  58. package/dist/hud/types.d.ts.map +1 -1
  59. package/dist/index.d.ts +1 -4
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -4
  62. package/dist/index.js.map +1 -1
  63. package/dist/iteration-ledger.d.ts.map +1 -1
  64. package/dist/iteration-ledger.js +3 -2
  65. package/dist/iteration-ledger.js.map +1 -1
  66. package/dist/local-model.d.ts +150 -0
  67. package/dist/local-model.d.ts.map +1 -0
  68. package/dist/local-model.js +408 -0
  69. package/dist/local-model.js.map +1 -0
  70. package/dist/mcp.d.ts.map +1 -1
  71. package/dist/mcp.js +5 -2
  72. package/dist/mcp.js.map +1 -1
  73. package/dist/memory.d.ts.map +1 -1
  74. package/dist/memory.js +6 -4
  75. package/dist/memory.js.map +1 -1
  76. package/dist/model-detection.js +2 -2
  77. package/dist/model-detection.js.map +1 -1
  78. package/dist/parallel-tools.js.map +1 -1
  79. package/dist/plugins.d.ts +32 -1
  80. package/dist/plugins.d.ts.map +1 -1
  81. package/dist/plugins.js +116 -5
  82. package/dist/plugins.js.map +1 -1
  83. package/dist/policy.d.ts +43 -0
  84. package/dist/policy.d.ts.map +1 -0
  85. package/dist/policy.js +139 -0
  86. package/dist/policy.js.map +1 -0
  87. package/dist/project-config.d.ts +1 -2
  88. package/dist/project-config.d.ts.map +1 -1
  89. package/dist/project-config.js +0 -3
  90. package/dist/project-config.js.map +1 -1
  91. package/dist/providers/bedrock.d.ts.map +1 -1
  92. package/dist/providers/bedrock.js +2 -5
  93. package/dist/providers/bedrock.js.map +1 -1
  94. package/dist/providers/compat.d.ts +21 -0
  95. package/dist/providers/compat.d.ts.map +1 -1
  96. package/dist/providers/compat.js +176 -6
  97. package/dist/providers/compat.js.map +1 -1
  98. package/dist/providers/google.js.map +1 -1
  99. package/dist/providers/index.d.ts +19 -4
  100. package/dist/providers/index.d.ts.map +1 -1
  101. package/dist/providers/index.js +61 -10
  102. package/dist/providers/index.js.map +1 -1
  103. package/dist/providers/ollama.d.ts +2 -2
  104. package/dist/providers/ollama.d.ts.map +1 -1
  105. package/dist/providers/ollama.js +26 -6
  106. package/dist/providers/ollama.js.map +1 -1
  107. package/dist/providers/openai.d.ts +10 -10
  108. package/dist/providers/openai.d.ts.map +1 -1
  109. package/dist/providers/openai.js +18 -10
  110. package/dist/providers/openai.js.map +1 -1
  111. package/dist/providers/types.d.ts +8 -0
  112. package/dist/providers/types.d.ts.map +1 -1
  113. package/dist/providers/types.js.map +1 -1
  114. package/dist/replay.d.ts +37 -0
  115. package/dist/replay.d.ts.map +1 -0
  116. package/dist/replay.js +168 -0
  117. package/dist/replay.js.map +1 -0
  118. package/dist/router.d.ts +133 -0
  119. package/dist/router.d.ts.map +1 -0
  120. package/dist/{model-router.js → router.js} +329 -3
  121. package/dist/router.js.map +1 -0
  122. package/dist/runlog.d.ts +185 -0
  123. package/dist/runlog.d.ts.map +1 -0
  124. package/dist/runlog.js +398 -0
  125. package/dist/runlog.js.map +1 -0
  126. package/dist/{sandbox.d.ts → sandbox/docker.d.ts} +1 -1
  127. package/dist/sandbox/docker.d.ts.map +1 -0
  128. package/dist/{sandbox.js → sandbox/docker.js} +1 -1
  129. package/dist/sandbox/docker.js.map +1 -0
  130. package/dist/sandbox/index.d.ts +36 -0
  131. package/dist/sandbox/index.d.ts.map +1 -0
  132. package/dist/sandbox/index.js +62 -0
  133. package/dist/sandbox/index.js.map +1 -0
  134. package/dist/{sandbox-native.d.ts → sandbox/native.d.ts} +1 -1
  135. package/dist/sandbox/native.d.ts.map +1 -0
  136. package/dist/{sandbox-native.js → sandbox/native.js} +1 -1
  137. package/dist/sandbox/native.js.map +1 -0
  138. package/dist/scope.d.ts.map +1 -1
  139. package/dist/scope.js +1 -1
  140. package/dist/scope.js.map +1 -1
  141. package/dist/scuttlebot/client.d.ts.map +1 -1
  142. package/dist/scuttlebot/client.js.map +1 -1
  143. package/dist/scuttlebot/config.js.map +1 -1
  144. package/dist/scuttlebot/http-client.d.ts.map +1 -1
  145. package/dist/scuttlebot/irc-client.d.ts +5 -5
  146. package/dist/scuttlebot/irc-client.d.ts.map +1 -1
  147. package/dist/scuttlebot/irc-client.js.map +1 -1
  148. package/dist/setup.d.ts.map +1 -1
  149. package/dist/setup.js +25 -54
  150. package/dist/setup.js.map +1 -1
  151. package/dist/skills.d.ts +39 -0
  152. package/dist/skills.d.ts.map +1 -1
  153. package/dist/skills.js +90 -8
  154. package/dist/skills.js.map +1 -1
  155. package/dist/storage.d.ts.map +1 -1
  156. package/dist/storage.js +6 -3
  157. package/dist/storage.js.map +1 -1
  158. package/dist/streaming.d.ts +25 -0
  159. package/dist/streaming.d.ts.map +1 -1
  160. package/dist/streaming.js +59 -0
  161. package/dist/streaming.js.map +1 -1
  162. package/dist/styles.d.ts +62 -56
  163. package/dist/styles.d.ts.map +1 -1
  164. package/dist/styles.js +11 -0
  165. package/dist/styles.js.map +1 -1
  166. package/dist/summarization.d.ts.map +1 -1
  167. package/dist/summarization.js.map +1 -1
  168. package/dist/terminal-image.js +1 -1
  169. package/dist/terminal-image.js.map +1 -1
  170. package/dist/themes.d.ts +5 -4
  171. package/dist/themes.d.ts.map +1 -1
  172. package/dist/themes.js +35 -90
  173. package/dist/themes.js.map +1 -1
  174. package/dist/tools.d.ts +27 -3
  175. package/dist/tools.d.ts.map +1 -1
  176. package/dist/tools.js +128 -179
  177. package/dist/tools.js.map +1 -1
  178. package/dist/trust.js.map +1 -1
  179. package/dist/types.d.ts +4 -3
  180. package/dist/types.d.ts.map +1 -1
  181. package/dist/types.js +21 -40
  182. package/dist/types.js.map +1 -1
  183. package/dist/ui/agent.d.ts +3 -6
  184. package/dist/ui/agent.d.ts.map +1 -1
  185. package/dist/ui/agent.js +328 -38
  186. package/dist/ui/agent.js.map +1 -1
  187. package/dist/ui/animations.d.ts +37 -0
  188. package/dist/ui/animations.d.ts.map +1 -0
  189. package/dist/ui/animations.js +227 -0
  190. package/dist/ui/animations.js.map +1 -0
  191. package/dist/ui/chat-input-keys.d.ts +42 -0
  192. package/dist/ui/chat-input-keys.d.ts.map +1 -0
  193. package/dist/ui/chat-input-keys.js +360 -0
  194. package/dist/ui/chat-input-keys.js.map +1 -0
  195. package/dist/ui/chat-input.d.ts +4 -2
  196. package/dist/ui/chat-input.d.ts.map +1 -1
  197. package/dist/ui/chat-input.js +31 -350
  198. package/dist/ui/chat-input.js.map +1 -1
  199. package/dist/ui/commands.d.ts +14 -46
  200. package/dist/ui/commands.d.ts.map +1 -1
  201. package/dist/ui/commands.js +416 -2899
  202. package/dist/ui/commands.js.map +1 -1
  203. package/dist/ui/completions.d.ts +1 -0
  204. package/dist/ui/completions.d.ts.map +1 -1
  205. package/dist/ui/completions.js +36 -107
  206. package/dist/ui/completions.js.map +1 -1
  207. package/dist/ui/components.d.ts +20 -12
  208. package/dist/ui/components.d.ts.map +1 -1
  209. package/dist/ui/components.js +17 -226
  210. package/dist/ui/components.js.map +1 -1
  211. package/dist/ui/context.js +6 -6
  212. package/dist/ui/context.js.map +1 -1
  213. package/dist/ui/debug-log.d.ts +11 -0
  214. package/dist/ui/debug-log.d.ts.map +1 -0
  215. package/dist/ui/debug-log.js +21 -0
  216. package/dist/ui/debug-log.js.map +1 -0
  217. package/dist/ui/error-boundary.d.ts +1 -1
  218. package/dist/ui/error-boundary.d.ts.map +1 -1
  219. package/dist/ui/error-boundary.js.map +1 -1
  220. package/dist/ui/frame.d.ts +1 -1
  221. package/dist/ui/frame.d.ts.map +1 -1
  222. package/dist/ui/frame.js +1 -3
  223. package/dist/ui/frame.js.map +1 -1
  224. package/dist/ui/index.d.ts +11 -3
  225. package/dist/ui/index.d.ts.map +1 -1
  226. package/dist/ui/index.js +45 -1076
  227. package/dist/ui/index.js.map +1 -1
  228. package/dist/ui/messages.d.ts +5 -8
  229. package/dist/ui/messages.d.ts.map +1 -1
  230. package/dist/ui/messages.js +15 -30
  231. package/dist/ui/messages.js.map +1 -1
  232. package/dist/ui/modals/index.d.ts +11 -0
  233. package/dist/ui/modals/index.d.ts.map +1 -0
  234. package/dist/ui/modals/index.js +10 -0
  235. package/dist/ui/modals/index.js.map +1 -0
  236. package/dist/ui/modals/prompts.d.ts +38 -0
  237. package/dist/ui/modals/prompts.d.ts.map +1 -0
  238. package/dist/ui/modals/prompts.js +124 -0
  239. package/dist/ui/modals/prompts.js.map +1 -0
  240. package/dist/ui/modals/selectors.d.ts +34 -0
  241. package/dist/ui/modals/selectors.d.ts.map +1 -0
  242. package/dist/ui/modals/selectors.js +111 -0
  243. package/dist/ui/modals/selectors.js.map +1 -0
  244. package/dist/ui/modals/setup.d.ts +18 -0
  245. package/dist/ui/modals/setup.d.ts.map +1 -0
  246. package/dist/ui/modals/setup.js +51 -0
  247. package/dist/ui/modals/setup.js.map +1 -0
  248. package/dist/ui/regions/input-region.d.ts +40 -0
  249. package/dist/ui/regions/input-region.d.ts.map +1 -0
  250. package/dist/ui/regions/input-region.js +116 -0
  251. package/dist/ui/regions/input-region.js.map +1 -0
  252. package/dist/ui/regions/modal-host.d.ts +41 -0
  253. package/dist/ui/regions/modal-host.d.ts.map +1 -0
  254. package/dist/ui/regions/modal-host.js +51 -0
  255. package/dist/ui/regions/modal-host.js.map +1 -0
  256. package/dist/ui/regions/render-probe.d.ts +22 -0
  257. package/dist/ui/regions/render-probe.d.ts.map +1 -0
  258. package/dist/ui/regions/render-probe.js +45 -0
  259. package/dist/ui/regions/render-probe.js.map +1 -0
  260. package/dist/ui/regions/static-scrollback.d.ts +39 -0
  261. package/dist/ui/regions/static-scrollback.d.ts.map +1 -0
  262. package/dist/ui/regions/static-scrollback.js +68 -0
  263. package/dist/ui/regions/static-scrollback.js.map +1 -0
  264. package/dist/ui/regions/status-region.d.ts +24 -0
  265. package/dist/ui/regions/status-region.d.ts.map +1 -0
  266. package/dist/ui/regions/status-region.js +17 -0
  267. package/dist/ui/regions/status-region.js.map +1 -0
  268. package/dist/ui/regions/transcript-region.d.ts +41 -0
  269. package/dist/ui/regions/transcript-region.d.ts.map +1 -0
  270. package/dist/ui/regions/transcript-region.js +52 -0
  271. package/dist/ui/regions/transcript-region.js.map +1 -0
  272. package/dist/ui/self-restart.d.ts +9 -0
  273. package/dist/ui/self-restart.d.ts.map +1 -0
  274. package/dist/ui/self-restart.js +24 -0
  275. package/dist/ui/self-restart.js.map +1 -0
  276. package/dist/ui/state/use-chat-controller.d.ts +23 -0
  277. package/dist/ui/state/use-chat-controller.d.ts.map +1 -0
  278. package/dist/ui/state/use-chat-controller.js +643 -0
  279. package/dist/ui/state/use-chat-controller.js.map +1 -0
  280. package/dist/ui/state/use-loop-state.d.ts +23 -0
  281. package/dist/ui/state/use-loop-state.d.ts.map +1 -0
  282. package/dist/ui/state/use-loop-state.js +39 -0
  283. package/dist/ui/state/use-loop-state.js.map +1 -0
  284. package/dist/ui/state/use-modal-state.d.ts +52 -0
  285. package/dist/ui/state/use-modal-state.d.ts.map +1 -0
  286. package/dist/ui/state/use-modal-state.js +44 -0
  287. package/dist/ui/state/use-modal-state.js.map +1 -0
  288. package/dist/ui/state/use-model-state.d.ts +29 -0
  289. package/dist/ui/state/use-model-state.d.ts.map +1 -0
  290. package/dist/ui/state/use-model-state.js +47 -0
  291. package/dist/ui/state/use-model-state.js.map +1 -0
  292. package/dist/ui/state/use-processing-state.d.ts +24 -0
  293. package/dist/ui/state/use-processing-state.d.ts.map +1 -0
  294. package/dist/ui/state/use-processing-state.js +46 -0
  295. package/dist/ui/state/use-processing-state.js.map +1 -0
  296. package/dist/ui/state/use-queue-state.d.ts +19 -0
  297. package/dist/ui/state/use-queue-state.d.ts.map +1 -0
  298. package/dist/ui/state/use-queue-state.js +30 -0
  299. package/dist/ui/state/use-queue-state.js.map +1 -0
  300. package/dist/ui/state/use-session-init.d.ts +22 -0
  301. package/dist/ui/state/use-session-init.d.ts.map +1 -0
  302. package/dist/ui/state/use-session-init.js +77 -0
  303. package/dist/ui/state/use-session-init.js.map +1 -0
  304. package/dist/ui/state/use-session-stats.d.ts +16 -0
  305. package/dist/ui/state/use-session-stats.d.ts.map +1 -0
  306. package/dist/ui/state/use-session-stats.js +18 -0
  307. package/dist/ui/state/use-session-stats.js.map +1 -0
  308. package/dist/ui/state/use-terminal-width.d.ts +8 -0
  309. package/dist/ui/state/use-terminal-width.d.ts.map +1 -0
  310. package/dist/ui/state/use-terminal-width.js +22 -0
  311. package/dist/ui/state/use-terminal-width.js.map +1 -0
  312. package/dist/ui/state/use-transcript-state.d.ts +21 -0
  313. package/dist/ui/state/use-transcript-state.d.ts.map +1 -0
  314. package/dist/ui/state/use-transcript-state.js +49 -0
  315. package/dist/ui/state/use-transcript-state.js.map +1 -0
  316. package/dist/ui/status-bar.d.ts +1 -1
  317. package/dist/ui/status-bar.d.ts.map +1 -1
  318. package/dist/ui/status-bar.js +3 -4
  319. package/dist/ui/status-bar.js.map +1 -1
  320. package/dist/version-check.d.ts.map +1 -1
  321. package/dist/version-check.js +10 -0
  322. package/dist/version-check.js.map +1 -1
  323. package/package.json +17 -10
  324. package/dist/agents/agent-config-loader.d.ts +0 -60
  325. package/dist/agents/agent-config-loader.d.ts.map +0 -1
  326. package/dist/agents/agent-config-loader.js +0 -402
  327. package/dist/agents/agent-config-loader.js.map +0 -1
  328. package/dist/agents/agent-config-presets.d.ts +0 -10
  329. package/dist/agents/agent-config-presets.d.ts.map +0 -1
  330. package/dist/agents/agent-config-presets.js +0 -940
  331. package/dist/agents/agent-config-presets.js.map +0 -1
  332. package/dist/agents/agent-config-types.d.ts +0 -145
  333. package/dist/agents/agent-config-types.d.ts.map +0 -1
  334. package/dist/agents/agent-config-types.js +0 -12
  335. package/dist/agents/agent-config-types.js.map +0 -1
  336. package/dist/agents/agent-detection.d.ts +0 -35
  337. package/dist/agents/agent-detection.d.ts.map +0 -1
  338. package/dist/agents/agent-detection.js +0 -110
  339. package/dist/agents/agent-detection.js.map +0 -1
  340. package/dist/agents/aggregator.d.ts +0 -19
  341. package/dist/agents/aggregator.d.ts.map +0 -1
  342. package/dist/agents/aggregator.js +0 -141
  343. package/dist/agents/aggregator.js.map +0 -1
  344. package/dist/agents/cli-backend.d.ts +0 -32
  345. package/dist/agents/cli-backend.d.ts.map +0 -1
  346. package/dist/agents/cli-backend.js +0 -271
  347. package/dist/agents/cli-backend.js.map +0 -1
  348. package/dist/agents/council-types.d.ts +0 -115
  349. package/dist/agents/council-types.d.ts.map +0 -1
  350. package/dist/agents/council-types.js +0 -81
  351. package/dist/agents/council-types.js.map +0 -1
  352. package/dist/agents/council.d.ts +0 -112
  353. package/dist/agents/council.d.ts.map +0 -1
  354. package/dist/agents/council.js +0 -722
  355. package/dist/agents/council.js.map +0 -1
  356. package/dist/agents/decomposer.d.ts +0 -33
  357. package/dist/agents/decomposer.d.ts.map +0 -1
  358. package/dist/agents/decomposer.js +0 -138
  359. package/dist/agents/decomposer.js.map +0 -1
  360. package/dist/agents/dynamic-tools.d.ts +0 -52
  361. package/dist/agents/dynamic-tools.d.ts.map +0 -1
  362. package/dist/agents/dynamic-tools.js +0 -424
  363. package/dist/agents/dynamic-tools.js.map +0 -1
  364. package/dist/agents/index.d.ts +0 -29
  365. package/dist/agents/index.d.ts.map +0 -1
  366. package/dist/agents/index.js +0 -29
  367. package/dist/agents/index.js.map +0 -1
  368. package/dist/agents/installer.d.ts +0 -39
  369. package/dist/agents/installer.d.ts.map +0 -1
  370. package/dist/agents/installer.js +0 -205
  371. package/dist/agents/installer.js.map +0 -1
  372. package/dist/agents/orchestrator.d.ts +0 -106
  373. package/dist/agents/orchestrator.d.ts.map +0 -1
  374. package/dist/agents/orchestrator.js +0 -363
  375. package/dist/agents/orchestrator.js.map +0 -1
  376. package/dist/agents/sdk-backend.d.ts +0 -63
  377. package/dist/agents/sdk-backend.d.ts.map +0 -1
  378. package/dist/agents/sdk-backend.js +0 -489
  379. package/dist/agents/sdk-backend.js.map +0 -1
  380. package/dist/agents/swarm-types.d.ts +0 -84
  381. package/dist/agents/swarm-types.d.ts.map +0 -1
  382. package/dist/agents/swarm-types.js +0 -20
  383. package/dist/agents/swarm-types.js.map +0 -1
  384. package/dist/agents/swarm.d.ts +0 -79
  385. package/dist/agents/swarm.d.ts.map +0 -1
  386. package/dist/agents/swarm.js +0 -375
  387. package/dist/agents/swarm.js.map +0 -1
  388. package/dist/agents/tools.d.ts +0 -26
  389. package/dist/agents/tools.d.ts.map +0 -1
  390. package/dist/agents/tools.js +0 -776
  391. package/dist/agents/tools.js.map +0 -1
  392. package/dist/agents/types.d.ts +0 -108
  393. package/dist/agents/types.d.ts.map +0 -1
  394. package/dist/agents/types.js +0 -43
  395. package/dist/agents/types.js.map +0 -1
  396. package/dist/api-server.d.ts +0 -45
  397. package/dist/api-server.d.ts.map +0 -1
  398. package/dist/api-server.js +0 -326
  399. package/dist/api-server.js.map +0 -1
  400. package/dist/auto-checkpoint.d.ts +0 -35
  401. package/dist/auto-checkpoint.d.ts.map +0 -1
  402. package/dist/auto-checkpoint.js +0 -176
  403. package/dist/auto-checkpoint.js.map +0 -1
  404. package/dist/background-jobs.d.ts +0 -45
  405. package/dist/background-jobs.d.ts.map +0 -1
  406. package/dist/background-jobs.js +0 -127
  407. package/dist/background-jobs.js.map +0 -1
  408. package/dist/branching.d.ts +0 -56
  409. package/dist/branching.d.ts.map +0 -1
  410. package/dist/branching.js +0 -224
  411. package/dist/branching.js.map +0 -1
  412. package/dist/cli/agent.d.ts +0 -9
  413. package/dist/cli/agent.d.ts.map +0 -1
  414. package/dist/cli/agent.js +0 -330
  415. package/dist/cli/agent.js.map +0 -1
  416. package/dist/cli/commands.d.ts +0 -12
  417. package/dist/cli/commands.d.ts.map +0 -1
  418. package/dist/cli/commands.js +0 -1042
  419. package/dist/cli/commands.js.map +0 -1
  420. package/dist/cli/index.d.ts +0 -8
  421. package/dist/cli/index.d.ts.map +0 -1
  422. package/dist/cli/index.js +0 -268
  423. package/dist/cli/index.js.map +0 -1
  424. package/dist/cli/types.d.ts +0 -33
  425. package/dist/cli/types.d.ts.map +0 -1
  426. package/dist/cli/types.js +0 -21
  427. package/dist/cli/types.js.map +0 -1
  428. package/dist/companions.d.ts +0 -54
  429. package/dist/companions.d.ts.map +0 -1
  430. package/dist/companions.js +0 -440
  431. package/dist/companions.js.map +0 -1
  432. package/dist/file-watcher.d.ts +0 -91
  433. package/dist/file-watcher.d.ts.map +0 -1
  434. package/dist/file-watcher.js +0 -269
  435. package/dist/file-watcher.js.map +0 -1
  436. package/dist/hud/theme-packs/api.d.ts +0 -51
  437. package/dist/hud/theme-packs/api.d.ts.map +0 -1
  438. package/dist/hud/theme-packs/api.js +0 -145
  439. package/dist/hud/theme-packs/api.js.map +0 -1
  440. package/dist/hud/theme-packs/index.d.ts +0 -18
  441. package/dist/hud/theme-packs/index.d.ts.map +0 -1
  442. package/dist/hud/theme-packs/index.js +0 -38
  443. package/dist/hud/theme-packs/index.js.map +0 -1
  444. package/dist/hud/theme-packs/types.d.ts +0 -29
  445. package/dist/hud/theme-packs/types.d.ts.map +0 -1
  446. package/dist/hud/theme-packs/types.js +0 -9
  447. package/dist/hud/theme-packs/types.js.map +0 -1
  448. package/dist/idle-eviction.d.ts +0 -34
  449. package/dist/idle-eviction.d.ts.map +0 -1
  450. package/dist/idle-eviction.js +0 -85
  451. package/dist/idle-eviction.js.map +0 -1
  452. package/dist/model-router.d.ts +0 -67
  453. package/dist/model-router.d.ts.map +0 -1
  454. package/dist/model-router.js.map +0 -1
  455. package/dist/providers/openai-compat-shims.d.ts +0 -31
  456. package/dist/providers/openai-compat-shims.d.ts.map +0 -1
  457. package/dist/providers/openai-compat-shims.js +0 -179
  458. package/dist/providers/openai-compat-shims.js.map +0 -1
  459. package/dist/sandbox-native.d.ts.map +0 -1
  460. package/dist/sandbox-native.js.map +0 -1
  461. package/dist/sandbox.d.ts.map +0 -1
  462. package/dist/sandbox.js.map +0 -1
  463. package/dist/session-timeout.d.ts +0 -31
  464. package/dist/session-timeout.d.ts.map +0 -1
  465. package/dist/session-timeout.js +0 -100
  466. package/dist/session-timeout.js.map +0 -1
  467. package/dist/smart-router.d.ts +0 -73
  468. package/dist/smart-router.d.ts.map +0 -1
  469. package/dist/smart-router.js +0 -332
  470. package/dist/smart-router.js.map +0 -1
  471. package/dist/terminal-recording.d.ts +0 -55
  472. package/dist/terminal-recording.d.ts.map +0 -1
  473. package/dist/terminal-recording.js +0 -182
  474. package/dist/terminal-recording.js.map +0 -1
  475. package/dist/tmux.d.ts +0 -35
  476. package/dist/tmux.d.ts.map +0 -1
  477. package/dist/tmux.js +0 -106
  478. package/dist/tmux.js.map +0 -1
  479. package/dist/ui/modals.d.ts +0 -72
  480. package/dist/ui/modals.d.ts.map +0 -1
  481. package/dist/ui/modals.js +0 -266
  482. package/dist/ui/modals.js.map +0 -1
  483. package/dist/ui/pack-picker.d.ts +0 -12
  484. package/dist/ui/pack-picker.d.ts.map +0 -1
  485. package/dist/ui/pack-picker.js +0 -101
  486. package/dist/ui/pack-picker.js.map +0 -1
  487. package/dist/ui/theme-picker.d.ts +0 -24
  488. package/dist/ui/theme-picker.d.ts.map +0 -1
  489. package/dist/ui/theme-picker.js +0 -190
  490. package/dist/ui/theme-picker.js.map +0 -1
@@ -1,176 +0,0 @@
1
- /**
2
- * Auto-Checkpoint
3
- *
4
- * Automatically creates git commits before destructive tool calls
5
- * so the agent's changes can be easily reverted.
6
- *
7
- * Inspired by autoresearch's git-as-ledger pattern where every
8
- * experiment is a commit, making the full history auditable.
9
- */
10
- import { execFileSync } from 'child_process';
11
- // ============================================================================
12
- // Configuration
13
- // ============================================================================
14
- /** Tools that modify files and should trigger a checkpoint */
15
- const DESTRUCTIVE_TOOLS = new Set([
16
- 'write_file',
17
- 'shell', // only for certain commands
18
- ]);
19
- /** Shell commands that are destructive (write, delete, move) */
20
- const DESTRUCTIVE_SHELL_PATTERNS = [
21
- /\brm\b/,
22
- /\bmv\b/,
23
- /\bcp\b.*\s-[^-]*f/, // cp -f (force overwrite)
24
- /\bgit\s+(reset|checkout\s+--)\b/,
25
- /\bgit\s+clean\b/,
26
- /\bsed\s+-i\b/,
27
- />\s*\S/, // output redirection
28
- /\bdd\b/,
29
- /\btruncate\b/,
30
- ];
31
- // ============================================================================
32
- // State
33
- // ============================================================================
34
- let enabled = true;
35
- let lastCheckpointHash = null;
36
- /** Repo root the lastCheckpointHash belongs to — revert must target this, not live cwd. */
37
- let lastCheckpointRoot = null;
38
- let checkpointCount = 0;
39
- // ============================================================================
40
- // Public API
41
- // ============================================================================
42
- /**
43
- * Check if a tool call should trigger an auto-checkpoint.
44
- */
45
- export function shouldCheckpoint(tool, args) {
46
- if (!enabled)
47
- return false;
48
- if (!isGitRepo())
49
- return false;
50
- if (tool === 'write_file')
51
- return true;
52
- if (tool === 'shell') {
53
- const command = String(args.command || '');
54
- return DESTRUCTIVE_SHELL_PATTERNS.some(p => p.test(command));
55
- }
56
- return false;
57
- }
58
- /**
59
- * Create an auto-checkpoint commit with current staged + unstaged changes.
60
- * Returns the commit hash if successful, null if nothing to commit.
61
- */
62
- export function createCheckpoint(tool, args) {
63
- if (!isGitRepo())
64
- return null;
65
- try {
66
- // Capture the repo root once, at checkpoint time, and pin every git call for
67
- // this checkpoint to it. process.cwd() may change before the matching revert.
68
- const root = gitRepoRoot();
69
- if (!root)
70
- return null;
71
- // Check if there are any changes to commit
72
- const status = git(root, 'status', '--porcelain');
73
- if (!status.trim())
74
- return null; // Nothing to checkpoint
75
- // Stage all tracked changes (don't add untracked files)
76
- git(root, 'add', '-u');
77
- // Check if there's anything staged
78
- const staged = git(root, 'diff', '--cached', '--stat');
79
- if (!staged.trim())
80
- return null;
81
- // Create checkpoint commit
82
- const argSummary = tool === 'write_file'
83
- ? String(args.path || '')
84
- : tool === 'shell'
85
- ? String(args.command || '').substring(0, 50)
86
- : tool;
87
- const message = `[auto-checkpoint] before ${tool}: ${argSummary}`;
88
- git(root, 'commit', '-m', message, '--no-gpg-sign');
89
- // Get the commit hash
90
- const hash = git(root, 'rev-parse', '--short', 'HEAD').trim();
91
- lastCheckpointHash = hash;
92
- lastCheckpointRoot = root;
93
- checkpointCount++;
94
- return hash;
95
- }
96
- catch {
97
- // Checkpoint failed silently — don't block the agent
98
- return null;
99
- }
100
- }
101
- /**
102
- * Revert to the last checkpoint.
103
- */
104
- export function revertToLastCheckpoint() {
105
- if (!lastCheckpointHash || !lastCheckpointRoot)
106
- return false;
107
- // Reset only the repo the checkpoint was created in. If that root has since
108
- // moved or no longer resolves to the same repo, bail rather than risk a
109
- // destructive cross-repo `git reset --hard` against the live cwd.
110
- let currentRoot;
111
- try {
112
- currentRoot = gitRepoRoot(lastCheckpointRoot);
113
- }
114
- catch {
115
- return false;
116
- }
117
- if (currentRoot !== lastCheckpointRoot)
118
- return false;
119
- try {
120
- git(lastCheckpointRoot, 'reset', '--hard', lastCheckpointHash);
121
- return true;
122
- }
123
- catch {
124
- return false;
125
- }
126
- }
127
- /**
128
- * Get checkpoint stats.
129
- */
130
- export function getCheckpointStats() {
131
- return { enabled, count: checkpointCount, lastHash: lastCheckpointHash };
132
- }
133
- /**
134
- * Enable or disable auto-checkpointing.
135
- */
136
- export function setEnabled(value) {
137
- enabled = value;
138
- }
139
- // ============================================================================
140
- // Helpers
141
- // ============================================================================
142
- /**
143
- * Whether the given directory (default: live cwd) is inside a git work tree.
144
- * Not memoized: the answer depends on cwd, which changes over a session.
145
- */
146
- function isGitRepo(cwd = process.cwd()) {
147
- try {
148
- git(cwd, 'rev-parse', '--is-inside-work-tree');
149
- return true;
150
- }
151
- catch {
152
- return false;
153
- }
154
- }
155
- /**
156
- * Resolve the absolute repo root for the given directory (default: live cwd).
157
- * Returns null if not inside a git work tree.
158
- */
159
- function gitRepoRoot(cwd = process.cwd()) {
160
- try {
161
- const root = git(cwd, 'rev-parse', '--show-toplevel').trim();
162
- return root || null;
163
- }
164
- catch {
165
- return null;
166
- }
167
- }
168
- function git(cwd, ...args) {
169
- return execFileSync('git', args, {
170
- cwd,
171
- encoding: 'utf-8',
172
- timeout: 5000,
173
- stdio: ['pipe', 'pipe', 'pipe'],
174
- });
175
- }
176
- //# sourceMappingURL=auto-checkpoint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-checkpoint.js","sourceRoot":"","sources":["../src/auto-checkpoint.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
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
@@ -1 +0,0 @@
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,CAgCxB;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"}
@@ -1,127 +0,0 @@
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
- if (controller.signal.aborted) {
38
- job.status = 'cancelled';
39
- }
40
- else {
41
- job.status = 'completed';
42
- job.result = result;
43
- job.iterations = iterations;
44
- }
45
- }
46
- catch (err) {
47
- if (controller.signal.aborted) {
48
- job.status = 'cancelled';
49
- }
50
- else {
51
- job.status = 'failed';
52
- job.error = err instanceof Error ? err.message : String(err);
53
- }
54
- }
55
- finally {
56
- job.completedAt = new Date().toISOString();
57
- jobRunners.delete(id);
58
- }
59
- return job;
60
- }
61
- /** Cancel a running job */
62
- export function cancelJob(id) {
63
- const controller = jobRunners.get(id);
64
- if (controller) {
65
- controller.abort();
66
- return true;
67
- }
68
- const job = jobs.get(id);
69
- if (job && job.status === 'pending') {
70
- job.status = 'cancelled';
71
- job.completedAt = new Date().toISOString();
72
- return true;
73
- }
74
- return false;
75
- }
76
- /** Get a specific job */
77
- export function getJob(id) {
78
- return jobs.get(id);
79
- }
80
- /** List all jobs, optionally filtered by status */
81
- export function listJobs(statusFilter) {
82
- const all = Array.from(jobs.values());
83
- if (statusFilter)
84
- return all.filter(j => j.status === statusFilter);
85
- return all.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
86
- }
87
- /** Get count of active (pending + running) jobs */
88
- export function activeJobCount() {
89
- return Array.from(jobs.values()).filter(j => j.status === 'pending' || j.status === 'running').length;
90
- }
91
- /** Clear completed/failed/cancelled jobs */
92
- export function clearFinishedJobs() {
93
- let cleared = 0;
94
- for (const [id, job] of jobs) {
95
- if (job.status === 'completed' || job.status === 'failed' || job.status === 'cancelled') {
96
- jobs.delete(id);
97
- cleared++;
98
- }
99
- }
100
- return cleared;
101
- }
102
- /** Format job for display */
103
- export function formatJob(job) {
104
- const statusIcons = {
105
- pending: '⏳',
106
- running: '🔄',
107
- completed: '✅',
108
- failed: '❌',
109
- cancelled: '🚫',
110
- };
111
- const icon = statusIcons[job.status];
112
- const prompt = job.prompt.length > 60 ? job.prompt.slice(0, 57) + '...' : job.prompt;
113
- let line = `${icon} ${job.id}: ${prompt} [${job.status}]`;
114
- if (job.iterations > 0)
115
- line += ` (${job.iterations} iterations)`;
116
- if (job.error)
117
- line += `\n Error: ${job.error}`;
118
- return line;
119
- }
120
- /** Format jobs list for display */
121
- export function formatJobsList() {
122
- const all = listJobs();
123
- if (all.length === 0)
124
- return 'No background jobs.';
125
- return all.map(formatJob).join('\n');
126
- }
127
- //# sourceMappingURL=background-jobs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-jobs.js","sourceRoot":"","sources":["../src/background-jobs.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- /**
2
- * Calliope CLI - Conversation Branching
3
- *
4
- * Fork conversations to try different approaches.
5
- * Supports creating, switching, and merging branches.
6
- */
7
- import type { Message as LLMMessage } from './types.js';
8
- export interface Branch {
9
- id: string;
10
- name: string;
11
- parentId: string | null;
12
- parentMessageIndex: number;
13
- createdAt: string;
14
- description?: string;
15
- }
16
- export interface BranchState {
17
- currentBranch: string;
18
- branches: Record<string, Branch>;
19
- }
20
- /**
21
- * Load branch state for a session
22
- */
23
- export declare function loadBranchState(sessionId: string): BranchState;
24
- /**
25
- * Save branch state
26
- */
27
- export declare function saveBranchState(sessionId: string, state: BranchState): void;
28
- /**
29
- * Create a new branch from current position
30
- */
31
- export declare function createBranch(sessionId: string, name: string, messages: LLMMessage[], description?: string): Branch;
32
- /**
33
- * Switch to a different branch
34
- */
35
- export declare function switchBranch(sessionId: string, branchIdOrName: string, currentMessages: LLMMessage[]): LLMMessage[] | null;
36
- /**
37
- * List all branches
38
- */
39
- export declare function listBranches(sessionId: string): Branch[];
40
- /**
41
- * Get current branch
42
- */
43
- export declare function getCurrentBranch(sessionId: string): Branch;
44
- /**
45
- * Delete a branch
46
- */
47
- export declare function deleteBranch(sessionId: string, branchIdOrName: string): boolean;
48
- /**
49
- * Rename a branch
50
- */
51
- export declare function renameBranch(sessionId: string, branchIdOrName: string, newName: string): boolean;
52
- /**
53
- * Get branch tree for display
54
- */
55
- export declare function getBranchTree(sessionId: string): string;
56
- //# sourceMappingURL=branching.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"branching.d.ts","sourceRoot":"","sources":["../src/branching.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AA4BD;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAuB9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAY3E;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,UAAU,EAAE,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CA4BR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,UAAU,EAAE,GAC5B,UAAU,EAAE,GAAG,IAAI,CAqBrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAwB/E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAYT;AA8BD;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2BvD"}
package/dist/branching.js DELETED
@@ -1,224 +0,0 @@
1
- /**
2
- * Calliope CLI - Conversation Branching
3
- *
4
- * Fork conversations to try different approaches.
5
- * Supports creating, switching, and merging branches.
6
- */
7
- import * as fs from 'fs';
8
- import * as path from 'path';
9
- import * as os from 'os';
10
- // ============================================================================
11
- // Paths
12
- // ============================================================================
13
- const BRANCHES_DIR = path.join(os.homedir(), '.calliope-cli', 'branches');
14
- function ensureBranchesDir(sessionId) {
15
- const dir = path.join(BRANCHES_DIR, sessionId);
16
- if (!fs.existsSync(dir)) {
17
- fs.mkdirSync(dir, { recursive: true });
18
- }
19
- return dir;
20
- }
21
- function getStateFile(sessionId) {
22
- return path.join(ensureBranchesDir(sessionId), 'state.json');
23
- }
24
- function getBranchFile(sessionId, branchId) {
25
- return path.join(ensureBranchesDir(sessionId), `${branchId}.jsonl`);
26
- }
27
- // ============================================================================
28
- // State Management
29
- // ============================================================================
30
- /**
31
- * Load branch state for a session
32
- */
33
- export function loadBranchState(sessionId) {
34
- const stateFile = getStateFile(sessionId);
35
- if (fs.existsSync(stateFile)) {
36
- try {
37
- return JSON.parse(fs.readFileSync(stateFile, 'utf-8'));
38
- }
39
- catch {
40
- // Fall through to default
41
- }
42
- }
43
- // Default state with main branch
44
- return {
45
- currentBranch: 'main',
46
- branches: {
47
- main: {
48
- id: 'main',
49
- name: 'main',
50
- parentId: null,
51
- parentMessageIndex: 0,
52
- createdAt: new Date().toISOString(),
53
- },
54
- },
55
- };
56
- }
57
- /**
58
- * Save branch state
59
- */
60
- export function saveBranchState(sessionId, state) {
61
- const stateFile = getStateFile(sessionId);
62
- // Atomic write: a crash or concurrent instance must never leave a truncated
63
- // branch-state file (readers fall back to defaults on parse error).
64
- const tmp = `${stateFile}.${process.pid}.${Date.now()}.tmp`;
65
- try {
66
- fs.writeFileSync(tmp, JSON.stringify(state, null, 2));
67
- fs.renameSync(tmp, stateFile);
68
- }
69
- catch (e) {
70
- try {
71
- fs.unlinkSync(tmp);
72
- }
73
- catch { /* best effort */ }
74
- throw e;
75
- }
76
- }
77
- // ============================================================================
78
- // Branch Operations
79
- // ============================================================================
80
- /**
81
- * Create a new branch from current position
82
- */
83
- export function createBranch(sessionId, name, messages, description) {
84
- const state = loadBranchState(sessionId);
85
- // Generate unique ID
86
- const id = `branch_${Date.now()}_${Math.random().toString(36).slice(2, 6)}`;
87
- // Create branch
88
- const branch = {
89
- id,
90
- name,
91
- parentId: state.currentBranch,
92
- parentMessageIndex: messages.length,
93
- createdAt: new Date().toISOString(),
94
- description,
95
- };
96
- // Save current messages to parent branch
97
- saveBranchMessages(sessionId, state.currentBranch, messages);
98
- // Copy messages to new branch
99
- saveBranchMessages(sessionId, id, messages);
100
- // Update state
101
- state.branches[id] = branch;
102
- state.currentBranch = id;
103
- saveBranchState(sessionId, state);
104
- return branch;
105
- }
106
- /**
107
- * Switch to a different branch
108
- */
109
- export function switchBranch(sessionId, branchIdOrName, currentMessages) {
110
- const state = loadBranchState(sessionId);
111
- // Find branch by ID or name
112
- const branch = Object.values(state.branches).find(b => b.id === branchIdOrName || b.name === branchIdOrName);
113
- if (!branch)
114
- return null;
115
- // Save current branch messages
116
- saveBranchMessages(sessionId, state.currentBranch, currentMessages);
117
- // Load target branch messages
118
- const messages = loadBranchMessages(sessionId, branch.id);
119
- // Update state
120
- state.currentBranch = branch.id;
121
- saveBranchState(sessionId, state);
122
- return messages;
123
- }
124
- /**
125
- * List all branches
126
- */
127
- export function listBranches(sessionId) {
128
- const state = loadBranchState(sessionId);
129
- return Object.values(state.branches).sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
130
- }
131
- /**
132
- * Get current branch
133
- */
134
- export function getCurrentBranch(sessionId) {
135
- const state = loadBranchState(sessionId);
136
- return state.branches[state.currentBranch];
137
- }
138
- /**
139
- * Delete a branch
140
- */
141
- export function deleteBranch(sessionId, branchIdOrName) {
142
- const state = loadBranchState(sessionId);
143
- // Find branch
144
- const branch = Object.values(state.branches).find(b => b.id === branchIdOrName || b.name === branchIdOrName);
145
- if (!branch || branch.id === 'main')
146
- return false;
147
- // Can't delete current branch
148
- if (state.currentBranch === branch.id)
149
- return false;
150
- // Delete branch file
151
- const branchFile = getBranchFile(sessionId, branch.id);
152
- if (fs.existsSync(branchFile)) {
153
- fs.unlinkSync(branchFile);
154
- }
155
- // Remove from state
156
- delete state.branches[branch.id];
157
- saveBranchState(sessionId, state);
158
- return true;
159
- }
160
- /**
161
- * Rename a branch
162
- */
163
- export function renameBranch(sessionId, branchIdOrName, newName) {
164
- const state = loadBranchState(sessionId);
165
- const branch = Object.values(state.branches).find(b => b.id === branchIdOrName || b.name === branchIdOrName);
166
- if (!branch)
167
- return false;
168
- branch.name = newName;
169
- saveBranchState(sessionId, state);
170
- return true;
171
- }
172
- // ============================================================================
173
- // Message Storage
174
- // ============================================================================
175
- /**
176
- * Save messages to branch file (JSONL format)
177
- */
178
- function saveBranchMessages(sessionId, branchId, messages) {
179
- const file = getBranchFile(sessionId, branchId);
180
- const content = messages.map(m => JSON.stringify(m)).join('\n');
181
- fs.writeFileSync(file, content);
182
- }
183
- /**
184
- * Load messages from branch file
185
- */
186
- function loadBranchMessages(sessionId, branchId) {
187
- const file = getBranchFile(sessionId, branchId);
188
- if (!fs.existsSync(file))
189
- return [];
190
- try {
191
- const content = fs.readFileSync(file, 'utf-8');
192
- return content.split('\n').filter(Boolean).map(line => JSON.parse(line));
193
- }
194
- catch {
195
- return [];
196
- }
197
- }
198
- /**
199
- * Get branch tree for display
200
- */
201
- export function getBranchTree(sessionId) {
202
- const state = loadBranchState(sessionId);
203
- const branches = Object.values(state.branches);
204
- const lines = [];
205
- function addBranch(branch, indent, isLast) {
206
- const prefix = isLast ? '└── ' : '├── ';
207
- const current = branch.id === state.currentBranch ? ' *' : '';
208
- const desc = branch.description ? ` (${branch.description})` : '';
209
- lines.push(`${indent}${prefix}${branch.name}${current}${desc}`);
210
- // Find children
211
- const children = branches.filter(b => b.parentId === branch.id);
212
- const childIndent = indent + (isLast ? ' ' : '│ ');
213
- children.forEach((child, i) => {
214
- addBranch(child, childIndent, i === children.length - 1);
215
- });
216
- }
217
- // Start with main branch
218
- const main = branches.find(b => b.id === 'main');
219
- if (main) {
220
- addBranch(main, '', true);
221
- }
222
- return lines.join('\n');
223
- }
224
- //# sourceMappingURL=branching.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"branching.js","sourceRoot":"","sources":["../src/branching.ts"],"names":[],"mappings":"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"}