@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
@@ -37,21 +37,19 @@ export declare const loadCli: ModuleLoader;
37
37
  export declare const loadSubagents: ModuleLoader;
38
38
  export declare const loadPlugins: ModuleLoader;
39
39
  export declare const loadWorkflows: ModuleLoader;
40
- export declare const loadWorktree: ModuleLoader;
41
40
  export declare const loadVersions: ModuleLoader;
42
41
  export declare const loadUpdate: ModuleLoader;
43
42
  export declare const loadImport: ModuleLoader;
44
- export declare const loadExport: ModuleLoader;
45
43
  export declare const loadPackages: ModuleLoader;
46
44
  export declare const loadRoutines: ModuleLoader;
47
45
  export declare const loadMonitors: ModuleLoader;
48
46
  export declare const loadProjects: ModuleLoader;
49
47
  export declare const loadRun: ModuleLoader;
50
48
  export declare const loadResume: ModuleLoader;
49
+ export declare const loadOpen: ModuleLoader;
51
50
  export declare const loadReconnect: ModuleLoader;
52
51
  export declare const loadFork: ModuleLoader;
53
- export declare const loadDefaults: ModuleLoader;
54
- export declare const loadSet: ModuleLoader;
52
+ export declare const loadConfig: ModuleLoader;
55
53
  export declare const loadModels: ModuleLoader;
56
54
  export declare const loadModes: ModuleLoader;
57
55
  export declare const loadPrune: ModuleLoader;
@@ -65,12 +63,9 @@ export declare const loadProfiles: ModuleLoader;
65
63
  export declare const loadHarness: ModuleLoader;
66
64
  export declare const loadSecrets: ModuleLoader;
67
65
  export declare const loadLogin: ModuleLoader;
68
- export declare const loadWallet: ModuleLoader;
69
- export declare const loadHelper: ModuleLoader;
70
66
  export declare const loadMenubar: ModuleLoader;
71
67
  export declare const loadBeta: ModuleLoader;
72
68
  export declare const loadSync: ModuleLoader;
73
- export declare const loadLock: ModuleLoader;
74
69
  export declare const loadRefreshRules: ModuleLoader;
75
70
  export declare const loadFactory: ModuleLoader;
76
71
  export declare const loadUsage: ModuleLoader;
@@ -88,32 +83,29 @@ export declare const loadTmux: ModuleLoader;
88
83
  export declare const loadWatchdog: ModuleLoader;
89
84
  export declare const loadBrowser: ModuleLoader;
90
85
  export declare const loadComputer: ModuleLoader;
91
- export declare const loadHosts: ModuleLoader;
92
- export declare const loadLease: ModuleLoader;
93
86
  export declare const loadLogs: ModuleLoader;
94
87
  export declare const loadEvents: ModuleLoader;
95
88
  export declare const loadSsh: ModuleLoader;
96
- export declare const loadPull: ModuleLoader;
97
- export declare const loadPush: ModuleLoader;
98
89
  export declare const loadRepo: ModuleLoader;
99
90
  export declare const loadSetup: ModuleLoader;
100
91
  export declare const loadUninstall: ModuleLoader;
101
92
  export declare const loadUpgrade: ModuleLoader;
102
93
  export declare const loadSessions: ModuleLoader;
103
94
  export declare const loadTeams: ModuleLoader;
95
+ export declare const loadTickets: ModuleLoader;
104
96
  export declare const loadCloud: ModuleLoader;
105
97
  export declare const loadMessage: ModuleLoader;
106
98
  export declare const loadSend: ModuleLoader;
107
99
  export declare const loadFeed: ModuleLoader;
108
100
  export declare const loadMailboxes: ModuleLoader;
109
101
  export declare const loadServe: ModuleLoader;
110
- export declare const loadShare: ModuleLoader;
102
+ export declare const loadArtifacts: ModuleLoader;
111
103
  export declare const loadAudit: ModuleLoader;
112
- export declare const loadWebhook: ModuleLoader;
113
- export declare const loadFunnel: ModuleLoader;
104
+ export declare const loadWebhooks: ModuleLoader;
114
105
  export declare const loadHumans: ModuleLoader;
115
106
  export declare const loadAccounts: ModuleLoader;
116
107
  export declare const loadDaemon: ModuleLoader;
