@phnx-labs/agents-cli 0.1.0 → 1.14.1

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 (554) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +283 -372
  3. package/dist/commands/alias.d.ts +11 -0
  4. package/dist/commands/alias.js +117 -0
  5. package/dist/commands/beta.d.ts +2 -0
  6. package/dist/commands/beta.js +53 -0
  7. package/dist/commands/cloud.d.ts +8 -1
  8. package/dist/commands/cloud.js +108 -22
  9. package/dist/commands/commands.d.ts +9 -1
  10. package/dist/commands/commands.js +24 -172
  11. package/dist/commands/daemon.d.ts +8 -1
  12. package/dist/commands/daemon.js +13 -5
  13. package/dist/commands/doctor.d.ts +15 -0
  14. package/dist/commands/doctor.js +132 -0
  15. package/dist/commands/drive.d.ts +8 -1
  16. package/dist/commands/drive.js +20 -3
  17. package/dist/commands/exec.d.ts +8 -1
  18. package/dist/commands/exec.js +96 -27
  19. package/dist/commands/factory.d.ts +19 -0
  20. package/dist/commands/factory.js +71 -0
  21. package/dist/commands/fork.d.ts +8 -1
  22. package/dist/commands/fork.js +11 -4
  23. package/dist/commands/hooks.d.ts +9 -1
  24. package/dist/commands/hooks.js +30 -182
  25. package/dist/commands/init.d.ts +15 -1
  26. package/dist/commands/init.js +168 -74
  27. package/dist/commands/mcp.d.ts +9 -1
  28. package/dist/commands/mcp.js +11 -7
  29. package/dist/commands/models.d.ts +8 -1
  30. package/dist/commands/models.js +16 -4
  31. package/dist/commands/packages.d.ts +8 -1
  32. package/dist/commands/packages.js +13 -7
  33. package/dist/commands/permissions.d.ts +9 -1
  34. package/dist/commands/permissions.js +3 -3
  35. package/dist/commands/plugins.d.ts +8 -1
  36. package/dist/commands/plugins.js +13 -2
  37. package/dist/commands/profiles.d.ts +9 -1
  38. package/dist/commands/profiles.js +56 -7
  39. package/dist/commands/prune.d.ts +22 -0
  40. package/dist/commands/prune.js +191 -0
  41. package/dist/commands/pty.d.ts +1 -1
  42. package/dist/commands/pty.js +2 -1
  43. package/dist/commands/pull.d.ts +8 -1
  44. package/dist/commands/pull.js +58 -128
  45. package/dist/commands/refresh-memory.d.ts +7 -1
  46. package/dist/commands/refresh-memory.js +7 -1
  47. package/dist/commands/repo.d.ts +15 -0
  48. package/dist/commands/repo.js +570 -0
  49. package/dist/commands/resource-view.d.ts +10 -3
  50. package/dist/commands/resource-view.js +18 -5
  51. package/dist/commands/routines.d.ts +8 -1
  52. package/dist/commands/routines.js +17 -4
  53. package/dist/commands/rules.d.ts +9 -1
  54. package/dist/commands/rules.js +16 -11
  55. package/dist/commands/secrets.d.ts +8 -1
  56. package/dist/commands/secrets.js +235 -63
  57. package/dist/commands/sessions-picker.d.ts +2 -1
  58. package/dist/commands/sessions-picker.js +88 -11
  59. package/dist/commands/sessions-tail.d.ts +19 -0
  60. package/dist/commands/sessions-tail.js +235 -0
  61. package/dist/commands/sessions.d.ts +2 -1
  62. package/dist/commands/sessions.js +188 -7
  63. package/dist/commands/skills.d.ts +9 -1
  64. package/dist/commands/skills.js +28 -178
  65. package/dist/commands/status.d.ts +7 -1
  66. package/dist/commands/status.js +7 -1
  67. package/dist/commands/subagents.d.ts +8 -1
  68. package/dist/commands/subagents.js +11 -1
  69. package/dist/commands/sync.d.ts +8 -1
  70. package/dist/commands/sync.js +8 -1
  71. package/dist/commands/teams-picker.d.ts +4 -1
  72. package/dist/commands/teams-picker.js +55 -3
  73. package/dist/commands/teams.d.ts +15 -1
  74. package/dist/commands/teams.js +323 -69
  75. package/dist/commands/usage.d.ts +11 -0
  76. package/dist/commands/usage.js +60 -0
  77. package/dist/commands/utils.d.ts +6 -1
  78. package/dist/commands/utils.js +6 -1
  79. package/dist/commands/versions.d.ts +8 -1
  80. package/dist/commands/versions.js +4 -3
  81. package/dist/commands/view.d.ts +47 -2
  82. package/dist/commands/view.js +317 -24
  83. package/dist/index.d.ts +7 -2
  84. package/dist/index.js +172 -34
  85. package/dist/lib/acp/client.d.ts +31 -0
  86. package/dist/lib/acp/client.js +117 -0
  87. package/dist/lib/acp/harnesses.d.ts +26 -0
  88. package/dist/lib/acp/harnesses.js +65 -0
  89. package/dist/lib/acp/run.d.ts +18 -0
  90. package/dist/lib/acp/run.js +39 -0
  91. package/dist/lib/agents.d.ts +74 -2
  92. package/dist/lib/agents.js +197 -21
  93. package/dist/lib/artifact-actions.d.ts +8 -4
  94. package/dist/lib/artifact-actions.js +8 -6
  95. package/dist/lib/auto-pull-worker.d.ts +11 -0
  96. package/dist/lib/auto-pull-worker.js +121 -0
  97. package/dist/lib/auto-pull.d.ts +31 -0
  98. package/dist/lib/auto-pull.js +97 -0
  99. package/dist/lib/beta.d.ts +23 -0
  100. package/dist/lib/beta.js +90 -0
  101. package/dist/lib/capabilities.d.ts +29 -0
  102. package/dist/lib/capabilities.js +74 -0
  103. package/dist/lib/cloud/codex.d.ts +9 -3
  104. package/dist/lib/cloud/codex.js +53 -13
  105. package/dist/lib/cloud/factory.d.ts +8 -3
  106. package/dist/lib/cloud/factory.js +19 -3
  107. package/dist/lib/cloud/registry.d.ts +10 -1
  108. package/dist/lib/cloud/registry.js +14 -3
  109. package/dist/lib/cloud/rush.d.ts +63 -3
  110. package/dist/lib/cloud/rush.js +273 -20
  111. package/dist/lib/cloud/store.d.ts +13 -1
  112. package/dist/lib/cloud/store.js +23 -4
  113. package/dist/lib/cloud/stream.d.ts +6 -1
  114. package/dist/lib/cloud/stream.js +95 -39
  115. package/dist/lib/cloud/types.d.ts +153 -8
  116. package/dist/lib/cloud/types.js +34 -2
  117. package/dist/lib/command-skills.d.ts +20 -0
  118. package/dist/lib/command-skills.js +142 -0
  119. package/dist/lib/commands.d.ts +22 -2
  120. package/dist/lib/commands.js +51 -11
  121. package/dist/lib/convert.d.ts +10 -1
  122. package/dist/lib/convert.js +9 -1
  123. package/dist/lib/daemon.d.ts +21 -1
  124. package/dist/lib/daemon.js +97 -4
  125. package/dist/lib/drive-sync.d.ts +18 -1
  126. package/dist/lib/drive-sync.js +57 -15
  127. package/dist/lib/exec.d.ts +23 -6
  128. package/dist/lib/exec.js +53 -17
  129. package/dist/lib/fs-walk.d.ts +2 -0
  130. package/dist/lib/fs-walk.js +40 -0
  131. package/dist/lib/fuzzy.d.ts +53 -0
  132. package/dist/lib/fuzzy.js +72 -0
  133. package/dist/lib/gemini-settings.d.ts +4 -0
  134. package/dist/lib/gemini-settings.js +33 -0
  135. package/dist/lib/git.d.ts +12 -2
  136. package/dist/lib/git.js +17 -6
  137. package/dist/lib/help.d.ts +20 -1
  138. package/dist/lib/help.js +45 -6
  139. package/dist/lib/hooks/match.d.ts +32 -0
  140. package/dist/lib/hooks/match.js +120 -0
  141. package/dist/lib/hooks.d.ts +17 -4
  142. package/dist/lib/hooks.js +119 -101
  143. package/dist/lib/manifest.d.ts +6 -1
  144. package/dist/lib/manifest.js +15 -4
  145. package/dist/lib/markdown.d.ts +0 -1
  146. package/dist/lib/markdown.js +6 -1
  147. package/dist/lib/mcp.d.ts +0 -1
  148. package/dist/lib/mcp.js +29 -33
  149. package/dist/lib/memory-compile.d.ts +13 -3
  150. package/dist/lib/memory-compile.js +31 -9
  151. package/dist/lib/memory.d.ts +14 -7
  152. package/dist/lib/memory.js +67 -38
  153. package/dist/lib/migrate.d.ts +8 -0
  154. package/dist/lib/migrate.js +85 -0
  155. package/dist/lib/models.d.ts +10 -4
  156. package/dist/lib/models.js +36 -15
  157. package/dist/lib/onepassword.d.ts +63 -0
  158. package/dist/lib/onepassword.js +186 -0
  159. package/dist/lib/paths.d.ts +8 -0
  160. package/dist/lib/paths.js +20 -0
  161. package/dist/lib/permissions.d.ts +24 -2
  162. package/dist/lib/permissions.js +117 -48
  163. package/dist/lib/picker.d.ts +10 -1
  164. package/dist/lib/picker.js +15 -1
  165. package/dist/lib/plugins.d.ts +7 -1
  166. package/dist/lib/plugins.js +10 -1
  167. package/dist/lib/profiles-presets.d.ts +10 -1
  168. package/dist/lib/profiles-presets.js +9 -1
  169. package/dist/lib/profiles.d.ts +35 -1
  170. package/dist/lib/profiles.js +36 -15
  171. package/dist/lib/pty-client.d.ts +1 -1
  172. package/dist/lib/pty-client.js +0 -1
  173. package/dist/lib/pty-server.d.ts +16 -2
  174. package/dist/lib/pty-server.js +92 -3
  175. package/dist/lib/registry.d.ts +23 -3
  176. package/dist/lib/registry.js +153 -8
  177. package/dist/lib/resources.d.ts +28 -1
  178. package/dist/lib/resources.js +79 -1
  179. package/dist/lib/rotate.d.ts +40 -13
  180. package/dist/lib/rotate.js +238 -40
  181. package/dist/lib/routines.d.ts +29 -1
  182. package/dist/lib/routines.js +32 -5
  183. package/dist/lib/runner.d.ts +14 -1
  184. package/dist/lib/runner.js +22 -3
  185. package/dist/lib/sandbox.d.ts +16 -1
  186. package/dist/lib/sandbox.js +39 -16
  187. package/dist/lib/scheduler.d.ts +8 -1
  188. package/dist/lib/scheduler.js +8 -1
  189. package/dist/lib/secrets/AgentsKeychain.app/Contents/CodeResources +0 -0
  190. package/dist/lib/secrets/AgentsKeychain.app/Contents/Info.plist +22 -0
  191. package/dist/lib/secrets/AgentsKeychain.app/Contents/MacOS/AgentsKeychain +0 -0
  192. package/dist/lib/secrets/AgentsKeychain.app/Contents/_CodeSignature/CodeResources +123 -0
  193. package/dist/lib/secrets/AgentsKeychain.app/Contents/embedded.provisionprofile +0 -0
  194. package/dist/lib/{secrets-bundles.d.ts → secrets/bundles.d.ts} +12 -2
  195. package/dist/lib/{secrets-bundles.js → secrets/bundles.js} +38 -17
  196. package/dist/lib/secrets/index.d.ts +55 -0
  197. package/dist/lib/secrets/index.js +211 -0
  198. package/dist/lib/secrets/profiles.d.ts +10 -0
  199. package/dist/lib/secrets/profiles.js +13 -0
  200. package/dist/lib/session/active.d.ts +43 -0
  201. package/dist/lib/session/active.js +392 -0
  202. package/dist/lib/session/artifacts.d.ts +12 -1
  203. package/dist/lib/session/artifacts.js +25 -5
  204. package/dist/lib/session/cloud.d.ts +30 -0
  205. package/dist/lib/session/cloud.js +121 -0
  206. package/dist/lib/session/db.d.ts +23 -2
  207. package/dist/lib/session/db.js +76 -12
  208. package/dist/lib/session/discover.d.ts +19 -4
  209. package/dist/lib/session/discover.js +344 -48
  210. package/dist/lib/session/parse.d.ts +28 -1
  211. package/dist/lib/session/parse.js +267 -9
  212. package/dist/lib/session/prompt.d.ts +9 -1
  213. package/dist/lib/session/prompt.js +17 -3
  214. package/dist/lib/session/render.d.ts +13 -1
  215. package/dist/lib/session/render.js +20 -1
  216. package/dist/lib/session/team-filter.d.ts +9 -1
  217. package/dist/lib/session/team-filter.js +11 -2
  218. package/dist/lib/session/types.d.ts +16 -2
  219. package/dist/lib/session/types.js +10 -2
  220. package/dist/lib/shims.d.ts +64 -5
  221. package/dist/lib/shims.js +309 -47
  222. package/dist/lib/skills.d.ts +27 -2
  223. package/dist/lib/skills.js +127 -65
  224. package/dist/lib/sqlite.d.ts +43 -0
  225. package/dist/lib/sqlite.js +94 -0
  226. package/dist/lib/state.d.ts +112 -27
  227. package/dist/lib/state.js +320 -148
  228. package/dist/lib/subagents.d.ts +9 -1
  229. package/dist/lib/subagents.js +70 -63
  230. package/dist/lib/sync-manifest.d.ts +81 -0
  231. package/dist/lib/sync-manifest.js +450 -0
  232. package/dist/lib/teams/agents.d.ts +103 -5
  233. package/dist/lib/teams/agents.js +414 -91
  234. package/dist/lib/teams/api.d.ts +26 -3
  235. package/dist/lib/teams/api.js +63 -3
  236. package/dist/lib/teams/debug.d.ts +6 -1
  237. package/dist/lib/teams/debug.js +6 -1
  238. package/dist/lib/teams/file_ops.d.ts +7 -1
  239. package/dist/lib/teams/file_ops.js +7 -1
  240. package/dist/lib/teams/index.d.ts +15 -0
  241. package/dist/lib/teams/index.js +14 -0
  242. package/dist/lib/teams/parsers.d.ts +4 -1
  243. package/dist/lib/teams/parsers.js +11 -1
  244. package/dist/lib/teams/persistence.d.ts +15 -1
  245. package/dist/lib/teams/persistence.js +102 -20
  246. package/dist/lib/teams/registry.d.ts +12 -1
  247. package/dist/lib/teams/registry.js +116 -33
  248. package/dist/lib/teams/summarizer.d.ts +15 -1
  249. package/dist/lib/teams/summarizer.js +14 -1
  250. package/dist/lib/teams/supervisor.d.ts +48 -0
  251. package/dist/lib/teams/supervisor.js +73 -0
  252. package/dist/lib/template.d.ts +8 -6
  253. package/dist/lib/template.js +8 -6
  254. package/dist/lib/types.d.ts +147 -8
  255. package/dist/lib/types.js +26 -3
  256. package/dist/lib/usage.d.ts +32 -1
  257. package/dist/lib/usage.js +70 -6
  258. package/dist/lib/version-duplicates.d.ts +21 -0
  259. package/dist/lib/version-duplicates.js +90 -0
  260. package/dist/lib/versions.d.ts +33 -4
  261. package/dist/lib/versions.js +376 -108
  262. package/package.json +32 -17
  263. package/scripts/postinstall.js +126 -30
  264. package/dist/commands/__tests__/sessions.test.d.ts +0 -2
  265. package/dist/commands/__tests__/sessions.test.d.ts.map +0 -1
  266. package/dist/commands/__tests__/sessions.test.js +0 -636
  267. package/dist/commands/__tests__/sessions.test.js.map +0 -1
  268. package/dist/commands/cloud.d.ts.map +0 -1
  269. package/dist/commands/cloud.js.map +0 -1
  270. package/dist/commands/commands.d.ts.map +0 -1
  271. package/dist/commands/commands.js.map +0 -1
  272. package/dist/commands/daemon.d.ts.map +0 -1
  273. package/dist/commands/daemon.js.map +0 -1
  274. package/dist/commands/drive.d.ts.map +0 -1
  275. package/dist/commands/drive.js.map +0 -1
  276. package/dist/commands/exec.d.ts.map +0 -1
  277. package/dist/commands/exec.js.map +0 -1
  278. package/dist/commands/fork.d.ts.map +0 -1
  279. package/dist/commands/fork.js.map +0 -1
  280. package/dist/commands/hooks.d.ts.map +0 -1
  281. package/dist/commands/hooks.js.map +0 -1
  282. package/dist/commands/init.d.ts.map +0 -1
  283. package/dist/commands/init.js.map +0 -1
  284. package/dist/commands/mcp.d.ts.map +0 -1
  285. package/dist/commands/mcp.js.map +0 -1
  286. package/dist/commands/models.d.ts.map +0 -1
  287. package/dist/commands/models.js.map +0 -1
  288. package/dist/commands/packages.d.ts.map +0 -1
  289. package/dist/commands/packages.js.map +0 -1
  290. package/dist/commands/permissions.d.ts.map +0 -1
  291. package/dist/commands/permissions.js.map +0 -1
  292. package/dist/commands/plugins.d.ts.map +0 -1
  293. package/dist/commands/plugins.js.map +0 -1
  294. package/dist/commands/profiles.d.ts.map +0 -1
  295. package/dist/commands/profiles.js.map +0 -1
  296. package/dist/commands/pty.d.ts.map +0 -1
  297. package/dist/commands/pty.js.map +0 -1
  298. package/dist/commands/pull.d.ts.map +0 -1
  299. package/dist/commands/pull.js.map +0 -1
  300. package/dist/commands/push.d.ts +0 -3
  301. package/dist/commands/push.d.ts.map +0 -1
  302. package/dist/commands/push.js +0 -180
  303. package/dist/commands/push.js.map +0 -1
  304. package/dist/commands/refresh-memory.d.ts.map +0 -1
  305. package/dist/commands/refresh-memory.js.map +0 -1
  306. package/dist/commands/resource-view.d.ts.map +0 -1
  307. package/dist/commands/resource-view.js.map +0 -1
  308. package/dist/commands/routines.d.ts.map +0 -1
  309. package/dist/commands/routines.js.map +0 -1
  310. package/dist/commands/rules.d.ts.map +0 -1
  311. package/dist/commands/rules.js.map +0 -1
  312. package/dist/commands/secrets.d.ts.map +0 -1
  313. package/dist/commands/secrets.js.map +0 -1
  314. package/dist/commands/sessions-picker.d.ts.map +0 -1
  315. package/dist/commands/sessions-picker.js.map +0 -1
  316. package/dist/commands/sessions.d.ts.map +0 -1
  317. package/dist/commands/sessions.js.map +0 -1
  318. package/dist/commands/skills.d.ts.map +0 -1
  319. package/dist/commands/skills.js.map +0 -1
  320. package/dist/commands/status.d.ts.map +0 -1
  321. package/dist/commands/status.js.map +0 -1
  322. package/dist/commands/subagents.d.ts.map +0 -1
  323. package/dist/commands/subagents.js.map +0 -1
  324. package/dist/commands/sync.d.ts.map +0 -1
  325. package/dist/commands/sync.js.map +0 -1
  326. package/dist/commands/teams-picker.d.ts.map +0 -1
  327. package/dist/commands/teams-picker.js.map +0 -1
  328. package/dist/commands/teams.d.ts.map +0 -1
  329. package/dist/commands/teams.js.map +0 -1
  330. package/dist/commands/utils.d.ts.map +0 -1
  331. package/dist/commands/utils.js.map +0 -1
  332. package/dist/commands/versions.d.ts.map +0 -1
  333. package/dist/commands/versions.js.map +0 -1
  334. package/dist/commands/view.d.ts.map +0 -1
  335. package/dist/commands/view.js.map +0 -1
  336. package/dist/index.d.ts.map +0 -1
  337. package/dist/index.js.map +0 -1
  338. package/dist/lib/__tests__/bugfixes.test.d.ts +0 -2
  339. package/dist/lib/__tests__/bugfixes.test.d.ts.map +0 -1
  340. package/dist/lib/__tests__/bugfixes.test.js +0 -192
  341. package/dist/lib/__tests__/bugfixes.test.js.map +0 -1
  342. package/dist/lib/__tests__/exec.test.d.ts +0 -2
  343. package/dist/lib/__tests__/exec.test.d.ts.map +0 -1
  344. package/dist/lib/__tests__/exec.test.js +0 -446
  345. package/dist/lib/__tests__/exec.test.js.map +0 -1
  346. package/dist/lib/__tests__/git-sync.test.d.ts +0 -2
  347. package/dist/lib/__tests__/git-sync.test.d.ts.map +0 -1
  348. package/dist/lib/__tests__/git-sync.test.js +0 -138
  349. package/dist/lib/__tests__/git-sync.test.js.map +0 -1
  350. package/dist/lib/__tests__/hooks.test.d.ts +0 -2
  351. package/dist/lib/__tests__/hooks.test.d.ts.map +0 -1
  352. package/dist/lib/__tests__/hooks.test.js +0 -203
  353. package/dist/lib/__tests__/hooks.test.js.map +0 -1
  354. package/dist/lib/__tests__/memory-compile.test.d.ts +0 -2
  355. package/dist/lib/__tests__/memory-compile.test.d.ts.map +0 -1
  356. package/dist/lib/__tests__/memory-compile.test.js +0 -95
  357. package/dist/lib/__tests__/memory-compile.test.js.map +0 -1
  358. package/dist/lib/__tests__/models.test.d.ts +0 -2
  359. package/dist/lib/__tests__/models.test.d.ts.map +0 -1
  360. package/dist/lib/__tests__/models.test.js +0 -239
  361. package/dist/lib/__tests__/models.test.js.map +0 -1
  362. package/dist/lib/__tests__/rotate.test.d.ts +0 -2
  363. package/dist/lib/__tests__/rotate.test.d.ts.map +0 -1
  364. package/dist/lib/__tests__/rotate.test.js +0 -80
  365. package/dist/lib/__tests__/rotate.test.js.map +0 -1
  366. package/dist/lib/__tests__/secrets-bundles.test.d.ts +0 -2
  367. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +0 -1
  368. package/dist/lib/__tests__/secrets-bundles.test.js +0 -104
  369. package/dist/lib/__tests__/secrets-bundles.test.js.map +0 -1
  370. package/dist/lib/__tests__/secrets.test.d.ts +0 -2
  371. package/dist/lib/__tests__/secrets.test.d.ts.map +0 -1
  372. package/dist/lib/__tests__/secrets.test.js +0 -90
  373. package/dist/lib/__tests__/secrets.test.js.map +0 -1
  374. package/dist/lib/__tests__/shims.test.d.ts +0 -2
  375. package/dist/lib/__tests__/shims.test.d.ts.map +0 -1
  376. package/dist/lib/__tests__/shims.test.js +0 -39
  377. package/dist/lib/__tests__/shims.test.js.map +0 -1
  378. package/dist/lib/__tests__/usage.test.d.ts +0 -2
  379. package/dist/lib/__tests__/usage.test.d.ts.map +0 -1
  380. package/dist/lib/__tests__/usage.test.js +0 -220
  381. package/dist/lib/__tests__/usage.test.js.map +0 -1
  382. package/dist/lib/__tests__/versions.test.d.ts +0 -2
  383. package/dist/lib/__tests__/versions.test.d.ts.map +0 -1
  384. package/dist/lib/__tests__/versions.test.js +0 -63
  385. package/dist/lib/__tests__/versions.test.js.map +0 -1
  386. package/dist/lib/agents.d.ts.map +0 -1
  387. package/dist/lib/agents.js.map +0 -1
  388. package/dist/lib/artifact-actions.d.ts.map +0 -1
  389. package/dist/lib/artifact-actions.js.map +0 -1
  390. package/dist/lib/cloud/codex.d.ts.map +0 -1
  391. package/dist/lib/cloud/codex.js.map +0 -1
  392. package/dist/lib/cloud/factory.d.ts.map +0 -1
  393. package/dist/lib/cloud/factory.js.map +0 -1
  394. package/dist/lib/cloud/registry.d.ts.map +0 -1
  395. package/dist/lib/cloud/registry.js.map +0 -1
  396. package/dist/lib/cloud/rush.d.ts.map +0 -1
  397. package/dist/lib/cloud/rush.js.map +0 -1
  398. package/dist/lib/cloud/store.d.ts.map +0 -1
  399. package/dist/lib/cloud/store.js.map +0 -1
  400. package/dist/lib/cloud/stream.d.ts.map +0 -1
  401. package/dist/lib/cloud/stream.js.map +0 -1
  402. package/dist/lib/cloud/types.d.ts.map +0 -1
  403. package/dist/lib/cloud/types.js.map +0 -1
  404. package/dist/lib/commands.d.ts.map +0 -1
  405. package/dist/lib/commands.js.map +0 -1
  406. package/dist/lib/convert.d.ts.map +0 -1
  407. package/dist/lib/convert.js.map +0 -1
  408. package/dist/lib/daemon.d.ts.map +0 -1
  409. package/dist/lib/daemon.js.map +0 -1
  410. package/dist/lib/drive-sync.d.ts.map +0 -1
  411. package/dist/lib/drive-sync.js.map +0 -1
  412. package/dist/lib/exec.d.ts.map +0 -1
  413. package/dist/lib/exec.js.map +0 -1
  414. package/dist/lib/factory.d.ts +0 -57
  415. package/dist/lib/factory.d.ts.map +0 -1
  416. package/dist/lib/factory.js +0 -110
  417. package/dist/lib/factory.js.map +0 -1
  418. package/dist/lib/git.d.ts.map +0 -1
  419. package/dist/lib/git.js.map +0 -1
  420. package/dist/lib/help.d.ts.map +0 -1
  421. package/dist/lib/help.js.map +0 -1
  422. package/dist/lib/hooks.d.ts.map +0 -1
  423. package/dist/lib/hooks.js.map +0 -1
  424. package/dist/lib/manifest.d.ts.map +0 -1
  425. package/dist/lib/manifest.js.map +0 -1
  426. package/dist/lib/markdown.d.ts.map +0 -1
  427. package/dist/lib/markdown.js.map +0 -1
  428. package/dist/lib/mcp.d.ts.map +0 -1
  429. package/dist/lib/mcp.js.map +0 -1
  430. package/dist/lib/memory-compile.d.ts.map +0 -1
  431. package/dist/lib/memory-compile.js.map +0 -1
  432. package/dist/lib/memory.d.ts.map +0 -1
  433. package/dist/lib/memory.js.map +0 -1
  434. package/dist/lib/models.d.ts.map +0 -1
  435. package/dist/lib/models.js.map +0 -1
  436. package/dist/lib/permissions.d.ts.map +0 -1
  437. package/dist/lib/permissions.js.map +0 -1
  438. package/dist/lib/picker.d.ts.map +0 -1
  439. package/dist/lib/picker.js.map +0 -1
  440. package/dist/lib/plugins.d.ts.map +0 -1
  441. package/dist/lib/plugins.js.map +0 -1
  442. package/dist/lib/profiles-keychain.d.ts +0 -3
  443. package/dist/lib/profiles-keychain.d.ts.map +0 -1
  444. package/dist/lib/profiles-keychain.js +0 -10
  445. package/dist/lib/profiles-keychain.js.map +0 -1
  446. package/dist/lib/profiles-presets.d.ts.map +0 -1
  447. package/dist/lib/profiles-presets.js.map +0 -1
  448. package/dist/lib/profiles.d.ts.map +0 -1
  449. package/dist/lib/profiles.js.map +0 -1
  450. package/dist/lib/pty-client.d.ts.map +0 -1
  451. package/dist/lib/pty-client.js.map +0 -1
  452. package/dist/lib/pty-server.d.ts.map +0 -1
  453. package/dist/lib/pty-server.js.map +0 -1
  454. package/dist/lib/registry.d.ts.map +0 -1
  455. package/dist/lib/registry.js.map +0 -1
  456. package/dist/lib/resources.d.ts.map +0 -1
  457. package/dist/lib/resources.js.map +0 -1
  458. package/dist/lib/rotate.d.ts.map +0 -1
  459. package/dist/lib/rotate.js.map +0 -1
  460. package/dist/lib/routines.d.ts.map +0 -1
  461. package/dist/lib/routines.js.map +0 -1
  462. package/dist/lib/runner.d.ts.map +0 -1
  463. package/dist/lib/runner.js.map +0 -1
  464. package/dist/lib/sandbox.d.ts.map +0 -1
  465. package/dist/lib/sandbox.js.map +0 -1
  466. package/dist/lib/scheduler.d.ts.map +0 -1
  467. package/dist/lib/scheduler.js.map +0 -1
  468. package/dist/lib/secrets-bundles.d.ts.map +0 -1
  469. package/dist/lib/secrets-bundles.js.map +0 -1
  470. package/dist/lib/secrets.d.ts +0 -27
  471. package/dist/lib/secrets.d.ts.map +0 -1
  472. package/dist/lib/secrets.js +0 -127
  473. package/dist/lib/secrets.js.map +0 -1
  474. package/dist/lib/session/__tests__/db.test.d.ts +0 -2
  475. package/dist/lib/session/__tests__/db.test.d.ts.map +0 -1
  476. package/dist/lib/session/__tests__/db.test.js +0 -54
  477. package/dist/lib/session/__tests__/db.test.js.map +0 -1
  478. package/dist/lib/session/__tests__/discover.test.d.ts +0 -2
  479. package/dist/lib/session/__tests__/discover.test.d.ts.map +0 -1
  480. package/dist/lib/session/__tests__/discover.test.js +0 -63
  481. package/dist/lib/session/__tests__/discover.test.js.map +0 -1
  482. package/dist/lib/session/__tests__/prompt.test.d.ts +0 -2
  483. package/dist/lib/session/__tests__/prompt.test.d.ts.map +0 -1
  484. package/dist/lib/session/__tests__/prompt.test.js +0 -44
  485. package/dist/lib/session/__tests__/prompt.test.js.map +0 -1
  486. package/dist/lib/session/__tests__/render.test.d.ts +0 -2
  487. package/dist/lib/session/__tests__/render.test.d.ts.map +0 -1
  488. package/dist/lib/session/__tests__/render.test.js +0 -602
  489. package/dist/lib/session/__tests__/render.test.js.map +0 -1
  490. package/dist/lib/session/artifacts.d.ts.map +0 -1
  491. package/dist/lib/session/artifacts.js.map +0 -1
  492. package/dist/lib/session/db.d.ts.map +0 -1
  493. package/dist/lib/session/db.js.map +0 -1
  494. package/dist/lib/session/discover.d.ts.map +0 -1
  495. package/dist/lib/session/discover.js.map +0 -1
  496. package/dist/lib/session/parse.d.ts.map +0 -1
  497. package/dist/lib/session/parse.js.map +0 -1
  498. package/dist/lib/session/prompt.d.ts.map +0 -1
  499. package/dist/lib/session/prompt.js.map +0 -1
  500. package/dist/lib/session/prompt.test.d.ts +0 -2
  501. package/dist/lib/session/prompt.test.d.ts.map +0 -1
  502. package/dist/lib/session/prompt.test.js +0 -57
  503. package/dist/lib/session/prompt.test.js.map +0 -1
  504. package/dist/lib/session/render.d.ts.map +0 -1
  505. package/dist/lib/session/render.js.map +0 -1
  506. package/dist/lib/session/team-filter.d.ts.map +0 -1
  507. package/dist/lib/session/team-filter.js.map +0 -1
  508. package/dist/lib/session/team-filter.test.d.ts +0 -2
  509. package/dist/lib/session/team-filter.test.d.ts.map +0 -1
  510. package/dist/lib/session/team-filter.test.js +0 -157
  511. package/dist/lib/session/team-filter.test.js.map +0 -1
  512. package/dist/lib/session/types.d.ts.map +0 -1
  513. package/dist/lib/session/types.js.map +0 -1
  514. package/dist/lib/shims.d.ts.map +0 -1
  515. package/dist/lib/shims.js.map +0 -1
  516. package/dist/lib/skills.d.ts.map +0 -1
  517. package/dist/lib/skills.js.map +0 -1
  518. package/dist/lib/state.d.ts.map +0 -1
  519. package/dist/lib/state.js.map +0 -1
  520. package/dist/lib/subagents.d.ts.map +0 -1
  521. package/dist/lib/subagents.js.map +0 -1
  522. package/dist/lib/teams/agents.d.ts.map +0 -1
  523. package/dist/lib/teams/agents.js.map +0 -1
  524. package/dist/lib/teams/api.d.ts.map +0 -1
  525. package/dist/lib/teams/api.js.map +0 -1
  526. package/dist/lib/teams/cloud.d.ts +0 -11
  527. package/dist/lib/teams/cloud.d.ts.map +0 -1
  528. package/dist/lib/teams/cloud.js +0 -169
  529. package/dist/lib/teams/cloud.js.map +0 -1
  530. package/dist/lib/teams/debug.d.ts.map +0 -1
  531. package/dist/lib/teams/debug.js.map +0 -1
  532. package/dist/lib/teams/file_ops.d.ts.map +0 -1
  533. package/dist/lib/teams/file_ops.js.map +0 -1
  534. package/dist/lib/teams/parsers.d.ts.map +0 -1
  535. package/dist/lib/teams/parsers.js.map +0 -1
  536. package/dist/lib/teams/persistence.d.ts.map +0 -1
  537. package/dist/lib/teams/persistence.js.map +0 -1
  538. package/dist/lib/teams/ralph.d.ts +0 -8
  539. package/dist/lib/teams/ralph.d.ts.map +0 -1
  540. package/dist/lib/teams/ralph.js +0 -59
  541. package/dist/lib/teams/ralph.js.map +0 -1
  542. package/dist/lib/teams/registry.d.ts.map +0 -1
  543. package/dist/lib/teams/registry.js.map +0 -1
  544. package/dist/lib/teams/summarizer.d.ts.map +0 -1
  545. package/dist/lib/teams/summarizer.js.map +0 -1
  546. package/dist/lib/template.d.ts.map +0 -1
  547. package/dist/lib/template.js.map +0 -1
  548. package/dist/lib/types.d.ts.map +0 -1
  549. package/dist/lib/types.js.map +0 -1
  550. package/dist/lib/usage.d.ts.map +0 -1
  551. package/dist/lib/usage.js.map +0 -1
  552. package/dist/lib/versions.d.ts.map +0 -1
  553. package/dist/lib/versions.js.map +0 -1
  554. package/scripts/rebuild-sqlite.sh +0 -46
