@phnx-labs/agents-cli 1.22.35 → 1.22.38

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 (500) hide show
  1. package/CHANGELOG.md +708 -2
  2. package/README.md +83 -43
  3. package/dist/bin/agents +0 -0
  4. package/dist/bootstrap.d.ts +15 -0
  5. package/dist/bootstrap.js +1212 -0
  6. package/dist/commands/accounts.d.ts +4 -11
  7. package/dist/commands/accounts.js +159 -27
  8. package/dist/commands/artifacts-setup.d.ts +53 -0
  9. package/dist/commands/artifacts-setup.js +161 -0
  10. package/dist/commands/artifacts.d.ts +18 -0
  11. package/dist/commands/artifacts.js +58 -0
  12. package/dist/commands/attach.js +17 -4
  13. package/dist/commands/audit.d.ts +8 -8
  14. package/dist/commands/audit.js +57 -47
  15. package/dist/commands/browser.js +17 -11
  16. package/dist/commands/cloud.js +1 -1
  17. package/dist/commands/commands.js +0 -11
  18. package/dist/commands/computer-actions.js +33 -0
  19. package/dist/commands/computer-sessions-picker.d.ts +21 -0
  20. package/dist/commands/computer-sessions-picker.js +141 -0
  21. package/dist/commands/computer.d.ts +16 -0
  22. package/dist/commands/computer.js +37 -0
  23. package/dist/commands/config.d.ts +17 -0
  24. package/dist/commands/config.js +401 -0
  25. package/dist/commands/cp.d.ts +84 -0
  26. package/dist/commands/cp.js +231 -0
  27. package/dist/commands/daemon.js +243 -14
  28. package/dist/commands/detach-core.d.ts +1 -1
  29. package/dist/commands/detach-core.js +12 -2
  30. package/dist/commands/detach.js +1 -1
  31. package/dist/commands/doctor.js +64 -5
  32. package/dist/commands/events.d.ts +24 -12
  33. package/dist/commands/events.js +144 -28
  34. package/dist/commands/exec.js +86 -42
  35. package/dist/commands/feed.d.ts +1 -1
  36. package/dist/commands/feed.js +16 -8
  37. package/dist/commands/focus.d.ts +33 -1
  38. package/dist/commands/focus.js +177 -17
  39. package/dist/commands/funnel.d.ts +1 -1
  40. package/dist/commands/go.js +9 -8
  41. package/dist/commands/harness-wizard.d.ts +1 -0
  42. package/dist/commands/harness-wizard.js +18 -20
  43. package/dist/commands/harness.d.ts +2 -0
  44. package/dist/commands/harness.js +59 -26
  45. package/dist/commands/hooks.js +0 -11
  46. package/dist/commands/inspect.d.ts +94 -1
  47. package/dist/commands/inspect.js +866 -40
  48. package/dist/commands/lease.d.ts +4 -4
  49. package/dist/commands/lease.js +6 -6
  50. package/dist/commands/login.js +0 -13
  51. package/dist/commands/logs.d.ts +2 -2
  52. package/dist/commands/logs.js +2 -2
  53. package/dist/commands/mcp.js +7 -2
  54. package/dist/commands/memory.js +7 -2
  55. package/dist/commands/message.d.ts +1 -1
  56. package/dist/commands/message.js +37 -6
  57. package/dist/commands/models.js +71 -0
  58. package/dist/commands/monitors.d.ts +0 -1
  59. package/dist/commands/monitors.js +199 -16
  60. package/dist/commands/open.d.ts +18 -0
  61. package/dist/commands/open.js +57 -0
  62. package/dist/commands/packages.js +2 -107
  63. package/dist/commands/plugins.js +6 -3
  64. package/dist/commands/profiles.d.ts +1 -0
  65. package/dist/commands/profiles.js +16 -160
  66. package/dist/commands/projects.d.ts +28 -0
  67. package/dist/commands/projects.js +125 -5
  68. package/dist/commands/reconnect.js +9 -3
  69. package/dist/commands/repo.js +42 -1
  70. package/dist/commands/resource-view.d.ts +17 -0
  71. package/dist/commands/resource-view.js +36 -14
  72. package/dist/commands/resume.js +9 -2
  73. package/dist/commands/routines.d.ts +0 -2
  74. package/dist/commands/routines.js +473 -289
  75. package/dist/commands/secrets.js +52 -9
  76. package/dist/commands/sessions-export.d.ts +47 -0
  77. package/dist/commands/sessions-export.js +116 -6
  78. package/dist/commands/sessions-import.d.ts +17 -0
  79. package/dist/commands/sessions-import.js +114 -6
  80. package/dist/commands/sessions-migrate.d.ts +27 -0
  81. package/dist/commands/sessions-migrate.js +50 -9
  82. package/dist/commands/sessions-picker.js +23 -4
  83. package/dist/commands/sessions-resume.d.ts +5 -3
  84. package/dist/commands/sessions-resume.js +30 -8
  85. package/dist/commands/sessions-watch.d.ts +2 -0
  86. package/dist/commands/sessions-watch.js +53 -0
  87. package/dist/commands/sessions.d.ts +66 -3
  88. package/dist/commands/sessions.js +298 -47
  89. package/dist/commands/setup-browser.js +2 -2
  90. package/dist/commands/setup-mine.js +0 -1
  91. package/dist/commands/setup-preferences.js +1 -1
  92. package/dist/commands/setup.d.ts +5 -0
  93. package/dist/commands/setup.js +31 -5
  94. package/dist/commands/share.d.ts +87 -7
  95. package/dist/commands/share.js +320 -58
  96. package/dist/commands/skills.js +0 -11
  97. package/dist/commands/snapshot.js +1 -1
  98. package/dist/commands/ssh.d.ts +18 -0
  99. package/dist/commands/ssh.js +549 -210
  100. package/dist/commands/sync.d.ts +5 -0
  101. package/dist/commands/sync.js +212 -32
  102. package/dist/commands/teams.d.ts +13 -0
  103. package/dist/commands/teams.js +187 -30
  104. package/dist/commands/tickets.d.ts +2 -0
  105. package/dist/commands/tickets.js +43 -0
  106. package/dist/commands/update.js +2 -4
  107. package/dist/commands/usage.js +5 -3
  108. package/dist/commands/versions.js +11 -5
  109. package/dist/commands/view.js +15 -7
  110. package/dist/commands/webhook.d.ts +2 -2
  111. package/dist/commands/webhook.js +7 -7
  112. package/dist/index.d.ts +18 -2
  113. package/dist/index.js +53 -1264
  114. package/dist/lib/account-catalog.d.ts +18 -0
  115. package/dist/lib/account-catalog.js +38 -0
  116. package/dist/lib/account-provider-registry.d.ts +18 -0
  117. package/dist/lib/account-provider-registry.js +59 -0
  118. package/dist/lib/account-registry.d.ts +40 -0
  119. package/dist/lib/account-registry.js +239 -0
  120. package/dist/lib/account-schema.d.ts +44 -0
  121. package/dist/lib/account-schema.js +91 -0
  122. package/dist/lib/account-state-service.d.ts +21 -0
  123. package/dist/lib/account-state-service.js +60 -0
  124. package/dist/lib/activity.d.ts +1 -1
  125. package/dist/lib/activity.js +8 -1
  126. package/dist/lib/add-dir.d.ts +80 -0
  127. package/dist/lib/add-dir.js +241 -0
  128. package/dist/lib/agent-cli-commands.d.ts +11 -0
  129. package/dist/lib/agent-cli-commands.js +30 -0
  130. package/dist/lib/agents.js +44 -36
  131. package/dist/lib/answer-router.js +1 -1
  132. package/dist/lib/audit/log.d.ts +10 -27
  133. package/dist/lib/audit/log.js +20 -33
  134. package/dist/lib/auth-health.d.ts +9 -2
  135. package/dist/lib/auth-health.js +42 -9
  136. package/dist/lib/auto-pull-worker.js +7 -3
  137. package/dist/lib/auto-pull.d.ts +44 -3
  138. package/dist/lib/auto-pull.js +88 -5
  139. package/dist/lib/binary-shadow.d.ts +28 -0
  140. package/dist/lib/binary-shadow.js +121 -0
  141. package/dist/lib/brand.js +9 -3
  142. package/dist/lib/browser/hygiene.d.ts +90 -0
  143. package/dist/lib/browser/hygiene.js +146 -0
  144. package/dist/lib/browser/ipc.d.ts +30 -0
  145. package/dist/lib/browser/ipc.js +93 -4
  146. package/dist/lib/browser/profiles.d.ts +3 -2
  147. package/dist/lib/browser/profiles.js +65 -22
  148. package/dist/lib/browser/service.d.ts +79 -1
  149. package/dist/lib/browser/service.js +231 -14
  150. package/dist/lib/browser/sessions-list.d.ts +22 -2
  151. package/dist/lib/browser/sessions-list.js +54 -6
  152. package/dist/lib/browser/stream.d.ts +2 -0
  153. package/dist/lib/browser/stream.js +1 -0
  154. package/dist/lib/browser/types.d.ts +63 -1
  155. package/dist/lib/byok-usage.d.ts +9 -2
  156. package/dist/lib/byok-usage.js +133 -31
  157. package/dist/lib/cli-entry.d.ts +11 -0
  158. package/dist/lib/cli-entry.js +46 -0
  159. package/dist/lib/cloud/host.d.ts +1 -1
  160. package/dist/lib/cloud/host.js +2 -2
  161. package/dist/lib/cloud/registry.js +1 -1
  162. package/dist/lib/cloud/types.d.ts +1 -1
  163. package/dist/lib/commands.d.ts +2 -0
  164. package/dist/lib/commands.js +2 -0
  165. package/dist/lib/computer/sessions-list.d.ts +150 -0
  166. package/dist/lib/computer/sessions-list.js +363 -0
  167. package/dist/lib/config-keys.d.ts +86 -0
  168. package/dist/lib/config-keys.js +193 -0
  169. package/dist/lib/config-machine-keys.d.ts +12 -0
  170. package/dist/lib/config-machine-keys.js +17 -0
  171. package/dist/lib/config-transfer.js +3 -4
  172. package/dist/lib/crabbox/cli.d.ts +2 -2
  173. package/dist/lib/crabbox/cli.js +3 -3
  174. package/dist/lib/daemon-health.d.ts +22 -0
  175. package/dist/lib/daemon-health.js +33 -3
  176. package/dist/lib/daemon-services.d.ts +50 -0
  177. package/dist/lib/daemon-services.js +147 -0
  178. package/dist/lib/daemon-ticks.d.ts +35 -66
  179. package/dist/lib/daemon-ticks.js +77 -159
  180. package/dist/lib/daemon.d.ts +72 -4
  181. package/dist/lib/daemon.js +792 -202
  182. package/dist/lib/deeplink/register.d.ts +49 -0
  183. package/dist/lib/deeplink/register.js +253 -0
  184. package/dist/lib/deeplink/url.d.ts +34 -0
  185. package/dist/lib/deeplink/url.js +78 -0
  186. package/dist/lib/device-config.d.ts +124 -29
  187. package/dist/lib/device-config.js +346 -141
  188. package/dist/lib/devices/config-migration.d.ts +42 -0
  189. package/dist/lib/devices/config-migration.js +203 -0
  190. package/dist/lib/devices/connect.js +14 -7
  191. package/dist/lib/devices/doctor-findings.d.ts +4 -1
  192. package/dist/lib/devices/doctor-findings.js +20 -1
  193. package/dist/lib/devices/harness-inventory.d.ts +11 -2
  194. package/dist/lib/devices/harness-inventory.js +0 -0
  195. package/dist/lib/devices/health.d.ts +1 -1
  196. package/dist/lib/devices/health.js +1 -1
  197. package/dist/lib/devices/pending.d.ts +22 -1
  198. package/dist/lib/devices/pending.js +67 -2
  199. package/dist/lib/devices/registry.d.ts +0 -25
  200. package/dist/lib/devices/registry.js +2 -83
  201. package/dist/lib/devices/resolve-profile.d.ts +20 -0
  202. package/dist/lib/devices/resolve-profile.js +44 -0
  203. package/dist/lib/devices/rollout-verify.d.ts +101 -0
  204. package/dist/lib/devices/rollout-verify.js +193 -0
  205. package/dist/lib/devices/ssh-config.js +10 -6
  206. package/dist/lib/event-families.d.ts +28 -0
  207. package/dist/lib/event-families.js +159 -0
  208. package/dist/lib/event-stream.d.ts +9 -1
  209. package/dist/lib/event-stream.js +26 -9
  210. package/dist/lib/events.d.ts +9 -1
  211. package/dist/lib/events.js +21 -6
  212. package/dist/lib/exec.d.ts +30 -0
  213. package/dist/lib/exec.js +219 -121
  214. package/dist/lib/feed-broadcast.d.ts +25 -0
  215. package/dist/lib/feed-broadcast.js +33 -0
  216. package/dist/lib/feed.d.ts +1 -1
  217. package/dist/lib/feed.js +12 -2
  218. package/dist/lib/fleet/capture.js +15 -0
  219. package/dist/lib/fleet/manifest.js +9 -0
  220. package/dist/lib/fleet/types.d.ts +9 -0
  221. package/dist/lib/fleet-status.js +10 -8
  222. package/dist/lib/git.d.ts +21 -7
  223. package/dist/lib/git.js +122 -18
  224. package/dist/lib/hosts/dispatch.d.ts +8 -3
  225. package/dist/lib/hosts/dispatch.js +29 -3
  226. package/dist/lib/hosts/logs.d.ts +2 -2
  227. package/dist/lib/hosts/logs.js +2 -2
  228. package/dist/lib/hosts/option.js +1 -1
  229. package/dist/lib/hosts/passthrough.d.ts +2 -3
  230. package/dist/lib/hosts/passthrough.js +10 -24
  231. package/dist/lib/hosts/progress.js +2 -2
  232. package/dist/lib/hosts/providers/devices.d.ts +3 -3
  233. package/dist/lib/hosts/providers/devices.js +18 -12
  234. package/dist/lib/hosts/ready.d.ts +5 -1
  235. package/dist/lib/hosts/ready.js +9 -3
  236. package/dist/lib/hosts/reconcile.d.ts +2 -2
  237. package/dist/lib/hosts/reconcile.js +2 -2
  238. package/dist/lib/hosts/registry.js +14 -9
  239. package/dist/lib/hosts/remote-cmd.js +1 -1
  240. package/dist/lib/hosts/remote-os.d.ts +9 -6
  241. package/dist/lib/hosts/remote-os.js +13 -6
  242. package/dist/lib/hosts/routing-flag.d.ts +23 -0
  243. package/dist/lib/hosts/routing-flag.js +41 -0
  244. package/dist/lib/hosts/run-target.js +1 -1
  245. package/dist/lib/hosts/session-index.js +1 -1
  246. package/dist/lib/hosts/tasks.d.ts +6 -6
  247. package/dist/lib/hosts/tasks.js +4 -4
  248. package/dist/lib/hosts/types.js +1 -2
  249. package/dist/lib/installations/resolve.js +2 -8
  250. package/dist/lib/isolation-boundary-report.js +0 -1
  251. package/dist/lib/linear-cache.d.ts +7 -0
  252. package/dist/lib/linear-cache.js +31 -4
  253. package/dist/lib/linear-project-counts.d.ts +1 -1
  254. package/dist/lib/linear-project-counts.js +2 -3
  255. package/dist/lib/linear-projects.js +1 -1
  256. package/dist/lib/loop.d.ts +2 -2
  257. package/dist/lib/loop.js +1 -1
  258. package/dist/lib/mailbox-target.d.ts +1 -1
  259. package/dist/lib/mailbox-target.js +1 -1
  260. package/dist/lib/manifest.js +7 -4
  261. package/dist/lib/menubar/MenubarHelper.app/Contents/CodeResources +0 -0
  262. package/dist/lib/menubar/MenubarHelper.app/Contents/MacOS/MenubarHelper +0 -0
  263. package/dist/lib/menubar/snapshot.d.ts +3 -2
  264. package/dist/lib/menubar/snapshot.js +6 -2
  265. package/dist/lib/migrate-fold.d.ts +33 -0
  266. package/dist/lib/migrate-fold.js +130 -0
  267. package/dist/lib/migrate.d.ts +34 -34
  268. package/dist/lib/migrate.js +106 -128
  269. package/dist/lib/model-tier-overrides.d.ts +1 -1
  270. package/dist/lib/model-tier-overrides.js +15 -2
  271. package/dist/lib/monitors/config.d.ts +17 -3
  272. package/dist/lib/monitors/config.js +52 -18
  273. package/dist/lib/monitors/engine.d.ts +32 -1
  274. package/dist/lib/monitors/engine.js +94 -11
  275. package/dist/lib/monitors/fingerprint.d.ts +46 -0
  276. package/dist/lib/monitors/fingerprint.js +100 -0
  277. package/dist/lib/monitors/remote.d.ts +47 -0
  278. package/dist/lib/monitors/remote.js +81 -0
  279. package/dist/lib/monitors/state.d.ts +39 -0
  280. package/dist/lib/monitors/state.js +56 -0
  281. package/dist/lib/onepassword.d.ts +17 -0
  282. package/dist/lib/onepassword.js +52 -22
  283. package/dist/lib/open-url.js +1 -1
  284. package/dist/lib/picker.d.ts +14 -2
  285. package/dist/lib/picker.js +35 -13
  286. package/dist/lib/placement.d.ts +1 -1
  287. package/dist/lib/placement.js +1 -1
  288. package/dist/lib/pr-land-detach.d.ts +32 -0
  289. package/dist/lib/pr-land-detach.js +79 -0
  290. package/dist/lib/profiles-presets.js +13 -0
  291. package/dist/lib/profiles.d.ts +2 -0
  292. package/dist/lib/profiles.js +44 -1
  293. package/dist/lib/project-focus.d.ts +1 -1
  294. package/dist/lib/project-focus.js +1 -1
  295. package/dist/lib/project-probe.d.ts +4 -1
  296. package/dist/lib/project-probe.js +5 -4
  297. package/dist/lib/project-resources.js +2 -18
  298. package/dist/lib/project-root.d.ts +16 -0
  299. package/dist/lib/project-root.js +20 -2
  300. package/dist/lib/projects.d.ts +20 -1
  301. package/dist/lib/projects.js +78 -1
  302. package/dist/lib/refresh-coordinator.d.ts +24 -0
  303. package/dist/lib/refresh-coordinator.js +52 -0
  304. package/dist/lib/registry.d.ts +2 -2
  305. package/dist/lib/registry.js +1 -1
  306. package/dist/lib/resource-aliases.d.ts +13 -0
  307. package/dist/lib/resource-aliases.js +26 -0
  308. package/dist/lib/resources/types.d.ts +1 -1
  309. package/dist/lib/resources.d.ts +16 -0
  310. package/dist/lib/resources.js +66 -10
  311. package/dist/lib/rotate.d.ts +3 -4
  312. package/dist/lib/rotate.js +4 -5
  313. package/dist/lib/routine-activation.d.ts +22 -2
  314. package/dist/lib/routine-activation.js +63 -16
  315. package/dist/lib/routine-context.d.ts +9 -2
  316. package/dist/lib/routine-context.js +21 -6
  317. package/dist/lib/routines-project.d.ts +58 -48
  318. package/dist/lib/routines-project.js +190 -159
  319. package/dist/lib/routines.d.ts +44 -7
  320. package/dist/lib/routines.js +92 -34
  321. package/dist/lib/run-defaults.d.ts +5 -0
  322. package/dist/lib/run-defaults.js +11 -1
  323. package/dist/lib/runner.d.ts +10 -8
  324. package/dist/lib/runner.js +122 -39
  325. package/dist/lib/secrets/Agents CLI.app/Contents/CodeResources +0 -0
  326. package/dist/lib/secrets/Agents CLI.app/Contents/MacOS/Agents CLI +0 -0
  327. package/dist/lib/secrets/agent.d.ts +10 -3
  328. package/dist/lib/secrets/agent.js +43 -8
  329. package/dist/lib/secrets/bundles.d.ts +1 -0
  330. package/dist/lib/secrets/bundles.js +92 -80
  331. package/dist/lib/secrets/index.js +32 -9
  332. package/dist/lib/secrets/install-helper.d.ts +4 -4
  333. package/dist/lib/secrets/install-helper.js +4 -4
  334. package/dist/lib/secrets/push.d.ts +40 -6
  335. package/dist/lib/secrets/push.js +58 -11
  336. package/dist/lib/secrets/read-backoff.d.ts +1 -1
  337. package/dist/lib/secrets/read-backoff.js +1 -1
  338. package/dist/lib/secrets/remote.d.ts +24 -0
  339. package/dist/lib/secrets/remote.js +54 -4
  340. package/dist/lib/self-update.d.ts +108 -0
  341. package/dist/lib/self-update.js +276 -1
  342. package/dist/lib/session/active.d.ts +89 -5
  343. package/dist/lib/session/active.js +165 -10
  344. package/dist/lib/session/actor-sidecar.d.ts +1 -1
  345. package/dist/lib/session/actor-sidecar.js +2 -1
  346. package/dist/lib/session/db.d.ts +176 -2
  347. package/dist/lib/session/db.js +484 -17
  348. package/dist/lib/session/discover.js +27 -4
  349. package/dist/lib/session/hook-sessions.js +2 -2
  350. package/dist/lib/session/host-link.d.ts +2 -2
  351. package/dist/lib/session/host-link.js +2 -2
  352. package/dist/lib/session/pid-registry.d.ts +21 -0
  353. package/dist/lib/session/pid-registry.js +57 -0
  354. package/dist/lib/session/remote-active.js +15 -1
  355. package/dist/lib/session/remote.js +2 -2
  356. package/dist/lib/session/session-cache.d.ts +14 -7
  357. package/dist/lib/session/session-cache.js +51 -9
  358. package/dist/lib/session/state.d.ts +2 -2
  359. package/dist/lib/session/state.js +1 -1
  360. package/dist/lib/session/sync/config.d.ts +10 -10
  361. package/dist/lib/session/sync/config.js +10 -10
  362. package/dist/lib/session/sync/r2.d.ts +34 -0
  363. package/dist/lib/session/sync/r2.js +123 -0
  364. package/dist/lib/session/throughput.d.ts +1 -1
  365. package/dist/lib/session/throughput.js +1 -1
  366. package/dist/lib/session/types.d.ts +23 -1
  367. package/dist/lib/session/types.js +15 -0
  368. package/dist/lib/session/viewing-in.d.ts +1 -1
  369. package/dist/lib/session/viewing-in.js +1 -1
  370. package/dist/lib/session/watch.d.ts +101 -0
  371. package/dist/lib/session/watch.js +242 -0
  372. package/dist/lib/share/analytics.js +1 -1
  373. package/dist/lib/share/capture.d.ts +1 -1
  374. package/dist/lib/share/capture.js +3 -3
  375. package/dist/lib/share/config.d.ts +6 -2
  376. package/dist/lib/share/config.js +6 -5
  377. package/dist/lib/share/delete.js +3 -3
  378. package/dist/lib/share/provision.d.ts +38 -0
  379. package/dist/lib/share/provision.js +51 -1
  380. package/dist/lib/share/publish.d.ts +40 -1
  381. package/dist/lib/share/publish.js +119 -6
  382. package/dist/lib/share/worker-template.d.ts +12 -1
  383. package/dist/lib/share/worker-template.js +83 -7
  384. package/dist/lib/shims.d.ts +17 -3
  385. package/dist/lib/shims.js +98 -26
  386. package/dist/lib/signin-badge.js +3 -2
  387. package/dist/lib/skills.js +2 -0
  388. package/dist/lib/smart-launch.d.ts +8 -8
  389. package/dist/lib/smart-launch.js +80 -59
  390. package/dist/lib/ssh-exec.d.ts +1 -1
  391. package/dist/lib/ssh-exec.js +1 -1
  392. package/dist/lib/staleness/prune.d.ts +88 -0
  393. package/dist/lib/staleness/prune.js +69 -0
  394. package/dist/lib/staleness/registry.d.ts +1 -1
  395. package/dist/lib/staleness/writers/commands.js +34 -2
  396. package/dist/lib/staleness/writers/hooks.js +16 -0
  397. package/dist/lib/staleness/writers/kinds.d.ts +6 -0
  398. package/dist/lib/staleness/writers/skills.js +19 -0
  399. package/dist/lib/staleness/writers/subagents.d.ts +2 -3
  400. package/dist/lib/staleness/writers/subagents.js +0 -4
  401. package/dist/lib/staleness/writers/types.d.ts +32 -0
  402. package/dist/lib/startup/command-registry.d.ts +16 -14
  403. package/dist/lib/startup/command-registry.js +26 -37
  404. package/dist/lib/startup/dev-build.d.ts +10 -0
  405. package/dist/lib/startup/dev-build.js +13 -1
  406. package/dist/lib/startup/spellcheck.d.ts +18 -0
  407. package/dist/lib/startup/spellcheck.js +45 -0
  408. package/dist/lib/state.d.ts +36 -9
  409. package/dist/lib/state.js +96 -46
  410. package/dist/lib/subagents-registry.d.ts +0 -7
  411. package/dist/lib/subagents-registry.js +38 -65
  412. package/dist/lib/subagents.d.ts +0 -33
  413. package/dist/lib/subagents.js +0 -75
  414. package/dist/lib/sync-umbrella.js +1 -1
  415. package/dist/lib/teams/agents.d.ts +41 -1
  416. package/dist/lib/teams/agents.js +187 -9
  417. package/dist/lib/teams/api.d.ts +11 -1
  418. package/dist/lib/teams/api.js +11 -2
  419. package/dist/lib/teams/delivery.d.ts +41 -0
  420. package/dist/lib/teams/delivery.js +60 -0
  421. package/dist/lib/teams/registry.d.ts +14 -0
  422. package/dist/lib/teams/registry.js +51 -1
  423. package/dist/lib/teams/remoteWorktree.d.ts +19 -0
  424. package/dist/lib/teams/remoteWorktree.js +29 -0
  425. package/dist/lib/teams/scheduler.d.ts +1 -1
  426. package/dist/lib/teams/scheduler.js +1 -1
  427. package/dist/lib/teams/worktree.d.ts +24 -0
  428. package/dist/lib/teams/worktree.js +42 -0
  429. package/dist/lib/terminal/backends/vscodium-agent.d.ts +10 -1
  430. package/dist/lib/terminal/backends/vscodium-agent.js +16 -5
  431. package/dist/lib/terminal/engine.d.ts +4 -0
  432. package/dist/lib/terminal/engine.js +8 -2
  433. package/dist/lib/terminal/types.d.ts +21 -2
  434. package/dist/lib/testdata/refresh-coordinator-worker.d.ts +1 -0
  435. package/dist/lib/testdata/refresh-coordinator-worker.js +23 -0
  436. package/dist/lib/tickets/list.d.ts +53 -0
  437. package/dist/lib/tickets/list.js +153 -0
  438. package/dist/lib/tmux/orphan-reap.d.ts +316 -0
  439. package/dist/lib/tmux/orphan-reap.js +638 -0
  440. package/dist/lib/tmux/session.d.ts +68 -3
  441. package/dist/lib/tmux/session.js +96 -5
  442. package/dist/lib/triggers/handlers.d.ts +20 -0
  443. package/dist/lib/triggers/handlers.js +16 -1
  444. package/dist/lib/triggers/webhook.js +10 -0
  445. package/dist/lib/types.d.ts +47 -35
  446. package/dist/lib/usage-fleet.d.ts +32 -0
  447. package/dist/lib/usage-fleet.js +125 -0
  448. package/dist/lib/usage-refresh.d.ts +3 -3
  449. package/dist/lib/usage-refresh.js +19 -16
  450. package/dist/lib/usage.d.ts +51 -47
  451. package/dist/lib/usage.js +145 -153
  452. package/dist/lib/version-duplicates.js +2 -2
  453. package/dist/lib/versions.d.ts +56 -13
  454. package/dist/lib/versions.js +195 -45
  455. package/dist/lib/watchdog/log.d.ts +1 -1
  456. package/dist/lib/watchdog/log.js +3 -3
  457. package/dist/lib/watchdog/rotate.d.ts +6 -6
  458. package/dist/lib/watchdog/rotate.js +6 -6
  459. package/dist/lib/workflows.d.ts +1 -1
  460. package/dist/lib/yaml-io.d.ts +47 -0
  461. package/dist/lib/yaml-io.js +55 -0
  462. package/package.json +2 -1
  463. package/scripts/install-helper.js +2 -2
  464. package/scripts/postinstall.js +23 -20
  465. package/dist/commands/defaults.d.ts +0 -7
  466. package/dist/commands/defaults.js +0 -107
  467. package/dist/commands/export.d.ts +0 -11
  468. package/dist/commands/export.js +0 -215
  469. package/dist/commands/helper.d.ts +0 -12
  470. package/dist/commands/helper.js +0 -87
  471. package/dist/commands/hosts.d.ts +0 -11
  472. package/dist/commands/hosts.js +0 -330
  473. package/dist/commands/lock.d.ts +0 -12
  474. package/dist/commands/lock.js +0 -70
  475. package/dist/commands/pull.d.ts +0 -17
  476. package/dist/commands/pull.js +0 -39
  477. package/dist/commands/push.d.ts +0 -14
  478. package/dist/commands/push.js +0 -30
  479. package/dist/commands/set.d.ts +0 -15
  480. package/dist/commands/set.js +0 -79
  481. package/dist/commands/setup-share.d.ts +0 -17
  482. package/dist/commands/setup-share.js +0 -85
  483. package/dist/commands/wallet.d.ts +0 -20
  484. package/dist/commands/wallet.js +0 -216
  485. package/dist/commands/worktree.d.ts +0 -19
  486. package/dist/commands/worktree.js +0 -272
  487. package/dist/lib/account-labels.d.ts +0 -24
  488. package/dist/lib/account-labels.js +0 -72
  489. package/dist/lib/auto-dispatch-linear.d.ts +0 -18
  490. package/dist/lib/auto-dispatch-linear.js +0 -107
  491. package/dist/lib/auto-dispatch-provider.d.ts +0 -10
  492. package/dist/lib/auto-dispatch-provider.js +0 -30
  493. package/dist/lib/auto-dispatch.d.ts +0 -93
  494. package/dist/lib/auto-dispatch.js +0 -128
  495. package/dist/lib/export.d.ts +0 -72
  496. package/dist/lib/export.js +0 -269
  497. package/dist/lib/lock.d.ts +0 -93
  498. package/dist/lib/lock.js +0 -207
  499. package/dist/lib/wallet/index.d.ts +0 -78
  500. package/dist/lib/wallet/index.js +0 -253