108
+ export declare const loadCp: ModuleLoader;
117
109
  /**
118
110
  * Commands whose modules pull in the SQLite-backed session/cloud stack. They are
119
111
  * registered AFTER `applyGlobalHelpConventions` (mirroring main's order: help
@@ -150,6 +142,16 @@ export declare const COMMAND_LOADERS: Record<string, ModuleLoader[]>;
150
142
  * registered command tree so a new command can never drift out of it.
151
143
  */
152
144
  export declare const KNOWN_TOP_LEVEL_COMMANDS: ReadonlySet<string>;
145
+ /**
146
+ * Former top-level names that must NOT auto-correct (edit-distance 1) into a
147
+ * live command. Without this a pruned surface silently misroutes: the typed
148
+ * name is gone, the spellchecker finds a neighbour, and the CLI runs something
149
+ * the user never asked for instead of saying the command is gone.
150
+ *
151
+ * `set` moved under `agents models`/`agents config` (RUSH-2579); `share` moved
152
+ * under `agents artifacts share` (RUSH-2580).
153
+ */
154
+ export declare const RETIRED_TOP_LEVEL_COMMANDS: ReadonlySet<string>;
153
155
  /** Whether `name` is a top-level command this CLI registers. See {@link KNOWN_TOP_LEVEL_COMMANDS}. */
154
156
  export declare function isKnownTopLevelCommand(name: string): boolean;