@@ -1,7 +1,14 @@
1
+ /**
2
+ * Model catalog inspection command.
3
+ *
4
+ * Registers the hidden `agents models` command for listing models
5
+ * supported by installed agent versions. Extracts model catalogs from
6
+ * each agent's CLI bundle and displays IDs, aliases, and metadata.
7
+ */
1
8
  import chalk from 'chalk';
2
9
  import * as fs from 'fs';
3
10
  import { resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
4
- import { listInstalledVersions, getGlobalDefault, resolveVersion } from '../lib/versions.js';
11
+ import { listInstalledVersions, getGlobalDefault, resolveVersion, resolveVersionAlias } from '../lib/versions.js';
5
12
  import { getModelCatalog, locateModelSource } from '../lib/models.js';
6
13
  const MODEL_CAPABLE_AGENTS = ['claude', 'codex', 'gemini', 'opencode', 'cursor', 'openclaw'];
7
14
  /**
@@ -10,6 +17,7 @@ const MODEL_CAPABLE_AGENTS = ['claude', 'codex', 'gemini', 'opencode', 'cursor',
10
17
  * a version label from the install path so cache keys stay stable.
11
18
  */
12
19
  const PATH_ONLY_AGENTS = new Set(['cursor']);
20
+ /** Derive a version label from the PATH-installed binary location for agents without managed versions. */
13
21
  function fallbackPathVersion(agent) {
14
22
  const src = locateModelSource(agent, 'unresolved');
15
23
  if (!src)
@@ -24,6 +32,7 @@ function fallbackPathVersion(agent) {
24
32
  const m = real.match(/\/versions\/([^/]+)\//);
25
33
  return m ? m[1] : 'installed';
26
34
  }
35
+ /** Register the hidden `agents models` command. */
27
36
  export function registerModelsCommand(program) {
28
37
  program
29
38
  .command('models [agentSpec]', { hidden: true })
@@ -53,6 +62,7 @@ export function registerModelsCommand(program) {
53
62
  }
54
63
  });
55
64
  }
65
+ /** Resolve the agent spec into one or more (agent, version) pairs to inspect. */
56
66
  async function resolveTargets(agentSpec) {
57
67
  if (!agentSpec) {
58
68
  const targets = [];
@@ -87,7 +97,8 @@ async function resolveTargets(agentSpec) {
87
97
  isDefault: v === getGlobalDefault(agent),
88
98
  }));
89
99
  }
