@phnx-labs/agents-cli 1.12.0 → 1.14.2

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 (496) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +308 -297
  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 +10 -0
  8. package/dist/commands/cloud.js +408 -0
  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 +207 -20
  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 +45 -6
  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 +11 -0
  38. package/dist/commands/profiles.js +291 -0
  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 +93 -129
  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 +10 -0
  56. package/dist/commands/secrets.js +518 -0
  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 +288 -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 +353 -20
  83. package/dist/index.d.ts +7 -2
  84. package/dist/index.js +205 -38
  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 +207 -23
  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 +25 -0
  104. package/dist/lib/cloud/codex.js +250 -0
  105. package/dist/lib/cloud/factory.d.ts +31 -0
  106. package/dist/lib/cloud/factory.js +53 -0
  107. package/dist/lib/cloud/registry.d.ts +15 -0
  108. package/dist/lib/cloud/registry.js +67 -0
  109. package/dist/lib/cloud/rush.d.ts +75 -0
  110. package/dist/lib/cloud/rush.js +438 -0
  111. package/dist/lib/cloud/store.d.ts +22 -0
  112. package/dist/lib/cloud/store.js +115 -0
  113. package/dist/lib/cloud/stream.d.ts +23 -0
  114. package/dist/lib/cloud/stream.js +194 -0
  115. package/dist/lib/cloud/types.d.ts +205 -0
  116. package/dist/lib/cloud/types.js +34 -0
  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 +25 -5
  128. package/dist/lib/exec.js +72 -27
  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 +191 -21
  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 +25 -11
  156. package/dist/lib/models.js +405 -16
  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 +24 -0
  168. package/dist/lib/profiles-presets.js +103 -0
  169. package/dist/lib/profiles.d.ts +69 -0
  170. package/dist/lib/profiles.js +144 -0
  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 +89 -0
  180. package/dist/lib/rotate.js +327 -0
  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 +39 -0
  195. package/dist/lib/secrets/bundles.js +189 -0
  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 +16 -0
  203. package/dist/lib/session/artifacts.js +95 -0
  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 +24 -2
  219. package/dist/lib/session/types.js +10 -2
  220. package/dist/lib/shims.d.ts +93 -5
  221. package/dist/lib/shims.js +380 -67
  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 +114 -22
  227. package/dist/lib/state.js +323 -138
  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 +48 -1
  257. package/dist/lib/usage.js +97 -16
  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 +39 -4
  261. package/dist/lib/versions.js +401 -111
  262. package/package.json +33 -18
  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/commands.d.ts.map +0 -1
  269. package/dist/commands/commands.js.map +0 -1
  270. package/dist/commands/daemon.d.ts.map +0 -1
  271. package/dist/commands/daemon.js.map +0 -1
  272. package/dist/commands/drive.d.ts.map +0 -1
  273. package/dist/commands/drive.js.map +0 -1
  274. package/dist/commands/exec.d.ts.map +0 -1
  275. package/dist/commands/exec.js.map +0 -1
  276. package/dist/commands/fork.d.ts.map +0 -1
  277. package/dist/commands/fork.js.map +0 -1
  278. package/dist/commands/hooks.d.ts.map +0 -1
  279. package/dist/commands/hooks.js.map +0 -1
  280. package/dist/commands/init.d.ts.map +0 -1
  281. package/dist/commands/init.js.map +0 -1
  282. package/dist/commands/mcp.d.ts.map +0 -1
  283. package/dist/commands/mcp.js.map +0 -1
  284. package/dist/commands/models.d.ts.map +0 -1
  285. package/dist/commands/models.js.map +0 -1
  286. package/dist/commands/packages.d.ts.map +0 -1
  287. package/dist/commands/packages.js.map +0 -1
  288. package/dist/commands/permissions.d.ts.map +0 -1
  289. package/dist/commands/permissions.js.map +0 -1
  290. package/dist/commands/plugins.d.ts.map +0 -1
  291. package/dist/commands/plugins.js.map +0 -1
  292. package/dist/commands/pty.d.ts.map +0 -1
  293. package/dist/commands/pty.js.map +0 -1
  294. package/dist/commands/pull.d.ts.map +0 -1
  295. package/dist/commands/pull.js.map +0 -1
  296. package/dist/commands/push.d.ts +0 -3
  297. package/dist/commands/push.d.ts.map +0 -1
  298. package/dist/commands/push.js +0 -180
  299. package/dist/commands/push.js.map +0 -1
  300. package/dist/commands/refresh-memory.d.ts.map +0 -1
  301. package/dist/commands/refresh-memory.js.map +0 -1
  302. package/dist/commands/resource-view.d.ts.map +0 -1
  303. package/dist/commands/resource-view.js.map +0 -1
  304. package/dist/commands/routines.d.ts.map +0 -1
  305. package/dist/commands/routines.js.map +0 -1
  306. package/dist/commands/rules.d.ts.map +0 -1
  307. package/dist/commands/rules.js.map +0 -1
  308. package/dist/commands/sessions-picker.d.ts.map +0 -1
  309. package/dist/commands/sessions-picker.js.map +0 -1
  310. package/dist/commands/sessions.d.ts.map +0 -1
  311. package/dist/commands/sessions.js.map +0 -1
  312. package/dist/commands/skills.d.ts.map +0 -1
  313. package/dist/commands/skills.js.map +0 -1
  314. package/dist/commands/status.d.ts.map +0 -1
  315. package/dist/commands/status.js.map +0 -1
  316. package/dist/commands/subagents.d.ts.map +0 -1
  317. package/dist/commands/subagents.js.map +0 -1
  318. package/dist/commands/sync.d.ts.map +0 -1
  319. package/dist/commands/sync.js.map +0 -1
  320. package/dist/commands/teams-picker.d.ts.map +0 -1
  321. package/dist/commands/teams-picker.js.map +0 -1
  322. package/dist/commands/teams.d.ts.map +0 -1
  323. package/dist/commands/teams.js.map +0 -1
  324. package/dist/commands/utils.d.ts.map +0 -1
  325. package/dist/commands/utils.js.map +0 -1
  326. package/dist/commands/versions.d.ts.map +0 -1
  327. package/dist/commands/versions.js.map +0 -1
  328. package/dist/commands/view.d.ts.map +0 -1
  329. package/dist/commands/view.js.map +0 -1
  330. package/dist/index.d.ts.map +0 -1
  331. package/dist/index.js.map +0 -1
  332. package/dist/lib/__tests__/bugfixes.test.d.ts +0 -2
  333. package/dist/lib/__tests__/bugfixes.test.d.ts.map +0 -1
  334. package/dist/lib/__tests__/bugfixes.test.js +0 -192
  335. package/dist/lib/__tests__/bugfixes.test.js.map +0 -1
  336. package/dist/lib/__tests__/exec.test.d.ts +0 -2
  337. package/dist/lib/__tests__/exec.test.d.ts.map +0 -1
  338. package/dist/lib/__tests__/exec.test.js +0 -446
  339. package/dist/lib/__tests__/exec.test.js.map +0 -1
  340. package/dist/lib/__tests__/git-sync.test.d.ts +0 -2
  341. package/dist/lib/__tests__/git-sync.test.d.ts.map +0 -1
  342. package/dist/lib/__tests__/git-sync.test.js +0 -138
  343. package/dist/lib/__tests__/git-sync.test.js.map +0 -1
  344. package/dist/lib/__tests__/hooks.test.d.ts +0 -2
  345. package/dist/lib/__tests__/hooks.test.d.ts.map +0 -1
  346. package/dist/lib/__tests__/hooks.test.js +0 -203
  347. package/dist/lib/__tests__/hooks.test.js.map +0 -1
  348. package/dist/lib/__tests__/memory-compile.test.d.ts +0 -2
  349. package/dist/lib/__tests__/memory-compile.test.d.ts.map +0 -1
  350. package/dist/lib/__tests__/memory-compile.test.js +0 -95
  351. package/dist/lib/__tests__/memory-compile.test.js.map +0 -1
  352. package/dist/lib/__tests__/models.test.d.ts +0 -2
  353. package/dist/lib/__tests__/models.test.d.ts.map +0 -1
  354. package/dist/lib/__tests__/models.test.js +0 -184
  355. package/dist/lib/__tests__/models.test.js.map +0 -1
  356. package/dist/lib/__tests__/usage.test.d.ts +0 -2
  357. package/dist/lib/__tests__/usage.test.d.ts.map +0 -1
  358. package/dist/lib/__tests__/usage.test.js +0 -218
  359. package/dist/lib/__tests__/usage.test.js.map +0 -1
  360. package/dist/lib/agents.d.ts.map +0 -1
  361. package/dist/lib/agents.js.map +0 -1
  362. package/dist/lib/artifact-actions.d.ts.map +0 -1
  363. package/dist/lib/artifact-actions.js.map +0 -1
  364. package/dist/lib/commands.d.ts.map +0 -1
  365. package/dist/lib/commands.js.map +0 -1
  366. package/dist/lib/convert.d.ts.map +0 -1
  367. package/dist/lib/convert.js.map +0 -1
  368. package/dist/lib/daemon.d.ts.map +0 -1
  369. package/dist/lib/daemon.js.map +0 -1
  370. package/dist/lib/drive-sync.d.ts.map +0 -1
  371. package/dist/lib/drive-sync.js.map +0 -1
  372. package/dist/lib/exec.d.ts.map +0 -1
  373. package/dist/lib/exec.js.map +0 -1
  374. package/dist/lib/factory.d.ts +0 -57
  375. package/dist/lib/factory.d.ts.map +0 -1
  376. package/dist/lib/factory.js +0 -110
  377. package/dist/lib/factory.js.map +0 -1
  378. package/dist/lib/git.d.ts.map +0 -1
  379. package/dist/lib/git.js.map +0 -1
  380. package/dist/lib/help.d.ts.map +0 -1
  381. package/dist/lib/help.js.map +0 -1
  382. package/dist/lib/hooks.d.ts.map +0 -1
  383. package/dist/lib/hooks.js.map +0 -1
  384. package/dist/lib/manifest.d.ts.map +0 -1
  385. package/dist/lib/manifest.js.map +0 -1
  386. package/dist/lib/markdown.d.ts.map +0 -1
  387. package/dist/lib/markdown.js.map +0 -1
  388. package/dist/lib/mcp.d.ts.map +0 -1
  389. package/dist/lib/mcp.js.map +0 -1
  390. package/dist/lib/memory-compile.d.ts.map +0 -1
  391. package/dist/lib/memory-compile.js.map +0 -1
  392. package/dist/lib/memory.d.ts.map +0 -1
  393. package/dist/lib/memory.js.map +0 -1
  394. package/dist/lib/models.d.ts.map +0 -1
  395. package/dist/lib/models.js.map +0 -1
  396. package/dist/lib/permissions.d.ts.map +0 -1
  397. package/dist/lib/permissions.js.map +0 -1
  398. package/dist/lib/picker.d.ts.map +0 -1
  399. package/dist/lib/picker.js.map +0 -1
  400. package/dist/lib/plugins.d.ts.map +0 -1
  401. package/dist/lib/plugins.js.map +0 -1
  402. package/dist/lib/pty-client.d.ts.map +0 -1
  403. package/dist/lib/pty-client.js.map +0 -1
  404. package/dist/lib/pty-server.d.ts.map +0 -1
  405. package/dist/lib/pty-server.js.map +0 -1
  406. package/dist/lib/registry.d.ts.map +0 -1
  407. package/dist/lib/registry.js.map +0 -1
  408. package/dist/lib/resources.d.ts.map +0 -1
  409. package/dist/lib/resources.js.map +0 -1
  410. package/dist/lib/routines.d.ts.map +0 -1
  411. package/dist/lib/routines.js.map +0 -1
  412. package/dist/lib/runner.d.ts.map +0 -1
  413. package/dist/lib/runner.js.map +0 -1
  414. package/dist/lib/sandbox.d.ts.map +0 -1
  415. package/dist/lib/sandbox.js.map +0 -1
  416. package/dist/lib/scheduler.d.ts.map +0 -1
  417. package/dist/lib/scheduler.js.map +0 -1
  418. package/dist/lib/session/__tests__/db.test.d.ts +0 -2
  419. package/dist/lib/session/__tests__/db.test.d.ts.map +0 -1
  420. package/dist/lib/session/__tests__/db.test.js +0 -54
  421. package/dist/lib/session/__tests__/db.test.js.map +0 -1
  422. package/dist/lib/session/__tests__/discover.test.d.ts +0 -2
  423. package/dist/lib/session/__tests__/discover.test.d.ts.map +0 -1
  424. package/dist/lib/session/__tests__/discover.test.js +0 -63
  425. package/dist/lib/session/__tests__/discover.test.js.map +0 -1
  426. package/dist/lib/session/__tests__/prompt.test.d.ts +0 -2
  427. package/dist/lib/session/__tests__/prompt.test.d.ts.map +0 -1
  428. package/dist/lib/session/__tests__/prompt.test.js +0 -44
  429. package/dist/lib/session/__tests__/prompt.test.js.map +0 -1
  430. package/dist/lib/session/__tests__/render.test.d.ts +0 -2
  431. package/dist/lib/session/__tests__/render.test.d.ts.map +0 -1
  432. package/dist/lib/session/__tests__/render.test.js +0 -602
  433. package/dist/lib/session/__tests__/render.test.js.map +0 -1
  434. package/dist/lib/session/db.d.ts.map +0 -1
  435. package/dist/lib/session/db.js.map +0 -1
  436. package/dist/lib/session/discover.d.ts.map +0 -1
  437. package/dist/lib/session/discover.js.map +0 -1
  438. package/dist/lib/session/parse.d.ts.map +0 -1
  439. package/dist/lib/session/parse.js.map +0 -1
  440. package/dist/lib/session/prompt.d.ts.map +0 -1
  441. package/dist/lib/session/prompt.js.map +0 -1
  442. package/dist/lib/session/prompt.test.d.ts +0 -2
  443. package/dist/lib/session/prompt.test.d.ts.map +0 -1
  444. package/dist/lib/session/prompt.test.js +0 -57
  445. package/dist/lib/session/prompt.test.js.map +0 -1
  446. package/dist/lib/session/render.d.ts.map +0 -1
  447. package/dist/lib/session/render.js.map +0 -1
  448. package/dist/lib/session/team-filter.d.ts.map +0 -1
  449. package/dist/lib/session/team-filter.js.map +0 -1
  450. package/dist/lib/session/team-filter.test.d.ts +0 -2
  451. package/dist/lib/session/team-filter.test.d.ts.map +0 -1
  452. package/dist/lib/session/team-filter.test.js +0 -157
  453. package/dist/lib/session/team-filter.test.js.map +0 -1
  454. package/dist/lib/session/types.d.ts.map +0 -1
  455. package/dist/lib/session/types.js.map +0 -1
  456. package/dist/lib/shims.d.ts.map +0 -1
  457. package/dist/lib/shims.js.map +0 -1
  458. package/dist/lib/skills.d.ts.map +0 -1
  459. package/dist/lib/skills.js.map +0 -1
  460. package/dist/lib/state.d.ts.map +0 -1
  461. package/dist/lib/state.js.map +0 -1
  462. package/dist/lib/subagents.d.ts.map +0 -1
  463. package/dist/lib/subagents.js.map +0 -1
  464. package/dist/lib/teams/agents.d.ts.map +0 -1
  465. package/dist/lib/teams/agents.js.map +0 -1
  466. package/dist/lib/teams/api.d.ts.map +0 -1
  467. package/dist/lib/teams/api.js.map +0 -1
  468. package/dist/lib/teams/cloud.d.ts +0 -11
  469. package/dist/lib/teams/cloud.d.ts.map +0 -1
  470. package/dist/lib/teams/cloud.js +0 -169
  471. package/dist/lib/teams/cloud.js.map +0 -1
  472. package/dist/lib/teams/debug.d.ts.map +0 -1
  473. package/dist/lib/teams/debug.js.map +0 -1
  474. package/dist/lib/teams/file_ops.d.ts.map +0 -1
  475. package/dist/lib/teams/file_ops.js.map +0 -1
  476. package/dist/lib/teams/parsers.d.ts.map +0 -1
  477. package/dist/lib/teams/parsers.js.map +0 -1
  478. package/dist/lib/teams/persistence.d.ts.map +0 -1
  479. package/dist/lib/teams/persistence.js.map +0 -1
  480. package/dist/lib/teams/ralph.d.ts +0 -8
  481. package/dist/lib/teams/ralph.d.ts.map +0 -1
  482. package/dist/lib/teams/ralph.js +0 -59
  483. package/dist/lib/teams/ralph.js.map +0 -1
  484. package/dist/lib/teams/registry.d.ts.map +0 -1
  485. package/dist/lib/teams/registry.js.map +0 -1
  486. package/dist/lib/teams/summarizer.d.ts.map +0 -1
  487. package/dist/lib/teams/summarizer.js.map +0 -1
  488. package/dist/lib/template.d.ts.map +0 -1
  489. package/dist/lib/template.js.map +0 -1
  490. package/dist/lib/types.d.ts.map +0 -1
  491. package/dist/lib/types.js.map +0 -1
  492. package/dist/lib/usage.d.ts.map +0 -1
  493. package/dist/lib/usage.js.map +0 -1
  494. package/dist/lib/versions.d.ts.map +0 -1
  495. package/dist/lib/versions.js.map +0 -1
  496. package/scripts/rebuild-sqlite.sh +0 -46