155
157
  /**
@@ -39,21 +39,19 @@ export const loadCli = async () => (await import('../../commands/cli.js')).regis
39
39
  export const loadSubagents = async () => (await import('../../commands/subagents.js')).registerSubagentsCommands;
40
40
  export const loadPlugins = async () => (await import('../../commands/plugins.js')).registerPluginsCommands;
41
41
  export const loadWorkflows = async () => (await import('../../commands/workflows.js')).registerWorkflowsCommands;
42
- export const loadWorktree = async () => (await import('../../commands/worktree.js')).registerWorktreeCommands;
43
42
  export const loadVersions = async () => (await import('../../commands/versions.js')).registerVersionsCommands;
44
43
  export const loadUpdate = async () => (await import('../../commands/update.js')).registerUpdateCommand;
45
44
  export const loadImport = async () => (await import('../../commands/import.js')).registerImportCommand;
46
- export const loadExport = async () => (await import('../../commands/export.js')).registerExportCommand;
47
45
  export const loadPackages = async () => (await import('../../commands/packages.js')).registerPackagesCommands;
48
46
  export const loadRoutines = async () => (await import('../../commands/routines.js')).registerRoutinesCommands;
49
47
  export const loadMonitors = async () => (await import('../../commands/monitors.js')).registerMonitorsCommands;
50
48
  export const loadProjects = async () => (await import('../../commands/projects.js')).registerProjectsCommands;
51
49
  export const loadRun = async () => (await import('../../commands/exec.js')).registerRunCommand;
52
50
  export const loadResume = async () => (await import('../../commands/resume.js')).registerResumeCommand;
51
+ export const loadOpen = async () => (await import('../../commands/open.js')).registerOpenCommand;
53
52
  export const loadReconnect = async () => (await import('../../commands/reconnect.js')).registerReconnectCommand;
54
53
  export const loadFork = async () => (await import('../../commands/fork.js')).registerForkCommand;
55
- export const loadDefaults = async () => (await import('../../commands/defaults.js')).registerDefaultsCommands;
56
- export const loadSet = async () => (await import('../../commands/set.js')).registerSetCommand;
54
+ export const loadConfig = async () => (await import('../../commands/config.js')).registerConfigCommand;
57
55
  export const loadModels = async () => (await import('../../commands/models.js')).registerModelsCommand;
58
56
  export const loadModes = async () => (await import('../../commands/modes.js')).registerModesCommand;
59
57
  export const loadPrune = async () => (await import('../../commands/prune.js')).registerPruneCommand;
@@ -67,12 +65,9 @@ export const loadProfiles = async () => (await import('../../commands/profiles.j
67
65
  export const loadHarness = async () => (await import('../../commands/harness.js')).registerHarnessCommands;
68
66
  export const loadSecrets = async () => (await import('../../commands/secrets.js')).registerSecretsCommands;
69
67
  export const loadLogin = async () => (await import('../../commands/login.js')).registerLoginCommands;
70
- export const loadWallet = async () => (await import('../../commands/wallet.js')).registerWalletCommands;
71
- export const loadHelper = async () => (await import('../../commands/helper.js')).registerHelperCommand;
72
68
  export const loadMenubar = async () => (await import('../../commands/menubar.js')).registerMenubarCommands;
73
69
  export const loadBeta = async () => (await import('../../commands/beta.js')).registerBetaCommands;
74
70
  export const loadSync = async () => (await import('../../commands/sync.js')).registerSyncCommand;
75
- export const loadLock = async () => (await import('../../commands/lock.js')).registerLockCommand;
76
71
  export const loadRefreshRules = async () => (await import('../../commands/refresh-rules.js')).registerRefreshRulesCommand;
77
72
  export const loadFactory = async () => (await import('../../commands/factory.js')).registerFactoryCommands;
78
73
  export const loadUsage = async () => (await import('../../commands/usage.js')).registerUsageCommand;
@@ -91,32 +86,31 @@ export const loadTmux = async () => (await import('../../commands/tmux.js')).reg
91
86
  export const loadWatchdog = async () => (await import('../../commands/watchdog.js')).registerWatchdogCommand;
92
87
  export const loadBrowser = async () => (await import('../../commands/browser.js')).registerBrowserCommand;
93
88
  export const loadComputer = async () => (await import('../../commands/computer.js')).registerComputerCommand;
94
- export const loadHosts = async () => (await import('../../commands/hosts.js')).registerHostsCommand;
95
- export const loadLease = async () => (await import('../../commands/lease.js')).registerLeaseCommand;
96
89
  export const loadLogs = async () => (await import('../../commands/logs.js')).registerLogsCommand;
97
90
  export const loadEvents = async () => (await import('../../commands/events.js')).registerEventsCommand;
98
91
  export const loadSsh = async () => (await import('../../commands/ssh.js')).registerSshCommands;
99
- export const loadPull = async () => (await import('../../commands/pull.js')).registerPullCommand;
100
- export const loadPush = async () => (await import('../../commands/push.js')).registerPushCommand;
101
92
  export const loadRepo = async () => (await import('../../commands/repo.js')).registerRepoCommands;
102
93
  export const loadSetup = async () => (await import('../../commands/setup.js')).registerSetupCommand;
103
94
  export const loadUninstall = async () => (await import('../../commands/uninstall.js')).registerUninstallCommands;
104
95
  export const loadUpgrade = async () => (await import('../../commands/upgrade.js')).registerUpgradeCommand;
105
96
  export const loadSessions = async () => (await import('../../commands/sessions.js')).registerSessionsCommands;
106
97
  export const loadTeams = async () => (await import('../../commands/teams.js')).registerTeamsCommands;
98
+ export const loadTickets = async () => (await import('../../commands/tickets.js')).registerTicketsCommand;
107
99
  export const loadCloud = async () => (await import('../../commands/cloud.js')).registerCloudCommands;
108
100
  export const loadMessage = async () => (await import('../../commands/message.js')).registerMessageCommand;
109
101
  export const loadSend = async () => (await import('../../commands/send.js')).registerSendCommand;
110
102
  export const loadFeed = async () => (await import('../../commands/feed.js')).registerFeedCommand;
111
103
  export const loadMailboxes = async () => (await import('../../commands/mailboxes.js')).registerMailboxesCommand;
112
104
  export const loadServe = async () => (await import('../../commands/serve.js')).registerServeCommand;
113
- export const loadShare = async () => (await import('../../commands/share.js')).registerShareCommands;
105
+ // Registers the `artifacts` group (with `share` + `setup` under it) AND the
106
+ // top-level `unshare` alias — see commands/artifacts.ts.
107
+ export const loadArtifacts = async () => (await import('../../commands/artifacts.js')).registerArtifactsCommands;
114
108
  export const loadAudit = async () => (await import('../../commands/audit.js')).registerAuditCommands;
115
- export const loadWebhook = async () => (await import('../../commands/webhook.js')).registerWebhookCommand;
116
- export const loadFunnel = async () => (await import('../../commands/funnel.js')).registerFunnelCommand;
109
+ export const loadWebhooks = async () => (await import('../../commands/webhook.js')).registerWebhooksCommand;
117
110
  export const loadHumans = async () => (await import('../../commands/humans.js')).registerHumansCommands;
118
111
  export const loadAccounts = async () => (await import('../../commands/accounts.js')).registerAccountsCommand;
119
112
  export const loadDaemon = async () => (await import('../../commands/daemon.js')).registerDaemonCommand;
113
+ export const loadCp = async () => (await import('../../commands/cp.js')).registerCpCommand;
120
114
  /**
121
115
  * Commands whose modules pull in the SQLite-backed session/cloud stack. They are
122
116
  * registered AFTER `applyGlobalHelpConventions` (mirroring main's order: help
@@ -166,7 +160,6 @@ export const COMMAND_LOADERS = {
166
160
  subagents: [loadSubagents],
167
161
  plugins: [loadPlugins],
168
162
  workflows: [loadWorkflows],
169
- worktree: [loadWorktree],
170
163
  add: [loadVersions],
171
164
  use: [loadVersions],
172
165
  list: [loadVersions],
@@ -176,24 +169,18 @@ export const COMMAND_LOADERS = {
176
169
  update: [loadUpdate],
177
170
  prune: [loadVersions, loadPrune],
178
171
  import: [loadImport],
179
- export: [loadExport],
180
172
  registry: [loadPackages],
181
173
  search: [loadPackages],
182
174
  install: [loadPackages],
183
- // packages.ts also registers `publish` at top level (commands/packages.ts:435).
184
- // It was missing here, so `agents publish` only worked via the unknown-command
185
- // fallback that registers the whole tree — and the --host router could not see
186
- // it as a real command at all (RUSH-2022).
187
- publish: [loadPackages],
188
175
  routines: [loadRoutines],
189
176
  monitors: [loadMonitors],
190
177
  projects: [loadProjects],
191
178
  run: [loadRun],
192
179
  resume: [loadResume],
180
+ open: [loadOpen],
193
181
  reconnect: [loadReconnect],
194
182
  fork: [loadFork],
195
- defaults: [loadDefaults],
196
- set: [loadSet],
183
+ config: [loadConfig],
197
184
  models: [loadModels],
198
185
  modes: [loadModes],
199
186
  trash: [loadTrash],
@@ -202,20 +189,15 @@ export const COMMAND_LOADERS = {
202
189
  apply: [loadApply],
203
190
  status: [loadStatus],
204
191
  snapshot: [loadSnapshot],
205
- profile: [loadProfiles],
206
192
  profiles: [loadProfiles],
207
193
  harness: [loadHarness],
208
194
  harnesses: [loadHarness],
209
195
  secrets: [loadSecrets],
210
196
  login: [loadLogin],
211
197
  logout: [loadLogin],
212
- whoami: [loadLogin],
213
- wallet: [loadWallet],
214
- helper: [loadHelper],
215
198
  menubar: [loadMenubar],
216
199
  beta: [loadBeta],
217
200
  sync: [loadSync],
218
- lock: [loadLock],
219
201
  'refresh-rules': [loadRefreshRules],
220
202
  factory: [loadFactory],
221
203
  usage: [loadUsage],
@@ -233,8 +215,6 @@ export const COMMAND_LOADERS = {
233
215
  watchdog: [loadWatchdog],
234
216
  browser: [loadBrowser],
235
217
  computer: [loadComputer],
236
- hosts: [loadHosts],
237
- lease: [loadLease],
238
218
  logs: [loadLogs],
239
219
  events: [loadEvents],
240
220
  ssh: [loadSsh],
@@ -242,8 +222,6 @@ export const COMMAND_LOADERS = {
242
222
  // `fleet` is a commander alias of `devices` (see commands/ssh.ts); list it so
243
223
  // lazy registration loads the devices tree when the user types `agents fleet`.
244
224
  fleet: [loadSsh],
245
- pull: [loadPull],
246
- push: [loadPush],
247
225
  // `repos` is the canonical command name; `repo` remains a convenience alias
248
226
  // (see commands/repo.ts). List both so lazy registration loads the tree
249
227
  // whichever the user types.
@@ -256,6 +234,7 @@ export const COMMAND_LOADERS = {
256
234
  // Observe-umbrella alias of sessions --active (same lazy module).
257
235
  roster: [loadSessions],
258
236
  teams: [loadTeams],
237
+ tickets: [loadTickets],
259
238
  cloud: [loadCloud],
260
239
  message: [loadMessage],
261
240
  send: [loadSend],
@@ -267,15 +246,15 @@ export const COMMAND_LOADERS = {
267
246
  mailboxes: [loadMailboxes],
268
247
  mailbox: [loadMailboxes],
269
248
  serve: [loadServe],
270
- share: [loadShare],
271
- // `unshare` is a top-level convenience alias of `share delete` (see
249
+ artifacts: [loadArtifacts],
250
+ // `unshare` is a top-level convenience alias of `artifacts share delete` (see
272
251
  // commands/share.ts) — same module, registered as its own program.command().
273
- unshare: [loadShare],
252
+ unshare: [loadArtifacts],
274
253
  audit: [loadAudit],
275
- webhook: [loadWebhook],
276
- funnel: [loadFunnel],
254
+ webhooks: [loadWebhooks],
277
255
  humans: [loadHumans],
278
256
  daemon: [loadDaemon],
257
+ cp: [loadCp],
279
258
  };
280
259
  /**
281
260
  * Top-level names that {@link COMMAND_LOADERS} does not carry because they are
@@ -309,6 +288,16 @@ export const KNOWN_TOP_LEVEL_COMMANDS = new Set([
309
288
  ...Object.keys(COMMAND_LOADERS),
310
289
  ...INLINE_COMMAND_NAMES,
311
290
  ]);
291
+ /**
292
+ * Former top-level names that must NOT auto-correct (edit-distance 1) into a
293
+ * live command. Without this a pruned surface silently misroutes: the typed
294
+ * name is gone, the spellchecker finds a neighbour, and the CLI runs something
295
+ * the user never asked for instead of saying the command is gone.
296
+ *
297
+ * `set` moved under `agents models`/`agents config` (RUSH-2579); `share` moved
298
+ * under `agents artifacts share` (RUSH-2580).
299
+ */
300
+ export const RETIRED_TOP_LEVEL_COMMANDS = new Set(['webhook', 'set', 'share']);
312
301
  /** Whether `name` is a top-level command this CLI registers. See {@link KNOWN_TOP_LEVEL_COMMANDS}. */