90
- let version = versionSpec || resolveVersion(agent, process.cwd()) || getGlobalDefault(agent);
100
+ const aliasedVersion = resolveVersionAlias(agent, versionSpec);
101
+ let version = aliasedVersion || resolveVersion(agent, process.cwd()) || getGlobalDefault(agent);
91
102
  if (!version && PATH_ONLY_AGENTS.has(agent)) {
92
103
  version = fallbackPathVersion(agent);
93
104
  }
@@ -97,6 +108,7 @@ async function resolveTargets(agentSpec) {
97
108
  }
98
109
  return [{ agent, version, isDefault: version === getGlobalDefault(agent) }];
99
110
  }
111
+ /** Print the model catalog for a single agent version with optional cloud/reasoning details. */
100
112
  function printCatalog(agent, version, isDefault, options) {
101
113
  const tag = isDefault ? chalk.gray(' (default)') : '';
102
114
  const header = `${agentLabel(agent)} ${chalk.bold(version)}${tag}`;
@@ -104,7 +116,7 @@ function printCatalog(agent, version, isDefault, options) {
104
116
  const src = locateModelSource(agent, version);
105
117
  if (!src) {
106
118
  console.log(chalk.yellow(` Could not locate model source for ${agent}@${version}.`));
107
- console.log(chalk.gray(` Expected the agent's CLI bundle or native binary under ~/.agents/versions/${agent}/${version}/.`));
119
+ console.log(chalk.gray(` Expected the agent's CLI bundle or native binary under ~/.agents-system/versions/${agent}/${version}/.`));
108
120
  return;
109
121
  }
110
122
  const catalog = getModelCatalog(agent, version);
@@ -152,7 +164,7 @@ function printCatalog(agent, version, isDefault, options) {
152
164
  }
153
165
  }
154
166
  }
