@phnx-labs/agents-cli 1.22.120 → 1.22.121

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 (1603) hide show
  1. package/CHANGELOG.md +227 -0
  2. package/README.md +19 -2
  3. package/dist/bootstrap.d.ts +0 -15
  4. package/dist/bootstrap.js +10 -409
  5. package/dist/cli/command-registry.d.ts +0 -58
  6. package/dist/cli/command-registry.js +2 -74
  7. package/dist/commands/accounts.d.ts +0 -17
  8. package/dist/commands/accounts.js +1 -52
  9. package/dist/commands/alias.d.ts +0 -12
  10. package/dist/commands/alias.js +0 -6
  11. package/dist/commands/apply.d.ts +0 -15
  12. package/dist/commands/apply.js +0 -63
  13. package/dist/commands/audit.d.ts +0 -12
  14. package/dist/commands/audit.js +0 -13
  15. package/dist/commands/auth.js +4 -12
  16. package/dist/commands/beta.d.ts +0 -6
  17. package/dist/commands/beta.js +2 -6
  18. package/dist/commands/browser-sessions-picker.d.ts +0 -8
  19. package/dist/commands/browser-sessions-picker.js +0 -26
  20. package/dist/commands/browser.d.ts +0 -57
  21. package/dist/commands/browser.js +0 -80
  22. package/dist/commands/budget.d.ts +0 -13
  23. package/dist/commands/budget.js +0 -2
  24. package/dist/commands/cli.d.ts +0 -12
  25. package/dist/commands/cli.js +0 -4
  26. package/dist/commands/cloud.d.ts +0 -9
  27. package/dist/commands/cloud.js +0 -43
  28. package/dist/commands/commands.d.ts +0 -9
  29. package/dist/commands/commands.js +0 -18
  30. package/dist/commands/computer-sessions-picker.d.ts +0 -11
  31. package/dist/commands/computer-sessions-picker.js +0 -29
  32. package/dist/commands/computer.d.ts +0 -62
  33. package/dist/commands/computer.js +3 -114
  34. package/dist/commands/config.d.ts +0 -14
  35. package/dist/commands/config.js +21 -60
  36. package/dist/commands/cost.d.ts +0 -11
  37. package/dist/commands/cost.js +1 -17
  38. package/dist/commands/daemon-test-harness.d.ts +0 -32
  39. package/dist/commands/daemon-test-harness.js +1 -36
  40. package/dist/commands/daemon.d.ts +0 -46
  41. package/dist/commands/daemon.js +8 -255
  42. package/dist/commands/detach-core.d.ts +0 -28
  43. package/dist/commands/detach-core.js +0 -30
  44. package/dist/commands/detach.d.ts +1 -12
  45. package/dist/commands/detach.js +16 -52
  46. package/dist/commands/device-config-test-harness.js +0 -12
  47. package/dist/commands/doctor.d.ts +0 -103
  48. package/dist/commands/doctor.js +3 -279
  49. package/dist/commands/events.d.ts +0 -29
  50. package/dist/commands/events.js +1 -55
  51. package/dist/commands/exec.d.ts +0 -163
  52. package/dist/commands/exec.js +15 -964
  53. package/dist/commands/factory.d.ts +0 -6
  54. package/dist/commands/factory.js +0 -2
  55. package/dist/commands/feed-watch.js +0 -20
  56. package/dist/commands/feed.d.ts +0 -38
  57. package/dist/commands/feed.js +1 -151
  58. package/dist/commands/feedback.d.ts +0 -5
  59. package/dist/commands/feedback.js +0 -5
  60. package/dist/commands/fleet-capture.d.ts +0 -12
  61. package/dist/commands/fleet-capture.js +1 -39
  62. package/dist/commands/focus.d.ts +6 -94
  63. package/dist/commands/focus.js +13 -183
  64. package/dist/commands/fork.d.ts +0 -21
  65. package/dist/commands/fork.js +0 -45
  66. package/dist/commands/funnel.d.ts +0 -3
  67. package/dist/commands/go.d.ts +2 -71
  68. package/dist/commands/go.js +5 -99
  69. package/dist/commands/harness-hooks.d.ts +0 -41
  70. package/dist/commands/harness-hooks.js +0 -48
  71. package/dist/commands/harness-wizard.d.ts +0 -137
  72. package/dist/commands/harness-wizard.js +0 -109
  73. package/dist/commands/harness.d.ts +0 -63
  74. package/dist/commands/harness.js +0 -103
  75. package/dist/commands/hooks.d.ts +0 -9
  76. package/dist/commands/hooks.js +0 -26
  77. package/dist/commands/humans.d.ts +0 -8
  78. package/dist/commands/humans.js +0 -8
  79. package/dist/commands/import.d.ts +0 -22
  80. package/dist/commands/import.js +0 -79
  81. package/dist/commands/insights.d.ts +0 -37
  82. package/dist/commands/insights.js +3 -115
  83. package/dist/commands/inspect.d.ts +0 -117
  84. package/dist/commands/inspect.js +2 -448
  85. package/dist/commands/lease.d.ts +0 -28
  86. package/dist/commands/lease.js +0 -43
  87. package/dist/commands/logs.d.ts +0 -23
  88. package/dist/commands/logs.js +0 -30
  89. package/dist/commands/mailboxes.d.ts +0 -18
  90. package/dist/commands/mailboxes.js +0 -29
  91. package/dist/commands/mcp.d.ts +0 -9
  92. package/dist/commands/mcp.js +0 -53
  93. package/dist/commands/memory.d.ts +0 -7
  94. package/dist/commands/memory.js +0 -7
  95. package/dist/commands/menubar.d.ts +0 -8
  96. package/dist/commands/menubar.js +0 -24
  97. package/dist/commands/message.d.ts +0 -23
  98. package/dist/commands/message.js +0 -50
  99. package/dist/commands/mine.d.ts +0 -22
  100. package/dist/commands/mine.js +0 -21
  101. package/dist/commands/models.d.ts +0 -8
  102. package/dist/commands/models.js +0 -33
  103. package/dist/commands/modes.d.ts +0 -10
  104. package/dist/commands/modes.js +0 -13
  105. package/dist/commands/monitors.d.ts +0 -9
  106. package/dist/commands/monitors.js +3 -160
  107. package/dist/commands/open.d.ts +0 -26
  108. package/dist/commands/open.js +0 -10
  109. package/dist/commands/output.d.ts +0 -18
  110. package/dist/commands/output.js +1 -34
  111. package/dist/commands/packages-materialize.d.ts +0 -11
  112. package/dist/commands/packages-materialize.js +0 -3
  113. package/dist/commands/packages.d.ts +0 -10
  114. package/dist/commands/packages.js +0 -50
  115. package/dist/commands/perf.d.ts +0 -41
  116. package/dist/commands/perf.js +0 -55
  117. package/dist/commands/permissions.d.ts +0 -9
  118. package/dist/commands/permissions.js +0 -43
  119. package/dist/commands/plugins.d.ts +0 -14
  120. package/dist/commands/plugins.js +2 -55
  121. package/dist/commands/profiles.d.ts +0 -25
  122. package/dist/commands/profiles.js +0 -27
  123. package/dist/commands/projects-todo.d.ts +2 -0
  124. package/dist/commands/projects-todo.js +132 -0
  125. package/dist/commands/projects.d.ts +0 -85
  126. package/dist/commands/projects.js +344 -291
  127. package/dist/commands/prune.js +0 -30
  128. package/dist/commands/ps-roster.d.ts +92 -0
  129. package/dist/commands/ps-roster.js +744 -0
  130. package/dist/commands/ps.d.ts +6 -0
  131. package/dist/commands/ps.js +98 -0
  132. package/dist/commands/refresh-rules.d.ts +0 -13
  133. package/dist/commands/refresh-rules.js +0 -14
  134. package/dist/commands/reminders.d.ts +0 -7
  135. package/dist/commands/repo.d.ts +0 -89
  136. package/dist/commands/repo.js +7 -205
  137. package/dist/commands/resource-view.d.ts +0 -33
  138. package/dist/commands/resource-view.js +0 -49
  139. package/dist/commands/resume.d.ts +1 -19
  140. package/dist/commands/resume.js +0 -50
  141. package/dist/commands/route.d.ts +0 -10
  142. package/dist/commands/route.js +0 -19
  143. package/dist/commands/routines.d.ts +0 -42
  144. package/dist/commands/routines.js +5 -290
  145. package/dist/commands/routines.test-fixture.d.ts +0 -34
  146. package/dist/commands/routines.test-fixture.js +4 -100
  147. package/dist/commands/rules.d.ts +0 -9
  148. package/dist/commands/rules.js +1 -6
  149. package/dist/commands/run-account-picker.d.ts +0 -59
  150. package/dist/commands/run-account-picker.js +0 -71
  151. package/dist/commands/run-broadcast.d.ts +0 -9
  152. package/dist/commands/run-broadcast.js +0 -7
  153. package/dist/commands/run-cloud.d.ts +0 -15
  154. package/dist/commands/run-cloud.js +0 -37
  155. package/dist/commands/run-device-picker.d.ts +0 -25
  156. package/dist/commands/run-device-picker.js +1 -53
  157. package/dist/commands/secrets-passthrough.d.ts +0 -31
  158. package/dist/commands/secrets-passthrough.js +0 -10
  159. package/dist/commands/send.d.ts +0 -20
  160. package/dist/commands/send.js +14 -18
  161. package/dist/commands/sessions-backfill.d.ts +0 -7
  162. package/dist/commands/sessions-backfill.js +1 -16
  163. package/dist/commands/sessions-backup-setup.js +0 -11
  164. package/dist/commands/sessions-bookmark.d.ts +0 -8
  165. package/dist/commands/sessions-bookmark.js +0 -28
  166. package/dist/commands/sessions-browser.d.ts +2 -117
  167. package/dist/commands/sessions-browser.js +5 -243
  168. package/dist/commands/sessions-export.d.ts +1 -26
  169. package/dist/commands/sessions-export.js +3 -81
  170. package/dist/commands/sessions-import.d.ts +0 -14
  171. package/dist/commands/sessions-import.js +0 -59
  172. package/dist/commands/sessions-inject.d.ts +0 -60
  173. package/dist/commands/sessions-inject.js +3 -96
  174. package/dist/commands/sessions-migrate.d.ts +2 -37
  175. package/dist/commands/sessions-migrate.js +7 -159
  176. package/dist/commands/sessions-optimize.d.ts +0 -12
  177. package/dist/commands/sessions-picker-factory.d.ts +0 -7
  178. package/dist/commands/sessions-picker-factory.js +0 -8
  179. package/dist/commands/sessions-picker.d.ts +4 -103
  180. package/dist/commands/sessions-picker.js +13 -352
  181. package/dist/commands/sessions-render.d.ts +1 -2
  182. package/dist/commands/sessions-render.js +3 -7
  183. package/dist/commands/sessions-resume.d.ts +1 -24
  184. package/dist/commands/sessions-resume.js +2 -65
  185. package/dist/commands/sessions-share.d.ts +1 -9
  186. package/dist/commands/sessions-share.js +1 -45
  187. package/dist/commands/sessions-stats.d.ts +0 -24
  188. package/dist/commands/sessions-stats.js +0 -49
  189. package/dist/commands/sessions-stop.d.ts +1 -20
  190. package/dist/commands/sessions-stop.js +4 -9
  191. package/dist/commands/sessions-tail.d.ts +1 -19
  192. package/dist/commands/sessions-tail.js +3 -36
  193. package/dist/commands/sessions-trace.d.ts +5 -36
  194. package/dist/commands/sessions-trace.js +7 -82
  195. package/dist/commands/sessions.d.ts +1 -666
  196. package/dist/commands/sessions.js +30 -2279
  197. package/dist/commands/sessions.test-fixture.d.ts +0 -9
  198. package/dist/commands/sessions.test-fixture.js +8 -23
  199. package/dist/commands/setup-accounts.d.ts +0 -6
  200. package/dist/commands/setup-browser.d.ts +0 -23
  201. package/dist/commands/setup-browser.js +0 -28
  202. package/dist/commands/setup-computer.d.ts +0 -16
  203. package/dist/commands/setup-computer.js +0 -28
  204. package/dist/commands/setup-fleet.d.ts +0 -8
  205. package/dist/commands/setup-fleet.js +0 -11
  206. package/dist/commands/setup-mine.d.ts +0 -14
  207. package/dist/commands/setup-mine.js +0 -25
  208. package/dist/commands/setup-preferences.d.ts +0 -47
  209. package/dist/commands/setup-preferences.js +0 -53
  210. package/dist/commands/setup-secrets.d.ts +2 -24
  211. package/dist/commands/setup-secrets.js +0 -24
  212. package/dist/commands/setup-term.d.ts +0 -21
  213. package/dist/commands/setup-term.js +0 -21
  214. package/dist/commands/setup-terminal.d.ts +0 -1
  215. package/dist/commands/setup-terminal.js +0 -1
  216. package/dist/commands/setup-tools.d.ts +2 -0
  217. package/dist/commands/setup-tools.js +73 -0
  218. package/dist/commands/setup.d.ts +0 -20
  219. package/dist/commands/setup.js +4 -57
  220. package/dist/commands/skills.d.ts +0 -9
  221. package/dist/commands/skills.js +1 -22
  222. package/dist/commands/snapshot.d.ts +0 -9
  223. package/dist/commands/snapshot.js +0 -10
  224. package/dist/commands/ssh.d.ts +0 -64
  225. package/dist/commands/ssh.js +9 -420
  226. package/dist/commands/status.d.ts +0 -12
  227. package/dist/commands/status.js +0 -26
  228. package/dist/commands/subagents.d.ts +0 -8
  229. package/dist/commands/subagents.js +0 -31
  230. package/dist/commands/sync.d.ts +0 -37
  231. package/dist/commands/sync.js +0 -256
  232. package/dist/commands/teams-picker.d.ts +0 -3
  233. package/dist/commands/teams-picker.js +0 -34
  234. package/dist/commands/teams.d.ts +1 -76
  235. package/dist/commands/teams.js +9 -477
  236. package/dist/commands/tmux.d.ts +0 -25
  237. package/dist/commands/tmux.js +0 -46
  238. package/dist/commands/traces.js +0 -19
  239. package/dist/commands/trash.d.ts +0 -17
  240. package/dist/commands/trash.js +1 -11
  241. package/dist/commands/uninstall.d.ts +0 -9
  242. package/dist/commands/uninstall.js +0 -6
  243. package/dist/commands/update.d.ts +0 -22
  244. package/dist/commands/update.js +0 -44
  245. package/dist/commands/upgrade.d.ts +0 -1
  246. package/dist/commands/upgrade.js +0 -1
  247. package/dist/commands/utils.d.ts +0 -85
  248. package/dist/commands/utils.js +1 -95
  249. package/dist/commands/versions.d.ts +0 -16
  250. package/dist/commands/versions.js +0 -134
  251. package/dist/commands/view.d.ts +0 -90
  252. package/dist/commands/view.js +4 -343
  253. package/dist/commands/watchdog.d.ts +0 -19
  254. package/dist/commands/watchdog.js +3 -43
  255. package/dist/commands/webhook.d.ts +0 -8
  256. package/dist/commands/webhook.js +0 -14
  257. package/dist/commands/workflows.d.ts +0 -8
  258. package/dist/commands/workflows.js +0 -6
  259. package/dist/index.d.ts +0 -25
  260. package/dist/index.js +5 -119
  261. package/dist/lib/account-capabilities.d.ts +0 -34
  262. package/dist/lib/account-capabilities.js +0 -32
  263. package/dist/lib/account-catalog.d.ts +0 -128
  264. package/dist/lib/account-catalog.js +8 -154
  265. package/dist/lib/account-provider-registry.d.ts +0 -14
  266. package/dist/lib/account-provider-registry.js +0 -8
  267. package/dist/lib/account-registry.d.ts +0 -74
  268. package/dist/lib/account-registry.js +14 -189
  269. package/dist/lib/account-schema.d.ts +0 -19
  270. package/dist/lib/account-schema.js +0 -43
  271. package/dist/lib/accounting/account-launch.d.ts +0 -15
  272. package/dist/lib/accounting/account-launch.js +1 -3
  273. package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
  274. package/dist/lib/accounting/account-pool-collect.js +0 -42
  275. package/dist/lib/accounting/account-pool.d.ts +0 -41
  276. package/dist/lib/accounting/account-pool.js +0 -17
  277. package/dist/lib/accounting/capacity.d.ts +0 -32
  278. package/dist/lib/accounting/capacity.js +0 -32
  279. package/dist/lib/accounting/rotate.d.ts +0 -518
  280. package/dist/lib/accounting/rotate.js +4 -598
  281. package/dist/lib/accounting/usage-ingest.d.ts +0 -1
  282. package/dist/lib/accounting/usage-ingest.js +0 -44
  283. package/dist/lib/accounting/usage-sync.d.ts +0 -60
  284. package/dist/lib/accounting/usage-sync.js +4 -51
  285. package/dist/lib/accounting/usage.d.ts +0 -632
  286. package/dist/lib/accounting/usage.js +14 -1055
  287. package/dist/lib/accounts/add.d.ts +0 -60
  288. package/dist/lib/accounts/add.js +0 -127
  289. package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
  290. package/dist/lib/accounts/auth-operation-lock.js +0 -4
  291. package/dist/lib/accounts/migrate.d.ts +0 -9
  292. package/dist/lib/accounts/migrate.js +3 -42
  293. package/dist/lib/accounts/slots.d.ts +0 -25
  294. package/dist/lib/accounts/slots.js +1 -49
  295. package/dist/lib/acp/client.d.ts +0 -16
  296. package/dist/lib/acp/client.js +0 -29
  297. package/dist/lib/acp/harnesses.d.ts +0 -15
  298. package/dist/lib/acp/harnesses.js +0 -16
  299. package/dist/lib/acp/run.d.ts +0 -8
  300. package/dist/lib/acp/run.js +0 -8
  301. package/dist/lib/actor.d.ts +1 -71
  302. package/dist/lib/actor.js +1 -99
  303. package/dist/lib/add-dir.d.ts +0 -46
  304. package/dist/lib/add-dir.js +1 -70
  305. package/dist/lib/address.d.ts +0 -17
  306. package/dist/lib/address.js +0 -15
  307. package/dist/lib/agent-cli-commands.d.ts +0 -10
  308. package/dist/lib/agent-cli-commands.js +0 -10
  309. package/dist/lib/agent-modes.d.ts +0 -29
  310. package/dist/lib/agent-modes.js +0 -31
  311. package/dist/lib/agent-spec/agents.d.ts +0 -426
  312. package/dist/lib/agent-spec/agents.js +37 -924
  313. package/dist/lib/agent-spec/index.d.ts +0 -5
  314. package/dist/lib/agent-spec/index.js +0 -14
  315. package/dist/lib/agent-spec/materialize.d.ts +0 -10
  316. package/dist/lib/agent-spec/materialize.js +2 -139
  317. package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
  318. package/dist/lib/agent-spec/package-resolve.js +1 -44
  319. package/dist/lib/agent-spec/package-schema.d.ts +0 -2
  320. package/dist/lib/agent-spec/package-schema.js +0 -11
  321. package/dist/lib/agent-spec/package-types.d.ts +0 -27
  322. package/dist/lib/agent-spec/package-types.js +0 -1
  323. package/dist/lib/agent-spec/primitives.d.ts +0 -18
  324. package/dist/lib/agent-spec/primitives.js +0 -27
  325. package/dist/lib/agent-spec/provider.js +0 -2
  326. package/dist/lib/agent-spec/resolve.d.ts +0 -23
  327. package/dist/lib/agent-spec/resolve.js +0 -41
  328. package/dist/lib/agent-spec/types.d.ts +0 -34
  329. package/dist/lib/agent-spec/types.js +0 -6
  330. package/dist/lib/agents.d.ts +0 -1
  331. package/dist/lib/agents.js +0 -1
  332. package/dist/lib/analytics/mix-commands.d.ts +0 -23
  333. package/dist/lib/analytics/mix-commands.js +0 -26
  334. package/dist/lib/analytics/recipes.d.ts +0 -1
  335. package/dist/lib/analytics/recipes.js +5 -10
  336. package/dist/lib/analytics/usage-db.js +4 -6
  337. package/dist/lib/answer-router.d.ts +0 -61
  338. package/dist/lib/answer-router.js +0 -57
  339. package/dist/lib/app-bundle-install.d.ts +0 -13
  340. package/dist/lib/app-bundle-install.js +0 -50
  341. package/dist/lib/artifact-actions.d.ts +0 -15
  342. package/dist/lib/artifact-actions.js +0 -18
  343. package/dist/lib/artifacts-client.d.ts +0 -10
  344. package/dist/lib/artifacts-client.js +0 -17
  345. package/dist/lib/ask-classifier.d.ts +0 -38
  346. package/dist/lib/ask-classifier.js +0 -27
  347. package/dist/lib/audit/log.d.ts +0 -47
  348. package/dist/lib/audit/log.js +1 -59
  349. package/dist/lib/auth-health.d.ts +0 -213
  350. package/dist/lib/auth-health.js +16 -266
  351. package/dist/lib/auth-mint.d.ts +0 -83
  352. package/dist/lib/auth-mint.js +8 -85
  353. package/dist/lib/auto-pull-worker.d.ts +0 -10
  354. package/dist/lib/auto-pull-worker.js +3 -48
  355. package/dist/lib/auto-pull.d.ts +0 -64
  356. package/dist/lib/auto-pull.js +0 -79
  357. package/dist/lib/beta.d.ts +0 -9
  358. package/dist/lib/beta.js +0 -9
  359. package/dist/lib/binary-shadow.d.ts +0 -22
  360. package/dist/lib/binary-shadow.js +4 -34
  361. package/dist/lib/boot-profile.d.ts +0 -10
  362. package/dist/lib/boot-profile.js +1 -31
  363. package/dist/lib/brand.d.ts +0 -20
  364. package/dist/lib/brand.js +0 -50
  365. package/dist/lib/browser/context.d.ts +0 -54
  366. package/dist/lib/browser/context.js +0 -49
  367. package/dist/lib/browser/paths.d.ts +0 -21
  368. package/dist/lib/browser/paths.js +0 -26
  369. package/dist/lib/browser/record.d.ts +0 -34
  370. package/dist/lib/browser/record.js +0 -38
  371. package/dist/lib/browser/sessions-list.d.ts +1 -79
  372. package/dist/lib/browser/sessions-list.js +2 -98
  373. package/dist/lib/browser-client.d.ts +0 -112
  374. package/dist/lib/browser-client.js +1 -90
  375. package/dist/lib/budget/config.d.ts +0 -6
  376. package/dist/lib/budget/config.js +0 -29
  377. package/dist/lib/budget/enforce.d.ts +0 -50
  378. package/dist/lib/budget/enforce.js +0 -27
  379. package/dist/lib/budget/ledger.d.ts +0 -23
  380. package/dist/lib/budget/ledger.js +0 -28
  381. package/dist/lib/budget/live-cloud.d.ts +0 -26
  382. package/dist/lib/budget/live-cloud.js +0 -12
  383. package/dist/lib/budget/live-team.d.ts +0 -17
  384. package/dist/lib/budget/live-team.js +1 -35
  385. package/dist/lib/budget/preflight.d.ts +0 -51
  386. package/dist/lib/budget/preflight.js +0 -36
  387. package/dist/lib/byok-usage.d.ts +0 -20
  388. package/dist/lib/byok-usage.js +1 -24
  389. package/dist/lib/capabilities.d.ts +0 -24
  390. package/dist/lib/capabilities.js +0 -29
  391. package/dist/lib/catchup.d.ts +0 -87
  392. package/dist/lib/catchup.js +1 -81
  393. package/dist/lib/channels/owner-forward.d.ts +0 -70
  394. package/dist/lib/channels/owner-forward.js +1 -43
  395. package/dist/lib/channels/owner-sink.js +0 -21
  396. package/dist/lib/channels/providers/desktop.d.ts +0 -37
  397. package/dist/lib/channels/providers/desktop.js +0 -72
  398. package/dist/lib/channels/providers/index.d.ts +0 -1
  399. package/dist/lib/channels/providers/index.js +2 -6
  400. package/dist/lib/channels/providers/mailbox.js +0 -7
  401. package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
  402. package/dist/lib/channels/providers/rush.d.ts +0 -2
  403. package/dist/lib/channels/providers/rush.js +0 -26
  404. package/dist/lib/channels/providers/session.d.ts +2 -0
  405. package/dist/lib/channels/providers/session.js +26 -0
  406. package/dist/lib/channels/registry.d.ts +0 -27
  407. package/dist/lib/channels/registry.js +0 -10
  408. package/dist/lib/channels/resolve.d.ts +0 -19
  409. package/dist/lib/channels/resolve.js +0 -2
  410. package/dist/lib/channels/send.d.ts +0 -50
  411. package/dist/lib/channels/send.js +0 -25
  412. package/dist/lib/checkpoint.d.ts +0 -36
  413. package/dist/lib/checkpoint.js +0 -28
  414. package/dist/lib/claude-account-token.d.ts +0 -98
  415. package/dist/lib/claude-account-token.js +7 -169
  416. package/dist/lib/claude-statusline.d.ts +0 -41
  417. package/dist/lib/claude-statusline.js +0 -68
  418. package/dist/lib/cli-entry.d.ts +0 -26
  419. package/dist/lib/cli-entry.js +1 -61
  420. package/dist/lib/cli-resources.d.ts +31 -89
  421. package/dist/lib/cli-resources.js +116 -152
  422. package/dist/lib/cloud/antigravity.d.ts +0 -29
  423. package/dist/lib/cloud/antigravity.js +0 -36
  424. package/dist/lib/cloud/codex.d.ts +0 -8
  425. package/dist/lib/cloud/codex.js +0 -41
  426. package/dist/lib/cloud/cursor.d.ts +0 -5
  427. package/dist/lib/cloud/cursor.js +2 -7
  428. package/dist/lib/cloud/dispatch.d.ts +0 -13
  429. package/dist/lib/cloud/dispatch.js +1 -48
  430. package/dist/lib/cloud/factory.d.ts +0 -52
  431. package/dist/lib/cloud/factory.js +3 -67
  432. package/dist/lib/cloud/host.d.ts +0 -39
  433. package/dist/lib/cloud/host.js +5 -48
  434. package/dist/lib/cloud/registry.d.ts +0 -25
  435. package/dist/lib/cloud/registry.js +0 -29
  436. package/dist/lib/cloud/rush.d.ts +0 -47
  437. package/dist/lib/cloud/rush.js +1 -82
  438. package/dist/lib/cloud/session-index.d.ts +0 -27
  439. package/dist/lib/cloud/session-index.js +1 -32
  440. package/dist/lib/cloud/store.d.ts +0 -18
  441. package/dist/lib/cloud/store.js +0 -28
  442. package/dist/lib/cloud/stream.d.ts +0 -14
  443. package/dist/lib/cloud/stream.js +0 -25
  444. package/dist/lib/cloud/types.d.ts +0 -168
  445. package/dist/lib/cloud/types.js +0 -46
  446. package/dist/lib/cloudflare/creds.d.ts +0 -2
  447. package/dist/lib/cloudflare/creds.js +0 -14
  448. package/dist/lib/cloudflare/provision.d.ts +0 -8
  449. package/dist/lib/cloudflare/provision.js +1 -19
  450. package/dist/lib/codex-home.d.ts +0 -60
  451. package/dist/lib/codex-home.js +2 -72
  452. package/dist/lib/codex-policy.d.ts +0 -10
  453. package/dist/lib/codex-policy.js +0 -13
  454. package/dist/lib/command-skills.d.ts +0 -10
  455. package/dist/lib/command-skills.js +0 -10
  456. package/dist/lib/commands.d.ts +0 -74
  457. package/dist/lib/commands.js +0 -112
  458. package/dist/lib/comms-render.d.ts +0 -5
  459. package/dist/lib/comms-render.js +0 -5
  460. package/dist/lib/computer/context.d.ts +0 -23
  461. package/dist/lib/computer/context.js +0 -14
  462. package/dist/lib/computer/policy.d.ts +0 -20
  463. package/dist/lib/computer/policy.js +0 -53
  464. package/dist/lib/computer/record.d.ts +0 -33
  465. package/dist/lib/computer/record.js +1 -48
  466. package/dist/lib/computer/sessions-list.d.ts +1 -128
  467. package/dist/lib/computer/sessions-list.js +6 -165
  468. package/dist/lib/computer-client.d.ts +0 -106
  469. package/dist/lib/computer-client.js +5 -86
  470. package/dist/lib/concurrency.d.ts +0 -14
  471. package/dist/lib/concurrency.js +0 -3
  472. package/dist/lib/config-drift.d.ts +0 -31
  473. package/dist/lib/config-drift.js +0 -32
  474. package/dist/lib/config-keys.d.ts +1 -65
  475. package/dist/lib/config-keys.js +6 -52
  476. package/dist/lib/config-transfer.d.ts +0 -14
  477. package/dist/lib/config-transfer.js +0 -26
  478. package/dist/lib/convert.d.ts +0 -17
  479. package/dist/lib/convert.js +0 -18
  480. package/dist/lib/crabbox/cli.d.ts +0 -156
  481. package/dist/lib/crabbox/cli.js +1 -188
  482. package/dist/lib/crabbox/config.d.ts +0 -18
  483. package/dist/lib/crabbox/config.js +1 -19
  484. package/dist/lib/crabbox/lease.d.ts +0 -93
  485. package/dist/lib/crabbox/lease.js +4 -148
  486. package/dist/lib/crabbox/progress.d.ts +0 -56
  487. package/dist/lib/crabbox/progress.js +2 -49
  488. package/dist/lib/crabbox/runtimes.d.ts +0 -94
  489. package/dist/lib/crabbox/runtimes.js +1 -111
  490. package/dist/lib/crabbox/setup-copy.d.ts +0 -64
  491. package/dist/lib/crabbox/setup-copy.js +1 -53
  492. package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
  493. package/dist/lib/daemon/account-state-daemon-service.js +2 -63
  494. package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
  495. package/dist/lib/daemon/attention-notify-service.js +1 -24
  496. package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
  497. package/dist/lib/daemon/auth-sync-service.js +0 -56
  498. package/dist/lib/daemon/catchup-service.d.ts +0 -34
  499. package/dist/lib/daemon/catchup-service.js +0 -30
  500. package/dist/lib/daemon/daemon.d.ts +0 -374
  501. package/dist/lib/daemon/daemon.js +44 -1049
  502. package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
  503. package/dist/lib/daemon/daemon.test-fixture.js +1 -24
  504. package/dist/lib/daemon/device-probe-service.d.ts +0 -16
  505. package/dist/lib/daemon/device-probe-service.js +0 -20
  506. package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
  507. package/dist/lib/daemon/feed-stream-service.js +0 -20
  508. package/dist/lib/daemon/harness-update-service.d.ts +2 -61
  509. package/dist/lib/daemon/harness-update-service.js +6 -86
  510. package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
  511. package/dist/lib/daemon/heartbeat-service.js +0 -1
  512. package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
  513. package/dist/lib/daemon/leaked-daemons.js +2 -78
  514. package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
  515. package/dist/lib/daemon/monitor-engine-service.js +3 -15
  516. package/dist/lib/daemon/runner.d.ts +0 -194
  517. package/dist/lib/daemon/runner.js +39 -760
  518. package/dist/lib/daemon/self-heal-service.d.ts +18 -17
  519. package/dist/lib/daemon/self-heal-service.js +83 -37
  520. package/dist/lib/daemon/self-update-service.d.ts +1 -131
  521. package/dist/lib/daemon/self-update-service.js +26 -189
  522. package/dist/lib/daemon/service.d.ts +0 -73
  523. package/dist/lib/daemon/service.js +0 -34
  524. package/dist/lib/daemon/session-index-service.d.ts +0 -12
  525. package/dist/lib/daemon/session-index-service.js +0 -23
  526. package/dist/lib/daemon/session-state-service.d.ts +0 -8
  527. package/dist/lib/daemon/session-state-service.js +0 -8
  528. package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
  529. package/dist/lib/daemon/session-summarizer-service.js +1 -19
  530. package/dist/lib/daemon/session-title-service.d.ts +0 -25
  531. package/dist/lib/daemon/session-title-service.js +0 -32
  532. package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
  533. package/dist/lib/daemon/state-dir-check-service.js +0 -29
  534. package/dist/lib/daemon/supervisor.d.ts +0 -112
  535. package/dist/lib/daemon/supervisor.js +4 -147
  536. package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
  537. package/dist/lib/daemon/testdata/process-view-start.js +0 -5
  538. package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
  539. package/dist/lib/daemon/tmux-reap-service.js +0 -1
  540. package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
  541. package/dist/lib/daemon/usage-sync-service.js +0 -26
  542. package/dist/lib/daemon/watchdog-service.d.ts +0 -9
  543. package/dist/lib/daemon/watchdog-service.js +0 -13
  544. package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
  545. package/dist/lib/daemon/webhook-receiver-service.js +0 -1
  546. package/dist/lib/daemon-health.d.ts +0 -55
  547. package/dist/lib/daemon-health.js +4 -77
  548. package/dist/lib/daemon-services.d.ts +0 -36
  549. package/dist/lib/daemon-services.js +0 -45
  550. package/dist/lib/daemon-ticks.d.ts +0 -126
  551. package/dist/lib/daemon-ticks.js +1 -156
  552. package/dist/lib/daemon-webhooks.d.ts +0 -57
  553. package/dist/lib/daemon-webhooks.js +2 -54
  554. package/dist/lib/deeplink/register.d.ts +0 -15
  555. package/dist/lib/deeplink/register.js +0 -60
  556. package/dist/lib/deeplink/url.d.ts +0 -24
  557. package/dist/lib/deeplink/url.js +1 -33
  558. package/dist/lib/device-config.d.ts +1 -192
  559. package/dist/lib/device-config.js +86 -240
  560. package/dist/lib/devices/config-migration.d.ts +0 -43
  561. package/dist/lib/devices/config-migration.js +7 -127
  562. package/dist/lib/devices/connect.d.ts +0 -168
  563. package/dist/lib/devices/connect.js +6 -254
  564. package/dist/lib/devices/device-docs.d.ts +0 -24
  565. package/dist/lib/devices/device-docs.js +0 -46
  566. package/dist/lib/devices/discovery-policy.d.ts +0 -30
  567. package/dist/lib/devices/discovery-policy.js +3 -34
  568. package/dist/lib/devices/doctor-findings.d.ts +0 -109
  569. package/dist/lib/devices/doctor-findings.js +30 -326
  570. package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
  571. package/dist/lib/devices/doctor-overview-cache.js +0 -81
  572. package/dist/lib/devices/fleet-divergence.d.ts +0 -89
  573. package/dist/lib/devices/fleet-divergence.js +1 -60
  574. package/dist/lib/devices/fleet-inventory.d.ts +0 -27
  575. package/dist/lib/devices/fleet-inventory.js +0 -38
  576. package/dist/lib/devices/fleet.d.ts +0 -95
  577. package/dist/lib/devices/fleet.js +0 -79
  578. package/dist/lib/devices/harness-inventory.d.ts +0 -75
  579. package/dist/lib/devices/harness-inventory.js +0 -101
  580. package/dist/lib/devices/health-report.d.ts +0 -37
  581. package/dist/lib/devices/health-report.js +0 -73
  582. package/dist/lib/devices/health.d.ts +0 -71
  583. package/dist/lib/devices/health.js +2 -82
  584. package/dist/lib/devices/interactive-host.d.ts +0 -10
  585. package/dist/lib/devices/interactive-host.js +0 -34
  586. package/dist/lib/devices/known-hosts.d.ts +0 -45
  587. package/dist/lib/devices/known-hosts.js +0 -77
  588. package/dist/lib/devices/pending.d.ts +0 -31
  589. package/dist/lib/devices/pending.js +7 -67
  590. package/dist/lib/devices/pool.d.ts +0 -36
  591. package/dist/lib/devices/pool.js +0 -30
  592. package/dist/lib/devices/reachability.d.ts +0 -25
  593. package/dist/lib/devices/reachability.js +0 -14
  594. package/dist/lib/devices/registry.d.ts +0 -141
  595. package/dist/lib/devices/registry.js +4 -151
  596. package/dist/lib/devices/resolve-profile.d.ts +0 -18
  597. package/dist/lib/devices/resolve-profile.js +0 -18
  598. package/dist/lib/devices/resolve-target.d.ts +0 -20
  599. package/dist/lib/devices/resolve-target.js +1 -51
  600. package/dist/lib/devices/rollout-verify.d.ts +1 -81
  601. package/dist/lib/devices/rollout-verify.js +0 -77
  602. package/dist/lib/devices/self-host.d.ts +0 -7
  603. package/dist/lib/devices/self-host.js +1 -29
  604. package/dist/lib/devices/ssh-config.d.ts +0 -18
  605. package/dist/lib/devices/ssh-config.js +0 -9
  606. package/dist/lib/devices/stats-cache.d.ts +0 -48
  607. package/dist/lib/devices/stats-cache.js +0 -80
  608. package/dist/lib/devices/sync.d.ts +0 -97
  609. package/dist/lib/devices/sync.js +0 -88
  610. package/dist/lib/devices/tailscale.d.ts +0 -18
  611. package/dist/lib/devices/tailscale.js +1 -38
  612. package/dist/lib/devices/terminfo.d.ts +0 -27
  613. package/dist/lib/devices/terminfo.js +2 -64
  614. package/dist/lib/devices/worker-pick.d.ts +0 -15
  615. package/dist/lib/devices/worker-pick.js +0 -48
  616. package/dist/lib/diff-text.d.ts +0 -18
  617. package/dist/lib/diff-text.js +0 -15
  618. package/dist/lib/doctor-diff.d.ts +0 -79
  619. package/dist/lib/doctor-diff.js +2 -181
  620. package/dist/lib/drift-sync.d.ts +0 -29
  621. package/dist/lib/drift-sync.js +0 -40
  622. package/dist/lib/drift.d.ts +0 -43
  623. package/dist/lib/drift.js +0 -31
  624. package/dist/lib/event-families.d.ts +0 -17
  625. package/dist/lib/event-families.js +0 -33
  626. package/dist/lib/event-provenance.d.ts +0 -4
  627. package/dist/lib/event-provenance.js +0 -5
  628. package/dist/lib/event-stream.d.ts +0 -29
  629. package/dist/lib/event-stream.js +0 -36
  630. package/dist/lib/events-ingest.d.ts +0 -27
  631. package/dist/lib/events-ingest.js +0 -54
  632. package/dist/lib/exec-account-home.d.ts +0 -24
  633. package/dist/lib/exec-account-home.js +0 -41
  634. package/dist/lib/exec-bounded.d.ts +1 -37
  635. package/dist/lib/exec-bounded.js +10 -46
  636. package/dist/lib/exec.d.ts +3 -583
  637. package/dist/lib/exec.js +18 -1025
  638. package/dist/lib/factory/snapshot.js +1 -15
  639. package/dist/lib/feed/activity-stream.d.ts +0 -27
  640. package/dist/lib/feed/activity-stream.js +4 -80
  641. package/dist/lib/feed/activity.d.ts +1 -243
  642. package/dist/lib/feed/activity.js +8 -273
  643. package/dist/lib/feed/answer.d.ts +0 -103
  644. package/dist/lib/feed/answer.js +0 -267
  645. package/dist/lib/feed/attention.d.ts +0 -56
  646. package/dist/lib/feed/attention.js +0 -161
  647. package/dist/lib/feed/envelope.d.ts +2 -17
  648. package/dist/lib/feed/envelope.js +0 -14
  649. package/dist/lib/feed/events.d.ts +0 -118
  650. package/dist/lib/feed/events.js +13 -213
  651. package/dist/lib/feed/feed.d.ts +1 -250
  652. package/dist/lib/feed/feed.js +24 -334
  653. package/dist/lib/feed/hub-server.d.ts +0 -100
  654. package/dist/lib/feed/hub-server.js +1 -191
  655. package/dist/lib/feed/hub.d.ts +0 -53
  656. package/dist/lib/feed/hub.js +0 -89
  657. package/dist/lib/feed/pr-status.d.ts +1 -19
  658. package/dist/lib/feed/pr-status.js +0 -18
  659. package/dist/lib/feed/tool-activity.d.ts +0 -59
  660. package/dist/lib/feed/tool-activity.js +1 -119
  661. package/dist/lib/feed/tools.d.ts +0 -100
  662. package/dist/lib/feed/tools.js +0 -89
  663. package/dist/lib/feed/watch.d.ts +0 -33
  664. package/dist/lib/feed/watch.js +2 -94
  665. package/dist/lib/feed-broadcast.d.ts +0 -148
  666. package/dist/lib/feed-broadcast.js +1 -283
  667. package/dist/lib/feed-outcome.d.ts +0 -50
  668. package/dist/lib/feed-outcome.js +1 -67
  669. package/dist/lib/feed-policy.d.ts +0 -6
  670. package/dist/lib/feed-policy.js +1 -27
  671. package/dist/lib/feed-post.d.ts +0 -61
  672. package/dist/lib/feed-post.js +4 -61
  673. package/dist/lib/feed-ranking.d.ts +1 -1
  674. package/dist/lib/fleet/apply.d.ts +0 -64
  675. package/dist/lib/fleet/apply.js +0 -125
  676. package/dist/lib/fleet/auth-sync.d.ts +0 -48
  677. package/dist/lib/fleet/auth-sync.js +4 -49
  678. package/dist/lib/fleet/capture.d.ts +0 -26
  679. package/dist/lib/fleet/capture.js +1 -36
  680. package/dist/lib/fleet/manifest.d.ts +0 -38
  681. package/dist/lib/fleet/manifest.js +0 -40
  682. package/dist/lib/fleet/types.d.ts +1 -138
  683. package/dist/lib/fleet/types.js +0 -12
  684. package/dist/lib/fleet-cache.d.ts +0 -12
  685. package/dist/lib/fleet-cache.js +0 -24
  686. package/dist/lib/fleet-shared-state.d.ts +6 -59
  687. package/dist/lib/fleet-shared-state.js +5 -51
  688. package/dist/lib/fleet-status.d.ts +0 -27
  689. package/dist/lib/fleet-status.js +0 -48
  690. package/dist/lib/format.d.ts +0 -74
  691. package/dist/lib/format.js +3 -77
  692. package/dist/lib/friction-heuristics.d.ts +0 -20
  693. package/dist/lib/friction-heuristics.js +0 -8
  694. package/dist/lib/fs-atomic.d.ts +0 -51
  695. package/dist/lib/fs-atomic.js +8 -66
  696. package/dist/lib/fs-walk.d.ts +0 -13
  697. package/dist/lib/fs-walk.js +0 -22
  698. package/dist/lib/fuzzy.d.ts +0 -29
  699. package/dist/lib/fuzzy.js +0 -31
  700. package/dist/lib/gemini-settings.js +0 -12
  701. package/dist/lib/git.d.ts +0 -366
  702. package/dist/lib/git.js +7 -574
  703. package/dist/lib/github/ci-failure.d.ts +30 -0
  704. package/dist/lib/github/ci-failure.js +95 -0
  705. package/dist/lib/github/gh-overload.d.ts +0 -38
  706. package/dist/lib/github/gh-overload.js +3 -55
  707. package/dist/lib/github/pr-mergeable.d.ts +3 -34
  708. package/dist/lib/github/pr-mergeable.js +2 -42
  709. package/dist/lib/github/pr-verdict.d.ts +0 -44
  710. package/dist/lib/github/pr-verdict.js +0 -36
  711. package/dist/lib/github/project-prs.d.ts +135 -105
  712. package/dist/lib/github/project-prs.js +530 -170
  713. package/dist/lib/github/release-drift.d.ts +45 -0
  714. package/dist/lib/github/release-drift.js +91 -0
  715. package/dist/lib/github/rest.d.ts +0 -50
  716. package/dist/lib/github/rest.js +0 -49
  717. package/dist/lib/github/viewer.d.ts +27 -0
  718. package/dist/lib/github/viewer.js +101 -0
  719. package/dist/lib/goose-commands.d.ts +0 -29
  720. package/dist/lib/goose-commands.js +3 -48
  721. package/dist/lib/harness/adapter.d.ts +0 -151
  722. package/dist/lib/harness/adapter.js +0 -41
  723. package/dist/lib/harness/adapters/claude.d.ts +0 -8
  724. package/dist/lib/harness/adapters/claude.js +0 -89
  725. package/dist/lib/harness/adapters/codex.js +0 -18
  726. package/dist/lib/harness/adapters/copilot.js +0 -3
  727. package/dist/lib/harness/adapters/cursor.js +0 -16
  728. package/dist/lib/harness/adapters/droid.js +0 -3
  729. package/dist/lib/harness/adapters/kimi.js +0 -19
  730. package/dist/lib/harness/adapters/muse.js +0 -9
  731. package/dist/lib/harness/adapters/opencode.js +0 -2
  732. package/dist/lib/harness/exec-config-version.d.ts +0 -2
  733. package/dist/lib/harness/exec-config-version.js +0 -13
  734. package/dist/lib/harness/index.js +0 -10
  735. package/dist/lib/harness-auth-capabilities.d.ts +0 -26
  736. package/dist/lib/harness-auth-capabilities.js +0 -18
  737. package/dist/lib/harness-connection-test.d.ts +0 -27
  738. package/dist/lib/harness-connection-test.js +2 -20
  739. package/dist/lib/heal.d.ts +0 -45
  740. package/dist/lib/heal.js +2 -82
  741. package/dist/lib/help.d.ts +0 -32
  742. package/dist/lib/help.js +0 -41
  743. package/dist/lib/helper-download.d.ts +0 -85
  744. package/dist/lib/helper-download.js +0 -95
  745. package/dist/lib/helper-versions.d.ts +0 -51
  746. package/dist/lib/helper-versions.js +1 -45
  747. package/dist/lib/hooks/cache.d.ts +0 -40
  748. package/dist/lib/hooks/cache.js +8 -122
  749. package/dist/lib/hooks/install.d.ts +0 -253
  750. package/dist/lib/hooks/install.js +49 -822
  751. package/dist/lib/hooks/match.d.ts +0 -24
  752. package/dist/lib/hooks/match.js +0 -31
  753. package/dist/lib/hooks/profile.d.ts +0 -21
  754. package/dist/lib/hooks/profile.js +0 -28
  755. package/dist/lib/hosts/credential-transport.d.ts +0 -6
  756. package/dist/lib/hosts/credential-transport.js +0 -17
  757. package/dist/lib/hosts/credentials.d.ts +0 -35
  758. package/dist/lib/hosts/credentials.js +0 -38
  759. package/dist/lib/hosts/dispatch.d.ts +0 -140
  760. package/dist/lib/hosts/dispatch.js +0 -176
  761. package/dist/lib/hosts/logs.d.ts +0 -25
  762. package/dist/lib/hosts/logs.js +1 -51
  763. package/dist/lib/hosts/option.d.ts +0 -12
  764. package/dist/lib/hosts/option.js +0 -12
  765. package/dist/lib/hosts/passthrough.d.ts +0 -129
  766. package/dist/lib/hosts/passthrough.js +12 -249
  767. package/dist/lib/hosts/progress.d.ts +0 -90
  768. package/dist/lib/hosts/progress.js +5 -115
  769. package/dist/lib/hosts/providers/devices.d.ts +0 -19
  770. package/dist/lib/hosts/providers/devices.js +1 -34
  771. package/dist/lib/hosts/providers/local.d.ts +0 -14
  772. package/dist/lib/hosts/providers/local.js +0 -22
  773. package/dist/lib/hosts/ready.d.ts +0 -99
  774. package/dist/lib/hosts/ready.js +0 -101
  775. package/dist/lib/hosts/reconcile.d.ts +0 -38
  776. package/dist/lib/hosts/reconcile.js +1 -50
  777. package/dist/lib/hosts/reconnect.d.ts +0 -75
  778. package/dist/lib/hosts/reconnect.js +0 -98
  779. package/dist/lib/hosts/registry.d.ts +0 -74
  780. package/dist/lib/hosts/registry.js +0 -110
  781. package/dist/lib/hosts/remote-cmd.d.ts +1 -228
  782. package/dist/lib/hosts/remote-cmd.js +19 -294
  783. package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
  784. package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
  785. package/dist/lib/hosts/remote-os.d.ts +0 -19
  786. package/dist/lib/hosts/remote-os.js +0 -22
  787. package/dist/lib/hosts/remote-session-id.d.ts +0 -22
  788. package/dist/lib/hosts/remote-session-id.js +0 -24
  789. package/dist/lib/hosts/routing-flag.d.ts +0 -21
  790. package/dist/lib/hosts/routing-flag.js +0 -21
  791. package/dist/lib/hosts/run-target.d.ts +0 -53
  792. package/dist/lib/hosts/run-target.js +0 -56
  793. package/dist/lib/hosts/session-index.d.ts +1 -53
  794. package/dist/lib/hosts/session-index.js +2 -59
  795. package/dist/lib/hosts/session-marker.d.ts +0 -31
  796. package/dist/lib/hosts/session-marker.js +0 -32
  797. package/dist/lib/hosts/ssh-config.d.ts +0 -25
  798. package/dist/lib/hosts/ssh-config.js +1 -32
  799. package/dist/lib/hosts/tasks.d.ts +0 -54
  800. package/dist/lib/hosts/tasks.js +0 -35
  801. package/dist/lib/hosts/types.d.ts +0 -39
  802. package/dist/lib/hosts/types.js +0 -22
  803. package/dist/lib/humans.d.ts +0 -21
  804. package/dist/lib/humans.js +0 -30
  805. package/dist/lib/identity/client.d.ts +1 -35
  806. package/dist/lib/identity/client.js +3 -29
  807. package/dist/lib/identity/index.d.ts +3 -27
  808. package/dist/lib/identity/index.js +8 -24
  809. package/dist/lib/import.d.ts +0 -104
  810. package/dist/lib/import.js +1 -137
  811. package/dist/lib/installations/active-check.d.ts +0 -53
  812. package/dist/lib/installations/active-check.js +0 -49
  813. package/dist/lib/installations/index.d.ts +0 -9
  814. package/dist/lib/installations/index.js +0 -9
  815. package/dist/lib/installations/installation-lock.js +0 -8
  816. package/dist/lib/installations/launch-gate.d.ts +0 -56
  817. package/dist/lib/installations/launch-gate.js +0 -83
  818. package/dist/lib/installations/migrate.d.ts +0 -100
  819. package/dist/lib/installations/migrate.js +105 -572
  820. package/dist/lib/installations/native-command.d.ts +0 -1
  821. package/dist/lib/installations/native-command.js +0 -6
  822. package/dist/lib/installations/resolve.d.ts +0 -24
  823. package/dist/lib/installations/resolve.js +0 -24
  824. package/dist/lib/installations/shims.d.ts +0 -395
  825. package/dist/lib/installations/shims.js +30 -957
  826. package/dist/lib/installations/store.d.ts +0 -199
  827. package/dist/lib/installations/store.js +1 -297
  828. package/dist/lib/installations/strategies.d.ts +0 -44
  829. package/dist/lib/installations/strategies.js +0 -87
  830. package/dist/lib/installations/types.d.ts +1 -67
  831. package/dist/lib/installations/types.js +0 -6
  832. package/dist/lib/installations/update-cancellation.d.ts +0 -74
  833. package/dist/lib/installations/update-cancellation.js +0 -74
  834. package/dist/lib/installations/update-policy.d.ts +0 -57
  835. package/dist/lib/installations/update-policy.js +0 -62
  836. package/dist/lib/installations/update-runtime.d.ts +0 -88
  837. package/dist/lib/installations/update-runtime.js +1 -127
  838. package/dist/lib/installations/update.d.ts +0 -53
  839. package/dist/lib/installations/update.js +0 -95
  840. package/dist/lib/installations/versions.d.ts +0 -310
  841. package/dist/lib/installations/versions.js +14 -837
  842. package/dist/lib/isolation-boundary-report.d.ts +0 -7
  843. package/dist/lib/isolation-boundary-report.js +0 -7
  844. package/dist/lib/launch-identity.d.ts +0 -8
  845. package/dist/lib/launch-identity.js +0 -8
  846. package/dist/lib/linear-autoclose.d.ts +0 -25
  847. package/dist/lib/linear-autoclose.js +0 -19
  848. package/dist/lib/linear-cache.d.ts +0 -57
  849. package/dist/lib/linear-cache.js +1 -81
  850. package/dist/lib/linear-project-counts.d.ts +0 -83
  851. package/dist/lib/linear-project-counts.js +2 -64
  852. package/dist/lib/linear-projects.d.ts +0 -62
  853. package/dist/lib/linear-projects.js +0 -85
  854. package/dist/lib/linear-rate-limit.d.ts +0 -21
  855. package/dist/lib/linear-rate-limit.js +1 -93
  856. package/dist/lib/linux-userns.d.ts +1 -42
  857. package/dist/lib/linux-userns.js +0 -47
  858. package/dist/lib/lock-compromise.d.ts +0 -7
  859. package/dist/lib/lock-compromise.js +0 -7
  860. package/dist/lib/log-follow.d.ts +0 -2
  861. package/dist/lib/log-follow.js +5 -15
  862. package/dist/lib/loop.d.ts +0 -106
  863. package/dist/lib/loop.js +0 -135
  864. package/dist/lib/machine-id.d.ts +0 -19
  865. package/dist/lib/machine-id.js +0 -19
  866. package/dist/lib/mailbox-gc.d.ts +0 -7
  867. package/dist/lib/mailbox-gc.js +0 -25
  868. package/dist/lib/mailbox-target.d.ts +0 -31
  869. package/dist/lib/mailbox-target.js +0 -27
  870. package/dist/lib/mailbox.d.ts +0 -77
  871. package/dist/lib/mailbox.js +5 -105
  872. package/dist/lib/manifest.d.ts +0 -4
  873. package/dist/lib/manifest.js +0 -36
  874. package/dist/lib/markdown.d.ts +0 -3
  875. package/dist/lib/markdown.js +0 -9
  876. package/dist/lib/mcp-registry.d.ts +1 -50
  877. package/dist/lib/mcp-registry.js +0 -64
  878. package/dist/lib/mcp.d.ts +0 -115
  879. package/dist/lib/mcp.js +3 -199
  880. package/dist/lib/memory-cache.d.ts +0 -11
  881. package/dist/lib/memory-cache.js +0 -9
  882. package/dist/lib/memory.d.ts +0 -52
  883. package/dist/lib/memory.js +12 -74
  884. package/dist/lib/menubar/download-menubar.d.ts +0 -35
  885. package/dist/lib/menubar/download-menubar.js +0 -38
  886. package/dist/lib/menubar/install-menubar.d.ts +0 -405
  887. package/dist/lib/menubar/install-menubar.js +25 -667
  888. package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
  889. package/dist/lib/menubar/migrate-prefs.js +1 -70
  890. package/dist/lib/menubar/notify-desktop.d.ts +0 -82
  891. package/dist/lib/menubar/notify-desktop.js +0 -68
  892. package/dist/lib/menubar/resolve-version.d.ts +0 -41
  893. package/dist/lib/menubar/resolve-version.js +2 -44
  894. package/dist/lib/menubar/snapshot.d.ts +13 -66
  895. package/dist/lib/menubar/snapshot.js +45 -39
  896. package/dist/lib/merged-resources.d.ts +0 -10
  897. package/dist/lib/merged-resources.js +0 -10
  898. package/dist/lib/migrate-fold.d.ts +0 -31
  899. package/dist/lib/migrate-fold.js +6 -38
  900. package/dist/lib/model-tier-overrides.d.ts +0 -30
  901. package/dist/lib/model-tier-overrides.js +0 -14
  902. package/dist/lib/model-tiers.d.ts +0 -43
  903. package/dist/lib/model-tiers.js +5 -78
  904. package/dist/lib/models.d.ts +0 -145
  905. package/dist/lib/models.js +3 -333
  906. package/dist/lib/monitors/config.d.ts +0 -187
  907. package/dist/lib/monitors/config.js +4 -101
  908. package/dist/lib/monitors/dispatch.d.ts +0 -22
  909. package/dist/lib/monitors/dispatch.js +0 -35
  910. package/dist/lib/monitors/engine.d.ts +1 -53
  911. package/dist/lib/monitors/engine.js +17 -106
  912. package/dist/lib/monitors/fingerprint.d.ts +0 -43
  913. package/dist/lib/monitors/fingerprint.js +0 -57
  914. package/dist/lib/monitors/pid-watch.d.ts +0 -31
  915. package/dist/lib/monitors/pid-watch.js +0 -31
  916. package/dist/lib/monitors/remote.d.ts +0 -52
  917. package/dist/lib/monitors/remote.js +0 -42
  918. package/dist/lib/monitors/sources/command.d.ts +2 -9
  919. package/dist/lib/monitors/sources/command.js +13 -34
  920. package/dist/lib/monitors/sources/device.d.ts +0 -10
  921. package/dist/lib/monitors/sources/device.js +0 -14
  922. package/dist/lib/monitors/sources/failure.d.ts +0 -27
  923. package/dist/lib/monitors/sources/failure.js +0 -27
  924. package/dist/lib/monitors/sources/file.d.ts +0 -10
  925. package/dist/lib/monitors/sources/file.js +0 -11
  926. package/dist/lib/monitors/sources/http.d.ts +0 -7
  927. package/dist/lib/monitors/sources/http.js +0 -9
  928. package/dist/lib/monitors/sources/index.d.ts +0 -9
  929. package/dist/lib/monitors/sources/index.js +0 -9
  930. package/dist/lib/monitors/sources/poll.d.ts +0 -8
  931. package/dist/lib/monitors/sources/poll.js +0 -8
  932. package/dist/lib/monitors/sources/types.d.ts +0 -18
  933. package/dist/lib/monitors/sources/types.js +0 -8
  934. package/dist/lib/monitors/sources/webhook.d.ts +0 -7
  935. package/dist/lib/monitors/sources/webhook.js +0 -7
  936. package/dist/lib/monitors/sources/ws.d.ts +0 -10
  937. package/dist/lib/monitors/sources/ws.js +3 -13
  938. package/dist/lib/monitors/state.d.ts +0 -132
  939. package/dist/lib/monitors/state.js +2 -86
  940. package/dist/lib/native-accounts.d.ts +0 -32
  941. package/dist/lib/native-accounts.js +0 -17
  942. package/dist/lib/net-close.d.ts +0 -9
  943. package/dist/lib/net-close.js +0 -5
  944. package/dist/lib/notify.d.ts +0 -47
  945. package/dist/lib/notify.js +0 -30
  946. package/dist/lib/onepassword.d.ts +0 -14
  947. package/dist/lib/onepassword.js +0 -12
  948. package/dist/lib/open-url.d.ts +0 -38
  949. package/dist/lib/open-url.js +1 -69
  950. package/dist/lib/openclaw-keychain.js +2 -7
  951. package/dist/lib/operator.d.ts +0 -9
  952. package/dist/lib/operator.js +0 -34
  953. package/dist/lib/origin-machine.d.ts +0 -16
  954. package/dist/lib/origin-machine.js +0 -16
  955. package/dist/lib/output/git-output.d.ts +0 -31
  956. package/dist/lib/output/git-output.js +4 -43
  957. package/dist/lib/overdue.d.ts +0 -35
  958. package/dist/lib/overdue.js +0 -60
  959. package/dist/lib/owner-message.d.ts +0 -20
  960. package/dist/lib/owner-message.js +1 -40
  961. package/dist/lib/packages/output-home.d.ts +0 -28
  962. package/dist/lib/packages/output-home.js +0 -114
  963. package/dist/lib/paths.d.ts +0 -26
  964. package/dist/lib/paths.js +1 -27
  965. package/dist/lib/percentile.d.ts +0 -11
  966. package/dist/lib/percentile.js +0 -11
  967. package/dist/lib/perf/db.d.ts +0 -16
  968. package/dist/lib/perf/db.js +3 -32
  969. package/dist/lib/perf/spool.d.ts +0 -12
  970. package/dist/lib/perf/spool.js +0 -13
  971. package/dist/lib/perf/types.d.ts +0 -26
  972. package/dist/lib/perf/types.js +0 -1
  973. package/dist/lib/permissions-registry.d.ts +0 -48
  974. package/dist/lib/permissions-registry.js +0 -108
  975. package/dist/lib/permissions.d.ts +0 -215
  976. package/dist/lib/permissions.js +4 -407
  977. package/dist/lib/picker.d.ts +0 -124
  978. package/dist/lib/picker.js +0 -140
  979. package/dist/lib/placement.d.ts +0 -57
  980. package/dist/lib/placement.js +0 -47
  981. package/dist/lib/platform/exec.d.ts +0 -73
  982. package/dist/lib/platform/exec.js +0 -80
  983. package/dist/lib/platform/index.d.ts +0 -14
  984. package/dist/lib/platform/index.js +0 -14
  985. package/dist/lib/platform/ipc.d.ts +0 -10
  986. package/dist/lib/platform/ipc.js +0 -13
  987. package/dist/lib/platform/links.d.ts +0 -14
  988. package/dist/lib/platform/links.js +0 -25
  989. package/dist/lib/platform/paths.d.ts +0 -48
  990. package/dist/lib/platform/paths.js +0 -52
  991. package/dist/lib/platform/posixpath.d.ts +0 -18
  992. package/dist/lib/platform/posixpath.js +0 -62
  993. package/dist/lib/platform/process.d.ts +0 -67
  994. package/dist/lib/platform/process.js +5 -99
  995. package/dist/lib/platform/winpath.d.ts +0 -50
  996. package/dist/lib/platform/winpath.js +0 -81
  997. package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
  998. package/dist/lib/plugins/plugin-marketplace.js +10 -238
  999. package/dist/lib/plugins/plugins.d.ts +0 -238
  1000. package/dist/lib/plugins/plugins.js +20 -454
  1001. package/dist/lib/plugins/skills.d.ts +0 -86
  1002. package/dist/lib/plugins/skills.js +1 -139
  1003. package/dist/lib/pr-land-detach.d.ts +0 -17
  1004. package/dist/lib/pr-land-detach.js +0 -30
  1005. package/dist/lib/pricing/cost.d.ts +0 -29
  1006. package/dist/lib/pricing/cost.js +0 -38
  1007. package/dist/lib/pricing/index.d.ts +0 -6
  1008. package/dist/lib/pricing/index.js +0 -6
  1009. package/dist/lib/pricing/table.d.ts +0 -8
  1010. package/dist/lib/pricing/table.js +3 -56
  1011. package/dist/lib/probe.d.ts +0 -5
  1012. package/dist/lib/probe.js +0 -40
  1013. package/dist/lib/profiles-presets.d.ts +0 -20
  1014. package/dist/lib/profiles-presets.js +1 -36
  1015. package/dist/lib/profiles.d.ts +0 -185
  1016. package/dist/lib/profiles.js +1 -158
  1017. package/dist/lib/project-doctor.d.ts +0 -29
  1018. package/dist/lib/project-doctor.js +0 -26
  1019. package/dist/lib/project-focus.d.ts +0 -41
  1020. package/dist/lib/project-focus.js +0 -49
  1021. package/dist/lib/project-import.d.ts +0 -41
  1022. package/dist/lib/project-import.js +0 -36
  1023. package/dist/lib/project-key.d.ts +0 -65
  1024. package/dist/lib/project-key.js +0 -70
  1025. package/dist/lib/project-launch.d.ts +0 -49
  1026. package/dist/lib/project-launch.js +2 -91
  1027. package/dist/lib/project-probe.d.ts +0 -86
  1028. package/dist/lib/project-probe.js +1 -88
  1029. package/dist/lib/project-pull.d.ts +0 -96
  1030. package/dist/lib/project-pull.js +0 -122
  1031. package/dist/lib/project-resources.d.ts +0 -44
  1032. package/dist/lib/project-resources.js +7 -171
  1033. package/dist/lib/project-root.d.ts +0 -95
  1034. package/dist/lib/project-root.js +0 -101
  1035. package/dist/lib/project-schedule.d.ts +0 -43
  1036. package/dist/lib/project-schedule.js +0 -52
  1037. package/dist/lib/project-status.d.ts +0 -108
  1038. package/dist/lib/project-status.js +0 -117
  1039. package/dist/lib/projects.d.ts +0 -197
  1040. package/dist/lib/projects.js +1 -213
  1041. package/dist/lib/pwsh.d.ts +0 -41
  1042. package/dist/lib/pwsh.js +0 -51
  1043. package/dist/lib/quick-todo.d.ts +84 -0
  1044. package/dist/lib/quick-todo.js +243 -0
  1045. package/dist/lib/reconcile-and-repair.d.ts +0 -78
  1046. package/dist/lib/reconcile-and-repair.js +3 -66
  1047. package/dist/lib/redact.d.ts +0 -29
  1048. package/dist/lib/redact.js +0 -54
  1049. package/dist/lib/refresh-coordinator.d.ts +0 -15
  1050. package/dist/lib/refresh-coordinator.js +0 -10
  1051. package/dist/lib/refresh.d.ts +0 -39
  1052. package/dist/lib/refresh.js +0 -45
  1053. package/dist/lib/registry.d.ts +0 -65
  1054. package/dist/lib/registry.js +0 -127
  1055. package/dist/lib/reminders.d.ts +0 -21
  1056. package/dist/lib/reminders.js +0 -30
  1057. package/dist/lib/remote-agents-json.d.ts +0 -44
  1058. package/dist/lib/remote-agents-json.js +1 -44
  1059. package/dist/lib/reserved-stores.d.ts +0 -28
  1060. package/dist/lib/reserved-stores.js +2 -28
  1061. package/dist/lib/resource-aliases.d.ts +0 -12
  1062. package/dist/lib/resource-aliases.js +0 -12
  1063. package/dist/lib/resource-content-diff.d.ts +0 -28
  1064. package/dist/lib/resource-content-diff.js +7 -34
  1065. package/dist/lib/resource-inventory.d.ts +0 -51
  1066. package/dist/lib/resource-inventory.js +0 -45
  1067. package/dist/lib/resource-patterns.d.ts +0 -32
  1068. package/dist/lib/resource-patterns.js +0 -34
  1069. package/dist/lib/resource-profiles.d.ts +0 -7
  1070. package/dist/lib/resource-profiles.js +0 -11
  1071. package/dist/lib/resources/types.d.ts +0 -50
  1072. package/dist/lib/resources/types.js +0 -7
  1073. package/dist/lib/resources/workflows.d.ts +0 -7
  1074. package/dist/lib/resources/workflows.js +0 -13
  1075. package/dist/lib/resources.d.ts +0 -65
  1076. package/dist/lib/resources.js +0 -78
  1077. package/dist/lib/routers.d.ts +0 -67
  1078. package/dist/lib/routers.js +0 -60
  1079. package/dist/lib/routine-activation.d.ts +0 -23
  1080. package/dist/lib/routine-activation.js +0 -24
  1081. package/dist/lib/routine-context.d.ts +1 -91
  1082. package/dist/lib/routine-context.js +0 -107
  1083. package/dist/lib/routine-notify-owner.d.ts +0 -79
  1084. package/dist/lib/routine-notify-owner.js +1 -103
  1085. package/dist/lib/routine-notify.d.ts +0 -70
  1086. package/dist/lib/routine-notify.js +1 -75
  1087. package/dist/lib/routine-process-cleanup.d.ts +0 -1
  1088. package/dist/lib/routine-process-cleanup.js +1 -4
  1089. package/dist/lib/routine-readiness.d.ts +0 -63
  1090. package/dist/lib/routine-readiness.js +4 -86
  1091. package/dist/lib/routines-format.d.ts +0 -40
  1092. package/dist/lib/routines-format.js +0 -67
  1093. package/dist/lib/routines-placement.d.ts +0 -33
  1094. package/dist/lib/routines-placement.js +0 -40
  1095. package/dist/lib/routines-project.d.ts +0 -57
  1096. package/dist/lib/routines-project.js +6 -80
  1097. package/dist/lib/rules/compile.d.ts +0 -66
  1098. package/dist/lib/rules/compile.js +6 -118
  1099. package/dist/lib/rules/compose.d.ts +0 -56
  1100. package/dist/lib/rules/compose.js +2 -83
  1101. package/dist/lib/rules/rules.d.ts +0 -23
  1102. package/dist/lib/rules/rules.js +0 -35
  1103. package/dist/lib/rules/run-sync.d.ts +0 -16
  1104. package/dist/lib/rules/run-sync.js +1 -44
  1105. package/dist/lib/run-config.d.ts +0 -7
  1106. package/dist/lib/run-config.js +0 -8
  1107. package/dist/lib/run-defaults.d.ts +0 -14
  1108. package/dist/lib/run-defaults.js +0 -14
  1109. package/dist/lib/run-notify.d.ts +0 -18
  1110. package/dist/lib/run-notify.js +0 -36
  1111. package/dist/lib/run-trace-sync.d.ts +0 -21
  1112. package/dist/lib/run-trace-sync.js +2 -66
  1113. package/dist/lib/rush-session.d.ts +0 -26
  1114. package/dist/lib/rush-session.js +0 -28
  1115. package/dist/lib/sandbox.d.ts +0 -45
  1116. package/dist/lib/sandbox.js +5 -93
  1117. package/dist/lib/scheduler.d.ts +0 -28
  1118. package/dist/lib/scheduler.js +0 -45
  1119. package/dist/lib/scheduling/routines.d.ts +0 -652
  1120. package/dist/lib/scheduling/routines.js +8 -475
  1121. package/dist/lib/secrets-cli.d.ts +3 -8
  1122. package/dist/lib/secrets-cli.js +1 -19
  1123. package/dist/lib/secrets-client.d.ts +0 -117
  1124. package/dist/lib/secrets-client.js +4 -275
  1125. package/dist/lib/secrets-policy.d.ts +0 -142
  1126. package/dist/lib/secrets-policy.js +4 -237
  1127. package/dist/lib/secrets-types.d.ts +0 -87
  1128. package/dist/lib/secrets-types.js +0 -13
  1129. package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
  1130. package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
  1131. package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
  1132. package/dist/lib/self-heal/checks/install-staging.js +1 -28
  1133. package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
  1134. package/dist/lib/self-heal/checks/path.js +0 -9
  1135. package/dist/lib/self-heal/checks/resources.js +0 -5
  1136. package/dist/lib/self-heal/checks/shadowing.js +2 -16
  1137. package/dist/lib/self-heal/checks/shims.js +0 -14
  1138. package/dist/lib/self-heal/child.d.ts +12 -0
  1139. package/dist/lib/self-heal/child.js +23 -0
  1140. package/dist/lib/self-heal/registry.d.ts +0 -9
  1141. package/dist/lib/self-heal/registry.js +0 -16
  1142. package/dist/lib/self-heal/types.d.ts +0 -12
  1143. package/dist/lib/self-heal/types.js +0 -15
  1144. package/dist/lib/self-update.d.ts +0 -312
  1145. package/dist/lib/self-update.js +9 -360
  1146. package/dist/lib/service-manifest.d.ts +0 -39
  1147. package/dist/lib/service-manifest.js +0 -72
  1148. package/dist/lib/session/active.d.ts +13 -869
  1149. package/dist/lib/session/active.js +17 -976
  1150. package/dist/lib/session/actor-sidecar.d.ts +1 -32
  1151. package/dist/lib/session/actor-sidecar.js +1 -41
  1152. package/dist/lib/session/bookmarks.d.ts +0 -33
  1153. package/dist/lib/session/bookmarks.js +0 -37
  1154. package/dist/lib/session/bundle.d.ts +0 -86
  1155. package/dist/lib/session/bundle.js +0 -54
  1156. package/dist/lib/session/claude-accounts.d.ts +0 -40
  1157. package/dist/lib/session/claude-accounts.js +0 -49
  1158. package/dist/lib/session/cloud.d.ts +1 -23
  1159. package/dist/lib/session/cloud.js +0 -26
  1160. package/dist/lib/session/db.d.ts +5 -658
  1161. package/dist/lib/session/db.js +22 -1443
  1162. package/dist/lib/session/detached.d.ts +0 -21
  1163. package/dist/lib/session/detached.js +0 -29
  1164. package/dist/lib/session/discover.d.ts +3 -420
  1165. package/dist/lib/session/discover.js +30 -1123
  1166. package/dist/lib/session/fork.d.ts +1 -41
  1167. package/dist/lib/session/fork.js +0 -19
  1168. package/dist/lib/session/ghostty-tabs.d.ts +0 -24
  1169. package/dist/lib/session/ghostty-tabs.js +0 -37
  1170. package/dist/lib/session/glance-files.d.ts +19 -0
  1171. package/dist/lib/session/glance-files.js +258 -0
  1172. package/dist/lib/session/hook-sessions.d.ts +0 -33
  1173. package/dist/lib/session/hook-sessions.js +4 -99
  1174. package/dist/lib/session/host-link.d.ts +1 -94
  1175. package/dist/lib/session/host-link.js +1 -81
  1176. package/dist/lib/session/inject-target.d.ts +8 -0
  1177. package/dist/lib/session/inject-target.js +32 -0
  1178. package/dist/lib/session/inject.d.ts +0 -15
  1179. package/dist/lib/session/inject.js +0 -15
  1180. package/dist/lib/session/live-metadata.d.ts +1 -34
  1181. package/dist/lib/session/live-metadata.js +1 -73
  1182. package/dist/lib/session/local-tmux-attach.d.ts +0 -37
  1183. package/dist/lib/session/local-tmux-attach.js +1 -76
  1184. package/dist/lib/session/migrate-targets.d.ts +0 -46
  1185. package/dist/lib/session/migrate-targets.js +0 -24
  1186. package/dist/lib/session/migrations.d.ts +0 -12
  1187. package/dist/lib/session/migrations.js +1 -20
  1188. package/dist/lib/session/mirror.d.ts +0 -32
  1189. package/dist/lib/session/mirror.js +0 -77
  1190. package/dist/lib/session/origin-machine.js +0 -3
  1191. package/dist/lib/session/pid-registry.d.ts +0 -80
  1192. package/dist/lib/session/pid-registry.js +2 -81
  1193. package/dist/lib/session/presence.d.ts +0 -39
  1194. package/dist/lib/session/presence.js +2 -52
  1195. package/dist/lib/session/process-view.d.ts +0 -11
  1196. package/dist/lib/session/process-view.js +0 -25
  1197. package/dist/lib/session/projection.d.ts +0 -3
  1198. package/dist/lib/session/projection.js +0 -10
  1199. package/dist/lib/session/provenance.d.ts +1 -37
  1200. package/dist/lib/session/provenance.js +0 -69
  1201. package/dist/lib/session/recovery.d.ts +1 -40
  1202. package/dist/lib/session/recovery.js +2 -80
  1203. package/dist/lib/session/relative-time.js +0 -3
  1204. package/dist/lib/session/remote/peer-stream.d.ts +0 -42
  1205. package/dist/lib/session/remote/peer-stream.js +0 -64
  1206. package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
  1207. package/dist/lib/session/remote/remote-bundle.js +0 -21
  1208. package/dist/lib/session/remote/remote-list.d.ts +1 -110
  1209. package/dist/lib/session/remote/remote-list.js +5 -139
  1210. package/dist/lib/session/remote/remote.d.ts +0 -98
  1211. package/dist/lib/session/remote/remote.js +3 -119
  1212. package/dist/lib/session/remote/watch.d.ts +1 -34
  1213. package/dist/lib/session/remote/watch.js +12 -72
  1214. package/dist/lib/session/remote-active.d.ts +0 -35
  1215. package/dist/lib/session/remote-active.js +0 -48
  1216. package/dist/lib/session/remote-bundle.js +0 -2
  1217. package/dist/lib/session/remote-list.js +0 -2
  1218. package/dist/lib/session/remote-preview-cache.d.ts +0 -7
  1219. package/dist/lib/session/remote-preview-cache.js +1 -76
  1220. package/dist/lib/session/remote.js +0 -2
  1221. package/dist/lib/session/resume-command.d.ts +0 -6
  1222. package/dist/lib/session/resume-command.js +0 -6
  1223. package/dist/lib/session/resume-owner.d.ts +1 -52
  1224. package/dist/lib/session/resume-owner.js +0 -56
  1225. package/dist/lib/session/run-names.d.ts +0 -24
  1226. package/dist/lib/session/run-names.js +0 -26
  1227. package/dist/lib/session/session-cache.d.ts +2 -146
  1228. package/dist/lib/session/session-cache.js +26 -203
  1229. package/dist/lib/session/short-id.js +0 -3
  1230. package/dist/lib/session/sync/agents.d.ts +0 -68
  1231. package/dist/lib/session/sync/agents.js +0 -0
  1232. package/dist/lib/session/sync/backend.d.ts +0 -39
  1233. package/dist/lib/session/sync/backend.js +0 -45
  1234. package/dist/lib/session/sync/config.d.ts +0 -27
  1235. package/dist/lib/session/sync/config.js +0 -56
  1236. package/dist/lib/session/sync/managed-config.d.ts +0 -17
  1237. package/dist/lib/session/sync/managed-config.js +0 -17
  1238. package/dist/lib/session/sync/managed-key.d.ts +0 -38
  1239. package/dist/lib/session/sync/managed-key.js +1 -42
  1240. package/dist/lib/session/sync/net-client.d.ts +0 -36
  1241. package/dist/lib/session/sync/net-client.js +0 -30
  1242. package/dist/lib/session/sync/provision.d.ts +0 -2
  1243. package/dist/lib/session/sync/provision.js +0 -13
  1244. package/dist/lib/session/sync/r2.d.ts +0 -20
  1245. package/dist/lib/session/sync/r2.js +0 -20
  1246. package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
  1247. package/dist/lib/session/sync/transcript-crypto.js +5 -37
  1248. package/dist/lib/session/sync/worker-template.d.ts +0 -5
  1249. package/dist/lib/session/sync/worker-template.js +0 -40
  1250. package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
  1251. package/dist/lib/session/testdata/process-view-private.js +0 -1
  1252. package/dist/lib/session/throughput.d.ts +0 -24
  1253. package/dist/lib/session/throughput.js +1 -25
  1254. package/dist/lib/session/timeline-pass.d.ts +1 -63
  1255. package/dist/lib/session/timeline-pass.js +161 -148
  1256. package/dist/lib/session/title.d.ts +0 -182
  1257. package/dist/lib/session/title.js +0 -139
  1258. package/dist/lib/session/tool-index.d.ts +2 -21
  1259. package/dist/lib/session/tool-index.js +3 -75
  1260. package/dist/lib/session/tool-store.d.ts +2 -48
  1261. package/dist/lib/session/tool-store.js +1 -33
  1262. package/dist/lib/session/viewing-in.d.ts +0 -67
  1263. package/dist/lib/session/viewing-in.js +1 -71
  1264. package/dist/lib/session/watch.js +0 -2
  1265. package/dist/lib/session/width.js +0 -3
  1266. package/dist/lib/sessions-client.d.ts +0 -46
  1267. package/dist/lib/sessions-client.js +36 -113
  1268. package/dist/lib/settings-manifest.d.ts +1 -17
  1269. package/dist/lib/settings-manifest.js +4 -57
  1270. package/dist/lib/setup-tool-install.d.ts +0 -1
  1271. package/dist/lib/setup-tool-install.js +2 -7
  1272. package/dist/lib/setup-tool-status.d.ts +0 -3
  1273. package/dist/lib/setup-tool-status.js +4 -14
  1274. package/dist/lib/sha256-asset.d.ts +0 -20
  1275. package/dist/lib/sha256-asset.js +0 -20
  1276. package/dist/lib/share-runtime.d.ts +0 -10
  1277. package/dist/lib/share-runtime.js +1 -27
  1278. package/dist/lib/shim-heal.d.ts +0 -15
  1279. package/dist/lib/shim-heal.js +3 -29
  1280. package/dist/lib/signin-badge.d.ts +0 -72
  1281. package/dist/lib/signin-badge.js +0 -86
  1282. package/dist/lib/sink-format.d.ts +0 -32
  1283. package/dist/lib/sink-format.js +0 -14
  1284. package/dist/lib/smart-launch.d.ts +0 -75
  1285. package/dist/lib/smart-launch.js +1 -83
  1286. package/dist/lib/snapshot.d.ts +0 -46
  1287. package/dist/lib/snapshot.js +5 -31
  1288. package/dist/lib/spinner.d.ts +0 -37
  1289. package/dist/lib/spinner.js +0 -37
  1290. package/dist/lib/sqlite.d.ts +0 -13
  1291. package/dist/lib/sqlite.js +3 -71
  1292. package/dist/lib/ssh-exec.d.ts +0 -209
  1293. package/dist/lib/ssh-exec.js +11 -248
  1294. package/dist/lib/ssh-tunnel.d.ts +0 -43
  1295. package/dist/lib/ssh-tunnel.js +2 -48
  1296. package/dist/lib/staleness/checkers/commands.d.ts +0 -4
  1297. package/dist/lib/staleness/checkers/commands.js +0 -4
  1298. package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
  1299. package/dist/lib/staleness/checkers/hooks.js +0 -15
  1300. package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
  1301. package/dist/lib/staleness/checkers/mcp.js +0 -9
  1302. package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
  1303. package/dist/lib/staleness/checkers/permissions.js +0 -13
  1304. package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
  1305. package/dist/lib/staleness/checkers/plugins.js +0 -8
  1306. package/dist/lib/staleness/checkers/rules.d.ts +0 -15
  1307. package/dist/lib/staleness/checkers/rules.js +0 -26
  1308. package/dist/lib/staleness/checkers/skills.d.ts +0 -4
  1309. package/dist/lib/staleness/checkers/skills.js +0 -4
  1310. package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
  1311. package/dist/lib/staleness/checkers/subagents.js +0 -9
  1312. package/dist/lib/staleness/checkers/types.d.ts +0 -34
  1313. package/dist/lib/staleness/checkers/types.js +0 -19
  1314. package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
  1315. package/dist/lib/staleness/checkers/workflows.js +0 -7
  1316. package/dist/lib/staleness/detectors/commands.js +0 -17
  1317. package/dist/lib/staleness/detectors/hooks.js +1 -6
  1318. package/dist/lib/staleness/detectors/mcp.js +0 -4
  1319. package/dist/lib/staleness/detectors/permissions.js +10 -23
  1320. package/dist/lib/staleness/detectors/rules.js +0 -6
  1321. package/dist/lib/staleness/detectors/skills.d.ts +0 -1
  1322. package/dist/lib/staleness/detectors/skills.js +1 -12
  1323. package/dist/lib/staleness/detectors/types.d.ts +0 -10
  1324. package/dist/lib/staleness/fingerprint.d.ts +0 -19
  1325. package/dist/lib/staleness/fingerprint.js +0 -35
  1326. package/dist/lib/staleness/index.d.ts +0 -28
  1327. package/dist/lib/staleness/index.js +1 -45
  1328. package/dist/lib/staleness/layers.d.ts +0 -23
  1329. package/dist/lib/staleness/layers.js +0 -34
  1330. package/dist/lib/staleness/prune.d.ts +0 -71
  1331. package/dist/lib/staleness/prune.js +2 -27
  1332. package/dist/lib/staleness/registry.d.ts +0 -10
  1333. package/dist/lib/staleness/registry.js +3 -33
  1334. package/dist/lib/staleness/types.d.ts +0 -36
  1335. package/dist/lib/staleness/types.js +0 -5
  1336. package/dist/lib/staleness/writers/commands.js +1 -48
  1337. package/dist/lib/staleness/writers/hooks.js +1 -18
  1338. package/dist/lib/staleness/writers/kinds.d.ts +0 -12
  1339. package/dist/lib/staleness/writers/kinds.js +0 -1
  1340. package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
  1341. package/dist/lib/staleness/writers/mcp.js +0 -13
  1342. package/dist/lib/staleness/writers/plugins.js +0 -4
  1343. package/dist/lib/staleness/writers/rules.d.ts +0 -1
  1344. package/dist/lib/staleness/writers/rules.js +1 -19
  1345. package/dist/lib/staleness/writers/skills.js +3 -14
  1346. package/dist/lib/staleness/writers/sources.d.ts +0 -11
  1347. package/dist/lib/staleness/writers/sources.js +0 -32
  1348. package/dist/lib/staleness/writers/subagents.js +0 -16
  1349. package/dist/lib/staleness/writers/types.d.ts +0 -58
  1350. package/dist/lib/staleness/writers/workflows.js +1 -1
  1351. package/dist/lib/standalone-tools.d.ts +24 -0
  1352. package/dist/lib/standalone-tools.js +58 -0
  1353. package/dist/lib/star-nudge.d.ts +0 -32
  1354. package/dist/lib/star-nudge.js +2 -36
  1355. package/dist/lib/startup/command-registry.d.ts +0 -45
  1356. package/dist/lib/startup/command-registry.js +1 -46
  1357. package/dist/lib/startup/dev-build.d.ts +0 -9
  1358. package/dist/lib/startup/dev-build.js +1 -42
  1359. package/dist/lib/startup/root-command.d.ts +0 -19
  1360. package/dist/lib/startup/root-command.js +0 -19
  1361. package/dist/lib/startup/spellcheck.d.ts +0 -13
  1362. package/dist/lib/startup/spellcheck.js +0 -13
  1363. package/dist/lib/state.d.ts +0 -376
  1364. package/dist/lib/state.js +19 -737
  1365. package/dist/lib/storage/selection.d.ts +0 -40
  1366. package/dist/lib/storage/selection.js +0 -29
  1367. package/dist/lib/subagents-registry.d.ts +0 -56
  1368. package/dist/lib/subagents-registry.js +0 -99
  1369. package/dist/lib/subagents.d.ts +0 -128
  1370. package/dist/lib/subagents.js +1 -158
  1371. package/dist/lib/summarizer/config.d.ts +0 -37
  1372. package/dist/lib/summarizer/config.js +0 -37
  1373. package/dist/lib/summarizer/pass.d.ts +0 -20
  1374. package/dist/lib/summarizer/pass.js +1 -34
  1375. package/dist/lib/summarizer/summarize.d.ts +1 -49
  1376. package/dist/lib/summarizer/summarize.js +0 -35
  1377. package/dist/lib/sync-passphrase.d.ts +0 -16
  1378. package/dist/lib/sync-passphrase.js +1 -18
  1379. package/dist/lib/sync-status.d.ts +0 -72
  1380. package/dist/lib/sync-status.js +0 -55
  1381. package/dist/lib/sync-umbrella.d.ts +0 -54
  1382. package/dist/lib/sync-umbrella.js +0 -48
  1383. package/dist/lib/system-run-sync.d.ts +0 -5
  1384. package/dist/lib/system-run-sync.js +1 -31
  1385. package/dist/lib/teams/agents.d.ts +1 -444
  1386. package/dist/lib/teams/agents.js +11 -871
  1387. package/dist/lib/teams/api.d.ts +2 -52
  1388. package/dist/lib/teams/api.js +4 -63
  1389. package/dist/lib/teams/debug.d.ts +0 -6
  1390. package/dist/lib/teams/debug.js +0 -6
  1391. package/dist/lib/teams/delivery.d.ts +0 -41
  1392. package/dist/lib/teams/delivery.js +0 -32
  1393. package/dist/lib/teams/file_ops.d.ts +0 -11
  1394. package/dist/lib/teams/file_ops.js +0 -11
  1395. package/dist/lib/teams/forEach.d.ts +0 -76
  1396. package/dist/lib/teams/forEach.js +1 -77
  1397. package/dist/lib/teams/index.d.ts +1 -7
  1398. package/dist/lib/teams/index.js +1 -7
  1399. package/dist/lib/teams/parsers.d.ts +0 -4
  1400. package/dist/lib/teams/parsers.js +0 -81
  1401. package/dist/lib/teams/persistence.d.ts +0 -2
  1402. package/dist/lib/teams/persistence.js +0 -12
  1403. package/dist/lib/teams/placement-probe.d.ts +0 -12
  1404. package/dist/lib/teams/placement-probe.js +1 -51
  1405. package/dist/lib/teams/pr-watch.d.ts +0 -107
  1406. package/dist/lib/teams/pr-watch.js +1 -107
  1407. package/dist/lib/teams/registry.d.ts +0 -36
  1408. package/dist/lib/teams/registry.js +0 -47
  1409. package/dist/lib/teams/remoteWorktree.d.ts +0 -50
  1410. package/dist/lib/teams/remoteWorktree.js +1 -96
  1411. package/dist/lib/teams/scheduler.d.ts +0 -111
  1412. package/dist/lib/teams/scheduler.js +2 -125
  1413. package/dist/lib/teams/summarizer.d.ts +0 -22
  1414. package/dist/lib/teams/summarizer.js +6 -50
  1415. package/dist/lib/teams/supervisor.d.ts +0 -38
  1416. package/dist/lib/teams/supervisor.js +0 -21
  1417. package/dist/lib/teams/worktree.d.ts +0 -95
  1418. package/dist/lib/teams/worktree.js +3 -110
  1419. package/dist/lib/template.d.ts +0 -21
  1420. package/dist/lib/template.js +0 -23
  1421. package/dist/lib/term-client.d.ts +0 -26
  1422. package/dist/lib/term-client.js +0 -48
  1423. package/dist/lib/term-driver.d.ts +0 -5
  1424. package/dist/lib/term-driver.js +0 -8
  1425. package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
  1426. package/dist/lib/terminal/backends/ghostty.js +0 -12
  1427. package/dist/lib/terminal/backends/index.d.ts +0 -17
  1428. package/dist/lib/terminal/backends/index.js +0 -15
  1429. package/dist/lib/terminal/backends/iterm.d.ts +0 -2
  1430. package/dist/lib/terminal/backends/iterm.js +0 -10
  1431. package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
  1432. package/dist/lib/terminal/backends/terminal-app.js +0 -30
  1433. package/dist/lib/terminal/backends/tmux.d.ts +0 -10
  1434. package/dist/lib/terminal/backends/tmux.js +0 -2
  1435. package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
  1436. package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
  1437. package/dist/lib/terminal/engine.d.ts +0 -17
  1438. package/dist/lib/terminal/engine.js +0 -10
  1439. package/dist/lib/terminal/index.d.ts +0 -8
  1440. package/dist/lib/terminal/inject.d.ts +1 -173
  1441. package/dist/lib/terminal/inject.js +0 -146
  1442. package/dist/lib/terminal/policy.d.ts +0 -8
  1443. package/dist/lib/terminal/policy.js +0 -1
  1444. package/dist/lib/terminal/preferred.d.ts +0 -66
  1445. package/dist/lib/terminal/preferred.js +0 -30
  1446. package/dist/lib/terminal/quote.d.ts +0 -8
  1447. package/dist/lib/terminal/quote.js +0 -8
  1448. package/dist/lib/terminal/resolve.d.ts +0 -46
  1449. package/dist/lib/terminal/resolve.js +0 -30
  1450. package/dist/lib/terminal/run-surface.d.ts +0 -56
  1451. package/dist/lib/terminal/run-surface.js +0 -46
  1452. package/dist/lib/terminal/shell.d.ts +0 -3
  1453. package/dist/lib/terminal/shell.js +0 -13
  1454. package/dist/lib/terminal/transport.d.ts +0 -14
  1455. package/dist/lib/terminal/transport.js +1 -30
  1456. package/dist/lib/terminal/types.d.ts +0 -40
  1457. package/dist/lib/terminal/types.js +0 -10
  1458. package/dist/lib/text/relative-time.d.ts +0 -36
  1459. package/dist/lib/text/relative-time.js +0 -43
  1460. package/dist/lib/text/short-id.d.ts +0 -16
  1461. package/dist/lib/text/short-id.js +0 -16
  1462. package/dist/lib/text/width.d.ts +0 -24
  1463. package/dist/lib/text/width.js +10 -52
  1464. package/dist/lib/tmux/binary.d.ts +0 -36
  1465. package/dist/lib/tmux/binary.js +0 -28
  1466. package/dist/lib/tmux/index.d.ts +0 -5
  1467. package/dist/lib/tmux/index.js +0 -5
  1468. package/dist/lib/tmux/orphan-reap.d.ts +0 -253
  1469. package/dist/lib/tmux/orphan-reap.js +3 -299
  1470. package/dist/lib/tmux/paths.d.ts +0 -14
  1471. package/dist/lib/tmux/paths.js +0 -14
  1472. package/dist/lib/tmux/session.d.ts +0 -263
  1473. package/dist/lib/tmux/session.js +6 -344
  1474. package/dist/lib/traces/backend.d.ts +0 -20
  1475. package/dist/lib/traces/backend.js +0 -23
  1476. package/dist/lib/traces/classify.d.ts +0 -20
  1477. package/dist/lib/traces/classify.js +0 -7
  1478. package/dist/lib/traces/insights.d.ts +1 -84
  1479. package/dist/lib/traces/insights.js +0 -126
  1480. package/dist/lib/traces/phenotype.d.ts +0 -69
  1481. package/dist/lib/traces/phenotype.js +0 -150
  1482. package/dist/lib/traces/provision.d.ts +0 -1
  1483. package/dist/lib/traces/provision.js +0 -5
  1484. package/dist/lib/traces/schema2-build.d.ts +3 -60
  1485. package/dist/lib/traces/schema2-build.js +8 -149
  1486. package/dist/lib/traces/schema2-danger.d.ts +0 -30
  1487. package/dist/lib/traces/schema2-danger.js +1 -63
  1488. package/dist/lib/traces/schema2.d.ts +0 -11
  1489. package/dist/lib/traces/segments.d.ts +0 -44
  1490. package/dist/lib/traces/segments.js +0 -65
  1491. package/dist/lib/traces/sync.d.ts +2 -239
  1492. package/dist/lib/traces/sync.js +15 -237
  1493. package/dist/lib/traces/worker-template.d.ts +0 -3
  1494. package/dist/lib/traces/worker-template.js +0 -29
  1495. package/dist/lib/triggers/handlers.d.ts +0 -82
  1496. package/dist/lib/triggers/handlers.js +0 -75
  1497. package/dist/lib/triggers/webhook.d.ts +0 -158
  1498. package/dist/lib/triggers/webhook.js +0 -143
  1499. package/dist/lib/types.d.ts +0 -736
  1500. package/dist/lib/types.js +0 -50
  1501. package/dist/lib/uninstall.d.ts +0 -17
  1502. package/dist/lib/uninstall.js +0 -75
  1503. package/dist/lib/usage-backoff.d.ts +0 -20
  1504. package/dist/lib/usage-backoff.js +3 -60
  1505. package/dist/lib/usage-refresh.d.ts +0 -154
  1506. package/dist/lib/usage-refresh.js +8 -212
  1507. package/dist/lib/verbs.d.ts +0 -12
  1508. package/dist/lib/verbs.js +0 -12
  1509. package/dist/lib/version-duplicates.d.ts +0 -6
  1510. package/dist/lib/version-duplicates.js +0 -6
  1511. package/dist/lib/version.d.ts +0 -55
  1512. package/dist/lib/version.js +1 -58
  1513. package/dist/lib/view-types.d.ts +0 -48
  1514. package/dist/lib/warn-unpushed.d.ts +0 -27
  1515. package/dist/lib/warn-unpushed.js +1 -45
  1516. package/dist/lib/watchdog/history.d.ts +0 -1
  1517. package/dist/lib/watchdog/history.js +0 -3
  1518. package/dist/lib/watchdog/index.js +0 -2
  1519. package/dist/lib/watchdog/log.d.ts +0 -19
  1520. package/dist/lib/watchdog/log.js +0 -34
  1521. package/dist/lib/watchdog/read.d.ts +0 -27
  1522. package/dist/lib/watchdog/read.js +3 -58
  1523. package/dist/lib/watchdog/rotate.d.ts +0 -139
  1524. package/dist/lib/watchdog/rotate.js +2 -151
  1525. package/dist/lib/watchdog/runner.d.ts +0 -125
  1526. package/dist/lib/watchdog/runner.js +3 -223
  1527. package/dist/lib/watchdog/service.d.ts +0 -1
  1528. package/dist/lib/watchdog/service.js +0 -2
  1529. package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
  1530. package/dist/lib/watchdog/watchdog-agent.js +0 -27
  1531. package/dist/lib/watchdog/watchdog.d.ts +0 -7
  1532. package/dist/lib/watchdog/watchdog.js +0 -10
  1533. package/dist/lib/watchdog/watchdogTail.js +0 -7
  1534. package/dist/lib/whats-new.d.ts +0 -10
  1535. package/dist/lib/whats-new.js +0 -21
  1536. package/dist/lib/workflows-registry.d.ts +0 -45
  1537. package/dist/lib/workflows-registry.js +0 -60
  1538. package/dist/lib/workflows.d.ts +0 -282
  1539. package/dist/lib/workflows.js +3 -213
  1540. package/dist/lib/worktree/held.d.ts +0 -89
  1541. package/dist/lib/worktree/held.js +1 -103
  1542. package/dist/lib/wrap.d.ts +0 -32
  1543. package/dist/lib/wrap.js +0 -32
  1544. package/dist/lib/yaml-io.d.ts +0 -45
  1545. package/dist/lib/yaml-io.js +0 -47
  1546. package/dist/session-tracker/dist/adapters/claude.js +0 -2
  1547. package/dist/session-tracker/dist/hook.sh +4 -37
  1548. package/dist/session-tracker/dist/index.d.ts +0 -7
  1549. package/dist/session-tracker/dist/index.js +0 -5
  1550. package/dist/session-tracker/dist/install-hook.d.ts +0 -5
  1551. package/dist/session-tracker/dist/install-hook.js +1 -15
  1552. package/dist/session-tracker/dist/prune-state.js +0 -4
  1553. package/dist/session-tracker/dist/reader.js +0 -4
  1554. package/dist/session-tracker/dist/state-file.d.ts +0 -3
  1555. package/dist/session-tracker/dist/state-file.js +3 -8
  1556. package/package.json +3 -4
  1557. package/scripts/postinstall.js +8 -116
  1558. package/dist/lib/session/artifacts.d.ts +0 -14
  1559. package/dist/lib/session/artifacts.js +0 -101
  1560. package/dist/lib/session/bash-command.d.ts +0 -63
  1561. package/dist/lib/session/bash-command.js +0 -490
  1562. package/dist/lib/session/digest.d.ts +0 -66
  1563. package/dist/lib/session/digest.js +0 -328
  1564. package/dist/lib/session/highlights.d.ts +0 -151
  1565. package/dist/lib/session/highlights.js +0 -391
  1566. package/dist/lib/session/insights.d.ts +0 -165
  1567. package/dist/lib/session/insights.js +0 -563
  1568. package/dist/lib/session/linear.d.ts +0 -19
  1569. package/dist/lib/session/linear.js +0 -99
  1570. package/dist/lib/session/parse.d.ts +0 -224
  1571. package/dist/lib/session/parse.js +0 -2408
  1572. package/dist/lib/session/prompt.d.ts +0 -213
  1573. package/dist/lib/session/prompt.js +0 -601
  1574. package/dist/lib/session/render.d.ts +0 -133
  1575. package/dist/lib/session/render.js +0 -1047
  1576. package/dist/lib/session/share-html.d.ts +0 -35
  1577. package/dist/lib/session/share-html.js +0 -319
  1578. package/dist/lib/session/shell-programs.d.ts +0 -33
  1579. package/dist/lib/session/shell-programs.js +0 -380
  1580. package/dist/lib/session/state.d.ts +0 -269
  1581. package/dist/lib/session/state.js +0 -777
  1582. package/dist/lib/session/stream-render.d.ts +0 -4
  1583. package/dist/lib/session/stream-render.js +0 -131
  1584. package/dist/lib/session/tail.d.ts +0 -88
  1585. package/dist/lib/session/tail.js +0 -294
  1586. package/dist/lib/session/team-filter.d.ts +0 -129
  1587. package/dist/lib/session/team-filter.js +0 -269
  1588. package/dist/lib/session/timeline.d.ts +0 -172
  1589. package/dist/lib/session/timeline.js +0 -636
  1590. package/dist/lib/session/tool-calls.d.ts +0 -132
  1591. package/dist/lib/session/tool-calls.js +0 -674
  1592. package/dist/lib/session/trajectory-compare.d.ts +0 -48
  1593. package/dist/lib/session/trajectory-compare.js +0 -116
  1594. package/dist/lib/session/trajectory-html.d.ts +0 -19
  1595. package/dist/lib/session/trajectory-html.js +0 -771
  1596. package/dist/lib/session/trajectory-lineage.d.ts +0 -93
  1597. package/dist/lib/session/trajectory-lineage.js +0 -195
  1598. package/dist/lib/session/trajectory-text.d.ts +0 -38
  1599. package/dist/lib/session/trajectory-text.js +0 -284
  1600. package/dist/lib/session/trajectory.d.ts +0 -145
  1601. package/dist/lib/session/trajectory.js +0 -394
  1602. package/dist/lib/session/types.d.ts +0 -627
  1603. package/dist/lib/session/types.js +0 -43
