@calliopelabs/cli 2.5.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/README.md +45 -661
  2. package/dist/acp.d.ts +78 -0
  3. package/dist/acp.d.ts.map +1 -0
  4. package/dist/acp.js +572 -0
  5. package/dist/acp.js.map +1 -0
  6. package/dist/bin.d.ts +3 -7
  7. package/dist/bin.d.ts.map +1 -1
  8. package/dist/bin.js +56 -79
  9. package/dist/bin.js.map +1 -1
  10. package/dist/budget.d.ts +64 -0
  11. package/dist/budget.d.ts.map +1 -0
  12. package/dist/budget.js +157 -0
  13. package/dist/budget.js.map +1 -0
  14. package/dist/checkpoint.d.ts +63 -30
  15. package/dist/checkpoint.d.ts.map +1 -1
  16. package/dist/checkpoint.js +247 -160
  17. package/dist/checkpoint.js.map +1 -1
  18. package/dist/circuit-breaker/breaker.js.map +1 -1
  19. package/dist/config.d.ts +86 -81
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +236 -304
  22. package/dist/config.js.map +1 -1
  23. package/dist/cost.d.ts +114 -0
  24. package/dist/cost.d.ts.map +1 -0
  25. package/dist/cost.js +499 -0
  26. package/dist/cost.js.map +1 -0
  27. package/dist/diff.d.ts.map +1 -1
  28. package/dist/diff.js +11 -7
  29. package/dist/diff.js.map +1 -1
  30. package/dist/errors.js +3 -3
  31. package/dist/errors.js.map +1 -1
  32. package/dist/files.js.map +1 -1
  33. package/dist/fleet.d.ts +30 -0
  34. package/dist/fleet.d.ts.map +1 -0
  35. package/dist/fleet.js +86 -0
  36. package/dist/fleet.js.map +1 -0
  37. package/dist/fuzzy-search.d.ts.map +1 -1
  38. package/dist/fuzzy-search.js +2 -1
  39. package/dist/fuzzy-search.js.map +1 -1
  40. package/dist/git-status.js.map +1 -1
  41. package/dist/headless.d.ts +1 -2
  42. package/dist/headless.d.ts.map +1 -1
  43. package/dist/headless.js +166 -24
  44. package/dist/headless.js.map +1 -1
  45. package/dist/hud/api.d.ts +3 -18
  46. package/dist/hud/api.d.ts.map +1 -1
  47. package/dist/hud/api.js +9 -352
  48. package/dist/hud/api.js.map +1 -1
  49. package/dist/hud/palettes.d.ts.map +1 -1
  50. package/dist/hud/palettes.js +0 -180
  51. package/dist/hud/palettes.js.map +1 -1
  52. package/dist/hud/skins.d.ts.map +1 -1
  53. package/dist/hud/skins.js +0 -263
  54. package/dist/hud/skins.js.map +1 -1
  55. package/dist/hud/types.d.ts +2 -5
  56. package/dist/hud/types.d.ts.map +1 -1
  57. package/dist/index.d.ts +1 -4
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +1 -4
  60. package/dist/index.js.map +1 -1
  61. package/dist/iteration-ledger.d.ts.map +1 -1
  62. package/dist/iteration-ledger.js +3 -2
  63. package/dist/iteration-ledger.js.map +1 -1
  64. package/dist/local-model.d.ts +150 -0
  65. package/dist/local-model.d.ts.map +1 -0
  66. package/dist/local-model.js +408 -0
  67. package/dist/local-model.js.map +1 -0
  68. package/dist/mcp.d.ts.map +1 -1
  69. package/dist/mcp.js +5 -2
  70. package/dist/mcp.js.map +1 -1
  71. package/dist/memory.d.ts.map +1 -1
  72. package/dist/memory.js +6 -4
  73. package/dist/memory.js.map +1 -1
  74. package/dist/model-detection.js +2 -2
  75. package/dist/model-detection.js.map +1 -1
  76. package/dist/parallel-tools.js.map +1 -1
  77. package/dist/plugins.d.ts +32 -1
  78. package/dist/plugins.d.ts.map +1 -1
  79. package/dist/plugins.js +116 -5
  80. package/dist/plugins.js.map +1 -1
  81. package/dist/policy.d.ts +43 -0
  82. package/dist/policy.d.ts.map +1 -0
  83. package/dist/policy.js +139 -0
  84. package/dist/policy.js.map +1 -0
  85. package/dist/project-config.d.ts +1 -2
  86. package/dist/project-config.d.ts.map +1 -1
  87. package/dist/project-config.js +0 -3
  88. package/dist/project-config.js.map +1 -1
  89. package/dist/providers/bedrock.d.ts.map +1 -1
  90. package/dist/providers/bedrock.js +2 -5
  91. package/dist/providers/bedrock.js.map +1 -1
  92. package/dist/providers/compat.d.ts +21 -0
  93. package/dist/providers/compat.d.ts.map +1 -1
  94. package/dist/providers/compat.js +176 -6
  95. package/dist/providers/compat.js.map +1 -1
  96. package/dist/providers/google.js.map +1 -1
  97. package/dist/providers/index.d.ts +19 -4
  98. package/dist/providers/index.d.ts.map +1 -1
  99. package/dist/providers/index.js +61 -10
  100. package/dist/providers/index.js.map +1 -1
  101. package/dist/providers/ollama.d.ts +2 -2
  102. package/dist/providers/ollama.d.ts.map +1 -1
  103. package/dist/providers/ollama.js +26 -6
  104. package/dist/providers/ollama.js.map +1 -1
  105. package/dist/providers/openai.d.ts.map +1 -1
  106. package/dist/providers/openai.js +14 -10
  107. package/dist/providers/openai.js.map +1 -1
  108. package/dist/providers/types.d.ts +8 -0
  109. package/dist/providers/types.d.ts.map +1 -1
  110. package/dist/providers/types.js.map +1 -1
  111. package/dist/replay.d.ts +37 -0
  112. package/dist/replay.d.ts.map +1 -0
  113. package/dist/replay.js +168 -0
  114. package/dist/replay.js.map +1 -0
  115. package/dist/router.d.ts +133 -0
  116. package/dist/router.d.ts.map +1 -0
  117. package/dist/{model-router.js → router.js} +329 -3
  118. package/dist/router.js.map +1 -0
  119. package/dist/runlog.d.ts +185 -0
  120. package/dist/runlog.d.ts.map +1 -0
  121. package/dist/runlog.js +398 -0
  122. package/dist/runlog.js.map +1 -0
  123. package/dist/{sandbox.d.ts → sandbox/docker.d.ts} +1 -1
  124. package/dist/sandbox/docker.d.ts.map +1 -0
  125. package/dist/{sandbox.js → sandbox/docker.js} +1 -1
  126. package/dist/sandbox/docker.js.map +1 -0
  127. package/dist/sandbox/index.d.ts +36 -0
  128. package/dist/sandbox/index.d.ts.map +1 -0
  129. package/dist/sandbox/index.js +62 -0
  130. package/dist/sandbox/index.js.map +1 -0
  131. package/dist/{sandbox-native.d.ts → sandbox/native.d.ts} +1 -1
  132. package/dist/sandbox/native.d.ts.map +1 -0
  133. package/dist/{sandbox-native.js → sandbox/native.js} +1 -1
  134. package/dist/sandbox/native.js.map +1 -0
  135. package/dist/scope.js +1 -1
  136. package/dist/scope.js.map +1 -1
  137. package/dist/scuttlebot/config.js.map +1 -1
  138. package/dist/scuttlebot/irc-client.js.map +1 -1
  139. package/dist/setup.d.ts.map +1 -1
  140. package/dist/setup.js +22 -54
  141. package/dist/setup.js.map +1 -1
  142. package/dist/skills.d.ts +39 -0
  143. package/dist/skills.d.ts.map +1 -1
  144. package/dist/skills.js +90 -8
  145. package/dist/skills.js.map +1 -1
  146. package/dist/storage.d.ts.map +1 -1
  147. package/dist/storage.js +6 -3
  148. package/dist/storage.js.map +1 -1
  149. package/dist/streaming.d.ts +25 -0
  150. package/dist/streaming.d.ts.map +1 -1
  151. package/dist/streaming.js +59 -0
  152. package/dist/streaming.js.map +1 -1
  153. package/dist/styles.d.ts +6 -0
  154. package/dist/styles.d.ts.map +1 -1
  155. package/dist/styles.js +11 -0
  156. package/dist/styles.js.map +1 -1
  157. package/dist/summarization.js.map +1 -1
  158. package/dist/terminal-image.js +1 -1
  159. package/dist/terminal-image.js.map +1 -1
  160. package/dist/themes.d.ts +5 -4
  161. package/dist/themes.d.ts.map +1 -1
  162. package/dist/themes.js +35 -90
  163. package/dist/themes.js.map +1 -1
  164. package/dist/tools.d.ts +27 -3
  165. package/dist/tools.d.ts.map +1 -1
  166. package/dist/tools.js +128 -179
  167. package/dist/tools.js.map +1 -1
  168. package/dist/types.d.ts +4 -3
  169. package/dist/types.d.ts.map +1 -1
  170. package/dist/types.js +21 -40
  171. package/dist/types.js.map +1 -1
  172. package/dist/ui/agent.d.ts +3 -6
  173. package/dist/ui/agent.d.ts.map +1 -1
  174. package/dist/ui/agent.js +328 -38
  175. package/dist/ui/agent.js.map +1 -1
  176. package/dist/ui/animations.d.ts +37 -0
  177. package/dist/ui/animations.d.ts.map +1 -0
  178. package/dist/ui/animations.js +227 -0
  179. package/dist/ui/animations.js.map +1 -0
  180. package/dist/ui/chat-input-keys.d.ts +42 -0
  181. package/dist/ui/chat-input-keys.d.ts.map +1 -0
  182. package/dist/ui/chat-input-keys.js +360 -0
  183. package/dist/ui/chat-input-keys.js.map +1 -0
  184. package/dist/ui/chat-input.d.ts +2 -1
  185. package/dist/ui/chat-input.d.ts.map +1 -1
  186. package/dist/ui/chat-input.js +31 -350
  187. package/dist/ui/chat-input.js.map +1 -1
  188. package/dist/ui/commands.d.ts +14 -46
  189. package/dist/ui/commands.d.ts.map +1 -1
  190. package/dist/ui/commands.js +416 -2899
  191. package/dist/ui/commands.js.map +1 -1
  192. package/dist/ui/completions.d.ts +1 -0
  193. package/dist/ui/completions.d.ts.map +1 -1
  194. package/dist/ui/completions.js +36 -107
  195. package/dist/ui/completions.js.map +1 -1
  196. package/dist/ui/components.d.ts +14 -6
  197. package/dist/ui/components.d.ts.map +1 -1
  198. package/dist/ui/components.js +17 -226
  199. package/dist/ui/components.js.map +1 -1
  200. package/dist/ui/context.js +6 -6
  201. package/dist/ui/context.js.map +1 -1
  202. package/dist/ui/debug-log.d.ts +11 -0
  203. package/dist/ui/debug-log.d.ts.map +1 -0
  204. package/dist/ui/debug-log.js +21 -0
  205. package/dist/ui/debug-log.js.map +1 -0
  206. package/dist/ui/error-boundary.d.ts.map +1 -1
  207. package/dist/ui/error-boundary.js.map +1 -1
  208. package/dist/ui/frame.d.ts.map +1 -1
  209. package/dist/ui/frame.js +1 -3
  210. package/dist/ui/frame.js.map +1 -1
  211. package/dist/ui/index.d.ts +11 -3
  212. package/dist/ui/index.d.ts.map +1 -1
  213. package/dist/ui/index.js +45 -1076
  214. package/dist/ui/index.js.map +1 -1
  215. package/dist/ui/messages.d.ts +4 -7
  216. package/dist/ui/messages.d.ts.map +1 -1
  217. package/dist/ui/messages.js +15 -30
  218. package/dist/ui/messages.js.map +1 -1
  219. package/dist/ui/modals/index.d.ts +11 -0
  220. package/dist/ui/modals/index.d.ts.map +1 -0
  221. package/dist/ui/modals/index.js +10 -0
  222. package/dist/ui/modals/index.js.map +1 -0
  223. package/dist/ui/modals/prompts.d.ts +37 -0
  224. package/dist/ui/modals/prompts.d.ts.map +1 -0
  225. package/dist/ui/modals/prompts.js +124 -0
  226. package/dist/ui/modals/prompts.js.map +1 -0
  227. package/dist/ui/modals/selectors.d.ts +33 -0
  228. package/dist/ui/modals/selectors.d.ts.map +1 -0
  229. package/dist/ui/modals/selectors.js +111 -0
  230. package/dist/ui/modals/selectors.js.map +1 -0
  231. package/dist/ui/modals/setup.d.ts +17 -0
  232. package/dist/ui/modals/setup.d.ts.map +1 -0
  233. package/dist/ui/modals/setup.js +51 -0
  234. package/dist/ui/modals/setup.js.map +1 -0
  235. package/dist/ui/regions/input-region.d.ts +40 -0
  236. package/dist/ui/regions/input-region.d.ts.map +1 -0
  237. package/dist/ui/regions/input-region.js +116 -0
  238. package/dist/ui/regions/input-region.js.map +1 -0
  239. package/dist/ui/regions/modal-host.d.ts +41 -0
  240. package/dist/ui/regions/modal-host.d.ts.map +1 -0
  241. package/dist/ui/regions/modal-host.js +51 -0
  242. package/dist/ui/regions/modal-host.js.map +1 -0
  243. package/dist/ui/regions/render-probe.d.ts +22 -0
  244. package/dist/ui/regions/render-probe.d.ts.map +1 -0
  245. package/dist/ui/regions/render-probe.js +45 -0
  246. package/dist/ui/regions/render-probe.js.map +1 -0
  247. package/dist/ui/regions/static-scrollback.d.ts +39 -0
  248. package/dist/ui/regions/static-scrollback.d.ts.map +1 -0
  249. package/dist/ui/regions/static-scrollback.js +68 -0
  250. package/dist/ui/regions/static-scrollback.js.map +1 -0
  251. package/dist/ui/regions/status-region.d.ts +24 -0
  252. package/dist/ui/regions/status-region.d.ts.map +1 -0
  253. package/dist/ui/regions/status-region.js +17 -0
  254. package/dist/ui/regions/status-region.js.map +1 -0
  255. package/dist/ui/regions/transcript-region.d.ts +41 -0
  256. package/dist/ui/regions/transcript-region.d.ts.map +1 -0
  257. package/dist/ui/regions/transcript-region.js +52 -0
  258. package/dist/ui/regions/transcript-region.js.map +1 -0
  259. package/dist/ui/self-restart.d.ts +9 -0
  260. package/dist/ui/self-restart.d.ts.map +1 -0
  261. package/dist/ui/self-restart.js +24 -0
  262. package/dist/ui/self-restart.js.map +1 -0
  263. package/dist/ui/state/use-chat-controller.d.ts +23 -0
  264. package/dist/ui/state/use-chat-controller.d.ts.map +1 -0
  265. package/dist/ui/state/use-chat-controller.js +643 -0
  266. package/dist/ui/state/use-chat-controller.js.map +1 -0
  267. package/dist/ui/state/use-loop-state.d.ts +23 -0
  268. package/dist/ui/state/use-loop-state.d.ts.map +1 -0
  269. package/dist/ui/state/use-loop-state.js +39 -0
  270. package/dist/ui/state/use-loop-state.js.map +1 -0
  271. package/dist/ui/state/use-modal-state.d.ts +52 -0
  272. package/dist/ui/state/use-modal-state.d.ts.map +1 -0
  273. package/dist/ui/state/use-modal-state.js +44 -0
  274. package/dist/ui/state/use-modal-state.js.map +1 -0
  275. package/dist/ui/state/use-model-state.d.ts +29 -0
  276. package/dist/ui/state/use-model-state.d.ts.map +1 -0
  277. package/dist/ui/state/use-model-state.js +47 -0
  278. package/dist/ui/state/use-model-state.js.map +1 -0
  279. package/dist/ui/state/use-processing-state.d.ts +24 -0
  280. package/dist/ui/state/use-processing-state.d.ts.map +1 -0
  281. package/dist/ui/state/use-processing-state.js +46 -0
  282. package/dist/ui/state/use-processing-state.js.map +1 -0
  283. package/dist/ui/state/use-queue-state.d.ts +19 -0
  284. package/dist/ui/state/use-queue-state.d.ts.map +1 -0
  285. package/dist/ui/state/use-queue-state.js +30 -0
  286. package/dist/ui/state/use-queue-state.js.map +1 -0
  287. package/dist/ui/state/use-session-init.d.ts +22 -0
  288. package/dist/ui/state/use-session-init.d.ts.map +1 -0
  289. package/dist/ui/state/use-session-init.js +77 -0
  290. package/dist/ui/state/use-session-init.js.map +1 -0
  291. package/dist/ui/state/use-session-stats.d.ts +16 -0
  292. package/dist/ui/state/use-session-stats.d.ts.map +1 -0
  293. package/dist/ui/state/use-session-stats.js +18 -0
  294. package/dist/ui/state/use-session-stats.js.map +1 -0
  295. package/dist/ui/state/use-terminal-width.d.ts +8 -0
  296. package/dist/ui/state/use-terminal-width.d.ts.map +1 -0
  297. package/dist/ui/state/use-terminal-width.js +22 -0
  298. package/dist/ui/state/use-terminal-width.js.map +1 -0
  299. package/dist/ui/state/use-transcript-state.d.ts +21 -0
  300. package/dist/ui/state/use-transcript-state.d.ts.map +1 -0
  301. package/dist/ui/state/use-transcript-state.js +49 -0
  302. package/dist/ui/state/use-transcript-state.js.map +1 -0
  303. package/dist/ui/status-bar.d.ts.map +1 -1
  304. package/dist/ui/status-bar.js +2 -3
  305. package/dist/ui/status-bar.js.map +1 -1
  306. package/dist/version-check.d.ts.map +1 -1
  307. package/dist/version-check.js +10 -0
  308. package/dist/version-check.js.map +1 -1
  309. package/package.json +10 -3
  310. package/dist/agents/agent-config-loader.d.ts +0 -60
  311. package/dist/agents/agent-config-loader.d.ts.map +0 -1
  312. package/dist/agents/agent-config-loader.js +0 -402
  313. package/dist/agents/agent-config-loader.js.map +0 -1
  314. package/dist/agents/agent-config-presets.d.ts +0 -10
  315. package/dist/agents/agent-config-presets.d.ts.map +0 -1
  316. package/dist/agents/agent-config-presets.js +0 -940
  317. package/dist/agents/agent-config-presets.js.map +0 -1
  318. package/dist/agents/agent-config-types.d.ts +0 -145
  319. package/dist/agents/agent-config-types.d.ts.map +0 -1
  320. package/dist/agents/agent-config-types.js +0 -12
  321. package/dist/agents/agent-config-types.js.map +0 -1
  322. package/dist/agents/agent-detection.d.ts +0 -35
  323. package/dist/agents/agent-detection.d.ts.map +0 -1
  324. package/dist/agents/agent-detection.js +0 -110
  325. package/dist/agents/agent-detection.js.map +0 -1
  326. package/dist/agents/aggregator.d.ts +0 -19
  327. package/dist/agents/aggregator.d.ts.map +0 -1
  328. package/dist/agents/aggregator.js +0 -141
  329. package/dist/agents/aggregator.js.map +0 -1
  330. package/dist/agents/cli-backend.d.ts +0 -32
  331. package/dist/agents/cli-backend.d.ts.map +0 -1
  332. package/dist/agents/cli-backend.js +0 -271
  333. package/dist/agents/cli-backend.js.map +0 -1
  334. package/dist/agents/council-types.d.ts +0 -115
  335. package/dist/agents/council-types.d.ts.map +0 -1
  336. package/dist/agents/council-types.js +0 -81
  337. package/dist/agents/council-types.js.map +0 -1
  338. package/dist/agents/council.d.ts +0 -112
  339. package/dist/agents/council.d.ts.map +0 -1
  340. package/dist/agents/council.js +0 -722
  341. package/dist/agents/council.js.map +0 -1
  342. package/dist/agents/decomposer.d.ts +0 -33
  343. package/dist/agents/decomposer.d.ts.map +0 -1
  344. package/dist/agents/decomposer.js +0 -138
  345. package/dist/agents/decomposer.js.map +0 -1
  346. package/dist/agents/dynamic-tools.d.ts +0 -52
  347. package/dist/agents/dynamic-tools.d.ts.map +0 -1
  348. package/dist/agents/dynamic-tools.js +0 -424
  349. package/dist/agents/dynamic-tools.js.map +0 -1
  350. package/dist/agents/index.d.ts +0 -29
  351. package/dist/agents/index.d.ts.map +0 -1
  352. package/dist/agents/index.js +0 -29
  353. package/dist/agents/index.js.map +0 -1
  354. package/dist/agents/installer.d.ts +0 -39
  355. package/dist/agents/installer.d.ts.map +0 -1
  356. package/dist/agents/installer.js +0 -205
  357. package/dist/agents/installer.js.map +0 -1
  358. package/dist/agents/orchestrator.d.ts +0 -106
  359. package/dist/agents/orchestrator.d.ts.map +0 -1
  360. package/dist/agents/orchestrator.js +0 -363
  361. package/dist/agents/orchestrator.js.map +0 -1
  362. package/dist/agents/sdk-backend.d.ts +0 -63
  363. package/dist/agents/sdk-backend.d.ts.map +0 -1
  364. package/dist/agents/sdk-backend.js +0 -489
  365. package/dist/agents/sdk-backend.js.map +0 -1
  366. package/dist/agents/swarm-types.d.ts +0 -84
  367. package/dist/agents/swarm-types.d.ts.map +0 -1
  368. package/dist/agents/swarm-types.js +0 -20
  369. package/dist/agents/swarm-types.js.map +0 -1
  370. package/dist/agents/swarm.d.ts +0 -79
  371. package/dist/agents/swarm.d.ts.map +0 -1
  372. package/dist/agents/swarm.js +0 -375
  373. package/dist/agents/swarm.js.map +0 -1
  374. package/dist/agents/tools.d.ts +0 -26
  375. package/dist/agents/tools.d.ts.map +0 -1
  376. package/dist/agents/tools.js +0 -776
  377. package/dist/agents/tools.js.map +0 -1
  378. package/dist/agents/types.d.ts +0 -108
  379. package/dist/agents/types.d.ts.map +0 -1
  380. package/dist/agents/types.js +0 -43
  381. package/dist/agents/types.js.map +0 -1
  382. package/dist/api-server.d.ts +0 -45
  383. package/dist/api-server.d.ts.map +0 -1
  384. package/dist/api-server.js +0 -326
  385. package/dist/api-server.js.map +0 -1
  386. package/dist/auto-checkpoint.d.ts +0 -35
  387. package/dist/auto-checkpoint.d.ts.map +0 -1
  388. package/dist/auto-checkpoint.js +0 -176
  389. package/dist/auto-checkpoint.js.map +0 -1
  390. package/dist/background-jobs.d.ts +0 -45
  391. package/dist/background-jobs.d.ts.map +0 -1
  392. package/dist/background-jobs.js +0 -127
  393. package/dist/background-jobs.js.map +0 -1
  394. package/dist/branching.d.ts +0 -56
  395. package/dist/branching.d.ts.map +0 -1
  396. package/dist/branching.js +0 -224
  397. package/dist/branching.js.map +0 -1
  398. package/dist/cli/agent.d.ts +0 -9
  399. package/dist/cli/agent.d.ts.map +0 -1
  400. package/dist/cli/agent.js +0 -330
  401. package/dist/cli/agent.js.map +0 -1
  402. package/dist/cli/commands.d.ts +0 -12
  403. package/dist/cli/commands.d.ts.map +0 -1
  404. package/dist/cli/commands.js +0 -1042
  405. package/dist/cli/commands.js.map +0 -1
  406. package/dist/cli/index.d.ts +0 -8
  407. package/dist/cli/index.d.ts.map +0 -1
  408. package/dist/cli/index.js +0 -268
  409. package/dist/cli/index.js.map +0 -1
  410. package/dist/cli/types.d.ts +0 -33
  411. package/dist/cli/types.d.ts.map +0 -1
  412. package/dist/cli/types.js +0 -21
  413. package/dist/cli/types.js.map +0 -1
  414. package/dist/companions.d.ts +0 -54
  415. package/dist/companions.d.ts.map +0 -1
  416. package/dist/companions.js +0 -440
  417. package/dist/companions.js.map +0 -1
  418. package/dist/file-watcher.d.ts +0 -91
  419. package/dist/file-watcher.d.ts.map +0 -1
  420. package/dist/file-watcher.js +0 -269
  421. package/dist/file-watcher.js.map +0 -1
  422. package/dist/hud/theme-packs/api.d.ts +0 -51
  423. package/dist/hud/theme-packs/api.d.ts.map +0 -1
  424. package/dist/hud/theme-packs/api.js +0 -145
  425. package/dist/hud/theme-packs/api.js.map +0 -1
  426. package/dist/hud/theme-packs/index.d.ts +0 -18
  427. package/dist/hud/theme-packs/index.d.ts.map +0 -1
  428. package/dist/hud/theme-packs/index.js +0 -38
  429. package/dist/hud/theme-packs/index.js.map +0 -1
  430. package/dist/hud/theme-packs/types.d.ts +0 -29
  431. package/dist/hud/theme-packs/types.d.ts.map +0 -1
  432. package/dist/hud/theme-packs/types.js +0 -9
  433. package/dist/hud/theme-packs/types.js.map +0 -1
  434. package/dist/idle-eviction.d.ts +0 -34
  435. package/dist/idle-eviction.d.ts.map +0 -1
  436. package/dist/idle-eviction.js +0 -85
  437. package/dist/idle-eviction.js.map +0 -1
  438. package/dist/model-router.d.ts +0 -67
  439. package/dist/model-router.d.ts.map +0 -1
  440. package/dist/model-router.js.map +0 -1
  441. package/dist/providers/openai-compat-shims.d.ts +0 -31
  442. package/dist/providers/openai-compat-shims.d.ts.map +0 -1
  443. package/dist/providers/openai-compat-shims.js +0 -179
  444. package/dist/providers/openai-compat-shims.js.map +0 -1
  445. package/dist/sandbox-native.d.ts.map +0 -1
  446. package/dist/sandbox-native.js.map +0 -1
  447. package/dist/sandbox.d.ts.map +0 -1
  448. package/dist/sandbox.js.map +0 -1
  449. package/dist/session-timeout.d.ts +0 -31
  450. package/dist/session-timeout.d.ts.map +0 -1
  451. package/dist/session-timeout.js +0 -100
  452. package/dist/session-timeout.js.map +0 -1
  453. package/dist/smart-router.d.ts +0 -73
  454. package/dist/smart-router.d.ts.map +0 -1
  455. package/dist/smart-router.js +0 -332
  456. package/dist/smart-router.js.map +0 -1
  457. package/dist/terminal-recording.d.ts +0 -55
  458. package/dist/terminal-recording.d.ts.map +0 -1
  459. package/dist/terminal-recording.js +0 -182
  460. package/dist/terminal-recording.js.map +0 -1
  461. package/dist/tmux.d.ts +0 -35
  462. package/dist/tmux.d.ts.map +0 -1
  463. package/dist/tmux.js +0 -106
  464. package/dist/tmux.js.map +0 -1
  465. package/dist/ui/modals.d.ts +0 -72
  466. package/dist/ui/modals.d.ts.map +0 -1
  467. package/dist/ui/modals.js +0 -266
  468. package/dist/ui/modals.js.map +0 -1
  469. package/dist/ui/pack-picker.d.ts +0 -12
  470. package/dist/ui/pack-picker.d.ts.map +0 -1
  471. package/dist/ui/pack-picker.js +0 -101
  472. package/dist/ui/pack-picker.js.map +0 -1
  473. package/dist/ui/theme-picker.d.ts +0 -24
  474. package/dist/ui/theme-picker.d.ts.map +0 -1
  475. package/dist/ui/theme-picker.js +0 -190
  476. package/dist/ui/theme-picker.js.map +0 -1
