@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
package/dist/lib/state.js CHANGED
@@ -1,27 +1,3 @@
1
- /**
2
- * Filesystem layout and persistent state for agents-cli.
3
- *
4
- * Single root at ~/.agents/ with three internal buckets:
5
- *
6
- * ~/.agents/ — user repo: user-authored resources + agents.yaml
7
- * (git-tracked via `agents repo push`).
8
- * ~/.agents/.system/ — system repo: npm-shipped resources, regenerable.
9
- * Don't hand-edit; maintained by npm install /
10
- * `agents repo pull system`.
11
- * ~/.agents/.history/ — durable runtime data (sessions, versions, runs,
12
- * teams/agents, trash, backups). Backed up by
13
- * `agents repo push`.
14
- * ~/.agents/.cache/ — regenerable runtime data (shims, packages, helpers
15
- * for daemon, terminals, cloud, drive, browser
16
- * chrome-data, logs, companion). Gitignored.
17
- *
18
- * Resolution precedence for resources: project > user > system.
19
- * Every module that needs a path or reads/writes agents.yaml goes through here.
20
- *
21
- * Legacy layout (pre-fold): system repo lived at ~/.agents-system/ as a peer
22
- * of ~/.agents/. runMigration() folds it into ~/.agents/.system/ on first run
23
- * and leaves a back-compat symlink at the old path.
24
- */
25
1
  import * as fs from 'fs';
26
2
  import * as path from 'path';
27
3
  import * as os from 'os';
@@ -32,11 +8,6 @@ import { ensureLockTarget, atomicWriteFileSync, withFileLock } from './fs-atomic
32
8
  import { DEFAULT_SYSTEM_REPO, systemRepoSlug } from './types.js';
33
9
  import { machineId } from './machine-id.js';
34
10
  const HOME = process.env.HOME ?? os.homedir();
35
- /**
36
- * Compare two filesystem paths for identity, resolving symlinks and (on
37
- * Windows) 8.3 short-name vs long-name divergence via the OS realpath.
38
- * Falls back to a case-folded normalize when a path doesn't exist on disk.
39
- */
40
11
  function isSamePath(a, b) {
41
12
  try {
42
13
  return fs.realpathSync.native(a) === fs.realpathSync.native(b);
@@ -46,26 +17,13 @@ function isSamePath(a, b) {
46
17
  return norm(a) === norm(b);
47
18
  }
48
19
  }
49
- // ─── Root directories ─────────────────────────────────────────────────────────
50
- /** User repo — user-authored resources and agents.yaml. Always-on. */
51
20
  const USER_AGENTS_DIR = path.join(HOME, '.agents');
52
- /** System repo — npm-shipped, read-only from user commands. Lives inside the user repo. */
53
21
  const SYSTEM_AGENTS_DIR = path.join(USER_AGENTS_DIR, '.system');
54
- /**
55
- * Legacy system-repo location (pre-fold). Exported so the migrator can fold
56
- * it into SYSTEM_AGENTS_DIR. No runtime code outside the migrator should
57
- * reference this — use SYSTEM_AGENTS_DIR.
58
- */
59
22
  const LEGACY_SYSTEM_AGENTS_DIR = path.join(HOME, '.agents-system');
60
- // ─── Meta file (agents.yaml lives in the user repo) ──────────────────────────
61
23
  const META_FILE = path.join(USER_AGENTS_DIR, 'agents.yaml');
62
- /** Legacy location — used only for one-shot migration in readMeta(). */
63
24
  const SYSTEM_META_FILE = path.join(SYSTEM_AGENTS_DIR, 'agents.yaml');
64
- /** Canonical path for the humans.yaml owner-identity/channel config. */
65
25
  const HUMANS_FILE = path.join(USER_AGENTS_DIR, 'humans.yaml');
66
- /** Return the absolute path to the humans.yaml file. */
67
26
  export function getHumansFilePath() { return process.env.AGENTS_HUMANS_FILE ?? HUMANS_FILE; }
68
- // ─── System resource dirs ─────────────────────────────────────────────────────
69
27
  const SYSTEM_COMMANDS_DIR = path.join(SYSTEM_AGENTS_DIR, 'commands');
70
28
  const SYSTEM_HOOKS_DIR = path.join(SYSTEM_AGENTS_DIR, 'hooks');
71
29
  const SYSTEM_SKILLS_DIR = path.join(SYSTEM_AGENTS_DIR, 'skills');
@@ -75,46 +33,25 @@ const SYSTEM_PERMISSIONS_DIR = path.join(SYSTEM_AGENTS_DIR, 'permissions');
75
33
  const SYSTEM_SUBAGENTS_DIR = path.join(SYSTEM_AGENTS_DIR, 'subagents');
76
34
  const SYSTEM_WORKFLOWS_DIR = path.join(SYSTEM_AGENTS_DIR, 'workflows');
77
35
  const SYSTEM_PLUGINS_DIR = path.join(SYSTEM_AGENTS_DIR, 'plugins');
78
- // Built-in routines shipped in the system repo (gh:phnx-labs/.agents-system).
79
- // Unioned under user routines by listJobs()/readJob() so a routine shipped here
80
- // fires for every install, while a user routine of the same name overrides it.
81
36
  const SYSTEM_ROUTINES_DIR = path.join(SYSTEM_AGENTS_DIR, 'routines');
82
- // Built-in monitors shipped in the system repo (gh:phnx-labs/.agents-system).
83
- // Unioned under user monitors by listMonitors()/readMonitor() so a monitor
84
- // shipped here is available on every install, while a user monitor of the same
85
- // name overrides it (a built-in with no `enabled:` field stays opt-in).
86
37
  const SYSTEM_MONITORS_DIR = path.join(SYSTEM_AGENTS_DIR, 'monitors');
87
38
  const SYSTEM_WEBHOOKS_DIR = path.join(SYSTEM_AGENTS_DIR, 'webhooks');
88
39
  const SYSTEM_PROMPTCUTS_FILE = path.join(SYSTEM_AGENTS_DIR, 'hooks', 'promptcuts.yaml');
89
40
  const SYSTEM_MCP_CONFIG_FILE = path.join(SYSTEM_AGENTS_DIR, 'mcp.json');
90
41
  const SYSTEM_INSTRUCTIONS_FILE = path.join(SYSTEM_AGENTS_DIR, 'instructions.md');
91
- // ─── User repo operational buckets ────────────────────────────────────────────
92
- /** Durable runtime data (sessions, versions, runs, teams history, trash, backups). */
93
42
  const HISTORY_DIR = path.join(USER_AGENTS_DIR, '.history');
94
- /** Regenerable runtime data (shims, packages, helpers, terminals, cloud, drive, logs, browser). */
95
43
  const CACHE_DIR = path.join(USER_AGENTS_DIR, '.cache');
96
- // Top-level user dirs (config/definitions only — runtime moves into .history/.cache).
97
44
  const ROUTINES_DIR = path.join(USER_AGENTS_DIR, 'routines');
98
45
  const WEBHOOKS_DIR = path.join(USER_AGENTS_DIR, 'webhooks');
99
- // Monitor definitions (event-triggered watchers). Sibling of ROUTINES_DIR: a
100
- // monitor is a routine whose trigger is a watched source instead of a clock.
101
46
  const MONITORS_DIR = path.join(USER_AGENTS_DIR, 'monitors');
102
47
  const TEAMS_DIR = path.join(USER_AGENTS_DIR, 'teams');
103
- // Named project definitions (the layer above the --project convention). Sibling
104
- // of ROUTINES_DIR/TEAMS_DIR: hand-editable YAML, synced across machines by push/pull.
105
48
  const PROJECTS_DIR = path.join(USER_AGENTS_DIR, 'projects');
106
- // Daemon service toggles and persistent daemon config. Top-level config/definitions
107
- // dir like routines/webhooks; runtime state (pid/heartbeat/logs) stays in .cache.
108
49
  const DAEMON_CONFIG_DIR = path.join(USER_AGENTS_DIR, 'daemon');
109
- // History bucket (durable).
110
50
  const SESSIONS_DIR = path.join(HISTORY_DIR, 'sessions');
111
51
  const SESSIONS_DB_PATH = path.join(SESSIONS_DIR, 'sessions.db');
112
52
  const ANALYTICS_DIR = path.join(HISTORY_DIR, 'analytics');
113
53
  const VERSIONS_DIR = path.join(HISTORY_DIR, 'versions');
114
54
  const RUNS_DIR = path.join(HISTORY_DIR, 'runs');
115
- // Durable per-monitor state-diff store + fire history (last-seen value/hash,
116
- // fires/<id>/). Sibling of RUNS_DIR — the native diff store that replaces the
117
- // hand-rolled markdown memory files monitors used to need.
118
55
  const MONITORS_HISTORY_DIR = path.join(HISTORY_DIR, 'monitors');
119
56
  const TEAMS_AGENTS_DIR = path.join(HISTORY_DIR, 'teams', 'agents');
120
57
  const BACKUPS_DIR = path.join(HISTORY_DIR, 'backups');
@@ -122,19 +59,15 @@ const TRASH_DIR = path.join(HISTORY_DIR, 'trash');
122
59
  const MAILBOX_DIR = path.join(HISTORY_DIR, 'mailbox');
123
60
  const FEED_DIR = path.join(HISTORY_DIR, 'feed');
124
61
  const ACTIVITY_DIR = path.join(HISTORY_DIR, 'activity');
125
- // Cache bucket (regenerable).
126
62
  const SHIMS_DIR = path.join(CACHE_DIR, 'shims');
127
63
  const HOOK_SHIMS_DIR = path.join(SHIMS_DIR, 'hooks');
128
64
  const HOOK_CACHE_DIR = path.join(CACHE_DIR, 'state', 'hooks');
129
65
  const BIN_DIR = path.join(CACHE_DIR, 'bin');
130
66
  const PACKAGES_DIR = path.join(CACHE_DIR, 'packages');
131
- // Plugins are user-authored resources, alongside skills/, commands/, hooks/.
132
- // They live at the user-root so they're git-tracked as source of truth.
133
67
  const PLUGINS_DIR = path.join(USER_AGENTS_DIR, 'plugins');
134
68
  const CLOUD_DIR = path.join(CACHE_DIR, 'cloud');
135
69
  const TERMINALS_DIR = path.join(CACHE_DIR, 'terminals');
136
70
  const LOGS_DIR = path.join(CACHE_DIR, 'logs');
137
- /** Disposable performance samples (~/.agents/.cache/perf/) — safe to wipe. */
138
71
  const PERF_DIR = path.join(CACHE_DIR, 'perf');
139
72
  const RUNTIME_STATE_DIR = path.join(CACHE_DIR, 'state');
140
73
  const COMPANION_CACHE_DIR = path.join(CACHE_DIR, 'companion');
@@ -147,7 +80,6 @@ const CLI_VERSION_CACHE_FILE = path.join(CACHE_DIR, '.cli-version-cache.json');
147
80
  const MODELS_CACHE_FILE = path.join(CACHE_DIR, '.models-cache.json');
148
81
  const UPDATE_CHECK_FILE = path.join(CACHE_DIR, '.update-check');
149
82
  const MIGRATED_SENTINEL_FILE = path.join(CACHE_DIR, '.migrated');
150
- // ─── User resource dirs ───────────────────────────────────────────────────────
151
83
  const USER_COMMANDS_DIR = path.join(USER_AGENTS_DIR, 'commands');
152
84
  const USER_HOOKS_DIR = path.join(USER_AGENTS_DIR, 'hooks');
153
85
  const USER_SKILLS_DIR = path.join(USER_AGENTS_DIR, 'skills');
@@ -158,32 +90,21 @@ const USER_SUBAGENTS_DIR = path.join(USER_AGENTS_DIR, 'subagents');
158
90
  const USER_WORKFLOWS_DIR = path.join(USER_AGENTS_DIR, 'workflows');
159
91
  const USER_SECRETS_DIR = path.join(USER_AGENTS_DIR, 'secrets');
160
92
  const USER_PROMPTCUTS_FILE = path.join(USER_AGENTS_DIR, 'hooks', 'promptcuts.yaml');
161
- /**
162
- * Header prepended to every agents.yaml the CLI writes (central and per-device
163
- * docs). Carries the yaml-language-server schema hint so editors validate the
164
- * file against `schema/agents-yaml.schema.json`. Exported so
165
- * `lib/devices/config-migration.ts` rewrites a device doc with the same header.
166
- */
167
93
  export const META_HEADER = `# agents-cli metadata
168
94
  # Auto-generated - do not edit manually
169
95
  # https://github.com/phnx-labs/agi-cli
170
96
  # yaml-language-server: $schema=https://raw.githubusercontent.com/phnx-labs/agi-cli/main/cli/schema/agents-yaml.schema.json
171
97
 
172
98
  `;
173
- // ─── Root getters ─────────────────────────────────────────────────────────────
174
- /** Root of the system data directory (~/.agents/.system/). */
175
99
  export function getAgentsDir() {
176
100
  return SYSTEM_AGENTS_DIR;
177
101
  }
178
- /** Root of the system data directory (~/.agents/.system/). */
179
102
  export function getSystemAgentsDir() {
180
103
  return SYSTEM_AGENTS_DIR;
181
104
  }
182
- /** Legacy system-repo location (~/.agents-system/). Exported for migration only. */
183
105
  export function getLegacySystemAgentsDir() {
184
106
  return LEGACY_SYSTEM_AGENTS_DIR;
185
107
  }
186
- /** Root of the user repo (~/.agents/). Always present after ensureAgentsDir(). */
187
108
  export function getUserAgentsDir() {
188
109
  return USER_AGENTS_DIR;
189
110
  }
@@ -207,17 +128,10 @@ export function getOptionalUserAgentsDir() {
207
128
  }
208
129
  }
