@phnx-labs/agents-cli 1.22.112 → 1.22.114

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 (706) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +10 -11
  3. package/dist/cli/command-registry.d.ts +0 -60
  4. package/dist/cli/command-registry.js +59 -61
  5. package/dist/commands/apply.d.ts +0 -4
  6. package/dist/commands/apply.js +3 -3
  7. package/dist/commands/browser-picker.d.ts +3 -6
  8. package/dist/commands/browser-picker.js +2 -2
  9. package/dist/commands/browser-sessions-picker.d.ts +2 -1
  10. package/dist/commands/computer-sessions-picker.d.ts +2 -1
  11. package/dist/commands/computer.d.ts +14 -19
  12. package/dist/commands/computer.js +65 -10
  13. package/dist/commands/config.js +46 -2
  14. package/dist/commands/daemon.d.ts +0 -23
  15. package/dist/commands/daemon.js +1 -1
  16. package/dist/commands/detach-core.d.ts +2 -1
  17. package/dist/commands/detach.d.ts +0 -3
  18. package/dist/commands/detach.js +3 -3
  19. package/dist/commands/feed.d.ts +3 -3
  20. package/dist/commands/feed.js +1 -1
  21. package/dist/commands/focus.d.ts +4 -4
  22. package/dist/commands/harness-hooks.d.ts +0 -7
  23. package/dist/commands/harness-hooks.js +1 -1
  24. package/dist/commands/harness-wizard.d.ts +2 -2
  25. package/dist/commands/harness.d.ts +3 -8
  26. package/dist/commands/harness.js +1 -1
  27. package/dist/commands/inspect.d.ts +2 -3
  28. package/dist/commands/inspect.js +1 -1
  29. package/dist/commands/message.d.ts +1 -1
  30. package/dist/commands/message.js +3 -3
  31. package/dist/commands/projects.d.ts +2 -18
  32. package/dist/commands/projects.js +89 -3
  33. package/dist/commands/resource-view.d.ts +3 -2
  34. package/dist/commands/resume.d.ts +0 -1
  35. package/dist/commands/resume.js +1 -1
  36. package/dist/commands/routines.d.ts +1 -3
  37. package/dist/commands/routines.js +1 -1
  38. package/dist/commands/run-account-picker.d.ts +2 -1
  39. package/dist/commands/run-broadcast.d.ts +2 -1
  40. package/dist/commands/run-device-picker.d.ts +2 -1
  41. package/dist/commands/secrets-passthrough.d.ts +14 -0
  42. package/dist/commands/secrets-passthrough.js +21 -2
  43. package/dist/commands/sessions-backfill.d.ts +2 -35
  44. package/dist/commands/sessions-backfill.js +1 -1
  45. package/dist/commands/sessions-bookmark.d.ts +0 -10
  46. package/dist/commands/sessions-bookmark.js +1 -1
  47. package/dist/commands/sessions-inject.d.ts +2 -3
  48. package/dist/commands/sessions-inject.js +8 -17
  49. package/dist/commands/sessions-picker-factory.d.ts +4 -14
  50. package/dist/commands/sessions-picker-factory.js +2 -2
  51. package/dist/commands/sessions-picker.d.ts +3 -9
  52. package/dist/commands/sessions-picker.js +2 -2
  53. package/dist/commands/sessions-resume.d.ts +2 -4
  54. package/dist/commands/sessions-resume.js +0 -5
  55. package/dist/commands/sessions-stats.d.ts +2 -1
  56. package/dist/commands/sessions-stop.d.ts +0 -3
  57. package/dist/commands/sessions-stop.js +1 -1
  58. package/dist/commands/sessions-tail.d.ts +2 -1
  59. package/dist/commands/sessions-trace.d.ts +4 -6
  60. package/dist/commands/sessions-trace.js +1 -1
  61. package/dist/commands/sessions.d.ts +14 -104
  62. package/dist/commands/sessions.js +22 -10
  63. package/dist/commands/setup-mine.d.ts +0 -6
  64. package/dist/commands/setup-mine.js +1 -1
  65. package/dist/commands/setup.d.ts +3 -4
  66. package/dist/commands/setup.js +1 -1
  67. package/dist/commands/share.d.ts +8 -8
  68. package/dist/commands/teams-picker.d.ts +2 -5
  69. package/dist/commands/teams-picker.js +2 -2
  70. package/dist/commands/teams.d.ts +1 -7
  71. package/dist/commands/teams.js +1 -1
  72. package/dist/commands/tmux.d.ts +1 -1
  73. package/dist/commands/tmux.js +1 -1
  74. package/dist/commands/upgrade.d.ts +2 -1
  75. package/dist/commands/utils.d.ts +1 -1
  76. package/dist/commands/utils.js +1 -1
  77. package/dist/lib/account-capabilities.d.ts +2 -1
  78. package/dist/lib/account-catalog.d.ts +4 -13
  79. package/dist/lib/account-catalog.js +1 -1
  80. package/dist/lib/account-registry.d.ts +3 -4
  81. package/dist/lib/account-registry.js +1 -1
  82. package/dist/lib/accounting/account-launch.d.ts +4 -3
  83. package/dist/lib/accounting/account-pool.d.ts +2 -1
  84. package/dist/lib/accounting/rotate.d.ts +3 -9
  85. package/dist/lib/accounting/rotate.js +2 -14
  86. package/dist/lib/accounting/usage-sync.d.ts +5 -4
  87. package/dist/lib/accounting/usage.d.ts +7 -31
  88. package/dist/lib/accounting/usage.js +4 -4
  89. package/dist/lib/accounts/migrate.d.ts +8 -8
  90. package/dist/lib/accounts/migrate.js +1 -1
  91. package/dist/lib/acp/client.d.ts +3 -2
  92. package/dist/lib/acp/harnesses.d.ts +2 -2
  93. package/dist/lib/acp/harnesses.js +1 -1
  94. package/dist/lib/acp/run.d.ts +2 -1
  95. package/dist/lib/actor.d.ts +3 -2
  96. package/dist/lib/add-dir.d.ts +2 -17
  97. package/dist/lib/add-dir.js +2 -6
  98. package/dist/lib/address.d.ts +56 -0
  99. package/dist/lib/address.js +143 -0
  100. package/dist/lib/agent-spec/agents.d.ts +12 -28
  101. package/dist/lib/agent-spec/agents.js +2 -6
  102. package/dist/lib/agent-spec/primitives.d.ts +0 -7
  103. package/dist/lib/agent-spec/primitives.js +0 -6
  104. package/dist/lib/agent-spec/types.d.ts +2 -1
  105. package/dist/lib/analytics/dashboard.d.ts +1 -5
  106. package/dist/lib/analytics/dashboard.js +0 -2
  107. package/dist/lib/analytics/mix-commands.d.ts +0 -7
  108. package/dist/lib/analytics/mix-commands.js +3 -3
  109. package/dist/lib/analytics/recipes.d.ts +0 -12
  110. package/dist/lib/analytics/recipes.js +7 -31
  111. package/dist/lib/analytics/usage-db.d.ts +5 -32
  112. package/dist/lib/analytics/usage-db.js +1 -70
  113. package/dist/lib/answer-router.d.ts +7 -6
  114. package/dist/lib/answer-router.js +5 -11
  115. package/dist/lib/artifact-actions.d.ts +0 -4
  116. package/dist/lib/ask-classifier.d.ts +3 -4
  117. package/dist/lib/ask-classifier.js +0 -7
  118. package/dist/lib/auth-health.d.ts +3 -46
  119. package/dist/lib/auth-health.js +3 -3
  120. package/dist/lib/auth-mint.d.ts +6 -6
  121. package/dist/lib/auth-mint.js +5 -5
  122. package/dist/lib/bench/runner.d.ts +2 -2
  123. package/dist/lib/bench/runner.js +1 -1
  124. package/dist/lib/bench/storage.d.ts +0 -1
  125. package/dist/lib/bench/storage.js +1 -1
  126. package/dist/lib/boot-profile.d.ts +0 -2
  127. package/dist/lib/boot-profile.js +0 -4
  128. package/dist/lib/brand.d.ts +0 -6
  129. package/dist/lib/brand.js +1 -1
  130. package/dist/lib/browser/arc-discovery.d.ts +4 -12
  131. package/dist/lib/browser/arc-discovery.js +1 -1
  132. package/dist/lib/browser/cdp.d.ts +1 -1
  133. package/dist/lib/browser/chrome.d.ts +2 -2
  134. package/dist/lib/browser/chrome.js +0 -4
  135. package/dist/lib/browser/chromium-discovery.d.ts +3 -2
  136. package/dist/lib/browser/drivers/arc.d.ts +3 -20
  137. package/dist/lib/browser/drivers/arc.js +2 -7
  138. package/dist/lib/browser/drivers/firefox.d.ts +2 -6
  139. package/dist/lib/browser/drivers/firefox.js +1 -1
  140. package/dist/lib/browser/drivers/local.d.ts +2 -1
  141. package/dist/lib/browser/drivers/ssh.d.ts +2 -3
  142. package/dist/lib/browser/drivers/ssh.js +0 -7
  143. package/dist/lib/browser/firefox-discovery.d.ts +4 -3
  144. package/dist/lib/browser/har.d.ts +8 -7
  145. package/dist/lib/browser/hygiene.d.ts +2 -3
  146. package/dist/lib/browser/hygiene.js +1 -1
  147. package/dist/lib/browser/ipc.d.ts +4 -3
  148. package/dist/lib/browser/ipc.js +1 -1
  149. package/dist/lib/browser/login-detection.d.ts +1 -8
  150. package/dist/lib/browser/registry.d.ts +2 -1
  151. package/dist/lib/browser/remote-control.d.ts +0 -7
  152. package/dist/lib/browser/remote-control.js +2 -2
  153. package/dist/lib/browser/resolve-target.d.ts +2 -6
  154. package/dist/lib/browser/resolve-target.js +3 -3
  155. package/dist/lib/browser/runtime-state.d.ts +4 -4
  156. package/dist/lib/browser/service.d.ts +4 -4
  157. package/dist/lib/browser/sessions-list.d.ts +0 -10
  158. package/dist/lib/browser/sessions-list.js +3 -3
  159. package/dist/lib/browser/stream.d.ts +2 -1
  160. package/dist/lib/browser/task-index.d.ts +4 -4
  161. package/dist/lib/browser/task-index.js +1 -1
  162. package/dist/lib/browser/types.d.ts +0 -20
  163. package/dist/lib/browser/types.js +1 -34
  164. package/dist/lib/browser/upload.d.ts +0 -27
  165. package/dist/lib/budget/ledger.d.ts +0 -2
  166. package/dist/lib/budget/ledger.js +1 -1
  167. package/dist/lib/budget/live-cloud.d.ts +2 -1
  168. package/dist/lib/budget/preflight.d.ts +3 -5
  169. package/dist/lib/budget/preflight.js +1 -1
  170. package/dist/lib/catchup.d.ts +2 -1
  171. package/dist/lib/channels/owner-forward.d.ts +5 -4
  172. package/dist/lib/channels/owner-sink.js +2 -2
  173. package/dist/lib/channels/providers/desktop.js +1 -1
  174. package/dist/lib/channels/providers/rush.d.ts +2 -1
  175. package/dist/lib/channels/registry.d.ts +1 -1
  176. package/dist/lib/channels/registry.js +1 -1
  177. package/dist/lib/channels/resolve.d.ts +3 -2
  178. package/dist/lib/channels/send.d.ts +5 -4
  179. package/dist/lib/cli-resources.d.ts +3 -9
  180. package/dist/lib/cli-resources.js +1 -1
  181. package/dist/lib/cloud/cursor.d.ts +1 -2
  182. package/dist/lib/cloud/cursor.js +1 -1
  183. package/dist/lib/cloud/dispatch.d.ts +2 -1
  184. package/dist/lib/cloud/factory.d.ts +0 -2
  185. package/dist/lib/cloud/factory.js +1 -1
  186. package/dist/lib/cloud/rush.d.ts +3 -11
  187. package/dist/lib/cloud/rush.js +1 -1
  188. package/dist/lib/cloud/session-index.d.ts +2 -1
  189. package/dist/lib/cloud/types.d.ts +2 -1
  190. package/dist/lib/codex-policy.d.ts +2 -1
  191. package/dist/lib/commands.d.ts +7 -7
  192. package/dist/lib/commands.js +1 -1
  193. package/dist/lib/comms-render.d.ts +1 -1
  194. package/dist/lib/computer/context.d.ts +11 -3
  195. package/dist/lib/computer/context.js +2 -2
  196. package/dist/lib/computer/policy.d.ts +0 -12
  197. package/dist/lib/computer/policy.js +1 -1
  198. package/dist/lib/computer-client.d.ts +3 -3
  199. package/dist/lib/computer-client.js +0 -1
  200. package/dist/lib/concurrency.d.ts +2 -1
  201. package/dist/lib/config-keys.d.ts +16 -3
  202. package/dist/lib/config-keys.js +47 -2
  203. package/dist/lib/convert.d.ts +0 -12
  204. package/dist/lib/convert.js +1 -12
  205. package/dist/lib/crabbox/cli.d.ts +6 -24
  206. package/dist/lib/crabbox/cli.js +2 -28
  207. package/dist/lib/crabbox/lease.d.ts +5 -6
  208. package/dist/lib/crabbox/lease.js +1 -1
  209. package/dist/lib/crabbox/progress.d.ts +2 -1
  210. package/dist/lib/crabbox/setup-copy.d.ts +2 -3
  211. package/dist/lib/crabbox/setup-copy.js +1 -1
  212. package/dist/lib/daemon/account-state-daemon-service.d.ts +1 -1
  213. package/dist/lib/daemon/attention-notify-service.d.ts +2 -1
  214. package/dist/lib/daemon/catchup-service.d.ts +2 -1
  215. package/dist/lib/daemon/daemon.d.ts +4 -12
  216. package/dist/lib/daemon/daemon.js +42 -23
  217. package/dist/lib/daemon/harness-update-service.d.ts +2 -19
  218. package/dist/lib/daemon/harness-update-service.js +3 -3
  219. package/dist/lib/daemon/runner.d.ts +3 -3
  220. package/dist/lib/daemon/self-update-service.d.ts +1 -16
  221. package/dist/lib/daemon/self-update-service.js +6 -6
  222. package/dist/lib/daemon/state-dir-check-service.d.ts +2 -1
  223. package/dist/lib/daemon/supervisor.d.ts +3 -2
  224. package/dist/lib/daemon/testdata/process-view-daemon.d.ts +1 -0
  225. package/dist/lib/daemon/testdata/process-view-daemon.js +14 -0
  226. package/dist/lib/daemon/testdata/process-view-start.d.ts +1 -0
  227. package/dist/lib/daemon/testdata/process-view-start.js +43 -0
  228. package/dist/lib/daemon-services.d.ts +2 -1
  229. package/dist/lib/daemon-webhooks.d.ts +1 -1
  230. package/dist/lib/deeplink/register.d.ts +3 -13
  231. package/dist/lib/deeplink/register.js +3 -3
  232. package/dist/lib/deeplink/url.d.ts +3 -2
  233. package/dist/lib/device-config.d.ts +4 -15
  234. package/dist/lib/device-config.js +164 -8
  235. package/dist/lib/devices/connect.d.ts +2 -1
  236. package/dist/lib/devices/discovery-policy.d.ts +3 -2
  237. package/dist/lib/devices/doctor-findings.js +1 -1
  238. package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
  239. package/dist/lib/devices/fleet-divergence.d.ts +2 -1
  240. package/dist/lib/devices/fleet.d.ts +3 -4
  241. package/dist/lib/devices/fleet.js +1 -1
  242. package/dist/lib/devices/harness-inventory.d.ts +3 -2
  243. package/dist/lib/devices/health-report.d.ts +3 -2
  244. package/dist/lib/devices/health.d.ts +1 -8
  245. package/dist/lib/devices/health.js +1 -1
  246. package/dist/lib/devices/interactive-host.d.ts +0 -2
  247. package/dist/lib/devices/interactive-host.js +1 -1
  248. package/dist/lib/devices/known-hosts.d.ts +2 -20
  249. package/dist/lib/devices/known-hosts.js +2 -2
  250. package/dist/lib/devices/pool.d.ts +2 -1
  251. package/dist/lib/devices/resolve-target.d.ts +2 -2
  252. package/dist/lib/devices/rollout-verify.d.ts +3 -2
  253. package/dist/lib/devices/stats-cache.d.ts +3 -2
  254. package/dist/lib/devices/sync.d.ts +6 -5
  255. package/dist/lib/devices/worker-pick.d.ts +3 -12
  256. package/dist/lib/devices/worker-pick.js +1 -1
  257. package/dist/lib/diff-text.d.ts +2 -1
  258. package/dist/lib/doctor-diff.d.ts +2 -1
  259. package/dist/lib/drift-sync.d.ts +3 -2
  260. package/dist/lib/drift.d.ts +3 -3
  261. package/dist/lib/drift.js +1 -1
  262. package/dist/lib/event-families.d.ts +0 -6
  263. package/dist/lib/event-families.js +3 -3
  264. package/dist/lib/event-provenance.d.ts +4 -1
  265. package/dist/lib/event-provenance.js +4 -0
  266. package/dist/lib/events-ingest.d.ts +4 -3
  267. package/dist/lib/exec-account-home.d.ts +2 -4
  268. package/dist/lib/exec-account-home.js +1 -1
  269. package/dist/lib/exec-bounded.d.ts +3 -4
  270. package/dist/lib/exec-bounded.js +1 -1
  271. package/dist/lib/exec.d.ts +6 -18
  272. package/dist/lib/exec.js +28 -8
  273. package/dist/lib/factory/snapshot.d.ts +2 -2
  274. package/dist/lib/factory/snapshot.js +1 -1
  275. package/dist/lib/feed/activity-stream.d.ts +2 -5
  276. package/dist/lib/feed/activity-stream.js +11 -2
  277. package/dist/lib/feed/activity.d.ts +16 -33
  278. package/dist/lib/feed/activity.js +69 -26
  279. package/dist/lib/feed/answer.d.ts +3 -2
  280. package/dist/lib/feed/attention.js +5 -1
  281. package/dist/lib/feed/events.d.ts +2 -47
  282. package/dist/lib/feed/events.js +1 -141
  283. package/dist/lib/feed/feed.d.ts +9 -42
  284. package/dist/lib/feed/feed.js +1 -60
  285. package/dist/lib/feed/pr-status.d.ts +0 -2
  286. package/dist/lib/feed/pr-status.js +1 -5
  287. package/dist/lib/feed/watch.d.ts +10 -2
  288. package/dist/lib/feed/watch.js +91 -4
  289. package/dist/lib/feed-broadcast.d.ts +5 -47
  290. package/dist/lib/feed-broadcast.js +9 -9
  291. package/dist/lib/feed-outcome.d.ts +3 -6
  292. package/dist/lib/feed-outcome.js +2 -2
  293. package/dist/lib/feed-policy.d.ts +5 -6
  294. package/dist/lib/feed-policy.js +2 -2
  295. package/dist/lib/feed-post.d.ts +3 -4
  296. package/dist/lib/feed-post.js +2 -2
  297. package/dist/lib/feed-ranking.d.ts +2 -2
  298. package/dist/lib/feed-ranking.js +1 -1
  299. package/dist/lib/fleet/apply.d.ts +5 -6
  300. package/dist/lib/fleet/apply.js +4 -4
  301. package/dist/lib/fleet/manifest.d.ts +2 -1
  302. package/dist/lib/fleet/remote-login.d.ts +18 -36
  303. package/dist/lib/fleet/remote-login.js +20 -19
  304. package/dist/lib/fleet/types.d.ts +0 -8
  305. package/dist/lib/fleet-cache.d.ts +1 -18
  306. package/dist/lib/fleet-cache.js +0 -5
  307. package/dist/lib/fleet-shared-repo-sync.d.ts +3 -3
  308. package/dist/lib/fleet-shared-repo-sync.js +1 -1
  309. package/dist/lib/fleet-shared-state.d.ts +3 -2
  310. package/dist/lib/format.d.ts +2 -1
  311. package/dist/lib/friction-heuristics.d.ts +2 -1
  312. package/dist/lib/fs-walk.d.ts +2 -1
  313. package/dist/lib/fuzzy.d.ts +2 -1
  314. package/dist/lib/gemini-settings.d.ts +0 -1
  315. package/dist/lib/gemini-settings.js +1 -1
  316. package/dist/lib/git.d.ts +7 -65
  317. package/dist/lib/git.js +3 -142
  318. package/dist/lib/github/gh-overload.d.ts +0 -4
  319. package/dist/lib/github/gh-overload.js +2 -2
  320. package/dist/lib/github/project-prs.d.ts +118 -0
  321. package/dist/lib/github/project-prs.js +173 -0
  322. package/dist/lib/github/rest.d.ts +2 -1
  323. package/dist/lib/harness/exec-config-version.d.ts +2 -1
  324. package/dist/lib/harness-auth-capabilities.d.ts +5 -4
  325. package/dist/lib/harness-connection-test.d.ts +2 -1
  326. package/dist/lib/heal.d.ts +3 -20
  327. package/dist/lib/heal.js +2 -39
  328. package/dist/lib/help.d.ts +3 -2
  329. package/dist/lib/helper-download.d.ts +0 -12
  330. package/dist/lib/helper-download.js +2 -2
  331. package/dist/lib/helper-versions.d.ts +2 -1
  332. package/dist/lib/helper-versions.js +1 -1
  333. package/dist/lib/hooks/install.d.ts +8 -49
  334. package/dist/lib/hooks/install.js +2 -96
  335. package/dist/lib/hooks/match.d.ts +2 -1
  336. package/dist/lib/hosts/credential-transport.d.ts +0 -2
  337. package/dist/lib/hosts/credential-transport.js +1 -1
  338. package/dist/lib/hosts/dispatch.d.ts +2 -34
  339. package/dist/lib/hosts/dispatch.js +4 -21
  340. package/dist/lib/hosts/logs.d.ts +2 -1
  341. package/dist/lib/hosts/passthrough.d.ts +1 -1
  342. package/dist/lib/hosts/passthrough.js +0 -1
  343. package/dist/lib/hosts/progress.d.ts +0 -5
  344. package/dist/lib/hosts/progress.js +1 -1
  345. package/dist/lib/hosts/ready.d.ts +3 -4
  346. package/dist/lib/hosts/ready.js +0 -8
  347. package/dist/lib/hosts/reconcile.d.ts +2 -8
  348. package/dist/lib/hosts/reconcile.js +1 -1
  349. package/dist/lib/hosts/reconnect.d.ts +4 -11
  350. package/dist/lib/hosts/reconnect.js +2 -2
  351. package/dist/lib/hosts/registry.d.ts +1 -1
  352. package/dist/lib/hosts/remote-cmd.d.ts +4 -3
  353. package/dist/lib/hosts/remote-session-id.d.ts +5 -27
  354. package/dist/lib/hosts/remote-session-id.js +18 -61
  355. package/dist/lib/hosts/session-index.d.ts +3 -2
  356. package/dist/lib/hosts/ssh-config.d.ts +2 -3
  357. package/dist/lib/hosts/ssh-config.js +0 -10
  358. package/dist/lib/humans.d.ts +0 -2
  359. package/dist/lib/humans.js +2 -2
  360. package/dist/lib/import.d.ts +4 -3
  361. package/dist/lib/installations/installation-lock.d.ts +0 -2
  362. package/dist/lib/installations/installation-lock.js +2 -2
  363. package/dist/lib/installations/launch-gate.d.ts +0 -9
  364. package/dist/lib/installations/launch-gate.js +1 -1
  365. package/dist/lib/installations/migrate.d.ts +0 -11
  366. package/dist/lib/installations/migrate.js +1 -1
  367. package/dist/lib/installations/shims.d.ts +1 -1
  368. package/dist/lib/installations/shims.js +2 -2
  369. package/dist/lib/installations/update-runtime.js +1 -1
  370. package/dist/lib/launch-identity.d.ts +10 -0
  371. package/dist/lib/launch-identity.js +31 -0
  372. package/dist/lib/linear-cache.d.ts +2 -1
  373. package/dist/lib/linux-userns.d.ts +2 -3
  374. package/dist/lib/linux-userns.js +0 -4
  375. package/dist/lib/loop.d.ts +2 -1
  376. package/dist/lib/mailbox-gc.d.ts +2 -1
  377. package/dist/lib/mailbox-target.d.ts +2 -1
  378. package/dist/lib/mailbox.d.ts +0 -6
  379. package/dist/lib/mailbox.js +1 -1
  380. package/dist/lib/manifest.d.ts +0 -14
  381. package/dist/lib/manifest.js +2 -2
  382. package/dist/lib/mcp-registry.d.ts +2 -1
  383. package/dist/lib/memory.d.ts +2 -13
  384. package/dist/lib/memory.js +4 -4
  385. package/dist/lib/menubar/download-menubar.d.ts +0 -2
  386. package/dist/lib/menubar/download-menubar.js +1 -5
  387. package/dist/lib/menubar/install-menubar.d.ts +3 -14
  388. package/dist/lib/menubar/install-menubar.js +3 -3
  389. package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
  390. package/dist/lib/menubar/migrate-prefs.js +168 -0
  391. package/dist/lib/menubar/resolve-version.d.ts +1 -9
  392. package/dist/lib/menubar/resolve-version.js +4 -4
  393. package/dist/lib/menubar/snapshot.d.ts +24 -2
  394. package/dist/lib/menubar/snapshot.js +26 -0
  395. package/dist/lib/model-tier-overrides.d.ts +3 -2
  396. package/dist/lib/monitors/config.d.ts +0 -2
  397. package/dist/lib/monitors/config.js +0 -4
  398. package/dist/lib/monitors/engine.d.ts +1 -1
  399. package/dist/lib/monitors/remote.d.ts +3 -2
  400. package/dist/lib/monitors/sources/webhook.d.ts +2 -15
  401. package/dist/lib/monitors/sources/webhook.js +1 -38
  402. package/dist/lib/monitors/state.d.ts +4 -7
  403. package/dist/lib/monitors/state.js +2 -2
  404. package/dist/lib/notify.d.ts +1 -1
  405. package/dist/lib/notify.js +1 -1
  406. package/dist/lib/onepassword.d.ts +5 -14
  407. package/dist/lib/onepassword.js +0 -64
  408. package/dist/lib/open-url.d.ts +3 -2
  409. package/dist/lib/openclaw-keychain.d.ts +4 -17
  410. package/dist/lib/openclaw-keychain.js +3 -33
  411. package/dist/lib/operator.d.ts +2 -2
  412. package/dist/lib/operator.js +1 -1
  413. package/dist/lib/output/git-output.d.ts +4 -14
  414. package/dist/lib/output/git-output.js +1 -1
  415. package/dist/lib/owner-message.d.ts +3 -29
  416. package/dist/lib/owner-message.js +3 -3
  417. package/dist/lib/packages/output-home.d.ts +2 -4
  418. package/dist/lib/packages/output-home.js +2 -2
  419. package/dist/lib/perf/db.d.ts +0 -2
  420. package/dist/lib/perf/db.js +2 -7
  421. package/dist/lib/permissions-registry.d.ts +2 -3
  422. package/dist/lib/permissions-registry.js +0 -4
  423. package/dist/lib/permissions.d.ts +6 -16
  424. package/dist/lib/permissions.js +2 -15
  425. package/dist/lib/picker.d.ts +6 -5
  426. package/dist/lib/placement.d.ts +3 -6
  427. package/dist/lib/placement.js +0 -17
  428. package/dist/lib/platform/posixpath.d.ts +2 -1
  429. package/dist/lib/platform/winpath.d.ts +2 -1
  430. package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
  431. package/dist/lib/plugins/plugin-marketplace.js +1 -1
  432. package/dist/lib/pr-land-detach.d.ts +2 -1
  433. package/dist/lib/profiles-presets.d.ts +2 -1
  434. package/dist/lib/profiles.d.ts +3 -9
  435. package/dist/lib/profiles.js +1 -9
  436. package/dist/lib/project-doctor.d.ts +2 -1
  437. package/dist/lib/project-launch.d.ts +2 -2
  438. package/dist/lib/project-probe.d.ts +4 -3
  439. package/dist/lib/project-pull.d.ts +2 -1
  440. package/dist/lib/project-resources.d.ts +2 -2
  441. package/dist/lib/project-resources.js +1 -1
  442. package/dist/lib/project-root.d.ts +2 -6
  443. package/dist/lib/project-root.js +1 -1
  444. package/dist/lib/project-schedule.d.ts +2 -1
  445. package/dist/lib/project-status.d.ts +2 -16
  446. package/dist/lib/project-status.js +3 -3
  447. package/dist/lib/reconcile-and-repair.d.ts +5 -4
  448. package/dist/lib/redact.d.ts +7 -1
  449. package/dist/lib/redact.js +94 -3
  450. package/dist/lib/refresh-coordinator.d.ts +2 -1
  451. package/dist/lib/refresh.d.ts +3 -2
  452. package/dist/lib/remote-agents-json.d.ts +3 -2
  453. package/dist/lib/reserved-stores.d.ts +0 -2
  454. package/dist/lib/reserved-stores.js +3 -5
  455. package/dist/lib/resource-content-diff.d.ts +0 -2
  456. package/dist/lib/resource-content-diff.js +1 -1
  457. package/dist/lib/resource-patterns.d.ts +2 -1
  458. package/dist/lib/resource-profiles.d.ts +2 -8
  459. package/dist/lib/resource-profiles.js +3 -27
  460. package/dist/lib/resources/workflows.d.ts +1 -1
  461. package/dist/lib/resources.d.ts +4 -9
  462. package/dist/lib/resources.js +1 -1
  463. package/dist/lib/routine-context.d.ts +2 -5
  464. package/dist/lib/routine-context.js +2 -2
  465. package/dist/lib/routine-notify-owner.d.ts +8 -7
  466. package/dist/lib/routine-notify-owner.js +5 -5
  467. package/dist/lib/routine-process-cleanup.d.ts +2 -1
  468. package/dist/lib/routine-readiness.d.ts +0 -2
  469. package/dist/lib/routine-readiness.js +0 -7
  470. package/dist/lib/routines-project.d.ts +3 -4
  471. package/dist/lib/routines-project.js +1 -1
  472. package/dist/lib/rules/compile.d.ts +3 -25
  473. package/dist/lib/rules/compile.js +1 -1
  474. package/dist/lib/rules/compose.d.ts +3 -9
  475. package/dist/lib/rules/rules.d.ts +4 -15
  476. package/dist/lib/rules/rules.js +1 -64
  477. package/dist/lib/run-defaults.d.ts +1 -1
  478. package/dist/lib/run-notify.d.ts +2 -1
  479. package/dist/lib/run-trace-sync.d.ts +1 -1
  480. package/dist/lib/run-trace-sync.js +1 -1
  481. package/dist/lib/scheduler.d.ts +2 -1
  482. package/dist/lib/scheduling/routines.d.ts +9 -21
  483. package/dist/lib/scheduling/routines.js +3 -46
  484. package/dist/lib/secrets-client.d.ts +0 -17
  485. package/dist/lib/secrets-client.js +4 -26
  486. package/dist/lib/secrets-policy.d.ts +12 -17
  487. package/dist/lib/secrets-policy.js +5 -5
  488. package/dist/lib/secrets-types.d.ts +3 -2
  489. package/dist/lib/secrets-types.js +2 -1
  490. package/dist/lib/self-heal/checks/install-staging.js +1 -1
  491. package/dist/lib/self-heal/registry.d.ts +3 -2
  492. package/dist/lib/self-heal/types.d.ts +1 -1
  493. package/dist/lib/self-heal/types.js +1 -1
  494. package/dist/lib/self-update.d.ts +5 -5
  495. package/dist/lib/self-update.js +4 -4
  496. package/dist/lib/session/active.js +9 -3
  497. package/dist/lib/session/actor-sidecar.d.ts +3 -2
  498. package/dist/lib/session/artifacts.d.ts +0 -2
  499. package/dist/lib/session/artifacts.js +1 -1
  500. package/dist/lib/session/bash-command.d.ts +2 -7
  501. package/dist/lib/session/bundle.d.ts +4 -6
  502. package/dist/lib/session/bundle.js +1 -5
  503. package/dist/lib/session/cloud.d.ts +0 -4
  504. package/dist/lib/session/cloud.js +2 -15
  505. package/dist/lib/session/db.d.ts +2 -1
  506. package/dist/lib/session/db.js +39 -4
  507. package/dist/lib/session/detached.d.ts +2 -1
  508. package/dist/lib/session/detached.js +2 -2
  509. package/dist/lib/session/digest.d.ts +2 -2
  510. package/dist/lib/session/digest.js +1 -1
  511. package/dist/lib/session/discover.js +7 -2
  512. package/dist/lib/session/fork.d.ts +3 -2
  513. package/dist/lib/session/highlights.d.ts +6 -5
  514. package/dist/lib/session/hook-sessions.d.ts +12 -1
  515. package/dist/lib/session/hook-sessions.js +139 -6
  516. package/dist/lib/session/host-link.d.ts +2 -1
  517. package/dist/lib/session/inject.d.ts +1 -1
  518. package/dist/lib/session/inject.js +1 -1
  519. package/dist/lib/session/insights.d.ts +3 -15
  520. package/dist/lib/session/insights.js +2 -2
  521. package/dist/lib/session/local-tmux-attach.d.ts +2 -18
  522. package/dist/lib/session/local-tmux-attach.js +1 -1
  523. package/dist/lib/session/migrations.d.ts +0 -1
  524. package/dist/lib/session/migrations.js +1 -1
  525. package/dist/lib/session/mirror.d.ts +5 -8
  526. package/dist/lib/session/mirror.js +2 -2
  527. package/dist/lib/session/parse.d.ts +1 -32
  528. package/dist/lib/session/parse.js +4 -4
  529. package/dist/lib/session/pid-registry.d.ts +18 -5
  530. package/dist/lib/session/pid-registry.js +164 -17
  531. package/dist/lib/session/presence.d.ts +2 -1
  532. package/dist/lib/session/process-view.d.ts +25 -0
  533. package/dist/lib/session/process-view.js +176 -0
  534. package/dist/lib/session/projection.d.ts +13 -0
  535. package/dist/lib/session/projection.js +101 -0
  536. package/dist/lib/session/prompt.d.ts +3 -2
  537. package/dist/lib/session/prompt.js +38 -1
  538. package/dist/lib/session/recovery.d.ts +3 -2
  539. package/dist/lib/session/remote/peer-stream.d.ts +2 -5
  540. package/dist/lib/session/remote/peer-stream.js +2 -2
  541. package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
  542. package/dist/lib/session/remote/remote-list.d.ts +5 -5
  543. package/dist/lib/session/remote/remote.d.ts +4 -3
  544. package/dist/lib/session/remote/watch.d.ts +10 -7
  545. package/dist/lib/session/remote/watch.js +10 -6
  546. package/dist/lib/session/remote-active.d.ts +2 -1
  547. package/dist/lib/session/render.d.ts +2 -2
  548. package/dist/lib/session/render.js +1 -1
  549. package/dist/lib/session/resume-owner.d.ts +1 -1
  550. package/dist/lib/session/resume-owner.js +1 -1
  551. package/dist/lib/session/run-names.d.ts +2 -1
  552. package/dist/lib/session/session-cache.d.ts +7 -26
  553. package/dist/lib/session/session-cache.js +17 -8
  554. package/dist/lib/session/share-html.d.ts +1 -21
  555. package/dist/lib/session/share-html.js +1 -1
  556. package/dist/lib/session/shell-programs.d.ts +2 -1
  557. package/dist/lib/session/state.d.ts +41 -8
  558. package/dist/lib/session/state.js +112 -11
  559. package/dist/lib/session/stream-render.d.ts +2 -1
  560. package/dist/lib/session/sync/agents.d.ts +0 -4
  561. package/dist/lib/session/sync/agents.js +0 -0
  562. package/dist/lib/session/sync/backend.d.ts +5 -5
  563. package/dist/lib/session/sync/managed-config.d.ts +0 -8
  564. package/dist/lib/session/sync/managed-key.d.ts +0 -2
  565. package/dist/lib/session/sync/managed-key.js +1 -1
  566. package/dist/lib/session/sync/r2.d.ts +4 -1
  567. package/dist/lib/session/sync/r2.js +4 -7
  568. package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
  569. package/dist/lib/session/tail.d.ts +2 -1
  570. package/dist/lib/session/team-filter.d.ts +1 -1
  571. package/dist/lib/session/testdata/pid-registry-namespace.d.ts +1 -0
  572. package/dist/lib/session/testdata/pid-registry-namespace.js +27 -0
  573. package/dist/lib/session/testdata/process-view-namespace.d.ts +1 -0
  574. package/dist/lib/session/testdata/process-view-namespace.js +56 -0
  575. package/dist/lib/session/testdata/process-view-private.d.ts +1 -0
  576. package/dist/lib/session/testdata/process-view-private.js +12 -0
  577. package/dist/lib/session/throughput.d.ts +2 -3
  578. package/dist/lib/session/throughput.js +1 -1
  579. package/dist/lib/session/timeline-pass.d.ts +3 -42
  580. package/dist/lib/session/timeline-pass.js +4 -4
  581. package/dist/lib/session/timeline.d.ts +3 -13
  582. package/dist/lib/session/timeline.js +3 -3
  583. package/dist/lib/session/tool-calls.d.ts +2 -2
  584. package/dist/lib/session/tool-calls.js +1 -1
  585. package/dist/lib/session/tool-index.d.ts +0 -8
  586. package/dist/lib/session/tool-index.js +2 -2
  587. package/dist/lib/session/tool-store.d.ts +2 -1
  588. package/dist/lib/session/trajectory-compare.d.ts +2 -1
  589. package/dist/lib/session/trajectory-lineage.d.ts +2 -1
  590. package/dist/lib/session/trajectory-text.d.ts +3 -2
  591. package/dist/lib/session/trajectory.d.ts +2 -1
  592. package/dist/lib/session/viewing-in.d.ts +2 -1
  593. package/dist/lib/settings-manifest.d.ts +2 -1
  594. package/dist/lib/share/delete.d.ts +5 -4
  595. package/dist/lib/share/html.d.ts +0 -2
  596. package/dist/lib/share/html.js +9 -9
  597. package/dist/lib/share/http-error.d.ts +3 -2
  598. package/dist/lib/share/og.d.ts +2 -1
  599. package/dist/lib/share/provision.d.ts +2 -2
  600. package/dist/lib/share/publish.d.ts +4 -13
  601. package/dist/lib/share/publish.js +2 -2
  602. package/dist/lib/shim-heal.d.ts +1 -5
  603. package/dist/lib/shim-heal.js +0 -6
  604. package/dist/lib/smart-launch.d.ts +4 -5
  605. package/dist/lib/smart-launch.js +1 -1
  606. package/dist/lib/snapshot.d.ts +3 -2
  607. package/dist/lib/ssh-exec.d.ts +5 -4
  608. package/dist/lib/ssh-tunnel.d.ts +3 -2
  609. package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
  610. package/dist/lib/staleness/checkers/permissions.js +1 -1
  611. package/dist/lib/staleness/fingerprint.d.ts +0 -7
  612. package/dist/lib/staleness/fingerprint.js +1 -1
  613. package/dist/lib/staleness/prune.d.ts +3 -2
  614. package/dist/lib/staleness/registry.d.ts +1 -1
  615. package/dist/lib/staleness/writers/sources.d.ts +0 -8
  616. package/dist/lib/staleness/writers/sources.js +1 -1
  617. package/dist/lib/startup/command-registry.js +1 -1
  618. package/dist/lib/state.d.ts +1 -3
  619. package/dist/lib/state.js +1 -4
  620. package/dist/lib/subagents-registry.d.ts +4 -3
  621. package/dist/lib/subagents.d.ts +2 -1
  622. package/dist/lib/subagents.js +3 -2
  623. package/dist/lib/summarizer/pass.d.ts +3 -6
  624. package/dist/lib/summarizer/pass.js +2 -2
  625. package/dist/lib/summarizer/summarize.d.ts +4 -3
  626. package/dist/lib/sync-passphrase.d.ts +3 -2
  627. package/dist/lib/sync-status.d.ts +3 -16
  628. package/dist/lib/sync-status.js +2 -2
  629. package/dist/lib/sync-umbrella.d.ts +4 -3
  630. package/dist/lib/system-run-sync.d.ts +2 -1
  631. package/dist/lib/teams/agents.d.ts +2 -4
  632. package/dist/lib/teams/agents.js +1 -1
  633. package/dist/lib/teams/forEach.d.ts +3 -2
  634. package/dist/lib/teams/pr-watch.d.ts +4 -11
  635. package/dist/lib/teams/pr-watch.js +4 -4
  636. package/dist/lib/teams/registry.d.ts +2 -3
  637. package/dist/lib/teams/registry.js +1 -1
  638. package/dist/lib/teams/remoteWorktree.d.ts +0 -16
  639. package/dist/lib/teams/remoteWorktree.js +3 -3
  640. package/dist/lib/teams/scheduler.d.ts +6 -5
  641. package/dist/lib/teams/scheduler.js +1 -1
  642. package/dist/lib/teams/supervisor.d.ts +4 -3
  643. package/dist/lib/teams/worktree.d.ts +0 -9
  644. package/dist/lib/teams/worktree.js +0 -32
  645. package/dist/lib/term-client.d.ts +44 -0
  646. package/dist/lib/term-client.js +117 -0
  647. package/dist/lib/terminal/inject.d.ts +3 -16
  648. package/dist/lib/terminal/inject.js +1 -29
  649. package/dist/lib/terminal/resolve.d.ts +3 -9
  650. package/dist/lib/terminal/resolve.js +3 -7
  651. package/dist/lib/tmux/binary.d.ts +2 -1
  652. package/dist/lib/tmux/orphan-reap.d.ts +6 -7
  653. package/dist/lib/tmux/orphan-reap.js +1 -1
  654. package/dist/lib/tmux/session.d.ts +4 -3
  655. package/dist/lib/traces/classify.d.ts +3 -2
  656. package/dist/lib/traces/config.d.ts +0 -8
  657. package/dist/lib/traces/insights.d.ts +2 -1
  658. package/dist/lib/traces/phenotype.d.ts +3 -3
  659. package/dist/lib/traces/provision.d.ts +1 -3
  660. package/dist/lib/traces/provision.js +1 -1
  661. package/dist/lib/traces/schema2-build.d.ts +1 -1
  662. package/dist/lib/traces/schema2-danger.d.ts +2 -1
  663. package/dist/lib/traces/schema2.d.ts +5 -4
  664. package/dist/lib/traces/segments.d.ts +4 -20
  665. package/dist/lib/traces/segments.js +3 -3
  666. package/dist/lib/traces/sync.d.ts +2 -3
  667. package/dist/lib/traces/sync.js +1 -1
  668. package/dist/lib/triggers/handlers.d.ts +4 -13
  669. package/dist/lib/triggers/handlers.js +1 -1
  670. package/dist/lib/triggers/webhook.d.ts +5 -27
  671. package/dist/lib/triggers/webhook.js +4 -4
  672. package/dist/lib/types.d.ts +3 -3
  673. package/dist/lib/usage-refresh.d.ts +4 -10
  674. package/dist/lib/usage-refresh.js +3 -8
  675. package/dist/lib/verbs.d.ts +2 -1
  676. package/dist/lib/version-duplicates.d.ts +2 -3
  677. package/dist/lib/version-duplicates.js +3 -33
  678. package/dist/lib/version.d.ts +2 -1
  679. package/dist/lib/warn-unpushed.d.ts +2 -1
  680. package/dist/lib/watchdog/history.d.ts +3 -2
  681. package/dist/lib/watchdog/log.d.ts +0 -6
  682. package/dist/lib/watchdog/log.js +1 -1
  683. package/dist/lib/watchdog/rotate.d.ts +2 -26
  684. package/dist/lib/watchdog/rotate.js +4 -12
  685. package/dist/lib/watchdog/runner.d.ts +0 -7
  686. package/dist/lib/watchdog/runner.js +4 -4
  687. package/dist/lib/watchdog/service.d.ts +2 -2
  688. package/dist/lib/watchdog/service.js +1 -1
  689. package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
  690. package/dist/lib/watchdog/watchdog.d.ts +2 -1
  691. package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
  692. package/dist/lib/workflows-registry.d.ts +3 -2
  693. package/dist/lib/workflows.d.ts +4 -7
  694. package/dist/lib/workflows.js +1 -1
  695. package/dist/lib/worktree/held.d.ts +4 -28
  696. package/dist/lib/worktree/held.js +3 -3
  697. package/package.json +2 -3
  698. package/scripts/postinstall.js +5 -4
  699. package/dist/commands/pty.d.ts +0 -20
  700. package/dist/commands/pty.js +0 -404
  701. package/dist/lib/config-machine-keys.d.ts +0 -14
  702. package/dist/lib/config-machine-keys.js +0 -21
  703. package/dist/lib/pty-client.d.ts +0 -49
  704. package/dist/lib/pty-client.js +0 -315
  705. package/dist/lib/pty-server.d.ts +0 -59
  706. package/dist/lib/pty-server.js +0 -653