@@ -1,7 +1,7 @@
1
1
  /**
2
- * `agents lease` — manage the disposable cloud boxes used by `agents run --lease`.
2
+ * `agents devices lease` — manage the disposable cloud boxes used by `agents run --lease`.
3
3
  *
4
- * Today: `agents lease gc`, which stops expired + idle "orphan" boxes that are
4
+ * Today: `agents devices lease gc`, which stops expired + idle "orphan" boxes that are
5
5
  * holding a provider's server quota (the cause of the `server_limit` 403 a new
6
6
  * lease hits). Reaping is conservative: only boxes whose lease has expired AND
7
7
  * that have been untouched for a safety window are eligible (see `isReapSafe`),
@@ -25,7 +25,7 @@ export declare function boxStatus(box: CrabboxBox): string;
25
25
  * freshest box (an untouched `lastTouchedAt` sorts last).
26
26
  */
27
27
  export declare function reusableBoxes(boxes: CrabboxBox[], nowSecs: number): CrabboxBox[];
28
- /** One aligned row for the reuse picker / `agents lease list`. */
28
+ /** One aligned row for the reuse picker / `agents devices lease list`. */
29
29
  export declare function formatBoxRow(box: CrabboxBox, nowSecs: number): string;
30
30
  /** Validate a Hetzner token against the live API. Exported for unit tests (fetch injectable). */
