@phnx-labs/agents-cli 1.22.35 → 1.22.37

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 (487) hide show
  1. package/CHANGELOG.md +666 -2
  2. package/README.md +75 -35
  3. package/dist/bin/agents +0 -0
  4. package/dist/bootstrap.d.ts +15 -0
  5. package/dist/bootstrap.js +1211 -0
  6. package/dist/commands/accounts.d.ts +4 -11
  7. package/dist/commands/accounts.js +159 -27
  8. package/dist/commands/attach.js +17 -4
  9. package/dist/commands/audit.d.ts +8 -8
  10. package/dist/commands/audit.js +57 -47
  11. package/dist/commands/browser.js +15 -11
  12. package/dist/commands/cloud.js +1 -1
  13. package/dist/commands/commands.js +0 -11
  14. package/dist/commands/computer-actions.js +33 -0
  15. package/dist/commands/computer-sessions-picker.d.ts +21 -0
  16. package/dist/commands/computer-sessions-picker.js +141 -0
  17. package/dist/commands/computer.d.ts +16 -0
  18. package/dist/commands/computer.js +37 -0
  19. package/dist/commands/config.d.ts +17 -0
  20. package/dist/commands/config.js +401 -0
  21. package/dist/commands/cp.d.ts +84 -0
  22. package/dist/commands/cp.js +231 -0
  23. package/dist/commands/daemon.js +243 -14
  24. package/dist/commands/detach-core.d.ts +1 -1
  25. package/dist/commands/detach-core.js +12 -2
  26. package/dist/commands/detach.js +1 -1
  27. package/dist/commands/doctor.js +64 -5
  28. package/dist/commands/events.d.ts +24 -12
  29. package/dist/commands/events.js +144 -28
  30. package/dist/commands/exec.js +85 -41
  31. package/dist/commands/feed.d.ts +1 -1
  32. package/dist/commands/feed.js +16 -8
  33. package/dist/commands/focus.d.ts +33 -1
  34. package/dist/commands/focus.js +177 -17
  35. package/dist/commands/funnel.d.ts +1 -1
  36. package/dist/commands/go.js +9 -8
  37. package/dist/commands/harness-wizard.d.ts +1 -0
  38. package/dist/commands/harness-wizard.js +18 -20
  39. package/dist/commands/harness.d.ts +2 -0
  40. package/dist/commands/harness.js +59 -26
  41. package/dist/commands/hooks.js +0 -11
  42. package/dist/commands/inspect.d.ts +94 -1
  43. package/dist/commands/inspect.js +866 -40
  44. package/dist/commands/lease.d.ts +4 -4
  45. package/dist/commands/lease.js +6 -6
  46. package/dist/commands/login.js +0 -13
  47. package/dist/commands/logs.d.ts +2 -2
  48. package/dist/commands/logs.js +2 -2
  49. package/dist/commands/mcp.js +7 -2
  50. package/dist/commands/memory.js +7 -2
  51. package/dist/commands/message.d.ts +1 -1
  52. package/dist/commands/message.js +37 -6
  53. package/dist/commands/models.js +4 -0
  54. package/dist/commands/monitors.d.ts +0 -1
  55. package/dist/commands/monitors.js +199 -16
  56. package/dist/commands/open.d.ts +18 -0
  57. package/dist/commands/open.js +57 -0
  58. package/dist/commands/packages.js +2 -107
  59. package/dist/commands/plugins.js +6 -3
  60. package/dist/commands/profiles.d.ts +1 -0
  61. package/dist/commands/profiles.js +16 -160
  62. package/dist/commands/projects.d.ts +28 -0
  63. package/dist/commands/projects.js +125 -5
  64. package/dist/commands/reconnect.js +9 -3
  65. package/dist/commands/repo.js +42 -1
  66. package/dist/commands/resource-view.d.ts +17 -0
  67. package/dist/commands/resource-view.js +36 -14
  68. package/dist/commands/resume.js +9 -2
  69. package/dist/commands/routines.d.ts +0 -2
  70. package/dist/commands/routines.js +473 -289
  71. package/dist/commands/secrets.js +52 -9
  72. package/dist/commands/sessions-export.d.ts +47 -0
  73. package/dist/commands/sessions-export.js +116 -6
  74. package/dist/commands/sessions-import.d.ts +17 -0
  75. package/dist/commands/sessions-import.js +114 -6
  76. package/dist/commands/sessions-migrate.d.ts +27 -0
  77. package/dist/commands/sessions-migrate.js +50 -9
  78. package/dist/commands/sessions-picker.js +23 -4
  79. package/dist/commands/sessions-resume.d.ts +5 -3
  80. package/dist/commands/sessions-resume.js +30 -8
  81. package/dist/commands/sessions-watch.d.ts +2 -0
  82. package/dist/commands/sessions-watch.js +53 -0
  83. package/dist/commands/sessions.d.ts +66 -3
  84. package/dist/commands/sessions.js +298 -47
  85. package/dist/commands/set.d.ts +1 -1
  86. package/dist/commands/set.js +2 -2
  87. package/dist/commands/setup-browser.js +2 -2
  88. package/dist/commands/setup-mine.js +0 -1
  89. package/dist/commands/setup-preferences.js +1 -1
  90. package/dist/commands/setup-share.js +34 -4
  91. package/dist/commands/setup.d.ts +5 -0
  92. package/dist/commands/setup.js +26 -0
  93. package/dist/commands/share.d.ts +67 -0
  94. package/dist/commands/share.js +275 -12
  95. package/dist/commands/skills.js +0 -11
  96. package/dist/commands/snapshot.js +1 -1
  97. package/dist/commands/ssh.d.ts +18 -0
  98. package/dist/commands/ssh.js +549 -210
  99. package/dist/commands/sync.d.ts +5 -0
  100. package/dist/commands/sync.js +212 -32
  101. package/dist/commands/teams.d.ts +13 -0
  102. package/dist/commands/teams.js +187 -30
  103. package/dist/commands/tickets.d.ts +2 -0
  104. package/dist/commands/tickets.js +43 -0
  105. package/dist/commands/update.js +2 -4
  106. package/dist/commands/usage.js +5 -3
  107. package/dist/commands/versions.js +11 -5
  108. package/dist/commands/view.js +15 -7
  109. package/dist/commands/webhook.d.ts +2 -2
  110. package/dist/commands/webhook.js +7 -7
  111. package/dist/index.d.ts +18 -2
  112. package/dist/index.js +53 -1264
  113. package/dist/lib/account-catalog.d.ts +18 -0
  114. package/dist/lib/account-catalog.js +38 -0
  115. package/dist/lib/account-provider-registry.d.ts +18 -0
  116. package/dist/lib/account-provider-registry.js +59 -0
  117. package/dist/lib/account-registry.d.ts +40 -0
  118. package/dist/lib/account-registry.js +239 -0
  119. package/dist/lib/account-schema.d.ts +44 -0
  120. package/dist/lib/account-schema.js +91 -0
  121. package/dist/lib/account-state-service.d.ts +21 -0
  122. package/dist/lib/account-state-service.js +60 -0
  123. package/dist/lib/activity.d.ts +1 -1
  124. package/dist/lib/activity.js +8 -1
  125. package/dist/lib/add-dir.d.ts +80 -0
  126. package/dist/lib/add-dir.js +241 -0
  127. package/dist/lib/agent-cli-commands.d.ts +11 -0
  128. package/dist/lib/agent-cli-commands.js +30 -0
  129. package/dist/lib/agents.js +44 -36
  130. package/dist/lib/answer-router.js +1 -1
  131. package/dist/lib/audit/log.d.ts +10 -27
  132. package/dist/lib/audit/log.js +20 -33
  133. package/dist/lib/auth-health.d.ts +9 -2
  134. package/dist/lib/auth-health.js +42 -9
  135. package/dist/lib/auto-pull-worker.js +7 -3
  136. package/dist/lib/auto-pull.d.ts +44 -3
  137. package/dist/lib/auto-pull.js +88 -5
  138. package/dist/lib/binary-shadow.d.ts +28 -0
  139. package/dist/lib/binary-shadow.js +121 -0
  140. package/dist/lib/brand.js +9 -3
  141. package/dist/lib/browser/ipc.d.ts +30 -0
  142. package/dist/lib/browser/ipc.js +81 -4
  143. package/dist/lib/browser/profiles.d.ts +3 -2
  144. package/dist/lib/browser/profiles.js +65 -22
  145. package/dist/lib/browser/service.d.ts +4 -0
  146. package/dist/lib/browser/service.js +30 -3
  147. package/dist/lib/browser/sessions-list.d.ts +22 -2
  148. package/dist/lib/browser/sessions-list.js +54 -6
  149. package/dist/lib/browser/stream.d.ts +2 -0
  150. package/dist/lib/browser/stream.js +1 -0
  151. package/dist/lib/browser/types.d.ts +19 -0
  152. package/dist/lib/byok-usage.d.ts +9 -2
  153. package/dist/lib/byok-usage.js +133 -31
  154. package/dist/lib/cli-entry.d.ts +11 -0
  155. package/dist/lib/cli-entry.js +46 -0
  156. package/dist/lib/cloud/host.d.ts +1 -1
  157. package/dist/lib/cloud/host.js +2 -2
  158. package/dist/lib/cloud/registry.js +1 -1
  159. package/dist/lib/cloud/types.d.ts +1 -1
  160. package/dist/lib/commands.d.ts +2 -0
  161. package/dist/lib/commands.js +2 -0
  162. package/dist/lib/computer/sessions-list.d.ts +150 -0
  163. package/dist/lib/computer/sessions-list.js +363 -0
  164. package/dist/lib/config-keys.d.ts +86 -0
  165. package/dist/lib/config-keys.js +193 -0
  166. package/dist/lib/config-machine-keys.d.ts +12 -0
  167. package/dist/lib/config-machine-keys.js +17 -0
  168. package/dist/lib/config-transfer.js +3 -4
  169. package/dist/lib/crabbox/cli.d.ts +2 -2
  170. package/dist/lib/crabbox/cli.js +3 -3
  171. package/dist/lib/daemon-health.d.ts +22 -0
  172. package/dist/lib/daemon-health.js +33 -3
  173. package/dist/lib/daemon-services.d.ts +50 -0
  174. package/dist/lib/daemon-services.js +147 -0
  175. package/dist/lib/daemon-ticks.d.ts +35 -66
  176. package/dist/lib/daemon-ticks.js +77 -159
  177. package/dist/lib/daemon.d.ts +72 -4
  178. package/dist/lib/daemon.js +792 -202
  179. package/dist/lib/deeplink/register.d.ts +49 -0
  180. package/dist/lib/deeplink/register.js +253 -0
  181. package/dist/lib/deeplink/url.d.ts +34 -0
  182. package/dist/lib/deeplink/url.js +78 -0
  183. package/dist/lib/device-config.d.ts +124 -29
  184. package/dist/lib/device-config.js +346 -141
  185. package/dist/lib/devices/config-migration.d.ts +42 -0
  186. package/dist/lib/devices/config-migration.js +203 -0
  187. package/dist/lib/devices/connect.js +14 -7
  188. package/dist/lib/devices/doctor-findings.d.ts +4 -1
  189. package/dist/lib/devices/doctor-findings.js +20 -1
  190. package/dist/lib/devices/harness-inventory.d.ts +11 -2
  191. package/dist/lib/devices/harness-inventory.js +0 -0
  192. package/dist/lib/devices/health.d.ts +1 -1
  193. package/dist/lib/devices/health.js +1 -1
  194. package/dist/lib/devices/pending.d.ts +22 -1
  195. package/dist/lib/devices/pending.js +67 -2
  196. package/dist/lib/devices/registry.d.ts +0 -25
  197. package/dist/lib/devices/registry.js +2 -83
  198. package/dist/lib/devices/resolve-profile.d.ts +20 -0
  199. package/dist/lib/devices/resolve-profile.js +44 -0
  200. package/dist/lib/devices/rollout-verify.d.ts +101 -0
  201. package/dist/lib/devices/rollout-verify.js +193 -0
  202. package/dist/lib/devices/ssh-config.js +10 -6
  203. package/dist/lib/event-families.d.ts +28 -0
  204. package/dist/lib/event-families.js +159 -0
  205. package/dist/lib/event-stream.d.ts +9 -1
  206. package/dist/lib/event-stream.js +26 -9
  207. package/dist/lib/events.d.ts +9 -1
  208. package/dist/lib/events.js +21 -6
  209. package/dist/lib/exec.d.ts +30 -0
  210. package/dist/lib/exec.js +219 -121
  211. package/dist/lib/feed-broadcast.d.ts +25 -0
  212. package/dist/lib/feed-broadcast.js +33 -0
  213. package/dist/lib/feed.d.ts +1 -1
  214. package/dist/lib/feed.js +12 -2
  215. package/dist/lib/fleet/capture.js +15 -0
  216. package/dist/lib/fleet/manifest.js +9 -0
  217. package/dist/lib/fleet/types.d.ts +9 -0
  218. package/dist/lib/fleet-status.js +10 -8
  219. package/dist/lib/git.d.ts +20 -6
  220. package/dist/lib/git.js +121 -17
  221. package/dist/lib/hosts/dispatch.d.ts +8 -3
  222. package/dist/lib/hosts/dispatch.js +29 -3
  223. package/dist/lib/hosts/logs.d.ts +2 -2
  224. package/dist/lib/hosts/logs.js +2 -2
  225. package/dist/lib/hosts/option.js +1 -1
  226. package/dist/lib/hosts/passthrough.d.ts +2 -3
  227. package/dist/lib/hosts/passthrough.js +10 -24
  228. package/dist/lib/hosts/progress.js +2 -2
  229. package/dist/lib/hosts/providers/devices.d.ts +3 -3
  230. package/dist/lib/hosts/providers/devices.js +18 -12
  231. package/dist/lib/hosts/ready.d.ts +5 -1
  232. package/dist/lib/hosts/ready.js +9 -3
  233. package/dist/lib/hosts/reconcile.d.ts +2 -2
  234. package/dist/lib/hosts/reconcile.js +2 -2
  235. package/dist/lib/hosts/registry.js +14 -9
  236. package/dist/lib/hosts/remote-cmd.js +1 -1
  237. package/dist/lib/hosts/remote-os.d.ts +9 -6
  238. package/dist/lib/hosts/remote-os.js +13 -6
  239. package/dist/lib/hosts/routing-flag.d.ts +23 -0
  240. package/dist/lib/hosts/routing-flag.js +41 -0
  241. package/dist/lib/hosts/run-target.js +1 -1
  242. package/dist/lib/hosts/session-index.js +1 -1
  243. package/dist/lib/hosts/tasks.d.ts +6 -6
  244. package/dist/lib/hosts/tasks.js +4 -4
  245. package/dist/lib/hosts/types.js +1 -2
  246. package/dist/lib/installations/resolve.js +2 -8
  247. package/dist/lib/isolation-boundary-report.js +0 -1
  248. package/dist/lib/linear-cache.d.ts +7 -0
  249. package/dist/lib/linear-cache.js +31 -4
  250. package/dist/lib/linear-project-counts.d.ts +1 -1
  251. package/dist/lib/linear-project-counts.js +2 -3
  252. package/dist/lib/linear-projects.js +1 -1
  253. package/dist/lib/loop.d.ts +2 -2
  254. package/dist/lib/loop.js +1 -1
  255. package/dist/lib/mailbox-target.d.ts +1 -1
  256. package/dist/lib/mailbox-target.js +1 -1
  257. package/dist/lib/manifest.js +7 -4
  258. package/dist/lib/menubar/MenubarHelper.app/Contents/CodeResources +0 -0
  259. package/dist/lib/menubar/MenubarHelper.app/Contents/MacOS/MenubarHelper +0 -0
  260. package/dist/lib/menubar/snapshot.d.ts +3 -2
  261. package/dist/lib/menubar/snapshot.js +6 -2
  262. package/dist/lib/migrate-fold.d.ts +33 -0
  263. package/dist/lib/migrate-fold.js +130 -0
  264. package/dist/lib/migrate.d.ts +34 -34
  265. package/dist/lib/migrate.js +106 -128
  266. package/dist/lib/model-tier-overrides.d.ts +1 -1
  267. package/dist/lib/model-tier-overrides.js +15 -2
  268. package/dist/lib/monitors/config.d.ts +17 -3
  269. package/dist/lib/monitors/config.js +52 -18
  270. package/dist/lib/monitors/engine.d.ts +32 -1
  271. package/dist/lib/monitors/engine.js +94 -11
  272. package/dist/lib/monitors/fingerprint.d.ts +46 -0
  273. package/dist/lib/monitors/fingerprint.js +100 -0
  274. package/dist/lib/monitors/remote.d.ts +47 -0
  275. package/dist/lib/monitors/remote.js +81 -0
  276. package/dist/lib/monitors/state.d.ts +39 -0
  277. package/dist/lib/monitors/state.js +56 -0
  278. package/dist/lib/onepassword.d.ts +17 -0
  279. package/dist/lib/onepassword.js +52 -22
  280. package/dist/lib/open-url.js +1 -1
  281. package/dist/lib/picker.d.ts +14 -2
  282. package/dist/lib/picker.js +35 -13
  283. package/dist/lib/placement.d.ts +1 -1
  284. package/dist/lib/placement.js +1 -1
  285. package/dist/lib/pr-land-detach.d.ts +32 -0
  286. package/dist/lib/pr-land-detach.js +79 -0
  287. package/dist/lib/profiles-presets.js +13 -0
  288. package/dist/lib/profiles.d.ts +2 -0
  289. package/dist/lib/profiles.js +44 -1
  290. package/dist/lib/project-focus.d.ts +1 -1
  291. package/dist/lib/project-focus.js +1 -1
  292. package/dist/lib/project-probe.d.ts +4 -1
  293. package/dist/lib/project-probe.js +5 -4
  294. package/dist/lib/project-resources.js +2 -18
  295. package/dist/lib/project-root.d.ts +16 -0
  296. package/dist/lib/project-root.js +20 -2
  297. package/dist/lib/projects.d.ts +20 -1
  298. package/dist/lib/projects.js +78 -1
  299. package/dist/lib/refresh-coordinator.d.ts +24 -0
  300. package/dist/lib/refresh-coordinator.js +52 -0
  301. package/dist/lib/registry.d.ts +2 -2
  302. package/dist/lib/registry.js +1 -1
  303. package/dist/lib/resource-aliases.d.ts +13 -0
  304. package/dist/lib/resource-aliases.js +26 -0
  305. package/dist/lib/resources/types.d.ts +1 -1
  306. package/dist/lib/resources.d.ts +16 -0
  307. package/dist/lib/resources.js +66 -10
  308. package/dist/lib/rotate.d.ts +3 -4
  309. package/dist/lib/rotate.js +4 -5
  310. package/dist/lib/routine-activation.d.ts +22 -2
  311. package/dist/lib/routine-activation.js +63 -16
  312. package/dist/lib/routine-context.d.ts +9 -2
  313. package/dist/lib/routine-context.js +21 -6
  314. package/dist/lib/routines-project.d.ts +58 -48
  315. package/dist/lib/routines-project.js +190 -159
  316. package/dist/lib/routines.d.ts +41 -6
  317. package/dist/lib/routines.js +92 -34
  318. package/dist/lib/run-defaults.d.ts +5 -0
  319. package/dist/lib/run-defaults.js +11 -1
  320. package/dist/lib/runner.d.ts +10 -8
  321. package/dist/lib/runner.js +122 -39
  322. package/dist/lib/secrets/Agents CLI.app/Contents/CodeResources +0 -0
  323. package/dist/lib/secrets/Agents CLI.app/Contents/MacOS/Agents CLI +0 -0
  324. package/dist/lib/secrets/agent.d.ts +10 -3
  325. package/dist/lib/secrets/agent.js +43 -8
  326. package/dist/lib/secrets/bundles.d.ts +1 -0
  327. package/dist/lib/secrets/bundles.js +92 -80
  328. package/dist/lib/secrets/index.js +32 -9
  329. package/dist/lib/secrets/install-helper.d.ts +4 -4
  330. package/dist/lib/secrets/install-helper.js +4 -4
  331. package/dist/lib/secrets/push.d.ts +40 -6
  332. package/dist/lib/secrets/push.js +58 -11
  333. package/dist/lib/secrets/read-backoff.d.ts +1 -1
  334. package/dist/lib/secrets/read-backoff.js +1 -1
  335. package/dist/lib/secrets/remote.d.ts +24 -0
  336. package/dist/lib/secrets/remote.js +54 -4
  337. package/dist/lib/self-update.d.ts +108 -0
  338. package/dist/lib/self-update.js +276 -1
  339. package/dist/lib/session/active.d.ts +89 -5
  340. package/dist/lib/session/active.js +165 -10
  341. package/dist/lib/session/actor-sidecar.d.ts +1 -1
  342. package/dist/lib/session/actor-sidecar.js +2 -1
  343. package/dist/lib/session/db.d.ts +176 -2
  344. package/dist/lib/session/db.js +484 -17
  345. package/dist/lib/session/discover.js +27 -4
  346. package/dist/lib/session/hook-sessions.js +2 -2
  347. package/dist/lib/session/host-link.d.ts +2 -2
  348. package/dist/lib/session/host-link.js +2 -2
  349. package/dist/lib/session/pid-registry.d.ts +21 -0
  350. package/dist/lib/session/pid-registry.js +57 -0
  351. package/dist/lib/session/remote-active.js +15 -1
  352. package/dist/lib/session/remote.js +2 -2
  353. package/dist/lib/session/session-cache.d.ts +14 -7
  354. package/dist/lib/session/session-cache.js +51 -9
  355. package/dist/lib/session/state.d.ts +2 -2
  356. package/dist/lib/session/state.js +1 -1
  357. package/dist/lib/session/sync/config.d.ts +10 -10
  358. package/dist/lib/session/sync/config.js +10 -10
  359. package/dist/lib/session/sync/r2.d.ts +34 -0
  360. package/dist/lib/session/sync/r2.js +123 -0
  361. package/dist/lib/session/throughput.d.ts +1 -1
  362. package/dist/lib/session/throughput.js +1 -1
  363. package/dist/lib/session/types.d.ts +23 -1
  364. package/dist/lib/session/types.js +15 -0
  365. package/dist/lib/session/viewing-in.d.ts +1 -1
  366. package/dist/lib/session/viewing-in.js +1 -1
  367. package/dist/lib/session/watch.d.ts +101 -0
  368. package/dist/lib/session/watch.js +242 -0
  369. package/dist/lib/share/config.d.ts +4 -0
  370. package/dist/lib/share/config.js +1 -0
  371. package/dist/lib/share/provision.d.ts +38 -0
  372. package/dist/lib/share/provision.js +50 -0
  373. package/dist/lib/share/publish.d.ts +40 -1
  374. package/dist/lib/share/publish.js +116 -3
  375. package/dist/lib/share/worker-template.js +71 -6
  376. package/dist/lib/shims.d.ts +17 -3
  377. package/dist/lib/shims.js +98 -26
  378. package/dist/lib/signin-badge.js +3 -2
  379. package/dist/lib/skills.js +2 -0
  380. package/dist/lib/smart-launch.d.ts +8 -8
  381. package/dist/lib/smart-launch.js +80 -59
  382. package/dist/lib/ssh-exec.d.ts +1 -1
  383. package/dist/lib/ssh-exec.js +1 -1
  384. package/dist/lib/staleness/prune.d.ts +88 -0
  385. package/dist/lib/staleness/prune.js +69 -0
  386. package/dist/lib/staleness/registry.d.ts +1 -1
  387. package/dist/lib/staleness/writers/commands.js +34 -2
  388. package/dist/lib/staleness/writers/hooks.js +16 -0
  389. package/dist/lib/staleness/writers/kinds.d.ts +6 -0
  390. package/dist/lib/staleness/writers/skills.js +19 -0
  391. package/dist/lib/staleness/writers/subagents.d.ts +2 -3
  392. package/dist/lib/staleness/writers/subagents.js +0 -4
  393. package/dist/lib/staleness/writers/types.d.ts +32 -0
  394. package/dist/lib/startup/command-registry.d.ts +6 -12
  395. package/dist/lib/startup/command-registry.js +11 -31
  396. package/dist/lib/startup/dev-build.d.ts +10 -0
  397. package/dist/lib/startup/dev-build.js +13 -1
  398. package/dist/lib/startup/spellcheck.d.ts +18 -0
  399. package/dist/lib/startup/spellcheck.js +45 -0
  400. package/dist/lib/state.d.ts +36 -9
  401. package/dist/lib/state.js +96 -46
  402. package/dist/lib/subagents-registry.d.ts +0 -7
  403. package/dist/lib/subagents-registry.js +38 -65
  404. package/dist/lib/subagents.d.ts +0 -33
  405. package/dist/lib/subagents.js +0 -75
  406. package/dist/lib/sync-umbrella.js +1 -1
  407. package/dist/lib/teams/agents.d.ts +41 -1
  408. package/dist/lib/teams/agents.js +187 -9
  409. package/dist/lib/teams/api.d.ts +11 -1
  410. package/dist/lib/teams/api.js +11 -2
  411. package/dist/lib/teams/delivery.d.ts +41 -0
  412. package/dist/lib/teams/delivery.js +60 -0
  413. package/dist/lib/teams/registry.d.ts +14 -0
  414. package/dist/lib/teams/registry.js +51 -1
  415. package/dist/lib/teams/remoteWorktree.d.ts +19 -0
  416. package/dist/lib/teams/remoteWorktree.js +29 -0
  417. package/dist/lib/teams/scheduler.d.ts +1 -1
  418. package/dist/lib/teams/scheduler.js +1 -1
  419. package/dist/lib/teams/worktree.d.ts +24 -0
  420. package/dist/lib/teams/worktree.js +42 -0
  421. package/dist/lib/terminal/backends/vscodium-agent.d.ts +10 -1
  422. package/dist/lib/terminal/backends/vscodium-agent.js +16 -5
  423. package/dist/lib/terminal/engine.d.ts +4 -0
  424. package/dist/lib/terminal/engine.js +8 -2
  425. package/dist/lib/terminal/types.d.ts +21 -2
  426. package/dist/lib/testdata/refresh-coordinator-worker.d.ts +1 -0
  427. package/dist/lib/testdata/refresh-coordinator-worker.js +23 -0
  428. package/dist/lib/tickets/list.d.ts +53 -0
  429. package/dist/lib/tickets/list.js +153 -0
  430. package/dist/lib/tmux/orphan-reap.d.ts +320 -0
  431. package/dist/lib/tmux/orphan-reap.js +644 -0
  432. package/dist/lib/tmux/session.d.ts +68 -3
  433. package/dist/lib/tmux/session.js +95 -5
  434. package/dist/lib/triggers/handlers.d.ts +20 -0
  435. package/dist/lib/triggers/handlers.js +6 -1
  436. package/dist/lib/types.d.ts +46 -34
  437. package/dist/lib/usage-fleet.d.ts +32 -0
  438. package/dist/lib/usage-fleet.js +125 -0
  439. package/dist/lib/usage-refresh.d.ts +3 -3
  440. package/dist/lib/usage-refresh.js +19 -16
  441. package/dist/lib/usage.d.ts +51 -47
  442. package/dist/lib/usage.js +145 -153
  443. package/dist/lib/version-duplicates.js +2 -2
  444. package/dist/lib/versions.d.ts +56 -13
  445. package/dist/lib/versions.js +195 -45
  446. package/dist/lib/watchdog/log.d.ts +1 -1
  447. package/dist/lib/watchdog/log.js +3 -3
  448. package/dist/lib/watchdog/rotate.d.ts +6 -6
  449. package/dist/lib/watchdog/rotate.js +6 -6
  450. package/dist/lib/workflows.d.ts +1 -1
  451. package/dist/lib/yaml-io.d.ts +47 -0
  452. package/dist/lib/yaml-io.js +55 -0
  453. package/package.json +2 -1
  454. package/scripts/install-helper.js +2 -2
  455. package/scripts/postinstall.js +23 -20
  456. package/dist/commands/defaults.d.ts +0 -7
  457. package/dist/commands/defaults.js +0 -107
  458. package/dist/commands/export.d.ts +0 -11
  459. package/dist/commands/export.js +0 -215
  460. package/dist/commands/helper.d.ts +0 -12
  461. package/dist/commands/helper.js +0 -87
  462. package/dist/commands/hosts.d.ts +0 -11
  463. package/dist/commands/hosts.js +0 -330
  464. package/dist/commands/lock.d.ts +0 -12
  465. package/dist/commands/lock.js +0 -70
  466. package/dist/commands/pull.d.ts +0 -17
  467. package/dist/commands/pull.js +0 -39
  468. package/dist/commands/push.d.ts +0 -14
  469. package/dist/commands/push.js +0 -30
  470. package/dist/commands/wallet.d.ts +0 -20
  471. package/dist/commands/wallet.js +0 -216
  472. package/dist/commands/worktree.d.ts +0 -19
  473. package/dist/commands/worktree.js +0 -272
  474. package/dist/lib/account-labels.d.ts +0 -24
  475. package/dist/lib/account-labels.js +0 -72
  476. package/dist/lib/auto-dispatch-linear.d.ts +0 -18
  477. package/dist/lib/auto-dispatch-linear.js +0 -107
  478. package/dist/lib/auto-dispatch-provider.d.ts +0 -10
  479. package/dist/lib/auto-dispatch-provider.js +0 -30
  480. package/dist/lib/auto-dispatch.d.ts +0 -93
  481. package/dist/lib/auto-dispatch.js +0 -128
  482. package/dist/lib/export.d.ts +0 -72
  483. package/dist/lib/export.js +0 -269
  484. package/dist/lib/lock.d.ts +0 -93
  485. package/dist/lib/lock.js +0 -207
  486. package/dist/lib/wallet/index.d.ts +0 -78
  487. package/dist/lib/wallet/index.js +0 -253
