@phnx-labs/agents-cli 1.22.119 → 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 +236 -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 +20 -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
@@ -1,19 +1,3 @@
1
- /**
2
- * Install + lifecycle for the macOS menu-bar helper (`MenubarHelper.app`).
3
- *
4
- * Mirrors the stable-Application-Support-path-survives-npm-re-sign pattern and
5
- * a RunAtLoad + KeepAlive user service, the same shape the deleted embedded
6
- * secrets-agent used before it moved to the standalone secrets-cli (PHNX-3989).
7
- *
8
- * The helper is a no-Dock `.accessory` status-bar app. It reads live agent
9
- * state directly from disk and shells `agents` only for actions, so the plist
10
- * bakes in the node interpreter + entry point + bin path so the GUI process can
11
- * find the CLI without a login PATH.
12
- *
13
- * Opt-out is sticky: `agents menubar disable` drops a sentinel that the upgrade
14
- * migration (`installMenubarLaunchAgent` in migrate.ts) honors, so a disabled
15
- * menu bar never silently comes back on the next release.
16
- */
17
1
  import { fileURLToPath } from 'url';
18
2
  import { execFileSync, spawnSync } from 'child_process';
19
3
  import * as fs from 'fs';
@@ -31,85 +15,24 @@ import { cachedMenubarVersion, resolveMenubarVersion } from './resolve-version.j
31
15
  const APP_BUNDLE_NAME = 'MenubarHelper.app';
32
16
  const INSTALL_DIR_NAME = 'agents-cli';
33
17
  const SERVICE_LABEL_BASE = 'com.phnx-labs.agents-menubar';
34
- /**
35
- * The bundled executable's basename (RUSH-3101) — what launchd execs directly
36
- * inside `Contents/MacOS/`, bypassing LaunchServices name resolution. Before
37
- * this it was `MenubarHelper`, so that raw Mach-O basename is exactly what
38
- * macOS showed in System Settings > Privacy & Security > Accessibility and in
39
- * the "would like to control this computer" prompt. Renaming this constant
40
- * alone does NOT touch the bundle id, Team ID, or designated requirement
41
- * (`SERVICE_LABEL_BASE`, `MENUBAR_HELPER_BUNDLE_ID` in download-menubar.ts) —
42
- * those are what keep the existing Accessibility grant alive across upgrades.
43
- * Every basename-matching check reads this constant rather than re-deriving
44
- * the string; the Swift side (phnx-labs/agi-menu,
45
- * `Sources/MenubarHelper/HelperIdentity.swift`) has its own equal.
46
- */
47
18
  export const MENUBAR_HELPER_EXECUTABLE_NAME = 'AGI Menu';
48
- /**
49
- * launchd Label for this process's helper — the production identifier for a
50
- * real invocation, namespaced under a redirected HOME (RUSH-2639). launchd
51
- * routes bootout/bootstrap/kickstart by identifier alone, so without this a
52
- * hermetic test fork's own teardown boots out the operator's live helper.
53
- */
54
19
  export function serviceLabel() {
55
20
  return namespacedServiceLabel(SERVICE_LABEL_BASE);
56
21
  }
57
- /**
58
- * Minimum seconds between launchd restarts of the helper (`ThrottleInterval`).
59
- *
60
- * The helper can crash at startup on a loaded machine: `NSApplication.shared`
61
- * segfaults inside `SLSNewConnection` when WindowServer is too starved to hand
62
- * out a connection. With `KeepAlive` and no throttle, launchd relaunches on its
63
- * 10s default, and each attempt spawns a fresh `agents doctor --json` before
64
- * dying — so a starved box gets hit harder the worse it gets. 30s bounds that
65
- * respawn rate while staying well inside "the menu bar came back on its own".
66
- *
67
- * This only paces the restarts. What actually stops the pile-up is the helper
68
- * bounding and group-killing its own children (agi-menu's
69
- * `Sources/MenubarHelper/ChildProcess.swift`); the two are complementary, not
70
- * alternatives.
71
- */
72
22
  const MENUBAR_THROTTLE_SECONDS = 30;
73
23
  function onDarwin() {
74
24
  return process.platform === 'darwin';
75
25
  }
76
- /** ~/Library/Application Support/agents-cli */
77
26
  function installDir() {
78
27
  return path.join(os.homedir(), 'Library', 'Application Support', INSTALL_DIR_NAME);
79
28
  }
80
- /** ~/Library/Application Support/agents-cli/MenubarHelper.app */
81
29
  function installedAppPath() {
82
30
  return path.join(installDir(), APP_BUNDLE_NAME);
83
31
  }
84
- /**
85
- * Version stamp written next to the installed bundle. The upgrade self-heal
86
- * compares this against the running CLI's version to decide whether the App
87
- * Support copy + plist need to be rebuilt — without it, a `npm update` refreshes
88
- * dist/index.js but leaves the menu bar running the OLD helper binary and a
89
- * plist whose baked paths may have drifted.
90
- */
91
32
  function installedVersionMarkerPath() {
92
33
  return path.join(installDir(), '.menubar-version');
93
34
  }
94
- /**
95
- * What the installed helper IS — deliberately not the CLI's version.
96
- *
97
- * `source` matters because the two install paths have different notions of
98
- * "changed": a release bundle is identified by its helper version, while a local
99
- * dev build has none (agi-menu's build.sh hardcodes CFBundleShortVersionString),
100
- * so it is identified by the source path + mtime it was copied from.
101
- */
102
- /** Version label for a bundle that has none of its own (a local dev build). */
103
35
  export const LOCAL_BUILD_LABEL = 'local';
