@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,73 +0,0 @@
1
- /**
2
- * Smart Router - Cross-Provider Model Selection
3
- *
4
- * Analyzes each prompt's task type and routes to the best model
5
- * across all configured providers. Unlike autoRoute (single-provider
6
- * tier selection), smart routing considers strength matrices across
7
- * provider boundaries.
8
- *
9
- * Pure functions, no API calls - easy to test.
10
- */
11
- import type { LLMProvider } from './types.js';
12
- import { type TaskComplexity } from './model-router.js';
13
- export type TaskType = 'code' | 'research' | 'creative' | 'analysis' | 'simple-qa' | 'general';
14
- export interface SmartRouteCandidate {
15
- provider: LLMProvider;
16
- model: string;
17
- tier: 'fast' | 'balanced' | 'smart';
18
- score: number;
19
- reason: string;
20
- }
21
- export interface SmartRouteDecision {
22
- selected: SmartRouteCandidate;
23
- alternatives: SmartRouteCandidate[];
24
- taskType: TaskType;
25
- complexity: TaskComplexity;
26
- confidence: number;
27
- }
28
- export interface SmartRoutingConfig {
29
- enabled: boolean;
30
- providerPool: LLMProvider[];
31
- costSensitivity: number;
32
- preferredProviders: LLMProvider[];
33
- }
34
- interface ModelInfo {
35
- model: string;
36
- costPer1kInput: number;
37
- costPer1kOutput: number;
38
- }
39
- interface ProviderStrengths {
40
- tiers: Record<'fast' | 'balanced' | 'smart', ModelInfo>;
41
- strengths: Record<TaskType, number>;
42
- }
43
- export declare const MODEL_STRENGTHS: Partial<Record<LLMProvider, ProviderStrengths>>;
44
- /**
45
- * Detect the task type from a user message.
46
- */
47
- export declare function detectTaskType(message: string): {
48
- taskType: TaskType;
49
- confidence: number;
50
- signals: string[];
51
- };
52
- /**
53
- * Route to the best model across all configured providers.
54
- *
55
- * Algorithm:
56
- * 1. analyzeComplexity() → tier (fast/balanced/smart)
57
- * 2. detectTaskType() → task type
58
- * 3. Score each (provider, tier) pair:
59
- * score = strength * (1 - costWeight) + costEfficiency * costWeight
60
- * 4. Return best candidate + alternatives
61
- */
62
- export declare function smartRoute(message: string, routingConfig: SmartRoutingConfig, context?: {
63
- messageCount?: number;
64
- hasCode?: boolean;
65
- fileCount?: number;
66
- toolsUsed?: string[];
67
- }): SmartRouteDecision;
68
- /**
69
- * Get default smart routing config.
70
- */
71
- export declare function getDefaultSmartRoutingConfig(): SmartRoutingConfig;
72
- export {};
73
- //# sourceMappingURL=smart-router.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-router.d.ts","sourceRoot":"","sources":["../src/smart-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAO3E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,WAAW,EAAE,CAAC;CACnC;AAMD,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAwI3E,CAAC;AAsCF;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA0C7G;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,kBAAkB,EACjC,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GACA,kBAAkB,CA+EpB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,kBAAkB,CAOjE"}
@@ -1,332 +0,0 @@
1
- /**
2
- * Smart Router - Cross-Provider Model Selection
3
- *
4
- * Analyzes each prompt's task type and routes to the best model
5
- * across all configured providers. Unlike autoRoute (single-provider
6
- * tier selection), smart routing considers strength matrices across
7
- * provider boundaries.
8
- *
9
- * Pure functions, no API calls - easy to test.
10
- */
11
- import { analyzeComplexity } from './model-router.js';
12
- import { getConfiguredProviders } from './config.js';
13
- export const MODEL_STRENGTHS = {
14
- anthropic: {
15
- tiers: {
16
- fast: { model: 'claude-haiku-4-5', costPer1kInput: 0.001, costPer1kOutput: 0.005 },
17
- balanced: { model: 'claude-sonnet-4-6', costPer1kInput: 0.003, costPer1kOutput: 0.015 },
18
- smart: { model: 'claude-opus-4-8', costPer1kInput: 0.005, costPer1kOutput: 0.025 },
19
- },
20
- strengths: {
21
- 'code': 0.95,
22
- 'research': 0.85,
23
- 'creative': 0.90,
24
- 'analysis': 0.90,
25
- 'simple-qa': 0.80,
26
- 'general': 0.90,
27
- },
28
- },
29
- openai: {
30
- tiers: {
31
- fast: { model: 'gpt-4o-mini', costPer1kInput: 0.00015, costPer1kOutput: 0.0006 },
32
- balanced: { model: 'gpt-4o', costPer1kInput: 0.0025, costPer1kOutput: 0.01 },
33
- smart: { model: 'o1', costPer1kInput: 0.015, costPer1kOutput: 0.06 },
34
- },
35
- strengths: {
36
- 'code': 0.90,
37
- 'research': 0.85,
38
- 'creative': 0.85,
39
- 'analysis': 0.90,
40
- 'simple-qa': 0.85,
41
- 'general': 0.88,
42
- },
43
- },
44
- google: {
45
- tiers: {
46
- fast: { model: 'gemini-2.0-flash', costPer1kInput: 0.000075, costPer1kOutput: 0.0003 },
47
- balanced: { model: 'gemini-1.5-pro', costPer1kInput: 0.00125, costPer1kOutput: 0.005 },
48
- smart: { model: 'gemini-1.5-pro', costPer1kInput: 0.00125, costPer1kOutput: 0.005 },
49
- },
50
- strengths: {
51
- 'code': 0.80,
52
- 'research': 0.90,
53
- 'creative': 0.80,
54
- 'analysis': 0.85,
55
- 'simple-qa': 0.90,
56
- 'general': 0.85,
57
- },
58
- },
59
- groq: {
60
- tiers: {
61
- fast: { model: 'llama-3.1-8b-instant', costPer1kInput: 0.00005, costPer1kOutput: 0.00008 },
62
- balanced: { model: 'llama-3.3-70b-versatile', costPer1kInput: 0.00059, costPer1kOutput: 0.00079 },
63
- smart: { model: 'llama-3.3-70b-versatile', costPer1kInput: 0.00059, costPer1kOutput: 0.00079 },
64
- },
65
- strengths: {
66
- 'code': 0.70,
67
- 'research': 0.65,
68
- 'creative': 0.65,
69
- 'analysis': 0.65,
70
- 'simple-qa': 0.80,
71
- 'general': 0.70,
72
- },
73
- },
74
- together: {
75
- tiers: {
76
- fast: { model: 'meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo', costPer1kInput: 0.00018, costPer1kOutput: 0.00018 },
77
- balanced: { model: 'meta-llama/Llama-3.3-70B-Instruct-Turbo', costPer1kInput: 0.00088, costPer1kOutput: 0.00088 },
78
- smart: { model: 'meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo', costPer1kInput: 0.003, costPer1kOutput: 0.003 },
79
- },
80
- strengths: {
81
- 'code': 0.75,
82
- 'research': 0.70,
83
- 'creative': 0.70,
84
- 'analysis': 0.70,
85
- 'simple-qa': 0.80,
86
- 'general': 0.72,
87
- },
88
- },
89
- openrouter: {
90
- tiers: {
91
- fast: { model: 'anthropic/claude-3.5-haiku', costPer1kInput: 0.0008, costPer1kOutput: 0.004 },
92
- balanced: { model: 'anthropic/claude-sonnet-4', costPer1kInput: 0.003, costPer1kOutput: 0.015 },
93
- smart: { model: 'anthropic/claude-opus-4', costPer1kInput: 0.015, costPer1kOutput: 0.075 },
94
- },
95
- strengths: {
96
- 'code': 0.93,
97
- 'research': 0.83,
98
- 'creative': 0.88,
99
- 'analysis': 0.88,
100
- 'simple-qa': 0.78,
101
- 'general': 0.88,
102
- },
103
- },
104
- fireworks: {
105
- tiers: {
106
- fast: { model: 'accounts/fireworks/models/llama-v3p1-8b-instruct', costPer1kInput: 0.0002, costPer1kOutput: 0.0002 },
107
- balanced: { model: 'accounts/fireworks/models/llama-v3p1-70b-instruct', costPer1kInput: 0.0009, costPer1kOutput: 0.0009 },
108
- smart: { model: 'accounts/fireworks/models/llama-v3p1-405b-instruct', costPer1kInput: 0.003, costPer1kOutput: 0.003 },
109
- },
110
- strengths: {
111
- 'code': 0.73,
112
- 'research': 0.68,
113
- 'creative': 0.68,
114
- 'analysis': 0.68,
115
- 'simple-qa': 0.78,
116
- 'general': 0.70,
117
- },
118
- },
119
- mistral: {
120
- tiers: {
121
- fast: { model: 'mistral-small-latest', costPer1kInput: 0.001, costPer1kOutput: 0.003 },
122
- balanced: { model: 'mistral-large-latest', costPer1kInput: 0.003, costPer1kOutput: 0.009 },
123
- smart: { model: 'mistral-large-latest', costPer1kInput: 0.003, costPer1kOutput: 0.009 },
124
- },
125
- strengths: {
126
- 'code': 0.78,
127
- 'research': 0.75,
128
- 'creative': 0.75,
129
- 'analysis': 0.78,
130
- 'simple-qa': 0.82,
131
- 'general': 0.78,
132
- },
133
- },
134
- ollama: {
135
- tiers: {
136
- fast: { model: 'llama3.1:8b', costPer1kInput: 0, costPer1kOutput: 0 },
137
- balanced: { model: 'llama3.3', costPer1kInput: 0, costPer1kOutput: 0 },
138
- smart: { model: 'llama3.3', costPer1kInput: 0, costPer1kOutput: 0 },
139
- },
140
- strengths: {
141
- 'code': 0.65,
142
- 'research': 0.60,
143
- 'creative': 0.60,
144
- 'analysis': 0.60,
145
- 'simple-qa': 0.75,
146
- 'general': 0.65,
147
- },
148
- },
149
- };
150
- // ============================================================================
151
- // Task Type Detection
152
- // ============================================================================
153
- const TASK_TYPE_PATTERNS = {
154
- 'code': [
155
- /\b(implement|refactor|bug|fix|debug|code|function|class|method|module)\b/i,
156
- /\b(typescript|javascript|python|rust|java|go|ruby|c\+\+)\b/i,
157
- /\.(ts|js|tsx|jsx|py|rs|go|java|rb|cpp|c|h|css|html|sql)\b/,
158
- /```[\s\S]*```/,
159
- /\b(npm|pip|cargo|maven|yarn|pnpm|git)\b/i,
160
- /\b(compile|build|test|lint|deploy)\b/i,
161
- ],
162
- 'research': [
163
- /\b(explain|compare|documentation|how\s+does|what\s+is|describe|overview)\b/i,
164
- /\b(research|investigate|look\s+into|find\s+out|summarize)\b/i,
165
- /\b(pros\s+and\s+cons|tradeoffs?|trade-offs?|differences?\s+between)\b/i,
166
- ],
167
- 'creative': [
168
- /\b(write|story|brainstorm|imagine|creative|poem|narrative)\b/i,
169
- /\b(generate|compose|craft|design|invent|create\s+a)\b/i,
170
- /\b(naming|tagline|slogan|pitch|headline)\b/i,
171
- ],
172
- 'analysis': [
173
- /\b(analyze|review|audit|evaluate|assess|inspect)\b/i,
174
- /\b(metrics|performance|benchmark|profil|optimize)\b/i,
175
- /\b(security|vulnerability|risk|compliance)\b/i,
176
- /\b(data|statistics|trends|patterns|correlat)\b/i,
177
- ],
178
- 'simple-qa': [
179
- /^.{0,80}$/, // Very short messages
180
- /^(what|who|when|where|why|how|is|are|do|does|can|could|will|would)\b/i,
181
- /\?$/,
182
- ],
183
- };
184
- /**
185
- * Detect the task type from a user message.
186
- */
187
- export function detectTaskType(message) {
188
- const scores = {
189
- 'code': 0,
190
- 'research': 0,
191
- 'creative': 0,
192
- 'analysis': 0,
193
- 'simple-qa': 0,
194
- 'general': 0,
195
- };
196
- const signals = [];
197
- for (const [type, patterns] of Object.entries(TASK_TYPE_PATTERNS)) {
198
- if (!patterns)
199
- continue;
200
- for (const pattern of patterns) {
201
- if (pattern.test(message)) {
202
- scores[type] += 1;
203
- if (scores[type] === 1) {
204
- signals.push(type);
205
- }
206
- }
207
- }
208
- }
209
- // Find highest scoring type
210
- let bestType = 'general';
211
- let bestScore = 0;
212
- for (const [type, score] of Object.entries(scores)) {
213
- if (score > bestScore) {
214
- bestScore = score;
215
- bestType = type;
216
- }
217
- }
218
- // If simple-qa is the only match but it's a short question, keep it
219
- // If code or analysis also matches, those take priority
220
- if (bestType === 'simple-qa' && scores['code'] > 0)
221
- bestType = 'code';
222
- if (bestType === 'simple-qa' && scores['analysis'] > 0)
223
- bestType = 'analysis';
224
- if (bestType === 'simple-qa' && scores['research'] > 0)
225
- bestType = 'research';
226
- const confidence = bestScore > 0 ? Math.min(0.95, 0.5 + bestScore * 0.15) : 0.3;
227
- return { taskType: bestType, confidence, signals };
228
- }
229
- // ============================================================================
230
- // Cost Efficiency
231
- // ============================================================================
232
- function costEfficiency(info) {
233
- const avgCost = (info.costPer1kInput + info.costPer1kOutput) / 2;
234
- if (avgCost === 0)
235
- return 1.0; // Free (local) = max efficiency
236
- // Normalize: lower cost = higher efficiency. Cap at 1.0
237
- return Math.min(1.0, 0.01 / avgCost);
238
- }
239
- // ============================================================================
240
- // Smart Routing
241
- // ============================================================================
242
- /**
243
- * Route to the best model across all configured providers.
244
- *
245
- * Algorithm:
246
- * 1. analyzeComplexity() → tier (fast/balanced/smart)
247
- * 2. detectTaskType() → task type
248
- * 3. Score each (provider, tier) pair:
249
- * score = strength * (1 - costWeight) + costEfficiency * costWeight
250
- * 4. Return best candidate + alternatives
251
- */
252
- export function smartRoute(message, routingConfig, context) {
253
- // Step 1: Determine complexity → tier
254
- const { complexity, confidence: complexityConfidence } = analyzeComplexity(message, context);
255
- let tier;
256
- switch (complexity) {
257
- case 'trivial':
258
- case 'simple':
259
- tier = 'fast';
260
- break;
261
- case 'moderate':
262
- tier = 'balanced';
263
- break;
264
- case 'complex':
265
- case 'expert':
266
- tier = 'smart';
267
- break;
268
- }
269
- // Step 2: Detect task type
270
- const { taskType, confidence: typeConfidence } = detectTaskType(message);
271
- // Step 3: Score each (provider, tier) pair
272
- const pool = routingConfig.providerPool.length > 0
273
- ? routingConfig.providerPool
274
- : getConfiguredProviders();
275
- const costWeight = routingConfig.costSensitivity;
276
- const candidates = [];
277
- for (const provider of pool) {
278
- const strengths = MODEL_STRENGTHS[provider];
279
- if (!strengths)
280
- continue;
281
- const modelInfo = strengths.tiers[tier];
282
- const taskStrength = strengths.strengths[taskType] ?? 0.5;
283
- const efficiency = costEfficiency(modelInfo);
284
- const score = taskStrength * (1 - costWeight) + efficiency * costWeight;
285
- // Preference bonus for preferred providers (small tie-breaker)
286
- const preferenceBonus = routingConfig.preferredProviders.includes(provider) ? 0.01 : 0;
287
- candidates.push({
288
- provider,
289
- model: modelInfo.model,
290
- tier,
291
- score: score + preferenceBonus,
292
- reason: `${taskType}/${complexity} - strength ${(taskStrength * 100).toFixed(0)}%, cost efficiency ${(efficiency * 100).toFixed(0)}%`,
293
- });
294
- }
295
- // Sort by score descending
296
- candidates.sort((a, b) => b.score - a.score);
297
- // If no candidates found, return a fallback
298
- if (candidates.length === 0) {
299
- return {
300
- selected: {
301
- provider: 'anthropic',
302
- model: 'claude-sonnet-4-6',
303
- tier,
304
- score: 0.5,
305
- reason: 'fallback - no providers available',
306
- },
307
- alternatives: [],
308
- taskType,
309
- complexity,
310
- confidence: Math.min(complexityConfidence, typeConfidence),
311
- };
312
- }
313
- return {
314
- selected: candidates[0],
315
- alternatives: candidates.slice(1),
316
- taskType,
317
- complexity,
318
- confidence: Math.min(complexityConfidence, typeConfidence),
319
- };
320
- }
321
- /**
322
- * Get default smart routing config.
323
- */
324
- export function getDefaultSmartRoutingConfig() {
325
- return {
326
- enabled: false,
327
- providerPool: [],
328
- costSensitivity: 0.3,
329
- preferredProviders: [],
330
- };
331
- }
332
- //# sourceMappingURL=smart-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-router.js","sourceRoot":"","sources":["../src/smart-router.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Calliope CLI - Terminal Recording & Playback
3
- *
4
- * Record session events (user input, assistant output, tool calls/results)
5
- * with timestamps for replay, review, and debugging.
6
- */
7
- export interface RecordingEvent {
8
- type: 'input' | 'output' | 'tool_call' | 'tool_result' | 'system' | 'error';
9
- timestamp: number;
10
- data: string;
11
- metadata?: Record<string, unknown>;
12
- }
13
- export interface Recording {
14
- id: string;
15
- startTime: string;
16
- endTime?: string;
17
- events: RecordingEvent[];
18
- metadata: {
19
- provider?: string;
20
- model?: string;
21
- cwd?: string;
22
- version?: string;
23
- };
24
- }
25
- /** Enable or disable recording globally */
26
- export declare function setRecordingEnabled(enabled: boolean): void;
27
- /** Check if recording is enabled */
28
- export declare function isRecordingEnabled(): boolean;
29
- /** Start a new recording. Returns id, or null if recording is disabled. */
30
- export declare function startRecording(metadata?: Recording['metadata']): string | null;
31
- /** Stop active recording and save to disk */
32
- export declare function stopRecording(): Recording | null;
33
- /** Record an event */
34
- export declare function recordEvent(type: RecordingEvent['type'], data: string, metadata?: Record<string, unknown>): void;
35
- /** Check if recording is active */
36
- export declare function isRecording(): boolean;
37
- /** Get active recording ID */
38
- export declare function getActiveRecordingId(): string | null;
39
- /** List saved recordings */
40
- export declare function listRecordings(): Array<{
41
- id: string;
42
- startTime: string;
43
- eventCount: number;
44
- duration: number;
45
- }>;
46
- /** Load a recording by ID */
47
- export declare function loadRecording(id: string): Recording | null;
48
- /** Delete a recording */
49
- export declare function deleteRecording(id: string): boolean;
50
- /** Format recording for display (text playback) */
51
- export declare function formatRecording(recording: Recording): string;
52
- export declare function setRetentionDays(days: number): void;
53
- /** Clean up old recordings (older than retentionDays) */
54
- export declare function cleanupRecordings(retentionDays?: number): number;
55
- //# sourceMappingURL=terminal-recording.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-recording.d.ts","sourceRoot":"","sources":["../src/terminal-recording.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAiBD,2CAA2C;AAC3C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE1D;AAED,oCAAoC;AACpC,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,IAAI,CAiB9E;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,IAAI,SAAS,GAAG,IAAI,CAYhD;AAED,sBAAsB;AACtB,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAQhH;AAED,mCAAmC;AACnC,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,4BAA4B;AAC5B,wBAAgB,cAAc,IAAI,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/G;AAED,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAK1D;AAED,yBAAyB;AACzB,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMnD;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CA+B5D;AAWD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,aAAa,SAAsB,GAAG,MAAM,CAc7E"}
@@ -1,182 +0,0 @@
1
- /**
2
- * Calliope CLI - Terminal Recording & Playback
3
- *
4
- * Record session events (user input, assistant output, tool calls/results)
5
- * with timestamps for replay, review, and debugging.
6
- */
7
- import * as fs from 'fs';
8
- import * as path from 'path';
9
- // Recording state
10
- let activeRecording = null;
11
- let recordingStartMs = 0;
12
- let recordingEnabled = true;
13
- // Storage directory
14
- function getRecordingsDir() {
15
- const home = process.env.HOME || '/tmp';
16
- const dir = path.join(home, '.calliope-cli', 'recordings');
17
- if (!fs.existsSync(dir)) {
18
- fs.mkdirSync(dir, { recursive: true });
19
- }
20
- return dir;
21
- }
22
- /** Enable or disable recording globally */
23
- export function setRecordingEnabled(enabled) {
24
- recordingEnabled = enabled;
25
- }
26
- /** Check if recording is enabled */
27
- export function isRecordingEnabled() {
28
- return recordingEnabled;
29
- }
30
- /** Start a new recording. Returns id, or null if recording is disabled. */
31
- export function startRecording(metadata) {
32
- if (!recordingEnabled)
33
- return null;
34
- // Auto-rotate only if retention is explicitly configured
35
- if (retentionDaysConfig > 0) {
36
- cleanupRecordings();
37
- }
38
- const id = `rec-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
39
- activeRecording = {
40
- id,
41
- startTime: new Date().toISOString(),
42
- events: [],
43
- metadata: metadata || {},
44
- };
45
- recordingStartMs = Date.now();
46
- return id;
47
- }
48
- /** Stop active recording and save to disk */
49
- export function stopRecording() {
50
- if (!activeRecording)
51
- return null;
52
- activeRecording.endTime = new Date().toISOString();
53
- const recording = { ...activeRecording };
54
- // Save to disk
55
- const filePath = path.join(getRecordingsDir(), `${recording.id}.json`);
56
- fs.writeFileSync(filePath, JSON.stringify(recording, null, 2));
57
- activeRecording = null;
58
- recordingStartMs = 0;
59
- return recording;
60
- }
61
- /** Record an event */
62
- export function recordEvent(type, data, metadata) {
63
- if (!activeRecording)
64
- return;
65
- activeRecording.events.push({
66
- type,
67
- timestamp: Date.now() - recordingStartMs,
68
- data: data.slice(0, 10000), // Cap event data at 10KB
69
- metadata,
70
- });
71
- }
72
- /** Check if recording is active */
73
- export function isRecording() {
74
- return activeRecording !== null;
75
- }
76
- /** Get active recording ID */
77
- export function getActiveRecordingId() {
78
- return activeRecording?.id ?? null;
79
- }
80
- /** List saved recordings */
81
- export function listRecordings() {
82
- const dir = getRecordingsDir();
83
- try {
84
- const files = fs.readdirSync(dir).filter(f => f.endsWith('.json'));
85
- return files.map(f => {
86
- try {
87
- const data = JSON.parse(fs.readFileSync(path.join(dir, f), 'utf-8'));
88
- const duration = data.events.length > 0 ? data.events[data.events.length - 1].timestamp : 0;
89
- return { id: data.id, startTime: data.startTime, eventCount: data.events.length, duration };
90
- }
91
- catch {
92
- return null;
93
- }
94
- }).filter((r) => r !== null)
95
- .sort((a, b) => b.startTime.localeCompare(a.startTime));
96
- }
97
- catch {
98
- return [];
99
- }
100
- }
101
- /** Load a recording by ID */
102
- export function loadRecording(id) {
103
- const filePath = path.join(getRecordingsDir(), `${id}.json`);
104
- try {
105
- return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
106
- }
107
- catch {
108
- return null;
109
- }
110
- }
111
- /** Delete a recording */
112
- export function deleteRecording(id) {
113
- const filePath = path.join(getRecordingsDir(), `${id}.json`);
114
- try {
115
- fs.unlinkSync(filePath);
116
- return true;
117
- }
118
- catch {
119
- return false;
120
- }
121
- }
122
- /** Format recording for display (text playback) */
123
- export function formatRecording(recording) {
124
- const lines = [];
125
- lines.push(`Recording: ${recording.id}`);
126
- lines.push(`Started: ${recording.startTime}`);
127
- lines.push(`Events: ${recording.events.length}`);
128
- lines.push('---');
129
- for (const event of recording.events) {
130
- const time = formatMs(event.timestamp);
131
- switch (event.type) {
132
- case 'input':
133
- lines.push(`[${time}] > ${event.data}`);
134
- break;
135
- case 'output':
136
- lines.push(`[${time}] ${event.data}`);
137
- break;
138
- case 'tool_call':
139
- lines.push(`[${time}] [tool:${event.metadata?.name || 'unknown'}] ${event.data}`);
140
- break;
141
- case 'tool_result':
142
- lines.push(`[${time}] [result] ${event.data.slice(0, 200)}`);
143
- break;
144
- case 'system':
145
- lines.push(`[${time}] [system] ${event.data}`);
146
- break;
147
- case 'error':
148
- lines.push(`[${time}] [ERROR] ${event.data}`);
149
- break;
150
- }
151
- }
152
- return lines.join('\n');
153
- }
154
- function formatMs(ms) {
155
- const secs = Math.floor(ms / 1000);
156
- const mins = Math.floor(secs / 60);
157
- const s = secs % 60;
158
- return `${mins}:${String(s).padStart(2, '0')}`;
159
- }
160
- /** Set retention days for auto-cleanup (0 = no auto-cleanup) */
161
- let retentionDaysConfig = 0;
162
- export function setRetentionDays(days) {
163
- retentionDaysConfig = days;
164
- }
165
- /** Clean up old recordings (older than retentionDays) */
166
- export function cleanupRecordings(retentionDays = retentionDaysConfig) {
167
- const dir = getRecordingsDir();
168
- const cutoff = Date.now() - retentionDays * 24 * 60 * 60 * 1000;
169
- let cleaned = 0;
170
- try {
171
- for (const f of fs.readdirSync(dir).filter(f => f.endsWith('.json'))) {
172
- const stat = fs.statSync(path.join(dir, f));
173
- if (stat.mtimeMs < cutoff) {
174
- fs.unlinkSync(path.join(dir, f));
175
- cleaned++;
176
- }
177
- }
178
- }
179
- catch { /* ignore */ }
180
- return cleaned;
181
- }
182
- //# sourceMappingURL=terminal-recording.js.map