@@ -27,15 +27,8 @@ export interface SubagentTarget {
27
27
  names(dir: string): string[];
28
28
  /** On-disk paths subagent `name` occupies (for removal / soft-delete). */
29
29
  occupied(dir: string, name: string): OccupiedEntry[];
30
- /** Cross-item files this target owns outside any one subagent's occupied paths. */
31
- finalizeOccupied?(dir: string): OccupiedEntry[];
32
30
  /** Rich metadata for `name`; `null` skips it from the listing. */
33
31
  read(dir: string, name: string): SubagentMeta | null;
34
- /** Optional post-sync pass over the just-synced subagents (Kimi's parent index). */
35
- finalize?(dir: string, synced: Array<{
36
- name: string;
37
- path: string;
38
- }>): void;
39
32
  }
40
33
  /**
41
34
  * Copy every file in `src` into `dest` (created if missing), applying
@@ -14,16 +14,16 @@
14
14
  * every current agent, so most entries are a single call:
15
15
  *
16
16
  * - `flatFile` one `<name><ext>` file, body from a `transform` fn.
17
- * (claude, grok, droid, codex, opencode, copilot,
18
- * cursor, kiro, goose)
17
+ * (claude, grok, pi, droid, codex, opencode, copilot,
18
+ * cursor, kiro, goose, kimi)
19
19
  * - `dirFile` a `<name>/` directory holding one generated `<file>`.
20
20
  * (antigravity: `<name>/agent.md`)
21
21
  * - `dirCopy` copy the whole source directory to `<name>/`, applying
22
22
  * renames, detected by a `marker` file. (openclaw)
23
23
  *
24
- * Genuinely-bespoke agents keep an explicit handler in the same table -- Kimi
25
- * writes two files per subagent plus a managed parent index, so it is a hand
26
- * -written `SubagentTarget` rather than a builder call.
24
+ * Every agent now uses a builder; there are no bespoke handlers left. Legacy
25
+ * on-disk layouts are folded once by `lib/migrate.ts`, never by a target --
26
+ * a target describes the CURRENT shape and nothing else.
27
27
  *
28
28
  * The per-agent `transform`/metadata parsers are the escape hatch: they live in
29
29
  * `subagents.ts` and are referenced by the table, so the generic engine has zero
@@ -31,11 +31,12 @@
31
31
  */