31
31
  export declare function validateHetznerToken(token: string, fetchImpl?: typeof fetch): Promise<'valid' | 'invalid' | 'unreachable'>;
@@ -39,4 +39,4 @@ export declare function validateHetznerToken(token: string, fetchImpl?: typeof f
39
39
  export declare function runLeaseSetup(opts?: {
40
40
  provider?: string;
41
41
  }): Promise<boolean>;
42
- export declare function registerLeaseCommand(program: Command): void;
42
+ export declare function registerLeaseCommand(devicesCommand: Command): void;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * `agents lease` — manage the disposable cloud boxes used by `agents run --lease`.
2
+ * `agents devices lease` — manage the disposable cloud boxes used by `agents run --lease`.
3
3
  *
4
- * Today: `agents lease gc`, which stops expired + idle "orphan" boxes that are
4
+ * Today: `agents devices lease gc`, which stops expired + idle "orphan" boxes that are
5
5
  * holding a provider's server quota (the cause of the `server_limit` 403 a new
6
6
  * lease hits). Reaping is conservative: only boxes whose lease has expired AND
7
7
  * that have been untouched for a safety window are eligible (see `isReapSafe`),
@@ -64,7 +64,7 @@ export function reusableBoxes(boxes, nowSecs) {
64
64
  .filter((b) => b.ready && (b.expiresAt === null || b.expiresAt > nowSecs))
65
65
  .sort((a, b) => (b.lastTouchedAt ?? 0) - (a.lastTouchedAt ?? 0));
66
66
  }