209
130
  }
210
- catch { /* dir may not exist yet */ }
131
+ catch { }
211
132
  }
212
133
  return USER_AGENTS_DIR;
213
134
  }
214
- /**
215
- * Origin `owner/repo` slug (lowercased, `.git` stripped) of a git checkout, or
216
- * null when `dir` isn't a git repo / has no origin. Extracts the slug from any
217
- * remote URL form: `git@host:owner/repo.git`, `https://host/owner/repo.git`,
218
- * `ssh://git@host/owner/repo`. Sync (uses `execFileSync`, not the async git
219
- * helpers) so it can be used from the synchronous getProjectAgentsDir walk.
220
- */
221
135
  function gitOriginSlug(dir) {
222
136
  let url;
223
137
  try {
@@ -233,7 +147,6 @@ function gitOriginSlug(dir) {
233
147
  const m = url.replace(/\.git$/i, '').match(/[:/]([^/:]+\/[^/]+)$/);
234
148
  return m ? m[1].toLowerCase() : null;
235
149
  }
236
- /** Slugs of the user + system DotAgents repos — a checkout of any of these is not a project layer. */
237
150
  function canonicalDotAgentsRepoSlugs() {
238
151
  const slugs = new Set([systemRepoSlug(DEFAULT_SYSTEM_REPO).toLowerCase()]);
239
152
  for (const dir of [USER_AGENTS_DIR, SYSTEM_AGENTS_DIR]) {
@@ -243,21 +156,6 @@ function canonicalDotAgentsRepoSlugs() {
243
156
  }
244
157
  return slugs;
245
158
  }
246
- /**
247
- * True when `agentsPath` is itself a git checkout of the user's or system's
248
- * DotAgents repo — i.e. a *clone* of the very repo whose rules already load as
249
- * the user/system layer (e.g. `git clone …/.agents.git ~/src/github.com/<you>/.agents`).
250
- * Such a clone must NOT also be treated as a *project* layer: because project
251
- * outranks user, a stale clone would silently shadow the live user rules by
252
- * filename and plant a compiled AGENTS.md in an ancestor dir (RUSH-2037).
253
- *
254
- * A legitimate project layer is a plain subdirectory of a project and is never
255
- * itself a git-repo root, so the cheap `.git` gate skips the (git-spawning)
256
- * origin comparison for the common case — only a `.agents/` that is its own
257
- * checkout pays it, and even then it's kept unless its origin matches the
258
- * user/system DotAgents repo (an unrelated repo checked out at `.agents/`,
259
- * or a project's own versioned `.agents/`, stays a valid project layer).
260
- */
261
159
  function isUserOrSystemRepoCheckout(agentsPath) {
262
160
  if (!fs.existsSync(path.join(agentsPath, '.git')))
263
161
  return false;
@@ -266,21 +164,11 @@ function isUserOrSystemRepoCheckout(agentsPath) {
266
164
  return false;
267
165
  return canonicalDotAgentsRepoSlugs().has(origin);
268
166
  }
269
- /**
270
- * True when `agentsPath` is a reserved `.agents` root that must never be
271
- * treated as a project layer: the user repo (~/.agents), the system repo
272
- * (~/.agents/.system), or a git checkout of either canonical DotAgents repo.
273
- * `getProjectAgentsDir` skips these while walking up; direct-cwd callers
274
- * (`compileRulesForProject`) consult the same predicate so `$HOME` — whose
275
- * `.agents/rules` is the user layer itself — can never compile as a
276
- * "project" (RUSH-2725).
277
- */
278
167
  export function isReservedAgentsDir(agentsPath) {
279
168
  return isSamePath(agentsPath, SYSTEM_AGENTS_DIR)
280
169
  || isSamePath(agentsPath, USER_AGENTS_DIR)
281
170
  || isUserOrSystemRepoCheckout(agentsPath);
282
171
  }
283
- /** Walk up from startPath to find a project-scoped .agents/ directory (skipping both roots). */
284
172
  export function getProjectAgentsDir(startPath = process.cwd()) {
285
173
  let dir = path.resolve(startPath);
286
174
  while (true) {
@@ -300,7 +188,6 @@ export function getProjectAgentsDir(startPath = process.cwd()) {
300
188
  }
301
189
  return null;
302
190
  }
303
- /** Return all .agents/ directories in scope: project, user, then system. */
304
191
  export function getScopedAgentsDirs(startPath = process.cwd()) {
305
192
  const dirs = [];
306
193
  const projectDir = getProjectAgentsDir(startPath);
@@ -311,41 +198,20 @@ export function getScopedAgentsDirs(startPath = process.cwd()) {
311
198
  dirs.push({ scope: 'system', path: SYSTEM_AGENTS_DIR });
312
199
  return dirs;
313
200
  }
314
- // ─── System resource getters (legacy aliases for read/sync paths) ─────────────
315
- /** Path to slash command markdown files — system repo. */
316
201
  export function getCommandsDir() { return SYSTEM_COMMANDS_DIR; }
317
- /** Path to hook script directories — system repo. */
318
202
  export function getHooksDir() { return SYSTEM_HOOKS_DIR; }
319
- /** Path to skill bundles — system repo. */
320
203
  export function getSkillsDir() { return SYSTEM_SKILLS_DIR; }
321
- /** Path to the canonical rules directory — system repo. */
322
204
  export function getRulesDir() { return SYSTEM_RULES_DIR; }
323
- /** Read-side resolution for the canonical rules dir — system repo. */
324
205
  export function getResolvedRulesDir() { return SYSTEM_RULES_DIR; }
325
- /** Path to MCP server YAML configs — system repo. */
326
206
  export function getMcpDir() { return SYSTEM_MCP_DIR; }
327
- /** Path to permission group YAML files — system repo. */
328
207
  export function getPermissionsDir() { return process.env.AGENTS_SYSTEM_PERMISSIONS_DIR ?? SYSTEM_PERMISSIONS_DIR; }
329
- /** Path to subagent definition directories — system repo. */
330
208
  export function getSubagentsDir() { return SYSTEM_SUBAGENTS_DIR; }
331
- /** Path to ~/.agents/.system/hooks/promptcuts.yaml (system defaults). */
332
209
  export function getPromptcutsPath() { return SYSTEM_PROMPTCUTS_FILE; }
333
- /**
334
- * Resolve the effective promptcuts file: user file if it exists, otherwise
335
- * the system file. Use this for callers that need a single path (doctor
336
- * diff, displaying which file is in play). Callers that need the merged
337
- * shortcut set should use readMergedPromptcuts() instead.
338
- */
339
210
  export function getEffectivePromptcutsPath() {
340
211
  if (fs.existsSync(USER_PROMPTCUTS_FILE))
341
212
  return USER_PROMPTCUTS_FILE;
342
213
  return SYSTEM_PROMPTCUTS_FILE;
343
214
  }
344
- /**
345
- * Read promptcuts from system + user with user precedence. Returns the
346
- * merged `shortcuts` map. Same layering model as parseHookManifest().
347
- * Returns an empty object when neither file exists or both fail to parse.
348
- */
349
215
  export function readMergedPromptcuts() {
350
216
  const merged = {};
351
217
  for (const filePath of [SYSTEM_PROMPTCUTS_FILE, USER_PROMPTCUTS_FILE]) {
@@ -360,16 +226,12 @@ export function readMergedPromptcuts() {
360
226
  }
361
227
  }
362
228
  catch {
363
- // Skip unreadable file, keep going
364
229
  }
365
230
  }
366
231
  return merged;
367
232
  }
368
- /** Path to the legacy MCP config JSON. */
369
233
  export function getMcpConfigPath() { return SYSTEM_MCP_CONFIG_FILE; }
370
- /** Path to the global instructions file. */
371
234
  export function getInstructionsPath() { return SYSTEM_INSTRUCTIONS_FILE; }
372
- // ─── System-specific getters ───────────────────────────────────────────────────
373
235
  export function getSystemCommandsDir() { return SYSTEM_COMMANDS_DIR; }
374
236
  export function getSystemHooksDir() { return SYSTEM_HOOKS_DIR; }
375
237
  export function getSystemSkillsDir() { return SYSTEM_SKILLS_DIR; }
@@ -378,7 +240,6 @@ export function getSystemMcpDir() { return SYSTEM_MCP_DIR; }
378
240
  export function getSystemPermissionsDir() { return SYSTEM_PERMISSIONS_DIR; }
379
241
  export function getSystemSubagentsDir() { return SYSTEM_SUBAGENTS_DIR; }
380
242
  export function getSystemPromptcutsPath() { return SYSTEM_PROMPTCUTS_FILE; }
381
- // ─── User resource getters ────────────────────────────────────────────────────
382
243
  export function getUserCommandsDir() { return USER_COMMANDS_DIR; }
383
244
  export function getUserHooksDir() { return USER_HOOKS_DIR; }
384
245
  export function getUserSkillsDir() { return USER_SKILLS_DIR; }
@@ -389,29 +250,9 @@ export function getUserSubagentsDir() { return USER_SUBAGENTS_DIR; }
389
250
  export function getSystemWorkflowsDir() { return SYSTEM_WORKFLOWS_DIR; }
390
251
  export function getUserWorkflowsDir() { return USER_WORKFLOWS_DIR; }
391
252
  export function getUserSecretsDir() { return USER_SECRETS_DIR; }
392
- /**
393
- * Path to the secrets usage read-model database (~/.agents/secrets/secrets.db).
394
- * Read at CALL time so a test can redirect it to a temp file via
395
- * AGENTS_SECRETS_DB without racing the module-load capture of USER_SECRETS_DIR —
396
- * mirrors the AGENTS_EVENTS_PATH / AGENTS_DEVICES_DIR escape hatches. Holds only
397
- * value-free usage telemetry (which bundle was created/imported/exported/viewed/
398
- * accessed/unlocked, when, by whom), never a secret value. It used to be a
399
- * derived index fed FROM the in-repo secrets engine's own emitSecretAudit
400
- * chokepoint — not a second write path — the same way sessions.db indexes
401
- * session metadata off the real session flow. That engine (and its audit
402
- * emission) moved out of this repo entirely with the standalone `secrets`
403
- * engine (PHNX-3989), so nothing writes this DB from agents-cli today; the
404
- * read-side queries in `analytics/usage-db.ts` have no current caller.
405
- */
406
253
  export function getSecretsDbPath() {
407
254
  return process.env.AGENTS_SECRETS_DB ?? path.join(USER_SECRETS_DIR, 'secrets.db');
408
255
  }
409
- /**
410
- * Path to the durable resource-usage warehouse (~/.agents/.history/analytics/usage.db).
411
- * Value-free frequency/lifecycle events (secrets, agents, browser, …). Read at CALL
412
- * time so AGENTS_USAGE_DB can redirect tests. Sync shards may also appear as
413
- * usage.<machine-id>.db beside this default file.
414
- */
415
256
  export function getAnalyticsDir() {
416
257
  return process.env.AGENTS_ANALYTICS_DIR ?? ANALYTICS_DIR;
417
258
  }
@@ -419,303 +260,110 @@ export function getUsageDbPath() {
419
260
  return process.env.AGENTS_USAGE_DB ?? path.join(getAnalyticsDir(), 'usage.db');
420
261
  }
421
262
  export function getUserPromptcutsPath() { return USER_PROMPTCUTS_FILE; }
422
- // ─── User operational path getters ────────────────────────────────────────────
423
- //
424
- // Top-level dirs hold definitions/configs only; runtime data lives under
425
- // .history/ (durable) or .cache/ (regenerable). See file header.
426
- /** Canonical home anchor (HOME env override or os.homedir()). */
427
263
  export function getHomeDir() { return HOME; }
428
- /** Bucket root for durable runtime data (~/.agents/.history/). */
429
264
  export function getHistoryDir() { return HISTORY_DIR; }
430
- /** Bucket root for regenerable runtime data (~/.agents/.cache/). */
431
265
  export function getCacheDir() { return CACHE_DIR; }
432
- /** Path to cloned packages (~/.agents/.cache/packages/). */
433
266
  export function getPackagesDir() { return PACKAGES_DIR; }
434
- /** Path to routine YAML definitions (~/.agents/routines/). */
435
267
  export function getRoutinesDir() { return process.env.AGENTS_ROUTINES_DIR ?? ROUTINES_DIR; }
436
- /** Path to named project definitions (~/.agents/projects/). */
437
268
  export function getProjectsDir() { return process.env.AGENTS_PROJECTS_DIR ?? PROJECTS_DIR; }
438
- /** Path to daemon config directory (~/.agents/daemon/). Holds service toggles. */
439
269
  export function getDaemonConfigDir() { return process.env.AGENTS_DAEMON_CONFIG_DIR ?? DAEMON_CONFIG_DIR; }
440
- /**
441
- * Path to webhook handler YAML definitions (~/.agents/webhooks/). Handlers are
442
- * one-off triggers for agents/workflows/commands/routines, layered the same way
443
- * as routines (project > user > system).
444
- */
445
270
  export function getWebhooksDir() { return process.env.AGENTS_WEBHOOKS_DIR ?? WEBHOOKS_DIR; }
446
- /**
447
- * Path to built-in routine definitions shipped in the system repo
448
- * (`~/.agents/.system/routines/`). Unioned under the user routines dir by
449
- * listJobs()/readJob(): a routine shipped here fires for every install, and a
450
- * user routine of the same name overrides it (a user copy with `enabled: false`
451
- * disables the built-in). The daemon fires these; the directory need not exist.
452
- */
453
271
  export function getSystemRoutinesDir() { return process.env.AGENTS_SYSTEM_ROUTINES_DIR ?? SYSTEM_ROUTINES_DIR; }
454
- /**
455
- * Path to built-in webhook handler definitions shipped in the system repo
456
- * (`~/.agents/.system/webhooks/`). Layered under user handlers by `listHandlers()`.
457
- */
458
272
  export function getSystemWebhooksDir() { return process.env.AGENTS_SYSTEM_WEBHOOKS_DIR ?? SYSTEM_WEBHOOKS_DIR; }
459
- /**
460
- * Path to a project-scoped routines directory (`<project>/.agents/routines/`),
461
- * or null when no project `.agents/` is found by walking up from cwd.
462
- *
463
- * Project routines participate in `list`/`view` for inspection always. Daemon
464
- * firing requires `agents routines enable <name>`, which materialises the
465
- * routine into the user layer with `source:` provenance (so the daemon, which
466
- * loads user + system only, can see it) and turns on the device flag in one
467
- * step. Enablement lives solely in `meta.deviceRoutines`; a project YAML's own
468
- * `enabled:` field never turns firing on, so a cloned repo cannot auto-run.
469
- * See `lib/routines-project.ts`.
470
- */
471
273
  export function getProjectRoutinesDir(cwd = process.cwd()) {
472
274
  const projectAgentsDir = getProjectAgentsDir(cwd);
473
275
  if (!projectAgentsDir)
474
276
  return null;
475
277
  return path.join(projectAgentsDir, 'routines');
476
278
  }
477
- /**
478
- * Path to a project-scoped webhook handlers directory
479
- * (`<project>/.agents/webhooks/`), or null when no project `.agents/` is found
480
- * by walking up from cwd.
481
- */
482
279
  export function getProjectWebhooksDir(cwd = process.cwd()) {
483
280
  const projectAgentsDir = getProjectAgentsDir(cwd);
484
281
  if (!projectAgentsDir)
485
282
  return null;
486
283
  return path.join(projectAgentsDir, 'webhooks');
487
284
  }
488
- /** Path to routine execution logs (~/.agents/.history/runs/). */
489
285
  export function getRunsDir() { return RUNS_DIR; }
490
- /** Path to monitor YAML definitions (~/.agents/monitors/). */
491
286
  export function getMonitorsDir() { return process.env.AGENTS_MONITORS_DIR ?? MONITORS_DIR; }
492
- /**
493
- * Path to built-in monitor definitions shipped in the system repo
494
- * (`~/.agents/.system/monitors/`). Unioned under the user monitors dir by
495
- * listMonitors()/readMonitor(): a monitor shipped here is available on every
496
- * install, and a user monitor of the same name overrides it. A built-in is
497
- * enabled by default like every other system-layer resource — it runs on every
498
- * install unless the user shadows it with `enabled: false` (via `agents monitors
499
- * pause`, which materializes a user copy; writes never touch this pull-only
500
- * mirror). A shared-input built-in still carries its own `device:` owner pin in
501
- * the shipped YAML so exactly one box fires it (SING-9). The directory need not
502
- * exist.
503
- */
504
287
  export function getSystemMonitorsDir() { return process.env.AGENTS_SYSTEM_MONITORS_DIR ?? SYSTEM_MONITORS_DIR; }
505
- /** Path to the durable per-monitor state-diff store + fire history
506
- * (~/.agents/.history/monitors/). */
507
288
  export function getMonitorsHistoryDir() { return MONITORS_HISTORY_DIR; }
508
- /** Root for per-agent mailboxes (~/.agents/.history/mailbox/). */
509
289
  export function getMailboxRootDir() { return MAILBOX_DIR; }
510
- /** Root for open-block feed records (~/.agents/.history/feed/). */
511
290
  export function getFeedDir() { return FEED_DIR; }
512
- /** Append-only per-session agent-activity event logs (~/.agents/.history/activity/). */
513
291
  export function getActivityDir() { return ACTIVITY_DIR; }
514
- /** Path to installed agent CLI binaries (~/.agents/.history/versions/). */
515
292
  export function getVersionsDir() { return VERSIONS_DIR; }
516
- /** Path to version-switching shim scripts (~/.agents/.cache/shims/). */
517
293
  export function getShimsDir() { return SHIMS_DIR; }
518
- /**
519
- * Path to generated per-hook caching/timing shims (~/.agents/.cache/shims/hooks/).
520
- * Read at CALL time — since every hook now resolves through a shim (RUSH-2xxx,
521
- * pass-through timing for matcher-only hooks), a test that registers hooks
522
- * in-process (no subprocess HOME override) would otherwise write real shim
523
- * files into the user's actual ~/.agents/.cache. AGENTS_HOOK_SHIMS_DIR mirrors
524
- * the AGENTS_EVENTS_PATH / AGENTS_DEVICES_DIR test-isolation escape hatches;
525
- * never set in production code.
526
- */
527
294
  export function getHookShimsDir() {
528
295
  return process.env.AGENTS_HOOK_SHIMS_DIR ?? HOOK_SHIMS_DIR;
529
296
  }
530
- /**
531
- * Path to per-hook stdout cache files (~/.agents/.cache/state/hooks/). Read at
532
- * CALL time for the same reason as {@link getHookShimsDir} — see its doc.
533
- */
534
297
  export function getHookCacheDir() {
535
298
  return process.env.AGENTS_HOOK_CACHE_DIR ?? HOOK_CACHE_DIR;
536
299
  }
537
- /** Path to per-agent installed CLI binaries (~/.agents/.cache/bin/). */
538
300
  export function getBinDir() { return BIN_DIR; }
539
- /** Path to config backups (~/.agents/.history/backups/). */
540
301
  export function getBackupsDir() { return BACKUPS_DIR; }
541
- /** Path to plugin bundles (~/.agents/plugins/) — user-authored resource. */
542
302
  export function getPluginsDir() { return PLUGINS_DIR; }
543
- /** Path to system plugin bundles (~/.agents/.system/plugins/) — npm-shipped, read-only defaults. */
544
303
  export function getSystemPluginsDir() { return SYSTEM_PLUGINS_DIR; }
545
- /** Path to an extra repo's plugin bundles (~/.agents-<alias>/plugins/). */
546
304
  export function getExtraPluginsDir(alias) {
547
305
  return path.join(getExtraRepoDir(alias), 'plugins');
548
306
  }
549
- /** Path to a project-scoped plugins directory (<project>/.agents/plugins/), or null when none. */
550
307
  export function getProjectPluginsDir(cwd = process.cwd()) {
551
308
  const projectAgentsDir = getProjectAgentsDir(cwd);
552
309
  if (!projectAgentsDir)
553
310
  return null;
554
311
  return path.join(projectAgentsDir, 'plugins');
555
312
  }
556
- /** Path to soft-deleted resources (~/.agents/.history/trash/). */
557
313
  export function getTrashDir() { return TRASH_DIR; }
558
- /** Path to local session indexer storage (~/.agents/.history/sessions/). */
559
314
  export function getSessionsDir() { return SESSIONS_DIR; }
560
- /** Path to the session index database (~/.agents/.history/sessions/sessions.db). */
561
315
  export function getSessionsDbPath() {
562
316
  return process.env.AGENTS_SESSIONS_DB ?? SESSIONS_DB_PATH;
563
317
  }
564
- /** Path to teams config + registry (~/.agents/teams/). */
565
318
  export function getTeamsDir() { return TEAMS_DIR; }
566
- /** Path to teams execution history (~/.agents/.history/teams/agents/). */
567
319
  export function getTeamsAgentsDir() { return TEAMS_AGENTS_DIR; }
568
- /** Path to the team registry — list of named teams with timestamps. Durable runtime, per-machine. */
569
320
  export function getTeamsRegistryPath() { return path.join(HISTORY_DIR, 'teams', 'registry.json'); }
570
- /**
571
- * The devices dir (the registry lives here; the ignore-list moved to the
572
- * tracked central agents.yaml as `fleet.ignored` — RUSH-3062). Read at CALL
573
- * time so a
574
- * test can redirect it to a temp dir via AGENTS_DEVICES_DIR without racing the
575
- * module-load capture of HISTORY_DIR — mirrors the AGENTS_EVENTS_PATH /
576
- * AGENTS_SECRETS_AGENT_DIR test-isolation escape hatches. Never set in
577
- * production code; it exists so the vitest fork's device-registry writes can
578
- * never reach the user's real ~/.agents/.history/devices (RUSH-2042).
579
- */
580
321
  function getDevicesDir() {
581
322
  return process.env.AGENTS_DEVICES_DIR ?? path.join(HISTORY_DIR, 'devices');
582
323
  }
583
- /** Path to the device registry — SSH device profiles with platform/auth metadata. Durable runtime, per-machine (host list + addresses are NOT pulled by `agents repo push`). */
584
324
  export function getDevicesRegistryPath() { return path.join(getDevicesDir(), 'registry.json'); }
585
- /** Path to the LEGACY per-machine device ignore-list — superseded by the tracked `fleet.ignored` list in central agents.yaml (RUSH-3062); only lib/devices/config-migration.ts still reads it (to fold + remove it). */
586
325
  export function getDevicesIgnoredPath() { return path.join(getDevicesDir(), 'ignored.json'); }
587
- /** Path to the LEGACY device auto-launch preference file — which registered devices are eligible/preferred for the ext's auto-host selection. Superseded by the per-device doc `config:` block; only lib/devices/config-migration.ts still reads it (to fold + remove it). */
588
326
  export function getDevicesAutoLaunchPath() { return path.join(getDevicesDir(), 'auto-launch.json'); }
589
- /** Path to THIS machine's agent pins — the `agents:` global defaults and
590
- * `isolatedAgents:` pointers. Each pin names a version installed on THIS
591
- * machine, so it is machine-local runtime state and lives beside the device
592
- * registry under `.history/devices/` (untracked) — NOT in the tracked
593
- * per-device doc, where auto-written pins caused commit churn on every
594
- * `agents use` / install. Read at call time like the other devices-dir paths. */
595
327
  export function getDevicePinsPath() { return path.join(getDevicesDir(), `pins-${machineId()}.json`); }
596
- /** Dir of "pending device" sentinels (~/.agents/.cache/state/devices-pending/) — one empty-ish file per newly-discovered, not-yet-approved tailnet node. Written by the daemon probe, read by the menu-bar helper (mirrors the attention sentinel dir). */
597
328
  export function getDevicesPendingDir() { return path.join(getRuntimeStateDir(), 'devices-pending'); }
598
- /** Path to cloud dispatch cache (~/.agents/.cache/cloud/). */
599
329
  export function getCloudDir() { return CLOUD_DIR; }
600
- /** Path to terminal session metadata (~/.agents/.cache/terminals/). */
601
330
  export function getTerminalsDir() { return TERMINALS_DIR; }
602
- /**
603
- * Path to runtime logs (~/.agents/.cache/logs/). Read at CALL time so
604
- * AGENTS_LOGS_DIR can redirect it in tests — same test-isolation escape hatch
605
- * as {@link getHookShimsDir}; never set in production code.
606
- */
607
331
  export function getLogsDir() {
608
332
  return process.env.AGENTS_LOGS_DIR ?? LOGS_DIR;
609
333
  }
610
- /**
611
- * Path to disposable performance samples (~/.agents/.cache/perf/).
612
- * Holds `perf.db` + a hook-shim spool. Loss is acceptable — wipe freely.
613
- * Read at CALL time: AGENTS_PERF_DIR (the same override perf/db.ts and
614
- * perf/spool.ts already honor for their own internal resolution) redirects
615
- * this canonical getter too, so a caller that goes through it directly
616
- * (hooks/cache.ts's shim generator, the OpenCode timeout sample writer in
617
- * hooks.ts) doesn't leak samples into the user's real perf warehouse either.
618
- */
619
334
  export function getPerfDir() {
620
335
  return process.env.AGENTS_PERF_DIR ?? PERF_DIR;
621
336
  }
622
- /** Path to the perf SQLite warehouse (~/.agents/.cache/perf/perf.db). */
623
337
  export function getPerfDbPath() { return path.join(getPerfDir(), 'perf.db'); }
624
- /** Path to the hook-shim NDJSON spool drained into perf.db on open. */
625
338
  export function getPerfSpoolPath() { return path.join(getPerfDir(), 'spool.jsonl'); }
626
- /**
627
- * Path to per-process runtime state (~/.agents/.cache/state/).
628
- *
629
- * `AGENTS_STATE_DIR` redirects it in tests — the same test-isolation escape
630
- * hatch as `AGENTS_DEVICES_DIR` / `AGENTS_LOGS_DIR`, and resolved at call time
631
- * for the same reason (a suite pins it after this module is imported).
632
- *
633
- * Without it the suite writes into the operator's LIVE state. Concretely: the
634
- * device registry and ignore-list already redirect via `AGENTS_DEVICES_DIR`, so
635
- * under test both read empty — and any code path reaching
636
- * `reconcilePendingSentinels` then computed "every tailnet node is new" and
637
- * wrote those sentinels into the real `devices-pending/`, which is exactly what
638
- * the menu bar renders. Running the suite on a dev machine surfaced all 20
639
- * tailnet nodes as NEW DEVICES, including registered and explicitly ignored
640
- * ones, and looked like the operator's ignore list had been lost.
641
- */
642
339
  export function getRuntimeStateDir() { return process.env.AGENTS_STATE_DIR ?? RUNTIME_STATE_DIR; }
643
- /** Path to companion-extension scratch (~/.agents/.cache/companion/). */
644
340
  export function getCompanionDir() { return COMPANION_CACHE_DIR; }
645
- /** Path to browser runtime data — chrome-data, pids (~/.agents/.cache/browser/). */
646
341
  export function getBrowserRuntimeDir() { return BROWSER_RUNTIME_DIR; }
647
- /**
648
- * Path to DURABLE browser-profile data (~/.agents/.history/browser-profiles/).
649
- *
650
- * This is the persistent home for an attach-only profile's `--user-data-dir` —
651
- * where a one-time browser sign-in lives. It sits under `.history` (durable),
652
- * NOT `.cache` (regenerable), for two reasons the ticket (PHNX-3967) named:
653
- * - `agents browser profiles remove` sweeps `~/.agents/.cache/browser/<name>*`;
654
- * a durable dir here survives that so logins are not wiped by a routine cleanup.
655
- * - A cache wipe or the daemon reaper never touches it, so a signed-in Comet
656
- * survives quit+relaunch.
657
- * The user's canonical Comet is launched with this as `--user-data-dir`, and the
658
- * ownership guard in the local driver compares the running instance's
659
- * `--user-data-dir` against it to reject a foreign port-squatter.
660
- */
661
342
  export function getBrowserDurableDir() { return path.join(HISTORY_DIR, 'browser-profiles'); }
662
- /** Path to helper subprocess scratch (~/.agents/.cache/helpers/). */
663
343
  export function getHelpersDir() { return HELPERS_DIR; }
664
- /**
665
- * Path to scheduler daemon scratch (~/.agents/.cache/helpers/daemon/) — holds
666
- * the daemon pid file, heartbeat, start lock, and log. AGENTS_DAEMON_DIR
667
- * redirects it to a fork-private temp so daemon tests (which write pid/heartbeat
668
- * files and acquire the real start lock) can never clobber a live daemon's state
669
- * on a dev machine — the surgical mirror of AGENTS_DEVICES_DIR /
670
- * AGENTS_HOOK_SHIMS_DIR, leaving HOME untouched. Read at CALL time (daemon.ts
671
- * resolves every path helper through this), so tests/setup.ts can set it before
672
- * the daemon module is exercised. Never set in production code.
673
- */
674
344
  export function getDaemonDir() { return process.env.AGENTS_DAEMON_DIR ?? DAEMON_DIR; }
675
- /** Path to tmux scratch (~/.agents/.cache/helpers/tmux/) — shared server socket + per-session meta JSONs. */
676
345
  export function getTmuxDir() { return TMUX_DIR; }
677
- /** Path to remote-resource auto-pull cache (~/.agents/.cache/.fetch/). */
678
346
  export function getFetchCacheDir() { return FETCH_CACHE_DIR; }
679
- /** Path to the CLI version cache file (~/.agents/.cache/.cli-version-cache.json). */
680
347
  export function getCliVersionCachePath() { return CLI_VERSION_CACHE_FILE; }
681
- /** Path to the models cache file (~/.agents/.cache/.models-cache.json). */
682
348
  export function getModelsCachePath() { return MODELS_CACHE_FILE; }
683
- /** Path to the daily update-check sentinel (~/.agents/.cache/.update-check). */
684
349
  export function getUpdateCheckPath() { return UPDATE_CHECK_FILE; }
685
- /** Path to the migration sentinel (~/.agents/.cache/.migrated). */
686
350
  export function getMigratedSentinelPath() { return MIGRATED_SENTINEL_FILE; }
687
- /** Path to soft-deleted version dirs (~/.agents/trash/versions/). */
688
351
  export function getTrashVersionsDir() { return path.join(TRASH_DIR, 'versions'); }
689
- /** Path to soft-deleted skills (~/.agents/trash/skills/). */
690
352
  export function getTrashSkillsDir() { return path.join(TRASH_DIR, 'skills'); }
691
- /** Path to soft-deleted commands (~/.agents/trash/commands/). */
692
353
  export function getTrashCommandsDir() { return path.join(TRASH_DIR, 'commands'); }
693
- /** Path to soft-deleted hooks (~/.agents/trash/hooks/). */
694
354
  export function getTrashHooksDir() { return path.join(TRASH_DIR, 'hooks'); }
695
- /** Path to soft-deleted plugins (~/.agents/trash/plugins/). */
696
355
  export function getTrashPluginsDir() { return path.join(TRASH_DIR, 'plugins'); }
697
- /** Path to soft-deleted subagents (~/.agents/trash/subagents/). */
698
356
  export function getTrashSubagentsDir() { return path.join(TRASH_DIR, 'subagents'); }
699
357
  export function getTrashWorkflowsDir() { return path.join(TRASH_DIR, 'workflows'); }
700
- /**
701
- * Path to a single user-level extra DotAgent repo clone (~/.agents-<alias>/).
702
- *
703
- * Extra repos are user-defined config — they live as peer dirs to ~/.agents/,
704
- * not under the system repo. `agents repo add` clones here by default.
705
- */
706
358
  export function getExtraRepoDir(alias) {
707
359
  return path.join(HOME, `.agents-${alias}`);
708
360
  }
709
- /** Resolve the on-disk path for an extra repo, whether managed or user-owned. */
710
361
  export function resolveExtraRepoDir(alias, config) {
711
362
  if (config?.path) {
712
363
  return path.resolve(config.path);
713
364
  }
714
365
  return getExtraRepoDir(alias);
715
366
  }
716
- /**
717
- * Return enabled extra repos that exist on disk, in insertion order.
718
- */
719
367
  export function getEnabledExtraRepos() {
720
368
  const meta = readMeta();
721
369
  const extras = meta.extraRepos || {};
@@ -730,11 +378,8 @@ export function getEnabledExtraRepos() {
730
378
  }
731
379
  return out;
732
380
  }
733
- // ─── Directory setup ───────────────────────────────────────────────────────────
734
- /** Create both the system and user directory trees if any subdirectories are missing. */
735
381
  export function ensureAgentsDir() {
736
382
  const opts = { recursive: true, mode: 0o700 };
737
- // User repo — minimal scaffold (sub-dirs created on first write)
738
383
  if (!fs.existsSync(USER_AGENTS_DIR)) {
739
384
  fs.mkdirSync(USER_AGENTS_DIR, opts);
740
385
  }
@@ -742,7 +387,6 @@ export function ensureAgentsDir() {
742
387
  fs.chmodSync(USER_AGENTS_DIR, 0o700);
743
388
  }
744
389
  catch { }
745
- // System repo plus user-level operational state
746
390
  if (!fs.existsSync(SYSTEM_AGENTS_DIR)) {
747
391
  fs.mkdirSync(SYSTEM_AGENTS_DIR, opts);
748
392
  }
@@ -777,14 +421,11 @@ export function ensureAgentsDir() {
777
421
  }
778
422
  catch { }
779
423
  }
780
- // ─── Meta (agents.yaml) ────────────────────────────────────────────────────────
781
- /** Return an empty Meta object used when no agents.yaml exists yet. */
782
424
  export function createDefaultMeta() {
783
425
  return {};
784
426
  }
785
427
  let metaCache = null;
786
428
  let metaLockDepth = 0;
787
- /** Return mtimeMs for a file path, or 0 if the file is absent or unreadable. */
788
429
  function safeMtimeMs(filePath) {
789
430
  try {
790
431
  return fs.statSync(filePath).mtimeMs;
@@ -793,28 +434,12 @@ function safeMtimeMs(filePath) {
793
434
  return 0;
794
435
  }
795
436
  }
796
- /**
797
- * Per-device machine-local version pins — `~/.agents/devices/<machine>/agents.yaml`.
798
- * Committed and synced, but each machine only ever writes its OWN folder, so
799
- * pulls never conflict. `<machine>` = machineId() (Tailscale-aligned short name).
800
- */
801
437
  export function getDeviceMetaPath() {
802
438
  return path.join(USER_AGENTS_DIR, 'devices', machineId(), 'agents.yaml');
803
439
  }
804
- /**
805
- * Machine-local per-version resource tracking — `~/.agents/.history/version-resources.json`.
806
- * Gitignored (under .history/) and regenerable; never synced.
807
- */
808
440
  export function getVersionResourcesPath() {
809
441
  return path.join(HISTORY_DIR, 'version-resources.json');
810
442
  }
811
- /**
812
- * Combined cache stamp across all four Meta sources: central + system
813
- * agents.yaml, this machine's device pins, and the version-resources tracking.
814
- * A delimited string, NOT a numeric sum — summing down-scaled epoch-ms values
815
- * loses precision (float64 rounds sub-unit terms away at ~1.75e12), so a change
816
- * in any one file must contribute at full resolution.
817
- */
818
443
  function currentMetaStamp() {
819
444
  return safeMtimeMs(META_FILE)
820
445
  + '|' + safeMtimeMs(SYSTEM_META_FILE)
@@ -822,7 +447,6 @@ function currentMetaStamp() {
822
447
  + '|' + safeMtimeMs(getDevicePinsPath())
823
448
  + '|' + safeMtimeMs(getVersionResourcesPath());
824
449
  }
825
- /** Memoize a parsed Meta against the current file mtimes. */
826
450
  function rememberMeta(meta) {
827
451
  metaCache = { stamp: currentMetaStamp(), meta };
828
452
  return meta;
@@ -849,101 +473,40 @@ export function withMetaLock(fn) {
849
473
  }
850
474
  });
851
475
  }
852
- /** Atomic write only when the on-disk content differs — avoids needless mtime
853
- * bumps (which would thrash the meta cache) on no-op field routing. Returns
854
- * whether it actually wrote, so a caller can react only to a real change (e.g.
855
- * commit the central agents.yaml exactly when its bytes moved). */
856
476
  function writeIfChanged(filePath, content) {
857
477
  let current = null;
858
478
  try {
859
479
  current = fs.readFileSync(filePath, 'utf-8');
860
480
  }
861
- catch { /* absent */ }
481
+ catch { }
862
482
  if (current === content)
863
483
  return false;
864
484
  atomicWriteFileSync(filePath, content);
865
485
  return true;
866
486
  }
867
- /**
868
- * Commit the central `agents.yaml` in the user repo, synchronously, so a CLI
869
- * config mutation never leaves the working tree dirty on that one shared-line
870
- * file at rest.
871
- *
872
- * Why this exists: CLI config commands rewrite the fleet-shared central
873
- * agents.yaml as a plain file write. Left uncommitted, the tree is dirty on
874
- * agents.yaml between the write and the daemon's next 15-min publish tick — and
875
- * a peer's incoming publish commit (which also touches agents.yaml) then trips
876
- * `dirtyTreeRefusal` ("incoming changes touch uncommitted paths: agents.yaml"),
877
- * wedging `agents repo pull` fleet-wide (PHNX-3968). Committing the central edit
878
- * in the same command that made it closes that window: agents.yaml is clean at
879
- * rest, so nothing incoming can collide with it. Called AFTER the meta lock
880
- * releases (see {@link commitCentralConfigAfterWrite}) so the git subprocesses
881
- * never run inside the short, non-heartbeated lockfile window; the user repo
882
- * already pushes.
883
- *
884
- * Scoped tightly: only called when the central bytes actually changed — from a
885
- * CLI command and from the daemon alike, since no daemon tick commits the user
886
- * repo any more (the shared-state exchange moved to SSH, PHNX-4116), so a
887
- * daemon-side central write would otherwise sit dirty until the next CLI
888
- * central edit. A commit failure fails open —
889
- * a concurrent daemon holding `index.lock`, a mid-rebase repo — leaving
890
- * agents.yaml dirty; the next successful central write commits it, and until
891
- * then a pull that would collide refuses rather than losing data. A config
892
- * command must never fail because git hiccuped.
893
- *
894
- * Returns whether a commit was created. Exported for the real-repo tests.
895
- */
896
487
  export function commitCentralConfig(userDir) {
897
488
  const rel = 'agents.yaml';
898
489
  try {
899
490
  execFileSync('git', ['-C', userDir, 'rev-parse', '--is-inside-work-tree'], { stdio: 'ignore' });
900
491
  }
901
492
  catch {
902
- return false; // plain ~/.agents with no git repo — leave it a loose write.
493
+ return false;
903
494
  }
904
495
  try {
905
496
  execFileSync('git', ['-C', userDir, 'add', '--', rel], { stdio: 'ignore' });
906
- // Nothing staged for agents.yaml (its bytes matched HEAD after all) → no
907
- // empty commit. `diff --cached --quiet` exits 0 when the index equals HEAD
908
- // for this path, 1 when it differs.
909
497
  try {
910
498
  execFileSync('git', ['-C', userDir, 'diff', '--cached', '--quiet', '--', rel], { stdio: 'ignore' });
911
499
  return false;
912
500
  }
913
- catch { /* exit 1 → staged changes present, commit them */ }
914
- // Pathspec-scoped commit: records ONLY agents.yaml even if other paths are
915
- // staged, so a config write never sweeps unrelated staged work into its commit.
501
+ catch { }
916
502
  execFileSync('git', ['-C', userDir, '-c', 'commit.gpgsign=false', 'commit', '--no-verify',
917
503
  '-m', 'chore(config): update agents.yaml', '--', rel], { stdio: 'ignore' });
918
504
  return true;
919
505
  }
920
506
  catch {
921
- return false; // fail open — see the doc comment.
507
+ return false;
922
508
  }
923
509
  }
924
- /**
925
- * Partition the in-memory Meta across four files by sync-domain:
926
- * - central `~/.agents/agents.yaml` — portable, everything else
927
- * (including the user-scope `config:` block and the fleet-wide
928
- * config defaults under `fleet.defaults.config`)
929
- * - device `~/.agents/devices/<machine>/agents.yaml` — TRACKED operator doc:
930
- * `routines:` + `config:` (per-device operator settings) + machine-local
931
- * `browser:` / `projectRoot` (never synced)
932
- * - pins `~/.agents/.history/devices/pins-<host>.json` — `agents:` +
933
- * `isolatedAgents:` (machine-local runtime, untracked)
934
- * - history `~/.agents/.history/version-resources.json` — `versions:` (machine-local)
935
- * All callers funnel through writeMeta → here, so nothing else changes. Empty
936
- * `agents:` / `versions:` are not written (no empty committed files).
937
- */
938
- /**
939
- * Fleet-shared (`central`) Meta keys — the OPT-IN allowlist. A key listed here is
940
- * written to the synced `~/.agents/agents.yaml`. Device-scope is the DEFAULT:
941
- * {@link metaKeyScope} returns `'device'` for every Meta key NOT listed here, so a
942
- * newly-added key can never SILENTLY churn the shared file the way a
943
- * central-by-default would — the very trap behind the recurring agents.yaml churn.
944
- * Making a key fleet-shared is now a deliberate edit HERE, not the path of least
945
- * resistance (PHNX-3315).
946
- */
947
510
  const CENTRAL_META_KEYS = [
948
511
  'accounts',
949
512
  'run',
@@ -968,16 +531,6 @@ const CENTRAL_META_KEYS = [
968
531
  'share',
969
532
  'notify',
970
533
  ];
971
- /**
972
- * Device-scoped Meta keys with BESPOKE routing — each lands in a special file
973
- * (pins JSON / version-resources JSON) or a REMAPPED device-doc sub-block
974
- * (`deviceHosts`->`hosts:`, `deviceFleet`->`fleet:`, ...), so their handling is
975
- * hand-written in {@link writeMetaUnlocked} / {@link overlayMachineLocal} and kept
976
- * behavior-identical. A device-scoped key NOT listed here is a GENERIC device key:
977
- * it round-trips through `devices/<host>/agents.yaml` under its OWN name with no
978
- * bespoke wiring (see the generic loops in those two functions). The `browser`
979
- * tombstone is bespoke too — drained by lib/browser/registry.ts.
980
- */
981
534
  const BESPOKE_DEVICE_KEYS = [
982
535
  'agents',
983
536
  'isolatedAgents',
@@ -993,28 +546,14 @@ const BESPOKE_DEVICE_KEYS = [
993
546
  const CENTRAL_KEY_SET = new Set(CENTRAL_META_KEYS);
994
547
  const _metaKeysAreExhaustive = true;
995
548
  void _metaKeysAreExhaustive;
996
- /**
997
- * Sync-domain of a Meta key. `'central'` ONLY for the opt-in allowlist; `'device'`
998
- * by DEFAULT for everything else — so the classification is authoritative (it
999
- * DRIVES the generic device-doc router below) rather than a decorative string map,
1000
- * and forgetting to classify a new key routes it to the SAFE per-box file.
1001
- */
1002
549
  function metaKeyScope(key) {
550
+ // Central sync is an explicit allowlist; every other key remains machine-local.
1003
551
  return CENTRAL_KEY_SET.has(key) ? 'central' : 'device';
1004
552
  }
1005
- /** Bespoke device keys as a runtime Set (the generic router skips these). */
1006
553
  const BESPOKE_DEVICE_KEY_SET = new Set([
1007
554
  ...BESPOKE_DEVICE_KEYS,
1008
- // The `browser` tombstone is device-scoped but bespoke: lib/browser/registry.ts
1009
- // drains it (collision-checked) into deviceBrowser, so the generic router must
1010
- // never blindly relocate it.
1011
555
  'browser',
1012
556
  ]);
1013
- /**
1014
- * Device-doc sub-block names the read/write paths handle BESPOKE-ly (each maps to
1015
- * a different `device*` Meta key, or lives in a separate file). The generic
1016
- * device-doc overlay skips these so it only surfaces genuine generic keys.
1017
- */
1018
557
  const BESPOKE_DEVICE_DOC_KEYS = new Set([
1019
558
  'agents',
1020
559
  'isolatedAgents',
@@ -1025,61 +564,18 @@ const BESPOKE_DEVICE_DOC_KEYS = new Set([
1025
564
  'hosts',
1026
565
  'accounts',
1027
566
  'projectRoot',
1028
- // Legacy top-level doc key the config migration folds into `config:`; never
1029
- // surfaced onto Meta before, so keep the generic overlay from doing so.
1030
567
  'defaultBrowserProfile',
1031
568
  ]);
1032
- /**
1033
- * Every key this version models (central + device). serializeCentral deletes an
1034
- * on-disk key only when it is KNOWN and absent from the write's in-memory object:
1035
- * a central key the caller cleared, OR a device key that is legacy cruft in the
1036
- * synced file (device keys are routed to the per-machine file, so one lingering
1037
- * in central is stale and must be migrated out). A key NOT listed here — e.g. one
1038
- * a newer CLI version added — is preserved verbatim, never dropped + synced away.
1039
- */
1040
569
  const KNOWN_META_KEYS = new Set([
1041
570
  ...CENTRAL_META_KEYS,
1042
571
  ...BESPOKE_DEVICE_KEYS,
1043
- // Removed browser-profile store. Kept only as a serializer tombstone so the
1044
- // first registry read can migrate it into this device's file and delete it.
1045
572
  'browser',
1046
573
  ]);
1047
- /**
1048
- * Rewrite a frozen `agents.yaml` header to the current {@link META_HEADER}.
1049
- *
1050
- * `serializeCentral` parses the existing file to preserve its hand-written body
1051
- * comments, but that also preserves the leading metadata header verbatim, so a
1052
- * top-level file written before the agi-cli rename (or before the `$schema` line
1053
- * existed) keeps its stale header forever — every freshly-written device doc gets
1054
- * the current header while the shared file is left behind (PHNX-3315).
1055
- *
1056
- * The header is healed TEXTUALLY, on the already-serialized string, rather than
1057
- * via `doc.commentBefore`: the `yaml` library folds the whole leading comment
1058
- * block onto the FIRST key's `commentBefore` when that key already carries a
1059
- * hand-written comment, so the header is not reliably the document comment — but
1060
- * it is always the top block of the output. Strip a leading `agents-cli metadata`
1061
- * header (any pre-rename variant, with or without the `$schema` line — the URL
1062
- * and schema lines are matched specifically so a hand-written body comment is
1063
- * never mistaken for a header line) and prepend the canonical header. A file with
1064
- * no recognizable header simply gains one. Body comments, which sit below the
1065
- * blank line that terminates the header, are untouched.
1066
- */
1067
574
  function healMetaHeader(serialized) {
1068
575
  const headerBlock = /^# agents-cli metadata\n# Auto-generated - do not edit manually\n(?:# (?:https:\/\/github\.com\/phnx-labs\/[^\n]*|yaml-language-server: \$schema=[^\n]*)\n)*\n?/;
1069
576
  const stripped = serialized.replace(headerBlock, '');
1070
- // No metadata header present (replace was a no-op) → leave the file exactly as
1071
- // it is. We heal a STALE header; we never prepend one to a file that never had
1072
- // it (that would rewrite a hand-authored, headerless central file on the first
1073
- // real central change). A current header round-trips to the identical bytes.
1074
577
  return stripped === serialized ? serialized : META_HEADER + stripped;
1075
578
  }
1076
- /**
1077
- * True when the top-level `~/.agents/agents.yaml` carries a metadata header that
1078
- * is NOT the canonical {@link META_HEADER} — the P1 frozen-header case a box only
1079
- * heals on its next central write (serializeCentral). An absent or headerless
1080
- * file is NOT stale (a headerless central file is deliberately left alone).
1081
- * Surfaced as config drift by `agents sync status` (PHNX-3315).
1082
- */
1083
579
  export function hasStaleMetaHeader() {
1084
580
  let content;
1085
581
  try {
@@ -1090,13 +586,6 @@ export function hasStaleMetaHeader() {
1090
586
  }
1091
587
  return healMetaHeader(content) !== content;
1092
588
  }
1093
- /**
1094
- * Parse the top-level user `agents.yaml` (this box's synced central file) WITHOUT
1095
- * the system-repo merge, machine-local overlay, or cache — the raw on-disk central
1096
- * map, or null when the file is absent/unparseable. Used by config-drift detection
1097
- * to see the central blocks that should have folded into the device doc, without
1098
- * mis-attributing a system-repo default as this box's own leak (PHNX-3315).
1099
- */
1100
589
  export function readTopLevelUserMeta() {
1101
590
  let content;
1102
591
  try {
@@ -1111,46 +600,22 @@ export function readTopLevelUserMeta() {
1111
600
  return parsed;
1112
601
  }
1113
602
  }
1114
- catch { /* malformed — nothing to report */ }
603
+ catch { }
1115
604
  return null;
1116
605
  }
1117
- /**
1118
- * Top-level keys currently on disk in the central `agents.yaml` ({} when the file
1119
- * is absent or unparseable). The generic device-doc router uses this to leave a
1120
- * FOREIGN key — one this version does not model, already written to central by a
1121
- * newer CLI — in place instead of relocating it to this box's device doc.
1122
- */
1123
606
  function readCentralKeys() {
1124
607
  return new Set(Object.keys(readTopLevelUserMeta() ?? {}));
1125
608
  }
1126
- /**
1127
- * Serialize the central (synced) meta to `agents.yaml` WITHOUT destroying the
1128
- * hand-written comments in the committed file.
1129
- *
1130
- * `yaml.stringify(central)` drops every comment, so the freshly-written bytes
1131
- * never equal the comment-annotated file on disk — `writeIfChanged`'s byte
1132
- * compare then rewrites on EVERY meta write, leaving `agents.yaml` perpetually
1133
- * dirty and wedging `agents sync` ("Blocked by local changes"). Instead we parse
1134
- * the existing file into a `yaml.Document` (which preserves comments + ordering)
1135
- * and edit only the keys that actually changed — untouched keys, and all their
1136
- * comments, are left byte-stable. If nothing central changed we return the exact
1137
- * existing bytes, so a device-field-only write no longer touches `agents.yaml` at
1138
- * all. Falls back to plain stringify only when the file doesn't exist yet.
1139
- */
1140
609
  function serializeCentral(central) {
610
+ // Preserve unknown central keys so an older binary cannot sync away newer data.
1141
611
  const isEmpty = Object.keys(central).length === 0;
1142
612
  let existing = null;
1143
613
  try {
1144
614
  existing = fs.readFileSync(META_FILE, 'utf-8');
1145
615
  }
1146
616
  catch {
1147
- /* first write — no file yet */
1148
617
  }
1149
618
  if (existing == null) {
1150
- // Empty central → header only. `yaml.stringify({})` emits `{}` (a FLOW empty
1151
- // map); once that lands on disk, a later parseDocument sees a flow root and
1152
- // doc.set() below would inherit flow, flow-ifying the whole file. Writing just
1153
- // the header avoids seeding that poison.
1154
619
  return isEmpty ? META_HEADER : META_HEADER + yaml.stringify(central);
1155
620
  }
1156
621
  const doc = yaml.parseDocument(existing);
@@ -1163,58 +628,19 @@ function serializeCentral(central) {
1163
628
  }
1164
629
  }
1165
630
  for (const k of Object.keys(current)) {
1166
- // Only delete a key THIS version knows about. A key not in KNOWN_META_KEYS
1167
- // (e.g. one a newer CLI version added) is preserved verbatim — deleting it
1168
- // here would drop it and sync the deletion fleet-wide (the agents.yaml
1169
- // config data-loss bug). A known device key lingering in the synced file is
1170
- // still removed — it belongs in the per-machine file, not here.
1171
631
  if (!(k in central) && KNOWN_META_KEYS.has(k)) {
1172
- // RUSH-2837: a partial writeMeta (reconstructed Meta missing `share`)
1173
- // deleted the share endpoint from agents.yaml and synced that deletion
1174
- // fleet-wide. `share` is restored only by setup/join — never drop it
1175
- // just because this write omitted the key. Explicit `share: null` still
1176
- // goes through doc.set above.
1177
632
  if (k === 'share')
1178
633
  continue;
1179
634
  doc.delete(k);
1180
635
  changed = true;
1181
636
  }
1182
637
  }
1183
- // No central field changed → keep the file byte-identical (comments intact), so
1184
- // writeIfChanged skips it and the churn loop never starts. A device-only write
1185
- // (pins/routines/etc. routed elsewhere) reaches here with changed=false and
1186
- // MUST NOT rewrite the shared file — header healing waits for a genuine central
1187
- // change below rather than dirtying agents.yaml on an unrelated write, which is
1188
- // the very churn that wedges `agents sync` and blocks fleet pulls.
1189
638
  if (!changed)
1190
639
  return existing;
1191
- // Everything cleared → header only (never leave a flow `{}` behind). Byte-stable
1192
- // when the file is already exactly the current header.
1193
640
  if (isEmpty)
1194
641
  return existing === META_HEADER ? existing : META_HEADER;
1195
- // A central key changed: serialize the edited doc and heal a frozen header on
1196
- // the result. stringifyDoc still normalizes a legacy flow root (`{}`) to block,
1197
- // so edited nodes do not render flow (`disabledCommands: [ teams ]` instead of a
1198
- // `- teams` block list), but it no longer forces block on a normal document —
1199
- // that flattened committed flow sequences and made this writer disagree with
1200
- // feed.ts/activity.ts/migrate.ts on the same file (RUSH-2505). parseDocument
1201
- // still preserves body comments + key ordering; healMetaHeader is a no-op unless
1202
- // a stale metadata header is actually present, so a headerless central file is
1203
- // updated in place without gaining one.
1204
642
  return healMetaHeader(stringifyDoc(doc));
1205
643
  }
1206
- /**
1207
- * Write `meta` to disk (central + device docs + pins) WITHOUT taking the meta
1208
- * lock — the caller must already hold it via {@link withMetaLock}. Exported so a
1209
- * writer that needs to read fresh state, decide, and commit within a SINGLE lock
1210
- * acquisition (e.g. browser tombstone eviction) can do so without the
1211
- * read-snapshot-then-separately-lock race that {@link updateMeta} would impose.
1212
- *
1213
- * Returns whether the central `agents.yaml` bytes actually changed, so the
1214
- * caller can commit it once — {@link commitCentralConfig} — AFTER releasing the
1215
- * meta lock (the git subprocesses must not run inside the short, non-heartbeated
1216
- * lockfile window). This function never commits.
1217
- */
1218
644
  export function writeMetaUnlocked(meta) {
1219
645
  const writesDeviceRoutines = Object.prototype.hasOwnProperty.call(meta, 'deviceRoutines');
1220
646
  const writesDeviceConfig = Object.prototype.hasOwnProperty.call(meta, 'deviceConfig');
@@ -1223,23 +649,9 @@ export function writeMetaUnlocked(meta) {
1223
649
  const writesDeviceHosts = Object.prototype.hasOwnProperty.call(meta, 'deviceHosts');
1224
650
  const writesDeviceAccounts = Object.prototype.hasOwnProperty.call(meta, 'deviceAccounts');
1225
651
  const writesProjectRoot = Object.prototype.hasOwnProperty.call(meta, 'projectRoot');
1226
- // INVARIANT: every key destructured here must also be in BESPOKE_DEVICE_KEYS (and
1227
- // vice versa) — a bespoke device key that is classified but NOT pulled out here
1228
- // would fall into `central`, and the generic router skips it (BESPOKE_DEVICE_KEY_SET),
1229
- // so it would silently sync to the shared file. Keep the two lists in lockstep.
1230
652
  const { agents, isolatedAgents, versions, deviceRoutines, deviceConfig, deviceBrowser, deviceFleet, deviceHosts, deviceAccounts, projectRoot, ...central } = meta;
1231
- // Write the machine-local files FIRST, then strip central — so a crash mid-write
1232
- // never removes pins/versions from central before they're persisted elsewhere.
1233
653
  const hasAgents = !!agents && Object.keys(agents).length > 0;
1234
- // The isolated pointer names a version installed on THIS machine, exactly like a
1235
- // global pin, so it belongs beside `agents` in the pins file rather than in the
1236
- // central doc that syncs — otherwise another machine inherits a pointer to a copy
1237
- // it does not have.
1238
654
  const hasIsolatedAgents = !!isolatedAgents && Object.keys(isolatedAgents).length > 0;
1239
- // Pins (`agents:` defaults + `isolatedAgents:`) are machine-local runtime
1240
- // state — they live in the untracked .history pins JSON, never in the tracked
1241
- // per-device doc (auto-written pins there caused commit churn on every
1242
- // `agents use` / install).
1243
655
  const pinsPath = getDevicePinsPath();
1244
656
  if (hasAgents || hasIsolatedAgents) {
1245
657
  const pins = {};
@@ -1251,18 +663,8 @@ export function writeMetaUnlocked(meta) {
1251
663
  writeIfChanged(pinsPath, JSON.stringify(pins, null, 2) + '\n');
1252
664
  }
1253
665
  else if (fs.existsSync(pinsPath)) {
1254
- // Every pin was cleared. Persist the emptied file instead of skipping the
1255
- // write — otherwise the stale pins file survives and overlayMachineLocal
1256
- // re-applies the removed pin on the next read.
1257
666
  writeIfChanged(pinsPath, '{}\n');
1258
667
  }
1259
- // The tracked per-device doc carries operator-owned fields: `routines:`
1260
- // (device-local activation) from here, `config:` from lib/device-config.ts,
1261
- // and machine-local browser defaults / projectRoot (never fleet policy).
1262
- // Merge over the existing doc so a `config:` block written outside this path
1263
- // is never clobbered. Pins are stripped defensively — they belong to the pins
1264
- // file now (the migration strips them too; a hand-edited doc converges on the
1265
- // next write).
1266
668
  const devicePath = getDeviceMetaPath();
1267
669
  let doc = {};
1268
670
  if (fs.existsSync(devicePath)) {
@@ -1272,7 +674,7 @@ export function writeMetaUnlocked(meta) {
1272
674
  doc = parsed;
1273
675
  }
1274
676
  }
1275
- catch { /* preserve the existing tolerance for malformed legacy device YAML */ }
677
+ catch { }
1276
678
  }
1277
679
  delete doc.agents;
1278
680
  delete doc.isolatedAgents;
@@ -1290,10 +692,6 @@ export function writeMetaUnlocked(meta) {
1290
692
  doc.browser = deviceBrowser;
1291
693
  else if (writesDeviceBrowser)
1292
694
  delete doc.browser;
1293
- // PHNX-3315 device-scoped fleet/hosts/accounts blocks. Each is this box's OWN
1294
- // slice; the effective fleet view is unioned across every device doc at read
1295
- // time (lib/devices/device-docs.ts). Empty slices are dropped so a box that
1296
- // has made no decision leaves no key behind (no committed empty maps).
1297
695
  const fleetDiscovery = deviceFleet?.discovery && Object.keys(deviceFleet.discovery).length > 0
1298
696
  ? deviceFleet.discovery : undefined;
1299
697
  const fleetIgnored = deviceFleet?.ignored && deviceFleet.ignored.length > 0
@@ -1317,11 +715,8 @@ export function writeMetaUnlocked(meta) {
1317
715
  ? deviceAccounts.native : undefined;
1318
716
  const accountsBindings = deviceAccounts?.bindings && Object.keys(deviceAccounts.bindings).length > 0
1319
717
  ? deviceAccounts.bindings : undefined;
1320
- // This box's account⇄home map (PHNX-3940) is device-scoped, so it round-trips
1321
- // through the device doc alongside native/bindings, never the synced central file.
1322
718
  const accountsHomes = deviceAccounts?.homes && Object.keys(deviceAccounts.homes).length > 0
1323
719
  ? deviceAccounts.homes : undefined;
1324
- // In-flight connect attempts (PHNX-3940), device-scoped like homes.
1325
720
  const accountsPending = deviceAccounts?.pendingConnects && Object.keys(deviceAccounts.pendingConnects).length > 0
1326
721
  ? deviceAccounts.pendingConnects : undefined;
1327
722
  const accountsSlots = deviceAccounts?.slots && Object.keys(deviceAccounts.slots).length > 0
@@ -1347,24 +742,15 @@ export function writeMetaUnlocked(meta) {
1347
742
  doc.projectRoot = projectRoot;
1348
743
  else if (writesProjectRoot)
1349
744
  delete doc.projectRoot;
1350
- // Generic device-scoped keys (PHNX-3315): any key left in `central` that this
1351
- // version classifies as device but does NOT bespoke-route round-trips through
1352
- // this box's device doc under its OWN name — so a NEWLY DECLARED device-scoped
1353
- // key lands per-box BY DEFAULT, with no bespoke wiring, and never reaches the
1354
- // synced central file. Today the bespoke set covers every device key, so this
1355
- // loop moves nothing (behavior-identical). A key that is UNKNOWN to this version
1356
- // AND already present in the on-disk central file is a FOREIGN key a newer CLI
1357
- // wrote as central — left in `central` and preserved verbatim by serializeCentral
1358
- // (the fleet-wide config-loss guard), never relocated to this box's doc.
1359
745
  const centralRecord = central;
1360
746
  const onDiskCentralKeys = readCentralKeys();
1361
747
  for (const k of Object.keys(centralRecord)) {
1362
748
  if (metaKeyScope(k) !== 'device')
1363
- continue; // fleet-shared: stays central
749
+ continue;
1364
750
  if (BESPOKE_DEVICE_KEY_SET.has(k))
1365
- continue; // bespoke (incl. browser tombstone)
751
+ continue;
1366
752
  if (!KNOWN_META_KEYS.has(k) && onDiskCentralKeys.has(k))
1367
- continue; // foreign — preserve
753
+ continue;
1368
754
  doc[k] = centralRecord[k];
1369
755
  delete centralRecord[k];
1370
756
  }
@@ -1373,13 +759,11 @@ export function writeMetaUnlocked(meta) {
1373
759
  writeIfChanged(devicePath, META_HEADER + yaml.stringify(doc));
1374
760
  }
1375
761
  else if (fs.existsSync(devicePath)) {
1376
- // Nothing operator-owned remains — remove the doc rather than leaving an
1377
- // empty tracked file behind.
1378
762
  fs.rmSync(devicePath, { force: true });
1379
763
  try {
1380
764
  fs.rmdirSync(path.dirname(devicePath));
1381
765
  }
1382
- catch { /* not empty — other files live in the device dir */ }
766
+ catch { }
1383
767
  }
1384
768
  if (versions && Object.keys(versions).length > 0) {
1385
769
  const vrPath = getVersionResourcesPath();
@@ -1390,17 +774,6 @@ export function writeMetaUnlocked(meta) {
1390
774
  metaCache = null;
1391
775
  return centralChanged;
1392
776
  }
1393
- /**
1394
- * Overlay this machine's local state onto a central-portable Meta:
1395
- * - `agents:` and `isolatedAgents:` from the pins file (device wins; the union
1396
- * both preserves the one-level merge and self-heals a pre-migration central that
1397
- * still has pins)
1398
- * - `routines:` / machine-local `browser:` / `projectRoot` from the tracked device
1399
- * doc (device-local; the doc's `config:` block is read by lib/device-config.ts,
1400
- * not overlaid here)
1401
- * - `versions:` from the history JSON (wholesale replace; falls back to
1402
- * whatever central carried when the history file doesn't exist yet)
1403
- */
1404
777
  function overlayMachineLocal(meta) {
1405
778
  const pinsPath = getDevicePinsPath();
1406
779
  if (fs.existsSync(pinsPath)) {
@@ -1411,7 +784,7 @@ function overlayMachineLocal(meta) {
1411
784
  if (pins?.isolatedAgents)
1412
785
  meta.isolatedAgents = { ...meta.isolatedAgents, ...pins.isolatedAgents };
1413
786
  }
1414
- catch { /* ignore malformed pins file */ }
787
+ catch { }
1415
788
  }
1416
789
  const devicePath = getDeviceMetaPath();
1417
790
  if (fs.existsSync(devicePath)) {
@@ -1419,11 +792,8 @@ function overlayMachineLocal(meta) {
1419
792
  try {
1420
793
  dm = yaml.parse(fs.readFileSync(devicePath, 'utf-8'));
1421
794
  }
1422
- catch { /* preserve the existing tolerance for malformed legacy device YAML */ }
795
+ catch { }
1423
796
  if (dm) {
1424
- // Pre-migration pins may still live in the tracked doc — honor them until
1425
- // migrateDeviceConfigStores strips them. Pins-file values already applied
1426
- // above win on key conflict.
1427
797
  if (dm?.agents)
1428
798
  meta.agents = { ...dm.agents, ...meta.agents };
1429
799
  if (dm?.isolatedAgents)
@@ -1436,15 +806,6 @@ function overlayMachineLocal(meta) {
1436
806
  if (dm?.config && typeof dm.config === 'object' && !Array.isArray(dm.config)) {
1437
807
  meta.deviceConfig = { ...meta.deviceConfig, ...dm.config };
1438
808
  }
1439
- // PHNX-3315: this box's own device-scoped fleet/hosts/accounts slices.
1440
- // These populate the `device*` keys the writers read-modify-write; the
1441
- // effective UNION across all boxes is computed separately by
1442
- // lib/devices/device-docs.ts, not here (this overlay is this box only).
1443
- // A malformed block on THIS box's own doc is a HARD error, exactly like
1444
- // `routines` below and the cross-box union readers (device-docs.ts): a
1445
- // silent drop would let the next writeMetaUnlocked round-trip overwrite the
1446
- // whole block with just the new entry, discarding the rest on this box's
1447
- // tracked file (PHNX-3315).
1448
809
  const isMap = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
1449
810
  const dmRaw = dm;
1450
811
  if (dmRaw.fleet !== undefined) {
@@ -1500,10 +861,6 @@ function overlayMachineLocal(meta) {
1500
861
  }
1501
862
  meta.deviceRoutines = dm.routines;
1502
863
  }
1503
- // Generic device-scoped keys (PHNX-3315): device-doc keys this overlay does
1504
- // NOT bespoke-handle map straight back onto Meta under their own name —
1505
- // symmetry with the generic write in writeMetaUnlocked. The bespoke sub-blocks
1506
- // are handled above and skipped, so a stock device doc surfaces nothing extra.
1507
864
  for (const [k, v] of Object.entries(dm)) {
1508
865
  if (BESPOKE_DEVICE_DOC_KEYS.has(k))
1509
866
  continue;
@@ -1518,14 +875,10 @@ function overlayMachineLocal(meta) {
1518
875
  if (vr)
1519
876
  meta.versions = vr;
1520
877
  }
1521
- catch { /* ignore malformed history file */ }
878
+ catch { }
1522
879
  }
1523
880
  return meta;
1524
881
  }
1525
- /**
1526
- * One-shot migration: move agents.yaml from system repo to user repo.
1527
- * Idempotent — no-ops if user file already exists or system file absent.
1528
- */
1529
882
  function migrateSystemMetaToUser() {
1530
883
  if (fs.existsSync(META_FILE))
1531
884
  return;
@@ -1539,39 +892,18 @@ function migrateSystemMetaToUser() {
1539
892
  console.log('Migrated agents.yaml to ~/.agents/');
1540
893
  }
1541
894
  catch {
1542
- // Best-effort; proceed with fresh state if it fails.
1543
895
  }
1544
896
  }
1545
- /**
1546
- * Read and cache ~/.agents/agents.yaml, migrating from legacy locations if needed.
1547
- *
1548
- * Cache invariants:
1549
- * - Cache key is the mtime of the user agents.yaml.
1550
- * - `writeMetaUnlocked` clears the cache; in-process callers always see fresh state.
1551
- * - If the file is mutated by ANOTHER process while we hold a stale cache, the
1552
- * mtime check below catches it on the next read (assuming the mtime advanced).
1553
- * - The cache stores the merged system+user meta; both files' mtimes contribute.
1554
- */
1555
897
  export function readMeta(options = {}) {
1556
898
  const migrate = options.migrate !== false;
1557
899
  if (migrate)
1558
900
  ensureAgentsDir();
1559
- // A preview must not suppress a later real migration by populating its cache.
1560
901
  const remember = (meta) => migrate ? rememberMeta(meta) : meta;
1561
- // Fast path: serve from cache when both source files are byte-identical to
1562
- // what we last parsed. Reduces N readMeta calls per CLI invocation to ~2 stat
1563
- // syscalls plus an in-memory object spread.
1564
902
  if (migrate && metaCache) {
1565
903
  if (currentMetaStamp() === metaCache.stamp) {
1566
904
  return metaCache.meta;
1567
905
  }
1568
906
  }
1569
- // NOTE: agents.yaml migration from ~/.agents-system/ to ~/.agents/ is handled
1570
- // exclusively by runMigration() in migrate.ts, called from postinstall and
1571
- // from a one-shot bootstrap step in src/index.ts. Calling it here would
1572
- // mutate real-user filesystem state during test runs that import this
1573
- // module, causing cross-test pollution.
1574
- // Legacy migration: check for old meta.yaml in system dir
1575
907
  const oldMetaFile = path.join(SYSTEM_AGENTS_DIR, 'meta.yaml');
1576
908
  if (fs.existsSync(oldMetaFile) && !fs.existsSync(META_FILE)) {
1577
909
  try {
@@ -1590,28 +922,18 @@ export function readMeta(options = {}) {
1590
922
  if (parsed.registries) {
1591
923
  meta.registries = parsed.registries;
1592
924
  }
1593
- // Lock-safe, commit-free write: withMetaLock is reentrant (see
1594
- // metaLockDepth), so this writes under the lock when called standalone and
1595
- // is a no-op re-entry when readMeta runs inside updateMeta/writeMeta's held
1596
- // lock — and writeMetaUnlocked never spawns git. Calling the PUBLIC
1597
- // writeMeta here would run commit-on-write's git subprocess inside a held,
1598
- // non-heartbeated lock. This one-shot legacy migration needs no synchronous
1599
- // commit: it self-heals on the daemon's next publish tick or the next real
1600
- // CLI central write.
1601
925
  if (migrate) {
1602
926
  withMetaLock(() => writeMetaUnlocked(meta));
1603
927
  try {
1604
928
  fs.unlinkSync(oldMetaFile);
1605
929
  }
1606
- catch { /* non-critical */ }
930
+ catch { }
1607
931
  }
1608
932
  return remember(meta);
1609
933
  }
1610
934
  catch {
1611
- /* meta.yaml migration failed */
1612
935
  }
1613
936
  }
1614
- // Merge agents.yaml from both system and user repos. User repo wins on conflicts.
1615
937
  let systemMeta = null;
1616
938
  let userMeta = null;
1617
939
  if (fs.existsSync(SYSTEM_META_FILE)) {
@@ -1619,17 +941,16 @@ export function readMeta(options = {}) {
1619
941
  const content = fs.readFileSync(SYSTEM_META_FILE, 'utf-8');
1620
942
  systemMeta = yaml.parse(content);
1621
943
  }
1622
- catch { /* ignore */ }
944
+ catch { }
1623
945
  }
1624
946
  if (fs.existsSync(META_FILE)) {
1625
947
  try {
1626
948
  const content = fs.readFileSync(META_FILE, 'utf-8');
1627
949
  userMeta = yaml.parse(content);
1628
950
  }
1629
- catch { /* ignore */ }
951
+ catch { }
1630
952
  }
1631
953
  if (systemMeta || userMeta) {
1632
- // Merge: system as base, user overwrites
1633
954
  const base = createDefaultMeta();
1634
955
  const meta = {
1635
956
  ...base,
@@ -1637,7 +958,6 @@ export function readMeta(options = {}) {
1637
958
  ...userMeta,
1638
959
  agents: { ...systemMeta?.agents, ...userMeta?.agents },
1639
960
  };
1640
- // Merge registries carefully to preserve type
1641
961
  if (systemMeta?.registries || userMeta?.registries) {
1642
962
  meta.registries = {
1643
963
  ...base.registries,
@@ -1652,12 +972,10 @@ export function readMeta(options = {}) {
1652
972
  overlayMachineLocal(meta);
1653
973
  return remember(meta);
1654
974
  }
1655
- /** Serialize and write agents.yaml to the user repo, invalidating the in-memory cache. */
1656
975
  export function writeMeta(meta) {
1657
976
  const centralChanged = withMetaLock(() => writeMetaUnlocked(meta));
1658
977
  commitCentralConfigAfterWrite(centralChanged);
1659
978
  }
1660
- /** Update agents.yaml under lock and return the new state. */
1661
979
  export function updateMeta(updates) {
1662
980
  let centralChanged = false;
1663
981
  const newMeta = withMetaLock(() => {
@@ -1671,19 +989,10 @@ export function updateMeta(updates) {
1671
989
  commitCentralConfigAfterWrite(centralChanged);
1672
990
  return newMeta;
1673
991
  }
1674
- /**
1675
- * Commit-on-write, invoked AFTER {@link withMetaLock} releases so the git
1676
- * subprocesses never run inside the short, non-heartbeated meta-lock window.
1677
- * A CLI command that actually moved the fleet-shared central agents.yaml commits
1678
- * it so the tree is never left dirty on that file at rest — the window that
1679
- * trips `dirtyTreeRefusal` and wedges pulls fleet-wide (PHNX-3968). Gated on a
1680
- * real byte change. See {@link commitCentralConfig}.
1681
- */
1682
992
  export function commitCentralConfigAfterWrite(centralChanged) {
1683
993
  if (centralChanged)
1684
994
  commitCentralConfig(USER_AGENTS_DIR);
1685
995
  }
1686
- /** Derive a filesystem-safe local clone path for a package source URL. */
1687
996
  export function getPackageLocalPath(source) {
1688
997
  const sanitized = source
1689
998
  .replace(/^gh:/, '')
@@ -1699,11 +1008,6 @@ export function getPackageLocalPath(source) {
1699
1008
  export function recordVersionResources(_agent, _version, _resourceType, _resources) {
1700
1009
  // intentional no-op — tracking moved to pattern-based ensureVersionResourcePatterns
1701
1010
  }
1702
- /**
1703
- * Write default resource selection patterns for an agent@version.
1704
- * Only writes each field when it is not already set, preserving user customization.
1705
- * Pass all resource types you want to initialize in one call to batch the write.
1706
- */
1707
1011
  export function ensureVersionResourcePatterns(agent, version, updates) {
1708
1012
  const meta = readMeta();
1709
1013
  if (!meta.versions)
@@ -1723,20 +1027,9 @@ export function ensureVersionResourcePatterns(agent, version, updates) {
1723
1027
  if (changed)
1724
1028
  writeMeta(meta);
1725
1029
  }
1726
- /**
1727
- * Resource types that resolve across the extra-repo layer. Mirrors
1728
- * `defaultPatterns()`: extras feed commands/skills/hooks/subagents/plugins/
1729
- * workflows, but never permissions (`system:*`) or mcp (`user:*`).
1730
- */
1731
1030
  const EXTRA_ELIGIBLE_TYPES = [
1732
1031
  'commands', 'skills', 'hooks', 'subagents', 'plugins', 'workflows',
1733
1032
  ];
1734
- /**
1735
- * Insert `<alias>:*` at the canonical position (after the system/user/other-extra
1736
- * includes, before `project:*`), unless the alias is already referenced — as an
1737
- * include (`alias:...`) or an exclude (`!alias:...`). Returns a new array when it
1738
- * changes, otherwise the same reference (so callers can detect no-ops cheaply).
1739
- */
1740
1033
  export function withAlias(list, alias) {
1741
1034
  const prefix = `${alias}:`;
1742
1035
  if (list.some(p => p === `${alias}:*` || p.startsWith(prefix) || p.startsWith(`!${prefix}`))) {
@@ -1750,20 +1043,11 @@ export function withAlias(list, alias) {
1750
1043
  next.push(`${alias}:*`);
1751
1044
  return next;
1752
1045
  }
1753
- /** Strip every reference to `<alias>:...` / `!<alias>:...` from a selector list. */
1754
1046
  export function withoutAlias(list, alias) {
1755
1047
  const prefix = `${alias}:`;
1756
1048
  const next = list.filter(p => !(p.startsWith(prefix) || p.startsWith(`!${prefix}`)));
1757
1049
  return next.length === list.length ? list : next;
1758
1050
  }
1759
- /**
1760
- * Backfill (add=true) or strip (add=false) an extra-repo alias across every
1761
- * already-installed version's selectors. New versions get the alias via
1762
- * `defaultPatterns()` at scaffold time; this keeps existing versions in sync
1763
- * when an extra repo is registered/enabled or removed. Only touches selector
1764
- * lists that are already set — an unset list is left for `defaultPatterns()`.
1765
- * Returns the number of (agent, version) pairs changed.
1766
- */
1767
1051
  export function applyExtraAliasToVersions(alias, add) {
1768
1052
  const meta = readMeta();
1769
1053
  if (!meta.versions)
@@ -1800,12 +1084,10 @@ export function getVersionResources(agent, version) {
1800
1084
  const meta = readMeta();
1801
1085
  return meta.versions?.[agent]?.[version] || null;
1802
1086
  }
1803
- /** Active rules preset for an agent@version. Defaults to "default" when unset. */
1804
1087
  export function getActiveRulesPreset(agent, version) {
1805
1088
  const meta = readMeta();
1806
1089
  return meta.versions?.[agent]?.[version]?.rulesPreset || 'default';
1807
1090
  }
1808
- /** Persist the active rules preset for an agent@version. */
1809
1091
  export function setActiveRulesPreset(agent, version, preset) {
1810
1092
  const meta = readMeta();
1811
1093
  if (!meta.versions)