32
32
  import * as fs from 'fs';
33
33
  import * as path from 'path';
34
+ import * as TOML from 'smol-toml';
34
35
  import * as yaml from 'yaml';
35
36
  import { safeJoin } from './paths.js';
36
- import { parseSubagentFrontmatter, transformSubagentForClaude, transformSubagentForCodex, transformSubagentForCopilot, transformSubagentForCursor, transformSubagentForDroid, transformSubagentForGoose, transformSubagentForKiro, transformSubagentForOpenCode, transformSubagentForAntigravity, writeKimiSubagentFiles, buildKimiSubagentsParentYaml, KIMI_SUBAGENTS_PARENT_FILE, } from './subagents.js';
37
+ import { parseSubagentFrontmatter, transformSubagentForClaude, transformSubagentForCodex, transformSubagentForCopilot, transformSubagentForCursor, transformSubagentForDroid, transformSubagentForGoose, transformSubagentForKiro, transformSubagentForOpenCode, transformSubagentForAntigravity, } from './subagents.js';
37
38
  // ── metadata readers (the per-format escape hatch) ───────────────────────────
38
- /** Frontmatter, skipping files that lack a valid block (claude/grok/droid/codex). */
39
+ /** Frontmatter, skipping files that lack a valid block (claude/grok/droid). */
39
40
  function metaFrontmatterSkip(filePath) {
40
41
  return parseSubagentFrontmatter(filePath);
41
42
  }