67
- /** One aligned row for the reuse picker / `agents lease list`. */
67
+ /** One aligned row for the reuse picker / `agents devices lease list`. */
68
68
  export function formatBoxRow(box, nowSecs) {
69
69
  const slug = box.slug.padEnd(16);
70
70
  const cls = (box.class ?? '?').padEnd(10);
@@ -201,8 +201,8 @@ export async function runLeaseSetup(opts = {}) {
201
201
  throw e;
202
202
  }
203
203
  }
204
- export function registerLeaseCommand(program) {
205
- const lease = program
204
+ export function registerLeaseCommand(devicesCommand) {
205
+ const lease = devicesCommand
206
206
  .command('lease')
207
207
  .description('Manage the disposable cloud boxes used by `agents run --lease`.');
208
208
  lease
@@ -241,7 +241,7 @@ export function registerLeaseCommand(program) {
241
241
  console.log(chalk.bold(`Warm boxes (${boxes.length})`));
242
242
  for (const b of boxes)
243
243
  console.log(' ' + formatBoxRow(b, nowSecs));
244
- console.log(chalk.gray(' Reuse: agents run <agent> "…" --box <slug> · Stop: agents lease stop <slug>'));
244
+ console.log(chalk.gray(' Reuse: agents run <agent> "…" --box <slug> · Stop: agents devices lease stop <slug>'));
245
245
  });
246
246
  lease
247
247
  .command('stop <slug>')
@@ -107,17 +107,4 @@ export function registerLoginCommands(program) {
107
107
  clearVaultKey();
108
108
  console.log(chalk.green('Logged out. Synced secrets are locked.'));
109
109
  });