167
+ /** Abbreviate a path by replacing the home directory with ~. */
155
168
  function shortPath(p) {
156
169
  return p.replace(process.env.HOME || '~', '~');
157
170
  }
158
- //# sourceMappingURL=models.js.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Package registry and installation commands.
3
+ *
4
+ * Registers `agents registry`, `agents search`, and `agents install`
5
+ * for discovering and installing MCP servers, skills, commands, and
6
+ * hooks from configured registries or GitHub sources.
7
+ */
1
8
  import type { Command } from 'commander';
9
+ /** Register the `agents registry`, `agents search`, and `agents install` commands. */
2
10
  export declare function registerPackagesCommands(program: Command): void;
3
- //# sourceMappingURL=packages.d.ts.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Package registry and installation commands.
3
+ *
4
+ * Registers `agents registry`, `agents search`, and `agents install`
5
+ * for discovering and installing MCP servers, skills, commands, and
6
+ * hooks from configured registries or GitHub sources.
7
+ */
1
8
  import chalk from 'chalk';
2
9
  import ora from 'ora';
3
10
  import { AGENTS, ALL_AGENT_IDS, MCP_CAPABLE_AGENTS, getAllCliStates, registerMcpToTargets, agentLabel, } from '../lib/agents.js';
@@ -10,9 +17,11 @@ import { discoverHooksFromRepo, installHooks, installHooksCentrally, } from '../
10
17
  import { listInstalledVersions, resolveInstalledAgentTargets, resolveConfiguredAgentTargets, syncResourcesToVersion, } from '../lib/versions.js';