313
302
  export function isKnownTopLevelCommand(name) {
314
303
  return KNOWN_TOP_LEVEL_COMMANDS.has(name);
@@ -19,4 +19,14 @@
19
19
  * actually be the agents-cli package (its package.json `name`), not some
20
20
  * unrelated ancestor that happens to be version-controlled.
21
21
  */
22
+ /**
23
+ * Whether a version string is the `0.0.0-dev.<sha>[-dirty]` stamp
24
+ * `scripts/install.sh` writes for a side-by-side dev install (`install.sh:61`).
25
+ *
26
+ * Split out from {@link detectDevBuild} because a caller holding only a version
27
+ * string — a fleet rollout reading `agents --version` off a remote box — cannot
28
+ * run signal 2 (it needs that machine's filesystem), and must not re-spell the
29
+ * stamp prefix.
30
+ */
31
+ export declare function isDevVersionStamp(version: string): boolean;
22
32
  export declare function detectDevBuild(argv1: string, version: string): boolean;
@@ -21,8 +21,20 @@ import * as path from 'path';
21
21
  * actually be the agents-cli package (its package.json `name`), not some
22
22
  * unrelated ancestor that happens to be version-controlled.
23
23
  */
24
+ /**
25
+ * Whether a version string is the `0.0.0-dev.<sha>[-dirty]` stamp
26
+ * `scripts/install.sh` writes for a side-by-side dev install (`install.sh:61`).
27
+ *
28
+ * Split out from {@link detectDevBuild} because a caller holding only a version
29
+ * string — a fleet rollout reading `agents --version` off a remote box — cannot
30
+ * run signal 2 (it needs that machine's filesystem), and must not re-spell the
31
+ * stamp prefix.
32
+ */
33
+ export function isDevVersionStamp(version) {
34
+ return version.startsWith('0.0.0-dev');
35
+ }
24
36
  export function detectDevBuild(argv1, version) {
25
- if (version.startsWith('0.0.0-dev'))
37
+ if (isDevVersionStamp(version))
26
38
  return true;
27
39
  try {
28
40
  const cliPath = fs.realpathSync(argv1 || '');
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Top-level command spellcheck (RUSH-2329).
3
+ *
4
+ * Candidates are plain strings from KNOWN_TOP_LEVEL_COMMANDS — never the live
5
+ * commander registry — so an unknown / typo'd invocation does not pay for
6
+ * registerAllEagerCommands (~250-330ms of dynamic import + module eval).
7
+ */
8
+ /** Calculate the Levenshtein edit distance between two strings. */
9
+ export declare function levenshtein(a: string, b: string): number;
10
+ /**
11
+ * Closest top-level command name by Levenshtein distance.
12
+ * Iterates candidates in first-seen order so ties break the same way as the
13
+ * historical registerAllEagerCommands registration order (RUSH-2329).
14
+ */
15
+ export declare function closestTopLevelCommand(unknown: string, candidates: Iterable<string>): {
16
+ closest: string | null;
17
+ minDist: number;
18
+ };
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Top-level command spellcheck (RUSH-2329).
3
+ *
4
+ * Candidates are plain strings from KNOWN_TOP_LEVEL_COMMANDS — never the live
5
+ * commander registry — so an unknown / typo'd invocation does not pay for
6
+ * registerAllEagerCommands (~250-330ms of dynamic import + module eval).
7
+ */
8
+ /** Calculate the Levenshtein edit distance between two strings. */
9
+ export function levenshtein(a, b) {
10
+ const m = a.length;
11
+ const n = b.length;
12
+ const dp = Array(m + 1)
13
+ .fill(null)
14
+ .map(() => Array(n + 1).fill(0));
15
+ for (let i = 0; i <= m; i++)
16
+ dp[i][0] = i;
17
+ for (let j = 0; j <= n; j++)
18
+ dp[0][j] = j;
19
+ for (let i = 1; i <= m; i++) {
20
+ for (let j = 1; j <= n; j++) {
21
+ dp[i][j] =
22
+ a[i - 1] === b[j - 1]
23
+ ? dp[i - 1][j - 1]
24
+ : 1 + Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);
25
+ }
26
+ }
27
+ return dp[m][n];
28
+ }
29
+ /**
30
+ * Closest top-level command name by Levenshtein distance.
31
+ * Iterates candidates in first-seen order so ties break the same way as the
32
+ * historical registerAllEagerCommands registration order (RUSH-2329).
33
+ */
34
+ export function closestTopLevelCommand(unknown, candidates) {
35
+ let closest = null;
36
+ let minDist = Infinity;
37
+ for (const cmd of candidates) {
38
+ const dist = levenshtein(unknown, cmd);
39
+ if (dist < minDist) {
40
+ minDist = dist;
41
+ closest = cmd;
42
+ }
43
+ }
44
+ return { closest, minDist };
45
+ }
@@ -29,7 +29,7 @@ export declare function getHumansFilePath(): string;
29
29
  * Header prepended to every agents.yaml the CLI writes (central and per-device
30
30
  * docs). Carries the yaml-language-server schema hint so editors validate the
31
31
  * file against `schema/agents-yaml.schema.json`. Exported so
32
- * `lib/device-config.ts` writes a sibling device's doc with the same header.
32
+ * `lib/devices/config-migration.ts` rewrites a device doc with the same header.
33
33
  */
34
34
  export declare const META_HEADER = "# agents-cli metadata\n# Auto-generated - do not edit manually\n# https://github.com/phnx-labs/agents-cli\n# yaml-language-server: $schema=https://raw.githubusercontent.com/phnx-labs/agents-cli/main/apps/cli/schema/agents-yaml.schema.json\n\n";
35
35
  /** Root of the system data directory (~/.agents/.system/). */
@@ -140,6 +140,8 @@ export declare function getPackagesDir(): string;
140
140
  export declare function getRoutinesDir(): string;
141
141
  /** Path to named project definitions (~/.agents/projects/). */
142
142
  export declare function getProjectsDir(): string;
143
+ /** Path to daemon config directory (~/.agents/daemon/). Holds service toggles. */
144
+ export declare function getDaemonConfigDir(): string;
143
145
  /**
144
146
  * Path to webhook handler YAML definitions (~/.agents/webhooks/). Handlers are
145
147
  * one-off triggers for agents/workflows/commands/routines, layered the same way
@@ -164,12 +166,12 @@ export declare function getSystemWebhooksDir(): string;
164
166
  * or null when no project `.agents/` is found by walking up from cwd.
165
167
  *
166
168
  * Project routines participate in `list`/`view` for inspection always. Daemon
167
- * firing requires an explicit opt-in via `agents routines enable-project`
168
- * (writes `meta.routines.projects`); after opt-in, `agents routines sync`
169
- * materialises them into the user layer with `source:` provenance so the
170
- * daemon (which loads user + system only) can fire them safely. A project's
171
- * own `agents.yaml` `routines.enable: true` is a documentation signal only
172
- * it does not auto-enable firing. See `lib/routines-project.ts`.
169
+ * firing requires `agents routines enable <name>`, which materialises the
170
+ * routine into the user layer with `source:` provenance (so the daemon, which
171
+ * loads user + system only, can see it) and turns on the device flag in one
172
+ * step. Enablement lives solely in `meta.deviceRoutines`; a project YAML's own
173
+ * `enabled:` field never turns firing on, so a cloned repo cannot auto-run.
174
+ * See `lib/routines-project.ts`.
173
175
  */
174
176
  export declare function getProjectRoutinesDir(cwd?: string): string | null;
175
177
  /**
@@ -182,6 +184,16 @@ export declare function getProjectWebhooksDir(cwd?: string): string | null;
182
184
  export declare function getRunsDir(): string;
183
185
  /** Path to monitor YAML definitions (~/.agents/monitors/). */
184
186
  export declare function getMonitorsDir(): string;
187
+ /**
188
+ * Path to built-in monitor definitions shipped in the system repo
189
+ * (`~/.agents/.system/monitors/`). Unioned under the user monitors dir by
190
+ * listMonitors()/readMonitor(): a monitor shipped here is available on every
191
+ * install, and a user monitor of the same name overrides it. A built-in with no
192
+ * `enabled:` field is opt-in — it stays disabled until the user enables it,
193
+ * which materializes a user copy (writes never touch this pull-only mirror). The
194
+ * directory need not exist.
195
+ */
196
+ export declare function getSystemMonitorsDir(): string;
185
197
  /** Path to the durable per-monitor state-diff store + fire history
186
198
  * (~/.agents/.history/monitors/). */
187
199
  export declare function getMonitorsHistoryDir(): string;
@@ -238,7 +250,7 @@ export declare function getTeamsRegistryPath(): string;
238
250
  export declare function getDevicesRegistryPath(): string;
239
251
  /** Path to the device ignore-list — tailscale node names the user dismissed, so auto-discovery never re-suggests them. Per-machine, same dir as the registry. */
240
252
  export declare function getDevicesIgnoredPath(): string;
241
- /** Path to the device auto-launch preference file — which registered devices are eligible/preferred for Factory's auto-host selection. Per-machine, same dir as the registry. */
253
+ /** Path to the LEGACY device auto-launch preference file — which registered devices are eligible/preferred for the ext's auto-host selection. Superseded by the central `fleet.devices.<name>.config` block; only lib/devices/config-migration.ts still reads it (to fold + remove it). */
242
254
  export declare function getDevicesAutoLaunchPath(): string;
243
255
  /** Dir of "pending device" sentinels (~/.agents/.cache/state/devices-pending/) — one empty-ish file per newly-discovered, not-yet-approved tailnet node. Written by the daemon probe, read by the menu-bar helper (mirrors the attention sentinel dir). */
244
256
  export declare function getDevicesPendingDir(): string;
@@ -266,7 +278,22 @@ export declare function getPerfDir(): string;
266
278
  export declare function getPerfDbPath(): string;
267
279
  /** Path to the hook-shim NDJSON spool drained into perf.db on open. */
268
280
  export declare function getPerfSpoolPath(): string;
269
- /** Path to per-process runtime state (~/.agents/.cache/state/). */
281
+ /**
282
+ * Path to per-process runtime state (~/.agents/.cache/state/).
283
+ *
284
+ * `AGENTS_STATE_DIR` redirects it in tests — the same test-isolation escape
285
+ * hatch as `AGENTS_DEVICES_DIR` / `AGENTS_LOGS_DIR`, and resolved at call time
286
+ * for the same reason (a suite pins it after this module is imported).
287
+ *
288
+ * Without it the suite writes into the operator's LIVE state. Concretely: the
289
+ * device registry and ignore-list already redirect via `AGENTS_DEVICES_DIR`, so
290
+ * under test both read empty — and any code path reaching
291
+ * `reconcilePendingSentinels` then computed "every tailnet node is new" and
292
+ * wrote those sentinels into the real `devices-pending/`, which is exactly what
293
+ * the menu bar renders. Running the suite on a dev machine surfaced all 20
294
+ * tailnet nodes as NEW DEVICES, including registered and explicitly ignored
295
+ * ones, and looked like the operator's ignore list had been lost.
296
+ */
270
297
  export declare function getRuntimeStateDir(): string;
271
298
  /** Path to companion-extension scratch (~/.agents/.cache/companion/). */
272
299
  export declare function getCompanionDir(): string;