@swarmify/agents-cli 1.13.3 → 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 -1071
  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,717 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import * as fs from 'fs';
4
- import * as os from 'os';
5
- import * as path from 'path';
6
- import { select, checkbox, confirm } from '@inquirer/prompts';
7
- import { SKILLS_CAPABLE_AGENTS, resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
8
- import { cloneRepo } from '../lib/git.js';
9
- import { discoverSkillsFromRepo, installSkillCentrally, uninstallSkill, listInstalledSkills, listInstalledSkillsWithScope, getSkillInfo, getSkillRules, getSkillsDir, countSkillFiles, tryParseSkillMetadata, diffVersionSkills, installSkillToVersion, removeSkillFromVersion, iterSkillsCapableVersions, } from '../lib/skills.js';
10
- import { getGlobalDefault, syncResourcesToVersion, promptAgentVersionSelection, resolveAgentVersionTargets, } from '../lib/versions.js';
11
- import { recordVersionResources } from '../lib/state.js';
12
- import { isPromptCancelled, isInteractiveTerminal, parseCommaSeparatedList, printWithPager, requireInteractiveSelection, } from './utils.js';
13
- import { showResourceList, buildTargetsSection, } from './resource-view.js';
14
- /** Register the `agents skills` command tree (list, add, remove, sync, prune, view). */
15
- export function registerSkillsCommands(program) {
16
- const skillsCmd = program
17
- .command('skills')
18
- .description('Add domain-specific capabilities to agents via packaged SKILL.md files')
19
- .addHelpText('after', `
20
- Skills are structured bundles (SKILL.md + rules/) that teach agents specialized domains: API conventions, testing patterns, code review checklists. Each skill can ship with its own rules that only apply when the skill is invoked.
21
-
22
- Examples:
23
- # See what skills are installed
24
- agents skills list
25
-
26
- # Check skills for a specific agent version
27
- agents skills list claude@2.1.112
28
-
29
- # Install a skill from GitHub
30
- agents skills add gh:anthropics/skills --agents codex,claude
31
-
32
- # Interactive: pick from ~/.agents/skills/
33
- agents skills add
34
-
35
- # Install a specific skill by name
36
- agents skills add --names api-testing --agents codex@0.116.0
37
-
38
- When to use:
39
- - Onboarding: 'agents skills add gh:team/skills' to share expertise across the team
40
- - Specialization: install domain skills (rush-product-knowledge, rdev) per project
41
- - Version isolation: install different skills to different versions for experimentation
42
- `);
43
- skillsCmd
44
- .command('list [agent]')
45
- .description('Show which skills are installed and which agent versions they are synced to')
46
- .option('-a, --agent <agent>', 'Filter to a specific agent (alternative to positional arg)')
47
- .action(async (agentArg, options) => {
48
- const spinner = ora({ text: 'Loading...', isSilent: !process.stdout.isTTY }).start();
49
- const agentInput = agentArg || options.agent;
50
- let filterAgent;
51
- let filterVersion;
52
- if (agentInput) {
53
- const parts = agentInput.split('@');
54
- const resolved = resolveAgentName(parts[0]);
55
- if (!resolved) {
56
- spinner.stop();
57
- console.log(chalk.red(formatAgentError(parts[0], SKILLS_CAPABLE_AGENTS)));
58
- process.exit(1);
59
- }
60
- filterAgent = resolved;
61
- filterVersion = parts[1] || undefined;
62
- }
63
- const rows = await buildSkillRows({ filterAgent, filterVersion });
64
- spinner.stop();
65
- await showResourceList({
66
- resourcePlural: 'skills',
67
- resourceSingular: 'skill',
68
- extraLabel: 'Files',
69
- rows,
70
- emptyMessage: filterAgent
71
- ? `No skills in central storage for ${agentLabel(filterAgent)}.`
72
- : 'No skills in ~/.agents/skills/. Add one with: agents skills add gh:user/repo',
73
- centralPath: getSkillsDir(),
74
- filterAgent,
75
- filterVersion,
76
- });
77
- });
78
- skillsCmd
79
- .command('add [source]')
80
- .description('Install skills from a source (GitHub, local) or pick from central storage')
81
- .option('-a, --agents <list>', 'Targets: claude, codex@0.116.0, or gemini@default')
82
- .option('--names <list>', 'Skill names from ~/.agents/skills/ (comma-separated)')
83
- .option('-y, --yes', 'Skip all prompts')
84
- .addHelpText('after', `
85
- Examples:
86
- # Interactive picker from ~/.agents/skills/
87
- agents skills add
88
-
89
- # Install a specific skill to one version
90
- agents skills add --names api-testing --agents codex@0.116.0
91
-
92
- # Clone and install skills from GitHub
93
- agents skills add gh:anthropics/skills --agents claude,codex
94
-
95
- # Add a local skill directory (must contain SKILL.md)
96
- agents skills add ~/my-skill --agents claude@default
97
- `)
98
- .action(async (source, options) => {
99
- try {
100
- let skills;
101
- if (!source) {
102
- // Interactive mode: pick from central storage
103
- const installedSkills = listInstalledSkills();
104
- if (installedSkills.size === 0) {
105
- console.log(chalk.yellow('No skills in ~/.agents/skills/'));
106
- console.log(chalk.gray('\nTo add skills from a repo:'));
107
- console.log(chalk.cyan(' agents skills add gh:user/repo'));
108
- return;
109
- }
110
- const availableSkills = Array.from(installedSkills.keys());
111
- const requestedNames = parseCommaSeparatedList(options.names);
112
- let selectedNames;
113
- if (requestedNames.length > 0) {
114
- const missing = requestedNames.filter((name) => !installedSkills.has(name));
115
- if (missing.length > 0) {
116
- console.log(chalk.red(`Unknown skill(s): ${missing.join(', ')}`));
117
- console.log(chalk.gray(`Available: ${availableSkills.join(', ')}`));
118
- process.exit(1);
119
- }
120
- selectedNames = requestedNames;
121
- }
122
- else {
123
- if (!isInteractiveTerminal()) {
124
- requireInteractiveSelection('Selecting skills from ~/.agents/skills/', [
125
- 'agents skills add --names agents-cli --agents codex',
126
- 'agents skills add gh:user/repo --agents codex',
127
- ]);
128
- }
129
- const choices = Array.from(installedSkills.entries()).map(([name, skill]) => ({
130
- value: name,
131
- name: skill.metadata.description
132
- ? `${name} ${chalk.gray(skill.metadata.description.slice(0, 50))}`
133
- : name,
134
- }));
135
- const selected = await checkbox({
136
- message: 'Select skills to install',
137
- choices: [
138
- { value: '__all__', name: chalk.bold('Select All') },
139
- ...choices,
140
- ],
141
- });
142
- if (selected.length === 0) {
143
- console.log(chalk.gray('No skills selected.'));
144
- return;
145
- }
146
- selectedNames = selected.includes('__all__')
147
- ? availableSkills
148
- : selected.filter((s) => s !== '__all__');
149
- }
150
- skills = selectedNames.map((name) => {
151
- const skill = installedSkills.get(name);
152
- return { name, metadata: skill?.metadata || {} };
153
- });
154
- }
155
- else {
156
- // Source provided: fetch from repo or local path
157
- const spinner = ora('Fetching skills...').start();
158
- const isGitRepo = source.startsWith('gh:') || source.startsWith('git:') ||
159
- source.startsWith('ssh:') || source.startsWith('https://') ||
160
- source.startsWith('http://');
161
- let localPath;
162
- let discoveredSkills;
163
- if (isGitRepo) {
164
- const result = await cloneRepo(source);
165
- localPath = result.localPath;
166
- discoveredSkills = discoverSkillsFromRepo(localPath);
167
- spinner.succeed('Repository cloned');
168
- }
169
- else {
170
- localPath = source.startsWith('~')
171
- ? path.join(os.homedir(), source.slice(1))
172
- : path.resolve(source);
173
- if (!fs.existsSync(localPath)) {
174
- spinner.fail(`Path not found: ${localPath}`);
175
- return;
176
- }
177
- const skillMdPath = path.join(localPath, 'SKILL.md');
178
- if (fs.existsSync(skillMdPath)) {
179
- const skillName = path.basename(localPath);
180
- const { validateSkillMetadata, countSkillRules } = await import('../lib/skills.js');
181
- const parseResult = tryParseSkillMetadata(localPath);
182
- const validation = validateSkillMetadata(parseResult.metadata, skillName);
183
- // Warn if YAML is invalid
184
- if (parseResult.error) {
185
- spinner.warn(`Skill '${skillName}' has invalid SKILL.md`);
186
- console.log(chalk.yellow(` ${parseResult.error}`));
187
- console.log(chalk.gray(' The skill will be installed but may not appear in listings.\n'));
188
- }
189
- else {
190
- spinner.succeed('Using skill directory');
191
- }
192
- discoveredSkills = [{
193
- name: skillName,
194
- path: localPath,
195
- metadata: parseResult.metadata || { name: skillName, description: '' },
196
- ruleCount: countSkillRules(localPath),
197
- validation,
198
- }];
199
- }
200
- else {
201
- discoveredSkills = discoverSkillsFromRepo(localPath);
202
- spinner.succeed('Using local path');
203
- }
204
- }
205
- console.log(chalk.bold(`\nFound ${discoveredSkills.length} skill(s):`));
206
- if (discoveredSkills.length === 0) {
207
- console.log(chalk.yellow('No skills found (looking for SKILL.md files)'));
208
- return;
209
- }
210
- for (const skill of discoveredSkills) {
211
- const nameColor = skill.parseError ? chalk.yellow : chalk.cyan;
212
- console.log(`\n ${nameColor(skill.name)}: ${skill.metadata.description || 'no description'}`);
213
- if (skill.ruleCount > 0) {
214
- console.log(` ${chalk.gray(`${skill.ruleCount} rules`)}`);
215
- }
216
- if (skill.parseError) {
217
- console.log(` ${chalk.yellow('Warning:')} ${chalk.gray(skill.parseError)}`);
218
- }
219
- }
220
- // Install to central storage first
221
- const installSpinner = ora('Installing skills to central storage...').start();
222
- let installed = 0;
223
- for (const skill of discoveredSkills) {
224
- const result = installSkillCentrally(skill.path, skill.name);
225
- if (result.success) {
226
- installed++;
227
- }
228
- else {
229
- installSpinner.stop();
230
- console.log(chalk.red(`\n Failed to install ${skill.name}: ${result.error}`));
231
- installSpinner.start();
232
- }
233
- }
234
- installSpinner.succeed(`Installed ${installed} skills to ~/.agents/skills/`);
235
- skills = discoveredSkills;
236
- }
237
- // Get agent and version selection
238
- let selectedAgents;
239
- let versionSelections;
240
- if (options.agents) {
241
- const result = resolveAgentVersionTargets(options.agents, SKILLS_CAPABLE_AGENTS);
242
- selectedAgents = result.selectedAgents;
243
- versionSelections = result.versionSelections;
244
- }
245
- else {
246
- const result = await promptAgentVersionSelection(SKILLS_CAPABLE_AGENTS, {
247
- skipPrompts: options.yes || !isInteractiveTerminal(),
248
- });
249
- selectedAgents = result.selectedAgents;
250
- versionSelections = result.versionSelections;
251
- }
252
- if (selectedAgents.length === 0) {
253
- console.log(chalk.yellow('\nNo agents selected.'));
254
- return;
255
- }
256
- // Sync to selected versions
257
- const syncSpinner = ora('Syncing to agent versions...').start();
258
- let synced = 0;
259
- const skillNames = skills.map((s) => s.name);
260
- for (const [agentId, versions] of versionSelections) {
261
- for (const version of versions) {
262
- syncResourcesToVersion(agentId, version);
263
- recordVersionResources(agentId, version, 'skills', skillNames);
264
- synced++;
265
- }
266
- }
267
- if (synced > 0) {
268
- syncSpinner.succeed(`Synced to ${synced} agent version(s)`);
269
- }
270
- else {
271
- syncSpinner.info('No version-managed agents to sync');
272
- }
273
- console.log(chalk.green('\nSkills installed.'));
274
- }
275
- catch (err) {
276
- if (isPromptCancelled(err)) {
277
- console.log(chalk.gray('\nCancelled'));
278
- return;
279
- }
280
- console.error(chalk.red('Failed to add skills'));
281
- console.error(chalk.red(err.message));
282
- process.exit(1);
283
- }
284
- });
285
- skillsCmd
286
- .command('remove [name]')
287
- .description('Delete a skill from central storage (interactive picker if no name given)')
288
- .addHelpText('after', `
289
- Examples:
290
- # Remove a skill by name
291
- agents skills remove api-testing
292
-
293
- # Interactive: pick skills to remove
294
- agents skills remove
295
- `)
296
- .action(async (name) => {
297
- let skillsToRemove;
298
- if (name) {
299
- skillsToRemove = [name];
300
- }
301
- else {
302
- // Interactive picker
303
- const installedSkills = listInstalledSkills();
304
- if (installedSkills.size === 0) {
305
- console.log(chalk.yellow('No skills installed.'));
306
- return;
307
- }
308
- if (!isInteractiveTerminal()) {
309
- requireInteractiveSelection('Selecting skills to remove', [
310
- 'agents skills remove agents-cli',
311
- ]);
312
- }
313
- try {
314
- const choices = Array.from(installedSkills.entries()).map(([skillName, skill]) => ({
315
- value: skillName,
316
- name: skill.metadata.description
317
- ? `${skillName} - ${skill.metadata.description}`
318
- : skillName,
319
- }));
320
- const selected = await checkbox({
321
- message: 'Select skills to remove',
322
- choices,
323
- });
324
- if (selected.length === 0) {
325
- console.log(chalk.gray('No skills selected.'));
326
- return;
327
- }
328
- skillsToRemove = selected;
329
- }
330
- catch (err) {
331
- if (isPromptCancelled(err)) {
332
- console.log(chalk.gray('Cancelled'));
333
- return;
334
- }
335
- throw err;
336
- }
337
- }
338
- for (const skillName of skillsToRemove) {
339
- const result = uninstallSkill(skillName);
340
- if (result.success) {
341
- console.log(chalk.green(`Removed skill '${skillName}'`));
342
- }
343
- else {
344
- console.log(chalk.red(result.error || `Failed to remove skill '${skillName}'`));
345
- }
346
- }
347
- });
348
- skillsCmd
349
- .command('sync')
350
- .description('Reconcile version-home skills against central ~/.agents/skills/ (add + update, never delete)')
351
- .option('-a, --agent <agent>', 'Scope to a specific agent or agent@version')
352
- .option('-m, --method <method>', 'Install method: copy (default) or symlink', 'copy')
353
- .addHelpText('after', `
354
- Examples:
355
- # Sync every installed version of every skills-capable agent
356
- agents skills sync
357
-
358
- # Scope to one agent
359
- agents skills sync --agent claude
360
-
361
- # Scope to one version
362
- agents skills sync --agent claude@2.1.113
363
-
364
- # Symlink into version homes (central updates propagate automatically)
365
- agents skills sync --method symlink
366
-
367
- Sync is additive: it installs missing skills and refreshes changed ones. To
368
- remove orphans (skills in a version home but not in central), use 'agents
369
- skills prune'.
370
- `)
371
- .action(async (options) => {
372
- const method = (options.method === 'symlink' ? 'symlink' : 'copy');
373
- let filter;
374
- if (options.agent) {
375
- const [name, version] = String(options.agent).split('@');
376
- const agentId = resolveAgentName(name);
377
- if (!agentId) {
378
- console.log(chalk.red(formatAgentError(name, SKILLS_CAPABLE_AGENTS)));
379
- process.exit(1);
380
- }
381
- filter = { agent: agentId, version: version || undefined };
382
- }
383
- const pairs = iterSkillsCapableVersions(filter);
384
- if (pairs.length === 0) {
385
- console.log(chalk.gray('No matching installed versions.'));
386
- return;
387
- }
388
- const diffs = pairs.map(({ agent, version }) => diffVersionSkills(agent, version));
389
- const plan = diffs.filter((d) => d.toAdd.length > 0 || d.toUpdate.length > 0);
390
- if (plan.length === 0) {
391
- console.log(chalk.green('All version homes are up to date with central.'));
392
- if (diffs.some((d) => d.orphans.length > 0)) {
393
- console.log(chalk.gray('Orphan skills present. Run \'agents skills prune --dry-run\' to review.'));
394
- }
395
- return;
396
- }
397
- console.log(chalk.bold(`Syncing skills (method: ${method})\n`));
398
- let adds = 0, updates = 0, failures = 0;
399
- for (const diff of plan) {
400
- const label = `${diff.agent}@${diff.version}`;
401
- if (diff.toAdd.length > 0) {
402
- console.log(` ${chalk.cyan(label)} ${chalk.gray('add:')} ${diff.toAdd.join(', ')}`);
403
- for (const name of diff.toAdd) {
404
- const r = installSkillToVersion(diff.agent, diff.version, name, method);
405
- if (r.success)
406
- adds++;
407
- else {
408
- failures++;
409
- console.log(chalk.red(` ! ${name}: ${r.error}`));
410
- }
411
- }
412
- }
413
- if (diff.toUpdate.length > 0) {
414
- console.log(` ${chalk.cyan(label)} ${chalk.gray('update:')} ${diff.toUpdate.join(', ')}`);
415
- for (const name of diff.toUpdate) {
416
- const r = installSkillToVersion(diff.agent, diff.version, name, method);
417
- if (r.success)
418
- updates++;
419
- else {
420
- failures++;
421
- console.log(chalk.red(` ! ${name}: ${r.error}`));
422
- }
423
- }
424
- }
425
- }
426
- console.log();
427
- console.log(chalk.green(`Synced: ${adds} added, ${updates} updated${failures > 0 ? chalk.red(`, ${failures} failed`) : ''}.`));
428
- const totalOrphans = diffs.reduce((n, d) => n + d.orphans.length, 0);
429
- if (totalOrphans > 0) {
430
- console.log(chalk.gray(`${totalOrphans} orphan(s) remain. Run 'agents skills prune --dry-run' to review.`));
431
- }
432
- });
433
- skillsCmd
434
- .command('prune')
435
- .description('Remove orphan skills from version homes (skills present locally but not in central)')
436
- .option('-a, --agent <agent>', 'Scope to a specific agent or agent@version')
437
- .option('--dry-run', 'Show orphans without deleting')
438
- .option('-y, --yes', 'Skip confirmation prompt')
439
- .addHelpText('after', `
440
- Examples:
441
- # See what would be pruned
442
- agents skills prune --dry-run
443
-
444
- # Prune across every installed version (prompts for confirmation)
445
- agents skills prune
446
-
447
- # Scope to one agent or version
448
- agents skills prune --agent claude@2.0.65
449
-
450
- # Skip confirmation (for scripts)
451
- agents skills prune -y
452
-
453
- Orphans are skills that exist inside a version home but are missing from the
454
- central ~/.agents/skills/ source of truth. Usually they are leftovers from a
455
- skill that was deleted centrally but never removed from the version install.
456
- `)
457
- .action(async (options) => {
458
- let filter;
459
- if (options.agent) {
460
- const [name, version] = String(options.agent).split('@');
461
- const agentId = resolveAgentName(name);
462
- if (!agentId) {
463
- console.log(chalk.red(formatAgentError(name, SKILLS_CAPABLE_AGENTS)));
464
- process.exit(1);
465
- }
466
- filter = { agent: agentId, version: version || undefined };
467
- }
468
- const pairs = iterSkillsCapableVersions(filter);
469
- const diffs = pairs
470
- .map(({ agent, version }) => diffVersionSkills(agent, version))
471
- .filter((d) => d.orphans.length > 0);
472
- if (diffs.length === 0) {
473
- console.log(chalk.green('No orphan skills.'));
474
- return;
475
- }
476
- const total = diffs.reduce((n, d) => n + d.orphans.length, 0);
477
- console.log(chalk.bold(`Orphans (in version home, not in central)\n`));
478
- for (const d of diffs) {
479
- console.log(` ${chalk.cyan(`${d.agent}@${d.version}`)} ${d.orphans.join(', ')}`);
480
- }
481
- console.log();
482
- if (options.dryRun) {
483
- console.log(chalk.gray(`${total} orphan(s). Run without --dry-run to delete.`));
484
- return;
485
- }
486
- if (!options.yes) {
487
- if (!isInteractiveTerminal()) {
488
- console.log(chalk.yellow('Non-interactive shell: pass -y to confirm, or --dry-run to preview.'));
489
- process.exit(1);
490
- }
491
- let ok = false;
492
- try {
493
- ok = await confirm({
494
- message: `Delete ${total} orphan skill director${total === 1 ? 'y' : 'ies'}?`,
495
- default: false,
496
- });
497
- }
498
- catch (err) {
499
- if (isPromptCancelled(err)) {
500
- console.log(chalk.gray('Cancelled'));
501
- return;
502
- }
503
- throw err;
504
- }
505
- if (!ok) {
506
- console.log(chalk.gray('Cancelled'));
507
- return;
508
- }
509
- }
510
- let removed = 0, failures = 0;
511
- for (const d of diffs) {
512
- for (const name of d.orphans) {
513
- const r = removeSkillFromVersion(d.agent, d.version, name);
514
- if (r.success)
515
- removed++;
516
- else {
517
- failures++;
518
- console.log(chalk.red(` ! ${d.agent}@${d.version} ${name}: ${r.error}`));
519
- }
520
- }
521
- }
522
- console.log(chalk.green(`Pruned ${removed} orphan(s)${failures > 0 ? chalk.red(`, ${failures} failed`) : ''}.`));
523
- });
524
- skillsCmd
525
- .command('view [name]')
526
- .description('Read skill metadata (name, description, rules count)')
527
- .addHelpText('after', `
528
- Examples:
529
- # View details for a specific skill
530
- agents skills view api-testing
531
-
532
- # Interactive picker
533
- agents skills view
534
- `)
535
- .action(async (name) => {
536
- // If no name provided, show interactive select
537
- if (!name) {
538
- const cwd = process.cwd();
539
- const allSkills = [];
540
- const seenNames = new Set();
541
- for (const agentId of SKILLS_CAPABLE_AGENTS) {
542
- const skills = listInstalledSkillsWithScope(agentId, cwd);
543
- for (const skill of skills) {
544
- if (!seenNames.has(skill.name)) {
545
- seenNames.add(skill.name);
546
- allSkills.push({
547
- name: skill.name,
548
- description: skill.metadata.description || '',
549
- });
550
- }
551
- }
552
- }
553
- if (allSkills.length === 0) {
554
- console.log(chalk.yellow('No skills installed'));
555
- return;
556
- }
557
- if (!isInteractiveTerminal()) {
558
- requireInteractiveSelection('Selecting a skill to view', [
559
- 'agents skills view agents-cli',
560
- ]);
561
- }
562
- try {
563
- name = await select({
564
- message: 'Select a skill to view',
565
- choices: allSkills.map((s) => {
566
- const maxDescLen = Math.max(0, 70 - s.name.length);
567
- const desc = s.description.length > maxDescLen
568
- ? s.description.slice(0, maxDescLen - 3) + '...'
569
- : s.description;
570
- return {
571
- value: s.name,
572
- name: desc ? `${s.name} - ${desc}` : s.name,
573
- };
574
- }),
575
- });
576
- }
577
- catch (err) {
578
- if (isPromptCancelled(err)) {
579
- console.log(chalk.gray('Cancelled'));
580
- return;
581
- }
582
- throw err;
583
- }
584
- }
585
- const skill = getSkillInfo(name);
586
- if (!skill) {
587
- console.log(chalk.yellow(`Skill '${name}' not found`));
588
- return;
589
- }
590
- // Build output
591
- const lines = [];
592
- lines.push(chalk.bold(`\n${skill.metadata.name}\n`));
593
- if (skill.metadata.description) {
594
- lines.push(` ${skill.metadata.description}`);
595
- }
596
- lines.push('');
597
- if (skill.metadata.author) {
598
- lines.push(` Author: ${skill.metadata.author}`);
599
- }
600
- if (skill.metadata.version) {
601
- lines.push(` Version: ${skill.metadata.version}`);
602
- }
603
- if (skill.metadata.license) {
604
- lines.push(` License: ${skill.metadata.license}`);
605
- }
606
- lines.push(` Path: ${skill.path}`);
607
- const rules = getSkillRules(name);
608
- if (rules.length > 0) {
609
- lines.push(chalk.bold(`\n Rules (${rules.length}):\n`));
610
- for (const rule of rules) {
611
- lines.push(` ${chalk.cyan(rule)}`);
612
- }
613
- }
614
- lines.push('');
615
- const output = lines.join('\n');
616
- printWithPager(output, lines.length);
617
- });
618
- // Deprecated alias for 'view'
619
- skillsCmd
620
- .command('info [name]', { hidden: true })
621
- .action(async (name) => {
622
- console.log(chalk.yellow('Deprecated: Use "agents skills view" instead of "agents skills info"\n'));
623
- // Re-execute view command logic
624
- await skillsCmd.commands.find((c) => c.name() === 'view')?.parseAsync(['view', ...(name ? [name] : [])], { from: 'user' });
625
- });
626
- }
627
- /**
628
- * Build the row data for `agents skills list`. Each row = one central skill
629
- * with a sync-status target per (agent, version) in scope.
630
- */
631
- async function buildSkillRows(opts) {
632
- const central = listInstalledSkills(); // Map<name, DiscoveredSkill>
633
- if (central.size === 0)
634
- return [];
635
- const targetPairs = iterSkillsCapableVersions({
636
- agent: opts.filterAgent,
637
- version: opts.filterVersion,
638
- });
639
- // Precompute per-(agent, version) diffs so we can look up each skill's
640
- // status without re-diffing 16 times per skill.
641
- const diffByTarget = new Map();
642
- const defaultByAgent = new Map();
643
- for (const { agent, version } of targetPairs) {
644
- if (!defaultByAgent.has(agent))
645
- defaultByAgent.set(agent, getGlobalDefault(agent));
646
- diffByTarget.set(`${agent}@${version}`, diffVersionSkills(agent, version));
647
- }
648
- const rows = [];
649
- for (const [name, skill] of central) {
650
- const targets = [];
651
- for (const { agent, version } of targetPairs) {
652
- const diff = diffByTarget.get(`${agent}@${version}`);
653
- let status;
654
- if (diff.matched.includes(name))
655
- status = 'synced';
656
- else if (diff.toUpdate.includes(name))
657
- status = 'stale';
658
- else
659
- status = 'missing';
660
- targets.push({
661
- agent,
662
- version,
663
- isDefault: defaultByAgent.get(agent) === version,
664
- status,
665
- });
666
- }
667
- const fileCount = countSkillFiles(skill.path);
668
- rows.push({
669
- name,
670
- description: skill.metadata.description,
671
- extra: fileCount > 0 ? `${fileCount}` : '-',
672
- targets,
673
- buildDetail: () => formatSkillDetail(name, skill, targets, fileCount),
674
- });
675
- }
676
- // Sort: fully-synced first, then partial, then missing — stable by name within each tier.
677
- rows.sort((a, b) => {
678
- const aSynced = a.targets.filter((t) => t.status === 'synced').length;
679
- const bSynced = b.targets.filter((t) => t.status === 'synced').length;
680
- if (aSynced !== bSynced)
681
- return bSynced - aSynced;
682
- return a.name.localeCompare(b.name);
683
- });
684
- return rows;
685
- }
686
- function formatSkillDetail(name, skill, targets, fileCount) {
687
- const lines = [];
688
- lines.push(chalk.bold.cyan(name));
689
- if (skill.metadata.description) {
690
- lines.push(chalk.gray(skill.metadata.description));
691
- }
692
- lines.push('');
693
- const meta = [];
694
- if (skill.metadata.author)
695
- meta.push(`author ${chalk.white(skill.metadata.author)}`);
696
- if (skill.metadata.version)
697
- meta.push(`v${chalk.white(skill.metadata.version)}`);
698
- if (skill.metadata.license)
699
- meta.push(`license ${chalk.white(skill.metadata.license)}`);
700
- meta.push(`${chalk.white(fileCount)} file${fileCount === 1 ? '' : 's'}`);
701
- if (skill.ruleCount > 0) {
702
- meta.push(`${chalk.white(skill.ruleCount)} rule${skill.ruleCount === 1 ? '' : 's'}`);
703
- }
704
- lines.push(' ' + meta.join(chalk.gray(' · ')));
705
- lines.push(' ' + chalk.gray(skill.path));
706
- const rules = getSkillRules(name);
707
- if (rules.length > 0) {
708
- lines.push('');
709
- lines.push(chalk.bold(' Rules'));
710
- lines.push(' ' + rules.map((r) => chalk.gray(r)).join(', '));
711
- }
712
- lines.push('');
713
- lines.push(chalk.bold(' Synced to'));
714
- lines.push(buildTargetsSection(targets));
715
- return lines.join('\n');
716
- }
717
- //# sourceMappingURL=skills.js.map