110
- program
111
- .command('whoami')
112
- .description('Show synced-secrets login status')
113
- .action(() => {
114
- const session = getVaultSession();
115
- if (!session.loggedIn) {
116
- console.log(chalk.yellow('Not logged in.'));
117
- console.log(chalk.gray(`File: ${vaultPath()}${vaultExists() ? '' : ' (not created)'}`));
118
- return;
119
- }
120
- console.log(chalk.green(`Logged in (${formatRemaining(session.expiresAt)} remaining).`));
121
- console.log(chalk.gray(`File: ${vaultPath()}`));
122
- });
123
110
  }
@@ -17,8 +17,8 @@
17
17
  * id, `--host`/`--agent`/`--version` filter a merged candidate list; one match is
18
18
  * shown, several open the fuzzy picker (or, non-TTY, print the list).
19
19
  *
20
- * Additive: `agents hosts logs` and `agents sessions tail` are unchanged and share
21
- * the same underlying helpers (showHostTaskLog / streamSessionTail).
20
+ * Additive: `agents devices ps`/`stop` and `agents sessions tail` are unchanged and
21
+ * share the same underlying helpers (showHostTaskLog / streamSessionTail).
22
22
  */
23
23
  import type { Command } from 'commander';
24
24
  /** Register the top-level `agents logs` command. */