11
18
  import { isInteractiveTerminal, isPromptCancelled, requireDestructiveArg, requireInteractiveSelection, } from './utils.js';
12
19
  import { itemPicker } from '../lib/picker.js';
13
- // Picker fallback for `registry enable/config [name]`. Returns the picked
14
- // name, or null if the user cancels. In non-TTY shells, hard-fails with a
15
- // clear reminder of the positional form.
20
+ /**
21
+ * Picker fallback for `registry enable/config [name]`.
22
+ * Returns the picked name, or null if the user cancels. In non-TTY shells,
23
+ * hard-fails with a clear reminder of the positional form.
24
+ */
16
25
  async function pickRegistryName(type, verb, pred) {
17
26
  const registries = getRegistries(type);
18
27
  const entries = Object.entries(registries).filter(([, cfg]) => (pred ? pred(cfg) : true));
@@ -55,6 +64,7 @@ async function pickRegistryName(type, verb, pred) {
55
64
  throw err;
56
65
  }
57
66
  }
67
+ /** Register the `agents registry`, `agents search`, and `agents install` commands. */
58
68
  export function registerPackagesCommands(program) {
59
69
  // ==========================================================================
60
70
  // REGISTRY COMMANDS
@@ -265,9 +275,6 @@ When to use:
265
275
  spinner.stop();
266
276
  if (results.length === 0) {
267
277
  console.log(chalk.yellow('\nNo packages found.'));
268
- if (!options.type) {
269
- console.log(chalk.gray('\nTip: skill registries not yet available. Use gh:user/repo for skills.'));
270
- }
271
278
  return;
272
279
  }
273
280
  console.log(chalk.bold(`Found ${results.length} packages`));
@@ -538,4 +545,3 @@ When to use:
538
545
  }