@@ -3,15 +3,16 @@ import ora from 'ora';
3
3
  import * as fs from 'fs';
4
4
  import * as os from 'os';
5
5
  import * as path from 'path';
6
- import { checkbox, confirm } from '@inquirer/prompts';
7
- import { ALL_AGENT_IDS, COMMANDS_CAPABLE_AGENTS, resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
6
+ import { checkbox } from '@inquirer/prompts';
7
+ import { ALL_AGENT_IDS, resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
8
8
  import { cloneRepo } from '../lib/git.js';
9
- import { discoverCommands, resolveCommandSource, installCommandCentrally, uninstallCommand, listCentralCommands, getCommandInfo, diffVersionCommands, installCommandToVersion, removeCommandFromVersion, iterCommandsCapableVersions, } from '../lib/commands.js';
9
+ import { discoverCommands, resolveCommandSource, installCommandCentrally, uninstallCommand, listCentralCommands, getCommandInfo, diffVersionCommands, iterCommandsCapableVersions, } from '../lib/commands.js';
10
10
  import { getCommandsDir } from '../lib/state.js';
11
11
  import { showResourceList, buildTargetsSection, } from './resource-view.js';
12
- import { getGlobalDefault, syncResourcesToVersion, promptAgentVersionSelection, resolveAgentVersionTargets, } from '../lib/versions.js';
12
+ import { getGlobalDefault, resolveVersionAlias, syncResourcesToVersion, promptAgentVersionSelection, resolveAgentVersionTargets, } from '../lib/versions.js';
13
13
  import { recordVersionResources } from '../lib/state.js';
14
14
  import { isPromptCancelled, isInteractiveTerminal, parseCommaSeparatedList, printWithPager, requireInteractiveSelection, } from './utils.js';
15
+ /** Register the `agents commands` command tree (list, add, remove, sync, prune, view). */
15
16
  export function registerCommandsCommands(program) {
16
17
  const commandsCmd = program
17
18
  .command('commands')
@@ -58,7 +59,7 @@ When to use:
58
59
  process.exit(1);
59
60
  }
60
61
  filterAgent = resolved;
61
- filterVersion = parts[1] || undefined;
62
+ filterVersion = resolveVersionAlias(resolved, parts[1]);
62
63
  }
63
64
  const rows = buildCommandRows({ filterAgent, filterVersion });
64
65
  spinner.stop();
@@ -127,7 +128,7 @@ Examples:
127
128
  }
