@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
@@ -607,76 +607,12 @@ function copyHook(entry, targetDir) {
607
607
  fs.copyFileSync(entry.dataFile, dataTarget);
608
608
  }
609
609
  }
610
- /**
611
- * Check if a hook exists for an agent.
612
- */
613
- export function hookExists(agentId, hookName) {
614
- const agent = AGENTS[agentId];
615
- if (!agent.supportsHooks) {
616
- return false;
617
- }
618
- const hooksDir = getHooksDir(agentId);
619
- if (!fs.existsSync(hooksDir)) {
620
- return false;
621
- }
622
- const files = fs.readdirSync(hooksDir);
623
- return files.some((file) => {
624
- const ext = path.extname(file);
625
- const baseName = path.basename(file, ext);
626
- return baseName === hookName && SCRIPT_EXTENSIONS.has(ext);
627
- });
628
- }
629
610
  /**
630
611
  * Normalize content for comparison (trim, normalize line endings).
631
612
  */
632
613
  function normalizeContent(content) {
633
614
  return content.replace(/\r\n/g, '\n').trim();
634
615
  }
635
- /**
636
- * Get the installed hook entry for an agent.
637
- */
638
- function getInstalledHookEntry(agentId, hookName) {
639
- const hooksDir = getHooksDir(agentId);
640
- const entries = listHookEntriesFromDir(hooksDir);
641
- return entries.find((e) => e.name === hookName) || null;
642
- }
643
- /**
644
- * Check if installed hook content matches source hook content.
645
- * Compares both script file and data file (if present).
646
- */
647
- export function hookContentMatches(agentId, hookName, sourceEntry) {
648
- const agent = AGENTS[agentId];
649
- if (!agent.supportsHooks) {
650
- return false;
651
- }
652
- const installedEntry = getInstalledHookEntry(agentId, hookName);
653
- if (!installedEntry) {
654
- return false;
655
- }
656
- try {
657
- const installedScript = fs.readFileSync(installedEntry.scriptPath, 'utf-8');
658
- const sourceScript = fs.readFileSync(sourceEntry.scriptPath, 'utf-8');
659
- if (normalizeContent(installedScript) !== normalizeContent(sourceScript)) {
660
- return false;
661
- }
662
- const hasInstalledData = !!installedEntry.dataFile;
663
- const hasSourceData = !!sourceEntry.dataFile;
664
- if (hasInstalledData !== hasSourceData) {
665
- return false;
666
- }
667
- if (hasInstalledData && hasSourceData) {
668
- const installedData = fs.readFileSync(installedEntry.dataFile, 'utf-8');
669
- const sourceData = fs.readFileSync(sourceEntry.dataFile, 'utf-8');
670
- if (normalizeContent(installedData) !== normalizeContent(sourceData)) {
671
- return false;
672
- }
673
- }
674
- return true;
675
- }
676
- catch {
677
- return false;
678
- }
679
- }
680
616
  /**
681
617
  * Hooks dir for an agent under an arbitrary home (version home or effective
682
618
  * home). An agent whose `hooksDir` is configured absolute under `$HOME` (grok,
@@ -977,7 +913,7 @@ function stableHookRuntimeRepairFailure(before, err) {
977
913
  * content already matches). This path never calls registerHooksToSettings,
978
914
  * installHooks, or any sync routine.
979
915
  */