539
546
  });
540
547
  }
541
- //# sourceMappingURL=packages.js.map
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Permission management commands for controlling agent access boundaries.
3
+ *
4
+ * Implements `agents permissions` -- list, add, remove, and view permission
5
+ * sets (allow/deny rules for bash, tools, and filesystem). Supports importing
6
+ * from agent config files, GitHub repos, and YAML, with merge/replace
7
+ * semantics and multi-version targeting.
8
+ */
1
9
  import type { Command } from 'commander';
10
+ /** Register the `agents permissions` command tree (list, add, remove, view). */
2
11
  export declare function registerPermissionsCommands(program: Command): void;
3
- //# sourceMappingURL=permissions.d.ts.map
@@ -7,9 +7,10 @@ import { confirm, checkbox } from '@inquirer/prompts';
7
7
  import { AGENTS, resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
8
8
  import { cloneRepo } from '../lib/git.js';
9
9
  import { PERMISSIONS_CAPABLE_AGENTS, listInstalledPermissions, discoverPermissionsFromRepo, installPermissionSet, removePermissionSet, applyPermissionsToVersion, readAgentPermissions, exportPermissionsFromPath, getDefaultPermissionSet, computePermissionsDiff, mergePermissionSets, saveDefaultPermissionSet, } from '../lib/permissions.js';
10
- import { listInstalledVersions, getGlobalDefault, getVersionHomePath, promptAgentVersionSelection, resolveAgentVersionTargets, } from '../lib/versions.js';
10
+ import { listInstalledVersions, getGlobalDefault, getVersionHomePath, promptAgentVersionSelection, resolveAgentVersionTargets, resolveVersionAlias, } from '../lib/versions.js';
11
11
  import { recordVersionResources } from '../lib/state.js';
12
12
  import { isPromptCancelled, isInteractiveTerminal, parseCommaSeparatedList, printWithPager, requireInteractiveSelection, } from './utils.js';
13
+ /** Register the `agents permissions` command tree (list, add, remove, view). */
13
14
  export function registerPermissionsCommands(program) {
14
15
  const permissionsCmd = program
15
16
  .command('permissions')
@@ -106,12 +107,12 @@ When to use:
106
107
  // Parse agent@version syntax
107
108
  const parts = agentArg.split('@');
108
109
  const agentName = parts[0];
109
- const requestedVersion = parts[1] || null;
110
110
  const agentId = resolveAgentName(agentName);
111
111
  if (!agentId) {
112
112
  console.log(chalk.red(formatAgentError(agentName, PERMISSIONS_CAPABLE_AGENTS)));
113
113
  process.exit(1);
114
114
  }
115
+ const requestedVersion = resolveVersionAlias(agentId, parts[1]) ?? null;
115
116
  if (!PERMISSIONS_CAPABLE_AGENTS.includes(agentId)) {
116
117
  console.log(chalk.yellow(`${AGENTS[agentId].name} does not support fine-grained permissions`));
117
118
  return;
@@ -720,4 +721,3 @@ Examples:
720
721
  // Note: This needs to be registered at the program level, not as a subcommand
721
722
  // The actual deprecation message is shown in index.ts
722
723
  }
723
- //# sourceMappingURL=permissions.js.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Plugin management commands.
3
+ *
4
+ * Registers the `agents plugins` command tree for listing, viewing,
5
+ * syncing, and removing plugin bundles (skills + hooks + permissions)
6
+ * stored in ~/.agents/plugins/.
7
+ */
1
8
  import type { Command } from 'commander';
9
+ /** Register the `agents plugins` command tree. */
2
10
  export declare function registerPluginsCommands(program: Command): void;
3
- //# sourceMappingURL=plugins.d.ts.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Plugin management commands.
3
+ *
4
+ * Registers the `agents plugins` command tree for listing, viewing,
5
+ * syncing, and removing plugin bundles (skills + hooks + permissions)
6
+ * stored in ~/.agents/plugins/.
7
+ */
1
8
  import * as fs from 'fs';
2
9
  import * as path from 'path';
3
10
  import chalk from 'chalk';
@@ -9,6 +16,8 @@ import { isPromptCancelled, isInteractiveTerminal, requireDestructiveArg, requir
9
16
  import { itemPicker } from '../lib/picker.js';
10
17
  import { showResourceList, buildTargetsSection, } from './resource-view.js';
11
18
  import { getPluginsDir } from '../lib/state.js';
19
+ import { safeJoin } from '../lib/paths.js';
20
+ /** Replace the home directory prefix with ~ for display. */
12
21
  function formatPath(p) {
13
22
  const home = process.env.HOME || '';
14
23
  if (home && p.startsWith(home)) {
@@ -16,6 +25,7 @@ function formatPath(p) {
16
25
  }
17
26
  return p;
18
27
  }
28
+ /** Register the `agents plugins` command tree. */
19
29
  export function registerPluginsCommands(program) {
20
30
  const pluginsCmd = program
21
31
  .command('plugins')
@@ -257,7 +267,7 @@ Examples:
257
267
  }
258
268
  const name = nameArg;
259
269
  const pluginsDir = path.join(process.env.HOME || '', '.agents', 'plugins');
260
- const pluginRoot = path.join(pluginsDir, name);
270
+ const pluginRoot = safeJoin(pluginsDir, name);
261
271
  // Use discovered plugin when present; fall back to name+root if source is already gone
262
272
  const plugin = getPlugin(name);
263
273
  const resolvedRoot = plugin?.root || pluginRoot;
@@ -295,6 +305,7 @@ Examples:
295
305
  }
296
306
  });
297
307
  }
308
+ /** Convert discovered plugins into rows suitable for the resource list view. */
298
309
  function buildPluginRows(plugins) {
299
310
  const rows = [];
300
311
  // Cache version lists per agent once.
@@ -337,6 +348,7 @@ function buildPluginRows(plugins) {
337
348
  });
338
349
  return rows;
339
350
  }
351
+ /** Build the multi-line detail pane shown when a plugin is selected in the picker. */
340
352
  function formatPluginDetail(plugin, targets) {
341
353
  const lines = [];
342
354
  const title = plugin.manifest.version
@@ -379,4 +391,3 @@ function formatPluginDetail(plugin, targets) {
379
391
  }
380
392
  return lines.join('\n');
381
393
  }
382
- //# sourceMappingURL=plugins.js.map
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Profile management commands.
3
+ *
4
+ * Registers the `agents profiles` command tree for creating, viewing,
5
+ * and removing named bundles of (host CLI, endpoint, model, keychain auth).
6
+ * Profiles let users run non-default providers (Kimi, DeepSeek, Qwen, etc.)
7
+ * through a standard agent CLI with no local proxy.
8
+ */
1
9
  import type { Command } from 'commander';
10
+ /** Register the `agents profiles` command tree. */
2
11
  export declare function registerProfilesCommands(program: Command): void;
3
- //# sourceMappingURL=profiles.d.ts.map
@@ -1,9 +1,18 @@
1
+ /**
2
+ * Profile management commands.
3
+ *
4
+ * Registers the `agents profiles` command tree for creating, viewing,
5
+ * and removing named bundles of (host CLI, endpoint, model, keychain auth).
6
+ * Profiles let users run non-default providers (Kimi, DeepSeek, Qwen, etc.)
7
+ * through a standard agent CLI with no local proxy.
8
+ */
1
9
  import chalk from 'chalk';
2
10
  import * as fs from 'fs';
3
11
  import { listProfiles, readProfile, writeProfile, deleteProfile, profileExists, profileFromPreset, getPresetForProfile, } from '../lib/profiles.js';
4
12
  import { getPreset, listPresets } from '../lib/profiles-presets.js';
