@swarmify/agents-cli 1.13.4 → 1.14.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 (567) hide show
  1. package/README.md +2 -319
  2. package/bin/agents.js +2 -0
  3. package/package.json +13 -79
  4. package/scripts/postinstall.js +4 -71
  5. package/CHANGELOG.md +0 -316
  6. package/LICENSE +0 -21
  7. package/dist/commands/__tests__/sessions-tail.test.d.ts +0 -2
  8. package/dist/commands/__tests__/sessions-tail.test.d.ts.map +0 -1
  9. package/dist/commands/__tests__/sessions-tail.test.js +0 -108
  10. package/dist/commands/__tests__/sessions-tail.test.js.map +0 -1
  11. package/dist/commands/__tests__/sessions.test.d.ts +0 -2
  12. package/dist/commands/__tests__/sessions.test.d.ts.map +0 -1
  13. package/dist/commands/__tests__/sessions.test.js +0 -636
  14. package/dist/commands/__tests__/sessions.test.js.map +0 -1
  15. package/dist/commands/cloud.d.ts +0 -11
  16. package/dist/commands/cloud.d.ts.map +0 -1
  17. package/dist/commands/cloud.js +0 -363
  18. package/dist/commands/cloud.js.map +0 -1
  19. package/dist/commands/commands.d.ts +0 -12
  20. package/dist/commands/commands.d.ts.map +0 -1
  21. package/dist/commands/commands.js +0 -629
  22. package/dist/commands/commands.js.map +0 -1
  23. package/dist/commands/daemon.d.ts +0 -11
  24. package/dist/commands/daemon.d.ts.map +0 -1
  25. package/dist/commands/daemon.js +0 -119
  26. package/dist/commands/daemon.js.map +0 -1
  27. package/dist/commands/drive.d.ts +0 -11
  28. package/dist/commands/drive.d.ts.map +0 -1
  29. package/dist/commands/drive.js +0 -175
  30. package/dist/commands/drive.js.map +0 -1
  31. package/dist/commands/exec.d.ts +0 -11
  32. package/dist/commands/exec.d.ts.map +0 -1
  33. package/dist/commands/exec.js +0 -251
  34. package/dist/commands/exec.js.map +0 -1
  35. package/dist/commands/factory.d.ts +0 -11
  36. package/dist/commands/factory.d.ts.map +0 -1
  37. package/dist/commands/factory.js +0 -445
  38. package/dist/commands/factory.js.map +0 -1
  39. package/dist/commands/fork.d.ts +0 -11
  40. package/dist/commands/fork.d.ts.map +0 -1
  41. package/dist/commands/fork.js +0 -147
  42. package/dist/commands/fork.js.map +0 -1
  43. package/dist/commands/hooks.d.ts +0 -12
  44. package/dist/commands/hooks.d.ts.map +0 -1
  45. package/dist/commands/hooks.js +0 -690
  46. package/dist/commands/hooks.js.map +0 -1
  47. package/dist/commands/init.d.ts +0 -15
  48. package/dist/commands/init.d.ts.map +0 -1
  49. package/dist/commands/init.js +0 -137
  50. package/dist/commands/init.js.map +0 -1
  51. package/dist/commands/mcp.d.ts +0 -12
  52. package/dist/commands/mcp.d.ts.map +0 -1
  53. package/dist/commands/mcp.js +0 -583
  54. package/dist/commands/mcp.js.map +0 -1
  55. package/dist/commands/models.d.ts +0 -11
  56. package/dist/commands/models.d.ts.map +0 -1
  57. package/dist/commands/models.js +0 -170
  58. package/dist/commands/models.js.map +0 -1
  59. package/dist/commands/packages.d.ts +0 -11
  60. package/dist/commands/packages.d.ts.map +0 -1
  61. package/dist/commands/packages.js +0 -551
  62. package/dist/commands/packages.js.map +0 -1
  63. package/dist/commands/permissions.d.ts +0 -12
  64. package/dist/commands/permissions.d.ts.map +0 -1
  65. package/dist/commands/permissions.js +0 -724
  66. package/dist/commands/permissions.js.map +0 -1
  67. package/dist/commands/plugins.d.ts +0 -11
  68. package/dist/commands/plugins.d.ts.map +0 -1
  69. package/dist/commands/plugins.js +0 -393
  70. package/dist/commands/plugins.js.map +0 -1
  71. package/dist/commands/profiles.d.ts +0 -12
  72. package/dist/commands/profiles.d.ts.map +0 -1
  73. package/dist/commands/profiles.js +0 -255
  74. package/dist/commands/profiles.js.map +0 -1
  75. package/dist/commands/pty.d.ts +0 -21
  76. package/dist/commands/pty.d.ts.map +0 -1
  77. package/dist/commands/pty.js +0 -391
  78. package/dist/commands/pty.js.map +0 -1
  79. package/dist/commands/pull.d.ts +0 -11
  80. package/dist/commands/pull.d.ts.map +0 -1
  81. package/dist/commands/pull.js +0 -456
  82. package/dist/commands/pull.js.map +0 -1
  83. package/dist/commands/push.d.ts +0 -11
  84. package/dist/commands/push.d.ts.map +0 -1
  85. package/dist/commands/push.js +0 -188
  86. package/dist/commands/push.js.map +0 -1
  87. package/dist/commands/refresh-memory.d.ts +0 -16
  88. package/dist/commands/refresh-memory.d.ts.map +0 -1
  89. package/dist/commands/refresh-memory.js +0 -52
  90. package/dist/commands/refresh-memory.js.map +0 -1
  91. package/dist/commands/resource-view.d.ts +0 -39
  92. package/dist/commands/resource-view.d.ts.map +0 -1
  93. package/dist/commands/resource-view.js +0 -197
  94. package/dist/commands/resource-view.js.map +0 -1
  95. package/dist/commands/routines.d.ts +0 -11
  96. package/dist/commands/routines.d.ts.map +0 -1
  97. package/dist/commands/routines.js +0 -590
  98. package/dist/commands/routines.js.map +0 -1
  99. package/dist/commands/rules.d.ts +0 -12
  100. package/dist/commands/rules.d.ts.map +0 -1
  101. package/dist/commands/rules.js +0 -489
  102. package/dist/commands/rules.js.map +0 -1
  103. package/dist/commands/secrets.d.ts +0 -11
  104. package/dist/commands/secrets.d.ts.map +0 -1
  105. package/dist/commands/secrets.js +0 -352
  106. package/dist/commands/secrets.js.map +0 -1
  107. package/dist/commands/sessions-picker.d.ts +0 -18
  108. package/dist/commands/sessions-picker.d.ts.map +0 -1
  109. package/dist/commands/sessions-picker.js +0 -265
  110. package/dist/commands/sessions-picker.js.map +0 -1
  111. package/dist/commands/sessions-tail.d.ts +0 -20
  112. package/dist/commands/sessions-tail.d.ts.map +0 -1
  113. package/dist/commands/sessions-tail.js +0 -236
  114. package/dist/commands/sessions-tail.js.map +0 -1
  115. package/dist/commands/sessions.d.ts +0 -18
  116. package/dist/commands/sessions.d.ts.map +0 -1
  117. package/dist/commands/sessions.js +0 -1173
  118. package/dist/commands/sessions.js.map +0 -1
  119. package/dist/commands/skills.d.ts +0 -12
  120. package/dist/commands/skills.d.ts.map +0 -1
  121. package/dist/commands/skills.js +0 -717
  122. package/dist/commands/skills.js.map +0 -1
  123. package/dist/commands/status.d.ts +0 -10
  124. package/dist/commands/status.d.ts.map +0 -1
  125. package/dist/commands/status.js +0 -26
  126. package/dist/commands/status.js.map +0 -1
  127. package/dist/commands/subagents.d.ts +0 -11
  128. package/dist/commands/subagents.d.ts.map +0 -1
  129. package/dist/commands/subagents.js +0 -361
  130. package/dist/commands/subagents.js.map +0 -1
  131. package/dist/commands/sync.d.ts +0 -11
  132. package/dist/commands/sync.d.ts.map +0 -1
  133. package/dist/commands/sync.js +0 -70
  134. package/dist/commands/sync.js.map +0 -1
  135. package/dist/commands/teams-picker.d.ts +0 -18
  136. package/dist/commands/teams-picker.d.ts.map +0 -1
  137. package/dist/commands/teams-picker.js +0 -290
  138. package/dist/commands/teams-picker.js.map +0 -1
  139. package/dist/commands/teams.d.ts +0 -18
  140. package/dist/commands/teams.d.ts.map +0 -1
  141. package/dist/commands/teams.js +0 -1144
  142. package/dist/commands/teams.js.map +0 -1
  143. package/dist/commands/utils.d.ts +0 -45
  144. package/dist/commands/utils.d.ts.map +0 -1
  145. package/dist/commands/utils.js +0 -106
  146. package/dist/commands/utils.js.map +0 -1
  147. package/dist/commands/versions.d.ts +0 -11
  148. package/dist/commands/versions.d.ts.map +0 -1
  149. package/dist/commands/versions.js +0 -701
  150. package/dist/commands/versions.js.map +0 -1
  151. package/dist/commands/view.d.ts +0 -43
  152. package/dist/commands/view.d.ts.map +0 -1
  153. package/dist/commands/view.js +0 -894
  154. package/dist/commands/view.js.map +0 -1
  155. package/dist/index.d.ts +0 -9
  156. package/dist/index.d.ts.map +0 -1
  157. package/dist/index.js +0 -496
  158. package/dist/index.js.map +0 -1
  159. package/dist/lib/__tests__/bugfixes.test.d.ts +0 -2
  160. package/dist/lib/__tests__/bugfixes.test.d.ts.map +0 -1
  161. package/dist/lib/__tests__/bugfixes.test.js +0 -192
  162. package/dist/lib/__tests__/bugfixes.test.js.map +0 -1
  163. package/dist/lib/__tests__/exec.test.d.ts +0 -2
  164. package/dist/lib/__tests__/exec.test.d.ts.map +0 -1
  165. package/dist/lib/__tests__/exec.test.js +0 -446
  166. package/dist/lib/__tests__/exec.test.js.map +0 -1
  167. package/dist/lib/__tests__/git-sync.test.d.ts +0 -2
  168. package/dist/lib/__tests__/git-sync.test.d.ts.map +0 -1
  169. package/dist/lib/__tests__/git-sync.test.js +0 -138
  170. package/dist/lib/__tests__/git-sync.test.js.map +0 -1
  171. package/dist/lib/__tests__/hooks.test.d.ts +0 -2
  172. package/dist/lib/__tests__/hooks.test.d.ts.map +0 -1
  173. package/dist/lib/__tests__/hooks.test.js +0 -203
  174. package/dist/lib/__tests__/hooks.test.js.map +0 -1
  175. package/dist/lib/__tests__/memory-compile.test.d.ts +0 -2
  176. package/dist/lib/__tests__/memory-compile.test.d.ts.map +0 -1
  177. package/dist/lib/__tests__/memory-compile.test.js +0 -95
  178. package/dist/lib/__tests__/memory-compile.test.js.map +0 -1
  179. package/dist/lib/__tests__/models.test.d.ts +0 -2
  180. package/dist/lib/__tests__/models.test.d.ts.map +0 -1
  181. package/dist/lib/__tests__/models.test.js +0 -239
  182. package/dist/lib/__tests__/models.test.js.map +0 -1
  183. package/dist/lib/__tests__/rotate.test.d.ts +0 -2
  184. package/dist/lib/__tests__/rotate.test.d.ts.map +0 -1
  185. package/dist/lib/__tests__/rotate.test.js +0 -80
  186. package/dist/lib/__tests__/rotate.test.js.map +0 -1
  187. package/dist/lib/__tests__/secrets-bundles.test.d.ts +0 -2
  188. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +0 -1
  189. package/dist/lib/__tests__/secrets-bundles.test.js +0 -104
  190. package/dist/lib/__tests__/secrets-bundles.test.js.map +0 -1
  191. package/dist/lib/__tests__/secrets.test.d.ts +0 -2
  192. package/dist/lib/__tests__/secrets.test.d.ts.map +0 -1
  193. package/dist/lib/__tests__/secrets.test.js +0 -90
  194. package/dist/lib/__tests__/secrets.test.js.map +0 -1
  195. package/dist/lib/__tests__/shims.test.d.ts +0 -2
  196. package/dist/lib/__tests__/shims.test.d.ts.map +0 -1
  197. package/dist/lib/__tests__/shims.test.js +0 -57
  198. package/dist/lib/__tests__/shims.test.js.map +0 -1
  199. package/dist/lib/__tests__/usage.test.d.ts +0 -2
  200. package/dist/lib/__tests__/usage.test.d.ts.map +0 -1
  201. package/dist/lib/__tests__/usage.test.js +0 -220
  202. package/dist/lib/__tests__/usage.test.js.map +0 -1
  203. package/dist/lib/__tests__/versions.test.d.ts +0 -2
  204. package/dist/lib/__tests__/versions.test.d.ts.map +0 -1
  205. package/dist/lib/__tests__/versions.test.js +0 -63
  206. package/dist/lib/__tests__/versions.test.js.map +0 -1
  207. package/dist/lib/agents.d.ts +0 -158
  208. package/dist/lib/agents.d.ts.map +0 -1
  209. package/dist/lib/agents.js +0 -1159
  210. package/dist/lib/agents.js.map +0 -1
  211. package/dist/lib/artifact-actions.d.ts +0 -27
  212. package/dist/lib/artifact-actions.d.ts.map +0 -1
  213. package/dist/lib/artifact-actions.js +0 -58
  214. package/dist/lib/artifact-actions.js.map +0 -1
  215. package/dist/lib/cloud/codex.d.ts +0 -26
  216. package/dist/lib/cloud/codex.d.ts.map +0 -1
  217. package/dist/lib/cloud/codex.js +0 -237
  218. package/dist/lib/cloud/codex.js.map +0 -1
  219. package/dist/lib/cloud/factory.d.ts +0 -32
  220. package/dist/lib/cloud/factory.d.ts.map +0 -1
  221. package/dist/lib/cloud/factory.js +0 -43
  222. package/dist/lib/cloud/factory.js.map +0 -1
  223. package/dist/lib/cloud/registry.d.ts +0 -16
  224. package/dist/lib/cloud/registry.d.ts.map +0 -1
  225. package/dist/lib/cloud/registry.js +0 -68
  226. package/dist/lib/cloud/registry.js.map +0 -1
  227. package/dist/lib/cloud/rush.d.ts +0 -37
  228. package/dist/lib/cloud/rush.d.ts.map +0 -1
  229. package/dist/lib/cloud/rush.js +0 -230
  230. package/dist/lib/cloud/rush.js.map +0 -1
  231. package/dist/lib/cloud/rush.test.d.ts +0 -2
  232. package/dist/lib/cloud/rush.test.d.ts.map +0 -1
  233. package/dist/lib/cloud/rush.test.js +0 -63
  234. package/dist/lib/cloud/rush.test.js.map +0 -1
  235. package/dist/lib/cloud/store.d.ts +0 -23
  236. package/dist/lib/cloud/store.d.ts.map +0 -1
  237. package/dist/lib/cloud/store.js +0 -116
  238. package/dist/lib/cloud/store.js.map +0 -1
  239. package/dist/lib/cloud/stream.d.ts +0 -24
  240. package/dist/lib/cloud/stream.d.ts.map +0 -1
  241. package/dist/lib/cloud/stream.js +0 -145
  242. package/dist/lib/cloud/stream.js.map +0 -1
  243. package/dist/lib/cloud/types.d.ts +0 -109
  244. package/dist/lib/cloud/types.d.ts.map +0 -1
  245. package/dist/lib/cloud/types.js +0 -33
  246. package/dist/lib/cloud/types.js.map +0 -1
  247. package/dist/lib/cloud/types.test.d.ts +0 -2
  248. package/dist/lib/cloud/types.test.d.ts.map +0 -1
  249. package/dist/lib/cloud/types.test.js +0 -41
  250. package/dist/lib/cloud/types.test.js.map +0 -1
  251. package/dist/lib/commands.d.ts +0 -141
  252. package/dist/lib/commands.d.ts.map +0 -1
  253. package/dist/lib/commands.js +0 -514
  254. package/dist/lib/commands.js.map +0 -1
  255. package/dist/lib/convert.d.ts +0 -21
  256. package/dist/lib/convert.d.ts.map +0 -1
  257. package/dist/lib/convert.js +0 -54
  258. package/dist/lib/convert.js.map +0 -1
  259. package/dist/lib/daemon.d.ts +0 -43
  260. package/dist/lib/daemon.d.ts.map +0 -1
  261. package/dist/lib/daemon.js +0 -332
  262. package/dist/lib/daemon.js.map +0 -1
  263. package/dist/lib/drive-sync.d.ts +0 -46
  264. package/dist/lib/drive-sync.d.ts.map +0 -1
  265. package/dist/lib/drive-sync.js +0 -209
  266. package/dist/lib/drive-sync.js.map +0 -1
  267. package/dist/lib/exec.d.ts +0 -101
  268. package/dist/lib/exec.d.ts.map +0 -1
  269. package/dist/lib/exec.js +0 -450
  270. package/dist/lib/exec.js.map +0 -1
  271. package/dist/lib/factory/__tests__/config.test.d.ts +0 -2
  272. package/dist/lib/factory/__tests__/config.test.d.ts.map +0 -1
  273. package/dist/lib/factory/__tests__/config.test.js +0 -128
  274. package/dist/lib/factory/__tests__/config.test.js.map +0 -1
  275. package/dist/lib/factory/config.d.ts +0 -49
  276. package/dist/lib/factory/config.d.ts.map +0 -1
  277. package/dist/lib/factory/config.js +0 -127
  278. package/dist/lib/factory/config.js.map +0 -1
  279. package/dist/lib/factory.d.ts +0 -57
  280. package/dist/lib/factory.d.ts.map +0 -1
  281. package/dist/lib/factory.js +0 -107
  282. package/dist/lib/factory.js.map +0 -1
  283. package/dist/lib/git.d.ts +0 -157
  284. package/dist/lib/git.d.ts.map +0 -1
  285. package/dist/lib/git.js +0 -647
  286. package/dist/lib/git.js.map +0 -1
  287. package/dist/lib/help.d.ts +0 -10
  288. package/dist/lib/help.d.ts.map +0 -1
  289. package/dist/lib/help.js +0 -66
  290. package/dist/lib/help.js.map +0 -1
  291. package/dist/lib/hooks.d.ts +0 -125
  292. package/dist/lib/hooks.d.ts.map +0 -1
  293. package/dist/lib/hooks.js +0 -846
  294. package/dist/lib/hooks.js.map +0 -1
  295. package/dist/lib/ledger/__tests__/local.test.d.ts +0 -2
  296. package/dist/lib/ledger/__tests__/local.test.d.ts.map +0 -1
  297. package/dist/lib/ledger/__tests__/local.test.js +0 -177
  298. package/dist/lib/ledger/__tests__/local.test.js.map +0 -1
  299. package/dist/lib/ledger/__tests__/sync.test.d.ts +0 -2
  300. package/dist/lib/ledger/__tests__/sync.test.d.ts.map +0 -1
  301. package/dist/lib/ledger/__tests__/sync.test.js +0 -117
  302. package/dist/lib/ledger/__tests__/sync.test.js.map +0 -1
  303. package/dist/lib/ledger/index.d.ts +0 -18
  304. package/dist/lib/ledger/index.d.ts.map +0 -1
  305. package/dist/lib/ledger/index.js +0 -32
  306. package/dist/lib/ledger/index.js.map +0 -1
  307. package/dist/lib/ledger/local.d.ts +0 -22
  308. package/dist/lib/ledger/local.d.ts.map +0 -1
  309. package/dist/lib/ledger/local.js +0 -333
  310. package/dist/lib/ledger/local.js.map +0 -1
  311. package/dist/lib/ledger/r2.d.ts +0 -41
  312. package/dist/lib/ledger/r2.d.ts.map +0 -1
  313. package/dist/lib/ledger/r2.js +0 -335
  314. package/dist/lib/ledger/r2.js.map +0 -1
  315. package/dist/lib/ledger/sync.d.ts +0 -33
  316. package/dist/lib/ledger/sync.d.ts.map +0 -1
  317. package/dist/lib/ledger/sync.js +0 -106
  318. package/dist/lib/ledger/sync.js.map +0 -1
  319. package/dist/lib/ledger/types.d.ts +0 -100
  320. package/dist/lib/ledger/types.d.ts.map +0 -1
  321. package/dist/lib/ledger/types.js +0 -21
  322. package/dist/lib/ledger/types.js.map +0 -1
  323. package/dist/lib/manifest.d.ts +0 -14
  324. package/dist/lib/manifest.d.ts.map +0 -1
  325. package/dist/lib/manifest.js +0 -48
  326. package/dist/lib/manifest.js.map +0 -1
  327. package/dist/lib/markdown.d.ts +0 -5
  328. package/dist/lib/markdown.d.ts.map +0 -1
  329. package/dist/lib/markdown.js +0 -17
  330. package/dist/lib/markdown.js.map +0 -1
  331. package/dist/lib/mcp.d.ts +0 -64
  332. package/dist/lib/mcp.d.ts.map +0 -1
  333. package/dist/lib/mcp.js +0 -327
  334. package/dist/lib/mcp.js.map +0 -1
  335. package/dist/lib/memory-compile.d.ts +0 -65
  336. package/dist/lib/memory-compile.d.ts.map +0 -1
  337. package/dist/lib/memory-compile.js +0 -174
  338. package/dist/lib/memory-compile.js.map +0 -1
  339. package/dist/lib/memory.d.ts +0 -64
  340. package/dist/lib/memory.d.ts.map +0 -1
  341. package/dist/lib/memory.js +0 -275
  342. package/dist/lib/memory.js.map +0 -1
  343. package/dist/lib/models.d.ts +0 -98
  344. package/dist/lib/models.d.ts.map +0 -1
  345. package/dist/lib/models.js +0 -728
  346. package/dist/lib/models.js.map +0 -1
  347. package/dist/lib/permissions.d.ts +0 -227
  348. package/dist/lib/permissions.d.ts.map +0 -1
  349. package/dist/lib/permissions.js +0 -1085
  350. package/dist/lib/permissions.js.map +0 -1
  351. package/dist/lib/picker.d.ts +0 -27
  352. package/dist/lib/picker.d.ts.map +0 -1
  353. package/dist/lib/picker.js +0 -110
  354. package/dist/lib/picker.js.map +0 -1
  355. package/dist/lib/plugins.d.ts +0 -80
  356. package/dist/lib/plugins.d.ts.map +0 -1
  357. package/dist/lib/plugins.js +0 -556
  358. package/dist/lib/plugins.js.map +0 -1
  359. package/dist/lib/profiles-keychain.d.ts +0 -11
  360. package/dist/lib/profiles-keychain.d.ts.map +0 -1
  361. package/dist/lib/profiles-keychain.js +0 -14
  362. package/dist/lib/profiles-keychain.js.map +0 -1
  363. package/dist/lib/profiles-presets.d.ts +0 -25
  364. package/dist/lib/profiles-presets.d.ts.map +0 -1
  365. package/dist/lib/profiles-presets.js +0 -104
  366. package/dist/lib/profiles-presets.js.map +0 -1
  367. package/dist/lib/profiles.d.ts +0 -70
  368. package/dist/lib/profiles.d.ts.map +0 -1
  369. package/dist/lib/profiles.js +0 -145
  370. package/dist/lib/profiles.js.map +0 -1
  371. package/dist/lib/pty-client.d.ts +0 -23
  372. package/dist/lib/pty-client.d.ts.map +0 -1
  373. package/dist/lib/pty-client.js +0 -181
  374. package/dist/lib/pty-client.js.map +0 -1
  375. package/dist/lib/pty-server.d.ts +0 -21
  376. package/dist/lib/pty-server.d.ts.map +0 -1
  377. package/dist/lib/pty-server.js +0 -427
  378. package/dist/lib/pty-server.js.map +0 -1
  379. package/dist/lib/registry.d.ts +0 -45
  380. package/dist/lib/registry.d.ts.map +0 -1
  381. package/dist/lib/registry.js +0 -220
  382. package/dist/lib/registry.js.map +0 -1
  383. package/dist/lib/resources.d.ts +0 -55
  384. package/dist/lib/resources.d.ts.map +0 -1
  385. package/dist/lib/resources.js +0 -103
  386. package/dist/lib/resources.js.map +0 -1
  387. package/dist/lib/rotate.d.ts +0 -58
  388. package/dist/lib/rotate.d.ts.map +0 -1
  389. package/dist/lib/rotate.js +0 -93
  390. package/dist/lib/rotate.js.map +0 -1
  391. package/dist/lib/routines.d.ts +0 -99
  392. package/dist/lib/routines.d.ts.map +0 -1
  393. package/dist/lib/routines.js +0 -352
  394. package/dist/lib/routines.js.map +0 -1
  395. package/dist/lib/runner.d.ts +0 -26
  396. package/dist/lib/runner.d.ts.map +0 -1
  397. package/dist/lib/runner.js +0 -325
  398. package/dist/lib/runner.js.map +0 -1
  399. package/dist/lib/sandbox.d.ts +0 -26
  400. package/dist/lib/sandbox.d.ts.map +0 -1
  401. package/dist/lib/sandbox.js +0 -218
  402. package/dist/lib/sandbox.js.map +0 -1
  403. package/dist/lib/scheduler.d.ts +0 -26
  404. package/dist/lib/scheduler.d.ts.map +0 -1
  405. package/dist/lib/scheduler.js +0 -77
  406. package/dist/lib/scheduler.js.map +0 -1
  407. package/dist/lib/secrets-bundles.d.ts +0 -38
  408. package/dist/lib/secrets-bundles.d.ts.map +0 -1
  409. package/dist/lib/secrets-bundles.js +0 -176
  410. package/dist/lib/secrets-bundles.js.map +0 -1
  411. package/dist/lib/secrets.d.ts +0 -53
  412. package/dist/lib/secrets.d.ts.map +0 -1
  413. package/dist/lib/secrets.js +0 -140
  414. package/dist/lib/secrets.js.map +0 -1
  415. package/dist/lib/session/__tests__/db.test.d.ts +0 -2
  416. package/dist/lib/session/__tests__/db.test.d.ts.map +0 -1
  417. package/dist/lib/session/__tests__/db.test.js +0 -54
  418. package/dist/lib/session/__tests__/db.test.js.map +0 -1
  419. package/dist/lib/session/__tests__/discover.test.d.ts +0 -2
  420. package/dist/lib/session/__tests__/discover.test.d.ts.map +0 -1
  421. package/dist/lib/session/__tests__/discover.test.js +0 -63
  422. package/dist/lib/session/__tests__/discover.test.js.map +0 -1
  423. package/dist/lib/session/__tests__/prompt.test.d.ts +0 -2
  424. package/dist/lib/session/__tests__/prompt.test.d.ts.map +0 -1
  425. package/dist/lib/session/__tests__/prompt.test.js +0 -44
  426. package/dist/lib/session/__tests__/prompt.test.js.map +0 -1
  427. package/dist/lib/session/__tests__/render.test.d.ts +0 -2
  428. package/dist/lib/session/__tests__/render.test.d.ts.map +0 -1
  429. package/dist/lib/session/__tests__/render.test.js +0 -602
  430. package/dist/lib/session/__tests__/render.test.js.map +0 -1
  431. package/dist/lib/session/active.d.ts +0 -44
  432. package/dist/lib/session/active.d.ts.map +0 -1
  433. package/dist/lib/session/active.js +0 -379
  434. package/dist/lib/session/active.js.map +0 -1
  435. package/dist/lib/session/artifacts.d.ts +0 -15
  436. package/dist/lib/session/artifacts.d.ts.map +0 -1
  437. package/dist/lib/session/artifacts.js +0 -86
  438. package/dist/lib/session/artifacts.js.map +0 -1
  439. package/dist/lib/session/db.d.ts +0 -140
  440. package/dist/lib/session/db.d.ts.map +0 -1
  441. package/dist/lib/session/db.js +0 -599
  442. package/dist/lib/session/db.js.map +0 -1
  443. package/dist/lib/session/discover.d.ts +0 -72
  444. package/dist/lib/session/discover.d.ts.map +0 -1
  445. package/dist/lib/session/discover.js +0 -1315
  446. package/dist/lib/session/discover.js.map +0 -1
  447. package/dist/lib/session/parse.d.ts +0 -34
  448. package/dist/lib/session/parse.d.ts.map +0 -1
  449. package/dist/lib/session/parse.js +0 -663
  450. package/dist/lib/session/parse.js.map +0 -1
  451. package/dist/lib/session/prompt.d.ts +0 -13
  452. package/dist/lib/session/prompt.d.ts.map +0 -1
  453. package/dist/lib/session/prompt.js +0 -79
  454. package/dist/lib/session/prompt.js.map +0 -1
  455. package/dist/lib/session/prompt.test.d.ts +0 -2
  456. package/dist/lib/session/prompt.test.d.ts.map +0 -1
  457. package/dist/lib/session/prompt.test.js +0 -57
  458. package/dist/lib/session/prompt.test.js.map +0 -1
  459. package/dist/lib/session/render.d.ts +0 -103
  460. package/dist/lib/session/render.d.ts.map +0 -1
  461. package/dist/lib/session/render.js +0 -798
  462. package/dist/lib/session/render.js.map +0 -1
  463. package/dist/lib/session/team-filter.d.ts +0 -35
  464. package/dist/lib/session/team-filter.d.ts.map +0 -1
  465. package/dist/lib/session/team-filter.js +0 -75
  466. package/dist/lib/session/team-filter.js.map +0 -1
  467. package/dist/lib/session/team-filter.test.d.ts +0 -2
  468. package/dist/lib/session/team-filter.test.d.ts.map +0 -1
  469. package/dist/lib/session/team-filter.test.js +0 -157
  470. package/dist/lib/session/team-filter.test.js.map +0 -1
  471. package/dist/lib/session/types.d.ts +0 -84
  472. package/dist/lib/session/types.d.ts.map +0 -1
  473. package/dist/lib/session/types.js +0 -11
  474. package/dist/lib/session/types.js.map +0 -1
  475. package/dist/lib/shims.d.ts +0 -272
  476. package/dist/lib/shims.d.ts.map +0 -1
  477. package/dist/lib/shims.js +0 -1322
  478. package/dist/lib/shims.js.map +0 -1
  479. package/dist/lib/skills.d.ts +0 -142
  480. package/dist/lib/skills.d.ts.map +0 -1
  481. package/dist/lib/skills.js +0 -791
  482. package/dist/lib/skills.js.map +0 -1
  483. package/dist/lib/state.d.ts +0 -87
  484. package/dist/lib/state.d.ts.map +0 -1
  485. package/dist/lib/state.js +0 -333
  486. package/dist/lib/state.js.map +0 -1
  487. package/dist/lib/subagents.d.ts +0 -84
  488. package/dist/lib/subagents.d.ts.map +0 -1
  489. package/dist/lib/subagents.js +0 -410
  490. package/dist/lib/subagents.js.map +0 -1
  491. package/dist/lib/teams/__tests__/oracle.test.d.ts +0 -2
  492. package/dist/lib/teams/__tests__/oracle.test.d.ts.map +0 -1
  493. package/dist/lib/teams/__tests__/oracle.test.js +0 -89
  494. package/dist/lib/teams/__tests__/oracle.test.js.map +0 -1
  495. package/dist/lib/teams/__tests__/supervisor.test.d.ts +0 -2
  496. package/dist/lib/teams/__tests__/supervisor.test.d.ts.map +0 -1
  497. package/dist/lib/teams/__tests__/supervisor.test.js +0 -179
  498. package/dist/lib/teams/__tests__/supervisor.test.js.map +0 -1
  499. package/dist/lib/teams/agents.d.ts +0 -247
  500. package/dist/lib/teams/agents.d.ts.map +0 -1
  501. package/dist/lib/teams/agents.js +0 -1244
  502. package/dist/lib/teams/agents.js.map +0 -1
  503. package/dist/lib/teams/api.d.ts +0 -91
  504. package/dist/lib/teams/api.d.ts.map +0 -1
  505. package/dist/lib/teams/api.js +0 -239
  506. package/dist/lib/teams/api.js.map +0 -1
  507. package/dist/lib/teams/cloud.d.ts +0 -11
  508. package/dist/lib/teams/cloud.d.ts.map +0 -1
  509. package/dist/lib/teams/cloud.js +0 -169
  510. package/dist/lib/teams/cloud.js.map +0 -1
  511. package/dist/lib/teams/debug.d.ts +0 -8
  512. package/dist/lib/teams/debug.d.ts.map +0 -1
  513. package/dist/lib/teams/debug.js +0 -12
  514. package/dist/lib/teams/debug.js.map +0 -1
  515. package/dist/lib/teams/file_ops.d.ts +0 -13
  516. package/dist/lib/teams/file_ops.d.ts.map +0 -1
  517. package/dist/lib/teams/file_ops.js +0 -66
  518. package/dist/lib/teams/file_ops.js.map +0 -1
  519. package/dist/lib/teams/index.d.ts +0 -16
  520. package/dist/lib/teams/index.d.ts.map +0 -1
  521. package/dist/lib/teams/index.js +0 -15
  522. package/dist/lib/teams/index.js.map +0 -1
  523. package/dist/lib/teams/oracle.d.ts +0 -20
  524. package/dist/lib/teams/oracle.d.ts.map +0 -1
  525. package/dist/lib/teams/oracle.js +0 -59
  526. package/dist/lib/teams/oracle.js.map +0 -1
  527. package/dist/lib/teams/parsers.d.ts +0 -9
  528. package/dist/lib/teams/parsers.d.ts.map +0 -1
  529. package/dist/lib/teams/parsers.js +0 -837
  530. package/dist/lib/teams/parsers.js.map +0 -1
  531. package/dist/lib/teams/persistence.d.ts +0 -43
  532. package/dist/lib/teams/persistence.d.ts.map +0 -1
  533. package/dist/lib/teams/persistence.js +0 -299
  534. package/dist/lib/teams/persistence.js.map +0 -1
  535. package/dist/lib/teams/ralph.d.ts +0 -8
  536. package/dist/lib/teams/ralph.d.ts.map +0 -1
  537. package/dist/lib/teams/ralph.js +0 -59
  538. package/dist/lib/teams/ralph.js.map +0 -1
  539. package/dist/lib/teams/registry.d.ts +0 -18
  540. package/dist/lib/teams/registry.d.ts.map +0 -1
  541. package/dist/lib/teams/registry.js +0 -68
  542. package/dist/lib/teams/registry.js.map +0 -1
  543. package/dist/lib/teams/summarizer.d.ts +0 -73
  544. package/dist/lib/teams/summarizer.d.ts.map +0 -1
  545. package/dist/lib/teams/summarizer.js +0 -780
  546. package/dist/lib/teams/summarizer.js.map +0 -1
  547. package/dist/lib/teams/supervisor.d.ts +0 -49
  548. package/dist/lib/teams/supervisor.d.ts.map +0 -1
  549. package/dist/lib/teams/supervisor.js +0 -74
  550. package/dist/lib/teams/supervisor.js.map +0 -1
  551. package/dist/lib/template.d.ts +0 -27
  552. package/dist/lib/template.d.ts.map +0 -1
  553. package/dist/lib/template.js +0 -60
  554. package/dist/lib/template.js.map +0 -1
  555. package/dist/lib/types.d.ts +0 -331
  556. package/dist/lib/types.d.ts.map +0 -1
  557. package/dist/lib/types.js +0 -29
  558. package/dist/lib/types.js.map +0 -1
  559. package/dist/lib/usage.d.ts +0 -105
  560. package/dist/lib/usage.d.ts.map +0 -1
  561. package/dist/lib/usage.js +0 -686
  562. package/dist/lib/usage.js.map +0 -1
  563. package/dist/lib/versions.d.ts +0 -253
  564. package/dist/lib/versions.d.ts.map +0 -1
  565. package/dist/lib/versions.js +0 -1796
  566. package/dist/lib/versions.js.map +0 -1
  567. package/scripts/rebuild-sqlite.sh +0 -46