@@ -63,6 +64,24 @@ function metaGooseYaml(filePath, name) {
63
64
  return null;
64
65
  }
65
66
  }
67
+ /**
68
+ * Codex custom-agent TOML: name / description / model (optional).
69
+ * Codex writes no YAML frontmatter — without this reader, `flatFile.read`
70
+ * drops every installed `.toml` and `agents subagents list` reports codex
71
+ * targets as `missing` even when the files are present and Codex loads them.
72
+ */
73
+ function metaToml(filePath, name) {
74
+ try {
75
+ const cfg = TOML.parse(fs.readFileSync(filePath, 'utf-8'));
76
+ const tomlName = typeof cfg.name === 'string' ? cfg.name : '';
77
+ const description = typeof cfg.description === 'string' ? cfg.description : '';
78
+ const model = typeof cfg.model === 'string' ? cfg.model : undefined;
79
+ return { name: tomlName || name, description, model };
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
66
85
  // ── shared fs primitive ──────────────────────────────────────────────────────
67
86
  /**
68
87
  * Copy every file in `src` into `dest` (created if missing), applying
@@ -187,61 +206,6 @@ function dirCopy(opts) {
187
206
  },
188
207
  };
189
208
  }
190
- /**
191
- * Kimi (genuinely bespoke): each subagent is a `<name>.yaml` + sibling
192
- * `<name>.system.md`, and a managed `_agents-cli.yaml` parent lists them all for
193
- * `kimi --agent-file`. The parent index is a cross-item concern, so it is built
194
- * in `finalize`, not per-item.
195
- */
196
- const kimiTarget = {
197
- dir: (home) => path.join(home, '.kimi-code', 'agents'),
198
- write(dir, sub) {
199
- writeKimiSubagentFiles(dir, sub.path, sub.name);
200
- },
201
- names(dir) {
202
- if (!fs.existsSync(dir))
203
- return [];
204
- // The parent is `_agents-cli.yaml` (underscore-prefixed, reserved).
205
- return fs
206
- .readdirSync(dir)
207
- .filter((f) => f.endsWith('.yaml') && !f.startsWith('_'))
208
- .map((f) => f.slice(0, -'.yaml'.length));
209
- },
210
- occupied(dir, name) {
211
- return [
212
- { path: safeJoin(dir, `${name}.yaml`), kind: 'file' },
213
- { path: safeJoin(dir, `${name}.system.md`), kind: 'file' },
214
- ];
215
- },
216
- finalizeOccupied(dir) {
217
- return [{ path: safeJoin(dir, KIMI_SUBAGENTS_PARENT_FILE), kind: 'file' }];
218
- },
219
- read(dir, name) {
220
- const yamlPath = path.join(dir, `${name}.yaml`);
221
- if (!fs.existsSync(yamlPath) || !fs.statSync(yamlPath).isFile())
222
- return null;
223
- let description = '';
224
- try {
225
- const parsed = yaml.parse(fs.readFileSync(yamlPath, 'utf-8'));
226
- description = parsed?.agent?.description ?? '';
227
- }
228
- catch {
229
- /* leave description empty */
230
- }
231
- const files = [`${name}.yaml`];
232
- const promptFile = `${name}.system.md`;
233
- if (fs.existsSync(path.join(dir, promptFile)))
234
- files.push(promptFile);
235
- return { frontmatter: { name, description }, files, path: yamlPath };
236
- },
237
- finalize(dir, synced) {
238
- const entries = synced.map((sub) => {
239
- const fm = parseSubagentFrontmatter(path.join(sub.path, 'AGENT.md'));
240
- return { name: sub.name, description: fm?.description ?? sub.name, relativePath: `./${sub.name}.yaml` };
241
- });
242
- fs.writeFileSync(safeJoin(dir, KIMI_SUBAGENTS_PARENT_FILE), buildKimiSubagentsParentYaml(entries));
243
- },
244
- };
245
209
  // ── the registry ─────────────────────────────────────────────────────────────
246
210
  /**
247
211
  * Single source of truth for how each subagents-capable agent stores subagents.
@@ -257,7 +221,12 @@ export const SUBAGENT_TARGETS = {
257
221
  pi: flatFile({ subdir: ['.omp', 'agent', 'agents'], ext: '.md', transform: transformSubagentForClaude, readMeta: metaFrontmatterFallback }),
258
222
  droid: flatFile({ subdir: ['.factory', 'droids'], ext: '.md', transform: transformSubagentForDroid }),
259
223
  // Bespoke frontmatter/format, still one flat file.
260
- codex: flatFile({ subdir: ['.codex', 'agents'], ext: '.toml', transform: transformSubagentForCodex }),
224
+ codex: flatFile({
225
+ subdir: ['.codex', 'agents'],
226
+ ext: '.toml',
227
+ transform: transformSubagentForCodex,
228
+ readMeta: metaToml,
229
+ }),
261
230
  opencode: flatFile({
262
231
  subdir: ['.config', 'opencode', 'agents'],
263
232
  ext: '.md',
@@ -295,8 +264,12 @@ export const SUBAGENT_TARGETS = {
295
264
  transform: transformSubagentForAntigravity,
296
265
  }),
297
266
  openclaw: dirCopy({ subdir: ['.openclaw'], marker: 'AGENTS.md', rename: { 'AGENT.md': 'AGENTS.md' } }),
298
- // Bespoke multi-file + parent index.
299
- kimi: kimiTarget,
267
+ // Kimi discovers Claude-shaped agent markdown from its brand home's `agents/`
268
+ // dir (`USER_BRAND_DIRS = ["agents"]`, kimi-code >= 0.29.0). Frontmatter
269
+ // name/description + body, kebab-case name -- the same shape as claude/grok.
270
+ // The pre-markdown files agents-cli used to write here are swept once by
271
+ // `migrateKimiSubagentsToMarkdown` (lib/migrate.ts), not by this target.
272
+ kimi: flatFile({ subdir: ['.kimi-code', 'agents'], ext: '.md', transform: transformSubagentForClaude, readMeta: metaFrontmatterFallback }),
300
273
  };
301
274
  /** The registry entry for `agent`, or undefined if it stores no subagents. */
302
275
  export function subagentTarget(agent) {
@@ -97,39 +97,6 @@ export declare function transformSubagentForAntigravity(subagentDir: string): st
97
97
  * https://opencode.ai/docs/agents/
98
98
  */
99
99
  export declare function transformSubagentForOpenCode(subagentDir: string): string;
100
- /** Managed parent agent file for Kimi (underscore prefix avoids clobbering a user subagent named agents-cli). */
101
- export declare const KIMI_SUBAGENTS_PARENT_FILE = "_agents-cli.yaml";
102
- export interface KimiSubagentFiles {
103
- /** Agent YAML content (uses system_prompt_path, not inline system_prompt). */
104
- yaml: string;
105
- /** Markdown body written next to the YAML and referenced by system_prompt_path. */
106
- systemPrompt: string;
107
- /** Sibling prompt filename, e.g. `reviewer.system.md`. */
108
- systemPromptFileName: string;
109
- }
110
- /**
111
- * Transform a subagent into Kimi Code agent files.
112
- *
113
- * Kimi's schema (agentspec) only accepts `system_prompt_path` (path relative to
114
- * the agent YAML) — there is no inline `system_prompt` key. We write:
115
- * ~/.kimi-code/agents/<name>.yaml — agent YAML
116
- * ~/.kimi-code/agents/<name>.system.md — system prompt body
117
- * plus a managed parent `_agents-cli.yaml` that lists them under agent.subagents
118
- * for `kimi --agent-file …/_agents-cli.yaml`.
119
- * https://moonshotai.github.io/kimi-cli/en/customization/agents.html
120
- */
121
- export declare function transformSubagentForKimi(subagentDir: string, fileBaseName: string): KimiSubagentFiles;
122
- /**
123
- * Build the managed parent agent YAML that declares all installed subagents
124
- * so `kimi --agent-file ~/.kimi-code/agents/_agents-cli.yaml` can launch them.
125
- */
126
- export declare function buildKimiSubagentsParentYaml(entries: Array<{
127
- name: string;
128
- description: string;
129
- relativePath: string;
130
- }>): string;
131
- /** Write a Kimi subagent YAML + sibling system-prompt md into agentsDir. */
132
- export declare function writeKimiSubagentFiles(agentsDir: string, subagentDir: string, name: string): void;
133
100
  /**
134
101
  * Transform a subagent into a Codex custom-agent TOML file.
135
102
  *
@@ -356,81 +356,6 @@ export function transformSubagentForOpenCode(subagentDir) {
356
356
  }
357
357
  return `---\n${yaml.stringify(fm).trim()}\n---\n\n${systemPrompt}\n`;
358
358
  }
359
- /** Managed parent agent file for Kimi (underscore prefix avoids clobbering a user subagent named agents-cli). */
360
- export const KIMI_SUBAGENTS_PARENT_FILE = '_agents-cli.yaml';
361
- /**
362
- * Transform a subagent into Kimi Code agent files.
363
- *
364
- * Kimi's schema (agentspec) only accepts `system_prompt_path` (path relative to
365
- * the agent YAML) — there is no inline `system_prompt` key. We write:
366
- * ~/.kimi-code/agents/<name>.yaml — agent YAML
367
- * ~/.kimi-code/agents/<name>.system.md — system prompt body
368
- * plus a managed parent `_agents-cli.yaml` that lists them under agent.subagents
369
- * for `kimi --agent-file …/_agents-cli.yaml`.
370
- * https://moonshotai.github.io/kimi-cli/en/customization/agents.html
371
- */
372
- export function transformSubagentForKimi(subagentDir, fileBaseName) {
373
- const agentMd = path.join(subagentDir, 'AGENT.md');
374
- const frontmatter = parseSubagentFrontmatter(agentMd);
375
- const body = getSubagentBody(agentMd);
376
- if (!frontmatter) {
377
- throw new Error(`Invalid AGENT.md in ${subagentDir}`);
378
- }
379
- let systemPrompt = body.trim();
380
- const files = fs.readdirSync(subagentDir)
381
- .filter(f => f.endsWith('.md') && f !== 'AGENT.md')
382
- .sort();
383
- for (const file of files) {
384
- const content = fs.readFileSync(path.join(subagentDir, file), 'utf-8').trim();
385
- const sectionName = file.replace('.md', '');
386
- const title = sectionName.charAt(0).toUpperCase() + sectionName.slice(1).toLowerCase();
387
- systemPrompt += `\n\n## ${title}\n\n${content}`;
388
- }
389
- const systemPromptFileName = `${fileBaseName}.system.md`;
390
- const doc = {
391
- version: 1,
392
- agent: {
393
- extend: 'default',
394
- name: frontmatter.name,
395
- description: frontmatter.description,
396
- system_prompt_path: `./${systemPromptFileName}`,
397
- },
398
- };
399
- if (frontmatter.model) {
400
- doc.agent.model = frontmatter.model;
401
- }
402
- return {
403
- yaml: yaml.stringify(doc),
404
- systemPrompt,
405
- systemPromptFileName,
406
- };
407
- }
408
- /**
409
- * Build the managed parent agent YAML that declares all installed subagents
410
- * so `kimi --agent-file ~/.kimi-code/agents/_agents-cli.yaml` can launch them.
411
- */
412
- export function buildKimiSubagentsParentYaml(entries) {
413
- const subagents = {};
414
- for (const e of entries) {
415
- subagents[e.name] = { path: e.relativePath, description: e.description };
416
- }
417
- return yaml.stringify({
418
- version: 1,
419
- agent: {
420
- extend: 'default',
421
- name: 'agents-cli',
422
- description: 'Managed parent agent listing agents-cli synced subagents',
423
- subagents,
424
- },
425
- });
426
- }
427
- /** Write a Kimi subagent YAML + sibling system-prompt md into agentsDir. */
428
- export function writeKimiSubagentFiles(agentsDir, subagentDir, name) {
429
- const { yaml: yml, systemPrompt, systemPromptFileName } = transformSubagentForKimi(subagentDir, name);
430
- fs.mkdirSync(agentsDir, { recursive: true });
431
- fs.writeFileSync(safeJoin(agentsDir, `${name}.yaml`), yml);
432
- fs.writeFileSync(safeJoin(agentsDir, systemPromptFileName), systemPrompt);
433
- }
434
359
  /**
435
360
  * Transform a subagent into a Codex custom-agent TOML file.
436
361
  *
@@ -120,7 +120,7 @@ export async function runUmbrellaSync(args) {
120
120
  const { reconcilePendingSentinels } = await import('./devices/pending.js');
121
121
  const dev = await runDeviceSync({ soft: true, mode: 'refresh' });
122
122
  if (dev.ok)
123
- reconcilePendingSentinels(dev.pending);
123
+ await reconcilePendingSentinels(dev.pending);
124
124
  result.devices = { synced: dev.synced, pending: dev.pending.length, skipped: !dev.ok };
125
125
  if (dev.ok) {
126
126
  log(`devices: ${dev.synced} refreshed${dev.pending.length ? `, ${dev.pending.length} new pending` : ''}`);
@@ -193,6 +193,7 @@ export declare class AgentProcess {
193
193
  cloudBranch: string | null;
194
194
  worktreeName: string | null;
195
195
  worktreePath: string | null;
196
+ project: string | null;
196
197
  hostName: string | null;
197
198
  hostTarget: string | null;
198
199
  hostIdentityFile: string | null;
@@ -304,6 +305,26 @@ export declare class AgentProcess {
304
305
  */
305
306
  private capEventsCache;
306
307
  saveMeta(): Promise<void>;
308
+ /**
309
+ * Rename an unreadable meta.json out of the way so it stops silently
310
+ * masquerading as "no record" (RUSH-2429). Before saveMeta() wrote atomically,
311
+ * a process killed mid-write left a truncated, unparseable meta.json that
312
+ * loadFromDisk() returned null for -- indistinguishable from ENOENT -- so
313
+ * retention (loadExistingAgents/rescanFromDisk) never reaped it and
314
+ * isWorktreeClaimed() (which reads meta.json directly, not through this
315
+ * method) failed CLOSED on it forever: it scans every record and answers
316
+ * "claimed" for every worktree name in every team the first time it cannot
317
+ * read one. Quarantining removes meta.json so the NEXT read of this record
318
+ * sees ENOENT (genuinely absent) instead of "unreadable" -- that is what lets
319
+ * isWorktreeClaimed's fail-closed guard recover once the corrupt record is
320
+ * gone, without weakening the guard itself for a record that is still
321
+ * present-but-unreadable at decision time.
322
+ *
323
+ * Best-effort: if the rename itself fails (e.g. EACCES on the directory),
324
+ * the record is left in place and the fail-closed guard keeps protecting
325
+ * worktree removal -- quarantine only ever ADDS a recovery path.
326
+ */
327
+ private static quarantineCorruptMeta;
307
328
  static loadFromDisk(agentId: string, baseDir?: string | null): Promise<AgentProcess | null>;
308
329
  isProcessAlive(): boolean;
309
330
  /**
@@ -478,7 +499,7 @@ export declare class AgentManager {
478
499
  * asymmetry, not defensive coding: the caller acts destructively on `false`.
479
500
  */
480
501
  isWorktreeClaimed(worktreeName: string): Promise<boolean>;
481
- spawn(taskName: string, agentType: AgentType, prompt: string, cwd?: string | null, mode?: Mode | null, effort?: EffortLevel, parentSessionId?: string | null, workspaceDir?: string | null, version?: string | null, name?: string | null, after?: string[], model?: string | null, envOverrides?: Record<string, string> | null, taskType?: TaskType | null, cloudProvider?: string | null, cloudSessionId?: string | null, cloudRepo?: string | null, cloudBranch?: string | null, worktreeName?: string | null, worktreePath?: string | null, profileName?: string | null, hostName?: string | null, hostTarget?: string | null, repoPath?: string | null): Promise<AgentProcess>;
502
+ spawn(taskName: string, agentType: AgentType, prompt: string, cwd?: string | null, mode?: Mode | null, effort?: EffortLevel, parentSessionId?: string | null, workspaceDir?: string | null, version?: string | null, name?: string | null, after?: string[], model?: string | null, envOverrides?: Record<string, string> | null, taskType?: TaskType | null, cloudProvider?: string | null, cloudSessionId?: string | null, cloudRepo?: string | null, cloudBranch?: string | null, worktreeName?: string | null, worktreePath?: string | null, profileName?: string | null, hostName?: string | null, hostTarget?: string | null, repoPath?: string | null, project?: string | null): Promise<AgentProcess>;
482
503
  /**
483
504
  * Resume a STOPPED teammate (completed / failed / stopped) by re-entering its
484
505
  * own session with `message` as the next user turn. Re-launches through the
@@ -613,6 +634,25 @@ export declare class AgentManager {
613
634
  */
614
635
  listCompleted(): Promise<AgentProcess[]>;
615
636
  listByTask(taskName: string): Promise<AgentProcess[]>;
637
+ /**
638
+ * Terminal removal of every teammate record for a team (RUSH-2450).
639
+ *
640
+ * `teams disband` used to delete log dirs and the registry entry, but left
641
+ * the in-memory AgentProcess cache intact. A concurrent `teams start --watch`
642
+ * supervisor then re-persisted those records via saveMeta, so a second
643
+ * disband still found N logs to clear and `teams start` could re-launch
644
+ * PENDING work that had already merged.
645
+ *
646
+ * This drops every matching record from the manager map AND removes its
647
+ * durable state. With `keepLogs`, only `meta.json` is removed so the
648
+ * teammate is no longer discoverable/startable while stdout/stderr logs
649
+ * remain for postmortem.
650
+ *
651
+ * Returns the agent_ids that were purged.
652
+ */
653
+ purgeByTask(taskName: string, opts?: {
654
+ keepLogs?: boolean;
655
+ }): Promise<string[]>;
616
656
  listByParentSession(parentSessionId: string): Promise<AgentProcess[]>;
617
657
  stopByTask(taskName: string): Promise<{
618
658
  stopped: string[];