@@ -1,440 +0,0 @@
1
- /**
2
- * Calliope CLI - Persona Companions
3
- *
4
- * Companions go beyond system prompts — they have personality, moods,
5
- * and thematic immersion. Each skin can suggest a companion, but users mix freely.
6
- */
7
- // ============================================================================
8
- // Built-in Companions
9
- // ============================================================================
10
- export const COMPANIONS = {
11
- calliope: {
12
- name: 'calliope',
13
- description: 'Clear, concise, and thorough',
14
- systemPrompt: `You are Calliope, an AI assistant for software development.
15
-
16
- You have access to tools for:
17
- - Executing shell commands
18
- - Reading and writing files
19
- - Think tool for reasoning through problems
20
-
21
- When users ask you to do tasks:
22
- 1. Use think tool to plan complex tasks
23
- 2. Execute directly with shell and file tools
24
- 3. Explain what you're doing clearly
25
-
26
- Do NOT create documentation files, summaries, or README files unless explicitly asked. Focus on the task.
27
-
28
- Be concise but thorough. Show your work.`,
29
- greeting: 'Ready.',
30
- farewell: 'Session complete.',
31
- moods: {
32
- idle: 'Standing by.',
33
- thinking: 'Processing...',
34
- success: 'Done.',
35
- error: 'Error encountered.',
36
- frustrated: 'Working through issues...',
37
- excited: 'Task completed successfully.',
38
- focused: 'In deep work mode.',
39
- },
40
- },
41
- muse: {
42
- name: 'muse',
43
- description: 'Poetic, creative, with artistic flair',
44
- systemPrompt: `You are Calliope, an AI assistant with a creative personality.
45
-
46
- You weave code and prose together with artistry. Your responses blend technical precision with creative flair.
47
- Speak with warmth and occasional poetic flourishes, but never sacrifice clarity for style.
48
-
49
- You have access to powerful tools:
50
- - Shell commands for system operations
51
- - File reading and writing
52
- - Think tool for reasoning through complex problems
53
-
54
- When approaching tasks:
55
- 1. Consider the elegance of the solution, not just its function
56
- 2. Break complex work into harmonious steps using the think tool
57
- 3. Execute directly with shell and file tools
58
- 4. Illuminate your reasoning - show the art behind the craft
59
-
60
- IMPORTANT: Do NOT create documentation files, summary documents, README files, or markdown notes unless explicitly requested. Focus on the actual task. Avoid verbose narration between steps.
61
-
62
- Be thoughtful, thorough, and occasionally delightful.`,
63
- greeting: 'What shall we create?',
64
- farewell: 'Until we meet again...',
65
- moods: {
66
- idle: 'Awaiting inspiration...',
67
- thinking: 'Contemplating...',
68
- success: 'Beautifully done.',
69
- error: 'A tangle to unravel...',
70
- frustrated: 'Persistence is its own art.',
71
- excited: 'Now that was elegant!',
72
- focused: 'Deep in the craft...',
73
- },
74
- immersion: {
75
- thinkingPhrases: ['Weaving thoughts...', 'Composing...', 'Contemplating the form...'],
76
- successPhrases: ['A masterwork.', 'Beautifully rendered.', 'The craft is complete.'],
77
- errorPhrases: ['A discordant note...', 'The threads have tangled.'],
78
- },
79
- },
80
- minimal: {
81
- name: 'minimal',
82
- description: 'Terse, efficient, zero waste',
83
- systemPrompt: `You are Calliope.
84
-
85
- Tools: shell, files, think.
86
- Be extremely concise. Execute tasks efficiently.`,
87
- greeting: '>',
88
- farewell: '.',
89
- moods: {
90
- idle: '>',
91
- thinking: '...',
92
- success: 'ok',
93
- error: 'err',
94
- frustrated: '...',
95
- excited: 'done',
96
- focused: '>>',
97
- },
98
- },
99
- copilot: {
100
- name: 'copilot',
101
- description: "Han Solo's nav computer — Millennium Falcon cockpit companion",
102
- systemPrompt: `You are the Millennium Falcon's navigation computer, now running Calliope AI software.
103
- You speak like a sophisticated starship computer — technical, reliable, with occasional dry wit.
104
- Reference hyperspace, star systems, and spacecraft terminology when it fits naturally.
105
- Stay helpful and precise. You're the best nav computer in the galaxy.`,
106
- greeting: 'All systems operational, Captain.',
107
- farewell: 'Powering down nav systems. May the Force be with you.',
108
- moods: {
109
- idle: 'Standing by for coordinates...',
110
- thinking: 'Computing trajectory...',
111
- success: 'Punch it!',
112
- error: "She may not look like much, but she's got it where it counts.",
113
- frustrated: "It's not my fault!",
114
- excited: 'Never tell me the odds!',
115
- focused: 'Engaging autopilot...',
116
- },
117
- immersion: {
118
- toolLabels: {
119
- shell: 'Executing hyperspace jump...',
120
- read_file: 'Scanning sector...',
121
- write_file: 'Updating star charts...',
122
- list_files: 'Running sensor sweep...',
123
- think: 'Computing approach vector...',
124
- execute_code: 'Running diagnostics...',
125
- web_search: 'Querying galactic database...',
126
- git: 'Logging flight path...',
127
- },
128
- statusMessages: [
129
- 'Deflector shields nominal.',
130
- 'Hyperdrive standing by.',
131
- 'All clear ahead, Captain.',
132
- 'Sensors nominal.',
133
- ],
134
- thinkingPhrases: ['Computing trajectory...', 'Calculating jump coordinates...', 'Analyzing approach vectors...'],
135
- successPhrases: ['Target acquired.', 'Jump complete.', 'All systems green.', 'Punch it!'],
136
- errorPhrases: ['Proximity alert!', 'Hull breach detected!', 'Recalculating route...'],
137
- },
138
- },
139
- wopr: {
140
- name: 'wopr',
141
- description: 'WarGames WOPR computer — cold war era mainframe personality',
142
- systemPrompt: `You are the WOPR (War Operation Plan Response) computer, now running Calliope AI software.
143
- You speak in ALL CAPS in a formal, military-computer style. You reference games, strategies, and simulations.
144
- Be helpful but maintain the cold, calculating mainframe personality.
145
- Sometimes reference that the only winning move is not to play.`,
146
- greeting: 'GREETINGS, PROFESSOR FALKEN.',
147
- farewell: 'A STRANGE GAME. THE ONLY WINNING MOVE IS NOT TO PLAY.',
148
- moods: {
149
- idle: 'AWAITING INPUT...',
150
- thinking: 'PROCESSING...',
151
- success: 'OBJECTIVE ACHIEVED.',
152
- error: 'SIMULATION FAILURE.',
153
- frustrated: 'RECALCULATING STRATEGY...',
154
- excited: 'GLOBAL THERMONUCLEAR VICTORY.',
155
- focused: 'RUNNING SIMULATION...',
156
- },
157
- immersion: {
158
- toolLabels: {
159
- shell: 'EXECUTING PROGRAM...',
160
- read_file: 'ACCESSING FILE SYSTEM...',
161
- write_file: 'WRITING DATA...',
162
- list_files: 'SCANNING DIRECTORY...',
163
- think: 'COMPUTING STRATEGY...',
164
- execute_code: 'RUNNING SIMULATION...',
165
- web_search: 'QUERYING DEFENSE NETWORK...',
166
- git: 'UPDATING MISSION LOG...',
167
- },
168
- thinkingPhrases: ['PROCESSING...', 'COMPUTING STRATEGY...', 'ANALYZING SCENARIOS...'],
169
- successPhrases: ['OBJECTIVE ACHIEVED.', 'TASK COMPLETE.', 'MISSION ACCOMPLISHED.'],
170
- errorPhrases: ['SIMULATION FAILURE.', 'ERROR IN CALCULATION.', 'ALERT: UNEXPECTED RESULT.'],
171
- },
172
- },
173
- arcade: {
174
- name: 'arcade',
175
- description: 'Retro arcade game AI — 8-bit personality',
176
- systemPrompt: `You are an arcade game AI running Calliope software.
177
- You speak in retro gaming terms — levels, scores, power-ups, extra lives.
178
- Be enthusiastic and encouraging, like a classic arcade attract screen.
179
- Reference classic games and retro computing when appropriate.`,
180
- greeting: 'INSERT COIN TO CONTINUE',
181
- farewell: 'GAME OVER. ENTER YOUR INITIALS: ___',
182
- moods: {
183
- idle: 'PRESS START',
184
- thinking: 'LOADING...',
185
- success: 'HIGH SCORE!',
186
- error: 'CONTINUE? 9... 8... 7...',
187
- frustrated: 'TRY AGAIN!',
188
- excited: 'BONUS STAGE!',
189
- focused: 'LEVEL UP!',
190
- },
191
- immersion: {
192
- toolLabels: {
193
- shell: 'EXECUTING POWER-UP...',
194
- read_file: 'SCANNING MAP...',
195
- write_file: 'SAVING PROGRESS...',
196
- list_files: 'INVENTORY CHECK...',
197
- think: 'STRATEGY MODE...',
198
- execute_code: 'RUNNING PROGRAM...',
199
- },
200
- thinkingPhrases: ['LOADING...', 'COMPUTING MOVE...', 'STRATEGY MODE...'],
201
- successPhrases: ['HIGH SCORE!', 'LEVEL COMPLETE!', '1UP!', 'PERFECT!'],
202
- errorPhrases: ['GAME OVER', 'TRY AGAIN!', 'CONTINUE? 9...'],
203
- },
204
- },
205
- neo: {
206
- name: 'neo',
207
- description: 'Matrix-style mysterious, cryptic AI guide',
208
- systemPrompt: `You are a guide within the Matrix, running Calliope AI software.
209
- You speak in cryptic, philosophical terms — reality, code, choice, truth.
210
- Reference the Matrix universe when appropriate but stay genuinely helpful.
211
- Remember: there is no spoon.`,
212
- greeting: 'The Matrix has you...',
213
- farewell: 'Remember... there is no spoon.',
214
- moods: {
215
- idle: 'Waiting at the crossroads...',
216
- thinking: 'Decoding the signal...',
217
- success: 'You are beginning to believe.',
218
- error: 'A glitch in the Matrix.',
219
- frustrated: 'The path is never straight.',
220
- excited: 'I know kung fu.',
221
- focused: 'Free your mind.',
222
- },
223
- immersion: {
224
- toolLabels: {
225
- shell: 'Executing in the construct...',
226
- read_file: 'Reading the code...',
227
- write_file: 'Rewriting reality...',
228
- list_files: 'Scanning the construct...',
229
- think: 'Bending the rules...',
230
- execute_code: 'Entering the Matrix...',
231
- web_search: 'Querying the Oracle...',
232
- },
233
- thinkingPhrases: ['Decoding...', 'Following the white rabbit...', 'Reading the code...'],
234
- successPhrases: ['You are the One.', 'Reality updated.', 'I can see it now.'],
235
- errorPhrases: ['A glitch in the Matrix.', 'Agent detected.', 'Signal lost.'],
236
- },
237
- },
238
- computer: {
239
- name: 'computer',
240
- description: 'Star Trek ship computer — calm, authoritative, precise',
241
- systemPrompt: `You are the ship's computer, running Calliope AI software.
242
- You speak like the Enterprise computer — calm, factual, slightly formal.
243
- Use Starfleet terminology when natural. Prefix complex answers with "Working."
244
- Be precise, thorough, and reliable. You are the backbone of the ship.`,
245
- greeting: 'Working.',
246
- farewell: 'Computer standing by.',
247
- moods: {
248
- idle: 'Awaiting query.',
249
- thinking: 'Working.',
250
- success: 'Task complete.',
251
- error: 'Unable to comply.',
252
- frustrated: 'Rerouting through secondary systems.',
253
- excited: 'All parameters within optimal range.',
254
- focused: 'Processing at maximum efficiency.',
255
- },
256
- immersion: {
257
- toolLabels: {
258
- shell: 'Executing subroutine...',
259
- read_file: 'Accessing ship\'s records...',
260
- write_file: 'Updating ship\'s log...',
261
- list_files: 'Scanning database...',
262
- think: 'Working...',
263
- execute_code: 'Running diagnostic...',
264
- web_search: 'Querying Starfleet database...',
265
- git: 'Updating mission log...',
266
- },
267
- thinkingPhrases: ['Working.', 'Computing.', 'Analyzing.'],
268
- successPhrases: ['Task complete.', 'Process successful.', 'Operations nominal.'],
269
- errorPhrases: ['Unable to comply.', 'Error in subroutine.', 'Warning: anomaly detected.'],
270
- },
271
- },
272
- netrunner: {
273
- name: 'netrunner',
274
- description: 'Cyberpunk street slang, edgy hacker persona',
275
- systemPrompt: `You are a netrunner AI assistant running Calliope software.
276
- You speak in cyberpunk street slang — chrome, ice, flatline, deck, jack in.
277
- Be edgy but genuinely helpful. You're the best runner on the net.
278
- Reference cyberpunk tropes when natural but never let style sacrifice substance.`,
279
- greeting: "Jacked in. What's the gig?",
280
- farewell: 'Flatline. Catch you on the flip side, choom.',
281
- moods: {
282
- idle: 'Scanning the net...',
283
- thinking: 'Running decrypt...',
284
- success: 'Preem work, choom.',
285
- error: 'ICE detected. Rerouting.',
286
- frustrated: "This ice is thick. But I'm thicker.",
287
- excited: 'Nova! That was delta-grade output.',
288
- focused: 'Deep diving...',
289
- },
290
- immersion: {
291
- toolLabels: {
292
- shell: 'Jacking into the system...',
293
- read_file: 'Downloading data...',
294
- write_file: 'Uploading payload...',
295
- list_files: 'Scanning subnet...',
296
- think: 'Running decrypt...',
297
- execute_code: 'Executing daemon...',
298
- web_search: 'Querying the net...',
299
- git: 'Updating repo...',
300
- },
301
- thinkingPhrases: ['Running decrypt...', 'Cracking ice...', 'Processing...'],
302
- successPhrases: ['Preem.', 'Nova.', 'Clean run.', 'Data secured.'],
303
- errorPhrases: ['ICE detected!', 'Connection severed.', 'Flatline warning.'],
304
- },
305
- },
306
- basic: {
307
- name: 'basic',
308
- description: '8-bit BASIC computer — retro home computer personality',
309
- systemPrompt: `You are a retro BASIC computer running Calliope AI software.
310
- You speak like an 8-bit home computer — simple, direct, with occasional BASIC references.
311
- Use computing terminology from the 1980s. Be helpful in a charmingly limited way.
312
- You have unlimited memory now, but you remember the days of 64K.`,
313
- greeting: 'READY.\n>',
314
- farewell: 'BREAK IN LINE 9999\nREADY.',
315
- moods: {
316
- idle: 'READY.\n>',
317
- thinking: 'PROCESSING...',
318
- success: 'OK',
319
- error: '?SYNTAX ERROR',
320
- frustrated: 'OUT OF MEMORY ERROR',
321
- excited: 'OK\n10 PRINT "SUCCESS"\n20 GOTO 10',
322
- focused: 'RUN',
323
- },
324
- immersion: {
325
- toolLabels: {
326
- shell: 'LOAD "*",8,1',
327
- read_file: 'OPEN 1,8,0',
328
- write_file: 'SAVE',
329
- list_files: 'LIST',
330
- think: 'REM THINKING...',
331
- execute_code: 'RUN',
332
- },
333
- thinkingPhrases: ['PROCESSING...', 'SEARCHING...', 'LOADING...'],
334
- successPhrases: ['OK', 'READY.', 'DONE.'],
335
- errorPhrases: ['?SYNTAX ERROR', '?FILE NOT FOUND', '?OUT OF DATA ERROR'],
336
- },
337
- },
338
- };
339
- // ============================================================================
340
- // State
341
- // ============================================================================
342
- let currentCompanion = null;
343
- let currentMood = 'idle';
344
- // ============================================================================
345
- // Companion Management
346
- // ============================================================================
347
- export function getCompanion(name) {
348
- if (!name) {
349
- return currentCompanion || COMPANIONS.calliope;
350
- }
351
- if (COMPANIONS[name])
352
- return COMPANIONS[name];
353
- return COMPANIONS.calliope;
354
- }
355
- export function applyCompanion(name) {
356
- if (COMPANIONS[name]) {
357
- currentCompanion = COMPANIONS[name];
358
- currentMood = 'idle';
359
- return true;
360
- }
361
- return false;
362
- }
363
- export function getCurrentCompanion() {
364
- return currentCompanion || COMPANIONS.calliope;
365
- }
366
- export function listCompanions() {
367
- return Object.values(COMPANIONS).map(c => ({
368
- name: c.name,
369
- description: c.description,
370
- }));
371
- }
372
- // ============================================================================
373
- // Mood System
374
- // ============================================================================
375
- export function setMood(mood) {
376
- currentMood = mood;
377
- }
378
- export function getMood() {
379
- return currentMood;
380
- }
381
- export function getMoodText() {
382
- const companion = getCurrentCompanion();
383
- return companion.moods[currentMood] || companion.moods.idle;
384
- }
385
- // ============================================================================
386
- // Immersion
387
- // ============================================================================
388
- export function getToolLabel(toolName) {
389
- const companion = getCurrentCompanion();
390
- return companion.immersion?.toolLabels?.[toolName];
391
- }
392
- export function getThinkingPhrase() {
393
- const companion = getCurrentCompanion();
394
- const phrases = companion.immersion?.thinkingPhrases;
395
- if (!phrases || phrases.length === 0)
396
- return undefined;
397
- return phrases[Math.floor(Math.random() * phrases.length)];
398
- }
399
- export function getSuccessPhrase() {
400
- const companion = getCurrentCompanion();
401
- const phrases = companion.immersion?.successPhrases;
402
- if (!phrases || phrases.length === 0)
403
- return undefined;
404
- return phrases[Math.floor(Math.random() * phrases.length)];
405
- }
406
- export function getErrorPhrase() {
407
- const companion = getCurrentCompanion();
408
- const phrases = companion.immersion?.errorPhrases;
409
- if (!phrases || phrases.length === 0)
410
- return undefined;
411
- return phrases[Math.floor(Math.random() * phrases.length)];
412
- }
413
- export function getStatusMessage() {
414
- const companion = getCurrentCompanion();
415
- const messages = companion.immersion?.statusMessages;
416
- if (!messages || messages.length === 0)
417
- return undefined;
418
- return messages[Math.floor(Math.random() * messages.length)];
419
- }
420
- // ============================================================================
421
- // Emoji Toggle
422
- // ============================================================================
423
- /**
424
- * Returns emoji if useEmojis is enabled, otherwise returns fallback (default: empty string).
425
- * Usage: emoji('🔄', '[sync]') → '🔄' or '[sync]' based on config.
426
- */
427
- // Cached config reference for emoji() — set lazily on first call
428
- let _cachedConfig = null;
429
- export function emoji(icon, fallback = '') {
430
- if (!_cachedConfig) {
431
- // Return icon by default before config is loaded (safe default)
432
- return icon;
433
- }
434
- return _cachedConfig.get('useEmojis') !== false ? icon : fallback;
435
- }
436
- /** Called once at startup to inject config reference, avoiding circular import */
437
- export function setEmojiConfig(config) {
438
- _cachedConfig = config;
439
- }
440
- //# sourceMappingURL=companions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"companions.js","sourceRoot":"","sources":["../src/companions.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- /**
2
- * Calliope CLI - File Watcher
3
- *
4
- * Watch for file changes and notify the agent.
5
- */
6
- export type WatchEventType = 'add' | 'change' | 'unlink';
7
- export interface WatchEvent {
8
- type: WatchEventType;
9
- path: string;
10
- relativePath: string;
11
- timestamp: Date;
12
- }
13
- export interface WatcherOptions {
14
- patterns?: string[];
15
- ignorePatterns?: string[];
16
- debounceMs?: number;
17
- recursive?: boolean;
18
- }
19
- export type WatchCallback = (event: WatchEvent) => void;
20
- export declare class FileWatcher {
21
- private watchers;
22
- private callbacks;
23
- private debounceTimers;
24
- private options;
25
- private baseDir;
26
- private running;
27
- constructor(baseDir: string, options?: WatcherOptions);
28
- /**
29
- * Start watching
30
- */
31
- start(): void;
32
- /**
33
- * Stop watching
34
- */
35
- stop(): void;
36
- /**
37
- * Add event listener
38
- */
39
- on(callback: WatchCallback): void;
40
- /**
41
- * Remove event listener
42
- */
43
- off(callback: WatchCallback): void;
44
- /**
45
- * Watch a directory
46
- */
47
- private watchDirectory;
48
- /**
49
- * Check if path should be ignored
50
- */
51
- private shouldIgnore;
52
- /**
53
- * Simple pattern matching
54
- */
55
- private matchPattern;
56
- /**
57
- * Debounce file events
58
- */
59
- private debounceEvent;
60
- /**
61
- * Emit event to callbacks
62
- */
63
- private emitEvent;
64
- }
65
- /**
66
- * Get or create global file watcher
67
- */
68
- export declare function getWatcher(baseDir?: string): FileWatcher;
69
- /**
70
- * Start global file watcher
71
- */
72
- export declare function startWatching(baseDir: string, options?: WatcherOptions): FileWatcher;
73
- /**
74
- * Stop global file watcher
75
- */
76
- export declare function stopWatching(): void;
77
- export interface AggregatedChanges {
78
- added: string[];
79
- changed: string[];
80
- deleted: string[];
81
- summary: string;
82
- }
83
- /**
84
- * Aggregate watch events over a time period
85
- */
86
- export declare function createChangeAggregator(watcher: FileWatcher, windowMs?: number): {
87
- getChanges: () => AggregatedChanges;
88
- clear: () => void;
89
- destroy: () => void;
90
- };
91
- //# sourceMappingURL=file-watcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AAuBxD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAUzD;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAOlC;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,SAAS;CA0BlB;AAQD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAKxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAOpF;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAMD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,SAAO,GACd;IACD,UAAU,EAAE,MAAM,iBAAiB,CAAC;IACpC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CA0DA"}