@@ -17,8 +17,8 @@
17
17
  * id, `--host`/`--agent`/`--version` filter a merged candidate list; one match is
18
18
  * shown, several open the fuzzy picker (or, non-TTY, print the list).
19
19
  *
20
- * Additive: `agents hosts logs` and `agents sessions tail` are unchanged and share
21
- * the same underlying helpers (showHostTaskLog / streamSessionTail).
20
+ * Additive: `agents devices ps`/`stop` and `agents sessions tail` are unchanged and
21
+ * share the same underlying helpers (showHostTaskLog / streamSessionTail).
22
22
  */
23
23
  import chalk from 'chalk';
24
24
  import { discoverSessions, resolveSessionById } from '../lib/session/discover.js';
@@ -564,9 +564,11 @@ Examples:
564
564
  }
565
565
  console.log();
566
566
  });
567
+ // Deprecated: superseded by `agents sync --mcp`. Kept as a warned, functional
568
+ // alias so old muscle-memory and scripts don't break.
567
569
  mcpCmd
568
- .command('register [name]')
569
- .description('Apply MCP servers from manifest to agent config files')
570
+ .command('register [name]', { hidden: true })
571
+ .description('Deprecated use `agents sync --mcp` instead.')
570
572
  .option('-a, --agents <list>', 'Override manifest targets: claude, codex@0.116.0')
571
573
  .option('-y, --yes', 'Auto-install any missing agent versions without prompting')
572
574
  .addHelpText('after', `
@@ -581,6 +583,9 @@ Examples:
581
583
  agents mcp register --agents codex@0.116.0
582
584
  `)