5
- import { hasKeychainToken, keychainItemName, setKeychainToken, deleteKeychainToken, } from '../lib/profiles-keychain.js';
13
+ import { hasKeychainToken, keychainItemName, setKeychainToken, deleteKeychainToken, } from '../lib/secrets/profiles.js';
6
14
  import { isInteractiveTerminal } from './utils.js';
15
+ /** Prompt the user for a secret value with masked input. Requires an interactive TTY. */
7
16
  async function promptForSecret(message) {
8
17
  if (!isInteractiveTerminal()) {
9
18
  throw new Error('A secret is required but the shell is not interactive. Pipe the key via stdin (--key-stdin).');
@@ -11,6 +20,7 @@ async function promptForSecret(message) {
11
20
  const { password } = await import('@inquirer/prompts');
12
21
  return await password({ message, mask: true });
13
22
  }
23
+ /** Read all available data from stdin synchronously, trimmed. */
14
24
  function readStdinSync() {
15
25
  const chunks = [];
16
26
  const buf = Buffer.alloc(65536);
@@ -28,6 +38,7 @@ function readStdinSync() {
28
38
  }
29
39
  return Buffer.concat(chunks).toString('utf-8').trim();
30
40
  }
41
+ /** Ensure a provider API key exists in keychain, prompting or reading stdin if missing. */
31
42
  async function ensureProviderToken(provider, signupUrl, fromStdin) {
32
43
  const item = keychainItemName(provider);
33
44
  if (hasKeychainToken(item)) {
@@ -47,12 +58,14 @@ async function ensureProviderToken(provider, signupUrl, fromStdin) {
47
58
  setKeychainToken(item, token);
48
59
  console.log(chalk.green(`Stored in keychain: ${item}`));
49
60
  }
61
+ /** Format a single profile as a table row for the `profiles list` output. */
50
62
  function renderProfileRow(p) {
51
63
  const host = p.host.version ? `${p.host.agent}@${p.host.version}` : p.host.agent;
52
64
  const model = p.env.ANTHROPIC_MODEL || p.env.OPENAI_MODEL || p.env.GEMINI_MODEL || '-';
53
65
  const provider = p.provider || (p.auth?.keychainItem?.split('.')[1]) || '-';
54
66
  return `${chalk.cyan(p.name.padEnd(16))} ${host.padEnd(14)} ${provider.padEnd(12)} ${chalk.gray(model)}`;
55
67
  }
68
+ /** Register the `agents profiles` command tree. */
56
69
  export function registerProfilesCommands(program) {
57
70
  const cmd = program
58
71
  .command('profiles')
@@ -92,6 +105,37 @@ Custom endpoints — drop a YAML file at ~/.agents/profiles/<name>.yml:
92
105
  keychainItem: agents-cli.ollama.token
93
106
 
94
107
  Profiles store no secrets — safe to 'agents push' to a shared repo.
108
+
109
+ Examples:
110
+ # One-time: store the OpenRouter key (every preset reuses it)
111
+ agents profiles login openrouter
112
+
113
+ # Add Kimi (top HumanEval) and run it through the Claude Code UI
114
+ agents profiles add kimi
115
+ agents run kimi "refactor api/handlers/checkout.py to use async sqlalchemy"
116
+
117
+ # Add MiniMax for SWE-bench style fixes; reuses the same OpenRouter key
118
+ agents profiles add minimax
119
+ agents run minimax "investigate RUSH-2317 and patch the off-by-one in pagination"
120
+
121
+ # Add DeepSeek for cheap, fast non-reasoning work
122
+ agents profiles add deepseek
123
+ agents run deepseek "rename UserSession -> AuthSession across the codebase"
124
+
125
+ # See every profile and which provider it talks to
126
+ agents profiles list
127
+
128
+ # Browse the catalog (pricing, context sizes, reasoning vs print-safe)
129
+ agents profiles presets
130
+
131
+ # Rotate the OpenRouter key (every openrouter profile picks it up)
132
+ agents profiles login openrouter
133
+
134
+ # Drop a profile, keep the key in Keychain for the next one
135
+ agents profiles remove kimi
136
+
137
+ # Fully remove the OpenRouter key from Keychain
138
+ agents profiles logout openrouter
95
139
  `);
96
140
  cmd
97
141
  .command('list')
@@ -230,13 +274,18 @@ Profiles store no secrets — safe to 'agents push' to a shared repo.
230
274
  .command('logout <provider>')
231
275
  .description('Remove a stored provider key from keychain')
232
276
  .action((provider) => {
233
- const item = keychainItemName(provider);
234
- const existed = deleteKeychainToken(item);
235
- if (!existed) {
236
- console.error(chalk.yellow(`No keychain item '${item}' to remove.`));
277
+ try {
278
+ const item = keychainItemName(provider);
279
+ const existed = deleteKeychainToken(item);
280
+ if (!existed) {
281
+ console.error(chalk.yellow(`No keychain item '${item}' to remove.`));
282
+ process.exit(1);
283
+ }
284
+ console.log(chalk.green(`Removed keychain item: ${item}`));
285
+ }
286
+ catch (err) {
287
+ console.error(chalk.red(err.message));
237
288
  process.exit(1);
238
289
  }
239
- console.log(chalk.green(`Removed keychain item: ${item}`));
240
290
  });
241
291
  }
242
- //# sourceMappingURL=profiles.js.map
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Top-level `agents prune` — destructive cleanup across the install.
3
+ *
4
+ * Two kinds of cleanup, one verb:
5
+ * - Resource orphans: command/skill/hook files inside a version home that no
6
+ * longer come from any source (deleted from ~/.agents/ but never reconciled
7
+ * into the version install).
8
+ * - Version duplicates: older installed versions of an agent that share an
9
+ * account with a newer installed version of the same agent (the older copy
10
+ * is redundant; the newer one is what's signed in and active).
11
+ *
12
+ * Sync (additive: copy missing/changed files into version homes) is no longer
13
+ * a user-facing verb — `syncResourcesToVersion` runs at agent launch and
14
+ * applies adds/updates automatically. Pruning, however, is destructive, so it
15
+ * stays explicit.
16
+ *
17
+ * Default scope: each agent's currently-pinned default version for orphan
18
+ * cleanup, plus the standard cross-agent version-dedup pass. Pass `--all`
19
+ * to widen orphan cleanup to every installed version.
20
+ */
21
+ import type { Command } from 'commander';
22
+ export declare function registerPruneCommand(program: Command): void;
@@ -0,0 +1,191 @@
1
+ import chalk from 'chalk';
2
+ import { confirm } from '@inquirer/prompts';
3
+ import { diffVersionCommands, iterCommandsCapableVersions, removeCommandFromVersion, } from '../lib/commands.js';
4
+ import { diffVersionSkills, iterSkillsCapableVersions, removeSkillFromVersion, } from '../lib/skills.js';
5
+ import { diffVersionHooks, iterHooksCapableVersions, removeHookFromVersion, } from '../lib/hooks.js';
6
+ import { getGlobalDefault } from '../lib/versions.js';
7
+ import { resolveAgentName, formatAgentError } from '../lib/agents.js';
8
+ import { pruneDuplicates } from './view.js';
9
+ import { isInteractiveTerminal, isPromptCancelled } from './utils.js';
10
+ const RESOURCE_TYPES = ['commands', 'skills', 'hooks'];
11
+ const ALL_TYPES = [...RESOURCE_TYPES, 'versions'];
12
+ function scopePairs(pairs, all) {
13
+ if (all)
14
+ return pairs;
15
+ return pairs.filter((p) => p.version === getGlobalDefault(p.agent));
16
+ }
17
+ function collectOrphans(types, all) {
18
+ const groups = [];
19
+ if (types.includes('commands')) {
20
+ for (const { agent, version } of scopePairs(iterCommandsCapableVersions(), all)) {
21
+ const diff = diffVersionCommands(agent, version);
22
+ if (diff.orphans.length > 0) {
23
+ groups.push({ type: 'commands', agent, version, orphans: diff.orphans });
24
+ }
25
+ }
26
+ }
27
+ if (types.includes('skills')) {
28
+ for (const { agent, version } of scopePairs(iterSkillsCapableVersions(), all)) {
29
+ const diff = diffVersionSkills(agent, version);
30
+ if (diff.orphans.length > 0) {
31
+ groups.push({ type: 'skills', agent, version, orphans: diff.orphans });
32
+ }
33
+ }
34
+ }
35
+ if (types.includes('hooks')) {
36
+ for (const { agent, version } of scopePairs(iterHooksCapableVersions(), all)) {
37
+ const diff = diffVersionHooks(agent, version);
38
+ if (diff.orphans.length > 0) {
39
+ groups.push({ type: 'hooks', agent, version, orphans: diff.orphans });
40
+ }
41
+ }
42
+ }
43
+ return groups;
44
+ }
45
+ function removeOne(group, name) {
46
+ switch (group.type) {
47
+ case 'commands':
48
+ return removeCommandFromVersion(group.agent, group.version, name);
49
+ case 'skills':
50
+ return removeSkillFromVersion(group.agent, group.version, name);
51
+ case 'hooks':
52
+ return removeHookFromVersion(group.agent, group.version, name);
53
+ }
54
+ }
55
+ function parseTarget(arg) {
56
+ if (!arg) {
57
+ return { resourceTypes: RESOURCE_TYPES, includeVersions: true };
58
+ }
59
+ if (RESOURCE_TYPES.includes(arg)) {
60
+ return { resourceTypes: [arg], includeVersions: false };
61
+ }
62
+ if (arg === 'versions') {
63
+ return { resourceTypes: [], includeVersions: true };
64
+ }
65
+ // Try treating as an agent name — shortcut for `prune versions <agent>`.
66
+ const agentId = resolveAgentName(arg);
67
+ if (agentId) {
68
+ return { resourceTypes: [], includeVersions: true, versionAgent: agentId };
69
+ }
70
+ console.log(chalk.red(`Unknown prune target: ${arg}`));
71
+ console.log(chalk.gray(`Available types: ${ALL_TYPES.join(', ')}`));
72
+ console.log(chalk.gray(formatAgentError(arg)));
73
+ process.exit(1);
74
+ }
75
+ async function runOrphanPrune(resourceTypes, options) {
76
+ const groups = collectOrphans(resourceTypes, options.all === true);
77
+ if (groups.length === 0) {
78
+ console.log(chalk.green('No orphans.'));
79
+ return;
80
+ }
81
+ const total = groups.reduce((n, g) => n + g.orphans.length, 0);
82
+ console.log(chalk.bold('Orphans (in version home, not in any source)\n'));
83
+ for (const g of groups) {
84
+ const label = `${g.type} · ${g.agent}@${g.version}`;
85
+ console.log(` ${chalk.cyan(label)} ${g.orphans.join(', ')}`);
86
+ }
87
+ console.log();
88
+ if (options.dryRun) {
89
+ console.log(chalk.gray(`${total} orphan(s). Run without --dry-run to delete.`));
90
+ return;
91
+ }
92
+ if (!options.yes) {
93
+ if (!isInteractiveTerminal()) {
94
+ console.log(chalk.yellow('Non-interactive shell: pass -y to confirm, or --dry-run to preview.'));
95
+ process.exit(1);
96
+ }
97
+ let ok = false;
98
+ try {
99
+ ok = await confirm({
100
+ message: `Delete ${total} orphan${total === 1 ? '' : 's'}?`,
101
+ default: false,
102
+ });
103
+ }
104
+ catch (err) {
105
+ if (isPromptCancelled(err)) {
106
+ console.log(chalk.gray('Cancelled'));
107
+ return;
108
+ }
109
+ throw err;
110
+ }
111
+ if (!ok) {
112
+ console.log(chalk.gray('Cancelled'));
113
+ return;
114
+ }
115
+ }
116
+ let removed = 0;
117
+ let failures = 0;
118
+ for (const g of groups) {
119
+ for (const name of g.orphans) {
120
+ const r = removeOne(g, name);
121
+ if (r.success) {
122
+ removed++;
123
+ }
124
+ else {
125
+ failures++;
126
+ console.log(chalk.red(` ! ${g.type} ${g.agent}@${g.version} ${name}: ${r.error}`));
127
+ }
128
+ }
129
+ }
130
+ const summary = `Pruned ${removed} orphan${removed === 1 ? '' : 's'}`;
131
+ console.log(chalk.green(summary) + (failures > 0 ? chalk.red(`, ${failures} failed`) : '') + '.');
132
+ }
133
+ export function registerPruneCommand(program) {
134
+ program
135
+ .command('prune [target]')
136
+ .description('Remove orphan resources (commands/skills/hooks) and/or older duplicate version installs')
137
+ .option('--all', 'For orphan cleanup: sweep every installed version (default: current default version per agent)')
138
+ .option('--dry-run', 'Show what would be removed without deleting')
139
+ .option('-y, --yes', 'Skip confirmation prompt')
140
+ .addHelpText('after', `
141
+ Targets:
142
+ (none) Orphans across commands, skills, hooks + duplicate versions
143
+ commands Orphan command files only
144
+ skills Orphan skill directories only
145
+ hooks Orphan hook scripts only
146
+ versions Older duplicate version installs only
147
+ <agent> Older duplicate versions for one agent (e.g. 'claude')
148
+
149
+ Examples:
150
+ # Full sweep: orphan resources + duplicate versions for current defaults
151
+ agents prune
152
+
153
+ # Just orphan skills
154
+ agents prune skills
155
+
156
+ # Just version dedup
157
+ agents prune versions
158
+
159
+ # Just version dedup for one agent
160
+ agents prune claude
161
+
162
+ # Sweep every installed version's orphans, not only the defaults
163
+ agents prune --all
164
+
165
+ # Preview without deleting
166
+ agents prune --dry-run
167
+
168
+ What's an orphan?
169
+ A command, skill, or hook present inside a version home but missing from every
170
+ configured source (project .agents/, central ~/.agents/, and any enabled extra
171
+ repos). Usually leftovers from a resource that was deleted or moved but never
172
+ reconciled into the version install.
173
+
174
+ What this does NOT do:
175
+ This is destructive cleanup only. Adds and updates flow through the auto-sync
176
+ that runs when you launch the agent — there is no manual sync verb.
177
+ `)
178
+ .action(async (target, options) => {
179
+ const parsed = parseTarget(target);
180
+ if (parsed.resourceTypes.length > 0) {
181
+ await runOrphanPrune(parsed.resourceTypes, options);
182
+ if (parsed.includeVersions)
183
+ console.log();
184
+ }
185
+ if (parsed.includeVersions) {
186
+ const versionLabel = parsed.versionAgent ? ` for ${parsed.versionAgent}` : '';
187
+ console.log(chalk.bold(`Duplicate versions${versionLabel}`));
188
+ await pruneDuplicates(parsed.versionAgent, options.yes === true, options.dryRun === true);
189
+ }
190
+ });
191
+ }
@@ -16,5 +16,5 @@
16
16
  * agents pty server [start|stop|status]
17
17
  */
18
18
  import type { Command } from 'commander';
19
+ /** Register the `agents pty` command tree. */
19
20
  export declare function registerPtyCommands(program: Command): void;
20
- //# sourceMappingURL=pty.d.ts.map
@@ -19,6 +19,7 @@ import chalk from 'chalk';
19
19
  import { ptyRequest, unescapeInput } from '../lib/pty-client.js';
20
20
  import { isPtyServerRunning, runPtyServer, getPtyPidPath, getPtyLogPath } from '../lib/pty-server.js';
21
21
  import * as fs from 'fs';
22
+ /** Register the `agents pty` command tree. */
22
23
  export function registerPtyCommands(program) {
23
24
  const pty = program
24
25
  .command('pty')
@@ -376,6 +377,7 @@ Example:
376
377
  await runPtyServer();
377
378
  });
378
379
  }
380
+ /** Format a millisecond duration as a compact human-readable string (e.g. "5m", "2h 30m"). */
379
381
  function formatAge(ms) {
380
382
  const secs = Math.floor(ms / 1000);
381
383
  if (secs < 60)
@@ -386,4 +388,3 @@ function formatAge(ms) {
386
388
  const hours = Math.floor(mins / 60);
387
389
  return `${hours}h ${mins % 60}m`;
388
390
  }
389
- //# sourceMappingURL=pty.js.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Config pull command.
3
+ *
4
+ * Registers the `agents pull` command which clones or updates the
5
+ * system ~/.agents-system/ git repo and syncs CLI versions, MCP servers,
6
+ * resources, and hooks to installed agent versions.
7
+ */
1
8
  import type { Command } from 'commander';
9
+ /** Register the `agents pull` command. */
2
10
  export declare function registerPullCommand(program: Command): void;
3
- //# sourceMappingURL=pull.d.ts.map