@@ -1,701 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import * as fs from 'fs';
4
- import * as path from 'path';
5
- import { select, confirm, checkbox } from '@inquirer/prompts';
6
- import { AGENTS, ALL_AGENT_IDS, getAccountEmail, getAccountInfo, agentLabel, } from '../lib/agents.js';
7
- import { formatUsageSummary, getUsageInfoForIdentity, getUsageInfoByIdentity, getUsageLookupKey, } from '../lib/usage.js';
8
- import { viewAction } from './view.js';
9
- import { readManifest, writeManifest, createDefaultManifest } from '../lib/manifest.js';
10
- import { installVersion, removeVersion, listInstalledVersions, isVersionInstalled, isLatestInstalled, getGlobalDefault, setGlobalDefault, getVersionHomePath, syncResourcesToVersion, parseAgentSpec, promptResourceSelection, promptNewResourceSelection, getAvailableResources, getActuallySyncedResources, getNewResources, hasNewResources, } from '../lib/versions.js';
11
- import { createShim, createVersionedAlias, removeShim, shimExists, getShimsDir, getShimPath, getPathShadowingExecutable, isShimsInPath, getPathSetupInstructions, addShimsToPath, switchConfigSymlink, switchHomeFileSymlinks, } from '../lib/shims.js';
12
- import { isInteractiveTerminal, isPromptCancelled, requireInteractiveSelection } from './utils.js';
13
- import { tryAutoPull } from '../lib/git.js';
14
- import { getAgentsDir } from '../lib/state.js';
15
- /**
16
- * Helper to get actual installed version for an agent.
17
- * Returns the latest installed version, or throws if none installed.
18
- */
19
- async function getInstalledVersionForAgent(agent) {
20
- const versions = listInstalledVersions(agent);
21
- if (versions.length > 0) {
22
- return versions[versions.length - 1];
23
- }
24
- throw new Error(`No versions of ${agent} installed`);
25
- }
26
- function formatAccountHint(info, usage) {
27
- const parts = [];
28
- if (info.email)
29
- parts.push(info.email);
30
- const usageSummary = formatUsageSummary(info.plan, usage);
31
- if (usageSummary)
32
- parts.push(usageSummary);
33
- if (parts.length === 0)
34
- return '';
35
- return chalk.gray(` [${parts.join(', ')}]`);
36
- }
37
- function buildAutomaticSelection(resources) {
38
- const selection = {};
39
- if (resources.commands.length > 0)
40
- selection.commands = resources.commands;
41
- if (resources.skills.length > 0)
42
- selection.skills = resources.skills;
43
- if (resources.hooks.length > 0)
44
- selection.hooks = resources.hooks;
45
- if (resources.memory.length > 0)
46
- selection.memory = resources.memory;
47
- if (resources.mcp.length > 0)
48
- selection.mcp = resources.mcp;
49
- if (resources.permissions.length > 0)
50
- selection.permissions = resources.permissions;
51
- if (resources.subagents.length > 0)
52
- selection.subagents = resources.subagents;
53
- if (resources.plugins.length > 0)
54
- selection.plugins = resources.plugins;
55
- return selection;
56
- }
57
- async function setDefaultVersion(agent, installedVersion) {
58
- setGlobalDefault(agent, installedVersion);
59
- createShim(agent);
60
- createVersionedAlias(agent, installedVersion);
61
- const symlinkResult = await switchConfigSymlink(agent, installedVersion);
62
- if (symlinkResult.success) {
63
- console.log(chalk.green(' Set as default'));
64
- if (symlinkResult.backupPath) {
65
- console.log(chalk.gray(` Backed up existing config to: ${symlinkResult.backupPath}`));
66
- }
67
- }
68
- switchHomeFileSymlinks(agent, installedVersion);
69
- warnIfShimShadowed(agent);
70
- }
71
- function warnIfShimShadowed(agent) {
72
- const shadowedBy = getPathShadowingExecutable(agent);
73
- if (!shadowedBy) {
74
- return;
75
- }
76
- console.log(chalk.yellow(` Warning: ${AGENTS[agent].cliCommand} currently resolves to ${shadowedBy}`));
77
- console.log(chalk.gray(` Managed shim: ${getShimPath(agent)}`));
78
- console.log(chalk.gray(` ${getPathSetupInstructions().split('\n').join('\n ')}`));
79
- }
80
- /** Register `agents add`, `agents remove`, `agents use`, and `agents list` (deprecated). */
81
- export function registerVersionsCommands(program) {
82
- program
83
- .command('add <specs...>')
84
- .description('Download and install agent CLI versions. Enables subsidized API usage through managed binaries.')
85
- .option('-p, --project', 'Lock this version to the current project directory only, stored in .agents/agents.yaml')
86
- .option('-y, --yes', 'Auto-accept defaults without prompting (useful for scripts and CI)')
87
- .addHelpText('after', `
88
- Examples:
89
- # Fresh install of the latest Claude CLI
90
- agents add claude@latest
91
-
92
- # Install specific version (use this when you need reproducibility)
93
- agents add claude@2.1.112
94
-
95
- # Install multiple agents at once
96
- agents add claude@latest codex@0.116.0
97
-
98
- # Pin a version to this project only (won't affect global default)
99
- agents add claude@2.1.100 --project
100
-
101
- When to use:
102
- - First time setup: install the agent CLI you want to use
103
- - Upgrading: install a newer version (old versions remain available)
104
- - Multi-account: install different versions for different accounts (each version has its own auth)
105
- - Project-specific: lock a version for a repo with --project
106
-
107
- Note: The first version you install is NOT set as default automatically. Run 'agents use' to set it.
108
- `)
109
- .action(async (specs, options) => {
110
- const isProject = options.project;
111
- const skipPrompts = options.yes || !isInteractiveTerminal();
112
- for (const spec of specs) {
113
- const parsed = parseAgentSpec(spec);
114
- if (!parsed) {
115
- console.log(chalk.red(`Invalid agent: ${spec}`));
116
- console.log(chalk.gray(`Format: <agent>[@version]. Available: ${ALL_AGENT_IDS.join(', ')}`));
117
- continue;
118
- }
119
- const { agent, version } = parsed;
120
- const agentConfig = AGENTS[agent];
121
- if (!agentConfig.npmPackage) {
122
- console.log(chalk.yellow(`${agentLabel(agentConfig.id)} has no npm package. Install manually.`));
123
- continue;
124
- }
125
- // Check if already installed (handle 'latest' specially)
126
- let alreadyInstalled = false;
127
- let installedAsVersion = version;
128
- if (version === 'latest') {
129
- const latestCheck = await isLatestInstalled(agent);
130
- if (latestCheck.installed && latestCheck.version) {
131
- alreadyInstalled = true;
132
- installedAsVersion = latestCheck.version;
133
- }
134
- }
135
- else {
136
- alreadyInstalled = isVersionInstalled(agent, version);
137
- }
138
- if (alreadyInstalled) {
139
- console.log(chalk.gray(`${agentLabel(agentConfig.id)}@${installedAsVersion} already installed`));
140
- // Ensure shim exists (in case it was deleted or needs updating)
141
- createShim(agent);
142
- }
143
- else {
144
- const spinner = ora(`Installing ${agentLabel(agentConfig.id)}@${version}...`).start();
145
- const result = await installVersion(agent, version, (msg) => {
146
- spinner.text = msg;
147
- });
148
- if (result.success) {
149
- spinner.succeed(`Installed ${agentLabel(agentConfig.id)}@${result.installedVersion}`);
150
- // Create shim if first install
151
- if (!shimExists(agent)) {
152
- createShim(agent);
153
- console.log(chalk.gray(` Created shim: ${getShimsDir()}/${agentConfig.cliCommand}`));
154
- }
155
- const installedVersion = result.installedVersion || version;
156
- // Smart resource detection: compare available vs ACTUALLY synced (source of truth: files)
157
- const available = getAvailableResources();
158
- const actuallySynced = getActuallySyncedResources(agent, installedVersion);
159
- const newResources = getNewResources(available, actuallySynced);
160
- const hasAnySynced = actuallySynced.commands.length > 0 ||
161
- actuallySynced.skills.length > 0 ||
162
- actuallySynced.hooks.length > 0 ||
163
- actuallySynced.memory.length > 0 ||
164
- actuallySynced.mcp.length > 0 ||
165
- actuallySynced.permissions.length > 0 ||
166
- actuallySynced.plugins.length > 0;
167
- let selection;
168
- try {
169
- if (skipPrompts) {
170
- if (!hasAnySynced) {
171
- selection = buildAutomaticSelection(available);
172
- }
173
- else if (hasNewResources(newResources, agent)) {
174
- selection = buildAutomaticSelection(newResources);
175
- }
176
- }
177
- else if (!hasAnySynced) {
178
- // Nothing synced yet - prompt for ALL resources
179
- const userSelection = await promptResourceSelection(agent);
180
- if (userSelection) {
181
- selection = userSelection;
182
- }
183
- }
184
- else if (hasNewResources(newResources, agent)) {
185
- // Some synced, but NEW resources available - prompt for new only
186
- const userSelection = await promptNewResourceSelection(agent, newResources);
187
- if (userSelection) {
188
- selection = userSelection;
189
- }
190
- }
191
- // else: everything already synced, no prompt needed
192
- }
193
- catch (err) {
194
- if (isPromptCancelled(err)) {
195
- console.log(chalk.gray('Skipped resource selection'));
196
- }
197
- else {
198
- throw err;
199
- }
200
- }
201
- // Sync resources if user made a selection
202
- if (selection && Object.keys(selection).length > 0) {
203
- const syncResult = syncResourcesToVersion(agent, installedVersion, selection);
204
- const synced = [];
205
- if (syncResult.commands)
206
- synced.push('commands');
207
- if (syncResult.skills)
208
- synced.push('skills');
209
- if (syncResult.hooks)
210
- synced.push('hooks');
211
- if (syncResult.memory.length > 0)
212
- synced.push('memory');
213
- if (syncResult.permissions)
214
- synced.push('permissions');
215
- if (syncResult.mcp.length > 0)
216
- synced.push('mcp');
217
- if (syncResult.plugins.length > 0)
218
- synced.push('plugins');
219
- if (synced.length > 0) {
220
- console.log(chalk.green(` Synced: ${synced.join(', ')}`));
221
- }
222
- }
223
- // Prompt to set as default
224
- const currentDefault = getGlobalDefault(agent);
225
- if (currentDefault !== installedVersion) {
226
- if (skipPrompts) {
227
- await setDefaultVersion(agent, installedVersion);
228
- }
229
- else {
230
- try {
231
- // Fetch account info for context in the prompt
232
- const home = getVersionHomePath(agent, installedVersion);
233
- const info = await getAccountInfo(agent, home);
234
- const usage = await getUsageInfoForIdentity({
235
- agentId: agent,
236
- home,
237
- cliVersion: installedVersion,
238
- info,
239
- });
240
- const accountHint = formatAccountHint(info, usage.snapshot);
241
- const message = currentDefault
242
- ? `Switch default from ${agentLabel(agentConfig.id)}@${currentDefault} to ${agentLabel(agentConfig.id)}@${installedVersion}${accountHint}?`
243
- : `Set ${agentLabel(agentConfig.id)}@${installedVersion}${accountHint} as default?`;
244
- const setAsDefault = await confirm({
245
- message,
246
- default: true,
247
- });
248
- if (setAsDefault) {
249
- await setDefaultVersion(agent, installedVersion);
250
- }
251
- }
252
- catch (err) {
253
- if (isPromptCancelled(err)) {
254
- console.log(chalk.gray('Skipped setting default'));
255
- }
256
- else {
257
- throw err;
258
- }
259
- }
260
- }
261
- }
262
- // Auto-add shims to PATH if not already there
263
- if (!isShimsInPath()) {
264
- const pathResult = addShimsToPath();
265
- if (pathResult.success && !pathResult.alreadyPresent) {
266
- console.log(chalk.green(` Added shims to ~/${pathResult.rcFile}`));
267
- console.log(chalk.gray(' Restart your shell or run: source ~/' + pathResult.rcFile));
268
- }
269
- else if (!pathResult.success) {
270
- console.log(chalk.yellow('\nCould not auto-add shims to PATH:'));
271
- console.log(chalk.gray(getPathSetupInstructions()));
272
- }
273
- }
274
- }
275
- else {
276
- spinner.fail(`Failed to install ${agentLabel(agentConfig.id)}@${version}`);
277
- console.error(chalk.gray(result.error || 'Unknown error'));
278
- continue;
279
- }
280
- }
281
- // Update project manifest if -p flag
282
- if (isProject) {
283
- const projectManifestDir = path.join(process.cwd(), '.agents');
284
- const projectManifestPath = path.join(projectManifestDir, 'agents.yaml');
285
- if (!fs.existsSync(projectManifestDir)) {
286
- fs.mkdirSync(projectManifestDir, { recursive: true });
287
- }
288
- const manifest = fs.existsSync(projectManifestPath)
289
- ? readManifest(process.cwd()) || createDefaultManifest()
290
- : createDefaultManifest();
291
- manifest.agents = manifest.agents || {};
292
- manifest.agents[agent] = version === 'latest' ? (await getInstalledVersionForAgent(agent)) : version;
293
- writeManifest(process.cwd(), manifest);
294
- console.log(chalk.green(` Pinned ${agentLabel(agentConfig.id)}@${version} in .agents/agents.yaml`));
295
- }
296
- }
297
- });
298
- program
299
- .command('remove <specs...>')
300
- .description('Uninstall agent CLI versions from your system. Frees up disk space and removes auth tokens.')
301
- .option('-p, --project', 'Also clear the pinned version from .agents/agents.yaml in the current project')
302
- .addHelpText('after', `
303
- Examples:
304
- # Remove a specific version
305
- agents remove claude@2.0.50
306
-
307
- # Remove without specifying version (opens interactive picker)
308
- agents remove claude
309
-
310
- # Remove and also clear project pin
311
- agents remove claude@2.0.50 --project
312
-
313
- When to use:
314
- - Freeing disk space by removing old unused versions
315
- - Cleaning up after testing a version you no longer need
316
- - Removing a version tied to an account you've deactivated
317
-
318
- Notes:
319
- - Removing the default version will unset the default; run 'agents use' to pick a new one
320
- - You can always reinstall with 'agents add' later
321
- `)
322
- .action(async (specs, options) => {
323
- const isProject = options.project;
324
- for (const spec of specs) {
325
- const parsed = parseAgentSpec(spec);
326
- if (!parsed) {
327
- console.log(chalk.red(`Invalid agent: ${spec}`));
328
- console.log(chalk.gray(`Format: <agent>[@version]. Available: ${ALL_AGENT_IDS.join(', ')}`));
329
- continue;
330
- }
331
- const { agent, version } = parsed;
332
- const agentConfig = AGENTS[agent];
333
- if (version === 'latest' || !spec.includes('@')) {
334
- // Show picker for which versions to remove
335
- const versions = listInstalledVersions(agent);
336
- if (versions.length === 0) {
337
- console.log(chalk.gray(`No versions of ${agentLabel(agentConfig.id)} installed`));
338
- continue;
339
- }
340
- if (!isInteractiveTerminal()) {
341
- requireInteractiveSelection(`Selecting ${agentLabel(agentConfig.id)} versions to remove`, [
342
- `agents remove ${agent}@${versions[0]}`,
343
- ]);
344
- }
345
- const globalDefault = getGlobalDefault(agent);
346
- // Sort versions with default first
347
- const sortedVersions = [...versions].sort((a, b) => {
348
- if (a === globalDefault)
349
- return -1;
350
- if (b === globalDefault)
351
- return 1;
352
- return 0;
353
- });
354
- try {
355
- const toRemove = await checkbox({
356
- message: `Select ${agentLabel(agentConfig.id)} versions to remove:`,
357
- choices: sortedVersions.map((v) => ({
358
- name: v === globalDefault ? `${v} ${chalk.green('(default)')}` : v,
359
- value: v,
360
- checked: false, // All unchecked by default
361
- })),
362
- });
363
- if (toRemove.length === 0) {
364
- console.log(chalk.gray('No versions selected'));
365
- continue;
366
- }
367
- for (const v of toRemove) {
368
- removeVersion(agent, v);
369
- console.log(chalk.green(`Removed ${agentLabel(agentConfig.id)}@${v}`));
370
- }
371
- // Check if default was removed
372
- if (globalDefault && toRemove.includes(globalDefault)) {
373
- setGlobalDefault(agent, undefined);
374
- console.log(chalk.yellow(`Default version removed. Run: agents use ${agent}@<version> to set a new default`));
375
- }
376
- // Remove shim if no versions left
377
- const remaining = listInstalledVersions(agent);
378
- if (remaining.length === 0) {
379
- removeShim(agent);
380
- }
381
- }
382
- catch (err) {
383
- if (isPromptCancelled(err)) {
384
- console.log(chalk.gray('Cancelled'));
385
- continue;
386
- }
387
- throw err;
388
- }
389
- }
390
- else {
391
- // Remove specific version
392
- if (!isVersionInstalled(agent, version)) {
393
- console.log(chalk.gray(`${agentLabel(agentConfig.id)}@${version} not installed`));
394
- }
395
- else {
396
- removeVersion(agent, version);
397
- console.log(chalk.green(`Removed ${agentLabel(agentConfig.id)}@${version}`));
398
- // Remove shim if no versions left
399
- const remaining = listInstalledVersions(agent);
400
- if (remaining.length === 0) {
401
- removeShim(agent);
402
- }
403
- }
404
- }
405
- // Update project manifest if -p flag
406
- if (isProject) {
407
- const projectManifestPath = path.join(process.cwd(), '.agents', 'agents.yaml');
408
- if (fs.existsSync(projectManifestPath)) {
409
- const manifest = readManifest(process.cwd());
410
- if (manifest?.agents?.[agent]) {
411
- delete manifest.agents[agent];
412
- writeManifest(process.cwd(), manifest);
413
- console.log(chalk.gray(` Removed from .agents/agents.yaml`));
414
- }
415
- }
416
- }
417
- }
418
- });
419
- program
420
- .command('use <agent> [version]')
421
- .description('Switch the active version for an agent. This is how you set defaults globally or per-project.')
422
- .option('-p, --project', 'Pin to this project directory only (stored in .agents/agents.yaml)')
423
- .option('-y, --yes', 'Auto-sync resources without prompting')
424
- .addHelpText('after', `
425
- Examples:
426
- # Set global default (interactive picker if version omitted)
427
- agents use claude
428
- agents use claude@2.1.112
429
-
430
- # Lock this project to a specific version (overrides global default when in this directory)
431
- agents use claude@2.1.100 --project
432
-
433
- # Switch accounts (each version can be logged into a different account)
434
- agents use claude@2.1.50
435
-
436
- When to use:
437
- - After installing: 'agents add' does NOT set the default; 'use' does
438
- - Switching accounts: each installed version has separate auth; 'use' switches which one is active
439
- - Project overrides: set a different version for a specific project with --project
440
- - Testing: quickly switch between versions without reinstalling
441
-
442
- Important: This is the ONLY command that sets the default version. If you want a version to be active, you must run 'agents use'.
443
- `)
444
- .action(async (agentArg, versionArg, options) => {
445
- try {
446
- const skipPrompts = options.yes || !isInteractiveTerminal();
447
- // Auto-pull ~/.agents if it's a git repo with remote (silent on success)
448
- const agentsDir = getAgentsDir();
449
- const pullResult = await tryAutoPull(agentsDir);
450
- if (pullResult.pulled) {
451
- console.log(chalk.gray('Synced ~/.agents from remote'));
452
- }
453
- // Support both "claude 2.0.65" and "claude@2.0.65" formats
454
- let agent;
455
- let version;
456
- if (agentArg.includes('@')) {
457
- const parsed = parseAgentSpec(agentArg);
458
- if (!parsed) {
459
- console.log(chalk.red(`Invalid agent: ${agentArg}`));
460
- console.log(chalk.gray(`Format: <agent>[@version]. Available: ${ALL_AGENT_IDS.join(', ')}`));
461
- return;
462
- }
463
- agent = parsed.agent;
464
- version = parsed.version === 'latest' ? undefined : parsed.version;
465
- }
466
- else {
467
- const agentLower = agentArg.toLowerCase();
468
- if (!AGENTS[agentLower]) {
469
- console.log(chalk.red(`Invalid agent: ${agentArg}`));
470
- console.log(chalk.gray(`Available: ${ALL_AGENT_IDS.join(', ')}`));
471
- return;
472
- }
473
- agent = agentLower;
474
- version = versionArg;
475
- }
476
- const agentId = agent;
477
- const agentConfig = AGENTS[agentId];
478
- let selectedVersion = version;
479
- if (!version) {
480
- // Interactive version picker
481
- const versions = listInstalledVersions(agentId);
482
- if (versions.length === 0) {
483
- console.log(chalk.red(`No versions of ${agentLabel(agentConfig.id)} installed`));
484
- console.log(chalk.gray(`Run: agents add ${agentId}@latest`));
485
- return;
486
- }
487
- if (!isInteractiveTerminal()) {
488
- requireInteractiveSelection(`Selecting a ${agentLabel(agentConfig.id)} version`, [
489
- `agents use ${agentId}@${versions[versions.length - 1]}`,
490
- `agents view ${agentId}`,
491
- ]);
492
- }
493
- const globalDefault = getGlobalDefault(agentId);
494
- // Sort versions with default first
495
- const sortedVersions = [...versions].sort((a, b) => {
496
- if (a === globalDefault)
497
- return -1;
498
- if (b === globalDefault)
499
- return 1;
500
- return 0;
501
- });
502
- // Pre-fetch account info for picker labels and usage identity lookup
503
- const pickerAccounts = await Promise.all(sortedVersions.map((v) => getAccountInfo(agentId, getVersionHomePath(agentId, v)).then((info) => ({ v, info }))));
504
- const pickerAccountMap = new Map(pickerAccounts.map(({ v, info }) => [v, info]));
505
- const { usageByKey } = await getUsageInfoByIdentity(pickerAccounts.map(({ v, info }) => ({
506
- agentId,
507
- home: getVersionHomePath(agentId, v),
508
- cliVersion: v,
509
- info,
510
- })));
511
- const maxLabelLen = Math.max(...sortedVersions.map((v) => (v === globalDefault ? `${v} (default)` : v).length));
512
- const maxEmailLen = Math.max(0, ...pickerAccounts.map(({ info }) => info.email?.length || 0));
513
- selectedVersion = await select({
514
- message: `Select ${agentLabel(agentConfig.id)} version:`,
515
- choices: sortedVersions.map((v) => {
516
- let label = v === globalDefault ? `${v}${chalk.green(' (default)')}` : v;
517
- const padLen = maxLabelLen - (v === globalDefault ? `${v} (default)` : v).length;
518
- if (padLen > 0)
519
- label += ' '.repeat(padLen);
520
- const accountInfo = pickerAccountMap.get(v);
521
- const email = accountInfo?.email || '';
522
- const usageKey = getUsageLookupKey(accountInfo);
523
- const usageSummary = usageKey ? formatUsageSummary(null, usageByKey.get(usageKey)?.snapshot || null) : '';
524
- if (maxEmailLen > 0) {
525
- label += ' ';
526
- label += email ? chalk.cyan(email.padEnd(maxEmailLen)) : ' '.repeat(maxEmailLen);
527
- }
528
- if (usageSummary) {
529
- label += ` ${usageSummary}`;
530
- }
531
- return { name: label, value: v };
532
- }),
533
- });
534
- }
535
- if (!selectedVersion || !isVersionInstalled(agentId, selectedVersion)) {
536
- console.log(chalk.red(`${agentLabel(agentConfig.id)}@${selectedVersion ?? 'unknown'} not installed`));
537
- console.log(chalk.gray(`Run: agents add ${agentId}@${selectedVersion ?? 'latest'}`));
538
- return;
539
- }
540
- // selectedVersion is guaranteed to be defined after the check above
541
- const finalVersion = selectedVersion;
542
- if (options.project) {
543
- // Set in project manifest
544
- const projectManifestDir = path.join(process.cwd(), '.agents');
545
- const projectManifestPath = path.join(projectManifestDir, 'agents.yaml');
546
- if (!fs.existsSync(projectManifestDir)) {
547
- fs.mkdirSync(projectManifestDir, { recursive: true });
548
- }
549
- const manifest = fs.existsSync(projectManifestPath)
550
- ? readManifest(process.cwd()) || createDefaultManifest()
551
- : createDefaultManifest();
552
- manifest.agents = manifest.agents || {};
553
- manifest.agents[agentId] = finalVersion;
554
- writeManifest(process.cwd(), manifest);
555
- const projEmail = await getAccountEmail(agentId, getVersionHomePath(agentId, finalVersion));
556
- const projEmailStr = projEmail ? chalk.cyan(` (${projEmail})`) : '';
557
- console.log(chalk.green(`Set ${agentLabel(agentConfig.id)}@${finalVersion} for this project`) + projEmailStr);
558
- }
559
- else {
560
- // Smart resource detection: compare available vs ACTUALLY synced (source of truth: files, not tracking)
561
- const available = getAvailableResources();
562
- const actuallySynced = getActuallySyncedResources(agentId, finalVersion);
563
- const newResources = getNewResources(available, actuallySynced);
564
- // Check if anything is actually synced (source of truth: actual files)
565
- const hasAnySynced = actuallySynced.commands.length > 0 ||
566
- actuallySynced.skills.length > 0 ||
567
- actuallySynced.hooks.length > 0 ||
568
- actuallySynced.memory.length > 0 ||
569
- actuallySynced.mcp.length > 0 ||
570
- actuallySynced.permissions.length > 0;
571
- try {
572
- if (skipPrompts) {
573
- let selection;
574
- if (!hasAnySynced) {
575
- selection = buildAutomaticSelection(available);
576
- }
577
- else if (hasNewResources(newResources, agentId)) {
578
- selection = buildAutomaticSelection(newResources);
579
- }
580
- if (selection && Object.keys(selection).length > 0) {
581
- const syncResult = syncResourcesToVersion(agentId, finalVersion, selection);
582
- const syncedTypes = [];
583
- if (syncResult.commands)
584
- syncedTypes.push('commands');
585
- if (syncResult.skills)
586
- syncedTypes.push('skills');
587
- if (syncResult.hooks)
588
- syncedTypes.push('hooks');
589
- if (syncResult.memory.length > 0)
590
- syncedTypes.push('memory');
591
- if (syncResult.permissions)
592
- syncedTypes.push('permissions');
593
- if (syncResult.mcp.length > 0)
594
- syncedTypes.push('mcp');
595
- if (syncResult.plugins.length > 0)
596
- syncedTypes.push('plugins');
597
- if (syncedTypes.length > 0) {
598
- console.log(chalk.green(`Synced: ${syncedTypes.join(', ')}`));
599
- }
600
- }
601
- }
602
- else if (!hasAnySynced) {
603
- // First time: prompt for ALL resources
604
- console.log(chalk.yellow(`\n${agentLabel(agentConfig.id)}@${finalVersion} has no synced resources.`));
605
- const userSelection = await promptResourceSelection(agentId);
606
- if (userSelection && Object.keys(userSelection).length > 0) {
607
- const syncResult = syncResourcesToVersion(agentId, finalVersion, userSelection);
608
- const syncedTypes = [];
609
- if (syncResult.commands)
610
- syncedTypes.push('commands');
611
- if (syncResult.skills)
612
- syncedTypes.push('skills');
613
- if (syncResult.hooks)
614
- syncedTypes.push('hooks');
615
- if (syncResult.memory.length > 0)
616
- syncedTypes.push('memory');
617
- if (syncResult.permissions)
618
- syncedTypes.push('permissions');
619
- if (syncResult.mcp.length > 0)
620
- syncedTypes.push('mcp');
621
- if (syncResult.plugins.length > 0)
622
- syncedTypes.push('plugins');
623
- if (syncedTypes.length > 0) {
624
- console.log(chalk.green(`Synced: ${syncedTypes.join(', ')}`));
625
- }
626
- }
627
- }
628
- else if (hasNewResources(newResources, agentId)) {
629
- // Has synced before, but NEW items available
630
- const userSelection = await promptNewResourceSelection(agentId, newResources);
631
- if (userSelection && Object.keys(userSelection).length > 0) {
632
- const syncResult = syncResourcesToVersion(agentId, finalVersion, userSelection);
633
- const syncedTypes = [];
634
- if (syncResult.commands)
635
- syncedTypes.push('commands');
636
- if (syncResult.skills)
637
- syncedTypes.push('skills');
638
- if (syncResult.hooks)
639
- syncedTypes.push('hooks');
640
- if (syncResult.memory.length > 0)
641
- syncedTypes.push('memory');
642
- if (syncResult.permissions)
643
- syncedTypes.push('permissions');
644
- if (syncResult.mcp.length > 0)
645
- syncedTypes.push('mcp');
646
- if (syncResult.plugins.length > 0)
647
- syncedTypes.push('plugins');
648
- if (syncedTypes.length > 0) {
649
- console.log(chalk.green(`Synced: ${syncedTypes.join(', ')}`));
650
- }
651
- }
652
- }
653
- // else: everything already synced, no prompt needed
654
- }
655
- catch (err) {
656
- if (isPromptCancelled(err)) {
657
- console.log(chalk.gray('No changes made'));
658
- return;
659
- }
660
- else {
661
- throw err;
662
- }
663
- }
664
- // Set global default
665
- setGlobalDefault(agentId, finalVersion);
666
- // Regenerate shim so it uses the latest script format
667
- createShim(agentId);
668
- createVersionedAlias(agentId, finalVersion);
669
- // Switch config symlink (e.g., ~/.claude -> version's config)
670
- // No conflict prompts - just backup existing config if needed
671
- const symlinkResult = await switchConfigSymlink(agentId, finalVersion);
672
- if (!symlinkResult.success) {
673
- console.log(chalk.yellow(`Warning: Could not update config symlink: ${symlinkResult.error}`));
674
- }
675
- else if (symlinkResult.backupPath) {
676
- console.log(chalk.gray(`Backed up existing config to: ${symlinkResult.backupPath}`));
677
- }
678
- // Switch home-level files (e.g., ~/.claude.json -> version's auth file)
679
- switchHomeFileSymlinks(agentId, finalVersion);
680
- warnIfShimShadowed(agentId);
681
- const useEmail = await getAccountEmail(agentId, getVersionHomePath(agentId, finalVersion));
682
- const useEmailStr = useEmail ? chalk.cyan(` (${useEmail})`) : '';
683
- console.log(chalk.green(`Set ${agentLabel(agentConfig.id)}@${finalVersion} as global default`) + useEmailStr);
684
- }
685
- }
686
- catch (err) {
687
- if (isPromptCancelled(err))
688
- return;
689
- throw err;
690
- }
691
- });
692
- // Deprecated: use `agents view` instead
693
- program
694
- .command('list [agent]')
695
- .description('List installed agent CLI versions')
696
- .action(async (agentArg) => {
697
- console.log(chalk.red('Deprecated: "agents list" is now "agents view"\n'));
698
- await viewAction(agentArg);
699
- });
700
- }
701
- //# sourceMappingURL=versions.js.map