980
- export function repairManagedHookRuntimeArtifact(artifact, platform = process.platform) {
916
+ function repairManagedHookRuntimeArtifact(artifact, platform = process.platform) {
981
917
  const before = hookRuntimeProblem(artifact, platform);
982
918
  // Already healthy (e.g. race with another pass) — no-op, no needsAttention.
983
919
  if (!before)
@@ -1269,28 +1205,6 @@ export function diffVersionHooks(agent, version) {
1269
1205
  }
1270
1206
  return { agent, version, toAdd: toAdd.sort(), toUpdate: toUpdate.sort(), matched, orphans: orphans.sort() };
1271
1207
  }
1272
- /**
1273
- * Install a single hook from central into a specific version home.
1274
- */
1275
- export function installHookToVersion(agent, version, hookName) {
1276
- const gate = supports(agent, 'hooks', version);
1277
- if (!gate.ok) {
1278
- return { success: false, error: explainSkip(agent, 'hooks', gate, version) };
1279
- }
1280
- const central = listHookEntriesFromDir(getCentralHooksDir()).find((e) => e.name === hookName);
1281
- if (!central) {
1282
- return { success: false, error: `Hook '${hookName}' not found in central` };
1283
- }
1284
- const targetDir = getVersionHooksDir(agent, version);
1285
- try {
1286
- fs.mkdirSync(targetDir, { recursive: true });
1287
- copyHook(central, targetDir);
1288
- }
1289
- catch (err) {
1290
- return { success: false, error: err.message };
1291
- }
1292
- return { success: true };
1293
- }
1294
1208
  /**
1295
1209
  * Remove a single hook (script + data file) from a specific version home.
1296
1210
  * Soft-deletes to ~/.agents/.trash/hooks/.
@@ -1400,14 +1314,6 @@ export function discoverHooksFromRepo(repoPath) {
1400
1314
  const hooksDir = path.join(repoPath, 'hooks');
1401
1315
  return listHookEntriesFromDir(hooksDir).map((h) => h.name);
1402
1316
  }
1403
- /**
1404
- * Get the source hook entry from repo.
1405
- */
1406
- export function getSourceHookEntry(repoPath, hookName) {
1407
- const hooksDir = path.join(repoPath, 'hooks');
1408
- const entries = listHookEntriesFromDir(hooksDir);
1409
- return entries.find((e) => e.name === hookName) || null;
1410
- }
1411
1317
  /**
1412
1318
  * Install hooks to central ~/.agents/hooks/ directory.
1413
1319
  * Shims will symlink this to per-agent directories for synced agents.
@@ -1625,7 +1531,7 @@ export function unmanagedHookNames(installedHookNames, sourceHookScripts) {
1625
1531
  * dirs). This is the set an installed hook must be absent from to count as an
1626
1532
  * orphan.
1627
1533
  */
1628
- export function listResolvedSourceHookScripts() {
1534
+ function listResolvedSourceHookScripts() {
1629
1535
  const roots = [
1630
1536
  getUserHooksDir(),
1631
1537
  getSystemHooksDir(),
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import type { HookMatches } from '../types.js';
16
16
  /** Runtime context passed to a hook by the agent CLI. */
17
- export interface HookInput {
17
+ interface HookInput {
18
18
  hook_event_name?: string;
19
19
  prompt?: string;
20
20
  tool_name?: string;
@@ -34,3 +34,4 @@ export declare function isSafeHookRegex(source: string): boolean;
34
34
  * if it should be skipped.
35
35
  */
36
36
  export declare function shouldFire(matches: HookMatches | undefined, input: HookInput): boolean;
37
+ export {};
@@ -1,5 +1,3 @@
1
- /** The host part of an ssh target (`user@host` -> `host`) for known_hosts matching. */
2
- export declare function hostKeyLookupName(target: string): string;
3
1
  /** Refuse durable credential transfer until the destination SSH key is pinned. */
4
2
  export declare function assertCredentialTransportHostPinned(target: string, pinned?: boolean): void;
5
3
  /**
@@ -13,7 +13,7 @@ import { resolveHost } from './registry.js';
13
13
  import { sshTargetFor } from './types.js';
14
14
  import { isHostPinned } from '../devices/known-hosts.js';
15
15
  /** The host part of an ssh target (`user@host` -> `host`) for known_hosts matching. */
16
- export function hostKeyLookupName(target) {
16
+ function hostKeyLookupName(target) {
17
17
  return target.split('@').pop() ?? target;
18
18
  }
19
19
  /** Refuse durable credential transfer until the destination SSH key is pinned. */
@@ -1,23 +1,8 @@
1
- /**
2
- * Dispatch a headless `agents …` command onto a host over SSH.
3
- *
4
- * The command is launched detached (`nohup … &`) writing combined output to a
5
- * remote log and its exit code to a sibling `.exit` file, so progress survives a
6
- * dropped connection (followed via offset-tail in progress.ts). This is the
7
- * offload win: the process/thread/file fan-out happens on the host, not the
8
- * laptop. `agents run` uses it; `agents teams start --watch --device` reuses the
9
- * same core so a remote team supervisor keeps running after you disconnect.
10
- */
11
1
  import type { Host } from './types.js';
12
2
  import { type HostTask } from './tasks.js';
13
3
  import { type HostCredentials } from './credentials.js';
14
4
  import { deriveMirroredCwd, homeRemainder, remoteCdPrefix } from '../project-root.js';
15
5
  export { deriveMirroredCwd, homeRemainder, remoteCdPrefix };
16
- /**
17
- * Diagnostic helper for RUSH-2441: log the requested agent and initial remote
18
- * `agents run` argv without changing normal command output.
19
- */
20
- export declare function logForwardedArgs(kind: string, agent: string, version: string | undefined, args: string[], hasPrompt: boolean): void;
21
6
  /**
22
7
  * Merge the resolved actor's provenance env UNDER a caller-supplied env, so every
23
8
  * remote `agents …` invocation forwards `AGENTS_ACTOR*` / `GIT_*` across the SSH
@@ -160,25 +145,8 @@ export interface DispatchOptions {
160
145
  /** Copy runtime credentials to the host before the run and shred them after. */
161
146
  copyCreds?: HostCredentials;
162
147
  }
163
- /**
164
- * Build the remote `agents run …` argv for a host dispatch. Pure so the
165
- * session-id / resume flag wiring is unit-testable without an SSH round-trip.
166
- * `--session-id` and `--resume` are mutually exclusive (the CLI rejects both);
167
- * resume wins when — defensively — both are set.
168
- *
169
- * Every field here is classified 'forward' in RUN_OPTION_FORWARDING
170
- * (remote-cmd.ts) — keep the two in lockstep; run-forwarding.test.ts asserts
171
- * the table side.
172
- */
173
- /** Compose `agent[@version][#account]` so the peer resolves ITS slot (PHNX-3940 T5). */
174
- export declare function runAgentSpecArg(opts: {
175
- agent: string;
176
- version?: string;
177
- account?: string;
178
- accountPicker?: boolean;
179
- }): string;
180
148
  export declare function buildRunForwardedArgs(opts: DispatchOptions): string[];
181
- export interface InteractiveDispatchOptions {
149
+ interface InteractiveDispatchOptions {
182
150
  agent: string;
183
151
  /** Explicit agent version pin (e.g. "2.1.207") to forward as `agent@version`. */
184
152
  version?: string;
@@ -239,7 +207,7 @@ export declare function buildInteractiveRunForwardedArgs(opts: InteractiveDispat
239
207
  export declare function runInteractiveOnHost(host: Host, opts: InteractiveDispatchOptions): Promise<number>;
240
208
  /** Dispatch an `agents run <agent> "<prompt>"` onto a host (the `run --device` path). */
241
209
  export declare function dispatchToHost(host: Host, opts: DispatchOptions): Promise<DispatchResult>;
242
- export interface CommandDispatchOptions {
210
+ interface CommandDispatchOptions {
243
211
  /** `agents …` args (command name first), already stripped of routing flags. */
244
212
  forwardedArgs: string[];
245
213
  remoteCwd?: string;
@@ -1,3 +1,4 @@
1
+ import { launchIdentityEnv } from '../launch-identity.js';
1
2
  /**
2
3
  * Dispatch a headless `agents …` command onto a host over SSH.
3
4
  *
@@ -30,7 +31,7 @@ export { deriveMirroredCwd, homeRemainder, remoteCdPrefix };
30
31
  * Diagnostic helper for RUSH-2441: log the requested agent and initial remote
31
32
  * `agents run` argv without changing normal command output.
32
33
  */
33
- export function logForwardedArgs(kind, agent, version, args, hasPrompt) {
34
+ function logForwardedArgs(kind, agent, version, args, hasPrompt) {
34
35
  if (!process.env.AGENTS_DISPATCH_DEBUG)
35
36
  return;
36
37
  const safeArgs = [...args];
@@ -63,7 +64,7 @@ const REMOTE_DIR = '$HOME/.agents/.cache/hosts';
63
64
  * collision, mirroring `buildExecEnv`'s `...options.env` precedence (exec.ts).
64
65
  */
65
66
  export function withActorEnv(env) {
66
- return { ...actorEnv(resolveActor()), ...terminalIdEnv(), ...(env ?? {}) };
67
+ return { ...actorEnv(resolveActor()), ...launchIdentityEnv(), ...(env ?? {}) };
67
68
  }
68
69
  /**
69
70
  * The shell-export prelude prepended to EVERY remote `agents run` dispatch —
@@ -88,24 +89,6 @@ export function remoteRunShellPrelude(agent, extra = {}) {
88
89
  const exports = posixEnvExports(withActorEnv({ ...guard, ...extra }));
89
90
  return exports ? `${exports}; ` : '';
90
91
  }
91
- /**
92
- * Forward the launching editor tab's `AGENT_TERMINAL_ID` across the SSH hop.
93
- *
94
- * Factory stamps it on every terminal it spawns, and the remote `agents run`
95
- * records it in its pid registry (`writePidSessionEntry`) — which is what lets a
96
- * tab ask the device "which session is MY terminal running?" instead of guessing
97
- * from local state. Without the forward the remote registry has no terminal id,
98
- * that question is unanswerable, and the tab is stuck with its spawn-time id even
99
- * after the agent has moved to a different session (a `/clear`, or an exit and
100
- * rerun in the same tab).
101
- *
102
- * Same shape as the actor provenance above: absent when the launch did not come
103
- * from a tracked terminal, never fabricated.
104
- */
105
- function terminalIdEnv() {
106
- const terminalId = process.env.AGENT_TERMINAL_ID?.trim();
107
- return terminalId ? { AGENT_TERMINAL_ID: terminalId } : {};
108
- }
109
92
  /**
110
93
  * Launch a detached login-shell command in its own Unix session/process group.
111
94
  *
@@ -360,7 +343,7 @@ async function launchDetached(host, target, opts) {
360
343
  * the table side.
361
344
  */
362
345
  /** Compose `agent[@version][#account]` so the peer resolves ITS slot (PHNX-3940 T5). */
363
- export function runAgentSpecArg(opts) {
346
+ function runAgentSpecArg(opts) {
364
347
  if (opts.accountPicker)
365
348
  return `${opts.agent}#`;
366
349
  let spec = opts.agent;
@@ -11,7 +11,7 @@
11
11
  * concise default.) Kept in one place so the two commands can never drift.
12
12
  */
13
13
  import { type HostTask } from './tasks.js';
14
- export interface HostLogResult {
14
+ interface HostLogResult {
15
15
  /** False when no host task with this id exists (caller may fall through to sessions). */
16
16
  found: boolean;
17
17
  /** Process exit code to adopt when the task was shown/followed. */
@@ -35,3 +35,4 @@ export declare function hostTaskLogJson(id: string): {
35
35
  };
36
36
  /** Last `n` lines of `text`, prefixed with an elision note when truncated. */
37
37
  export declare function tailLines(text: string, n: number): string;
38
+ export {};
@@ -103,7 +103,7 @@ export declare function renderForwardDecision(command: string, allArgs: string[]
103
103
  env?: Record<string, string>;
104
104
  };
105
105
  /** Injectable dependencies for {@link runFleetPassthrough} — used by tests. */
106
- export interface FleetPassthroughOptions {
106
+ interface FleetPassthroughOptions {
107
107
  /** Override the device registry loader (tests). */
108
108
  loadDevices?: () => Promise<DeviceRegistry>;
109
109
  /** Override the per-device runner (tests). Defaults to `runOnDevice`. */
@@ -107,7 +107,6 @@ export const REMOTE_PASSTHROUGH = {
107
107
  worktree: {},
108
108
  events: {},
109
109
  feedback: {},
110
- pty: {},
111
110
  tmux: {},
112
111
  watchdog: {},
113
112
  factory: {},
@@ -131,11 +131,6 @@ export declare function buildStreamingFollowCommand(opts: {
131
131
  }): string;
132
132
  /** Extract the remote watcher frame from stderr, if the stream ended normally. */
133
133
  export declare function parseStreamingExitFrame(stderr: Buffer, taskId: string): Buffer | null;
134
- /**
135
- * File identity (`dev:ino`) of a path on the remote host, or null if it can't be
136
- * stat'd. GNU (`-c`) then BSD (`-f`) format, so it works on Linux and macOS hosts.
137
- */
138
- export declare function readRemoteFileId(target: string, remotePath: string, extraSshArgs?: string[]): string | null;
139
134
  /**
140
135
  * True when the local mirror file IS the very file we're tailing — the
141
136
  * localhost-as-host case, where `remoteLog` ($HOME-expanded) and `localLogPath`
@@ -177,7 +177,7 @@ export function parseStreamingExitFrame(stderr, taskId) {
177
177
  * File identity (`dev:ino`) of a path on the remote host, or null if it can't be
178
178
  * stat'd. GNU (`-c`) then BSD (`-f`) format, so it works on Linux and macOS hosts.
179
179
  */
180
- export function readRemoteFileId(target, remotePath, extraSshArgs) {
180
+ function readRemoteFileId(target, remotePath, extraSshArgs) {
181
181
  const res = sshExec(target, `stat -c '%d:%i' ${remotePath} 2>/dev/null || stat -f '%d:%i' ${remotePath} 2>/dev/null`, { timeoutMs: 8000, extraSshArgs });
182
182
  const id = res.stdout.trim();
183
183
  return id || null;
@@ -24,8 +24,6 @@ export declare function probeHost(target: string, os?: string, extraSshArgs?: st
24
24
  };
25
25
  /** ssh command that prints the remote agents-cli version. Pure/exported. */
26
26
  export declare function buildRemoteVersionCommand(os?: string): string;
27
- /** Remote agents-cli version (PATH-resolved on the remote), or null if not installed. */
28
- export declare function remoteAgentsVersion(target: string, os?: string, extraSshArgs?: string[]): string | null;
29
27
  /** ssh command that installs/upgrades agents-cli to `spec` then `agents setup`.
30
28
  * PowerShell has no `tail`/`[ -d ]`/`||`, so the Windows branch uses native
31
29
  * equivalents (`Select-Object -Last`, `Test-Path`). Pure/exported. */
@@ -89,7 +87,7 @@ export declare function viewHasAgentVersion(view: string, agent: string, version
89
87
  /** Actionable fail-loud message for a missing remote pin (RUSH-2313). */
90
88
  export declare function missingPinnedVersionMessage(hostName: string, agent: string, version: string, installed?: string[]): string;
91
89
  /** Account eligibility extracted from one device's `agents view --json`. */
92
- export interface ViewAgentAccountEligibility {
90
+ interface ViewAgentAccountEligibility {
93
91
  /** At least one account can launch immediately. */
94
92
  signedIn: boolean | undefined;
95
93
  /** At least one account can launch immediately or enter the harness login flow. */
@@ -111,7 +109,7 @@ export interface ViewAgentAccountEligibility {
111
109
  */
112
110
  export declare function viewAgentAccountEligibility(view: string, agent: string, now?: number): ViewAgentAccountEligibility;
113
111
  export declare function viewAgentSignedIn(view: string, agent: string): boolean | undefined;
114
- export interface EnsureReadyOptions {
112
+ interface EnsureReadyOptions {
115
113
  agent: string;
116
114
  /**
117
115
  * Explicit version pin (e.g. `"0.145.0"`). Concrete pins fail loud when the
@@ -143,3 +141,4 @@ export declare function evaluateHostAgentInstall(view: string, opts: EnsureReady
143
141
  export declare function ensureHostReady(host: Host, opts: EnsureReadyOptions): {
144
142
  warnings: string[];
145
143
  };
144
+ export {};
@@ -64,14 +64,6 @@ export function buildRemoteVersionCommand(os) {
64
64
  ? buildWindowsAgentsCommand({ args: ['--version'] })
65
65
  : 'bash -lc "agents --version 2>/dev/null"';
66
66
  }
67
- /** Remote agents-cli version (PATH-resolved on the remote), or null if not installed. */
68
- export function remoteAgentsVersion(target, os, extraSshArgs = []) {
69
- const r = sshExec(target, buildRemoteVersionCommand(os), { timeoutMs: 20000, extraSshArgs });
70
- if (r.code !== 0)
71
- return null;
72
- const v = r.stdout.trim();
73
- return v || null;
74
- }
75
67
  /** ssh command that installs/upgrades agents-cli to `spec` then `agents setup`.
76
68
  * PowerShell has no `tail`/`[ -d ]`/`||`, so the Windows branch uses native
77
69
  * equivalents (`Select-Object -Last`, `Test-Path`). Pure/exported. */
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import { type SshExecResult } from '../ssh-exec.js';
14
14
  import { type HostTask } from './tasks.js';
15
- export type RemoteExitState = {
15
+ type RemoteExitState = {
16
16
  state: 'running';
17
17
  } | {
18
18
  state: 'done';
@@ -31,13 +31,6 @@ export type RemoteExitState = {
31
31
  */
32
32
  export declare function classifyExit(res: Pick<SshExecResult, 'code' | 'stdout' | 'timedOut'>): RemoteExitState;
33
33
  export declare function readRemoteExit(target: string, remoteExit: string, timeoutMs?: number, identityFile?: string, remoteShell?: 'posix' | 'powershell'): RemoteExitState;
34
- /**
35
- * Async twin of {@link readRemoteExit} for the daemon's heartbeat tick — the ssh
36
- * read runs on the shared event loop, so it MUST NOT block it with a synchronous
37
- * `spawnSync('ssh', …)` (PHNX-3695). `sshExecAsync` applies the same
38
- * timeout/kill-grace bound.
39
- */
40
- export declare function readRemoteExitAsync(target: string, remoteExit: string, timeoutMs?: number, identityFile?: string, remoteShell?: 'posix' | 'powershell'): Promise<RemoteExitState>;
41
34
  /**
42
35
  * Heal one record. Terminal records are immutable (and never re-probed); a
43
36
  * `running` record is resolved to completed/failed only when the remote `.exit`
@@ -59,3 +52,4 @@ export declare function reconcileTaskAsync(task: HostTask): Promise<HostTask>;
59
52
  */
60
53
  export declare function reconcileRunningTasks(tasks: HostTask[]): HostTask[];
61
54
  export declare function reachabilityProbeCommand(remoteShell?: 'posix' | 'powershell'): string;
55
+ export {};
@@ -57,7 +57,7 @@ export function readRemoteExit(target, remoteExit, timeoutMs = 6000, identityFil
57
57
  * `spawnSync('ssh', …)` (PHNX-3695). `sshExecAsync` applies the same
58
58
  * timeout/kill-grace bound.
59
59
  */
60
- export async function readRemoteExitAsync(target, remoteExit, timeoutMs = 6000, identityFile, remoteShell = 'posix') {
60
+ async function readRemoteExitAsync(target, remoteExit, timeoutMs = 6000, identityFile, remoteShell = 'posix') {
61
61
  return classifyExit(await sshExecAsync(target, remoteExitCommand(remoteExit, remoteShell), remoteExitSshOpts(timeoutMs, identityFile)));
62
62
  }
63
63
  /**
@@ -34,7 +34,7 @@ export interface ReconnectOutcome {
34
34
  /** How long the interactive attach held after the probe returned. */
35
35
  heldMs: number;
36
36
  }
37
- export type ReconnectDecision = {
37
+ type ReconnectDecision = {
38
38
  action: 'stop';
39
39
  code: number;
40
40
  } | {
@@ -81,8 +81,6 @@ export type ReconnectTarget = {
81
81
  kind: 'launch';
82
82
  id: string;
83
83
  };
84
- /** The short form shown to a human. Both kinds are uuid-shaped, so 8 chars reads the same. */
85
- export declare function targetLabel(target: ReconnectTarget): string;
86
84
  /**
87
85
  * The command a user can run to re-enter a session after reconnect gives up.
88
86
  * The full id is printed on its own line so it remains copyable after a drop.
@@ -124,7 +122,7 @@ export declare function afterInteractiveRemoteExit(opts: {
124
122
  notice: string | undefined;
125
123
  };
126
124
  /** Inputs the launcher has once its interactive stream has returned. */
127
- export interface ReconnectTargetInputs {
125
+ interface ReconnectTargetInputs {
128
126
  agent: string;
129
127
  sessionId?: string;
130
128
  resolvedId?: string;
@@ -141,13 +139,7 @@ export declare function pickReconnectTarget(inputs: ReconnectTargetInputs): Reco
141
139
  * a network drop. No `--attach-only`: focus resumes in place when no pane survived.
142
140
  */
143
141
  export declare function reattachRemoteCommand(target: ReconnectTarget): string;
144
- /**
145
- * Re-attach the live remote pane by driving the peer's `agents sessions focus`.
146
- * A fast preflight probe decides reachability; only then do we run the
147
- * interactive attach/resume. Returns the exit code, connected bit, and hold time.
148
- */
149
- export declare function reattachRemoteSession(host: Host, target: ReconnectTarget): ReconnectOutcome;
150
- export interface ReconnectLoopOpts {
142
+ interface ReconnectLoopOpts {
151
143
  host: Host;
152
144
  target: ReconnectTarget;
153
145
  /** Exit code from the initial interactive run (treated as connected). */
@@ -159,3 +151,4 @@ export interface ReconnectLoopOpts {
159
151
  }
160
152
  /** Drive the reconnect loop from the initial run's outcome to a terminal code. */
161
153
  export declare function reconnectInteractiveSession(opts: ReconnectLoopOpts): Promise<number>;
154
+ export {};
@@ -112,7 +112,7 @@ export function wrapRemoteExitCode(cmd) {
112
112
  return `bash -lc ${shellQuote(guarded)}`;
113
113
  }
114
114
  /** The short form shown to a human. Both kinds are uuid-shaped, so 8 chars reads the same. */
115
- export function targetLabel(target) {
115
+ function targetLabel(target) {
116
116
  return target.id.slice(0, 8);
117
117
  }
118
118
  /**
@@ -201,7 +201,7 @@ export function reattachRemoteCommand(target) {
201
201
  * A fast preflight probe decides reachability; only then do we run the
202
202
  * interactive attach/resume. Returns the exit code, connected bit, and hold time.
203
203
  */
204
- export function reattachRemoteSession(host, target) {
204
+ function reattachRemoteSession(host, target) {
205
205
  const sshTarget = sshTargetFor(host);
206
206
  const extraSshArgs = hostIdentityArgs(host);
207
207
  // Fresh (non-multiplexed) reachability probe: only a completed handshake is
@@ -30,7 +30,7 @@ export declare function getAllProviders(): HostProvider[];
30
30
  * doesn't hold, and lets dispatch callers apply the device-only refusal
31
31
  * (password auth) without re-reading the registry.
32
32
  */
33
- export interface ResolvedHost extends Host {
33
+ interface ResolvedHost extends Host {
34
34
  device?: DeviceProfile;
35
35
  /** True when the host is a synthesized ad-hoc `user@host` / IP / FQDN literal
36
36
  * (never registered) rather than a device or overlay/ssh-config match. Lets the
@@ -33,7 +33,7 @@ export declare function stripRoutingFlags(args: string[], specs: StripSpec[]): s
33
33
  */
34
34
  export declare const HOST_ROUTING_SPECS: StripSpec[];
35
35
  /** How one `agents run` option behaves when the run is offloaded with `--device`. */
36
- export type RunOptionForwarding =
36
+ type RunOptionForwarding =
37
37
  /** Appended to the remote `agents run` argv — same behavior local or remote. */
38
38
  'forward'
39
39
  /** Refused with an actionable error BEFORE dispatch — never silently dropped. */
@@ -79,7 +79,7 @@ export declare function buildRemoteAgentsInvocation(forwardedArgs: string[], rem
79
79
  */
80
80
  export declare function posixEnvExports(env?: Record<string, string>): string;
81
81
  /** The two remote shell dialects we build commands for. */
82
- export type RemoteShell = 'posix' | 'powershell';
82
+ type RemoteShell = 'posix' | 'powershell';
83
83
  /**
84
84
  * Pick the remote shell dialect from a recorded OS/platform string. A Windows
85
85
  * host (device-registry `platform: 'windows'`, or an enrolled `HostEntry.os`
@@ -105,7 +105,7 @@ export declare function encodePowershell(script: string): string;
105
105
  * back to its script. Used by tests to assert on the built command. */
106
106
  export declare function decodePowershell(encoded: string): string;
107
107
  /** A single `agents …` invocation to run on a Windows remote. */
108
- export interface WindowsAgentsCommand {
108
+ interface WindowsAgentsCommand {
109
109
  /** `agents` argv (command name NOT included; `agents` is prepended). */
110
110
  args: string[];
111
111
  /** Env vars scoped to this invocation (POSIX `VAR=val` ↔ PS `$env:VAR=…`). */
@@ -192,3 +192,4 @@ export declare function buildWindowsStdinImportCommand(bundle: string, opts?: {
192
192
  force?: boolean;
193
193
  policyNever?: boolean;
194
194
  }): string;
195
+ export {};
@@ -9,37 +9,15 @@
9
9
  *
10
10
  * The launcher forwards a launch id it controls (`--env AGENT_LAUNCH_ID=<id>`);
11
11
  * the remote `agents run` adopts it (exec.ts `resolveLaunchId`), so the remote
12
- * SessionStart hook records the agent's REAL session id under that exact key in
13
- * `~/.agents/.cache/terminals/sessions/<pid>.json`. After the stream returns we
14
- * do ONE ssh read of that dir and pick the record whose `launch_id` matches —
15
- * the same launch-id join `agents sessions --active` uses locally
16
- * (session/hook-sessions.ts), just across the SSH hop.
12
+ * SessionStart hook records the agent's REAL session id. After the stream
13
+ * returns we ask the owning CLI to join that hook with the durable launch
14
+ * registry, using the same index as local focus/session projection. This also
15
+ * supports the deployed legacy hook containing only session_id and pid.
17
16
  *
18
17
  * This gives the interactive path a real per-agent id to register in the local
19
18
  * session index and to reconnect against, for Codex/Kimi/Grok/Gemini — closing
20
19
  * the gap RUSH-2033 left for every non-Claude agent (Claude still forces its own
21
20
  * id up front and never reaches here).
22
21
  */
23
- /**
24
- * Pick the real session id for `launchId` from the remote hook records.
25
- *
26
- * `recordsJson` is the newline-delimited JSON the remote read emits — one record
27
- * per line (a `cat` of every `sessions/*.json`). Scan for the record whose
28
- * `launch_id` matches and return its `session_id`; when several match (pid reuse,
29
- * a lingering file) the NEWEST by `ts` wins, mirroring the local reader's
30
- * keep-newest tie-break (session/hook-sessions.ts). Pure so the correlation is
31
- * unit-testable from fixtures with no SSH. Returns undefined when no record
32
- * carries the launch id (the hook hasn't landed yet, or a hookless harness).
33
- */
34
- export declare function pickRemoteSessionId(recordsJson: string, launchId: string): string | undefined;
35
- /**
36
- * Read the remote hook-session dir over ssh and resolve the real session id the
37
- * remote run recorded under `launchId`. One round-trip, best-effort: any ssh
38
- * failure, a missing dir, or an absent record yields undefined — the caller then
39
- * keeps the un-mapped run rather than a fabricated id.
40
- *
41
- * `$HOME` expands on the REMOTE login shell (never the local box). The glob is a
42
- * literal path with no user input, so it is injection-safe; a `2>/dev/null` on a
43
- * globless dir keeps the command quiet when the dir is empty or absent.
44
- */
22
+ /** Resolve on the execution owner through the canonical read-only CLI projection. */
45
23
  export declare function resolveRemoteSessionId(target: string, launchId: string, timeoutMs?: number): string | undefined;