@@ -0,0 +1,173 @@
1
+ /**
2
+ * `agents projects prs <PROJECT>` — every OPEN pull request across a project's
3
+ * attached repositories, as one machine-readable envelope for AGI Menu.
4
+ *
5
+ * Why this exists: `agents projects status`'s `openPrs` only carries the PRs the
6
+ * fleet's own SESSIONS opened (the session rollup), so a project's board of open
7
+ * PRs — drafts, other people's PRs, anything not tied to a live session — is
8
+ * invisible to it. This reads the truth straight from GitHub.
9
+ *
10
+ * Design constraints (see docs conventions + the contract in
11
+ * `.agents/scratch/contracts-status.json`):
12
+ * - Repos come ONLY from the ProjectDef's own attached slugs
13
+ * ({@link projectRepoSlugs}); `--repo` is refused unless it is one of them.
14
+ * - The list is REST + paginated (`gh api repos/{repo}/pulls?state=open
15
+ * --paginate`), includes drafts, and applies NO author filter — it is the
16
+ * whole open board, not this user's mergeable set. REST is the budget the
17
+ * fleet's GraphQL poll loops do not drain (PHNX-3501).
18
+ * - `checks` / `reviewDecision` are null in the list; `--number N` enriches
19
+ * exactly that one PR against its live head SHA (checks via REST
20
+ * {@link rollupForSha}, reviewDecision via a single lazy `gh pr view`).
21
+ * - A per-repo fetch failure is reported as `repositories[].error` and flips
22
+ * `partial` — it is NEVER relabeled as "zero open PRs".
23
+ */
24
+ import { ghExec, canonicalizeRepo, projectRepoSlugs } from './pr-mergeable.js';
25
+ import { rollupForSha } from './rest.js';
26
+ /** The jq projection that flattens a REST PR object into {@link ProjectPr}'s scalars. */
27
+ const PR_JQ = '{number, title, url: .html_url, isDraft: (.draft // false), ' +
28
+ 'state: (.state // "" | ascii_upcase), updatedAt: (.updated_at // ""), ' +
29
+ 'login: (.user.login // ""), avatarUrl: (.user.avatar_url // ""), ' +
30
+ 'headRefName: (.head.ref // ""), baseRefName: (.base.ref // ""), ' +
31
+ 'headSha: (.head.sha // ""), body: (.body // "")}';
32
+ /** Parse newline-delimited JSON (gh `--jq` streams one object per line/page). */
33
+ function parseNdjson(out) {
34
+ const rows = [];
35
+ for (const line of out.split('\n')) {
36
+ const t = line.trim();
37
+ if (!t)
38
+ continue;
39
+ rows.push(JSON.parse(t));
40
+ }
41
+ return rows;
42
+ }
43
+ /** Build a {@link ProjectPr} from the flattened jq row. checks/reviewDecision start null. */
44
+ export function rowToProjectPr(row) {
45
+ return {
46
+ number: Number(row.number),
47
+ title: String(row.title ?? ''),
48
+ url: String(row.url ?? ''),
49
+ isDraft: Boolean(row.isDraft),
50
+ state: String(row.state ?? ''),
51
+ updatedAt: String(row.updatedAt ?? ''),
52
+ author: { login: String(row.login ?? ''), avatarUrl: String(row.avatarUrl ?? '') },
53
+ headRefName: String(row.headRefName ?? ''),
54
+ baseRefName: String(row.baseRefName ?? ''),
55
+ headSha: String(row.headSha ?? ''),
56
+ body: String(row.body ?? ''),
57
+ checks: null,
58
+ reviewDecision: null,
59
+ };
60
+ }
61
+ /**
62
+ * Every OPEN PR for one repo, over REST, fully paginated, drafts included, no
63
+ * author filter. `--paginate` follows Link headers; `--jq` streams one flattened
64
+ * object per line so a multi-page result stays parseable.
65
+ */
66
+ export async function listOpenPrs(repo, gh = ghExec) {
67
+ const out = await gh([
68
+ 'api',
69
+ `repos/${repo}/pulls?state=open&per_page=100`,
70
+ '--paginate',
71
+ '--jq',
72
+ `.[] | ${PR_JQ}`,
73
+ ]);
74
+ return parseNdjson(out).map(rowToProjectPr);
75
+ }
76
+ /** One PR by number, over REST (`GET repos/{repo}/pulls/{n}`). Throws if it is gone. */
77
+ export async function fetchOnePr(repo, number, gh = ghExec) {
78
+ const out = await gh(['api', `repos/${repo}/pulls/${number}`, '--jq', PR_JQ]);
79
+ const rows = parseNdjson(out);
80
+ if (rows.length === 0)
81
+ throw new Error(`no PR ${repo}#${number}`);
82
+ return rowToProjectPr(rows[0]);
83
+ }
84
+ /**
85
+ * GitHub's computed review decision AND the PR's current head oid, from ONE lazy
86
+ * `gh pr view` (GraphQL). reviewDecision is deliberately NOT REST-derived: it is
87
+ * a branch-protection / CODEOWNERS decision REST cannot compute, and
88
+ * approximating it could mislead a merge decision (PHNX-3501 note). `headRefOid`
89
+ * rides the same call so the checks and the review verdict can be anchored to the
90
+ * SAME head — a PR that advanced between the REST read and this call would
91
+ * otherwise pair a stale check rollup with a current review. One call per
92
+ * `--number`, never a poll loop, so it does not drain the shared GraphQL budget.
93
+ */
94
+ export async function fetchReviewAndHead(repo, number, gh = ghExec) {
95
+ const out = (await gh([
96
+ 'pr', 'view', String(number), '--repo', repo, '--json', 'reviewDecision,headRefOid',
97
+ ])).trim();
98
+ const parsed = out ? JSON.parse(out) : {};
99
+ return {
100
+ reviewDecision: parsed.reviewDecision || null,
101
+ headRefOid: parsed.headRefOid || null,
102
+ };
103
+ }
104
+ /**
105
+ * Enrich one PR with its checks + reviewDecision, both anchored to the SAME head.
106
+ * `gh pr view` gives the authoritative current head oid; the check rollup is run
107
+ * against THAT (not the possibly-staler REST head SHA), and `headSha` is updated
108
+ * to match, so checks and reviewDecision can never describe two different heads.
109
+ */
110
+ export async function enrichPr(repo, pr, gh = ghExec) {
111
+ const { reviewDecision, headRefOid } = await fetchReviewAndHead(repo, pr.number, gh);
112
+ const head = headRefOid || pr.headSha;
113
+ const checks = await rollupForSha(repo, head, gh);
114
+ return { ...pr, headSha: head, checks, reviewDecision };
115
+ }
116
+ /**
117
+ * Resolve which repositories a run targets, restricted to the project's own
118
+ * attached repos. Slugs are canonicalized (a renamed repo lists nothing under
119
+ * its old name — `phnx-labs/agents-cli` → `phnx-labs/agi-cli`). A `--repo` that
120
+ * is not one of the project's attached repos (raw or canonical) is refused.
121
+ */
122
+ export async function resolveTargetSlugs(def, repo, gh) {
123
+ const raw = projectRepoSlugs([def]);
124
+ // Canonicalize CONCURRENTLY — each `gh repo view` can take up to gh's 30s
125
+ // timeout, so a sequential walk of N repos would stack N×30s and blow past a
126
+ // native caller's bounded deadline. Repo count per project is small.
127
+ const canonPairs = await Promise.all(raw.map(async (slug) => [slug, await canonicalizeRepo(slug, gh)]));
128
+ const canon = new Map(canonPairs);
129
+ const canonical = [...new Set(canon.values())];
130
+ if (!repo)
131
+ return canonical;
132
+ const requested = await canonicalizeRepo(repo, gh);
133
+ const attached = raw.includes(repo) ||
134
+ canonical.includes(requested) ||
135
+ [...canon.keys()].some((k) => k === repo);
136
+ if (!attached) {
137
+ const list = raw.length ? raw.join(', ') : '(none)';
138
+ throw new Error(`Repo "${repo}" is not attached to project "${def.name}". Attached repos: ${list}.`);
139
+ }
140
+ return [requested];
141
+ }
142
+ /**
143
+ * Build the full envelope. `number` (which the command requires alongside
144
+ * `repo`) fetches and enriches exactly that one PR; otherwise every target
145
+ * repo's open PRs are listed with checks/reviewDecision left null.
146
+ */
147
+ export async function buildProjectPrs(def, opts = {}, gh = ghExec) {
148
+ const project = { name: def.name, linearProjectId: def.linear?.projectId ?? null };
149
+ const slugs = await resolveTargetSlugs(def, opts.repo, gh);
150
+ // Fetch repos in PARALLEL so a native caller's overall deadline scales with the
151
+ // slowest repo, not the sum — a serial multi-repo walk of 30s gh calls can blow
152
+ // past a bounded caller timeout and lose the whole result. Repo count is small
153
+ // (a project's attached repos), so this is a bounded fan-out, not unbounded.
154
+ const repositories = await Promise.all(slugs.map(async (slug) => {
155
+ try {
156
+ let pullRequests;
157
+ if (opts.number !== undefined) {
158
+ const pr = await fetchOnePr(slug, opts.number, gh);
159
+ pullRequests = [await enrichPr(slug, pr, gh)];
160
+ }
161
+ else {
162
+ pullRequests = await listOpenPrs(slug, gh);
163
+ }
164
+ return { slug, pullRequests, error: null };
165
+ }
166
+ catch (err) {
167
+ // A fetch failure is reported, never relabeled as zero open PRs.
168
+ return { slug, pullRequests: [], error: err instanceof Error ? err.message : String(err) };
169
+ }
170
+ }));
171
+ const partial = repositories.some((r) => r.error !== null);
172
+ return { project, repositories, partial };
173
+ }
@@ -27,7 +27,7 @@ export interface RollupItem extends StatusCheck {
27
27
  link?: string;
28
28
  }