583
585
  .action(async (name, options) => {
586
+ console.warn(chalk.yellow('`agents mcp register` is deprecated — use `agents sync --mcp` instead:'));
587
+ console.warn(chalk.gray(' all servers: agents sync --mcp'));
588
+ console.warn(chalk.gray(' specific server: agents sync --mcp <name>'));
584
589
  const localPath = getUserAgentsDir();
585
590
  const manifest = readManifest(localPath);
586
591
  if (!manifest?.mcp) {
@@ -111,11 +111,16 @@ export function registerMemoryCommands(program) {
111
111
  console.log(chalk.dim(`# ${fact.name} [${fact.layer}] ${fact.path}`));
112
112
  console.log(fs.readFileSync(fact.path, 'utf-8'));
113
113
  });
114
+ // Deprecated: superseded by `agents sync --memory`. Kept as a warned, functional
115
+ // alias so old muscle-memory and scripts don't break.
114
116
  memoryCmd
115
- .command('sync [agent]')
116
- .description('Copy canonical memory into capable agent version homes')
117
+ .command('sync [agent]', { hidden: true })
118
+ .description('Deprecated use `agents sync --memory` instead.')
117
119
  .option('-a, --agent <agent>', 'Limit to one agent (or agent@version)')
118
120
  .action(async (agentArg, options) => {
121
+ console.warn(chalk.yellow('`agents memory sync` is deprecated — use `agents sync --memory` instead:'));
122
+ console.warn(chalk.gray(' all agents: agents sync --memory'));
123
+ console.warn(chalk.gray(' one agent: agents sync --memory <agent>'));
119
124
  ensureUserMemoryDir();
120
125
  const input = agentArg || options.agent;
121
126
  if (input) {
@@ -12,7 +12,7 @@
12
12
  * written on the host that actually owns the agent. A caller who doesn't already
13
13
  * know the host (a detached `agents run --device <h> --no-follow` dispatch) is
14
14
  * still resolved automatically: a `target` matching no local/cloud session falls
15
- * through to the `~/.agents/.cache/hosts/` records `agents hosts ps` reads
15
+ * through to the `~/.agents/.cache/hosts/` records `agents devices ps` reads
16
16
  * (RUSH-2366 follow-up — see decideHostTaskRoute in lib/mailbox-target.ts), and
17
17
  * the message is rerouted there.
18
18
  *
@@ -2,7 +2,7 @@ import chalk from 'chalk';
2
2
  import { spawn } from 'child_process';
3
3
  import { die } from '../lib/format.js';
4
4
  import { parseDuration } from '../lib/hooks/cache.js';
5
- import { getActiveSessions } from '../lib/session/active.js';
5
+ import { getActiveSessions, isSessionIdLiveOnProcessTable } from '../lib/session/active.js';
6
6
  import { getTaskById, updateTaskStatus } from '../lib/cloud/store.js';
7
7
  import { resolveProvider } from '../lib/cloud/registry.js';
8
8
  import { mailboxDir, enqueue } from '../lib/mailbox.js';
@@ -119,7 +119,7 @@ async function deliverViaResume(route, mailboxId) {
119
119
  * dispatch (RUSH-2366 follow-up). `getActiveSessions()` never sees these: the
120
120
  * live process is on the dispatch's host, not this machine, so the local
121
121
  * session resolver in `resolveMessageTarget` reports "no running agent" even
122
- * while `agents hosts ps` shows the same dispatch running with a live remote
122
+ * while `agents devices ps` shows the same dispatch running with a live remote
123
123
  * pid — the only recovery was kill-and-redispatch, losing all context.
124
124
  *
125
125
  * Re-spawns `agents message <remoteRef> <text> --host <host>` through
@@ -251,11 +251,42 @@ export function registerMessageCommand(program) {
251
251
  return;
252
252
  }
253
253
  case 'none': {
254
+ // RUSH-2384: a live local process can still advertise `--session-id
255
+ // <target>` in its argv when getActiveSessions lost the row (empty
256
+ // by-pid registry, teams status flap, fold into a parent). Mailbox
257
+ // delivery only needs the id — prove liveness from the process table
258
+ // before giving up, so a mid-run agent is never unreachable while
259
+ // its pid is alive.
260
+ if (await isSessionIdLiveOnProcessTable(target)) {
261
+ try {
262
+ const block = findOpenBlockForMailbox(target);
263
+ const route = resolveAnswerRoute({
264
+ mailboxId: target,
265
+ answer: text,
266
+ block,
267
+ session: null,
268
+ });
269
+ if (route.kind === 'refuse')
270
+ die(route.reason);
271
+ claimBlockAnswer(block, opts);
272
+ if (route.kind === 'mailbox') {
273
+ await deliverViaMailbox(target, text, block, { from: opts.from, ttlSeconds });
274
+ return;
275
+ }
276
+ die(`Live process carries --session-id ${target} but needs a ${route.kind} rail ` +
277
+ `that is unavailable without an active-session row. Retry after the session ` +
278
+ `reappears in \`agents sessions --active\`, or inject into its terminal directly.`);
279
+ }
280
+ catch (err) {
281
+ die(err.message);
282
+ }
283
+ return;
284
+ }
254
285
  // Not a local/cloud session — check whether it's a detached
255
286
  // `--device ... --no-follow` dispatch, which `getActiveSessions()`
256
287
  // never sees (its live process is on another host). Same records
257
- // `agents hosts ps` reads, so the two commands never disagree.
258
- // Heal first, exactly as `hosts stop`/`hosts ps` do: a detached
288
+ // `agents devices ps` reads, so the two commands never disagree.
289
+ // Heal first, exactly as `agents devices stop`/`agents devices ps` do: a detached
259
290
  // dispatch record never self-updates, so a finished run is still
260
291
  // stamped `status:'running'` on disk. Without this we'd route a dead
261
292
  // task through an SSH reroute that can only fail, instead of
@@ -269,9 +300,9 @@ export function registerMessageCommand(program) {
269
300
  if (hostRoute.kind === 'finished') {
270
301
  die(`Task '${target}' on host '${hostRoute.host}' already ${hostRoute.status}` +
271
302
  (hostRoute.exitCode !== undefined ? ` (exit ${hostRoute.exitCode})` : '') +
272
- `. Nothing to message. View its output: \`agents hosts logs ${target}\`.`);
303
+ `. Nothing to message. View its output: \`agents logs ${target}\`.`);
273
304
  }
274
- die(`No running agent or cloud task matches "${target}". List targets with \`agents sessions --active\` or \`agents hosts ps\`.`);
305
+ die(`No running agent or cloud task matches "${target}". List targets with \`agents sessions --active\` or \`agents devices ps\`.`);
275
306
  }
276
307
  }
277
308
  });
@@ -16,6 +16,8 @@ import { setTierOverride, clearTierOverride, listTierOverrides } from '../lib/mo
16
16
  import { getModelPricing } from '../lib/pricing/index.js';
17
17
  import { terminalWidth, truncateToWidth, stringWidth } from '../lib/session/width.js';
18
18
  import { wrapJoined } from './inspect.js';
19
+ import { setHelpSections } from '../lib/help.js';
20
+ import { formatRunDefaultEntry, listRunDefaults, parseRunDefaultSelector, setRunDefault, } from '../lib/run-defaults.js';
19
21
  const MODEL_CAPABLE_AGENTS = ['claude', 'codex', 'opencode', 'cursor', 'openclaw', 'antigravity', 'kimi', 'grok', 'droid', 'pi'];
20
22
  /**
21
23
  * Agents that don't necessarily install under ~/.agents/versions (cursor ships
@@ -75,8 +77,74 @@ export function registerModelsCommand(program) {
75
77
  console.log(chalk.gray(' Permission modes (--mode plan|edit|auto|skip): `agents modes <agent>`'));
76
78
  }
77
79
  });
80
+ // `models set` — the ergonomic setter for per-agent/version run defaults. It
81
+ // reads and writes the same store as `agents config set run.<agent@version>.*`
82
+ // (agents.yaml -> run.defaults), so the two stay consistent — `set` is just the
83
+ // short front door, nested here because `models` owns model/mode concerns.
84
+ const set = models
85
+ .command('set [selector]')
86
+ .description('Set the default model/mode an agent version uses for `agents run`')
87
+ .option('--model <model>', 'Default model or model alias, forwarded via --model')
88
+ .option('--mode <mode>', "Default mode: plan, edit, auto, skip. 'full' accepted as alias for skip.")
89
+ .action((selector, options) => {
90
+ try {
91
+ const hasFlags = options.model !== undefined || options.mode !== undefined;
92
+ if (!selector) {
93
+ if (hasFlags) {
94
+ throw new Error('Selector is required when passing --model/--mode. Example: agents models set claude@2.1.220 --model opus-5');
95
+ }
96
+ const entries = listRunDefaults();
97
+ if (entries.length === 0) {
98
+ console.log(chalk.gray('No agent defaults configured.'));
99
+ console.log(chalk.gray('Set one with: agents models set claude@2.1.220 --model opus-5'));
100
+ return;
101
+ }
102
+ console.log(chalk.bold('Agent Defaults\n'));
103
+ for (const entry of entries) {
104
+ console.log(` ${formatRunDefaultEntry(entry)}`);
105
+ }
106
+ return;
107
+ }
108
+ if (!hasFlags) {
109
+ const parsed = parseRunDefaultSelector(selector);
110
+ const entry = listRunDefaults().find((e) => e.selector === parsed.selector);
111
+ if (!entry || (!entry.defaults.mode && !entry.defaults.model)) {
112
+ console.log(chalk.gray(`No default set for ${parsed.selector}.`));
113
+ console.log(chalk.gray(`Set one with: agents models set ${selector} --model <model>`));
114
+ return;
115
+ }
116
+ console.log(` ${formatRunDefaultEntry(entry)}`);
117
+ return;
118
+ }
119
+ const entry = setRunDefault(selector, {
120
+ ...(options.mode !== undefined ? { mode: options.mode } : {}),
121
+ ...(options.model !== undefined ? { model: options.model } : {}),
122
+ });
123
+ console.log(chalk.green('Set default:'));
124
+ console.log(` ${formatRunDefaultEntry(entry)}`);
125
+ }
126
+ catch (err) {
127
+ console.error(chalk.red(err.message));
128
+ process.exit(1);
129
+ }
130
+ });
131
+ setHelpSections(set, {
132
+ examples: `
133
+ agents models set claude@2.1.220 --model opus-5
134
+ agents models set 'claude:*' --mode auto --model opus
135
+ agents models set claude@2.1.220
136
+ agents models set
137
+ `,
138
+ notes: `
139
+ Selectors use <agent>@<version> or <agent>:<version>; * matches all versions.
140
+ Exact selectors override wildcard selectors field by field.
141
+ Writes the same store as 'agents config set run.<agent@version>.*'. Explicit flags on
142
+ 'agents run' always win over configured defaults.
143
+ `,
144
+ });
78
145
  // Override subcommands. These WRITE agents.yaml so the user never hand-edits it;
79
146
  // resolution is exact `<agent>@<version>` over `<agent>` over the auto guess.
147
+ const tierDeprecation = chalk.yellow('Deprecation: `agents models tier` is replaced by `agents config set run.<agent@version>.tier.<tier>`.');
80
148
  const tier = models
81
149
  .command('tier')
82
150
  .description('Override which model a cost tier resolves to (per harness, or per agent@version).');
@@ -85,6 +153,7 @@ export function registerModelsCommand(program) {
85
153
  .description('Pin a tier to a model. selector: <agent> or <agent>@<version> (e.g. kimi, kimi@0.19.2).')
86
154
  .action((selector, tierName, model) => {
87
155
  try {
156
+ console.warn(tierDeprecation);
88
157
  const entry = setTierOverride(selector, tierName, model);
89
158
  console.log(chalk.green(`✓ ${entry.selector} ${chalk.cyan(tierName.toLowerCase())} → ${chalk.bold(model)}`));
90
159
  }
@@ -98,6 +167,7 @@ export function registerModelsCommand(program) {
98
167
  .description('Clear one tier (or all tiers) back to the auto guess.')
99
168
  .action((selector, tierName) => {
100
169
  try {
170
+ console.warn(tierDeprecation);
101
171
  const changed = clearTierOverride(selector, tierName);
102
172
  console.log(changed ? chalk.green(`✓ cleared ${selector}${tierName ? ` ${tierName}` : ''}`) : chalk.gray('nothing to clear'));
103
173
  }
@@ -110,6 +180,7 @@ export function registerModelsCommand(program) {
110
180
  .command('list')
111
181
  .description('List all configured tier overrides.')
112
182
  .action(() => {
183
+ console.warn(tierDeprecation);
113
184
  const entries = listTierOverrides();
114
185
  if (entries.length === 0) {
115
186
  console.log(chalk.gray('No tier overrides — every tier uses the auto guess. Set one with `agents models tier set`.'));
@@ -8,5 +8,4 @@
8
8
  * source instead of a clock.
9
9
  */
10
10
  import type { Command } from 'commander';
11
- /** Register the `agents monitors` command tree. */
12
11
  export declare function registerMonitorsCommands(program: Command): void;