128
129
  // Build choices with descriptions
129
130
  const choices = centralCommands.map((name) => {
130
- const cmdPath = path.join(os.homedir(), '.agents', 'commands', `${name}.md`);
131
+ const cmdPath = path.join(getCommandsDir(), `${name}.md`);
131
132
  let description = '';
132
133
  if (fs.existsSync(cmdPath)) {
133
134
  const content = fs.readFileSync(cmdPath, 'utf-8');
@@ -324,174 +325,26 @@ Examples:
324
325
  }
325
326
  }
326
327
  });
328
+ // `commands sync` is gone — sync runs automatically when the agent launches.
327
329
  commandsCmd
328
- .command('sync')
329
- .description('Reconcile version-home commands against central ~/.agents/commands/ (add + update, never delete)')
330
- .option('-a, --agent <agent>', 'Scope to a specific agent or agent@version')
331
- .option('-m, --method <method>', 'Install method: copy (default) or symlink (markdown-format agents only)', 'copy')
332
- .addHelpText('after', `
333
- Examples:
334
- # Sync every installed version
335
- agents commands sync
336
-
337
- # Scope to one agent or version
338
- agents commands sync --agent claude
339
- agents commands sync --agent claude@2.1.113
340
-
341
- # Symlink into version homes (propagates central edits automatically, markdown agents only)
342
- agents commands sync --method symlink
343
-
344
- Note: Gemini uses TOML — symlink is ignored and a fresh conversion is written
345
- on every sync. Sync is additive: to remove orphans, use 'agents commands prune'.
346
- `)
347
- .action(async (options) => {
348
- const method = (options.method === 'symlink' ? 'symlink' : 'copy');
349
- let filter;
350
- if (options.agent) {
351
- const [name, version] = String(options.agent).split('@');
352
- const agentId = resolveAgentName(name);
353
- if (!agentId) {
354
- console.log(chalk.red(formatAgentError(name, COMMANDS_CAPABLE_AGENTS)));
355
- process.exit(1);
356
- }
357
- filter = { agent: agentId, version: version || undefined };
358
- }
359
- const pairs = iterCommandsCapableVersions(filter);
360
- if (pairs.length === 0) {
361
- console.log(chalk.gray('No matching installed versions.'));
362
- return;
363
- }
364
- const diffs = pairs.map(({ agent, version }) => diffVersionCommands(agent, version));
365
- const plan = diffs.filter((d) => d.toAdd.length > 0 || d.toUpdate.length > 0);
366
- if (plan.length === 0) {
367
- console.log(chalk.green('All version homes are up to date with central.'));
368
- if (diffs.some((d) => d.orphans.length > 0)) {
369
- console.log(chalk.gray('Orphan commands present. Run \'agents commands prune --dry-run\' to review.'));
370
- }
371
- return;
372
- }
373
- console.log(chalk.bold(`Syncing commands (method: ${method})\n`));
374
- let adds = 0, updates = 0, failures = 0;
375
- for (const diff of plan) {
376
- const label = `${diff.agent}@${diff.version}`;
377
- if (diff.toAdd.length > 0) {
378
- console.log(` ${chalk.cyan(label)} ${chalk.gray('add:')} ${diff.toAdd.join(', ')}`);
379
- for (const name of diff.toAdd) {
380
- const r = installCommandToVersion(diff.agent, diff.version, name, method);
381
- if (r.success)
382
- adds++;
383
- else {
384
- failures++;
385
- console.log(chalk.red(` ! ${name}: ${r.error}`));
386
- }
387
- }
388
- }
389
- if (diff.toUpdate.length > 0) {
390
- console.log(` ${chalk.cyan(label)} ${chalk.gray('update:')} ${diff.toUpdate.join(', ')}`);
391
- for (const name of diff.toUpdate) {
392
- const r = installCommandToVersion(diff.agent, diff.version, name, method);
393
- if (r.success)
394
- updates++;
395
- else {
396
- failures++;
397
- console.log(chalk.red(` ! ${name}: ${r.error}`));
398
- }
399
- }
400
- }
401
- }
402
- console.log();
403
- console.log(chalk.green(`Synced: ${adds} added, ${updates} updated${failures > 0 ? chalk.red(`, ${failures} failed`) : ''}.`));
404
- const totalOrphans = diffs.reduce((n, d) => n + d.orphans.length, 0);
405
- if (totalOrphans > 0) {
406
- console.log(chalk.gray(`${totalOrphans} orphan(s) remain. Run 'agents commands prune --dry-run' to review.`));
407
- }
330
+ .command('sync', { hidden: true })
331
+ .allowUnknownOption()
332
+ .allowExcessArguments()
333
+ .action(() => {
334
+ console.error(chalk.red('"agents commands sync" is gone.'));
335
+ console.error(chalk.gray('Sync runs automatically when you launch the agent.'));
336
+ console.error(chalk.gray('To remove orphans, use: agents prune commands'));
337
+ process.exit(1);
408
338
  });
339
+ // `commands prune` moved to the top-level `agents prune` command.
409
340
  commandsCmd
410
- .command('prune')
411
- .description('Remove orphan commands from version homes (commands present locally but not in central)')
412
- .option('-a, --agent <agent>', 'Scope to a specific agent or agent@version')
413
- .option('--dry-run', 'Show orphans without deleting')
414
- .option('-y, --yes', 'Skip confirmation prompt')
415
- .addHelpText('after', `
416
- Examples:
417
- # See what would be pruned
418
- agents commands prune --dry-run
419
-
420
- # Prune across every installed version (prompts for confirmation)
421
- agents commands prune
422
-
423
- # Scope to one agent or version
424
- agents commands prune --agent claude@2.0.65
425
-
426
- # Skip confirmation (for scripts)
427
- agents commands prune -y
428
- `)
429
- .action(async (options) => {
430
- let filter;
431
- if (options.agent) {
432
- const [name, version] = String(options.agent).split('@');
433
- const agentId = resolveAgentName(name);
434
- if (!agentId) {
435
- console.log(chalk.red(formatAgentError(name, COMMANDS_CAPABLE_AGENTS)));
436
- process.exit(1);
437
- }
438
- filter = { agent: agentId, version: version || undefined };
439
- }
440
- const pairs = iterCommandsCapableVersions(filter);
441
- const diffs = pairs
442
- .map(({ agent, version }) => diffVersionCommands(agent, version))
443
- .filter((d) => d.orphans.length > 0);
444
- if (diffs.length === 0) {
445
- console.log(chalk.green('No orphan commands.'));
446
- return;
447
- }
448
- const total = diffs.reduce((n, d) => n + d.orphans.length, 0);
449
- console.log(chalk.bold(`Orphans (in version home, not in central)\n`));
450
- for (const d of diffs) {
451
- console.log(` ${chalk.cyan(`${d.agent}@${d.version}`)} ${d.orphans.join(', ')}`);
452
- }
453
- console.log();
454
- if (options.dryRun) {
455
- console.log(chalk.gray(`${total} orphan(s). Run without --dry-run to delete.`));
456
- return;
457
- }
458
- if (!options.yes) {
459
- if (!isInteractiveTerminal()) {
460
- console.log(chalk.yellow('Non-interactive shell: pass -y to confirm, or --dry-run to preview.'));
461
- process.exit(1);
462
- }
463
- let ok = false;
464
- try {
465
- ok = await confirm({
466
- message: `Delete ${total} orphan command${total === 1 ? '' : 's'}?`,
467
- default: false,
468
- });
469
- }
470
- catch (err) {
471
- if (isPromptCancelled(err)) {
472
- console.log(chalk.gray('Cancelled'));
473
- return;
474
- }
475
- throw err;
476
- }
477
- if (!ok) {
478
- console.log(chalk.gray('Cancelled'));
479
- return;
480
- }
481
- }
482
- let removed = 0, failures = 0;
483
- for (const d of diffs) {
484
- for (const name of d.orphans) {
485
- const r = removeCommandFromVersion(d.agent, d.version, name);
486
- if (r.success)
487
- removed++;
488
- else {
489
- failures++;
490
- console.log(chalk.red(` ! ${d.agent}@${d.version} ${name}: ${r.error}`));
491
- }
492
- }
493
- }
494
- console.log(chalk.green(`Pruned ${removed} orphan(s)${failures > 0 ? chalk.red(`, ${failures} failed`) : ''}.`));
341
+ .command('prune', { hidden: true })
342
+ .allowUnknownOption()
343
+ .allowExcessArguments()
344
+ .action(() => {
345
+ console.error(chalk.red('"agents commands prune" moved.'));
346
+ console.error(chalk.gray('Use: agents prune commands (or `agents prune` for everything)'));
347
+ process.exit(1);
495
348
  });
496
349
  commandsCmd
497
350
  .command('view [name]')
@@ -625,4 +478,3 @@ function formatCommandDetail(name, info, targets) {
625
478
  lines.push(buildTargetsSection(targets));
626
479
  return lines.join('\n');
627
480
  }
628
- //# sourceMappingURL=commands.js.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Deprecated daemon commands.
3
+ *
4
+ * Registers the hidden `agents daemon` command tree as backward-compatible
5
+ * aliases for `agents routines` scheduler lifecycle commands. Scheduled
6
+ * for removal in v2.0.
7
+ */
1
8
  import type { Command } from 'commander';
9
+ /** Register the deprecated `agents daemon` command tree. */
2
10
  export declare function registerDaemonCommands(program: Command): void;
3
- //# sourceMappingURL=daemon.d.ts.map
@@ -1,11 +1,21 @@
1
+ /**
2
+ * Deprecated daemon commands.
3
+ *
4
+ * Registers the hidden `agents daemon` command tree as backward-compatible
5
+ * aliases for `agents routines` scheduler lifecycle commands. Scheduled
6
+ * for removal in v2.0.
7
+ */
8
+ import { spawn } from 'child_process';
1
9
  import chalk from 'chalk';
2
10
  import * as path from 'path';
3
11
  import { startDaemon, stopDaemon, isDaemonRunning, readDaemonPid, readDaemonLog, runDaemon, } from '../lib/daemon.js';
4
12
  import { listJobs as listAllJobs } from '../lib/routines.js';
5
13
  import { JobScheduler } from '../lib/scheduler.js';
14
+ /** Print a deprecation warning pointing to the replacement command. */
6
15
  function warnDeprecated(subcommand, replacement) {
7
16
  console.log(chalk.yellow(`\u26a0 'agents daemon ${subcommand}' is deprecated and will be removed in v2.0. Use '${replacement}' instead.\n`));
8
17
  }
18
+ /** Register the deprecated `agents daemon` command tree. */
9
19
  export function registerDaemonCommands(program) {
10
20
  const daemonCmd = program
11
21
  .command('daemon', { hidden: true })
@@ -81,12 +91,11 @@ you never need to start it manually.
81
91
  .action(async (options) => {
82
92
  warnDeprecated('logs', 'agents routines scheduler-logs');
83
93
  if (options.follow) {
84
- const { exec: execCb } = await import('child_process');
85
94
  const { getAgentsDir } = await import('../lib/state.js');
86
95
  const logPath = path.join(getAgentsDir(), 'daemon.log');
87
- const child = execCb(`tail -f "${logPath}"`);
88
- child.stdout?.pipe(process.stdout);
89
- child.stderr?.pipe(process.stderr);
96
+ const child = spawn('tail', ['-f', logPath], { stdio: ['ignore', 'pipe', 'pipe'] });
97
+ child.stdout.pipe(process.stdout);
98
+ child.stderr.pipe(process.stderr);
90
99
  child.on('exit', () => process.exit(0));
91
100
  process.on('SIGINT', () => { child.kill(); process.exit(0); });
92
101
  return;
@@ -107,4 +116,3 @@ you never need to start it manually.
107
116
  await runDaemon();
108
117
  });
109
118
  }
110
- //# sourceMappingURL=daemon.js.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `agents doctor` — diagnostic readout across the install.
3
+ *
4
+ * Three sections:
5
+ * 1. CLI availability — which agent binaries can be invoked.
6
+ * 2. Sync status — per (agent, default-version), is the version-home sync
7
+ * manifest fresh? (sync runs at launch; this surfaces what would happen.)
8
+ * 3. Orphans — per resource type per default version, count of files that
9
+ * would be removed by `agents prune`.
10
+ *
11
+ * Read-only: doctor never mutates state. Run `agents prune` to act on the
12
+ * orphan readout, or just launch the agent to apply pending sync.
13
+ */
14
+ import type { Command } from 'commander';
15
+ export declare function registerDoctorCommand(program: Command): void;
@@ -0,0 +1,132 @@
1
+ import chalk from 'chalk';
2
+ import { checkAllClis } from '../lib/teams/agents.js';
3
+ import { AGENTS, ALL_AGENT_IDS } from '../lib/agents.js';
4
+ import { getAvailableResources, getGlobalDefault, } from '../lib/versions.js';
5
+ import { loadSyncManifest, isSyncStale } from '../lib/sync-manifest.js';
6
+ import { diffVersionCommands, iterCommandsCapableVersions } from '../lib/commands.js';
7
+ import { diffVersionSkills, iterSkillsCapableVersions } from '../lib/skills.js';
8
+ import { diffVersionHooks, iterHooksCapableVersions } from '../lib/hooks.js';
9
+ const AGENT_NAMES = Object.fromEntries(ALL_AGENT_IDS.map((id) => [id, AGENTS[id].name]));
10
+ function checkSyncStatus(cwd) {
11
+ const rows = [];
12
+ for (const agent of ALL_AGENT_IDS) {
13
+ const version = getGlobalDefault(agent);
14
+ if (!version)
15
+ continue;
16
+ const manifest = loadSyncManifest(agent, version);
17
+ if (!manifest) {
18
+ rows.push({ agent, version, status: 'never-synced' });
19
+ continue;
20
+ }
21
+ const available = getAvailableResources(cwd);
22
+ const stale = isSyncStale(manifest, available, agent, version, cwd);
23
+ rows.push({ agent, version, status: stale ? 'stale' : 'fresh' });
24
+ }
25
+ return rows;
26
+ }
27
+ function countOrphans() {
28
+ const byKey = new Map();
29
+ const ensure = (agent, version) => {
30
+ const key = `${agent}@${version}`;
31
+ let row = byKey.get(key);
32
+ if (!row) {
33
+ row = { agent, version, commands: 0, skills: 0, hooks: 0 };
34
+ byKey.set(key, row);
35
+ }
36
+ return row;
37
+ };
38
+ for (const { agent, version } of iterCommandsCapableVersions()) {
39
+ if (version !== getGlobalDefault(agent))
40
+ continue;
41
+ const diff = diffVersionCommands(agent, version);
42
+ if (diff.orphans.length > 0)
43
+ ensure(agent, version).commands = diff.orphans.length;
44
+ }
45
+ for (const { agent, version } of iterSkillsCapableVersions()) {
46
+ if (version !== getGlobalDefault(agent))
47
+ continue;
48
+ const diff = diffVersionSkills(agent, version);
49
+ if (diff.orphans.length > 0)
50
+ ensure(agent, version).skills = diff.orphans.length;
51
+ }
52
+ for (const { agent, version } of iterHooksCapableVersions()) {
53
+ if (version !== getGlobalDefault(agent))
54
+ continue;
55
+ const diff = diffVersionHooks(agent, version);
56
+ if (diff.orphans.length > 0)
57
+ ensure(agent, version).hooks = diff.orphans.length;
58
+ }
59
+ return Array.from(byKey.values()).filter((r) => r.commands + r.skills + r.hooks > 0);
60
+ }
61
+ function renderText(clis, syncRows, orphanRows) {
62
+ console.log(chalk.bold('Agent CLIs'));
63
+ if (Object.keys(clis).length === 0) {
64
+ console.log(chalk.gray(' (no agents reported)'));
65
+ }
66
+ else {
67
+ for (const [name, entry] of Object.entries(clis)) {
68
+ const pretty = AGENT_NAMES[name] || name;
69
+ if (entry.installed) {
70
+ console.log(` ${chalk.green('ready')} ${pretty.padEnd(10)} ${chalk.gray(entry.path || '')}`);
71
+ }
72
+ else {
73
+ console.log(` ${chalk.red('no ')} ${pretty.padEnd(10)} ${chalk.gray(entry.error || 'not installed')}`);
74
+ }
75
+ }
76
+ }
77
+ console.log();
78
+ console.log(chalk.bold('Sync status (default versions)'));
79
+ if (syncRows.length === 0) {
80
+ console.log(chalk.gray(' (no default versions set; pin one with `agents use <agent>@<version>`)'));
81
+ }
82
+ else {
83
+ for (const row of syncRows) {
84
+ const label = `${AGENT_NAMES[row.agent] || row.agent}@${row.version}`;
85
+ if (row.status === 'fresh') {
86
+ console.log(` ${chalk.green('fresh')} ${label}`);
87
+ }
88
+ else if (row.status === 'stale') {
89
+ console.log(` ${chalk.yellow('stale')} ${label} ${chalk.gray('— will sync on next launch')}`);
90
+ }
91
+ else {
92
+ console.log(` ${chalk.gray('cold ')} ${label} ${chalk.gray('— never synced; first launch will populate')}`);
93
+ }
94
+ }
95
+ }
96
+ console.log();
97
+ console.log(chalk.bold('Orphans (default versions)'));
98
+ if (orphanRows.length === 0) {
99
+ console.log(chalk.gray(' (none — version homes match central sources)'));
100
+ }
101
+ else {
102
+ for (const row of orphanRows) {
103
+ const parts = [];
104
+ if (row.commands > 0)
105
+ parts.push(`${row.commands} command${row.commands === 1 ? '' : 's'}`);
106
+ if (row.skills > 0)
107
+ parts.push(`${row.skills} skill${row.skills === 1 ? '' : 's'}`);
108
+ if (row.hooks > 0)
109
+ parts.push(`${row.hooks} hook${row.hooks === 1 ? '' : 's'}`);
110
+ const label = `${AGENT_NAMES[row.agent] || row.agent}@${row.version}`;
111
+ console.log(` ${chalk.yellow('warn ')} ${label} ${chalk.gray(parts.join(', '))}`);
112
+ }
113
+ console.log(chalk.gray(' Run `agents prune` to remove.'));
114
+ }
115
+ }
116
+ export function registerDoctorCommand(program) {
117
+ program
118
+ .command('doctor')
119
+ .description('Diagnose CLI availability, sync status, and orphan resources')
120
+ .option('--json', 'Output machine-readable JSON')
121
+ .action((opts) => {
122
+ const cwd = process.cwd();
123
+ const clis = checkAllClis();
124
+ const syncRows = checkSyncStatus(cwd);
125
+ const orphanRows = countOrphans();
126
+ if (opts.json) {
127
+ console.log(JSON.stringify({ clis, sync: syncRows, orphans: orphanRows }, null, 2));
128
+ return;
129
+ }
130
+ renderText(clis, syncRows, orphanRows);
131
+ });
132
+ }
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Drive sync commands.
3
+ *
4
+ * Registers the `agents drive` command tree for syncing agent session
5
+ * history across machines via rsync. Supports pull, push, attach
6
+ * (redirect agent homes to drive), and detach operations.
7
+ */
1
8
  import type { Command } from 'commander';
9
+ /** Register the `agents drive` command tree. */
2
10
  export declare function registerDriveCommands(program: Command): void;
3
- //# sourceMappingURL=drive.d.ts.map
@@ -1,9 +1,19 @@
1
+ /**
2
+ * Drive sync commands.
3
+ *
4
+ * Registers the `agents drive` command tree for syncing agent session
5
+ * history across machines via rsync. Supports pull, push, attach
6
+ * (redirect agent homes to drive), and detach operations.
7
+ */
1
8
  import chalk from 'chalk';
2
9
  import ora from 'ora';
10
+ import { betaEnableHint, isBetaEnabled } from '../lib/beta.js';
3
11
  import { setRemote, pull, push, attach, detach, getDriveStatus, } from '../lib/drive-sync.js';
12
+ /** Register the `agents drive` command tree. */
4
13
  export function registerDriveCommands(program) {
14
+ const enabled = isBetaEnabled('drive');
5
15
  const driveCmd = program
6
- .command('drive')
16
+ .command('drive', { hidden: !enabled })
7
17
  .description('Sync agent session history across machines via rsync. Set up once, then pull/push to keep sessions in sync.')
8
18
  .addHelpText('after', `
9
19
  Typical workflow:
@@ -24,13 +34,20 @@ Typical workflow:
24
34
  Use case: Keep session history consistent across your laptop and desktop,
25
35
  or back up sessions to a server you control.
26
36
  `);
37
+ driveCmd.hook('preAction', () => {
38
+ if (enabled)
39
+ return;
40
+ console.error(chalk.red('agents drive is in beta.'));
41
+ console.error(chalk.gray(betaEnableHint('drive')));
42
+ process.exit(1);
43
+ });
27
44
  driveCmd
28
45
  .command('remote <target>')
29
46
  .description('Set the rsync remote target (e.g., user@hostname). Sessions sync to <target>:~/.agents/drive/')
30
47
  .addHelpText('after', `
31
48
  Examples:
32
49
  # Set remote to a server
33
- agents drive remote muqsit@spark
50
+ agents drive remote user@server
34
51
 
35
52
  # Set remote to a local machine on your network
36
53
  agents drive remote macbook.local
@@ -146,6 +163,7 @@ Example:
146
163
  }
147
164
  });
148
165
  }
166
+ /** Format an ISO timestamp as a human-readable relative time (e.g. "5 min ago"). */
149
167
  function formatTime(iso) {
150
168
  const d = new Date(iso);
151
169
  const now = Date.now();
@@ -163,4 +181,3 @@ function formatTime(iso) {
163
181
  const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
164
182
  return `${months[d.getMonth()]} ${d.getDate()}`;
165
183
  }
166
- //# sourceMappingURL=drive.js.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Agent execution command.
3
+ *
4
+ * Registers the `agents run` command which spawns agent CLIs interactively
5
+ * or headlessly. Supports profile resolution, version rotation, secrets
6
+ * injection, and multi-agent fallback chains for rate-limit resilience.
7
+ */
1
8
  import type { Command } from 'commander';
9
+ /** Register the `agents run <agent> [prompt]` command. */
2
10
  export declare function registerRunCommand(program: Command): void;
3
- //# sourceMappingURL=exec.d.ts.map