29
29
  /** PR head identity — the SHA every check query must anchor to. */
30
- export interface PrHead {
30
+ interface PrHead {
31
31
  number: number;
32
32
  sha: string;
33
33
  }
@@ -62,3 +62,4 @@ export declare function rollupForSha(repo: string, sha: string, gh?: GhExec): Pr
62
62
  export declare function pendingCheckSuites(repo: string, sha: string, gh?: GhExec): Promise<number>;
63
63
  /** True when gh stderr is the rate-limit outcome the shim should switch to REST on. */
64
64
  export declare function isRateLimitError(stderr: string): boolean;
65
+ export {};
@@ -1,8 +1,9 @@
1
1
  import type { AgentId } from '../types.js';
2
- export interface ResolvedConfigVersion {
2
+ interface ResolvedConfigVersion {
3
3
  /** The version to pin, or null when unresolved / not installed. */
4
4
  version: string | null;
5
5
  /** The version home for that version, or null. */
6
6
  versionHome: string | null;
7
7
  }
8
8
  export declare function resolveConfigVersion(agent: AgentId, cwd: string, optionsVersion?: string): ResolvedConfigVersion;
9
+ export {};
@@ -13,16 +13,16 @@
13
13
  * working until T4 folds connect into `accounts add`.
14
14
  */
15
15
  import type { AgentId } from './types.js';
16
- export type HarnessIdentityKind = 'strong' | 'email' | 'opaque';
16
+ type HarnessIdentityKind = 'strong' | 'email' | 'opaque';
17
17
  /**
18
18
  * Durable worker credential, or `none` when the harness must log in per box.
19
19
  * Codex is both: an API key (portable, bills the API) OR a per-device
20
20
  * ChatGPT-plan device-auth login (the plan seat; never stored in the reserved
21
21
  * store because it is a rotating session).
22
22
  */
23
- export type HarnessWorkerKind = 'setup-token' | 'none' | `api-key:${string}` | `per-device${'' | `:${string}`}`;
24
- export type HarnessWorker = HarnessWorkerKind | HarnessWorkerKind[];
25
- export interface HarnessAuthCapability {
23
+ type HarnessWorkerKind = 'setup-token' | 'none' | `api-key:${string}` | `per-device${'' | `:${string}`}`;
24
+ type HarnessWorker = HarnessWorkerKind | HarnessWorkerKind[];
25
+ interface HarnessAuthCapability {
26
26
  /** argv after the harness binary to start native login, or null when there is no finite login command. */
27
27
  login: string[] | null;
28
28
  /** argv to probe login status, or null when the CLI has no status command. */
@@ -59,3 +59,4 @@ export interface LoginInvocation {
59
59
  hint?: string;
60
60
  }
61
61
  export declare const LOGIN_INVOCATIONS: Partial<Record<AgentId, LoginInvocation>>;
62
+ export {};
@@ -40,7 +40,7 @@ export declare const CONNECTION_TEST_PROMPT = "say alive in one word";
40
40
  */
41
41
  export declare function classifyConnectionOutput(exitCode: number | null, output: string): ConnectionTestResult;
42
42
  /** Options for {@link runHarnessConnectionTest}. */
43
- export interface ConnectionTestOptions {
43
+ interface ConnectionTestOptions {
44
44
  /** Agent-side timeout passed to `agents run --timeout`. Default `60s`. */
45
45
  timeout?: string;
46
46
  /** Hard wall-clock cap (ms) on the child, above the agent timeout. Default 90s. */
@@ -55,3 +55,4 @@ export interface ConnectionTestOptions {
55
55
  * (the request hung).
56
56
  */
57
57
  export declare function runHarnessConnectionTest(name: string, opts?: ConnectionTestOptions): Promise<ConnectionTestResult>;
58
+ export {};
@@ -69,8 +69,8 @@ export interface HealResult {
69
69
  refreshedPlugins: PluginRefreshResult[];
70
70
  skippedPlugins: PluginRefreshSkip[];
71
71
  }
72
- export interface HealOptions {
73
- /** 'full' (doctor --fix): fix drift + refresh unknown-baseline plugins.
72
+ interface HealOptions {
73
+ /** 'full' (agents sync): fix drift + refresh unknown-baseline plugins.
74
74
  * 'safe' (daemon): missing + invalid-manifest + unmodified refresh only. */
75
75
  mode: 'full' | 'safe';
76
76
  /** Resolution cwd. Defaults to the home dir so no project layer is ever
@@ -85,27 +85,10 @@ export interface HealOptions {
85
85
  }
86
86
  /** True when a heal pass made (or would make) any change at all. */
87
87
  export declare function healChangedAnything(r: HealResult): boolean;
88
- /** One-line summary of a heal pass for daemon logs. */
89
- export declare function summarizeHeal(r: HealResult): string;
90
- /**
91
- * Fire a branded desktop notification when a background heal did something
92
- * noteworthy. Routed through the MenubarHelper companion (notify-desktop.ts) so
93
- * it carries the agents-cli mark; clicking opens the runs folder
94
- * (~/.agents/.history/runs, via the `routines:list` action the companion
95
- * understands). Best-effort — a missing
96
- * notifier or no display is swallowed. Silent when the pass auto-fixed everything
97
- * and nothing needs the operator (no point pinging them for routine self-healing).
98
- */
99
- export declare function notifyHeal(r: HealResult): void;
100
- /**
101
- * Strip Claude-invalid bare-name `skills`/`commands` fields from every central
102
- * plugin's SOURCE plugin.json. Unambiguously safe (Claude auto-discovers both
103
- * from their directories) and the precondition for those plugins loading at all.
104
- */
105
- export declare function repairCentralPluginManifests(dryRun?: boolean): ManifestRepairResult[];
106
88
  /**
107
89
  * Run a heal pass. Repairs the central plugin layer once (manifest + stale
108
90
  * refresh), then reconciles every targeted (agent, version) home against its
109
91
  * live diff. Returns a full account of what changed (or would, under dryRun).
110
92
  */
111
93
  export declare function heal(opts: HealOptions): Promise<HealResult>;
94
+ export {};
package/dist/lib/heal.js CHANGED
@@ -31,7 +31,6 @@ import { repairPluginManifestFile } from './plugins/plugin-marketplace.js';
31
31
  import * as fs from 'fs';
32
32
  import * as path from 'path';
33
33
  import * as os from 'os';
34
- import { notifyDesktop } from './menubar/notify-desktop.js';
35
34
  // ─── diff → selection mapping ────────────────────────────────────────────────
36
35
  // Which ResourceSelection key each healable diff kind writes through. `rules`
37
36
  // re-syncs via the whole-memory channel (not name-scoped); `promptcuts` is not
@@ -55,49 +54,13 @@ export function healChangedAnything(r) {
55
54
  r.repairedManifests.length > 0 ||
56
55
  r.refreshedPlugins.length > 0);
57
56
  }
58
- /** One-line summary of a heal pass for daemon logs. */
59
- export function summarizeHeal(r) {
60
- const parts = [];
61
- const healed = totalHealed(r);
62
- if (healed > 0)
63
- parts.push(`${healed} resource(s) healed`);
64
- if (r.repairedManifests.length > 0)
65
- parts.push(`${r.repairedManifests.length} manifest(s) repaired`);
66
- if (r.refreshedPlugins.length > 0)
67
- parts.push(`${r.refreshedPlugins.length} plugin(s) refreshed`);
68
- if (r.skippedPlugins.length > 0)
69
- parts.push(`${r.skippedPlugins.length} plugin(s) need attention`);
70
- return parts.length > 0 ? parts.join(', ') : 'nothing to heal';
71
- }
72
- /**
73
- * Fire a branded desktop notification when a background heal did something
74
- * noteworthy. Routed through the MenubarHelper companion (notify-desktop.ts) so
75
- * it carries the agents-cli mark; clicking opens the runs folder
76
- * (~/.agents/.history/runs, via the `routines:list` action the companion
77
- * understands). Best-effort — a missing
78
- * notifier or no display is swallowed. Silent when the pass auto-fixed everything
79
- * and nothing needs the operator (no point pinging them for routine self-healing).
80
- */
81
- export function notifyHeal(r) {
82
- const needsAttention = r.skippedPlugins.length;
83
- const healed = totalHealed(r) + r.repairedManifests.length + r.refreshedPlugins.length;
84
- if (needsAttention === 0 && healed === 0)
85
- return;
86
- const title = needsAttention > 0
87
- ? `${needsAttention} plugin${needsAttention === 1 ? '' : 's'} need attention`
88
- : 'agents: auto-healed config gaps';
89
- const body = needsAttention > 0
90
- ? `${summarizeHeal(r)}. Run: agents sync`
91
- : summarizeHeal(r);
92
- notifyDesktop({ title, body, action: 'routines:list' });
93
- }
94
57
  // ─── central plugin layer (version-independent, runs once per heal) ──────────
95
58
  /**
96
59
  * Strip Claude-invalid bare-name `skills`/`commands` fields from every central
97
60
  * plugin's SOURCE plugin.json. Unambiguously safe (Claude auto-discovers both
98
61
  * from their directories) and the precondition for those plugins loading at all.
99
62
  */
100
- export function repairCentralPluginManifests(dryRun = false) {
63
+ function repairCentralPluginManifests(dryRun = false) {
101
64
  const out = [];
102
65
  for (const p of discoverPlugins()) {
103
66
  const manifestPath = path.join(p.root, '.claude-plugin', 'plugin.json');
@@ -265,7 +228,7 @@ export async function heal(opts) {
265
228
  // unattended from the daemon (~30s after start, then every ~6h) — a sweep that
266
229
  // walked into an isolated home would quietly refill it with shared commands,
267
230
  // skills, hooks, MCP config and permissions. Explicitly NAMED versions
268
- // (`agents doctor <agent>@<version> --fix`) are honoured as-is: naming the
231
+ // (`agents sync <agent>@<version>`) are honoured as-is: naming the
269
232
  // version is the operator's consent.
270
233
  const sweep = (a) => listInstalledVersions(a).filter((v) => !isVersionIsolated(a, v));
271
234
  const targets = opts.agent
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { Command } from 'commander';
8
8
  /** Description of a named command group rendered as its own section in help output. */
9
- export interface CommandGroup {
9
+ interface CommandGroup {
10
10
  /** Section heading, e.g. 'Bundle commands'. */
11
11
  title: string;
12
12
  /** Subcommand names (in desired display order) that belong to this group. */
@@ -28,7 +28,7 @@ export declare const FRONT_DOOR_COMMAND_GROUPS: readonly CommandGroup[];
28
28
  /** Mark the root program so its help only renders front-door groups + a pointer. */
29
29
  export declare function setCompactRootHelp(program: Command): void;
30
30
  /** Examples + Notes blocks attached to a command via setHelpSections. */
31
- export interface HelpSections {
31
+ interface HelpSections {
32
32
  examples?: string;
33
33
  notes?: string;
34
34
  }
@@ -45,3 +45,4 @@ export declare function setHelpSections(cmd: Command, sections: HelpSections): v
45
45
  export declare function getHelpSections(cmd: Command): Readonly<HelpSections>;
46
46
  /** Apply standardized help formatting to the root command and all subcommands. */
47
47
  export declare function applyGlobalHelpConventions(root: Command): void;
48
+ export {};
@@ -81,10 +81,6 @@ export declare function helperAssetUrls(spec: HelperSpec, version: string): {
81
81
  /** Extract `TeamIdentifier=XXXX` from `codesign -dv --verbose=4` output (which is
82
82
  * emitted on stderr). Returns null when absent (ad-hoc / unsigned). */
83
83
  export declare function parseTeamId(codesignInfo: string): string | null;
84
- /** Read the bundle's designated requirement string (`codesign -d --requirements -`).
85
- * codesign writes it to stdout, but capture both streams so a diagnostic on
86
- * stderr can never make the pin-check read empty and falsely pass. */
87
- export declare function readDesignatedRequirement(appPath: string): string;
88
84
  /**
89
85
  * Pure predicate (no I/O) behind the DR pin: does the requirement string pin
90
86
  * BOTH the expected CFBundleIdentifier and the Developer ID Team? Returns null
@@ -94,14 +90,6 @@ export declare function readDesignatedRequirement(appPath: string): string;
94
90
  * + team substring check against the same requirement string).
95
91
  */
96
92
  export declare function checkDesignatedRequirement(req: string, bundleId: string, teamId: string): string | null;
97
- /**
98
- * Verify the bundle's designated requirement pins the expected CFBundleIdentifier
99
- * AND Developer ID Team. macOS re-validates each new version against this stored
100
- * requirement to keep an Accessibility grant alive across upgrades; a downloaded
101
- * bundle whose DR drops either pin would silently revoke that grant on the next
102
- * paste, so refuse it.
103
- */
104
- export declare function verifyDesignatedRequirement(appPath: string, bundleId: string, teamId: string): void;
105
93
  /**
106
94
  * Verify a helper `.app` bundle is intact, signed by the expected Developer ID
107
95
  * Team, (for the menu-bar helper) pinned by its designated requirement, and
@@ -73,7 +73,7 @@ export function parseTeamId(codesignInfo) {
73
73
  /** Read the bundle's designated requirement string (`codesign -d --requirements -`).
74
74
  * codesign writes it to stdout, but capture both streams so a diagnostic on
75
75
  * stderr can never make the pin-check read empty and falsely pass. */
76
- export function readDesignatedRequirement(appPath) {
76
+ function readDesignatedRequirement(appPath) {
77
77
  const r = spawnSync('/usr/bin/codesign', ['-d', '--requirements', '-', appPath], { encoding: 'utf8' });
78
78
  return `${r.stdout ?? ''}${r.stderr ?? ''}`;
79
79
  }
@@ -105,7 +105,7 @@ export function checkDesignatedRequirement(req, bundleId, teamId) {
105
105
  * bundle whose DR drops either pin would silently revoke that grant on the next
106
106
  * paste, so refuse it.
107
107
  */
108
- export function verifyDesignatedRequirement(appPath, bundleId, teamId) {
108
+ function verifyDesignatedRequirement(appPath, bundleId, teamId) {
109
109
  const err = checkDesignatedRequirement(readDesignatedRequirement(appPath), bundleId, teamId);
110
110
  if (err)
111
111
  throw new Error(err);
@@ -29,7 +29,7 @@
29
29
  /** The helpers that have their own release train. */
30
30
  export type HelperName = 'menubar';
31
31
  /** One helper's release identity. */
32
- export interface HelperRelease {
32
+ interface HelperRelease {
33
33
  /** Tag prefix — the release is `<tagPrefix>/v<version>`. */
34
34
  tagPrefix: string;
35
35
  /**
@@ -57,3 +57,4 @@ export declare const HELPER_RELEASES: Readonly<Record<HelperName, HelperRelease>
57
57
  export declare function helperTag(helper: HelperName, version: string): string;
58
58
  /** The floor build for one helper — the version used when nothing resolves higher. */
59
59
  export declare function helperFloor(helper: HelperName): string;
60
+ export {};
@@ -41,7 +41,7 @@
41
41
  * it would claim a distribution responsibility agents-cli no longer has.
42
42
  */
43
43
  export const HELPER_RELEASES = {
44
- menubar: { tagPrefix: 'menubar', floor: '1.3.0' },
44
+ menubar: { tagPrefix: 'menubar', floor: '1.4.0' },
45
45
  };
46
46
  /** The release tag for one helper at one version, e.g. `menubar/v1.0.0`. */
47
47
  export function helperTag(helper, version) {
@@ -29,7 +29,7 @@ export declare function toPortableCommand(absPath: string, home?: string, sep?:
29
29
  */
30
30
  export declare function deduplicateVersionHookCommands(commands: string[], activeVersionHome: string): string[];
31
31
  import type { AgentId, HookCacheConfig, HookMatches, InstalledHook, ManifestHook } from '../types.js';
32
- export type HookEntry = {
32
+ type HookEntry = {
33
33
  name: string;
34
34
  scriptPath: string;
35
35
  dataFile?: string;
@@ -64,15 +64,6 @@ export declare function inspectDuplicateVersionHooks(cwd?: string): DuplicateVer
64
64
  * `foo.yaml`. On basename collision, the top-level file wins over a nested one.
65
65
  */
66
66
  export declare function listHookEntriesFromDir(dir: string): HookEntry[];
67
- /**
68
- * Check if a hook exists for an agent.
69
- */
70
- export declare function hookExists(agentId: AgentId, hookName: string): boolean;
71
- /**
72
- * Check if installed hook content matches source hook content.
73
- * Compares both script file and data file (if present).
74
- */
75
- export declare function hookContentMatches(agentId: AgentId, hookName: string, sourceEntry: HookEntry): boolean;
76
67
  /**
77
68
  * Hooks dir for an agent under an arbitrary home (version home or effective
78
69
  * home). An agent whose `hooksDir` is configured absolute under `$HOME` (grok,
@@ -111,7 +102,7 @@ export interface HookWiringIssue {
111
102
  command: string;
112
103
  }
113
104
  /** A generated, agents-managed hook wrapper and the inputs needed to recreate it. */
114
- export interface ManagedHookRuntimeArtifact {
105
+ interface ManagedHookRuntimeArtifact {
115
106
  agent: AgentId;
116
107
  version: string;
117
108
  name: string;
@@ -171,7 +162,7 @@ export interface HookRuntimeRepairAttempt {
171
162
  }
172
163
  /**
173
164
  * Result of one bounded repair pass over agents-managed generated hook shims.
174
- * Shared by self-heal and doctor --fix; additive types for the doctor track.
165
+ * Shared by self-heal and agents sync; additive types for the doctor track.
175
166
  */
176
167
  export interface HookRuntimeRepairReport {
177
168
  /** Broken artifacts found before any write (inspect-only snapshot). */
@@ -184,7 +175,7 @@ export interface HookRuntimeRepairReport {
184
175
  /** Human-readable lines for CheckResult.needsAttention — stable wording. */
185
176
  needsAttention: string[];
186
177
  }
187
- export interface RepairManagedHookRuntimeOptions {
178
+ interface RepairManagedHookRuntimeOptions {
188
179
  /** Detect only — never write. Default false. */
189
180
  dryRun?: boolean;
190
181
  filter?: {
@@ -193,19 +184,6 @@ export interface RepairManagedHookRuntimeOptions {
193
184
  };
194
185
  platform?: NodeJS.Platform;
195
186
  }
196
- /**
197
- * Regenerate one known-broken wrapper and prove the result is usable. Callers
198
- * provide a snapshot from inspectBrokenManagedHookRuntimeArtifacts; this never
199
- * loops or retries and returns a stable error for the current pass.
200
- *
201
- * Generation is delegated to generateHookShim (idempotent — preserves mtime when
202
- * content already matches). This path never calls registerHooksToSettings,
203
- * installHooks, or any sync routine.
204
- */
205
- export declare function repairManagedHookRuntimeArtifact(artifact: ManagedHookRuntimeArtifact, platform?: NodeJS.Platform): {
206
- repaired: boolean;
207
- reason?: string;
208
- };
209
187
  /**
210
188
  * Bounded repair of all broken agents-managed generated hook shims.
211
189
  *
@@ -234,7 +212,7 @@ export declare function repairManagedHookRuntimeArtifacts(opts?: RepairManagedHo
234
212
  * resolveHookCommand performs, so it never mutates the version home.
235
213
  */
236
214
  export declare function checkVersionHookWiring(agent: AgentId, version: string): HookWiringReport;
237
- export interface VersionHookDiff {
215
+ interface VersionHookDiff {
238
216
  agent: AgentId;
239
217
  version: string;
240
218
  toAdd: string[];
@@ -246,13 +224,6 @@ export interface VersionHookDiff {
246
224
  * Compare a version home's hooks against central. Returns the reconciliation diff.
247
225
  */
248
226
  export declare function diffVersionHooks(agent: AgentId, version: string): VersionHookDiff;
249
- /**
250
- * Install a single hook from central into a specific version home.
251
- */
252
- export declare function installHookToVersion(agent: AgentId, version: string, hookName: string): {
253
- success: boolean;
254
- error?: string;
255
- };
256
227
  /**
257
228
  * Remove a single hook (script + data file) from a specific version home.
258
229
  * Soft-deletes to ~/.agents/.trash/hooks/.
@@ -285,10 +256,6 @@ export declare function getHookInfo(name: string): {
285
256
  content: string;
286
257
  } | null;
287
258
  export declare function discoverHooksFromRepo(repoPath: string): string[];
288
- /**
289
- * Get the source hook entry from repo.
290
- */
291
- export declare function getSourceHookEntry(repoPath: string, hookName: string): HookEntry | null;
292
259
  /**
293
260
  * Install hooks to central ~/.agents/hooks/ directory.
294
261
  * Shims will symlink this to per-agent directories for synced agents.
@@ -353,15 +320,6 @@ export declare function selectHookManifest(manifest: Record<string, ManifestHook
353
320
  * installed hook names and the source hook script paths.
354
321
  */
355
322
  export declare function unmanagedHookNames(installedHookNames: string[], sourceHookScripts: string[]): string[];
356
- /**
357
- * Every hook script path across the resolved SOURCE roots — user
358
- * (`~/.agents/hooks`), system (`~/.agents/.system/hooks`), and each enabled
359
- * extra repo's `hooks/` — grouped the same way sync materializes them
360
- * ({@link listHookEntriesFromDir}, which also descends one-level event-group
361
- * dirs). This is the set an installed hook must be absent from to count as an
362
- * orphan.
363
- */
364
- export declare function listResolvedSourceHookScripts(): string[];
365
323
  /**
366
324
  * The orphan hooks (see {@link unmanagedHookNames}) sitting in one version home:
367
325
  * installed hook files whose name matches no file in any configured source root.
@@ -397,7 +355,7 @@ export declare function computeCodexHookTrustHash(eventKeyLabel: string, command
397
355
  * global shims. The materializer sets this so materialization stays isolated
398
356
  * (PHNX-3838); every normal caller leaves it unset and keeps the sweep.
399
357
  */
400
- export interface RegisterHooksOptions {
358
+ interface RegisterHooksOptions {
401
359
  skipGlobalShimSweep?: boolean;
402
360
  }
403
361
  export declare function registerHooksToSettings(agentId: AgentId, versionHome: string, hookManifest?: Record<string, ManifestHook>, agentsDirOverride?: string, options?: RegisterHooksOptions): {
@@ -432,7 +390,7 @@ export declare function hookRegistrationTargets(agentId: AgentId, home: string):
432
390
  * entries removed.
433
391
  */
434
392
  export declare function pruneVersionHomeHookEntriesFromSettings(settingsPath: string, agent: AgentId, removedVersion: string): number;
435
- export interface InstallSessionTrackerHookResult {
393
+ interface InstallSessionTrackerHookResult {
436
394
  installed: boolean;
437
395
  error?: string;
438
396
  }
@@ -450,3 +408,4 @@ export declare function installSessionTrackerHook(agent: AgentId, version?: stri
450
408
  * `syncResourcesToVersion`). Best-effort: failures are returned, not thrown.
451
409
  */
452
410
  export declare function installSessionTrackerHookSync(agent: AgentId, version?: string, home?: string): InstallSessionTrackerHookResult;
411
+ export {};