104
- /**
105
- * Read the stamp, tolerating the pre-JSON format.
106
- *
107
- * Older installs wrote a bare version string — and wrote the CLI's version into
108
- * it, which is the bug this replaces. Such a stamp cannot be compared on the
109
- * helper axis at all, so it reports `legacy` and is treated as stale exactly
110
- * once, which re-stamps it in the new format. That mirrors the existing
111
- * null-is-stale rule and is why the migration cannot loop.
112
- */
113
36
  function readInstalledMenubarStamp() {
114
37
  let raw;
115
38
  try {
@@ -125,67 +48,30 @@ function readInstalledMenubarStamp() {
125
48
  if (parsed && (parsed.source === 'release' || parsed.source === 'local'))
126
49
  return parsed;
127
50
  }
128
- catch { /* fall through to legacy */ }
51
+ catch { }
129
52
  return { source: 'legacy', raw };
130
53
  }
131
- /** Executable inside the installed bundle. */
132
54
  function installedExecutablePath() {
133
55
  return path.join(installedAppPath(), 'Contents', 'MacOS', MENUBAR_HELPER_EXECUTABLE_NAME);
134
56
  }
135
- /**
136
- * Absolute path to the installed menu-bar helper executable if it exists on
137
- * disk, else null. The desktop notifier (notify-desktop.ts) routes daemon
138
- * notifications through this one-shot (`"AGI Menu" --notify ...`) so they
139
- * carry the agents-cli mark rather than the generic osascript icon. Null on
140
- * non-darwin or when the helper is not installed (menu bar disabled, a Linux
141
- * package, or a dev checkout without a built bundle).
142
- */
143
57
  export function resolveInstalledMenubarExecutable() {
144
58
  if (!onDarwin())
145
59
  return null;
146
60
  const exec = installedExecutablePath();
147
61
  return fs.existsSync(exec) ? exec : null;
148
62
  }
149
- /** ~/Library/LaunchAgents/com.phnx-labs.agents-menubar.plist */
150
63
  function servicePlistPath() {
151
64
  return path.join(os.homedir(), 'Library', 'LaunchAgents', `${serviceLabel()}.plist`);
152
65
  }
153
- /** Sticky opt-out marker written by `agents menubar disable`. */
154
66
  function disabledSentinelPath() {
155
67
  return path.join(getRuntimeStateDir(), 'menubar.disabled');
156
68
  }
157
- /** True if the user explicitly disabled the menu bar (don't auto-enable on upgrade). */
158
69
  function menubarDisabledByUser() {
159
70
  return fs.existsSync(disabledSentinelPath());
160
71
  }
161
- /** True if the launchd plist for the menu-bar service is installed. */
162
72
  function menubarServiceInstalled() {
163
73
  return onDarwin() && fs.existsSync(servicePlistPath());
164
74
  }
165
- /**
166
- * Locate the source `.app` shipped alongside the compiled JS.
167
- * 1. dist/lib/menubar/MenubarHelper.app — npm install layout (sibling of this file)
168
- * 2. <repo>/bin/MenubarHelper.app — raw working tree (tsx/dev): the
169
- * published bundle staged by scripts/stage-menubar-helper.sh, or a build
170
- * copied in from a phnx-labs/agi-menu checkout
171
- * 3. <on-disk install>/dist/lib/menubar/MenubarHelper.app — Bun single-file
172
- * binary: `import.meta.url` is a virtual `/$bunfs/` path, so the sibling
173
- * candidates above can't see the on-disk bundle; recover it via the
174
- * `agents` launcher symlink.
175
- * 4. the verified download cache for the RELEASE this machine has resolved
176
- * (`cachedMenubarVersion`: the newest published build it last saw, never
177
- * below the floor, the floor itself before any resolution) — the npm
178
- * tarball ships no bundle (PHNX-4036), so on an `npm i -g` machine this is
179
- * the only source there is. It is filled by `agents menubar setup` or by
180
- * the detached background worker (`prefetchMenubarHelper`), never here:
181
- * this resolver stays network-free so the startup self-heal stays cheap.
182
- * Last so a bundle that ships with the build always wins; keyed by the
183
- * resolved version so an older cached release is never picked up.
184
- *
185
- * `shippedAppPath` is candidates 1–3 alone: a bundle that ships WITH this
186
- * install, which CLI upgrades own. The auto-update pass replaces a cached
187
- * release (candidate 4) but never a shipped bundle.
188
- */
189
75
  function sourceAppPath() {
190
76
  const shipped = shippedAppPath();
191
77
  if (shipped)
@@ -203,16 +89,11 @@ function shippedAppPath() {
203
89
  candidates.push(path.resolve(here, '..', '..', '..', 'bin', APP_BUNDLE_NAME));
204
90
  }
205
91
  catch {
206
- /* import.meta.url unavailable */
207
92
  }
208
93
  for (const c of candidates) {
209
94
  if (fs.existsSync(c))
210
95
  return c;
211
96
  }
212
- // Candidate 4 — only reached when the sibling candidates miss (the Bun
213
- // single-file binary, whose `import.meta.url` is a virtual `/$bunfs/` path).
214
- // Resolve the launcher symlink lazily so the common Node path pays no extra
215
- // filesystem probe.
216
97
  const layout = resolveInstalledLayout();
217
98
  if (layout) {
218
99
  const p = path.join(layout.distDir, 'lib', 'menubar', APP_BUNDLE_NAME);
@@ -221,23 +102,12 @@ function shippedAppPath() {
221
102
  }
222
103
  return null;
223
104
  }
224
- /** Where a downloaded copy of the floor release sits once fetched and verified. */
225
105
  export function cachedFloorBundlePath() {
226
106
  return path.join(menubarHelperCacheDir(helperFloor('menubar')), APP_BUNDLE_NAME);
227
107
  }
228
- /**
229
- * Where the downloaded copy of the RESOLVED release sits (`cachedMenubarVersion`,
230
- * so the floor's cache dir until this machine has resolved something newer).
231
- * The startup self-heal installs from here, network-free.
232
- */
233
108
  export function cachedReleaseBundlePath() {
234
109
  return path.join(menubarHelperCacheDir(cachedMenubarVersion()), APP_BUNDLE_NAME);
235
110
  }
236
- /**
237
- * The release version an explicit install should fetch: the newest published
238
- * build, but never below what this Mac already runs — a release deleted after
239
- * it was installed must not roll the helper back through `setup`/`enable`.
240
- */
241
111
  async function menubarVersionToInstall(opts = {}) {
242
112
  const resolved = await resolveMenubarVersion({ force: opts.force });
243
113
  const installed = readInstalledMenubarStamp();
@@ -245,62 +115,32 @@ async function menubarVersionToInstall(opts = {}) {
245
115
  return installed.helperVersion;
246
116
  return resolved;
247
117
  }
248
- /** Resolve the compiled CLI entry (dist/index.js) so the helper can exec node directly. */
249
118
  function resolveCliEntry() {
250
119
  try {
251
120
  const here = path.dirname(fileURLToPath(import.meta.url));
252
- // dist/lib/menubar/install-menubar.js -> dist/index.js
253
121
  const entry = path.resolve(here, '..', '..', 'index.js');
254
122
  if (fs.existsSync(entry))
255
123
  return entry;
256
124
  }
257
125
  catch {
258
- /* ignore */
259
126
  }
260
127
  return null;
261
128
  }
262
- /**
263
- * Register the freshly-installed bundle with LaunchServices.
264
- *
265
- * The helper is copied to ~/Library/Application Support (not /Applications) and
266
- * launched only via launchd, so LaunchServices may never discover it on its own.
267
- * A daemon notification posted by the one-shot `MenubarHelper --notify` process is
268
- * attributed to this bundle, and macOS resolves the notification's LEFT-hand app
269
- * icon from the bundle's LaunchServices record — so a bundle LS doesn't know about
270
- * shows a blank app icon there (the right-hand contentImage is unaffected;
271
- * appIconImage reads the `.icns` directly). `lsregister -f` registers the bundle at
272
- * its current path so the OS can resolve its AppIcon for that slot. Best-effort:
273
- * LaunchServices is advisory, and a failure here must never block install.
274
- */
275
129
  function refreshBundleIconRegistration(appPath) {
276
130
  const lsregister = '/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister';
277
131
  const bin = fs.existsSync(lsregister) ? lsregister : 'lsregister';
278
132
  const r = spawnSync(bin, ['-f', appPath], { stdio: ['ignore', 'ignore', 'ignore'] });
279
133
  if (r.error) {
280
- /* lsregister missing / moved — advisory only, ignore. */
281
134
  }
282
135
  }
283
- /** True when the bundle carries a signature the kernel will accept at launch. */
284
136
  export function codesignVerifies(appPath) {
285
137
  const r = spawnSync('codesign', ['--verify', '--strict', appPath], { stdio: ['ignore', 'ignore', 'ignore'] });
286
138
  return r.status === 0;
287
139
  }
288
- /**
289
- * True when Gatekeeper will let the bundle execute on this machine.
290
- * A Developer-ID-signed but un-notarized app is rejected by `spctl --assess`,
291
- * which macOS surfaces as "the app is damaged" and can crash AppKit during
292
- * launch. This is separate from `codesign --verify`: a signature can be valid
293
- * while Gatekeeper still refuses to run it. The helper's own release
294
- * (phnx-labs/agi-menu scripts/release.sh) notarizes + staples it and this repo's
295
- * stage-menubar-helper.sh re-verifies it, so a shipped bundle passes this; the
296
- * launch guards use it to fail loud rather than bootstrap a helper macOS would
297
- * reject.
298
- */
299
140
  export function gatekeeperAssesses(appPath) {
300
141
  const r = spawnSync('spctl', ['--assess', '--type', 'exec', appPath], { stdio: ['ignore', 'ignore', 'ignore'] });
301
142
  return r.status === 0;
302
143
  }
303
- /** True when the bundle carries a Developer ID TeamIdentifier (not ad-hoc). */
304
144
  export function hasDeveloperIdSignature(appPath) {
305
145
  const r = spawnSync('codesign', ['-dv', '--verbose=4', appPath], {
306
146
  stdio: ['ignore', 'pipe', 'pipe'],
@@ -310,30 +150,13 @@ export function hasDeveloperIdSignature(appPath) {
310
150
  const team = out.match(/TeamIdentifier=([A-Z0-9]+)/)?.[1];
311
151
  return Boolean(team && team !== 'not set');
312
152
  }
313
- /**
314
- * Copy the bundled `.app` to the stable user path (idempotent unless forced).
315
- * Returns the installed executable path, or null if no source bundle ships
316
- * with this install (e.g. Linux package, or a build without the helper).
317
- *
318
- * Also heals an older install that was ad-hoc re-signed over a Developer ID
319
- * source: that unstable identity made Accessibility re-prompt on every upgrade.
320
- * When the shipped source is Developer ID and the installed copy is only
321
- * ad-hoc, replace it — even without forceReinstall.
322
- */
323
153
  export function ensureMenubarAppInstalled(opts = {}) {
324
154
  if (!onDarwin())
325
155
  return null;
326
- // An explicit `sourceAppPath` (a pre-downloaded cache path from the explicit
327
- // enable/setup path) overrides local discovery. This function itself does NO
328
- // network — the download happens in the async callers before they hand a path
329
- // here, so the sync startup self-heal that calls it with no override stays
330
- // network-free and simply no-ops when `sourceAppPath()` finds nothing.
331
156
  const src = opts.sourceAppPath ?? sourceAppPath();
332
157
  if (!src)
333
158
  return null;
334
159
  const dest = installedAppPath();
335
- // Heal an older install that was ad-hoc re-signed over a Developer ID source:
336
- // that unstable identity made Accessibility re-prompt on every upgrade.
337
160
  const needsInstall = () => {
338
161
  if (opts.forceReinstall)
339
162
  return true;
@@ -341,21 +164,13 @@ export function ensureMenubarAppInstalled(opts = {}) {
341
164
  return true;
342
165
  return hasDeveloperIdSignature(src) && !hasDeveloperIdSignature(dest);
343
166
  };
344
- // Fast path: nothing to do.
345
167
  if (!needsInstall())
346
168
  return installedExecutablePath();
347
- // Serialize the atomic install so concurrent `agents` invocations (this runs
348
- // on the darwin startup path) don't race the swap or each re-copy — the
349
- // stampede that transiently corrupted MenubarHelper.app and tripped the
350
- // "damaged" dialog.
351
169
  withInstallLock(dest, (heartbeat) => {
352
170
  if (!needsInstall())
353
171
  return;
354
172
  copyAppBundle(src, dest);
355
- heartbeat(); // cp -R done; keep the lock fresh across lsregister
356
- // A fresh copy is exactly when the bundle's icon can be new (first install) or
357
- // superseded (upgrade) — register it so LaunchServices knows the bundle and can
358
- // resolve its AppIcon for the left-hand slot of daemon notifications.
173
+ heartbeat();
359
174
  refreshBundleIconRegistration(dest);
360
175
  });
361
176
  return installedExecutablePath();
@@ -367,16 +182,6 @@ export function generateServicePlist(execPath) {
367
182
  const home = os.homedir();
368
183
  const logPath = path.join(getHelpersDir(), 'menubar', 'menubar.log');
369
184
  fs.mkdirSync(path.dirname(logPath), { recursive: true });
370
- // Bake interpreter + entry + bin so the GUI helper can reach the CLI with no
371
- // login PATH. AgentsCLI.swift prefers [AGENTS_NODE, AGENTS_ENTRY] when both
372
- // exist, else falls back to AGENTS_BIN, else probes well-known paths.
373
- //
374
- // HOME is baked for the same reason (RUSH-2639, see service-manifest.ts):
375
- // launchd applies this dict on top of the LOGIN SESSION's environment, not the
376
- // environment of whoever called `launchctl bootstrap`. Without the key the
377
- // helper resolves the account home and every `agents` call it makes bootstraps
378
- // that home's `~/.agents` — which is how a hermetic test fork's helper wrote
379
- // into the runner's real home.
380
185
  const env = {
381
186
  PATH: `/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:${path.dirname(process.execPath)}:${home}/.local/bin`,
382
187
  ...serviceManifestHomeEnv(),
@@ -422,15 +227,6 @@ ${envXml}
422
227
  </dict>
423
228
  </plist>`;
424
229
  }
425
- /**
426
- * Restart the menu-bar launchd agent from a clean state.
427
- *
428
- * Always `bootout` first: on modern macOS `bootstrap` fails when the job is
429
- * already bootstrapped, and the deprecated `load -w` fallback is unreliable.
430
- * A prior WindowServer disconnect can leave the job throttled so that a plain
431
- * `kickstart -k` does not bring it back; booting it out and bootstrapping fresh
432
- * is the only sequence that reliably re-attaches the status item.
433
- */
434
230
  export function restartMenubarLaunchAgent(uid, plist, exec = execFileSync) {
435
231
  const reg = serviceManagerRegistrationAllowed();
436
232
  if (!reg.allowed) {
@@ -442,40 +238,16 @@ export function restartMenubarLaunchAgent(uid, plist, exec = execFileSync) {
442
238
  try {
443
239
  exec('launchctl', ['bootout', serviceTarget], opts);
444
240
  }
445
- catch { /* may not be loaded */ }
241
+ catch { }
446
242
  try {
447
243
  exec('launchctl', ['bootstrap', `gui/${uid}`, plist], opts);
448
244
  }
449
- catch { /* best effort */ }
245
+ catch { }
450
246
  try {
451
247
  exec('launchctl', ['kickstart', serviceTarget], opts);
452
248
  }
453
- catch { /* best effort */ }
454
- }
455
- /**
456
- * Force a running helper off the binary that was just swapped underneath it.
457
- *
458
- * `installMenubarLaunchAgentOnUpgrade()` calls this after a heal actually
459
- * replaces the on-disk bundle (a version bump or the ad-hoc -> Developer ID
460
- * transition — see `menubarHealReplacedBundle`). `restartMenubarLaunchAgent`
461
- * (run moments earlier via `installAndStartService`) already attempts
462
- * bootout+bootstrap+kickstart, but that targets the GUI launchd domain and
463
- * fails silently — `launchctl kickstart -k gui/<uid>/<label>` prints "Could not
464
- * find service ... in domain for user gui" — from a shell with no Aqua session,
465
- * which is the ordinary case for `agents` invoked from a terminal/tmux/ssh
466
- * session rather than literally the login item (verified live). When that
467
- * happens the plist and on-disk bundle are current but the LIVE process is
468
- * still the old binary, so it requests Accessibility under the OLD code
469
- * identity and the grant never sticks.
470
- *
471
- * `kickstart -k` (force-restart, unlike the bare kickstart already tried) is
472
- * attempted first since it is the clean launchd-native path when it works. If
473
- * launchd has no record of the service in this context either, fall back to
474
- * ending the specific pid(s) already confirmed to be running the installed
475
- * bundle (`ownProcesses`, resolved by the caller via `liveMenubarProcesses`) —
476
- * never a broad pkill. The launchd plist has `KeepAlive=true`, so the ended
477
- * process is relaunched from the swapped binary within seconds.
478
- */
249
+ catch { }
250
+ }
479
251
  export function restartMenubarHelperAfterSwap(uid, ownProcesses, exec = execFileSync, kill = endProcess) {
480
252
  const reg = serviceManagerRegistrationAllowed();
481
253
  if (!reg.allowed)
@@ -491,37 +263,15 @@ export function restartMenubarHelperAfterSwap(uid, ownProcesses, exec = execFile
491
263
  kill(p.pid);
492
264
  }
493
265
  }
494
- /**
495
- * Sync install + start core: install the given (already-on-disk) source `.app`
496
- * and start the launchd service. NO network — the source `.app` must already be
497
- * local (a bundled/local copy for the sync startup self-heal, or a pre-downloaded
498
- * cache path for the explicit async enable/setup path). Returns false on
499
- * non-darwin, when no source resolves, or when the bundle fails the Gatekeeper
500
- * check. Shared by the sync self-heal (`installMenubarLaunchAgentOnUpgrade`) and
501
- * the async `enableMenubarService`.
502
- */
503
266
  function startMenubarServiceFromSource(opts = {}) {
504
267
  if (!onDarwin())
505
268
  return false;
506
- // Resolve the source HERE, once, and hand the SAME value to the installer and
507
- // the stamp. Passing `opts.sourceAppPath` to both let them disagree: the
508
- // installer falls back to `sourceAppPath()` internally, so on the self-heal
509
- // path (which passes nothing) it would install a LOCAL build while the stamp
510
- // recorded a release version. The next invocation then computed `local`, saw a
511
- // kind mismatch, and reinstalled — every time, forever. That is the #2109
512
- // storm this whole change exists to stop, so the two must read one variable.
513
269
  const src = opts.sourceAppPath ?? sourceAppPath();
514
270
  if (!src)
515
271
  return false;
516
272
  const exec = ensureMenubarAppInstalled({ forceReinstall: true, sourceAppPath: src });
517
273
  if (!exec)
518
274
  return false;
519
- // Never bootstrap a helper macOS will reject at launch: an invalid signature
520
- // under launchd KeepAlive crash-loops forever, and an un-notarized bundle is
521
- // rejected by Gatekeeper as "damaged". A shipped helper is Developer-ID signed
522
- // AND notarized (release build + the verify-menubar-helper.sh prepack gate), so
523
- // this passes; if it ever doesn't, skip the service and point at the upgrade
524
- // rather than re-signing over it (an ad-hoc re-sign never satisfies Gatekeeper).
525
275
  if (!(codesignVerifies(installedAppPath()) && gatekeeperAssesses(installedAppPath()))) {
526
276
  process.stderr.write('agents: AGI Menu is not notarized/valid on this machine; skipping launch. ' +
527
277
  'Upgrade to a notarized build (npm i -g @phnx-labs/agents-cli), then `agents menubar setup`.\n');
@@ -532,45 +282,20 @@ function startMenubarServiceFromSource(opts = {}) {
532
282
  installAndStartService(exec, stampFor(src));
533
283
  return true;
534
284
  }
535
- /**
536
- * Install + start the menu-bar helper as a launchd user service (idempotent).
537
- * Clears the sticky opt-out, installs the .app, writes the plist, and
538
- * bootstraps it into the GUI domain. Returns false on non-darwin or when no
539
- * helper bundle can be resolved for this install.
540
- *
541
- * ASYNC and download-capable: this is the EXPLICIT user-initiated path
542
- * (`agents menubar enable`). When no bundled/local `.app` ships (a fresh
543
- * `npm i -g` machine whose tarball lacks the bundle), it fetches the signed +
544
- * notarized release asset for the running CLI version — verified (sha256 +
545
- * codesign + Team + designated-requirement pin + notarization) before install
546
- * — and starts the service from that cached copy. The startup self-heal never
547
- * routes here: it calls `startMenubarServiceFromSource` and stays sync +
548
- * network-free, no-opping when no local source exists.
549
- */
550
285
  export async function enableMenubarService(opts = { clearOptOut: true }) {
551
286
  if (!onDarwin())
552
287
  return false;
553
- // A shipped bundle wins; otherwise fetch the newest published build (a cache
554
- // hit when the background prefetch already has it), never below what runs.
555
288
  let src = shippedAppPath();
556
289
  if (!src)
557
290
  src = await downloadMenubarHelperApp(await menubarVersionToInstall());
558
291
  return startMenubarServiceFromSource({ ...opts, sourceAppPath: src });
559
292
  }
560
- /** Drop the sticky `agents menubar disable` sentinel. */
561
293
  function clearMenubarOptOut() {
562
294
  try {
563
295
  fs.rmSync(disabledSentinelPath(), { force: true });
564
296
  }
565
- catch { /* already gone */ }
566
- }
567
- /**
568
- * Write the launchd plist for `exec`, restart the job, and stamp the installed
569
- * version. Shared by `enableMenubarService` and `runMenubarSetup` so the two
570
- * cannot drift on what "installed and started" means — the version stamp in
571
- * particular is what the upgrade self-heal reads to decide staleness, and a
572
- * path that skipped it would make every later `agents` invocation reinstall.
573
- */
297
+ catch { }
298
+ }
574
299
  function installAndStartService(exec, stamp) {
575
300
  const plist = servicePlistPath();
576
301
  fs.mkdirSync(path.dirname(plist), { recursive: true });
@@ -579,16 +304,8 @@ function installAndStartService(exec, stamp) {
579
304
  try {
580
305
  fs.writeFileSync(installedVersionMarkerPath(), JSON.stringify(stamp));
581
306
  }
582
- catch { /* best effort */ }
583
- }
584
- /**
585
- * Render a stamp as a comparable/displayable version string.
586
- *
587
- * A local build has no version of its own, so it reports `local`; the ownership
588
- * contest treats that as "not comparable" and falls through to its owner arm,
589
- * which is the correct outcome — a dev build must never win a version contest
590
- * against a release.
591
- */
307
+ catch { }
308
+ }
592
309
  export function stampVersionLabel(stamp) {
593
310
  if (!stamp)
594
311
  return null;
@@ -598,30 +315,13 @@ export function stampVersionLabel(stamp) {
598
315
  return null;
599
316
  return LOCAL_BUILD_LABEL;
600
317
  }
601
- /** What this install would put on disk right now, as a stamp. */
602
318
  function availableStamp() {
603
319
  const src = sourceAppPath();
604
- // No local bundle means the release path: what would be installed is the
605
- // newest published helper this machine has resolved (cached, day-old at
606
- // most), never below the floor — and the floor itself before the first
607
- // resolution or offline.
608
320
  return src ? stampFor(src) : { source: 'release', helperVersion: cachedMenubarVersion() };
609
321
  }
610
- /** The helper version this install would put on disk right now, for display. */
611
322
  function availableHelperLabel() {
612
323
  return stampVersionLabel(availableStamp()) ?? LOCAL_BUILD_LABEL;
613
324
  }
614
- /**
615
- * Identify the bundle about to be installed, for the stamp.
616
- *
617
- * A bundle is a RELEASE iff it sits under the helper's own download cache —
618
- * asked of `menubarHelperCacheDir`, not pattern-matched out of the path. A regex
619
- * for `/v<x.y.z>/` gets this wrong in both directions: a checkout living under
620
- * any directory that happens to contain a version-shaped segment reads as a
621
- * release, and a release cache laid out differently reads as local. Either
622
- * misclassification flips `source` between invocations, and a kind change is
623
- * unconditionally stale — which is a reinstall loop.
624
- */
625
325
  export function stampFor(resolvedSourceAppPath) {
626
326
  const version = releaseVersionOfCachedBundle(resolvedSourceAppPath);
627
327
  if (version)
@@ -630,19 +330,10 @@ export function stampFor(resolvedSourceAppPath) {
630
330
  try {
631
331
  mtime = fs.statSync(resolvedSourceAppPath).mtimeMs;
632
332
  }
633
- catch { /* best effort */ }
333
+ catch { }
634
334
  return { source: 'local', sourceStamp: `${resolvedSourceAppPath}@${mtime}` };
635
335
  }
636
- /**
637
- * The helper version a path denotes, iff it is inside that version's cache dir.
638
- * Returns null for anything else — including a version-shaped path that is not
639
- * actually the cache.
640
- */
641
336
  export function releaseVersionOfCachedBundle(appPath, cacheDirFor = menubarHelperCacheDir) {
642
- // Try EVERY version-shaped segment, not just the leftmost. A cached bundle
643
- // under a home or mount path that itself contains an unrelated `vX.Y.Z`
644
- // (an nvm dir, a versioned volume) would otherwise match that first segment,
645
- // fail the prefix check, and be misclassified as a local build.
646
337
  const resolved = path.resolve(appPath);
647
338
  for (const m of appPath.matchAll(/v(\d+\.\d+\.\d+)/g)) {
648
339
  const expected = path.resolve(cacheDirFor(m[1]));
@@ -651,21 +342,6 @@ export function releaseVersionOfCachedBundle(appPath, cacheDirFor = menubarHelpe
651
342
  }
652
343
  return null;
653
344
  }
654
- /**
655
- * Pure staleness decision (no I/O) so the truth table is unit-testable.
656
- *
657
- * This compares the HELPER axis, not the CLI's. It used to compare the installed
658
- * stamp against `getCliVersion()`, which was wrong in both directions once the
659
- * helpers gained their own version line: every CLI release made an unchanged
660
- * helper look stale and reinstalled it (the #2109 restart storm), while a
661
- * genuinely newer helper at the same CLI version never looked stale at all.
662
- *
663
- * Stale when: the executable is gone; nothing is stamped; the stamp predates the
664
- * JSON format (`legacy` — re-stamped once); the install KIND changed
665
- * (local <-> release), since a dev build and a release bundle are not
666
- * interchangeable; a release install whose available helper version is newer;
667
- * or a local install whose source path or mtime moved.
668
- */
669
345
  export function isMenubarStale(opts) {
670
346
  if (!opts.execExists)
671
347
  return true;
@@ -691,29 +367,11 @@ function menubarSetupStale() {
691
367
  execExists: fs.existsSync(installedExecutablePath()),
692
368
  });
693
369
  }
694
- /**
695
- * Pure decision (no I/O): should the detached background worker download the
696
- * floor release into the cache so the next startup self-heal has a source?
697
- *
698
- * The self-heal (`installMenubarLaunchAgentOnUpgrade`) is deliberately
699
- * network-free, and the npm tarball ships no bundle, so without this step an
700
- * `npm i -g` Mac keeps whatever helper it has — a crashing 1.1.2, a dead 0.1.0 —
701
- * until someone runs `agents menubar setup` by hand. The worker fetches only
702
- * when the fetch would change something: nothing else can act as a source, the
703
- * user has not opted out, and either no service exists yet (the auto-enable the
704
- * bootstrap promises) or the installed helper is older than the floor.
705
- */
706
370
  export function menubarHelperPrefetchNeeded(opts) {
707
371
  if (!opts.darwin || opts.disabledByUser || opts.hasSource)
708
372
  return false;
709
373
  return !opts.serviceInstalled || opts.stale;
710
374
  }
711
- /**
712
- * Background half of the release-path self-heal: download + verify the floor
713
- * release into the cache when `menubarHelperPrefetchNeeded` says so. Returns
714
- * the cached path, or null when nothing was fetched. Run from the detached
715
- * auto-pull worker; the foreground CLI never waits on it.
716
- */
717
375
  export async function prefetchMenubarHelper() {
718
376
  const needed = menubarHelperPrefetchNeeded({
719
377
  darwin: onDarwin(),
@@ -726,47 +384,18 @@ export async function prefetchMenubarHelper() {
726
384
  return null;
727
385
  return downloadMenubarHelperApp(await menubarVersionToInstall());
728
386
  }
729
- /**
730
- * Pure decision (no I/O): did THIS heal actually replace bundle content a live
731
- * process could be running stale, as opposed to a plist-only repoint?
732
- *
733
- * `stale` (version bump or missing exec) and `needsDevIdHeal` (ad-hoc ->
734
- * Developer ID) both mean the shipped `.app` differs from what is already
735
- * installed — the exact condition under which a running helper can be left on
736
- * an old code identity after `enableMenubarService` swaps the bundle. A
737
- * repoint-only heal (`menubarSetupNeedsRepoint()` alone, same version, same
738
- * signing identity) does NOT count: RUSH-3005 already owns the churn from
739
- * mixed-Node-interpreter repoints, and restarting the helper on every one of
740
- * those would double that churn rather than fix this bug.
741
- */
742
387
  export function menubarHealReplacedBundle(opts) {
743
388
  return opts.stale || opts.needsDevIdHeal;
744
389
  }
745
- /**
746
- * Pure re-point decision (no I/O): the plist's baked interpreter/entry no longer
747
- * match the install that is now running `agents`. This catches DUAL-INSTALL skew
748
- * that a version bump can't — e.g. the plist was baked by an nvm copy but the
749
- * user's `agents` now resolves to a bun copy (same or different version), so the
750
- * helper keeps shelling the stale install for its menu data AND the quick-issue
751
- * dispatch. A null active entry (a dev/tsx run where the compiled entry can't be
752
- * resolved) never triggers a re-point, so it can't churn the plist onto a
753
- * transient path.
754
- */
755
390
  export function menubarPlistNeedsRepoint(opts) {
756
391
  if (!opts.activeEntry)
757
- return false; // can't resolve the running install — don't churn
392
+ return false;
758
393
  if (opts.plistEntry !== opts.activeEntry)
759
394
  return true;
760
- // The entry path owns the helper. The same installed CLI may be invoked through
761
- // several compatible Node interpreters (nvm, Homebrew, a parent process's
762
- // process.execPath). Re-pointing merely because those valid interpreter paths
763
- // differ makes every invocation replace and relaunch the shared helper. Keep the
764
- // recorded interpreter until it disappears; then repoint to the active one.
765
395
  if (opts.activeNode && (!opts.plistNode || !opts.plistNodeExists))
766
396
  return true;
767
397
  return false;
768
398
  }
769
- /** Read one EnvironmentVariables value from the installed service plist. */
770
399
  function readPlistEnvValue(key) {
771
400
  try {
772
401
  const xml = fs.readFileSync(servicePlistPath(), 'utf-8');
@@ -777,7 +406,6 @@ function readPlistEnvValue(key) {
777
406
  return null;
778
407
  }
779
408
  }
780
- /** True when the installed plist points at a different install than the active one. */
781
409
  function menubarSetupNeedsRepoint() {
782
410
  const plistNode = readPlistEnvValue('AGENTS_NODE');
783
411
  return menubarPlistNeedsRepoint({
@@ -788,10 +416,6 @@ function menubarSetupNeedsRepoint() {
788
416
  activeNode: process.execPath,
789
417
  });
790
418
  }
791
- /**
792
- * Stop + remove the menu-bar service and write the sticky opt-out so the
793
- * upgrade migration won't re-enable it.
794
- */
795
419
  export function disableMenubarService() {
796
420
  if (!onDarwin())
797
421
  return;
@@ -806,7 +430,7 @@ export function disableMenubarService() {
806
430
  try {
807
431
  execFileSync('launchctl', ['unload', '-w', plist], { stdio: ['ignore', 'ignore', 'ignore'] });
808
432
  }
809
- catch { /* not loaded */ }
433
+ catch { }
810
434
  }
811
435
  }
812
436
  else {
@@ -815,73 +439,22 @@ export function disableMenubarService() {
815
439
  try {
816
440
  fs.unlinkSync(plist);
817
441
  }
818
- catch { /* already gone */ }
442
+ catch { }
819
443
  try {
820
444
  fs.mkdirSync(path.dirname(disabledSentinelPath()), { recursive: true });
821
445
  fs.writeFileSync(disabledSentinelPath(), `disabled ${new Date().toISOString()}\n`);
822
446
  }
823
- catch { /* best effort */ }
824
- }
825
- /**
826
- * Which install is allowed to (re)install the shared helper.
827
- *
828
- * The helper lives at ONE path in Application Support, but any number of
829
- * agents-cli copies can be present on a box and every one of them runs the
830
- * startup self-heal. The version stamp and the plist's baked `AGENTS_ENTRY` each
831
- * record whichever copy acted last, so without an ownership rule every copy
832
- * reads the others' marks as drift and recopies the bundle over them. Recopying
833
- * replaces the executable under the live helper and kills it; launchd
834
- * `KeepAlive` restarts it; the next copy repeats it. Measured on one box: a new
835
- * pid every 5-15s, 578 launches in the helper's log, a status item that never
836
- * stayed visible, and `agents menubar status` still reporting `running: yes`
837
- * because a pid always existed (#2109).
838
- *
839
- * There is deliberately NO content comparison here. Comparing the shipped helper
840
- * against the installed one cannot distinguish "real upgrade" from "another
841
- * install's copy": the helper is rebuilt, re-signed and re-notarized on every
842
- * helper release (phnx-labs/agi-menu scripts/release.sh), so consecutive releases
843
- * ship byte-different bundles from identical Swift source — 1.22.20/21/22 all
844
- * have the same 2876288-byte executable and three different sha256s AND three
845
- * different CDHashes. Any digest gate therefore reports "changed" for exactly
846
- * the skew case it was meant to exempt.
847
- *
848
- * So the installed version decides release skew: a newer signed release takes
849
- * ownership immediately, an older release cannot downgrade it, and equal foreign
850
- * releases retain the recorded owner. The plist's `AGENTS_ENTRY` remains the
851
- * ownership signal for legacy state with no version marker, where the cooldown
852
- * bounds takeover churn. Pure so the truth table is unit-testable.
853
- */
447
+ catch { }
448
+ }
854
449
  export function mayInstallMenubarHelper(opts) {
855
- // Repairs are never gated: a missing binary or a broken signing identity leaves
856
- // the menu bar dead or re-prompting for Accessibility, and no other install can
857
- // be "fighting" for a bundle that isn't there. Blocking these behind ownership
858
- // is what turned the first version of this gate into a silent stuck state.
859
450
  if (opts.helperExecMissing || opts.needsDevIdHeal)
860
451
  return true;
861
- // Can't resolve which install we are (a dev/tsx run) — never churn the plist.
862
452
  if (!opts.activeEntry)
863
453
  return false;
864
- // No owner recorded yet (fresh or pre-`AGENTS_ENTRY` plist) — adopt it.
865
454
  if (!opts.plistEntry)
866
455
  return true;
867
- // The recorded owner's entry path is gone from disk, so this install may adopt
868
- // the helper — but a non-Developer-ID (ad-hoc/dev) source may NOT seize a
869
- // healthy install this way. Recopying an ad-hoc bundle over the Developer-ID
870
- // one poisons the shared Accessibility grant (an ad-hoc signature fails the
871
- // grant's stored code requirement, so macOS revokes it and re-prompts on the
872
- // next paste) and Gatekeeper then rejects the result as "damaged" (RUSH-2134).
873
- // This does not strand a genuinely broken helper: escape (1) above
874
- // (helperExecMissing / needsDevIdHeal) already lets ANY source repair a
875
- // missing-or-ad-hoc install, so refusing here only declines to re-point the
876
- // plist of a helper that is already present and working — the menu bar keeps
877
- // running, nothing deadlocks.
878
456
  if (!opts.ownerEntryExists)
879
457
  return opts.sourceIsDeveloperId;
880
- // `local` is a KIND marker, not a version — a dev build has none. Comparing it
881
- // with compareVersions would order it against real semver arbitrarily and let a
882
- // dev build win (or lose) a contest it should not enter. When either side is a
883
- // local build the version arm is skipped entirely and the owner arm decides,
884
- // which is the correct outcome: ownership, not version, distinguishes them.
885
458
  const comparableVersions = opts.installedVersion && opts.currentVersion &&
886
459
  opts.installedVersion !== LOCAL_BUILD_LABEL && opts.currentVersion !== LOCAL_BUILD_LABEL;
887
460
  if (comparableVersions) {
@@ -893,34 +466,12 @@ export function mayInstallMenubarHelper(opts) {
893
466
  return opts.plistEntry === opts.activeEntry;
894
467
  }
895
468
  if (opts.plistEntry === opts.activeEntry)
896
- return true; // we are the owner
897
- // A foreign install while the owner still exists. Refusing outright bounds the
898
- // loop but strands the user when the recorded owner is a stale copy that simply
899
- // still sits on disk (an old nvm node dir) while their daily driver upgrades:
900
- // that install would never heal again. So it may take over, but only once per
901
- // cooldown — which turns an every-invocation storm into at most one restart per
902
- // cooldown while keeping every install able to make progress.
903
- //
904
- // Except an ad-hoc/dev-signed copy, which never seizes a healthy helper on a
905
- // timer. `scripts/install.sh` deliberately puts a dev build beside the npm
906
- // global, and its bundle cannot be notarized; letting it win the timed takeover
907
- // would recopy an ad-hoc bundle over a good Developer-ID one, and Gatekeeper
908
- // then rejects the result as "damaged" and AppKit crashes at launch (RUSH-2134)
909
- // — trading a cosmetic loop for a broken menu bar. It can still take over when
910
- // the owner is genuinely gone (above), which is the case that must not deadlock.
469
+ return true;
911
470
  if (!opts.sourceIsDeveloperId)
912
471
  return false;
913
472
  return opts.msSinceLastHeal === null || opts.msSinceLastHeal >= opts.cooldownMs;
914
473
  }
915
- /**
916
- * How long a non-owner install waits before it may take an unversioned legacy
917
- * helper over. Long
918
- * enough that a multi-install box restarts the helper at most once an hour
919
- * instead of every few seconds; short enough that a user who switched installs
920
- * gets their upgrade without hunting for `agents menubar setup`.
921
- */
922
474
  const MENUBAR_TAKEOVER_COOLDOWN_MS = 60 * 60 * 1000;
923
- /** Timestamp of the last self-heal reinstall, next to the version stamp. */
924
475
  function lastHealMarkerPath() {
925
476
  return path.join(installDir(), '.menubar-last-heal');
926
477
  }
@@ -940,9 +491,8 @@ function stampMenubarHeal() {
940
491
  fs.mkdirSync(installDir(), { recursive: true });
941
492
  fs.writeFileSync(lastHealMarkerPath(), String(Date.now()));
942
493
  }
943
- catch { /* best effort */ }
494
+ catch { }
944
495
  }
945
- /** Whether this install may (re)install the helper (see `mayInstallMenubarHelper`). */
946
496
  function mayHealMenubar(needsDevIdHeal) {
947
497
  const plistEntry = readPlistEnvValue('AGENTS_ENTRY');
948
498
  const src = sourceAppPath();
@@ -959,21 +509,6 @@ function mayHealMenubar(needsDevIdHeal) {
959
509
  sourceIsDeveloperId: Boolean(src) && hasDeveloperIdSignature(src),
960
510
  });
961
511
  }
962
- /**
963
- * Startup self-heal, run on every darwin CLI invocation (see src/index.ts).
964
- * No-ops cheaply (a couple of existsSync + a tiny file read) unless work is
965
- * needed:
966
- * - fresh install (no service yet) -> enable
967
- * - upgrade (version stamp changed) or -> re-enable: recopy the new helper
968
- * the App Support helper went missing binary + rewrite the plist + kick
969
- *
970
- * Without the staleness re-enable, `npm update` refreshed the CLI but left the
971
- * menu bar running the previous release's helper binary on a possibly-stale
972
- * plist. Everything past the ownership gate is unchanged; the gate is what stops
973
- * coexisting installs reinstalling over each other forever (#2109). No-ops if:
974
- * not darwin, the user opted out, or no helper bundle ships. Best-effort — never
975
- * throws into startup.
976
- */
977
512
  export function installMenubarLaunchAgentOnUpgrade() {
978
513
  try {
979
514
  if (!onDarwin())
@@ -986,46 +521,25 @@ export function installMenubarLaunchAgentOnUpgrade() {
986
521
  startMenubarServiceFromSource({ clearOptOut: false });
987
522
  return;
988
523
  }
989
- // Re-enable (recopy helper + rewrite plist) when the version drifted OR the
990
- // plist's baked interpreter/entry no longer point at the install now running
991
- // `agents` — e.g. the owner moved between node interpreters — OR the
992
- // installed copy is still ad-hoc while the shipped source is Developer ID
993
- // (older heal path; Accessibility re-prompts until the identity is restored).
994
524
  const needsDevIdHeal = installedNeedsDevIdHeal();
995
525
  const stale = menubarSetupStale();
996
526
  if (!(stale || menubarSetupNeedsRepoint() || needsDevIdHeal))
997
527
  return;
998
- // ...but a copy that does not own the helper only gets to act on that drift
999
- // once per cooldown. Without the gate every coexisting install recopies the
1000
- // bundle on every invocation, killing the live helper on a loop (#2109).
1001
528
  if (!mayHealMenubar(needsDevIdHeal))
1002
529
  return;
1003
- // Stamp only a heal that actually happened. `enableMenubarService` returns
1004
- // false without installing when the bundle fails the Gatekeeper check, and
1005
- // stamping first would spend the shared cooldown on a no-op — locking every
1006
- // non-owner out for another hour while nothing had been fixed.
1007
530
  if (startMenubarServiceFromSource({ clearOptOut: false })) {
1008
531
  stampMenubarHeal();
1009
- // One-time: the ad-hoc -> Developer ID transition leaves a dead TCC row
1010
- // under the old identity (tccutil on zion reset it 11 times across
1011
- // machines that made this jump) — clear it so the fresh grant sticks.
1012
532
  if (shouldMigrateMenubarTcc({ needsDevIdHeal, alreadyMigrated: menubarTccAlreadyMigrated() })) {
1013
533
  resetMenubarAccessibilityTcc();
1014
534
  }
1015
- // Only a REAL content swap (version bump or the Dev-ID transition) can
1016
- // leave a running process on stale code — a plist-only repoint (handled
1017
- // above by menubarSetupNeedsRepoint alone) is RUSH-3005's churn to own,
1018
- // not this heal's to restart on top of.
1019
535
  if (menubarHealReplacedBundle({ stale, needsDevIdHeal })) {
1020
536
  restartMenubarHelperAfterSwap(process.getuid?.() ?? 0, liveMenubarProcesses().own);
1021
537
  }
1022
538
  }
1023
539
  }
1024
540
  catch {
1025
- /* never block startup on the menu bar */
1026
541
  }
1027
542
  }
1028
- /** True when App Support still has an ad-hoc copy but the npm bundle is Developer ID. */
1029
543
  function installedNeedsDevIdHeal() {
1030
544
  const src = sourceAppPath();
1031
545
  if (!src || !fs.existsSync(installedAppPath()))
@@ -1034,57 +548,26 @@ function installedNeedsDevIdHeal() {
1034
548
  return false;
1035
549
  return hasDeveloperIdSignature(src);
1036
550
  }
1037
- /** Marker written once the one-time ad-hoc -> Developer ID TCC migration has
1038
- * run on this machine, next to the version/heal stamps. */
1039
551
  function tccMigrationMarkerPath() {
1040
552
  return path.join(installDir(), '.menubar-tcc-migrated');
1041
553
  }
1042
554
  function menubarTccAlreadyMigrated() {
1043
555
  return fs.existsSync(tccMigrationMarkerPath());
1044
556
  }
1045
- /**
1046
- * Pure decision (no I/O): run the one-time `tccutil reset Accessibility` only
1047
- * on a real ad-hoc -> Developer ID transition, and only once ever. A machine
1048
- * that was always Developer ID never accumulated a dead TCC row under an
1049
- * ad-hoc identity, so resetting there would just force a needless re-prompt;
1050
- * a machine that already migrated must not be reset again on every heal.
1051
- */
1052
557
  export function shouldMigrateMenubarTcc(opts) {
1053
558
  return opts.needsDevIdHeal && !opts.alreadyMigrated;
1054
559
  }
1055
- /**
1056
- * Reset the stale Accessibility grant TCC recorded against the pre-migration
1057
- * ad-hoc identity, then stamp the marker so this never runs again on this
1058
- * machine. Targets `SERVICE_LABEL_BASE` — the bundle's actual
1059
- * `CFBundleIdentifier`/codesign `--identifier` (set by agi-menu's build.sh) that
1060
- * TCC keys grants to — not the namespaced `serviceLabel()`, which exists only
1061
- * to keep launchd job labels apart under a redirected HOME (RUSH-2639) and is
1062
- * never the app's real identity. Best-effort: a missing/failing `tccutil`
1063
- * (older macOS, a sandboxed test HOME) must never block the heal that just
1064
- * fixed the signing identity itself.
1065
- */
1066
560
  export function resetMenubarAccessibilityTcc(exec = execFileSync) {
1067
561
  try {
1068
562
  exec('tccutil', ['reset', 'Accessibility', SERVICE_LABEL_BASE], { stdio: ['ignore', 'ignore', 'ignore'] });
1069
563
  }
1070
- catch { /* best effort — a missing/failing tccutil must not block the heal */ }
564
+ catch { }
1071
565
  try {
1072
566
  fs.mkdirSync(installDir(), { recursive: true });
1073
567
  fs.writeFileSync(tccMigrationMarkerPath(), new Date().toISOString());
1074
568
  }
1075
- catch { /* best effort */ }
1076
- }
1077
- /**
1078
- * Decide which live helper processes must be ended so exactly one status item
1079
- * survives. Pure so the choice is unit-testable without a live menu bar.
1080
- *
1081
- * EVERY current process is ended, including the wanted one: the caller
1082
- * re-kickstarts the launchd service straight after, so the survivor is the one
1083
- * launchd owns (RunAtLoad + KeepAlive), not whichever copy happened to win a
1084
- * race. Picking a survivor from a `ps` listing cannot do this — the list says
1085
- * nothing about which pid launchd will keep alive, so leaving one alive risks
1086
- * keeping the un-managed copy and re-creating the duplicate on next login.
1087
- */
569
+ catch { }
570
+ }
1088
571
  export function processesToEnd(status) {
1089
572
  return [...status.instances, ...status.foreignInstances];
1090
573
  }
@@ -1092,22 +575,8 @@ function endProcess(pid) {
1092
575
  try {
1093
576
  process.kill(pid, 'SIGTERM');
1094
577
  }
1095
- catch { /* already gone */ }
1096
- }
1097
- /**
1098
- * `agents menubar setup` — configure the menu bar end-to-end, idempotently.
1099
- *
1100
- * The one command that gets a machine to the intended state: exactly one status
1101
- * item, owned by a launchd service that starts it at login and restarts it if it
1102
- * dies. Each concern is a reported step, so a partial failure names itself
1103
- * instead of hiding behind "enabled".
1104
- *
1105
- * 1. bundle — install/refresh the .app at the stable App Support path
1106
- * 2. signature — a valid code identity (macOS 26+ SIGKILLs an invalid one)
1107
- * 3. duplicates — end every live helper, so the only survivor is launchd's
1108
- * 4. login item — write the plist (RunAtLoad + KeepAlive) and bootstrap it
1109
- * 5. single — verify exactly one helper came back up
1110
- */
578
+ catch { }
579
+ }
1111
580
  export async function runMenubarSetup() {
1112
581
  const steps = [];
1113
582
  const step = (name, outcome, detail) => {
@@ -1118,11 +587,6 @@ export async function runMenubarSetup() {
1118
587
  return { steps, configured: false, status: getMenubarStatus() };
1119
588
  }
1120
589
  const before = getMenubarStatus();
1121
- // Explicit user-initiated path: when no bundled/local `.app` ships (a fresh
1122
- // `npm i -g` machine whose tarball lacks the bundle), fetch the signed +
1123
- // notarized release asset for this CLI version. Verified (sha256 + codesign +
1124
- // Team + designated-requirement pin + notarization) before install; the
1125
- // cached copy is the source for `ensureMenubarAppInstalled` below.
1126
590
  let src = shippedAppPath();
1127
591
  if (!src) {
1128
592
  try {
@@ -1133,9 +597,6 @@ export async function runMenubarSetup() {
1133
597
  return { steps, configured: false, status: before };
1134
598
  }
1135
599
  }
1136
- // 3 before 1: end the running copies BEFORE swapping the bundle underneath
1137
- // them, so no helper keeps a status item alive on a binary that no longer
1138
- // exists on disk.
1139
600
  const doomed = processesToEnd(before);
1140
601
  for (const p of doomed)
1141
602
  endProcess(p.pid);
@@ -1153,21 +614,7 @@ export async function runMenubarSetup() {
1153
614
  step('bundle', 'failed', 'could not install the helper bundle');
1154
615
  return { steps, configured: false, status: getMenubarStatus() };
1155
616
  }
1156
- // The helper axis here too: this label read "ok" only when the installed
1157
- // helper's stamp happened to equal the CLI's version, which after this change
1158
- // is never true on a release install.
1159
- //
1160
- // Compare the STAMPS, not their labels. `stampVersionLabel` collapses every
1161
- // local build to the literal 'local', discarding the mtime — so a real dev
1162
- // rebuild (which the surrounding logic does correctly reinstall) would print
1163
- // "ok" and hide that anything changed. That is the same collapse already
1164
- // excluded in `versionMatches` and `mayInstallMenubarHelper`; this was the
1165
- // third site and the only one still reading through the lossy label.
1166
617
  const bundleStamp = readInstalledMenubarStamp();
1167
- // Reuse the file's canonical comparator rather than a second, serialization
1168
- // -based one: `JSON.stringify` was sound only because both stamps come from
1169
- // `stampFor`, which is an implicit key-order dependency with no reason to
1170
- // exist when isMenubarStale already answers exactly this question.
1171
618
  const bundleUnchanged = bundleStamp !== null &&
1172
619
  !isMenubarStale({ installed: bundleStamp, available: availableStamp(), execExists: true });
1173
620
  step('bundle', bundleUnchanged ? 'ok' : 'changed', `${installedAppPath()} (${stampVersionLabel(bundleStamp) ?? 'unknown'})`);
@@ -1177,14 +624,9 @@ export async function runMenubarSetup() {
1177
624
  return { steps, configured: false, status: getMenubarStatus() };
1178
625
  }
1179
626
  step('signature', 'ok', 'valid + notarized');
1180
- // Clear the sticky opt-out: running `setup` is an explicit request for the
1181
- // menu bar, so a stale `menubar disable` must not silently win.
1182
627
  clearMenubarOptOut();
1183
628
  installAndStartService(exec, stampFor(src ?? undefined));
1184
629
  step('login item', before.serviceInstalled ? 'ok' : 'changed', `${serviceLabel()} — starts at login, restarts if it dies`);
1185
- // launchd's bootstrap+kickstart is asynchronous; give the status item a beat
1186
- // to claim the lock before counting instances, or `setup` reports zero on a
1187
- // machine that is in fact coming up correctly.
1188
630
  const after = waitForSingleInstance();
1189
631
  if (after.instances.length === 1 && after.foreignInstances.length === 0) {
1190
632
  step('single instance', 'ok', `pid ${after.instances[0].pid}`);
@@ -1202,10 +644,6 @@ export async function runMenubarSetup() {
1202
644
  status: after,
1203
645
  };
1204
646
  }
1205
- /**
1206
- * Poll (up to ~3s) for launchd to bring the single helper back. Returns the
1207
- * last status read either way — the caller decides what a miss means.
1208
- */
1209
647
  function waitForSingleInstance() {
1210
648
  let status = getMenubarStatus();
1211
649
  for (let i = 0; i < 15 && status.instances.length !== 1; i++) {
@@ -1214,8 +652,6 @@ function waitForSingleInstance() {
1214
652
  }
1215
653
  return status;
1216
654
  }
1217
- /** Parse `ps -axo pid=,<field>=` into pid -> field. The field is the rest of the
1218
- * line, so a path containing spaces (App Support does) survives intact. */
1219
655
  function parsePsLines(psOutput) {
1220
656
  const out = new Map();
1221
657
  for (const line of psOutput.split('\n')) {
@@ -1225,26 +661,6 @@ function parsePsLines(psOutput) {
1225
661
  }
1226
662
  return out;
1227
663
  }
1228
- /**
1229
- * Split the live MenubarHelper processes into the installed bundle's own
1230
- * (`own`) and every other copy (`foreign`).
1231
- *
1232
- * `pgrep -f MenubarHelper` conflated the two, so a stray dev build could hold
1233
- * the global Cmd-Shift-V chord (RegisterEventHotKey is first-come) while status
1234
- * still reported a healthy `running: yes` — the paste was dead and nothing said
1235
- * so. A foreign copy is the thing to look for, so name it.
1236
- *
1237
- * `own` is a LIST, not a boolean: two copies of the INSTALLED bundle can run at
1238
- * once (launchd's KeepAlive service plus a LaunchServices/`open` launch of the
1239
- * same .app), which is the duplicate the user actually sees — two agents marks
1240
- * in the menu bar. Collapsing them to `running: true` reported that state as
1241
- * healthy. The helper now refuses to be the second (SingleInstance.swift), and
1242
- * `agents menubar setup` ends any duplicate a pre-fix helper left behind.
1243
- *
1244
- * Identity comes from `comm` (the resolved executable), never from a substring
1245
- * of the command line: matching the latter flags any shell that merely mentions
1246
- * the helper's name. `command` is consulted only to drop `--notify` one-shots.
1247
- */
1248
664
  export function classifyMenubarProcesses(commOutput, commandOutput, installedExec) {
1249
665
  const commands = parsePsLines(commandOutput);
1250
666
  const own = [];
@@ -1252,8 +668,6 @@ export function classifyMenubarProcesses(commOutput, commandOutput, installedExe
1252
668
  for (const [pid, executable] of parsePsLines(commOutput)) {
1253
669
  if (path.basename(executable) !== MENUBAR_HELPER_EXECUTABLE_NAME)
1254
670
  continue;
1255
- // `--notify` is a one-shot that posts a notification and exits; it runs the
1256
- // installed binary but never claims the status item or the chords.
1257
671
  if ((commands.get(pid) || '').includes('--notify'))
1258
672
  continue;
1259
673
  if (executable === installedExec)
@@ -1263,7 +677,6 @@ export function classifyMenubarProcesses(commOutput, commandOutput, installedExe
1263
677
  }
1264
678
  return { own, foreign };
1265
679
  }
1266
- /** Live MenubarHelper processes, split by whether they are the installed bundle. */
1267
680
  function liveMenubarProcesses() {
1268
681
  if (!onDarwin())
1269
682
  return { own: [], foreign: [] };
@@ -1293,30 +706,9 @@ export function getMenubarStatus() {
1293
706
  disabledByUser: menubarDisabledByUser(),
1294
707
  };
1295
708
  }
1296
- /**
1297
- * Pure comparison (no I/O) behind the stale-process check: a helper pid that
1298
- * started before the bundle on disk was last written is still running the
1299
- * PREVIOUS binary — the exact condition `restartMenubarHelperAfterSwap` exists
1300
- * to fix. Millisecond epoch timestamps in, so the truth table is unit-testable
1301
- * without a live process or filesystem.
1302
- *
1303
- * The two timestamps do not have the same resolution. `pidStartTimeMs` parses
1304
- * `ps -o lstart`, which prints whole SECONDS, while the bundle mtime carries
1305
- * sub-second precision — and the restart this check exists to detect happens
1306
- * within a second of the swap that triggered it. A raw `<` therefore called a
1307
- * healthy just-restarted helper stale on essentially every upgrade: measured on
1308
- * zion at 1.22.46, pid start 1787441353000 vs bundle mtime 1787441353700, 700ms
1309
- * apart inside one second, reported as "running the OLD binary" and surfaced as
1310
- * `accessibilityHintNeeded` — telling the user to re-grant Accessibility after
1311
- * an upgrade that had already restarted the helper correctly. So the bundle
1312
- * mtime is truncated to the same whole second `ps` reports before comparing: a
1313
- * pid that started in the swap's own second is fresh, and a genuinely stale pid
1314
- * (a full second or more older) is still caught.
1315
- */
1316
709
  export function isMenubarProcessStaleAgainstBundle(pidStartedAtMs, bundleMtimeMs) {
1317
710
  return pidStartedAtMs < Math.floor(bundleMtimeMs / 1000) * 1000;
1318
711
  }
1319
- /** Wall-clock start time of a live pid via `ps`, or null if it can't be read. */
1320
712
  function pidStartTimeMs(pid) {
1321
713
  const r = spawnSync('ps', ['-o', 'lstart=', '-p', String(pid)], {
1322
714
  stdio: ['ignore', 'pipe', 'ignore'],
@@ -1330,14 +722,6 @@ function pidStartTimeMs(pid) {
1330
722
  const t = new Date(raw).getTime();
1331
723
  return Number.isNaN(t) ? null : t;
1332
724
  }
1333
- /**
1334
- * `agents menubar doctor` — everything a human needs to tell "why did
1335
- * Accessibility ask again" apart from "the helper is genuinely broken":
1336
- * install path, version skew, whether the signing identity is update-stable,
1337
- * and whether a live process predates the bundle it's supposed to be running.
1338
- * Read-only: no install, no restart, no TCC reset — `agents menubar setup`
1339
- * remains the command that fixes what this reports.
1340
- */
1341
725
  export function buildMenubarDoctorReport() {
1342
726
  if (!onDarwin()) {
1343
727
  return {
@@ -1371,7 +755,7 @@ export function buildMenubarDoctorReport() {
1371
755
  })
1372
756
  .filter((p) => p !== null);
1373
757
  }
1374
- catch { /* exec vanished mid-check — report no staleness rather than throw */ }
758
+ catch { }
1375
759
  }
1376
760
  return {
1377
761
  platform: process.platform,
@@ -1379,9 +763,6 @@ export function buildMenubarDoctorReport() {
1379
763
  installedVersion: status.installedVersion,
1380
764
  currentVersion: status.currentVersion,
1381
765
  cliVersion: status.cliVersion,
1382
- // Two local builds are not a version "mismatch" — neither carries a version.
1383
- // Reporting one told the user to run `setup` for a difference that does not
1384
- // exist, which is what made the old hint fire forever.
1385
766
  versionMatches: status.installedVersion === LOCAL_BUILD_LABEL && status.currentVersion === LOCAL_BUILD_LABEL
1386
767
  ? true
1387
768
  : status.installedVersion === status.currentVersion,
@@ -1391,28 +772,6 @@ export function buildMenubarDoctorReport() {
1391
772
  accessibilityHintNeeded: signingIdentity === 'ad-hoc' || staleRunningProcess.some((p) => p.stale),
1392
773
  };
1393
774
  }
1394
- /**
1395
- * Bring an installed release helper up to the newest published build, without
1396
- * a human running `agents menubar setup`.
1397
- *
1398
- * Runs from the daemon's self-heal tick and right after `agents upgrade`. It
1399
- * only ever moves a RELEASE install forward: a machine whose helper came from a
1400
- * local build (a dev checkout) keeps it, a machine that never enabled the menu
1401
- * bar or opted out is left alone, and the ownership contest that bounds
1402
- * multi-install churn (`mayInstallMenubarHelper`) still applies. The bundle is
1403
- * downloaded and verified by the same path every install uses (sha256,
1404
- * codesign, Team, designated-requirement pin, notarization), swapped
1405
- * atomically under the install lock at the same path and identity — which is
1406
- * what keeps the Accessibility grant — and the running helper is restarted
1407
- * from the new binary (`restartMenubarHelperAfterSwap`; launchd's KeepAlive
1408
- * relaunches it within seconds). `dryRun` reports what would happen. Never
1409
- * throws.
1410
- */
1411
- /**
1412
- * Pure (no I/O): whether an auto-update pass should proceed, and why not.
1413
- * `shipped` is a bundle that ships WITH this install (never a downloaded
1414
- * release cache) — CLI upgrades own that one. Returns null to proceed.
1415
- */
1416
775
  export function menubarUpdateSkipReason(opts) {
1417
776
  if (!opts.darwin)
1418
777
  return 'macOS only';
@@ -1427,7 +786,6 @@ export function menubarUpdateSkipReason(opts) {
1427
786
  }
1428
787
  return null;
1429
788
  }
1430
- /** Pure (no I/O): what the pass does given the installed and available versions. */
1431
789
  export function menubarUpdateOutcome(installed, available) {
1432
790
  return compareVersions(available, installed) > 0 ? 'updated' : 'current';
1433
791
  }
@@ -1461,7 +819,7 @@ export async function updateMenubarHelperIfNewer(opts = {}) {
1461
819
  try {
1462
820
  fs.writeFileSync(installedVersionMarkerPath(), JSON.stringify(stampFor(src)));
1463
821
  }
1464
- catch { /* best effort */ }
822
+ catch { }
1465
823
  stampMenubarHeal();
1466
824
  restartMenubarHelperAfterSwap(process.getuid?.() ?? 0, liveMenubarProcesses().own);
1467
825
  return { outcome: 'updated', installed, available, detail: `AGI Menu ${installed} → ${available}` };