@@ -51,7 +51,6 @@ const AGENT_NAMES = {
51
51
  warp: 'Warp',
52
52
  };
53
53
  const VALID_AGENTS = ['claude', 'codex', 'cursor', 'opencode', 'grok', 'antigravity', 'kimi', 'droid', 'warp'];
54
- // 'full' kept as historical alias for 'skip'; normalized to 'skip' downstream.
55
54
  const VALID_MODES = ['plan', 'edit', 'auto', 'skip', 'full'];
56
55
  const VALID_EFFORTS = ['low', 'medium', 'high', 'xhigh', 'max', 'auto'];
57
56
  const VALID_CLOUD_PROVIDERS = ['rush', 'codex', 'factory'];
@@ -60,8 +59,8 @@ function statusColor(status) {
60
59
  case 'pending': return chalk.blue;
61
60
  case 'running': return chalk.yellow;
62
61
  case 'completed': return chalk.green;
63
- case 'pr_open': return chalk.magenta; // RUSH-2380: process done, PR not merged
64
- case 'stranded': return chalk.yellow; // PHNX-2951: done but work not committed
62
+ case 'pr_open': return chalk.magenta;
63
+ case 'stranded': return chalk.yellow;
65
64
  case 'failed': return chalk.red;
66
65
  case 'stopped': return chalk.gray;
67
66
  default: return chalk.white;
@@ -157,11 +156,6 @@ function fullName(type, version) {
157
156
  const name = AGENT_NAMES[type];
158
157
  return version ? `${name} ${version}` : name;
159
158
  }
160
- /**
161
- * One-line operator nudge after `teams start`: teammates are briefed to post
162
- * IMPORTANT milestones to the feed (RUSH-2250), and this is how to watch them.
163
- * Print-only — no engine behavior.
164
- */
165
159
  export function printFeedHint(team) {
166
160
  console.log(chalk.gray('Tip: teammates post IMPORTANT milestones to the feed (') +
167
161
  chalk.cyan('agents feed timeline') +
@@ -169,20 +163,6 @@ export function printFeedHint(team) {
169
163
  chalk.cyan(`agents teams status ${team}`) +
170
164
  chalk.gray('.'));
171
165
  }
172
- /**
173
- * Resolve a teammate spec to its execution target.
174
- *
175
- * Accepts:
176
- * - `claude` — default version of an installed agent
177
- * - `claude@2.1.112` — pinned version of an installed agent
178
- * - `<profile-name>` — runs through `agents run <profile>`, with the
179
- * profile's host agent used as the underlying
180
- * AgentType for event parsing and CLI checks.
181
- *
182
- * `agent` is always the underlying harness so event parsers, CLI-availability
183
- * checks, and version pins keep working. `profileName` is set only when the
184
- * spec resolved through a profile.
185
- */
186
166
  function parseTeammate(spec) {
187
167
  const [name, version] = spec.split('@');
188
168
  if (VALID_AGENTS.includes(name)) {
@@ -193,9 +173,6 @@ function parseTeammate(spec) {
193
173
  profileName: null,
194
174
  };
195
175
  }
196
- // Not a built-in agent id — try resolving as a profile name. A profile
197
- // pinning a version is allowed; `profile@<override>` is not (would conflict
198
- // with the profile's own host.version).
199
176
  if (!version && profileExists(name)) {
200
177
  try {
201
178
  const profile = readProfile(name);
@@ -215,14 +192,6 @@ function parseTeammate(spec) {
215
192
  function shortId(id) {
216
193
  return id.slice(0, 8);
217
194
  }
218
- /**
219
- * Decide how a follow-up to a teammate is delivered from its reconciled status.
220
- * Pure — the source of truth for the routing table, unit-tested without I/O.
221
- * - pending -> not-started (tell them to `teams start`)
222
- * - running + message -> steer (mailbox)
223
- * - stopped/etc + message -> resume (re-enter session)
224
- * - any actionable + no message -> need-message
225
- */
226
195
  export function decideTeamMessageRoute(status, hasMessage) {
227
196
  if (status === AgentStatus.PENDING)
228
197
  return { kind: 'not-started' };
@@ -232,11 +201,6 @@ export function decideTeamMessageRoute(status, hasMessage) {
232
201
  return { kind: 'steer' };
233
202
  return { kind: 'resume' };
234
203
  }
235
- /**
236
- * Preamble injected into every factory worker's prompt. Tells the worker
237
- * which team + teammate name + task-type it is, and how to file new tasks.
238
- * The actual how-to lives in the /factory-worker skill.
239
- */
240
204
  function factoryWorkerPreamble(team, name, taskType, after) {
241
205
  const n = name ?? '<anonymous>';
242
206
  const deps = after.length > 0 ? after.join(', ') : '(none)';
@@ -255,33 +219,6 @@ function factoryWorkerPreamble(team, name, taskType, after) {
255
219
  function mkManager() {
256
220
  return new AgentManager();
257
221
  }
258
- /**
259
- * Tell the user a worktree from a failed `teams add` is still on disk, and give
260
- * them the exact commands to remove it. Reached only when we could not remove it
261
- * ourselves — a leftover `agents/<name>` branch is what makes the retry fail with
262
- * `fatal: a branch ... already exists`, so it must never be silent (RUSH-2356).
263
- */
264
- /**
265
- * Tear down a worktree a failed operation left behind — but ONLY if it is a
266
- * genuine orphan.
267
- *
268
- * Extracted because this guard was hand-duplicated at two call sites (`teams
269
- * add` and the pr-watch fixer) and the copy at the fixer path was written
270
- * WITHOUT it, which is RUSH-2356 reoccurring at the one site that skipped the
271
- * check. One implementation, one place to get it right.
272
- *
273
- * The two errors here are not symmetric, so the guard deliberately fails
274
- * CLOSED: a spurious "claimed" strands a branch a human can delete, while a
275
- * spurious "unclaimed" runs `git worktree remove --force` over a live
276
- * teammate's checkout and destroys uncommitted work. So an unreadable record
277
- * means "leave it alone and tell the user", never "assume it is free".
278
- *
279
- * A staged teammate is exactly the case that makes this necessary: `spawn()`
280
- * persists its meta.json and only THEN runs the retention pass, which refreshes
281
- * every sibling and can throw on a distributed one — so a failure can land here
282
- * with a live, durably-recorded, merely-pending `--after` teammate already
283
- * owning this worktree.
284
- */
285
222
  export async function tearDownOrphanWorktree(mgr, baseCwd, name) {
286
223
  try {
287
224
  if (await mgr.isWorktreeClaimed(name))
@@ -303,34 +240,15 @@ function warnOrphanWorktree(baseCwd, name, reason) {
303
240
  ` Remove it manually: git -C ${baseCwd} worktree remove --force .agents/worktrees/${name} ` +
304
241
  `&& git -C ${baseCwd} branch -D agents/${name}\n`));
305
242
  }
306
- /** Pluralize a commit count: "1 commit" / "3 commits". */
307
243
  function commitsWord(behind) {
308
244
  return `${behind} commit${behind === 1 ? '' : 's'}`;
309
245
  }
310
- /**
311
- * The blocking message when `teams add` is pointed at a stale checkout. Pure so
312
- * the guidance is pinned by tests (mirrors `remoteCwdOnAddError`): it MUST name
313
- * how far behind, tell the caller to sync with remote main, and mention `--confirm`
314
- * as the override.
315
- */
316
246
  export function staleRepoError(params) {
317
247
  return (`${params.where} is ${commitsWord(params.behind)} behind origin/${params.base}. ` +
318
248
  `A team started here would build on stale code — bring it up to date with remote main first:\n` +
319
249
  ` ${params.sync}\n` +
320
250
  `Then re-run \`agents teams add ${params.team} …\`, or pass --confirm to start on the stale repo anyway.`);
321
251
  }
322
- /**
323
- * Guard against pointing a team at a stale checkout. Before a teammate is bound
324
- * to a repo, this fetches origin and counts how far behind `origin/<default>` the
325
- * base checkout is (the local cwd, or the repo provisioned on a `--device` host).
326
- * If it is behind and the caller did NOT pass `--confirm`, the add is refused with
327
- * {@link staleRepoError} — because a team started on stale code reasons and builds
328
- * against a tree that has already moved on (the 71-commit-stale s1 checkout
329
- * incident). With `--confirm` it prints a one-line advisory and proceeds.
330
- *
331
- * A `null` behind-count (offline, non-repo, unreachable host) is "can't tell" and
332
- * never blocks — this is a freshness nudge, not a hard prerequisite.
333
- */
334
252
  async function assertRepoFreshOrConfirm(params) {
335
253
  const { team, confirm, json } = params;
336
254
  const res = params.remote
@@ -354,11 +272,6 @@ async function assertRepoFreshOrConfirm(params) {
354
272
  }
355
273
  dieFriction('teams', 'repo-stale', staleRepoError({ team, where, behind: res.behind, base: res.base, sync }), 1, { json });
356
274
  }
357
- /**
358
- * Register the generic cloud dispatcher — staged cloud teammates get
359
- * dispatched when their --after deps resolve, using repo/branch stored on
360
- * the teammate itself so we don't need the original --cloud CLI args.
361
- */
362
275
  function wireCloudDispatcher(mgr) {
363
276
  mgr.setCloudDispatcher(async (a) => {
364
277
  if (!a.cloudProvider) {
@@ -372,9 +285,6 @@ function wireCloudDispatcher(mgr) {
372
285
  }
373
286
  export function cloudDispatchOptions(agent) {
374
287
  return {
375
- // PHNX-3236: a cloud teammate runs in the provider sandbox and never inherits
376
- // the local merge-guard.sh hook, so the prompt policy is its ONLY self-merge
377
- // boundary — apply the same helper buildRunArgv uses for local/remote.
378
288
  prompt: withTeammatePrPolicy(agent.prompt, agent.mode),
379
289
  agent: agent.agentType,
380
290
  repo: agent.cloudRepo ?? undefined,
@@ -383,17 +293,6 @@ export function cloudDispatchOptions(agent) {
383
293
  env: shareRuntimeEnv(),
384
294
  };
385
295
  }
386
- /**
387
- * Advisory: warn once per agent type of any still-pending (staged `--after`)
388
- * teammate whose CLI may not be signed in. Warn-only — never blocks `start`.
389
- * Local teammates only; cloud teammates authenticate through their provider.
390
- */
391
- /**
392
- * Advisory line for a version-pinned teammate whose account can't serve a run
393
- * right now. A pinned target (`agents run <agent>@<version>`) bypasses account
394
- * rotation — the pin IS the target — so unlike a bare teammate it can't route
395
- * around a throttled/expired account; it will launch and likely 429 at once.
396
- */
397
296
  function throttleWarningLine(agent, version, r) {
398
297
  const who = `${AGENT_NAMES[agent]} ${version}`;
399
298
  const acct = r.email ? ` (${r.email})` : '';
@@ -405,21 +304,13 @@ function throttleWarningLine(agent, version, r) {
405
304
  chalk.gray(`\n A pinned version skips account rotation, so it will launch on this account and may immediately hit its limit.` +
406
305
  `\n Use a bare \`${agent}\` teammate to let the team pick a healthy account, or pass --force to silence this.`));
407
306
  }
408
- /**
409
- * Advisory: for each staged VERSION-PINNED teammate, warn if its account is
410
- * rate-limited / out of credits / signed out right now — reusing the router's
411
- * own eligibility signal (`checkRunAccountReadiness`) so the warning matches
412
- * what the spawn would actually do. Bare teammates (rotation handles them) and
413
- * profile/cloud teammates (account not locally checkable) are skipped. Warns,
414
- * never blocks. Deduped by agent@version so N teammates on one account warn once.
415
- */
416
307
  async function warnThrottledTeammates(mgr, team) {
417
308
  let pending;
418
309
  try {
419
310
  pending = (await mgr.listByTask(team)).filter((a) => a.status === 'pending' && !a.cloudProvider && !a.profileName && a.version);
420
311
  }
421
312
  catch {
422
- return; // team not loadable yet — nothing to warn about
313
+ return;
423
314
  }
424
315
  const seen = new Set();
425
316
  for (const a of pending) {
@@ -440,7 +331,7 @@ async function warnUnsignedTeammates(mgr, team) {
440
331
  pending = (await mgr.listByTask(team)).filter((a) => a.status === 'pending' && !a.cloudProvider);
441
332
  }
442
333
  catch {
443
- return; // team not loadable yet — nothing to warn about
334
+ return;
444
335
  }
445
336
  const seen = new Set();
446
337
  for (const a of pending) {
@@ -454,14 +345,6 @@ async function warnUnsignedTeammates(mgr, team) {
454
345
  }
455
346
  }
456
347
  }
457
- /**
458
- * Single-wave start used by `teams start` without --watch. startReady()
459
- * terminalizes a placement/spawn/cloud/dependency failure to FAILED with
460
- * evidence rather than leaving it PENDING, so a teammate that failed this wave
461
- * appears in neither `launched` nor `still_pending` — it must be diffed against
462
- * the pre-wave roster and reported explicitly, or the wave reads as a success.
463
- * A wave that only produced failures sets a non-zero exit code.
464
- */
465
348
  export async function runOneWave(mgr, team, json) {
466
349
  const preWavePending = new Set((await mgr.listByTask(team)).filter((a) => a.status === 'pending').map((a) => a.agentId));
467
350
  const launched = await mgr.startReady(team);
@@ -512,12 +395,6 @@ export async function runOneWave(mgr, team, json) {
512
395
  if (launched.length > 0)
513
396
  printFeedHint(team);
514
397
  }
515
- /**
516
- * Path to the pr-watch dedupe-state file for a team. Persists the set of
517
- * already-handled check/comment dedupe keys so a restart of `teams pr-watch`
518
- * never re-spawns a fix wave for a failure it already reacted to. Lives in the
519
- * teammate base dir; it's a flat file so loadExistingAgents (dir-only) skips it.
520
- */
521
398
  async function prWatchStatePath(team) {
522
399
  const safe = team.replace(/[^A-Za-z0-9_-]/g, '_');
523
400
  return path.join(await getAgentsDir(), `pr-watch-${safe}.json`);
@@ -544,12 +421,6 @@ async function savePrWatchState(team, state) {
544
421
  debug(`Could not persist pr-watch state for ${team}: ${err.message}`);
545
422
  }
546
423
  }
547
- /**
548
- * Resolve the PRs opened by a team's teammates, de-duplicated by PR URL. A
549
- * teammate's PR URL comes from its own `pr_url` field or, failing that, the
550
- * session it ran (detected from the transcript's `gh pr create`). The teammate
551
- * name is the `--after` anchor for the fix/bugfix teammate we spawn.
552
- */
553
424
  async function resolvePrWatchTargets(mgr, team) {
554
425
  const status = await handleStatus(mgr, team, 'all');
555
426
  const sessions = await resolveTeammateSessions(status.agents);
@@ -559,38 +430,22 @@ async function resolvePrWatchTargets(mgr, team) {
559
430
  if (!prUrl)
560
431
  continue;
561
432
  if (byPr.has(prUrl))
562
- continue; // first teammate to own a PR is its source
433
+ continue;
563
434
  byPr.set(prUrl, { prUrl, sourceTeammate: a.name ?? null });
564
435
  }
565
436
  return [...byPr.values()];
566
437
  }
567
- /**
568
- * React to one decided pr-watch action by spawning a follow-up teammate on the
569
- * same PR — a ci-fix teammate on RED CI, or a `bugfix` teammate on a new review
570
- * comment — linked `--after` the teammate that opened the PR so it slots into
571
- * the same DAG the supervisor already drains. Returns the teammate label.
572
- */
573
438
  async function reactWithTeammate(mgr, team, action, prompt) {
574
- // Unique name per reaction. The dedupe key is stable across waves (keyed on the
575
- // check NAME), so the wave number is what keeps successive fixers' names — and
576
- // their worktrees — distinct within the team.
577
439
  const uniq = action.dedupeKey.replace(/[^A-Za-z0-9]/g, '').slice(-10) || `${action.wave}`;
578
440
  const slug = `${uniq}-w${action.wave}`;
579
441
  const name = action.kind === 'ci-fix' ? `cifix-${slug}` : `bugfix-${slug}`;
580
442
  const taskType = action.kind === 'review-fix' ? 'bugfix' : null;
581
- // Link --after the source teammate when it's a real, resolvable sibling; a
582
- // missing source means the PR couldn't be traced to a named teammate, so the
583
- // fix runs immediately with no dependency edge.
584
443
  const after = [];
585
444
  if (action.sourceTeammate) {
586
445
  const resolved = await mgr.resolveAgentIdInTask(team, action.sourceTeammate);
587
446
  if (resolved.kind === 'ok')
588
447
  after.push(action.sourceTeammate);
589
448
  }
590
- // Isolate each fixer in its own worktree so concurrent `gh pr checkout`s (across
591
- // PRs, or across waves) never clash in a shared cwd. Requires a git repo — which
592
- // pr-watch always is, since it operates on PRs; fall back to the cwd only when
593
- // the checkout somehow isn't a repo.
594
449
  const baseCwd = process.cwd();
595
450
  let worktreeName = null;
596
451
  let worktreePath = null;
@@ -610,36 +465,15 @@ async function reactWithTeammate(mgr, team, action, prompt) {
610
465
  }
611
466
  let result;
612
467
  try {
613
- result = await handleSpawn(mgr, team, 'claude', prompt, cwd, 'edit', 'medium', null, cwd, null, name, after, null, null, taskType, null, null, null, null, worktreeName, worktreePath, null, // profileName
614
- null, // hostName
615
- null, // hostTarget
616
- null, // repoPath
617
- // A pr-watch fixer belongs to the same team, so it gets the same project
618
- // grants as any other teammate. Wiring `--project` into only the
619
- // `teams add` caller would have left this one silently without them.
620
- (await getTeam(team))?.project ?? null);
468
+ result = await handleSpawn(mgr, team, 'claude', prompt, cwd, 'edit', 'medium', null, cwd, null, name, after, null, null, taskType, null, null, null, null, worktreeName, worktreePath, null, null, null, null, (await getTeam(team))?.project ?? null);
621
469
  }
622
470
  catch (err) {
623
- // The spawn failed after we created this fixer's worktree — tear it down so
624
- // the branch `agents/<name>` doesn't block the next wave's retry with
625
- // `fatal: a branch ... already exists` (RUSH-2356). Best-effort; the
626
- // original failure is what propagates.
627
- //
628
- // Guarded exactly like the `teams add` teardown, and for the same reason:
629
- // handleSpawn -> manager.spawn() persists a staged teammate's meta.json and
630
- // only THEN runs the retention pass, which refreshes every sibling and can
631
- // throw on a distributed one. A fixer teammate is staged with `--after` when
632
- // it follows a source teammate, so a throw there lands here with a LIVE,
633
- // durably-recorded, merely-pending teammate already owning this worktree —
634
- // and removing it would destroy real work. Only tear down a genuine orphan.
635
471
  if (worktreeName)
636
472
  await tearDownOrphanWorktree(mgr, baseCwd, worktreeName);
637
473
  throw err;
638
474
  }
639
475
  return result.name ?? shortId(result.agent_id);
640
476
  }
641
- // Pick the display handle for a teammate: explicit teammate name, Claude
642
- // session label, then the 8-char UUID prefix.
643
477
  function handle(a) {
644
478
  return a.name || a.session_label || shortId(a.agent_id);
645
479
  }
@@ -649,8 +483,6 @@ function displayHandle(a) {
649
483
  }
650
484
  return handle(a);
651
485
  }
652
- // Resolve a teammate reference (name / UUID / UUID prefix) by scanning every
653
- // meta.json under the agents dir. Team hint narrows the search.
654
486
  async function resolveTeammateAcrossTeams(base, ref, teamHint) {
655
487
  let entries = [];
656
488
  try {
@@ -659,13 +491,10 @@ async function resolveTeammateAcrossTeams(base, ref, teamHint) {
659
491
  catch {
660
492
  return { kind: 'none' };
661
493
  }
662
- // Cheap path: exact UUID or unique UUID prefix match by directory name.
663
494
  const byDir = entries.filter((e) => e === ref || e.startsWith(ref));
664
495
  if (byDir.length === 1 && byDir[0] === ref) {
665
496
  return { kind: 'ok', agentId: ref };
666
497
  }
667
- // Otherwise scan meta.json files to match on name as well, and respect the
668
- // team hint if given.
669
498
  const candidates = [];
670
499
  for (const dir of entries) {
671
500
  try {
@@ -684,31 +513,18 @@ async function resolveTeammateAcrossTeams(base, ref, teamHint) {
684
513
  }
685
514
  }
686
515
  catch {
687
- /* skip entries without readable meta.json */
688
516
  }
689
517
  }
690
518
  if (candidates.length === 0)
691
519
  return { kind: 'none' };
692
520
  if (candidates.length === 1)
693
521
  return { kind: 'ok', agentId: candidates[0].agentId };
694
- // If multiple match but one is an exact name hit, prefer it.
695
522
  const exactName = candidates.filter((c) => c.name === ref);
696
523
  if (exactName.length === 1)
697
524
  return { kind: 'ok', agentId: exactName[0].agentId };
698
525
  return { kind: 'ambiguous', candidates };
699
526
  }
700
- // Print a teammate block using the same session preview the sessions picker
701
- // uses — one canonical renderer across `agents sessions`, teams picker
702
- // preview, and teams status output.
703
- //
704
- // Layout:
705
- // alice claude COMPLETED · 5.0 minutes
706
- // after: bob
707
- // <buildSessionPreview output> (when the session file was found)
708
- // ! reported an error (if flagged)
709
- // PR: <url> (if set)
710
527
  function printAgentDetail(a, session) {
711
- // RUSH-2380: process COMPLETED + open PR → show PR OPEN, not COMPLETED.
712
528
  const delivery = a.delivery ??
713
529
  resolveTeammateDelivery({ status: a.status, prUrl: a.pr_url });
714
530
  const colorKey = deliveryColorKey(delivery, a.status);
@@ -743,23 +559,16 @@ function printAgentDetail(a, session) {
743
559
  if (a.failure) {
744
560
  console.log(` ${chalk.red('failure ')} ${a.failure.code}: ${a.failure.message}`);
745
561
  }
746
- // If the agent's internal session id differs from ours (non-Claude), show
747
- // it as a hint for `agents sessions <id>`.
748
562
  if (a.remote_session_id && a.remote_session_id !== a.agent_id) {
749
563
  console.log(` ${chalk.gray('session ')} ${chalk.gray(a.remote_session_id)}`);
750
564
  }
751
565
  if (session) {
752
- // Hand off to the same renderer the sessions picker uses. Indent so the
753
- // block visually belongs to this teammate.
754
566
  const preview = buildSessionPreview(session);
755
567
  for (const line of preview.split('\n')) {
756
568
  console.log(line ? ` ${line}` : '');
757
569
  }
758
570
  }
759
571
  else {
760
- // Session file not yet on disk (e.g. teammate is pending, or their
761
- // agent type writes sessions elsewhere). Fall back to a compact summary
762
- // derived from the live status payload.
763
572
  const activity = [];
764
573
  if (a.files_modified.length)
765
574
  activity.push(`${a.files_modified.length} modified`);
@@ -794,15 +603,10 @@ function printAgentDetail(a, session) {
794
603
  if (a.pr_url)
795
604
  console.log(` ${chalk.gray('PR ')}${a.pr_url}`);
796
605
  }
797
- // Resolve each live teammate to its on-disk session (Claude/Codex/Gemini/
798
- // OpenCode all write parseable session files). `agent_id === remote_session_id`
799
- // for Claude teammates; non-Claude agents may carry their own session UUID on
800
- // `remote_session_id`. We try both.
801
606
  async function resolveTeammateSessions(agents) {
802
607
  const map = new Map();
803
608
  if (agents.length === 0)
804
609
  return map;
805
- // Scan every project dir — team teammates may have run from anywhere.
806
610
  const all = await discoverSessions({ all: true, limit: 5000 });
807
611
  for (const a of agents) {
808
612
  const candidates = [a.remote_session_id, a.agent_id].filter(Boolean);
@@ -818,10 +622,6 @@ async function resolveTeammateSessions(agents) {
818
622
  }
819
623
  return map;
820
624
  }
821
- // Default compact renderer — one block per teammate, optimized for the
822
- // orchestrator scanning "what state, what did you touch, what did you say
823
- // last." Caller passes the projected AgentStatusSummary; for the full
824
- // verbose layout use printAgentDetail above.
825
625
  function printAgentSummary(s) {
826
626
  const delivery = s.delivery ??
827
627
  resolveTeammateDelivery({ status: s.status, prUrl: s.pr_url });
@@ -837,7 +637,6 @@ function printAgentSummary(s) {
837
637
  if (s.failure) {
838
638
  console.log(` ${chalk.red('failure ')} ${s.failure.code}: ${s.failure.message}`);
839
639
  }
840
- // Files: counts + basenames. Read is count only.
841
640
  const fileLines = [];
842
641
  const renderCat = (label, cat) => {
843
642
  if (cat.count === 0)
@@ -854,7 +653,6 @@ function printAgentSummary(s) {
854
653
  if (fileLines.length) {
855
654
  console.log(` ${chalk.gray('files ')} ${fileLines.join(chalk.gray(' · '))}`);
856
655
  }
857
- // Last 3 bash commands.
858
656
  const recentBash = s.bash_commands.slice(-3);
859
657
  if (recentBash.length) {
860
658
  console.log(` ${chalk.gray('bash ')}`);
@@ -862,7 +660,6 @@ function printAgentSummary(s) {
862
660
  console.log(` ${chalk.gray('$')} ${truncate(cmd, 96)}`);
863
661
  }
864
662
  }
865
- // Last messages — first non-empty line of each, truncated.
866
663
  if (s.last_messages.length) {
867
664
  console.log(` ${chalk.gray('messages')}`);
868
665
  for (const msg of s.last_messages) {
@@ -894,8 +691,6 @@ function formatTeamStatusSummary(summary) {
894
691
  parts.push(`${summary.stopped} stopped`);
895
692
  return `(${parts.join(', ')})`;
896
693
  }
897
- // Render a team's status in the same format the `status` subcommand uses, so
898
- // the interactive picker's Enter action drops the user into a familiar view.
899
694
  async function printTeamStatus(team, result) {
900
695
  const { summary, agents } = result;
901
696
  console.log(chalk.bold(`Team ${chalk.cyan(team)} `) + chalk.gray(formatTeamStatusSummary(summary)));
@@ -918,10 +713,6 @@ async function printTeamStatus(team, result) {
918
713
  console.log();
919
714
  console.log(chalk.gray(`cursor: ${result.cursor}`));
920
715
  }
921
- // Compact default renderer — no session-file dive, no per-teammate
922
- // 15-line preview. One block per teammate, suitable for the orchestrator
923
- // scanning what each agent did. Use `printTeamStatus` (above) for the
924
- // verbose/legacy layout.
925
716
  function printTeamSummary(team, result) {
926
717
  const { summary, agents } = result;
927
718
  console.log(chalk.bold(`Team ${chalk.cyan(team)} `) + chalk.gray(formatTeamStatusSummary(summary)));
@@ -945,14 +736,6 @@ function printTeamSummary(team, result) {
945
736
  console.log(chalk.gray('Full detail: agents teams status ' + team + ' --verbose'));
946
737
  console.log(chalk.gray('Raw log: agents teams logs --team ' + team + ' --teammate <name>'));
947
738
  }
948
- // Classify a team into a single bucket for --status filtering.
949
- // - empty: no teammates (created but nobody added yet)
950
- // - waiting: only staged teammates — call `teams start` to kick them off
951
- // - working: at least one teammate still running
952
- // - failed: at least one teammate failed or was stopped (any failure wins —
953
- // even if others finished, you want to know about the failure)
954
- // - stranded: everyone finished, but at least one has uncommitted work and no PR
955
- // - done: everyone finished successfully, no failures, no stranded work
956
739
  function classifyTeamStatus(t) {
957
740
  if (t.agent_count === 0)
958
741
  return 'empty';
@@ -960,19 +743,13 @@ function classifyTeamStatus(t) {
960
743
  return 'working';
961
744
  if (t.failed + t.stopped > 0)
962
745
  return 'failed';
963
- // At this point nobody is running/failed/stopped. If there's any pending
964
- // teammate (agent_count > running+completed+failed+stopped), it's "waiting".
965
746
  const accounted = t.running + t.completed + t.failed + t.stopped;
966
747
  if (accounted < t.agent_count)
967
748
  return 'waiting';
968
- // Completed-without-delivery is not "done": the work is still in the worktree
969
- // and will be lost on cleanup (PHNX-2951).
970
749
  if ((t.stranded ?? 0) > 0)
971
750
  return 'stranded';
972
751
  return 'done';
973
752
  }
974
- // Merge persistent team registry with tasks derived from live agents so empty
975
- // teams (created but no teammates yet) still show up.
976
753
  function mergeTeams(registry, tasks) {
977
754
  const byName = new Map();
978
755
  for (const t of tasks)
@@ -1026,7 +803,6 @@ async function buildTasksFromSnapshots(agents) {
1026
803
  failed++;
1027
804
  else if (status === AgentStatus.STOPPED)
1028
805
  stopped++;
1029
- // Stranded = completed with no PR and a dirty local worktree (PHNX-2951).
1030
806
  if (status === AgentStatus.COMPLETED &&
1031
807
  !agent.pr_url?.trim() &&
1032
808
  !agent.host &&
@@ -1065,9 +841,7 @@ async function buildTasksFromSnapshots(agents) {
1065
841
  }
1066
842
  return tasks.sort((a, b) => new Date(b.modified_at).getTime() - new Date(a.modified_at).getTime());
1067
843
  }
1068
- export async function buildTeamRowsFromSnapshots(registry, agents,
1069
- /** team name -> the session that spawned it (see teamSpawners). */
1070
- spawners) {
844
+ export async function buildTeamRowsFromSnapshots(registry, agents, spawners) {
1071
845
  const byTeam = new Map();
1072
846
  for (const agent of agents) {
1073
847
  const details = byTeam.get(agent.task_name) || [];
@@ -1075,8 +849,6 @@ spawners) {
1075
849
  byTeam.set(agent.task_name, details);
1076
850
  }
1077
851
  const teams = mergeTeams(registry, await buildTasksFromSnapshots(agents));
1078
- // Recompute delivery for cached snapshots so `teams list` reflects stranded
1079
- // work discovered by probing the real worktree (PHNX-2951).
1080
852
  for (const details of byTeam.values()) {
1081
853
  for (const a of details) {
1082
854
  const snapshot = agents.find((s) => s.agent_id === a.agent_id);
@@ -1151,24 +923,16 @@ async function loadTeamAgentSnapshots() {
1151
923
  }));
1152
924
  return snapshots.filter((snapshot) => snapshot !== null);
1153
925
  }
1154
- // Build cached rows for the `list` picker. Shared between `list` and picker
1155
- // fallbacks for `status` / `start`; full status stays lazy until a team is picked.
1156
926
  async function loadTeamRows(_mgr) {
1157
927
  const [registry, agents] = await Promise.all([loadTeams(), loadTeamAgentSnapshots()]);
1158
- // Lineage is read off the session index, not the team registry: the registry is
1159
- // per-machine runtime state, while the transcript that ran `teams create` is
1160
- // indexed, survives the teammate cleanup, and covers teams created before this.
1161
928
  let spawners;
1162
929
  try {
1163
930
  spawners = teamSpawners();
1164
931
  }
1165
932
  catch {
1166
- // The index is an enrichment here — a missing/locked DB just drops the column.
1167
933
  }
1168
934
  return await buildTeamRowsFromSnapshots(registry, agents, spawners);
1169
935
  }
1170
- // Picker fallback for `teams logs` when the teammate ref is omitted. Shows a
1171
- // flat list of every teammate with their team context; Enter picks one.
1172
936
  async function pickTeammateOr(mgr, command) {
1173
937
  if (!isInteractiveTerminal()) {
1174
938
  requireInteractiveSelection(`Picking a teammate for \`${command}\``, [
@@ -1218,9 +982,6 @@ async function pickTeammateOr(mgr, command) {
1218
982
  throw err;
1219
983
  }
1220
984
  }
1221
- // Fallback for read-only / constructive subcommands when the user omits the
1222
- // team argument. In a TTY, show the picker and return the chosen team. Outside
1223
- // a TTY, hard-fail with a clear error so scripts surface the missing arg.
1224
985
  async function pickTeamOr(mgr, command) {
1225
986
  if (!isInteractiveTerminal()) {
1226
987
  requireInteractiveSelection(`Picking a team for \`${command}\``, [
@@ -1244,16 +1005,6 @@ async function pickTeamOr(mgr, command) {
1244
1005
  throw err;
1245
1006
  }
1246
1007
  }
1247
- /**
1248
- * `teams add --remote-cwd` is a no-op trap. `--remote-cwd` comes from the shared
1249
- * `--device` option family (option.ts) and is meaningful for commands that *route*
1250
- * to a host, but `teams add` special-cases `--device`/`--device` as PLACEMENT, so
1251
- * the flag is never read — a teammate's directory is the team's repo plus its
1252
- * `--worktree`, not a path passed here. Silently ignoring it misleads you into
1253
- * thinking it set the teammate's repo path (the exact wrong model that turns one
1254
- * team into a teardown-and-rebuild). Reject with guidance instead. Exported for
1255
- * the unit test that pins the message.
1256
- */
1257
1008
  export function remoteCwdOnAddError(team) {
1258
1009
  return (`--remote-cwd has no effect on 'teams add' — it does not set a teammate's repo or directory.\n` +
1259
1010
  ` A teammate works in the team's repo plus its own --worktree:\n` +
@@ -1261,7 +1012,6 @@ export function remoteCwdOnAddError(team) {
1261
1012
  ` • Place the teammate on a machine: agents teams add ${team} <agent> "<task>" --device <host> --worktree <name>\n` +
1262
1013
  ` (Remote worktrees fork from the host's freshly-fetched origin/<default> automatically.)`);
1263
1014
  }
1264
- /** Register the `agents teams` command tree (list, create, add, status, start, remove, disband, logs, doctor). */
1265
1015
  export function registerTeamsCommands(program) {
1266
1016
  const teams = program
1267
1017
  .command('teams')
@@ -1324,7 +1074,6 @@ export function registerTeamsCommands(program) {
1324
1074
  teams rm = remove teams d = disband teams ls = list
1325
1075
  `,
1326
1076
  });
1327
- // list
1328
1077
  addHostOption(teams.command('list [query]'))
1329
1078
  .alias('ls')
1330
1079
  .description('List your teams, most recent activity first')
@@ -1340,29 +1089,23 @@ export function registerTeamsCommands(program) {
1340
1089
  loadTeams(),
1341
1090
  loadTeamAgentSnapshots(),
1342
1091
  ]);
1343
- // Group agents by team so we can filter on agent-type / version.
1344
1092
  const byTeam = new Map();
1345
1093
  for (const a of everyAgent) {
1346
1094
  const arr = byTeam.get(a.task_name) || [];
1347
1095
  arr.push(a);
1348
1096
  byTeam.set(a.task_name, arr);
1349
1097
  }
1350
- // Same lineage enrichment as loadTeamRows — without it this listing is the
1351
- // one `teams list` surface that silently drops the "spawned by" column.
1352
1098
  let spawners;
1353
1099
  try {
1354
1100
  spawners = teamSpawners();
1355
1101
  }
1356
1102
  catch {
1357
- // The session index is an enrichment here; a missing one drops the column.
1358
1103
  }
1359
1104
  let rows = (await buildTeamRowsFromSnapshots(registry, everyAgent, spawners)).rows;
1360
- // --- query: substring match on team name ---
1361
1105
  if (query) {
1362
1106
  const q = query.toLowerCase();
1363
1107
  rows = rows.filter((row) => row.team.task_name.toLowerCase().includes(q));
1364
1108
  }
1365
- // --- --agent: filter teams containing a matching teammate ---
1366
1109
  if (opts.agent) {
1367
1110
  const [wantType, rawVersion] = opts.agent.split('@');
1368
1111
  const wantVersion = VALID_AGENTS.includes(wantType)
@@ -1373,7 +1116,6 @@ export function registerTeamsCommands(program) {
1373
1116
  return teammates.some((m) => m.agent_type === wantType && (!wantVersion || m.version === wantVersion));
1374
1117
  });
1375
1118
  }
1376
- // --- --status: classify each team, filter ---
1377
1119
  if (opts.status) {
1378
1120
  const want = opts.status.toLowerCase();
1379
1121
  const validStatuses = ['working', 'done', 'stranded', 'failed', 'empty'];
@@ -1382,7 +1124,6 @@ export function registerTeamsCommands(program) {
1382
1124
  }
1383
1125
  rows = rows.filter((row) => classifyTeamStatus(row.team) === want);
1384
1126
  }
1385
- // --- --since / --until: filter by activity window ---
1386
1127
  if (opts.since) {
1387
1128
  const cutoff = parseTimeFilter(opts.since);
1388
1129
  if (!cutoff)
@@ -1414,7 +1155,6 @@ export function registerTeamsCommands(program) {
1414
1155
  try {
1415
1156
  const picked = await teamPicker(rows, query);
1416
1157
  if (picked) {
1417
- // Fall through to the status subcommand's action for the picked team.
1418
1158
  const mgr = mkManager();
1419
1159
  const result = await handleStatus(mgr, picked.team, 'all');
1420
1160
  await printTeamStatus(picked.team, result);
@@ -1426,11 +1166,8 @@ export function registerTeamsCommands(program) {
1426
1166
  }
1427
1167
  return;
1428
1168
  }
1429
- // Non-interactive fallback: rows flow without a header, matching the
1430
- // shape of `agents sessions` when piped.
1431
1169
  printTeamTable(rows);
1432
1170
  });
1433
- // create
1434
1171
  addHostOption(teams.command('create <team>'))
1435
1172
  .aliases(['c', 'new'])
1436
1173
  .description('Start a new team. No teammates yet; add them with `teams add`.')
@@ -1443,9 +1180,6 @@ export function registerTeamsCommands(program) {
1443
1180
  .option('--json', 'Output machine-readable JSON')
1444
1181
  .action(async (team, opts) => {
1445
1182
  try {
1446
- // Fail here, not at the first `teams add`: a team created against a
1447
- // project that does not resolve would silently fall back to the
1448
- // orchestrator's cwd for every teammate.
1449
1183
  if (opts.project) {
1450
1184
  const { resolveProjectRef } = await import('../lib/project-root.js');
1451
1185
  try {
@@ -1455,18 +1189,9 @@ export function registerTeamsCommands(program) {
1455
1189
  dieFriction('teams', 'project-unresolved', err.message);
1456
1190
  }
1457
1191
  }
1458
- // --devices / --hosts are aliases; commander can't express a two-name
1459
- // option that isn't a short flag, so merge them here. Split on comma,
1460
- // trim, drop blanks, dedupe (preserving first-seen order).
1461
1192
  const rawPool = [opts.devices, opts.hosts].filter(Boolean).join(',');
1462
1193
  const devices = [];
1463
1194
  for (const raw of rawPool.split(',').map((s) => s.trim()).filter(Boolean)) {
1464
- // Resolve `interactive` to the concrete device HERE, the same way the
1465
- // single `--device` pin does. A pool is a set of specific machines the
1466
- // scheduler picks between, so persisting the sentinel would let the
1467
- // pool's membership change silently the next time `interactive.host`
1468
- // is re-pinned — and every later friction message would quote
1469
- // "interactive" instead of a box the user can act on.
1470
1195
  let d = raw;
1471
1196
  if (isDeviceInteractive(d)) {
1472
1197
  const pinned = resolveInteractiveDevice();
@@ -1479,9 +1204,6 @@ export function registerTeamsCommands(program) {
1479
1204
  if (!devices.includes(d))
1480
1205
  devices.push(d);
1481
1206
  }
1482
- // Validate every pooled device resolves + is POSIX (v1 remote monitor is
1483
- // POSIX-only). A device equal to the local machine is fine (runs local),
1484
- // so skip the resolve/POSIX check for it.
1485
1207
  for (const name of devices) {
1486
1208
  if (name.toLowerCase() === machineId())
1487
1209
  continue;
@@ -1495,9 +1217,6 @@ export function registerTeamsCommands(program) {
1495
1217
  `the teams remote monitor is POSIX-only. Use a Linux/macOS device.`);
1496
1218
  }
1497
1219
  }
1498
- // --repo: how each device gets the code. Default to the local checkout's
1499
- // origin when a pool is declared and we're inside a git repo, so the user
1500
- // never hand-manages a path per box. A poolless team leaves repo unset.
1501
1220
  let repo = opts.repo;
1502
1221
  if (!repo && devices.length > 0) {
1503
1222
  const cwd = process.cwd();
@@ -1545,7 +1264,6 @@ export function registerTeamsCommands(program) {
1545
1264
  dieFriction('teams', 'create-failed', err.message);
1546
1265
  }
1547
1266
  });
1548
- // add
1549
1267
  addHostOption(teams.command('add <team> <teammate> <task>'))
1550
1268
  .alias('a')
1551
1269
  .description("Add a teammate to work on a task. Runs in background; returns immediately. Use 'status' to check in.")
@@ -1565,10 +1283,6 @@ export function registerTeamsCommands(program) {
1565
1283
  .option('--confirm', 'Proceed even when the base checkout/repo is behind origin/main (a stale repo otherwise blocks the add)')
1566
1284
  .option('--json', 'Output machine-readable JSON')
1567
1285
  .action(async (team, teammate, task, opts) => {
1568
- // `--remote-cwd` rides the shared --device option family but is never read by
1569
- // `teams add` (placement, not routing). Fail loud with guidance rather than
1570
- // silently ignoring it — see remoteCwdOnAddError. `!== undefined` so even an
1571
- // explicit empty value (`--remote-cwd ""`) is rejected, not silently dropped.
1572
1286
  if (opts.remoteCwd !== undefined) {
1573
1287
  dieFriction('teams', 'remote-cwd-on-add', remoteCwdOnAddError(team));
1574
1288
  }
@@ -1595,32 +1309,15 @@ export function registerTeamsCommands(program) {
1595
1309
  dieFriction('teams', 'cloud-rush-needs-repo', `--cloud rush requires --repo <owner/repo>`);
1596
1310
  }
1597
1311
  }
1598
- // Auto-create the team if it doesn't exist yet (friendlier UX than erroring),
1599
- // then load its metadata — needed here for the distributed --repo (how each
1600
- // device gets the code) before we resolve a per-teammate --device pin.
1601
1312
  await ensureTeam(team);
1602
1313
  const teamMeta = await getTeam(team);
1603
- // For `teams add` the passthrough special-cases --device as PLACEMENT,
1604
- // not routing, so the local action reads it here.
1605
1314
  let explicitDevice = opts.device ?? null;
1606
- // `auto` is the same live fleet sentinel `agents run --device auto` resolves
1607
- // (RUSH-2185) — pick the concrete device name up front so the local-machine
1608
- // check right below (and every dieFriction message further down) sees the
1609
- // real target instead of the literal string "auto".
1610
1315
  if (explicitDevice && isDeviceAuto(explicitDevice)) {
1611
1316
  const plan = await resolveDeviceAuto(parseTeammate(teammate).agent);
1612
1317
  const picked = plan.host ?? machineId();
1613
1318
  process.stderr.write(chalk.gray(`[teams] device=auto → ${picked === machineId() ? 'local' : picked}\n`));
1614
1319
  explicitDevice = picked;
1615
1320
  }
1616
- // `interactive` needs the same up-front resolution, and for a sharper
1617
- // reason: `teams add`/`create` bail out of the fleet passthrough
1618
- // (passthrough.ts, the teams subcommand guard), so the sentinel block
1619
- // there never runs and this is the only resolver. Left literal, the
1620
- // local-machine check below compares 'interactive' against the machine id,
1621
- // takes the remote branch on the pinned box itself, and pins the teammate
1622
- // to an SSH hop into this same machine — skipping three local preflights
1623
- // on the way.
1624
1321
  if (explicitDevice && isDeviceInteractive(explicitDevice)) {
1625
1322
  const pinned = resolveInteractiveDevice();
1626
1323
  if (!pinned) {
@@ -1629,11 +1326,6 @@ export function registerTeamsCommands(program) {
1629
1326
  process.stderr.write(chalk.gray(`[teams] device=interactive → ${pinned === machineId() ? 'local' : pinned}\n`));
1630
1327
  explicitDevice = pinned;
1631
1328
  }
1632
- // Distributed teams: --device <name> PINS this teammate to a machine over
1633
- // SSH. Resolve + validate the placement here so a bad target fails at `add`
1634
- // time, not silently at launch. Persisted (hostName/hostTarget/repoPath) so
1635
- // startReady()/launchRemoteProcess dispatch over SSH. Unpinned teammates
1636
- // leave these null — the launch-time scheduler resolves the pool cascade.
1637
1329
  let hostName = null;
1638
1330
  let hostTarget = null;
1639
1331
  let hostRepoPath = null;
@@ -1647,9 +1339,6 @@ export function registerTeamsCommands(program) {
1647
1339
  dieFriction('teams', 'device-not-resolvable', `Couldn't resolve --device "${explicitDevice}". Register it with \`agents devices add ${explicitDevice} <target>\`, ` +
1648
1340
  `or pass user@host.`);
1649
1341
  }
1650
- // POSIX-only in v1: the remote follow/monitor layer offset-tails the log
1651
- // with tail/cat/kill, which don't exist under PowerShell. Refuse Windows
1652
- // up front, mirroring dispatch.ts launchDetached.
1653
1342
  if (remoteShellFor(host.os ?? resolveRemoteOsSync(host.name)) === 'powershell') {
1654
1343
  dieFriction('teams', 'device-windows-unsupported', `Distributed teammates on Windows host "${host.name}" are not supported yet — ` +
1655
1344
  `the teams remote monitor is POSIX-only (offset-tails the remote log with tail/cat/kill). ` +
@@ -1661,11 +1350,6 @@ export function registerTeamsCommands(program) {
1661
1350
  catch (err) {
1662
1351
  dieFriction('teams', 'ssh-target-unresolvable', `Can't resolve an ssh target for "${host.name}": ${err.message}`);
1663
1352
  }
1664
- // Ensure agents-cli is present + the pin is installed on the host.
1665
- // Bare agent names still only warn; a concrete pin fails loud so
1666
- // `teams add --device` never stages a teammate the box cannot run
1667
- // (RUSH-2313). parseTeammate already resolves @latest/etc. to a concrete
1668
- // version when one is pinned on the teammate spec.
1669
1353
  try {
1670
1354
  const parsed = parseTeammate(teammate);
1671
1355
  const { warnings } = ensureHostReady(host, {
@@ -1678,19 +1362,10 @@ export function registerTeamsCommands(program) {
1678
1362
  catch (err) {
1679
1363
  dieFriction('teams', 'host-not-ready', `Host "${host.name}" is not ready: ${err.message}`);
1680
1364
  }
1681
- // Provision the repo on the host from the team's --repo (clone into
1682
- // ~/.agents/repos/<team> or reuse an existing checkout), resolving to the
1683
- // ABSOLUTE git root so every later remote command works from an absolute
1684
- // path (dispatch `cd`, worktree create, polling). When the team has no
1685
- // --repo (the common "just send one teammate elsewhere" case, created
1686
- // without a pool), fall back to THIS checkout's origin so the headline case
1687
- // works with zero extra flags whenever you run `add` inside a git repo.
1688
1365
  let effectiveRepo = teamMeta?.repo ?? '';
1689
1366
  if (!effectiveRepo && (await isGitRepo(process.cwd()))) {
1690
1367
  effectiveRepo = (await getRemoteUrl(process.cwd())) ?? '';
1691
1368
  }
1692
- // Capture the ssh args ensureRemoteRepo uses so the staleness probe below
1693
- // reaches the host with the same identity.
1694
1369
  hostExtraSshArgs = host.identityFile ? ['-i', host.identityFile, '-o', 'IdentitiesOnly=yes'] : [];
1695
1370
  try {
1696
1371
  hostRepoPath = ensureRemoteRepo(hostTarget, effectiveRepo, team, {
@@ -1705,26 +1380,15 @@ export function registerTeamsCommands(program) {
1705
1380
  }
1706
1381
  const { agent, version, profileName } = parseTeammate(teammate);
1707
1382
  warnAgentDeprecated(agent);
1708
- // Version-installed check is about the LOCAL machine — a distributed (--on)
1709
- // teammate's agent/version lives on the host, verified by ensureHostReady.
1710
1383
  if (version && !hostName && !isVersionInstalled(agent, version)) {
1711
1384
  dieFriction('teams', 'agent-version-not-installed', `${AGENT_NAMES[agent]} ${version} isn't installed.\n` +
1712
1385
  ` Install it: agents add ${agent}@${version}\n` +
1713
1386
  ` Or see what's installed (incl. @latest): agents view ${agent}`);
1714
1387
  }
1715
- // Advisory sign-in check: warn but NEVER block. Detection is unreliable
1716
- // for opaque-cred agents, so a false negative must not stop a team. Cloud
1717
- // dispatch authenticates through the provider, not the local CLI — skip it.
1718
- // Distributed (--on) teammates authenticate on the host, not locally — skip.
1719
1388
  if (!opts.force && !cloudProviderId && !hostName && !(await checkCliSignedIn(agent))) {
1720
1389
  console.error(chalk.yellow(`⚠ ${AGENT_NAMES[agent]} may not be signed in (detection is unreliable). Adding anyway.`) +
1721
1390
  chalk.gray(`\n If it fails to start, run \`${AGENTS[agent].cliCommand}\` to log in, or pass --force to silence this.`));
1722
1391
  }
1723
- // Advisory throttle check — only for a version-pinned teammate, which
1724
- // bypasses account rotation and so can't route around a rate-limited /
1725
- // out-of-credits / signed-out account (see throttleWarningLine). Skip bare
1726
- // targets (rotation handles them), profiles (auth-injected account isn't
1727
- // the version-home one we can read), and cloud dispatch. Warn, never block.
1728
1392
  if (!opts.force && !cloudProviderId && !hostName && !profileName && version) {
1729
1393
  const readiness = await checkRunAccountReadiness(agent, version);
1730
1394
  if (!readiness.ready)
@@ -1753,27 +1417,17 @@ export function registerTeamsCommands(program) {
1753
1417
  catch (err) {
1754
1418
  dieFriction('teams', 'invalid-env', err.message);
1755
1419
  }
1756
- // Team already ensured + loaded above (teamMeta) for the --repo provisioning.
1757
1420
  const worktreesEnabled = teamMeta?.enable_worktrees ?? false;
1758
1421
  const sharedWorktree = teamMeta?.use_worktree ?? null;
1759
1422
  let worktreeName = null;
1760
1423
  let worktreePath = null;
1761
1424
  const mgr = mkManager();
1762
- // Validate name uniqueness + --after deps BEFORE creating a worktree
1763
- // (RUSH-2356): a rejected add must not leave an orphan `agents/<name>`
1764
- // branch that then breaks the retry with `fatal: a branch ... already
1765
- // exists`. spawn() calls the same method, which memoizes this result for
1766
- // exactly one consumer — so validation still lives in one place without
1767
- // paying for a second sibling status refresh on the way there.
1768
1425
  try {
1769
1426
  await mgr.validateAddPreconditions(team, opts.name ?? null, after);
1770
1427
  }
1771
1428
  catch (err) {
1772
1429
  dieFriction('teams', 'add-precondition-failed', err.message);
1773
1430
  }
1774
- // Stale-repo guard: refuse to point a team at a checkout behind origin/main
1775
- // unless --confirm. A cloud teammate clones fresh in the provider, so it has
1776
- // no local/remote checkout to assess — skip it there.
1777
1431
  if (!cloudProviderId) {
1778
1432
  if (hostName) {
1779
1433
  await assertRepoFreshOrConfirm({
@@ -1790,10 +1444,6 @@ export function registerTeamsCommands(program) {
1790
1444
  }
1791
1445
  }
1792
1446
  }
1793
- // Track a worktree WE create in this add so a later failure (dep race,
1794
- // launch error, cloud dispatch) can tear it down instead of stranding the
1795
- // branch. Only a worktree THIS add created is ever torn down, so a
1796
- // legitimately-pending teammate's worktree is never touched.
1797
1447
  let createdWorktree = null;
1798
1448
  const tearDownCreatedWorktree = async () => {
1799
1449
  if (!createdWorktree)
@@ -1803,10 +1453,6 @@ export function registerTeamsCommands(program) {
1803
1453
  await tearDownOrphanWorktree(mgr, baseCwd, name);
1804
1454
  };
1805
1455
  if (hostName) {
1806
- // Distributed teammate: the checkout lives on the host, so we NEVER touch
1807
- // the local filesystem here. A shared local worktree makes no sense for a
1808
- // remote teammate; a per-teammate worktree is created ON THE HOST at launch
1809
- // (createRemoteWorktree in launchRemoteProcess) — we just capture its name.
1810
1456
  if (sharedWorktree) {
1811
1457
  dieFriction('teams', 'shared-worktree-remote-conflict', `Team '${team}' uses a shared local --use-worktree, which can't apply to a --device (remote) teammate.`);
1812
1458
  }
@@ -1822,10 +1468,8 @@ export function registerTeamsCommands(program) {
1822
1468
  else if (opts.worktree) {
1823
1469
  dieFriction('teams', 'worktree-requires-enable-worktrees', `--worktree requires --enable-worktrees on the team. Recreate the team with: agents teams create ${team} --enable-worktrees`);
1824
1470
  }
1825
- // Local cwd stays null — the remote cwd is repoPath / the remote worktree.
1826
1471
  }
1827
1472
  else if (sharedWorktree) {
1828
- // Team uses a shared worktree for all teammates
1829
1473
  const fsp = await import('fs/promises');
1830
1474
  try {
1831
1475
  const stat = await fsp.stat(sharedWorktree);
@@ -1852,12 +1496,6 @@ export function registerTeamsCommands(program) {
1852
1496
  if (!(await isGitRepo(baseCwd))) {
1853
1497
  dieFriction('teams', 'worktree-needs-repo', `Worktrees require a git repository. ${baseCwd} is not inside a git repo.`);
1854
1498
  }
1855
- // Was anything under this name already here BEFORE we tried? That is
1856
- // the only sound basis for cleaning up a failed create: the common
1857
- // failure is `fatal: a branch named 'agents/<name>' already exists`,
1858
- // and removing a checkout we did not make can destroy uncommitted work
1859
- // (`teams stop` deliberately KEEPS a dirty worktree, and that teammate's
1860
- // record is terminal by then, so no record-based check protects it).
1861
1499
  const preexisting = await worktreeExists(baseCwd, opts.worktree).catch(() => true);
1862
1500
  try {
1863
1501
  worktreeName = opts.worktree;
@@ -1865,22 +1503,12 @@ export function registerTeamsCommands(program) {
1865
1503
  createdWorktree = { baseCwd, name: worktreeName };
1866
1504
  }
1867
1505
  catch (err) {
1868
- // `git worktree add -b` can also fail PART WAY — branch ref created,
1869
- // checkout not — stranding `agents/<name>` in exactly the way that
1870
- // breaks the retry. Clean that up only when nothing was here before
1871
- // AND there is still no checkout now: all that can be left is a
1872
- // dangling branch ref, so this can never delete anyone's files. The
1873
- // second half matters because a concurrent add can create a real
1874
- // worktree under this name during our `git fetch`, long after the
1875
- // pre-flight probe answered.
1876
1506
  const checkoutNow = await worktreeCheckoutExists(baseCwd, opts.worktree).catch(() => true);
1877
1507
  if (!preexisting && !checkoutNow) {
1878
1508
  try {
1879
1509
  await removeWorktree(baseCwd, opts.worktree);
1880
1510
  }
1881
1511
  catch {
1882
- // Nothing to remove (the add died before git wrote anything), or
1883
- // we can't. Either way the real error below is what matters.
1884
1512
  }
1885
1513
  }
1886
1514
  const detail = err.message;
@@ -1894,17 +1522,6 @@ export function registerTeamsCommands(program) {
1894
1522
  else if (opts.worktree) {
1895
1523
  dieFriction('teams', 'worktree-requires-enable-worktrees', `--worktree requires --enable-worktrees on the team. Recreate the team with: agents teams create ${team} --enable-worktrees`);
1896
1524
  }
1897
- // The team's project (`teams create --project`) contributes a base cwd and
1898
- // the access grants for its other directories. It sits BELOW --cwd in the
1899
- // precedence chain: an explicit --cwd on this teammate still wins.
1900
- //
1901
- // Grants are attached even when a worktree or --cwd owns the cwd — the
1902
- // sibling repos are what the project binds, not where the teammate sits.
1903
- // Only the base cwd is resolved here — a LOCAL teammate needs a concrete
1904
- // directory to start in. The GRANTS are deliberately not resolved now:
1905
- // an unpinned teammate on a --devices pool is placed at launch, so its
1906
- // shape (absolute vs ~/…) is not yet knowable. The project name rides on
1907
- // the record and resolveTeammateGrants resolves it per launch.
1908
1525
  let projectCwd;
1909
1526
  if (teamMeta?.project && !hostName) {
1910
1527
  const { resolveProjectRef } = await import('../lib/project-root.js');
@@ -1915,29 +1532,16 @@ export function registerTeamsCommands(program) {
1915
1532
  dieFriction('teams', 'project-unresolved', err.message);
1916
1533
  }
1917
1534
  }
1918
- // Distributed teammates have no LOCAL cwd — their working dir lives on the
1919
- // host (repoPath / the remote worktree). Local teammates default to the
1920
- // worktree path, then --cwd, then the project's primary directory, then
1921
- // the current directory.
1922
1535
  const cwd = hostName ? null : (worktreePath ?? opts.cwd ?? projectCwd ?? process.cwd());
1923
- // Factory teammates: prepend the worker-skill preamble to every task
1924
- // prompt so implementers/testers/reviewers know about the Ledger, the
1925
- // dynamic DAG, and the pattern for filing new tasks mid-flight. No
1926
- // preamble when --task-type isn't set (plain teammates work as before).
1927
1536
  let effectiveTask = task;
1928
1537
  if (taskType) {
1929
1538
  effectiveTask = factoryWorkerPreamble(team, opts.name ?? null, taskType, after) + '\n\n' + task;
1930
1539
  }
1931
- // Dispatcher callback: when a staged cloud teammate's deps resolve,
1932
- // AgentManager.startReady() invokes this to kick off the remote task.
1933
1540
  if (cloudProviderId) {
1934
1541
  const providerId = cloudProviderId;
1935
1542
  mgr.setCloudDispatcher(async (a) => {
1936
1543
  const prov = resolveProvider(providerId);
1937
1544
  const dispatchOpts = {
1938
- // PHNX-3236: same self-merge boundary as the local/remote path — a
1939
- // cloud teammate has no inherited merge-guard.sh, so the prompt is
1940
- // its only layer.
1941
1545
  prompt: withTeammatePrPolicy(a.prompt, a.mode),
1942
1546
  agent: a.agentType,
1943
1547
  repo: opts.repo,
@@ -2002,14 +1606,10 @@ export function registerTeamsCommands(program) {
2002
1606
  }
2003
1607
  }
2004
1608
  catch (err) {
2005
- // The add failed after we created its worktree — tear the worktree +
2006
- // branch down so a retry isn't blocked by `fatal: a branch ... already
2007
- // exists` (RUSH-2356). Best-effort: report the original failure either way.
2008
1609
  await tearDownCreatedWorktree();
2009
1610
  dieFriction('teams', 'add-failed', `Could not add ${fullName(agent, version)} to ${team}: ${err.message}`);
2010
1611
  }
2011
1612
  });
2012
- // status
2013
1613
  addHostOption(teams.command('status [team]'))
2014
1614
  .aliases(['s', 'st', 'check'])
2015
1615
  .description("Check in on a team: status, files touched, recent commands, last messages. Pass --verbose for the full per-teammate dump; --since for delta polling.")
@@ -2022,8 +1622,6 @@ export function registerTeamsCommands(program) {
2022
1622
  .action(async (team, opts) => {
2023
1623
  const filter = opts.filter;
2024
1624
  const mgr = mkManager();
2025
- // No team given → drop into the picker (TTY) or fail clearly (script).
2026
- // --parent-session is its own lookup key, so it needs no team at all.
2027
1625
  if (!team && !opts.parentSession) {
2028
1626
  const picked = await pickTeamOr(mgr, 'agents teams status');
2029
1627
  if (!picked)
@@ -2037,17 +1635,12 @@ export function registerTeamsCommands(program) {
2037
1635
  : result.agents;
2038
1636
  const filtered = { ...result, agents };
2039
1637
  if (isJsonMode(opts)) {
2040
- // JSON output also respects --verbose. Default = compact summary
2041
- // shape; --verbose = full AgentStatusDetail. Same toggle covers
2042
- // both text and JSON so MCP-style consumers can opt into detail.
2043
1638
  const payload = opts.verbose
2044
1639
  ? filtered
2045
1640
  : toTaskStatusSummary(filtered);
2046
1641
  console.log(JSON.stringify(payload, null, 2));
2047
1642
  return;
2048
1643
  }
2049
- // A --parent-session lookup spans teams, so there is no single team to
2050
- // check for existence — its label is the session that spawned them.
2051
1644
  const label = team ?? `session ${opts.parentSession.slice(0, 8)}`;
2052
1645
  if (team) {
2053
1646
  const exists = await teamExists(team);
@@ -2069,11 +1662,9 @@ export function registerTeamsCommands(program) {
2069
1662
  }
2070
1663
  }
2071
1664
  catch (err) {
2072
- // `team` is undefined for a --parent-session lookup, which spans teams.
2073
1665
  dieFriction('teams', 'status-failed', `Could not check on ${team ? `team ${team}` : 'the requested session'}: ${err.message}`);
2074
1666
  }
2075
1667
  });
2076
- // active — list every live teammate across every team, grouped by team.
2077
1668
  teams
2078
1669
  .command('active')
2079
1670
  .description('List every teammate running right now, across all teams (PID-alive check).')
@@ -2109,7 +1700,6 @@ export function registerTeamsCommands(program) {
2109
1700
  console.log(chalk.bold(`Team ${chalk.cyan(team)} ${chalk.gray(`(${agents.length} working)`)}`));
2110
1701
  for (const a of agents) {
2111
1702
  const ident = a.name || shortId(a.agentId);
2112
- // A distributed teammate has no local pid; show its host + remote pid.
2113
1703
  const pidStr = a.hostName
2114
1704
  ? chalk.cyan(`on ${a.hostName}`) + (a.remotePid ? chalk.gray(` (pid ${a.remotePid})`) : '')
2115
1705
  : a.pid ? chalk.yellow(`pid ${a.pid}`) : chalk.gray('pid ?');
@@ -2120,7 +1710,6 @@ export function registerTeamsCommands(program) {
2120
1710
  }
2121
1711
  console.log(chalk.gray(`${running.length} teammate${running.length === 1 ? '' : 's'} running. See 'agents sessions --active' for the full cross-context view.`));
2122
1712
  });
2123
- // start — fire any staged teammates whose --after deps have all completed
2124
1713
  addHostOption(teams.command('start [team]'))
2125
1714
  .description('Launch ready teammates independently. Failed launch/placement and blocked --after dependencies persist in status; --watch keeps draining viable DAG branches.')
2126
1715
  .option('--json', 'Output machine-readable JSON')
@@ -2137,10 +1726,6 @@ export function registerTeamsCommands(program) {
2137
1726
  return;
2138
1727
  team = picked;
2139
1728
  }
2140
- // RUSH-2450: a disbanded team must not be re-startable. Orphan PENDING
2141
- // records can no longer resurrect after purge + saveMeta guard, but if a
2142
- // caller still points start at a gone team name, fail loud with a reason
2143
- // instead of launching nothing and looking successful.
2144
1729
  if (!(await teamExists(team))) {
2145
1730
  const orphanCount = (await mgr.listByTask(team)).length;
2146
1731
  const msg = orphanCount > 0
@@ -2169,8 +1754,6 @@ export function registerTeamsCommands(program) {
2169
1754
  const intervalMs = Math.max(1000, Number.parseInt(opts.interval, 10) * 1000 || 8000);
2170
1755
  const maxWaves = Math.max(1, Number.parseInt(opts.maxWaves, 10) || 1000);
2171
1756
  const json = isJsonMode(opts);
2172
- // Live budget kill-switch (issue #399). Dormant when no caps set — the
2173
- // factory dropping this in returns null and runSupervisor short-circuits.
2174
1757
  const { createTeamBudgetWatcher } = await import('../lib/budget/live-team.js');
2175
1758
  const budgetWatcher = createTeamBudgetWatcher({
2176
1759
  manager: mgr,
@@ -2204,10 +1787,6 @@ export function registerTeamsCommands(program) {
2204
1787
  emit('teams.complete', { module: 'teams', team, stoppedBy: result.stoppedBy, waves: result.waves, durationMs: result.elapsed_ms });
2205
1788
  if (result.stoppedBy === 'drained') {
2206
1789
  console.log(chalk.green(`Factory drained in ${elapsed}s (${result.waves} waves).`));
2207
- // First-successful-team star nudge (one-time, non-nagging). "drained"
2208
- // only means nothing is pending/running — teammates may have failed — so
2209
- // gate on a clean drain (failed === 0). A team where every teammate
2210
- // failed is not the success this nudge celebrates.
2211
1790
  if ((result.failed ?? 0) === 0) {
2212
1791
  maybeShowStarNudge({ quiet: opts.json });
2213
1792
  }
@@ -2223,10 +1802,9 @@ export function registerTeamsCommands(program) {
2223
1802
  console.error(chalk.red(`Budget kill-switch tripped after ${result.waves} waves` +
2224
1803
  (b ? ` (cap ${b.cap}: $${b.spend.toFixed(2)} > $${b.limit.toFixed(2)})` : '') +
2225
1804
  `.`));
2226
- process.exitCode = 7; // Mirrors BUDGET_KILL_EXIT_CODE for CI/headless.
1805
+ process.exitCode = 7;
2227
1806
  }
2228
1807
  });
2229
- // pr-watch — autonomous PR lifecycle (issue #338)
2230
1808
  addHostOption(teams.command('pr-watch [team]'))
2231
1809
  .description('Watch the PRs a team opened and react autonomously: RED CI -> spawn a fix teammate with the failure logs; new review comment -> route a bugfix teammate. Both slot into the team DAG (visible in `teams status`).')
2232
1810
  .option('--interval <seconds>', 'Seconds between polls (default 30)', '30')
@@ -2277,8 +1855,6 @@ export function registerTeamsCommands(program) {
2277
1855
  console.error(`[${ts}] ${chalk.red('error')} on ${e.prUrl}: ${e.message}`);
2278
1856
  }
2279
1857
  };
2280
- // A fixer's dedupe guard clears once it settles, so a still-red check can
2281
- // spawn its next (budget-bounded) wave. Terminal = completed/failed/stopped.
2282
1858
  const reactionSettled = async (label) => {
2283
1859
  const roster = await mgr.listByTask(resolvedTeam);
2284
1860
  const teammate = roster.find((a) => a.name === label || shortId(a.agentId) === label);
@@ -2290,9 +1866,6 @@ export function registerTeamsCommands(program) {
2290
1866
  try {
2291
1867
  const result = await runPrWatch({
2292
1868
  resolveTargets: async () => {
2293
- // Drive the DAG each pass so fix/bugfix teammates staged --after a
2294
- // now-completed source teammate actually launch — no separate
2295
- // `teams start --watch` needed.
2296
1869
  await mgr.rescanFromDisk();
2297
1870
  await mgr.startReady(resolvedTeam);
2298
1871
  return resolvePrWatchTargets(mgr, resolvedTeam);
@@ -2323,7 +1896,6 @@ export function registerTeamsCommands(program) {
2323
1896
  process.off('SIGTERM', onSig);
2324
1897
  }
2325
1898
  });
2326
- // stop
2327
1899
  addHostOption(teams.command('stop [team] [teammate]'))
2328
1900
  .description('Stop a running teammate. Resume it later with `agents teams resume`. Cleans up worktree if no uncommitted changes.')
2329
1901
  .option('--json', 'Output machine-readable JSON')
@@ -2364,12 +1936,10 @@ export function registerTeamsCommands(program) {
2364
1936
  const stopRes = await handleStop(mgr, team, agentId);
2365
1937
  if ('error' in stopRes)
2366
1938
  dieFriction('teams', 'stop-failed', stopRes.error);
2367
- // Clean up worktree if this teammate had one
2368
1939
  let worktreeKept = false;
2369
1940
  if (agent?.worktreeName && agent?.worktreePath) {
2370
1941
  try {
2371
1942
  if (agent.hostName && agent.hostTarget && agent.repoPath) {
2372
- // Distributed teammate: guard + remove the worktree ON THE HOST.
2373
1943
  const ssh = { extraSshArgs: agent.hostIdentityFile ? ['-i', agent.hostIdentityFile, '-o', 'IdentitiesOnly=yes'] : [] };
2374
1944
  if (remoteWorktreeDirty(agent.hostTarget, agent.worktreePath, ssh)) {
2375
1945
  worktreeKept = true;
@@ -2390,7 +1960,6 @@ export function registerTeamsCommands(program) {
2390
1960
  }
2391
1961
  }
2392
1962
  catch {
2393
- // best-effort cleanup
2394
1963
  }
2395
1964
  }
2396
1965
  if (isJsonMode(opts)) {
@@ -2413,11 +1982,6 @@ export function registerTeamsCommands(program) {
2413
1982
  console.log(chalk.yellow(`Worktree '${agent.worktreeName}' has uncommitted changes. Keeping it at: ${agent.worktreePath}`));
2414
1983
  }
2415
1984
  });
2416
- // message / resume — send a follow-up message to a teammate. Routes by the
2417
- // teammate's reconciled status: a RUNNING teammate is STEERED via its mailbox
2418
- // (delivered at its next tool call); a STOPPED one (completed/failed/stopped)
2419
- // is RESUMED — re-entering its own session with the message as the next user
2420
- // turn, re-attaching it to the team as live.
2421
1985
  async function teamMessageAction(team, ref, message, opts) {
2422
1986
  const mgr = mkManager();
2423
1987
  const lookup = await mgr.resolveAgentIdInTask(team, ref);
@@ -2428,9 +1992,6 @@ export function registerTeamsCommands(program) {
2428
1992
  dieFriction('teams', 'teammate-ambiguous', `'${ref}' matches multiple teammates: ${shorts}. Use more characters or a name.`, 2);
2429
1993
  }
2430
1994
  const agentId = lookup.agentId;
2431
- // mgr.get reconciles the teammate's status (PID + start-time guard / remote
2432
- // .exit sentinel / exit-code reap) before we branch — so running-vs-stopped
2433
- // is a fact, not a guess.
2434
1995
  const agent = await mgr.get(agentId);
2435
1996
  if (!agent)
2436
1997
  dieFriction('teams', 'teammate-vanished', `Teammate ${shortId(agentId)} vanished from team ${team}.`);
@@ -2449,7 +2010,6 @@ export function registerTeamsCommands(program) {
2449
2010
  dieFriction('teams', 'resume-needs-message', `Teammate '${display}' is ${status} — pass a message to resume it: \`agents teams resume ${team} ${display} "<message>"\`.`);
2450
2011
  return;
2451
2012
  case 'steer': {
2452
- // Running -> steer via mailbox; never re-launch (that forks a 2nd session).
2453
2013
  enqueue(mailboxDir(agentId), { to: agentId, text: message, from: opts.from });
2454
2014
  if (isJsonMode(opts)) {
2455
2015
  console.log(JSON.stringify({ team, agent_id: agentId, name: agent.name ?? null, action: 'steer', status }, null, 2));
@@ -2460,7 +2020,6 @@ export function registerTeamsCommands(program) {
2460
2020
  return;
2461
2021
  }
2462
2022
  case 'resume': {
2463
- // Stopped / completed / failed -> resume its own session with the message.
2464
2023
  try {
2465
2024
  await mgr.resumeTeammate(agentId, message);
2466
2025
  }
@@ -2492,7 +2051,6 @@ export function registerTeamsCommands(program) {
2492
2051
  .action(async (team, ref, message, opts) => {
2493
2052
  await teamMessageAction(team, ref, message, opts);
2494
2053
  });
2495
- // remove
2496
2054
  teams
2497
2055
  .command('remove [team] [teammate]')
2498
2056
  .alias('rm')
@@ -2533,7 +2091,6 @@ export function registerTeamsCommands(program) {
2533
2091
  const agentId = lookup.agentId;
2534
2092
  const agent = await mgr.get(agentId);
2535
2093
  const display = agent?.name || shortId(agentId);
2536
- // Require agent to be stopped first
2537
2094
  if (agent?.status === 'running' || agent?.status === 'pending') {
2538
2095
  dieFriction('teams', 'remove-still-running', `Teammate '${display}' is still ${agent.status}. Run 'agents teams stop ${team} ${display}' first.`);
2539
2096
  }
@@ -2543,7 +2100,6 @@ export function registerTeamsCommands(program) {
2543
2100
  await fs.rm(dir, { recursive: true, force: true });
2544
2101
  }
2545
2102
  catch {
2546
- // best-effort cleanup
2547
2103
  }
2548
2104
  }
2549
2105
  if (isJsonMode(opts)) {
@@ -2552,7 +2108,6 @@ export function registerTeamsCommands(program) {
2552
2108
  }
2553
2109
  console.log(chalk.green(`Removed ${chalk.cyan(display)} from team ${chalk.cyan(team)}.`));
2554
2110
  });
2555
- // disband
2556
2111
  teams
2557
2112
  .command('disband [team]')
2558
2113
  .alias('d')
@@ -2574,11 +2129,8 @@ export function registerTeamsCommands(program) {
2574
2129
  const stopRes = await handleStop(mgr, team);
2575
2130
  if ('error' in stopRes)
2576
2131
  dieFriction('teams', 'stop-failed', stopRes.error);
2577
- // Snapshot the roster once for worktree cleanup + messaging. Purge below
2578
- // is the terminal removal of teammate records (RUSH-2450).
2579
2132
  const status = await handleStatus(mgr, team, 'all');
2580
2133
  const rosterBefore = status.agents;
2581
- // Clean up worktrees for all teammates
2582
2134
  const baseCwd = process.cwd();
2583
2135
  const keptWorktrees = [];
2584
2136
  for (const a of rosterBefore) {
@@ -2586,7 +2138,6 @@ export function registerTeamsCommands(program) {
2586
2138
  if (agent?.worktreeName && agent?.worktreePath) {
2587
2139
  try {
2588
2140
  if (agent.hostName && agent.hostTarget && agent.repoPath) {
2589
- // Distributed teammate: guard + remove the worktree ON THE HOST.
2590
2141
  const ssh = { extraSshArgs: agent.hostIdentityFile ? ['-i', agent.hostIdentityFile, '-o', 'IdentitiesOnly=yes'] : [] };
2591
2142
  if (remoteWorktreeDirty(agent.hostTarget, agent.worktreePath, ssh)) {
2592
2143
  keptWorktrees.push(agent.worktreeName);
@@ -2605,14 +2156,9 @@ export function registerTeamsCommands(program) {
2605
2156
  }
2606
2157
  }
2607
2158
  }
2608
- catch { /* best-effort */ }
2159
+ catch { }
2609
2160
  }
2610
2161
  }
2611
- // Drop the registry entry FIRST so any concurrent supervisor's saveMeta
2612
- // (RUSH-2450) refuses to re-persist teammates for this team, then purge
2613
- // the durable teammate records + in-memory cache. Order matters: purge
2614
- // after removeTeam closes the race where a supervisor re-writes meta
2615
- // between the two steps.
2616
2162
  const existed = await removeTeam(team);
2617
2163
  const removedIds = await mgr.purgeByTask(team, { keepLogs: Boolean(opts.keepLogs) });
2618
2164
  if (isJsonMode(opts)) {
@@ -2626,8 +2172,6 @@ export function registerTeamsCommands(program) {
2626
2172
  return;
2627
2173
  }
2628
2174
  if (!existed && stopRes.stopped.length === 0 && rosterBefore.length === 0 && removedIds.length === 0) {
2629
- // Second disband on a fully-gone team: clean no-op, not a false success
2630
- // that claims N logs were cleared again.
2631
2175
  dieFriction('teams', 'team-not-found', `No team called '${team}' (already disbanded or never created)`, 2);
2632
2176
  }
2633
2177
  console.log(chalk.green(`Team ${chalk.cyan(team)} disbanded.`));
@@ -2643,7 +2187,6 @@ export function registerTeamsCommands(program) {
2643
2187
  console.log(chalk.yellow(` Kept ${keptWorktrees.length} worktree(s) with uncommitted changes: ${keptWorktrees.join(', ')}`));
2644
2188
  }
2645
2189
  });
2646
- // logs
2647
2190
  teams
2648
2191
  .command('logs [teammate]')
2649
2192
  .alias('log')
@@ -2654,10 +2197,6 @@ export function registerTeamsCommands(program) {
2654
2197
  .option('--teammate <name>', 'Teammate name (alias for the positional arg; useful for scripts)')
2655
2198
  .action(async (ref, opts) => {
2656
2199
  const base = await getAgentsDir();
2657
- // Resolve teammate identity. Precedence:
2658
- // 1. positional `[teammate]` arg (back-compat, most common)
2659
- // 2. --teammate <name> flag (script-friendly alias)
2660
- // 3. interactive picker (TTY only)
2661
2200
  const teammateRef = ref ?? opts.teammate;
2662
2201
  let agentId;
2663
2202
  if (!teammateRef) {
@@ -2679,9 +2218,6 @@ export function registerTeamsCommands(program) {
2679
2218
  }
2680
2219
  agentId = resolved.agentId;
2681
2220
  }
2682
- // Concise by default: a teammate's agentId IS its agent session id (passed
2683
- // as --session-id at launch), so render the same summary digest as
2684
- // `agents sessions <id>`. --full / -n <lines> opt into the raw stdout.log.
2685
2221
  if (!opts.full && !opts.tail) {
2686
2222
  const all = await discoverSessions({ all: true, limit: 5000 });
2687
2223
  const matches = resolveSessionById(all, agentId);
@@ -2689,8 +2225,6 @@ export function registerTeamsCommands(program) {
2689
2225
  await renderSessionLog(matches[0], 'summary');
2690
2226
  return;
2691
2227
  }
2692
- // No resolvable session (e.g. a non-Claude teammate) — fall through to a
2693
- // bounded tail of raw stdout rather than dumping the whole file.
2694
2228
  }
2695
2229
  const logPath = path.join(base, agentId, 'stdout.log');
2696
2230
  try {
@@ -2699,7 +2233,6 @@ export function registerTeamsCommands(program) {
2699
2233
  process.stdout.write(content);
2700
2234
  return;
2701
2235
  }
2702
- // Default tail size keeps an un-resolvable teammate's glance bounded too.
2703
2236
  const n = opts.tail ? Math.max(1, parseInt(opts.tail, 10) || 50) : 40;
2704
2237
  const lines = content.split('\n');
2705
2238
  process.stdout.write(lines.slice(-n).join('\n'));
@@ -2708,7 +2241,6 @@ export function registerTeamsCommands(program) {
2708
2241
  dieFriction('teams', 'teammate-notes-not-found', `No notes on record for teammate '${teammateRef ?? agentId}' (looked in ${logPath})`, 2);
2709
2242
  }
2710
2243
  });
2711
- // doctor
2712
2244
  teams
2713
2245
  .command('doctor')
2714
2246
  .alias('dr')