@phnx-labs/agents-cli 1.22.113 → 1.22.115

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 (802) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/README.md +32 -113
  3. package/dist/browser.js +0 -0
  4. package/dist/cli/command-registry.d.ts +0 -60
  5. package/dist/cli/command-registry.js +57 -66
  6. package/dist/commands/accounts.d.ts +3 -77
  7. package/dist/commands/accounts.js +13 -366
  8. package/dist/commands/apply.d.ts +0 -4
  9. package/dist/commands/apply.js +3 -3
  10. package/dist/commands/audit.js +1 -1
  11. package/dist/commands/auth.js +0 -2
  12. package/dist/commands/browser-picker.d.ts +3 -6
  13. package/dist/commands/browser-picker.js +2 -2
  14. package/dist/commands/browser-sessions-picker.d.ts +2 -1
  15. package/dist/commands/browser.d.ts +53 -0
  16. package/dist/commands/browser.js +199 -9
  17. package/dist/commands/computer-sessions-picker.d.ts +2 -1
  18. package/dist/commands/computer.d.ts +14 -19
  19. package/dist/commands/computer.js +65 -10
  20. package/dist/commands/config.js +46 -2
  21. package/dist/commands/daemon.d.ts +0 -23
  22. package/dist/commands/daemon.js +1 -1
  23. package/dist/commands/detach-core.d.ts +2 -1
  24. package/dist/commands/detach.d.ts +0 -3
  25. package/dist/commands/detach.js +3 -3
  26. package/dist/commands/doctor.d.ts +2 -3
  27. package/dist/commands/doctor.js +0 -11
  28. package/dist/commands/events.d.ts +1 -3
  29. package/dist/commands/events.js +4 -7
  30. package/dist/commands/exec.d.ts +0 -1
  31. package/dist/commands/exec.js +2 -7
  32. package/dist/commands/feed-watch.js +52 -8
  33. package/dist/commands/feed.d.ts +3 -3
  34. package/dist/commands/feed.js +1 -1
  35. package/dist/commands/focus.d.ts +4 -4
  36. package/dist/commands/focus.js +1 -1
  37. package/dist/commands/go.d.ts +0 -17
  38. package/dist/commands/go.js +2 -19
  39. package/dist/commands/harness-hooks.d.ts +0 -7
  40. package/dist/commands/harness-hooks.js +1 -1
  41. package/dist/commands/harness-wizard.d.ts +2 -2
  42. package/dist/commands/harness.d.ts +3 -8
  43. package/dist/commands/harness.js +1 -1
  44. package/dist/commands/inspect.d.ts +2 -3
  45. package/dist/commands/inspect.js +1 -1
  46. package/dist/commands/logs.js +1 -1
  47. package/dist/commands/mcp.js +8 -83
  48. package/dist/commands/memory.js +4 -47
  49. package/dist/commands/message.d.ts +1 -1
  50. package/dist/commands/message.js +7 -7
  51. package/dist/commands/plugins.js +1 -93
  52. package/dist/commands/projects.d.ts +2 -18
  53. package/dist/commands/projects.js +89 -3
  54. package/dist/commands/repo.js +0 -44
  55. package/dist/commands/resource-view.d.ts +3 -2
  56. package/dist/commands/resume.d.ts +0 -1
  57. package/dist/commands/resume.js +5 -2
  58. package/dist/commands/routines.d.ts +1 -3
  59. package/dist/commands/routines.js +1 -1
  60. package/dist/commands/run-account-picker.d.ts +2 -1
  61. package/dist/commands/run-broadcast.d.ts +2 -1
  62. package/dist/commands/run-device-picker.d.ts +2 -1
  63. package/dist/commands/secrets-passthrough.d.ts +14 -0
  64. package/dist/commands/secrets-passthrough.js +23 -4
  65. package/dist/commands/send.d.ts +4 -4
  66. package/dist/commands/send.js +6 -51
  67. package/dist/commands/sessions-backfill.d.ts +2 -35
  68. package/dist/commands/sessions-backfill.js +1 -1
  69. package/dist/commands/sessions-backup-setup.js +1 -1
  70. package/dist/commands/sessions-bookmark.d.ts +0 -10
  71. package/dist/commands/sessions-bookmark.js +1 -1
  72. package/dist/commands/sessions-inject.d.ts +2 -3
  73. package/dist/commands/sessions-inject.js +8 -17
  74. package/dist/commands/sessions-picker-factory.d.ts +4 -14
  75. package/dist/commands/sessions-picker-factory.js +2 -2
  76. package/dist/commands/sessions-picker.d.ts +3 -9
  77. package/dist/commands/sessions-picker.js +2 -2
  78. package/dist/commands/sessions-resume.d.ts +2 -4
  79. package/dist/commands/sessions-resume.js +0 -6
  80. package/dist/commands/sessions-share.d.ts +5 -7
  81. package/dist/commands/sessions-share.js +98 -49
  82. package/dist/commands/sessions-stats.d.ts +2 -1
  83. package/dist/commands/sessions-stop.d.ts +0 -3
  84. package/dist/commands/sessions-stop.js +1 -1
  85. package/dist/commands/sessions-tail.d.ts +2 -1
  86. package/dist/commands/sessions-trace.d.ts +4 -6
  87. package/dist/commands/sessions-trace.js +1 -1
  88. package/dist/commands/sessions.d.ts +13 -104
  89. package/dist/commands/sessions.js +11 -18
  90. package/dist/commands/setup-browser.js +18 -2
  91. package/dist/commands/setup-computer.js +20 -6
  92. package/dist/commands/setup-mine.d.ts +0 -6
  93. package/dist/commands/setup-mine.js +1 -1
  94. package/dist/commands/setup-secrets.js +24 -4
  95. package/dist/commands/setup-terminal.d.ts +3 -0
  96. package/dist/commands/setup-terminal.js +22 -0
  97. package/dist/commands/setup.d.ts +3 -4
  98. package/dist/commands/setup.js +21 -11
  99. package/dist/commands/skills.js +0 -8
  100. package/dist/commands/ssh.d.ts +6 -0
  101. package/dist/commands/ssh.js +92 -233
  102. package/dist/commands/sync.js +14 -5
  103. package/dist/commands/teams-picker.d.ts +2 -5
  104. package/dist/commands/teams-picker.js +2 -2
  105. package/dist/commands/teams.d.ts +1 -7
  106. package/dist/commands/teams.js +2 -2
  107. package/dist/commands/tmux.d.ts +1 -1
  108. package/dist/commands/tmux.js +1 -1
  109. package/dist/commands/traces.js +1 -1
  110. package/dist/commands/upgrade.d.ts +2 -1
  111. package/dist/commands/utils.d.ts +1 -1
  112. package/dist/commands/utils.js +1 -1
  113. package/dist/lib/account-capabilities.d.ts +2 -1
  114. package/dist/lib/account-catalog.d.ts +4 -13
  115. package/dist/lib/account-catalog.js +1 -1
  116. package/dist/lib/account-registry.d.ts +3 -4
  117. package/dist/lib/account-registry.js +1 -1
  118. package/dist/lib/accounting/account-launch.d.ts +4 -3
  119. package/dist/lib/accounting/account-pool.d.ts +2 -1
  120. package/dist/lib/accounting/rotate.d.ts +3 -9
  121. package/dist/lib/accounting/rotate.js +2 -14
  122. package/dist/lib/accounting/usage-sync.d.ts +5 -4
  123. package/dist/lib/accounting/usage.d.ts +7 -31
  124. package/dist/lib/accounting/usage.js +4 -4
  125. package/dist/lib/accounts/add.d.ts +0 -5
  126. package/dist/lib/accounts/add.js +1 -7
  127. package/dist/lib/accounts/migrate.d.ts +8 -8
  128. package/dist/lib/accounts/migrate.js +1 -1
  129. package/dist/lib/acp/client.d.ts +3 -2
  130. package/dist/lib/acp/harnesses.d.ts +2 -2
  131. package/dist/lib/acp/harnesses.js +1 -1
  132. package/dist/lib/acp/run.d.ts +2 -1
  133. package/dist/lib/actor.d.ts +3 -2
  134. package/dist/lib/add-dir.d.ts +2 -17
  135. package/dist/lib/add-dir.js +2 -6
  136. package/dist/lib/address.d.ts +56 -0
  137. package/dist/lib/address.js +143 -0
  138. package/dist/lib/agent-spec/agents.d.ts +12 -28
  139. package/dist/lib/agent-spec/agents.js +2 -6
  140. package/dist/lib/agent-spec/primitives.d.ts +0 -7
  141. package/dist/lib/agent-spec/primitives.js +0 -6
  142. package/dist/lib/agent-spec/types.d.ts +2 -1
  143. package/dist/lib/analytics/dashboard.d.ts +1 -5
  144. package/dist/lib/analytics/dashboard.js +0 -2
  145. package/dist/lib/analytics/mix-commands.d.ts +0 -7
  146. package/dist/lib/analytics/mix-commands.js +3 -3
  147. package/dist/lib/analytics/recipes.d.ts +0 -12
  148. package/dist/lib/analytics/recipes.js +7 -31
  149. package/dist/lib/analytics/usage-db.d.ts +5 -32
  150. package/dist/lib/analytics/usage-db.js +1 -70
  151. package/dist/lib/answer-router.d.ts +7 -6
  152. package/dist/lib/answer-router.js +5 -11
  153. package/dist/lib/artifact-actions.d.ts +0 -4
  154. package/dist/lib/artifacts-client.d.ts +20 -0
  155. package/dist/lib/artifacts-client.js +46 -0
  156. package/dist/lib/ask-classifier.d.ts +3 -4
  157. package/dist/lib/ask-classifier.js +0 -7
  158. package/dist/lib/auth-health.d.ts +3 -46
  159. package/dist/lib/auth-health.js +3 -3
  160. package/dist/lib/auth-mint.d.ts +6 -6
  161. package/dist/lib/auth-mint.js +7 -7
  162. package/dist/lib/bench/runner.d.ts +2 -2
  163. package/dist/lib/bench/runner.js +1 -1
  164. package/dist/lib/bench/storage.d.ts +0 -1
  165. package/dist/lib/bench/storage.js +1 -1
  166. package/dist/lib/boot-profile.d.ts +0 -2
  167. package/dist/lib/boot-profile.js +0 -4
  168. package/dist/lib/brand.d.ts +0 -6
  169. package/dist/lib/brand.js +1 -1
  170. package/dist/lib/browser/arc-discovery.d.ts +4 -12
  171. package/dist/lib/browser/arc-discovery.js +1 -1
  172. package/dist/lib/browser/cdp.d.ts +1 -1
  173. package/dist/lib/browser/chrome.d.ts +2 -2
  174. package/dist/lib/browser/chrome.js +0 -4
  175. package/dist/lib/browser/chromium-discovery.d.ts +3 -2
  176. package/dist/lib/browser/drivers/arc.d.ts +3 -20
  177. package/dist/lib/browser/drivers/arc.js +2 -7
  178. package/dist/lib/browser/drivers/firefox.d.ts +2 -6
  179. package/dist/lib/browser/drivers/firefox.js +1 -1
  180. package/dist/lib/browser/drivers/local.d.ts +2 -1
  181. package/dist/lib/browser/drivers/ssh.d.ts +2 -3
  182. package/dist/lib/browser/drivers/ssh.js +0 -7
  183. package/dist/lib/browser/firefox-discovery.d.ts +4 -3
  184. package/dist/lib/browser/har.d.ts +8 -7
  185. package/dist/lib/browser/hygiene.d.ts +2 -3
  186. package/dist/lib/browser/hygiene.js +1 -1
  187. package/dist/lib/browser/ipc.d.ts +4 -3
  188. package/dist/lib/browser/ipc.js +1 -1
  189. package/dist/lib/browser/login-detection.d.ts +1 -8
  190. package/dist/lib/browser/registry.d.ts +2 -1
  191. package/dist/lib/browser/remote-control.d.ts +0 -7
  192. package/dist/lib/browser/remote-control.js +2 -2
  193. package/dist/lib/browser/resolve-target.d.ts +2 -6
  194. package/dist/lib/browser/resolve-target.js +3 -3
  195. package/dist/lib/browser/runtime-state.d.ts +59 -4
  196. package/dist/lib/browser/runtime-state.js +99 -18
  197. package/dist/lib/browser/service.d.ts +4 -4
  198. package/dist/lib/browser/service.js +21 -1
  199. package/dist/lib/browser/sessions-list.d.ts +0 -10
  200. package/dist/lib/browser/sessions-list.js +3 -3
  201. package/dist/lib/browser/stream.d.ts +2 -1
  202. package/dist/lib/browser/task-index.d.ts +4 -4
  203. package/dist/lib/browser/task-index.js +1 -1
  204. package/dist/lib/browser/types.d.ts +0 -20
  205. package/dist/lib/browser/types.js +1 -34
  206. package/dist/lib/browser/upload.d.ts +0 -27
  207. package/dist/lib/budget/ledger.d.ts +0 -2
  208. package/dist/lib/budget/ledger.js +1 -1
  209. package/dist/lib/budget/live-cloud.d.ts +2 -1
  210. package/dist/lib/budget/preflight.d.ts +3 -5
  211. package/dist/lib/budget/preflight.js +1 -1
  212. package/dist/lib/catchup.d.ts +2 -1
  213. package/dist/lib/channels/owner-forward.d.ts +5 -4
  214. package/dist/lib/channels/owner-sink.js +2 -2
  215. package/dist/lib/channels/providers/desktop.js +1 -1
  216. package/dist/lib/channels/providers/rush.d.ts +2 -1
  217. package/dist/lib/channels/registry.d.ts +1 -1
  218. package/dist/lib/channels/registry.js +1 -1
  219. package/dist/lib/channels/resolve.d.ts +3 -2
  220. package/dist/lib/channels/send.d.ts +5 -4
  221. package/dist/lib/cli-resources.d.ts +3 -9
  222. package/dist/lib/cli-resources.js +4 -2
  223. package/dist/lib/cloud/cursor.d.ts +1 -2
  224. package/dist/lib/cloud/cursor.js +1 -1
  225. package/dist/lib/cloud/dispatch.d.ts +2 -1
  226. package/dist/lib/cloud/dispatch.js +1 -1
  227. package/dist/lib/cloud/factory.d.ts +0 -2
  228. package/dist/lib/cloud/factory.js +1 -1
  229. package/dist/lib/cloud/rush.d.ts +3 -11
  230. package/dist/lib/cloud/rush.js +1 -1
  231. package/dist/lib/cloud/session-index.d.ts +2 -1
  232. package/dist/lib/cloud/types.d.ts +2 -1
  233. package/dist/lib/cloudflare/creds.d.ts +10 -0
  234. package/dist/lib/cloudflare/creds.js +46 -0
  235. package/dist/lib/cloudflare/provision.d.ts +35 -0
  236. package/dist/lib/cloudflare/provision.js +144 -0
  237. package/dist/lib/codex-policy.d.ts +2 -1
  238. package/dist/lib/commands.d.ts +7 -7
  239. package/dist/lib/commands.js +1 -1
  240. package/dist/lib/comms-render.d.ts +1 -1
  241. package/dist/lib/computer/context.d.ts +11 -3
  242. package/dist/lib/computer/context.js +2 -2
  243. package/dist/lib/computer/policy.d.ts +0 -12
  244. package/dist/lib/computer/policy.js +1 -1
  245. package/dist/lib/computer/sessions-list.d.ts +55 -0
  246. package/dist/lib/computer/sessions-list.js +168 -1
  247. package/dist/lib/computer-client.d.ts +3 -3
  248. package/dist/lib/computer-client.js +0 -1
  249. package/dist/lib/concurrency.d.ts +2 -1
  250. package/dist/lib/config-keys.d.ts +16 -3
  251. package/dist/lib/config-keys.js +47 -2
  252. package/dist/lib/convert.d.ts +0 -12
  253. package/dist/lib/convert.js +1 -12
  254. package/dist/lib/crabbox/cli.d.ts +6 -24
  255. package/dist/lib/crabbox/cli.js +2 -28
  256. package/dist/lib/crabbox/lease.d.ts +5 -6
  257. package/dist/lib/crabbox/lease.js +1 -1
  258. package/dist/lib/crabbox/progress.d.ts +2 -1
  259. package/dist/lib/crabbox/setup-copy.d.ts +2 -3
  260. package/dist/lib/crabbox/setup-copy.js +1 -1
  261. package/dist/lib/daemon/account-state-daemon-service.d.ts +1 -1
  262. package/dist/lib/daemon/attention-notify-service.d.ts +2 -1
  263. package/dist/lib/daemon/catchup-service.d.ts +2 -1
  264. package/dist/lib/daemon/daemon.d.ts +4 -4
  265. package/dist/lib/daemon/daemon.js +9 -2
  266. package/dist/lib/daemon/feed-stream-service.d.ts +23 -0
  267. package/dist/lib/daemon/feed-stream-service.js +40 -0
  268. package/dist/lib/daemon/harness-update-service.d.ts +2 -19
  269. package/dist/lib/daemon/harness-update-service.js +3 -3
  270. package/dist/lib/daemon/runner.d.ts +3 -3
  271. package/dist/lib/daemon/self-update-service.d.ts +1 -16
  272. package/dist/lib/daemon/self-update-service.js +6 -6
  273. package/dist/lib/daemon/state-dir-check-service.d.ts +2 -1
  274. package/dist/lib/daemon/supervisor.d.ts +3 -2
  275. package/dist/lib/daemon-services.d.ts +3 -2
  276. package/dist/lib/daemon-services.js +5 -0
  277. package/dist/lib/daemon-webhooks.d.ts +1 -1
  278. package/dist/lib/deeplink/register.d.ts +3 -13
  279. package/dist/lib/deeplink/register.js +3 -3
  280. package/dist/lib/deeplink/url.d.ts +3 -2
  281. package/dist/lib/device-config.d.ts +4 -15
  282. package/dist/lib/device-config.js +164 -8
  283. package/dist/lib/devices/connect.d.ts +51 -6
  284. package/dist/lib/devices/connect.js +169 -21
  285. package/dist/lib/devices/discovery-policy.d.ts +3 -2
  286. package/dist/lib/devices/doctor-findings.js +1 -1
  287. package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
  288. package/dist/lib/devices/fleet-divergence.d.ts +2 -1
  289. package/dist/lib/devices/fleet.d.ts +3 -4
  290. package/dist/lib/devices/fleet.js +1 -1
  291. package/dist/lib/devices/harness-inventory.d.ts +3 -2
  292. package/dist/lib/devices/health-report.d.ts +3 -2
  293. package/dist/lib/devices/health.d.ts +1 -8
  294. package/dist/lib/devices/health.js +1 -1
  295. package/dist/lib/devices/interactive-host.d.ts +0 -2
  296. package/dist/lib/devices/interactive-host.js +1 -1
  297. package/dist/lib/devices/known-hosts.d.ts +2 -20
  298. package/dist/lib/devices/known-hosts.js +2 -2
  299. package/dist/lib/devices/pool.d.ts +2 -1
  300. package/dist/lib/devices/resolve-target.d.ts +2 -2
  301. package/dist/lib/devices/rollout-verify.d.ts +3 -2
  302. package/dist/lib/devices/stats-cache.d.ts +3 -2
  303. package/dist/lib/devices/sync.d.ts +6 -5
  304. package/dist/lib/devices/worker-pick.d.ts +3 -12
  305. package/dist/lib/devices/worker-pick.js +1 -1
  306. package/dist/lib/diff-text.d.ts +2 -1
  307. package/dist/lib/doctor-diff.d.ts +2 -1
  308. package/dist/lib/drift-sync.d.ts +3 -2
  309. package/dist/lib/drift.d.ts +3 -3
  310. package/dist/lib/drift.js +1 -1
  311. package/dist/lib/event-families.d.ts +0 -6
  312. package/dist/lib/event-families.js +3 -3
  313. package/dist/lib/event-provenance.d.ts +2 -1
  314. package/dist/lib/events-ingest.d.ts +4 -3
  315. package/dist/lib/exec-account-home.d.ts +2 -4
  316. package/dist/lib/exec-account-home.js +1 -1
  317. package/dist/lib/exec-bounded.d.ts +3 -4
  318. package/dist/lib/exec-bounded.js +1 -1
  319. package/dist/lib/exec.d.ts +6 -18
  320. package/dist/lib/exec.js +1 -1
  321. package/dist/lib/factory/snapshot.d.ts +2 -2
  322. package/dist/lib/factory/snapshot.js +1 -1
  323. package/dist/lib/feed/activity-stream.d.ts +2 -5
  324. package/dist/lib/feed/activity-stream.js +2 -2
  325. package/dist/lib/feed/activity.d.ts +8 -33
  326. package/dist/lib/feed/activity.js +8 -8
  327. package/dist/lib/feed/answer.d.ts +3 -2
  328. package/dist/lib/feed/attention.js +5 -1
  329. package/dist/lib/feed/envelope.d.ts +79 -0
  330. package/dist/lib/feed/envelope.js +23 -0
  331. package/dist/lib/feed/events.d.ts +8 -47
  332. package/dist/lib/feed/events.js +9 -141
  333. package/dist/lib/feed/feed.d.ts +9 -42
  334. package/dist/lib/feed/feed.js +1 -60
  335. package/dist/lib/feed/hub-server.d.ts +86 -0
  336. package/dist/lib/feed/hub-server.js +334 -0
  337. package/dist/lib/feed/hub.d.ts +95 -0
  338. package/dist/lib/feed/hub.js +255 -0
  339. package/dist/lib/feed/pr-status.d.ts +0 -2
  340. package/dist/lib/feed/pr-status.js +1 -5
  341. package/dist/lib/feed/tool-activity.d.ts +108 -0
  342. package/dist/lib/feed/tool-activity.js +313 -0
  343. package/dist/lib/feed/tools.d.ts +198 -0
  344. package/dist/lib/feed/tools.js +265 -0
  345. package/dist/lib/feed/watch.d.ts +51 -52
  346. package/dist/lib/feed/watch.js +147 -17
  347. package/dist/lib/feed-broadcast.d.ts +5 -47
  348. package/dist/lib/feed-broadcast.js +9 -9
  349. package/dist/lib/feed-outcome.d.ts +3 -6
  350. package/dist/lib/feed-outcome.js +2 -2
  351. package/dist/lib/feed-policy.d.ts +5 -6
  352. package/dist/lib/feed-policy.js +2 -2
  353. package/dist/lib/feed-post.d.ts +3 -4
  354. package/dist/lib/feed-post.js +1 -1
  355. package/dist/lib/feed-ranking.d.ts +2 -2
  356. package/dist/lib/feed-ranking.js +1 -1
  357. package/dist/lib/fleet/apply.d.ts +5 -6
  358. package/dist/lib/fleet/apply.js +4 -4
  359. package/dist/lib/fleet/manifest.d.ts +2 -1
  360. package/dist/lib/fleet/remote-login.d.ts +18 -36
  361. package/dist/lib/fleet/remote-login.js +20 -19
  362. package/dist/lib/fleet/types.d.ts +0 -8
  363. package/dist/lib/fleet-cache.d.ts +1 -18
  364. package/dist/lib/fleet-cache.js +0 -5
  365. package/dist/lib/fleet-shared-repo-sync.d.ts +3 -3
  366. package/dist/lib/fleet-shared-repo-sync.js +1 -1
  367. package/dist/lib/fleet-shared-state.d.ts +3 -2
  368. package/dist/lib/format.d.ts +3 -2
  369. package/dist/lib/format.js +1 -1
  370. package/dist/lib/friction-heuristics.d.ts +2 -1
  371. package/dist/lib/fs-walk.d.ts +2 -1
  372. package/dist/lib/fuzzy.d.ts +2 -1
  373. package/dist/lib/gemini-settings.d.ts +0 -1
  374. package/dist/lib/gemini-settings.js +1 -1
  375. package/dist/lib/git.d.ts +7 -81
  376. package/dist/lib/git.js +2 -199
  377. package/dist/lib/github/gh-overload.d.ts +0 -4
  378. package/dist/lib/github/gh-overload.js +2 -2
  379. package/dist/lib/github/project-prs.d.ts +118 -0
  380. package/dist/lib/github/project-prs.js +173 -0
  381. package/dist/lib/github/rest.d.ts +2 -1
  382. package/dist/lib/harness/exec-config-version.d.ts +2 -1
  383. package/dist/lib/harness-auth-capabilities.d.ts +5 -4
  384. package/dist/lib/harness-connection-test.d.ts +2 -1
  385. package/dist/lib/heal.d.ts +3 -20
  386. package/dist/lib/heal.js +2 -39
  387. package/dist/lib/help.d.ts +3 -2
  388. package/dist/lib/helper-download.d.ts +0 -12
  389. package/dist/lib/helper-download.js +2 -2
  390. package/dist/lib/helper-versions.d.ts +2 -1
  391. package/dist/lib/helper-versions.js +1 -1
  392. package/dist/lib/hooks/install.d.ts +8 -49
  393. package/dist/lib/hooks/install.js +2 -96
  394. package/dist/lib/hooks/match.d.ts +2 -1
  395. package/dist/lib/hosts/credential-transport.d.ts +0 -2
  396. package/dist/lib/hosts/credential-transport.js +1 -1
  397. package/dist/lib/hosts/dispatch.d.ts +2 -24
  398. package/dist/lib/hosts/dispatch.js +2 -2
  399. package/dist/lib/hosts/logs.d.ts +2 -1
  400. package/dist/lib/hosts/passthrough.d.ts +1 -1
  401. package/dist/lib/hosts/passthrough.js +0 -1
  402. package/dist/lib/hosts/progress.d.ts +0 -5
  403. package/dist/lib/hosts/progress.js +1 -1
  404. package/dist/lib/hosts/ready.d.ts +3 -4
  405. package/dist/lib/hosts/ready.js +0 -8
  406. package/dist/lib/hosts/reconcile.d.ts +2 -8
  407. package/dist/lib/hosts/reconcile.js +1 -1
  408. package/dist/lib/hosts/reconnect.d.ts +4 -11
  409. package/dist/lib/hosts/reconnect.js +2 -2
  410. package/dist/lib/hosts/registry.d.ts +1 -1
  411. package/dist/lib/hosts/remote-cmd.d.ts +55 -4
  412. package/dist/lib/hosts/remote-cmd.js +125 -8
  413. package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +2 -0
  414. package/dist/lib/hosts/remote-cmd.test-fixture.js +22 -0
  415. package/dist/lib/hosts/session-index.d.ts +3 -2
  416. package/dist/lib/hosts/ssh-config.d.ts +2 -3
  417. package/dist/lib/hosts/ssh-config.js +0 -10
  418. package/dist/lib/humans.d.ts +0 -2
  419. package/dist/lib/humans.js +2 -2
  420. package/dist/lib/import.d.ts +4 -3
  421. package/dist/lib/installations/installation-lock.d.ts +0 -2
  422. package/dist/lib/installations/installation-lock.js +2 -2
  423. package/dist/lib/installations/launch-gate.d.ts +0 -9
  424. package/dist/lib/installations/launch-gate.js +1 -1
  425. package/dist/lib/installations/migrate.d.ts +0 -11
  426. package/dist/lib/installations/migrate.js +1 -1
  427. package/dist/lib/installations/shims.d.ts +1 -1
  428. package/dist/lib/installations/shims.js +2 -2
  429. package/dist/lib/installations/update-runtime.js +1 -1
  430. package/dist/lib/linear-cache.d.ts +2 -1
  431. package/dist/lib/linux-userns.d.ts +2 -3
  432. package/dist/lib/linux-userns.js +0 -4
  433. package/dist/lib/loop.d.ts +2 -1
  434. package/dist/lib/mailbox-gc.d.ts +2 -1
  435. package/dist/lib/mailbox-target.d.ts +2 -1
  436. package/dist/lib/mailbox.d.ts +0 -6
  437. package/dist/lib/mailbox.js +1 -1
  438. package/dist/lib/manifest.d.ts +0 -14
  439. package/dist/lib/manifest.js +2 -2
  440. package/dist/lib/mcp-registry.d.ts +2 -1
  441. package/dist/lib/mcp.js +17 -11
  442. package/dist/lib/memory.d.ts +2 -13
  443. package/dist/lib/memory.js +4 -4
  444. package/dist/lib/menubar/download-menubar.d.ts +0 -2
  445. package/dist/lib/menubar/download-menubar.js +1 -5
  446. package/dist/lib/menubar/install-menubar.d.ts +3 -14
  447. package/dist/lib/menubar/install-menubar.js +3 -3
  448. package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
  449. package/dist/lib/menubar/migrate-prefs.js +168 -0
  450. package/dist/lib/menubar/resolve-version.d.ts +1 -9
  451. package/dist/lib/menubar/resolve-version.js +4 -4
  452. package/dist/lib/menubar/snapshot.d.ts +24 -2
  453. package/dist/lib/menubar/snapshot.js +26 -0
  454. package/dist/lib/model-tier-overrides.d.ts +3 -2
  455. package/dist/lib/monitors/config.d.ts +0 -2
  456. package/dist/lib/monitors/config.js +0 -4
  457. package/dist/lib/monitors/engine.d.ts +1 -1
  458. package/dist/lib/monitors/remote.d.ts +3 -2
  459. package/dist/lib/monitors/sources/webhook.d.ts +2 -15
  460. package/dist/lib/monitors/sources/webhook.js +1 -38
  461. package/dist/lib/monitors/state.d.ts +4 -7
  462. package/dist/lib/monitors/state.js +2 -2
  463. package/dist/lib/notify.d.ts +1 -1
  464. package/dist/lib/notify.js +1 -1
  465. package/dist/lib/onepassword.d.ts +5 -14
  466. package/dist/lib/onepassword.js +0 -64
  467. package/dist/lib/open-url.d.ts +3 -2
  468. package/dist/lib/openclaw-keychain.d.ts +4 -17
  469. package/dist/lib/openclaw-keychain.js +3 -33
  470. package/dist/lib/operator.d.ts +2 -2
  471. package/dist/lib/operator.js +1 -1
  472. package/dist/lib/output/git-output.d.ts +4 -14
  473. package/dist/lib/output/git-output.js +1 -1
  474. package/dist/lib/owner-message.d.ts +3 -29
  475. package/dist/lib/owner-message.js +3 -3
  476. package/dist/lib/packages/output-home.d.ts +2 -4
  477. package/dist/lib/packages/output-home.js +2 -2
  478. package/dist/lib/perf/db.d.ts +0 -2
  479. package/dist/lib/perf/db.js +2 -7
  480. package/dist/lib/permissions-registry.d.ts +2 -3
  481. package/dist/lib/permissions-registry.js +0 -4
  482. package/dist/lib/permissions.d.ts +6 -16
  483. package/dist/lib/permissions.js +2 -15
  484. package/dist/lib/picker.d.ts +6 -5
  485. package/dist/lib/placement.d.ts +3 -6
  486. package/dist/lib/placement.js +0 -17
  487. package/dist/lib/platform/posixpath.d.ts +2 -1
  488. package/dist/lib/platform/winpath.d.ts +2 -1
  489. package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
  490. package/dist/lib/plugins/plugin-marketplace.js +1 -1
  491. package/dist/lib/pr-land-detach.d.ts +2 -1
  492. package/dist/lib/probe.d.ts +4 -1
  493. package/dist/lib/probe.js +5 -2
  494. package/dist/lib/profiles-presets.d.ts +2 -1
  495. package/dist/lib/profiles.d.ts +3 -9
  496. package/dist/lib/profiles.js +1 -9
  497. package/dist/lib/project-doctor.d.ts +2 -1
  498. package/dist/lib/project-launch.d.ts +2 -2
  499. package/dist/lib/project-probe.d.ts +4 -3
  500. package/dist/lib/project-pull.d.ts +2 -1
  501. package/dist/lib/project-resources.d.ts +2 -2
  502. package/dist/lib/project-resources.js +1 -1
  503. package/dist/lib/project-root.d.ts +2 -6
  504. package/dist/lib/project-root.js +1 -1
  505. package/dist/lib/project-schedule.d.ts +2 -1
  506. package/dist/lib/project-status.d.ts +2 -16
  507. package/dist/lib/project-status.js +3 -3
  508. package/dist/lib/pwsh.d.ts +33 -0
  509. package/dist/lib/pwsh.js +56 -0
  510. package/dist/lib/reconcile-and-repair.d.ts +5 -4
  511. package/dist/lib/redact.d.ts +15 -1
  512. package/dist/lib/redact.js +105 -3
  513. package/dist/lib/refresh-coordinator.d.ts +2 -1
  514. package/dist/lib/refresh.d.ts +9 -4
  515. package/dist/lib/refresh.js +92 -72
  516. package/dist/lib/remote-agents-json.d.ts +3 -2
  517. package/dist/lib/reserved-stores.d.ts +0 -2
  518. package/dist/lib/reserved-stores.js +3 -5
  519. package/dist/lib/resource-content-diff.d.ts +0 -2
  520. package/dist/lib/resource-content-diff.js +1 -1
  521. package/dist/lib/resource-patterns.d.ts +2 -1
  522. package/dist/lib/resource-profiles.d.ts +2 -8
  523. package/dist/lib/resource-profiles.js +3 -27
  524. package/dist/lib/resources/workflows.d.ts +1 -1
  525. package/dist/lib/resources.d.ts +4 -9
  526. package/dist/lib/resources.js +1 -1
  527. package/dist/lib/routine-context.d.ts +2 -5
  528. package/dist/lib/routine-context.js +2 -2
  529. package/dist/lib/routine-notify-owner.d.ts +8 -7
  530. package/dist/lib/routine-notify-owner.js +5 -5
  531. package/dist/lib/routine-process-cleanup.d.ts +2 -1
  532. package/dist/lib/routine-readiness.d.ts +0 -2
  533. package/dist/lib/routine-readiness.js +0 -7
  534. package/dist/lib/routines-project.d.ts +3 -4
  535. package/dist/lib/routines-project.js +1 -1
  536. package/dist/lib/rules/compile.d.ts +3 -25
  537. package/dist/lib/rules/compile.js +1 -1
  538. package/dist/lib/rules/compose.d.ts +3 -9
  539. package/dist/lib/rules/rules.d.ts +4 -15
  540. package/dist/lib/rules/rules.js +1 -64
  541. package/dist/lib/run-defaults.d.ts +1 -1
  542. package/dist/lib/run-notify.d.ts +2 -1
  543. package/dist/lib/run-trace-sync.d.ts +1 -1
  544. package/dist/lib/run-trace-sync.js +1 -1
  545. package/dist/lib/scheduler.d.ts +2 -1
  546. package/dist/lib/scheduling/routines.d.ts +9 -21
  547. package/dist/lib/scheduling/routines.js +3 -46
  548. package/dist/lib/secrets-cli.d.ts +11 -0
  549. package/dist/lib/secrets-cli.js +30 -0
  550. package/dist/lib/secrets-client.d.ts +0 -17
  551. package/dist/lib/secrets-client.js +7 -28
  552. package/dist/lib/secrets-policy.d.ts +12 -17
  553. package/dist/lib/secrets-policy.js +5 -5
  554. package/dist/lib/secrets-types.d.ts +3 -2
  555. package/dist/lib/secrets-types.js +2 -1
  556. package/dist/lib/self-heal/checks/install-staging.js +1 -1
  557. package/dist/lib/self-heal/registry.d.ts +3 -2
  558. package/dist/lib/self-heal/types.d.ts +1 -1
  559. package/dist/lib/self-heal/types.js +1 -1
  560. package/dist/lib/self-update.d.ts +5 -5
  561. package/dist/lib/self-update.js +4 -4
  562. package/dist/lib/session/actor-sidecar.d.ts +3 -2
  563. package/dist/lib/session/artifacts.d.ts +0 -2
  564. package/dist/lib/session/artifacts.js +1 -1
  565. package/dist/lib/session/bash-command.d.ts +2 -7
  566. package/dist/lib/session/bundle.d.ts +4 -6
  567. package/dist/lib/session/bundle.js +1 -5
  568. package/dist/lib/session/cloud.d.ts +0 -4
  569. package/dist/lib/session/cloud.js +2 -15
  570. package/dist/lib/session/detached.d.ts +9 -1
  571. package/dist/lib/session/detached.js +31 -2
  572. package/dist/lib/session/digest.d.ts +2 -2
  573. package/dist/lib/session/digest.js +1 -1
  574. package/dist/lib/session/fork.d.ts +3 -2
  575. package/dist/lib/session/highlights.d.ts +6 -5
  576. package/dist/lib/session/hook-sessions.d.ts +2 -1
  577. package/dist/lib/session/host-link.d.ts +2 -1
  578. package/dist/lib/session/inject.d.ts +1 -1
  579. package/dist/lib/session/inject.js +1 -1
  580. package/dist/lib/session/insights.d.ts +3 -15
  581. package/dist/lib/session/insights.js +2 -2
  582. package/dist/lib/session/local-tmux-attach.d.ts +2 -18
  583. package/dist/lib/session/local-tmux-attach.js +1 -1
  584. package/dist/lib/session/migrations.d.ts +0 -1
  585. package/dist/lib/session/migrations.js +1 -1
  586. package/dist/lib/session/mirror.d.ts +5 -8
  587. package/dist/lib/session/mirror.js +2 -2
  588. package/dist/lib/session/parse.d.ts +1 -32
  589. package/dist/lib/session/parse.js +4 -4
  590. package/dist/lib/session/presence.d.ts +2 -1
  591. package/dist/lib/session/prompt.d.ts +3 -2
  592. package/dist/lib/session/prompt.js +38 -1
  593. package/dist/lib/session/recovery.d.ts +3 -2
  594. package/dist/lib/session/remote/peer-stream.d.ts +26 -7
  595. package/dist/lib/session/remote/peer-stream.js +35 -8
  596. package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
  597. package/dist/lib/session/remote/remote-list.d.ts +5 -5
  598. package/dist/lib/session/remote/remote.d.ts +4 -3
  599. package/dist/lib/session/remote/watch.d.ts +2 -7
  600. package/dist/lib/session/remote/watch.js +3 -3
  601. package/dist/lib/session/remote-active.d.ts +2 -1
  602. package/dist/lib/session/render.d.ts +2 -2
  603. package/dist/lib/session/render.js +1 -1
  604. package/dist/lib/session/resume-owner.d.ts +1 -1
  605. package/dist/lib/session/resume-owner.js +1 -1
  606. package/dist/lib/session/run-names.d.ts +2 -1
  607. package/dist/lib/session/session-cache.d.ts +7 -26
  608. package/dist/lib/session/session-cache.js +2 -8
  609. package/dist/lib/session/share-html.d.ts +1 -21
  610. package/dist/lib/session/share-html.js +1 -1
  611. package/dist/lib/session/shell-programs.d.ts +2 -1
  612. package/dist/lib/session/state.d.ts +41 -8
  613. package/dist/lib/session/state.js +112 -11
  614. package/dist/lib/session/stream-render.d.ts +2 -1
  615. package/dist/lib/session/sync/agents.d.ts +0 -4
  616. package/dist/lib/session/sync/agents.js +0 -0
  617. package/dist/lib/session/sync/backend.d.ts +8 -8
  618. package/dist/lib/session/sync/backend.js +3 -3
  619. package/dist/lib/session/sync/managed-config.d.ts +0 -8
  620. package/dist/lib/session/sync/managed-key.d.ts +0 -2
  621. package/dist/lib/session/sync/managed-key.js +1 -1
  622. package/dist/lib/session/sync/provision.d.ts +1 -1
  623. package/dist/lib/session/sync/provision.js +2 -2
  624. package/dist/lib/session/sync/r2.d.ts +4 -1
  625. package/dist/lib/session/sync/r2.js +4 -7
  626. package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
  627. package/dist/lib/session/tail.d.ts +2 -1
  628. package/dist/lib/session/team-filter.d.ts +1 -1
  629. package/dist/lib/session/throughput.d.ts +2 -3
  630. package/dist/lib/session/throughput.js +1 -1
  631. package/dist/lib/session/timeline-pass.d.ts +3 -42
  632. package/dist/lib/session/timeline-pass.js +4 -4
  633. package/dist/lib/session/timeline.d.ts +3 -13
  634. package/dist/lib/session/timeline.js +3 -3
  635. package/dist/lib/session/tool-calls.d.ts +2 -2
  636. package/dist/lib/session/tool-calls.js +1 -1
  637. package/dist/lib/session/tool-index.d.ts +0 -8
  638. package/dist/lib/session/tool-index.js +2 -2
  639. package/dist/lib/session/tool-store.d.ts +2 -1
  640. package/dist/lib/session/trajectory-compare.d.ts +2 -1
  641. package/dist/lib/session/trajectory-lineage.d.ts +2 -1
  642. package/dist/lib/session/trajectory-text.d.ts +3 -2
  643. package/dist/lib/session/trajectory.d.ts +2 -1
  644. package/dist/lib/session/viewing-in.d.ts +2 -1
  645. package/dist/lib/sessions-client.js +0 -3
  646. package/dist/lib/settings-manifest.d.ts +2 -1
  647. package/dist/lib/setup-tool-install.d.ts +3 -0
  648. package/dist/lib/setup-tool-install.js +26 -0
  649. package/dist/lib/setup-tool-status.d.ts +22 -0
  650. package/dist/lib/setup-tool-status.js +215 -0
  651. package/dist/lib/share-runtime.d.ts +11 -0
  652. package/dist/lib/share-runtime.js +63 -0
  653. package/dist/lib/shim-heal.d.ts +1 -5
  654. package/dist/lib/shim-heal.js +0 -6
  655. package/dist/lib/smart-launch.d.ts +5 -10
  656. package/dist/lib/smart-launch.js +4 -12
  657. package/dist/lib/snapshot.d.ts +3 -2
  658. package/dist/lib/ssh-exec.d.ts +49 -4
  659. package/dist/lib/ssh-exec.js +119 -0
  660. package/dist/lib/ssh-tunnel.d.ts +3 -2
  661. package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
  662. package/dist/lib/staleness/checkers/permissions.js +1 -1
  663. package/dist/lib/staleness/fingerprint.d.ts +0 -7
  664. package/dist/lib/staleness/fingerprint.js +1 -1
  665. package/dist/lib/staleness/prune.d.ts +3 -2
  666. package/dist/lib/staleness/registry.d.ts +1 -1
  667. package/dist/lib/staleness/writers/sources.d.ts +0 -8
  668. package/dist/lib/staleness/writers/sources.js +1 -1
  669. package/dist/lib/startup/command-registry.d.ts +6 -4
  670. package/dist/lib/startup/command-registry.js +11 -8
  671. package/dist/lib/state.d.ts +1 -3
  672. package/dist/lib/state.js +3 -6
  673. package/dist/lib/storage/selection.d.ts +2 -2
  674. package/dist/lib/storage/selection.js +2 -2
  675. package/dist/lib/subagents-registry.d.ts +4 -3
  676. package/dist/lib/subagents.d.ts +2 -1
  677. package/dist/lib/subagents.js +3 -2
  678. package/dist/lib/summarizer/pass.d.ts +3 -6
  679. package/dist/lib/summarizer/pass.js +2 -2
  680. package/dist/lib/summarizer/summarize.d.ts +4 -3
  681. package/dist/lib/sync-passphrase.d.ts +3 -2
  682. package/dist/lib/sync-status.d.ts +3 -16
  683. package/dist/lib/sync-status.js +2 -2
  684. package/dist/lib/sync-umbrella.d.ts +9 -3
  685. package/dist/lib/sync-umbrella.js +18 -10
  686. package/dist/lib/system-run-sync.d.ts +2 -1
  687. package/dist/lib/teams/agents.d.ts +2 -4
  688. package/dist/lib/teams/agents.js +1 -1
  689. package/dist/lib/teams/forEach.d.ts +3 -2
  690. package/dist/lib/teams/pr-watch.d.ts +4 -11
  691. package/dist/lib/teams/pr-watch.js +4 -4
  692. package/dist/lib/teams/registry.d.ts +2 -3
  693. package/dist/lib/teams/registry.js +1 -1
  694. package/dist/lib/teams/remoteWorktree.d.ts +0 -16
  695. package/dist/lib/teams/remoteWorktree.js +3 -3
  696. package/dist/lib/teams/scheduler.d.ts +6 -5
  697. package/dist/lib/teams/scheduler.js +1 -1
  698. package/dist/lib/teams/supervisor.d.ts +4 -3
  699. package/dist/lib/teams/worktree.d.ts +0 -9
  700. package/dist/lib/teams/worktree.js +0 -32
  701. package/dist/lib/term-client.d.ts +44 -0
  702. package/dist/lib/term-client.js +117 -0
  703. package/dist/lib/terminal/inject.d.ts +3 -16
  704. package/dist/lib/terminal/inject.js +1 -29
  705. package/dist/lib/terminal/resolve.d.ts +3 -9
  706. package/dist/lib/terminal/resolve.js +3 -7
  707. package/dist/lib/tmux/binary.d.ts +2 -1
  708. package/dist/lib/tmux/orphan-reap.d.ts +6 -7
  709. package/dist/lib/tmux/orphan-reap.js +1 -1
  710. package/dist/lib/tmux/session.d.ts +4 -3
  711. package/dist/lib/traces/backend.d.ts +1 -2
  712. package/dist/lib/traces/backend.js +1 -2
  713. package/dist/lib/traces/classify.d.ts +3 -2
  714. package/dist/lib/traces/config.d.ts +0 -8
  715. package/dist/lib/traces/insights.d.ts +2 -1
  716. package/dist/lib/traces/phenotype.d.ts +3 -3
  717. package/dist/lib/traces/provision.d.ts +2 -4
  718. package/dist/lib/traces/provision.js +3 -3
  719. package/dist/lib/traces/schema2-build.d.ts +1 -1
  720. package/dist/lib/traces/schema2-danger.d.ts +2 -1
  721. package/dist/lib/traces/schema2.d.ts +5 -4
  722. package/dist/lib/traces/segments.d.ts +4 -20
  723. package/dist/lib/traces/segments.js +3 -3
  724. package/dist/lib/traces/sync.d.ts +2 -3
  725. package/dist/lib/traces/sync.js +1 -1
  726. package/dist/lib/triggers/handlers.d.ts +4 -13
  727. package/dist/lib/triggers/handlers.js +1 -1
  728. package/dist/lib/triggers/webhook.d.ts +5 -27
  729. package/dist/lib/triggers/webhook.js +4 -4
  730. package/dist/lib/types.d.ts +11 -9
  731. package/dist/lib/usage-refresh.d.ts +4 -10
  732. package/dist/lib/usage-refresh.js +3 -8
  733. package/dist/lib/verbs.d.ts +2 -1
  734. package/dist/lib/version-duplicates.d.ts +2 -3
  735. package/dist/lib/version-duplicates.js +3 -33
  736. package/dist/lib/version.d.ts +2 -1
  737. package/dist/lib/warn-unpushed.d.ts +2 -1
  738. package/dist/lib/watchdog/history.d.ts +3 -2
  739. package/dist/lib/watchdog/log.d.ts +0 -6
  740. package/dist/lib/watchdog/log.js +1 -1
  741. package/dist/lib/watchdog/rotate.d.ts +2 -26
  742. package/dist/lib/watchdog/rotate.js +4 -12
  743. package/dist/lib/watchdog/runner.d.ts +0 -7
  744. package/dist/lib/watchdog/runner.js +4 -4
  745. package/dist/lib/watchdog/service.d.ts +2 -2
  746. package/dist/lib/watchdog/service.js +1 -1
  747. package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
  748. package/dist/lib/watchdog/watchdog.d.ts +2 -1
  749. package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
  750. package/dist/lib/workflows-registry.d.ts +3 -2
  751. package/dist/lib/workflows.d.ts +4 -7
  752. package/dist/lib/workflows.js +1 -1
  753. package/dist/lib/worktree/held.d.ts +4 -28
  754. package/dist/lib/worktree/held.js +3 -3
  755. package/package.json +3 -5
  756. package/scripts/postinstall.js +5 -4
  757. package/dist/commands/artifacts-setup.d.ts +0 -53
  758. package/dist/commands/artifacts-setup.js +0 -161
  759. package/dist/commands/artifacts.d.ts +0 -18
  760. package/dist/commands/artifacts.js +0 -58
  761. package/dist/commands/attach.d.ts +0 -12
  762. package/dist/commands/attach.js +0 -86
  763. package/dist/commands/auth-mint.d.ts +0 -12
  764. package/dist/commands/auth-mint.js +0 -108
  765. package/dist/commands/pty.d.ts +0 -20
  766. package/dist/commands/pty.js +0 -404
  767. package/dist/commands/reconnect.d.ts +0 -46
  768. package/dist/commands/reconnect.js +0 -115
  769. package/dist/commands/share.d.ts +0 -293
  770. package/dist/commands/share.js +0 -1424
  771. package/dist/lib/config-machine-keys.d.ts +0 -14
  772. package/dist/lib/config-machine-keys.js +0 -21
  773. package/dist/lib/pty-client.d.ts +0 -49
  774. package/dist/lib/pty-client.js +0 -315
  775. package/dist/lib/pty-server.d.ts +0 -59
  776. package/dist/lib/pty-server.js +0 -653
  777. package/dist/lib/share/analytics.d.ts +0 -13
  778. package/dist/lib/share/analytics.js +0 -45
  779. package/dist/lib/share/backend.d.ts +0 -120
  780. package/dist/lib/share/backend.js +0 -176
  781. package/dist/lib/share/capture.d.ts +0 -31
  782. package/dist/lib/share/capture.js +0 -174
  783. package/dist/lib/share/config.d.ts +0 -72
  784. package/dist/lib/share/config.js +0 -211
  785. package/dist/lib/share/delete.d.ts +0 -122
  786. package/dist/lib/share/delete.js +0 -173
  787. package/dist/lib/share/html.d.ts +0 -22
  788. package/dist/lib/share/html.js +0 -88
  789. package/dist/lib/share/http-error.d.ts +0 -52
  790. package/dist/lib/share/http-error.js +0 -65
  791. package/dist/lib/share/og.d.ts +0 -25
  792. package/dist/lib/share/og.js +0 -84
  793. package/dist/lib/share/provision.d.ts +0 -127
  794. package/dist/lib/share/provision.js +0 -285
  795. package/dist/lib/share/publish.d.ts +0 -388
  796. package/dist/lib/share/publish.js +0 -818
  797. package/dist/lib/share/worker-template.d.ts +0 -27
  798. package/dist/lib/share/worker-template.js +0 -2424
  799. package/dist/lib/storage/index.d.ts +0 -14
  800. package/dist/lib/storage/index.js +0 -14
  801. package/dist/lib/storage/visibility.d.ts +0 -82
  802. package/dist/lib/storage/visibility.js +0 -99
@@ -10,7 +10,7 @@ export interface RecoveryAccount {
10
10
  label: string;
11
11
  email: string | null;
12
12
  }
13
- export interface SessionRecoverySelection {
13
+ interface SessionRecoverySelection {
14
14
  /** Installed binary only; account homes retain their own context label. */
15
15
  executableVersion?: string;
16
16
  /** Explicit account selector resolved against the local candidate pool. */
@@ -38,7 +38,7 @@ export type SessionRecoveryTarget = {
38
38
  account?: RecoveryAccount;
39
39
  reason: string;
40
40
  };
41
- export type NativeResumeInspection = {
41
+ type NativeResumeInspection = {
42
42
  available: true;
43
43
  cwd?: string;
44
44
  } | {
@@ -92,3 +92,4 @@ export declare function resolveSessionRecovery(session: SessionMeta, collect?: (
92
92
  * the recovery resolver above; callers must not native-resume another version's
93
93
  * isolated home themselves. */
94
94
  export declare function sessionRecoveryRunArgs(session: Pick<SessionMeta, 'id'>): string[];
95
+ export {};
@@ -5,16 +5,30 @@ export declare const PEER_BACKOFF_BASE_MS = 2000;
5
5
  export declare const PEER_BACKOFF_CAP_MS = 60000;
6
6
  /** Consecutive failed spawns before the peer is parked. */
7
7
  export declare const PEER_PARK_AFTER_FAILURES = 3;
8
- /** Bytes of a peer's stderr retained for the `unavailable` reason. */
9
- export declare const PEER_STDERR_BYTES = 2048;
10
- /** How often a parked peer re-checks the device registry for a refresh. */
11
- export declare const PEER_REGISTRY_POLL_MS = 5000;
8
+ /**
9
+ * Consecutive failed spawns before the peer is RETIRED — the capped 60 s ladder
10
+ * gives way to {@link PEER_RETIRED_RECHECK_MS}.
11
+ *
12
+ * The cap alone bounds the delay but not the total work: a box that is off for a
13
+ * weekend was dialed every 60 s for two days, ~2,880 ssh children per watcher
14
+ * per peer, each one already known to fail. Ten consecutive failures is well
15
+ * past any transient network event, so past that point the peer is treated as
16
+ * genuinely absent and re-dialed on the slow cadence instead.
17
+ */
18
+ export declare const PEER_RETIRE_AFTER_FAILURES = 10;
19
+ /**
20
+ * Re-dial cadence for a retired peer. Still bounded rather than never, because a
21
+ * box can come back without anything touching the device registry — waiting
22
+ * only on a registry change would leave it unreachable until an operator acted.
23
+ */
24
+ export declare const PEER_RETIRED_RECHECK_MS: number;
12
25
  /**
13
26
  * Reconnect delay for `failures` consecutive failed spawns: 0 for a healthy
14
- * peer, then {@link PEER_BACKOFF_BASE_MS} doubling to {@link PEER_BACKOFF_CAP_MS}.
27
+ * peer, then {@link PEER_BACKOFF_BASE_MS} doubling to {@link PEER_BACKOFF_CAP_MS},
28
+ * and {@link PEER_RETIRED_RECHECK_MS} once the peer is retired.
15
29
  */
16
- export declare function peerBackoffDelayMs(failures: number, base?: number, cap?: number): number;
17
- export interface PeerStreamOptions {
30
+ export declare function peerBackoffDelayMs(failures: number, base?: number, cap?: number, retireAfter?: number, retiredMs?: number): number;
31
+ interface PeerStreamOptions {
18
32
  /** The device to subscribe to. */
19
33
  device: DeviceProfile;
20
34
  /** Remote command to run over ssh, already shell-quoted for the peer's OS. */
@@ -33,6 +47,10 @@ export interface PeerStreamOptions {
33
47
  backoffCapMs?: number;
34
48
  /** Override the park threshold (tests). */
35
49
  parkAfterFailures?: number;
50
+ /** Override the retire threshold (tests). */
51
+ retireAfterFailures?: number;
52
+ /** Override the retired re-dial cadence (tests). */
53
+ retiredRecheckMs?: number;
36
54
  /** Override the ssh binary (tests). */
37
55
  sshBin?: string;
38
56
  /** Override the parked peer's registry re-check cadence (tests). */
@@ -45,3 +63,4 @@ export interface PeerStreamOptions {
45
63
  * backoff. Resolves when the signal aborts or the peer cannot be addressed.
46
64
  */
47
65
  export declare function streamFromPeer(options: PeerStreamOptions): Promise<void>;
66
+ export {};
@@ -19,6 +19,9 @@
19
19
  * - a peer that fails {@link PEER_PARK_AFTER_FAILURES} spawns in a row parked —
20
20
  * it stops the reconnect cycle and re-dials only when the device registry
21
21
  * changes or the capped backoff elapses;
22
+ * - a peer that fails {@link PEER_RETIRE_AFTER_FAILURES} in a row RETIRED — the
23
+ * capped 60 s ladder is itself unbounded in total work, so past that point the
24
+ * re-dial drops to {@link PEER_RETIRED_RECHECK_MS};
22
25
  * - abort listeners removed per iteration, so a watcher open for hours does not
23
26
  * accumulate one per reconnect on the caller's AbortSignal.
24
27
  */
@@ -34,17 +37,37 @@ export const PEER_BACKOFF_BASE_MS = 2_000;
34
37
  export const PEER_BACKOFF_CAP_MS = 60_000;
35
38
  /** Consecutive failed spawns before the peer is parked. */
36
39
  export const PEER_PARK_AFTER_FAILURES = 3;
40
+ /**
41
+ * Consecutive failed spawns before the peer is RETIRED — the capped 60 s ladder
42
+ * gives way to {@link PEER_RETIRED_RECHECK_MS}.
43
+ *
44
+ * The cap alone bounds the delay but not the total work: a box that is off for a
45
+ * weekend was dialed every 60 s for two days, ~2,880 ssh children per watcher
46
+ * per peer, each one already known to fail. Ten consecutive failures is well
47
+ * past any transient network event, so past that point the peer is treated as
48
+ * genuinely absent and re-dialed on the slow cadence instead.
49
+ */
50
+ export const PEER_RETIRE_AFTER_FAILURES = 10;
51
+ /**
52
+ * Re-dial cadence for a retired peer. Still bounded rather than never, because a
53
+ * box can come back without anything touching the device registry — waiting
54
+ * only on a registry change would leave it unreachable until an operator acted.
55
+ */
56
+ export const PEER_RETIRED_RECHECK_MS = 15 * 60_000;
37
57
  /** Bytes of a peer's stderr retained for the `unavailable` reason. */
38
- export const PEER_STDERR_BYTES = 2_048;
58
+ const PEER_STDERR_BYTES = 2_048;
39
59
  /** How often a parked peer re-checks the device registry for a refresh. */
40
- export const PEER_REGISTRY_POLL_MS = 5_000;
60
+ const PEER_REGISTRY_POLL_MS = 5_000;
41
61
  /**
42
62
  * Reconnect delay for `failures` consecutive failed spawns: 0 for a healthy
43
- * peer, then {@link PEER_BACKOFF_BASE_MS} doubling to {@link PEER_BACKOFF_CAP_MS}.
63
+ * peer, then {@link PEER_BACKOFF_BASE_MS} doubling to {@link PEER_BACKOFF_CAP_MS},
64
+ * and {@link PEER_RETIRED_RECHECK_MS} once the peer is retired.
44
65
  */
45
- export function peerBackoffDelayMs(failures, base = PEER_BACKOFF_BASE_MS, cap = PEER_BACKOFF_CAP_MS) {
66
+ export function peerBackoffDelayMs(failures, base = PEER_BACKOFF_BASE_MS, cap = PEER_BACKOFF_CAP_MS, retireAfter = PEER_RETIRE_AFTER_FAILURES, retiredMs = PEER_RETIRED_RECHECK_MS) {
46
67
  if (failures <= 0)
47
68
  return 0;
69
+ if (failures >= retireAfter)
70
+ return retiredMs;
48
71
  return Math.min(cap, base * 2 ** (failures - 1));
49
72
  }
50
73
  /** Bounded tail of a child's stderr, kept for the unavailable reason. */
@@ -133,10 +156,14 @@ export async function streamFromPeer(options) {
133
156
  failures += 1;
134
157
  const exit = code == null ? 'ssh failed' : `ssh exited ${code}`;
135
158
  const parked = failures >= parkAfter;
136
- const delay = peerBackoffDelayMs(failures, options.backoffBaseMs, options.backoffCapMs);
137
- options.onUnavailable(parked
138
- ? `${reasonFor(exit, stderr)} — parked after ${failures} failed connections, retrying in ${Math.round(delay / 1000)}s or on a device refresh`
139
- : reasonFor(exit, stderr));
159
+ const retireAfter = options.retireAfterFailures ?? PEER_RETIRE_AFTER_FAILURES;
160
+ const retired = failures >= retireAfter;
161
+ const delay = peerBackoffDelayMs(failures, options.backoffBaseMs, options.backoffCapMs, retireAfter, options.retiredRecheckMs);
162
+ options.onUnavailable(retired
163
+ ? `${reasonFor(exit, stderr)} — retired after ${failures} failed connections, re-dialing in ${Math.round(delay / 60_000)}min or on a device refresh`
164
+ : parked
165
+ ? `${reasonFor(exit, stderr)} — parked after ${failures} failed connections, retrying in ${Math.round(delay / 1000)}s or on a device refresh`
166
+ : reasonFor(exit, stderr));
140
167
  await parkedWait(options, delay);
141
168
  }
142
169
  }
@@ -1,5 +1,5 @@
1
1
  import { type ParsedBundle } from '../bundle.js';
2
- export interface RemotePullResult {
2
+ interface RemotePullResult {
3
3
  bundles: ParsedBundle[];
4
4
  errors: string[];
5
5
  }
@@ -10,3 +10,4 @@ export interface RemotePullResult {
10
10
  * `exportArgs` must NOT contain --device (the remote export runs for itself only).
11
11
  */
12
12
  export declare function pullBundlesFromHosts(hosts: string[], exportArgs: string[]): Promise<RemotePullResult>;
13
+ export {};
@@ -4,7 +4,7 @@ import type { SessionMeta } from '../types.js';
4
4
  import { type ToolProgramCountEnvelope, type ToolSearchEnvelope } from '../tool-index.js';
5
5
  export { REMOTE_STDOUT_MAX_BYTES, RemoteUtf8Accumulator } from '../../ssh-exec.js';
6
6
  export declare const REMOTE_TOOL_AGGREGATE_MAX_BYTES: number;
7
- export interface RemoteToolByteBudget {
7
+ interface RemoteToolByteBudget {
8
8
  remainingBytes: number;
9
9
  exhausted: boolean;
10
10
  }
@@ -44,7 +44,7 @@ export declare function sshCapture(target: string, remoteCmd: string, timeoutMs:
44
44
  stdout: string;
45
45
  aggregateBudgetExceeded?: boolean;
46
46
  }>;
47
- export interface RemoteListResult {
47
+ interface RemoteListResult {
48
48
  sessions: SessionMeta[];
49
49
  /** How many peer machines we attempted to reach (drives the empty-fleet tip). */
50
50
  deviceCount: number;
@@ -65,7 +65,7 @@ export declare function isAutomaticSessionPeer(d: DeviceProfile, self: string):
65
65
  * address. `forwardedArgs` are the caller's own sessions args (query + filters,
66
66
  * already `--json`) so every peer returns the same slice this machine asked for.
67
67
  */
68
- export interface GatherRemoteListOptions {
68
+ interface GatherRemoteListOptions {
69
69
  /**
70
70
  * Opt-in early-exit for a globally-unique id lookup (a full UUID): the first
71
71
  * peer to return the matching row resolves the fan-out and cancels the rest.
@@ -77,7 +77,7 @@ export interface GatherRemoteListOptions {
77
77
  timeoutMs?: number;
78
78
  }
79
79
  export declare function gatherRemoteList(forwardedArgs: string[], hosts?: string[], opts?: GatherRemoteListOptions): Promise<RemoteListResult>;
80
- export interface RemoteToolSearchResult {
80
+ interface RemoteToolSearchResult {
81
81
  envelopes: Array<{
82
82
  machine: string;
83
83
  envelope: ToolSearchEnvelope;
@@ -86,7 +86,7 @@ export interface RemoteToolSearchResult {
86
86
  unreachable: string[];
87
87
  truncated: string[];
88
88
  }
89
- export interface RemoteToolProgramCountResult {
89
+ interface RemoteToolProgramCountResult {
90
90
  envelopes: Array<{
91
91
  machine: string;
92
92
  envelope: ToolProgramCountEnvelope;
@@ -42,7 +42,7 @@ export declare function ensureWholeIndex(forwardedArgs: string[]): string[];
42
42
  */
43
43
  export declare function buildRemoteCommand(forwardedArgs: string[], columns?: number, os?: string): string;
44
44
  /** The four outcomes of one `ssh <host> agents sessions …` invocation. */
45
- export type SshOutcome = 'ok' | 'unreachable' | 'query-failed' | 'spawn-error';
45
+ type SshOutcome = 'ok' | 'unreachable' | 'query-failed' | 'spawn-error';
46
46
  /**
47
47
  * Classify an ssh `spawnSync` result. ssh(1) reserves exit 255 for its own
48
48
  * connection-layer failures (host down, timeout, refused, auth, changed host
@@ -71,7 +71,7 @@ export declare function remoteCachePath(host: string, forwardedArgs: string[]):
71
71
  * skips SSH only while this returns true; unreachable fallback ignores age.
72
72
  */
73
73
  export declare function isRemoteCacheFresh(mtimeMs: number, nowMs: number, maxAgeMs?: number): boolean;
74
- export interface RemoteCacheHit {
74
+ interface RemoteCacheHit {
75
75
  output: string;
76
76
  mtimeMs: number;
77
77
  }
@@ -105,7 +105,7 @@ export declare function serveWarmRemoteCache(host: string, forwardedArgs: string
105
105
  * stderr (so a piped stdout stays exactly the cached rows); returns false when
106
106
  * nothing is cached for this exact (host, query). */
107
107
  export declare function replayRemoteCache(host: string, forwardedArgs: string[]): boolean;
108
- export interface RunRemoteSessionsOptions {
108
+ interface RunRemoteSessionsOptions {
109
109
  /** Skip warm cache and SSH every host (force-refresh). */
110
110
  forceRefresh?: boolean;
111
111
  /** Override freshness window for the warm path. */
@@ -130,3 +130,4 @@ export interface RunRemoteSessionsOptions {
130
130
  * imperceptible; `maxBuffer` is generous for the rare large `--markdown <id>` dump.
131
131
  */
132
132
  export declare function runRemoteSessions(hosts: string[], argv?: string[], opts?: RunRemoteSessionsOptions): void;
133
+ export {};
@@ -1,9 +1,7 @@
1
1
  import { type ActiveSession } from '../active.js';
2
2
  import { type SessionMeta } from '../types.js';
3
3
  import { readActiveSessionsCache } from '../session-cache.js';
4
- export declare const SESSION_WATCH_VERSION: 1;
5
4
  export declare const SESSION_WATCH_HEARTBEAT_MS = 15000;
6
- export declare const SESSION_WATCH_PREVIOUS_LIMIT = 50;
7
5
  export type SessionWatchScopeStatus = 'available' | 'unavailable';
8
6
  export type SessionWatchEnvelope = {
9
7
  version: 1;
@@ -76,10 +74,6 @@ export interface SessionWatchRow extends Omit<ActiveSession, 'viewingIn' | 'cont
76
74
  /** Stable, opaque identity for one row within one device scope. */
77
75
  export declare function sessionWatchRowKey(scope: string, row: ActiveSession): string;
78
76
  export declare function toSessionWatchRow(scope: string, row: ActiveSession): SessionWatchRow;
79
- /** Stable identity for a durable Previous row. It is deliberately distinct
80
- * from the live row key for the same session id: both may coexist on the one
81
- * stream, and the presentation layer lets the live row win while it exists. */
82
- export declare function previousSessionWatchRowKey(scope: string, sessionId: string): string;
83
77
  /** Project one durable indexed session into the same canonical watch contract
84
78
  * as live sessions. This is the only history backfill consumed by AGI EXT. */
85
79
  export declare function toPreviousSessionWatchRow(scope: string, session: SessionMeta): SessionWatchRow;
@@ -119,7 +113,7 @@ export declare function readPreviousSessionsForWatch(scope: string): SessionMeta
119
113
  * steady state tails the canonical writer journal and never invokes a gather.
120
114
  */
121
115
  export declare function watchLocalSessions(options: WatchLocalOptions): Promise<void>;
122
- export interface WatchFleetOptions {
116
+ interface WatchFleetOptions {
123
117
  signal: AbortSignal;
124
118
  emit: (event: SessionWatchEnvelope) => void;
125
119
  reconnectMs?: number;
@@ -130,3 +124,4 @@ export interface WatchFleetOptions {
130
124
  * peer resets only its own scope. There is no recurring fleet list command.
131
125
  */
132
126
  export declare function watchFleetSessions(options: WatchFleetOptions): Promise<void>;
127
+ export {};
@@ -13,9 +13,9 @@ import { linearIssueUrl } from '../linear.js';
13
13
  import { sessionAgentSupportsResume } from '../recovery.js';
14
14
  import { SESSION_AGENTS } from '../types.js';
15
15
  import { activeSessionsJournalPath, activeSessionJournalIdentity, readActiveSessionsCache, noteActiveSessionsJournalReader, resolveStreamSummaryState, } from '../session-cache.js';
16
- export const SESSION_WATCH_VERSION = 1;
16
+ const SESSION_WATCH_VERSION = 1;
17
17
  export const SESSION_WATCH_HEARTBEAT_MS = 15_000;
18
- export const SESSION_WATCH_PREVIOUS_LIMIT = 50;
18
+ const SESSION_WATCH_PREVIOUS_LIMIT = 50;
19
19
  /** Stable, opaque identity for one row within one device scope. */
20
20
  export function sessionWatchRowKey(scope, row) {
21
21
  const identity = activeSessionJournalIdentity(row);
@@ -58,7 +58,7 @@ function epochMs(value) {
58
58
  /** Stable identity for a durable Previous row. It is deliberately distinct
59
59
  * from the live row key for the same session id: both may coexist on the one
60
60
  * stream, and the presentation layer lets the live row win while it exists. */
61
- export function previousSessionWatchRowKey(scope, sessionId) {
61
+ function previousSessionWatchRowKey(scope, sessionId) {
62
62
  return createHash('sha256').update(`${scope}\0previous\0${sessionId}`).digest('base64url').slice(0, 22);
63
63
  }
64
64
  /**
@@ -15,7 +15,7 @@ export declare const NO_FANOUT_ENV = "AGENTS_SESSIONS_LOCAL";
15
15
  * Exported for unit testing without a live tailnet.
16
16
  */
17
17
  export declare function parseRemoteActive(stdout: string, machine: string): ActiveSession[];
18
- export interface RemoteActiveResult {
18
+ interface RemoteActiveResult {
19
19
  sessions: ActiveSession[];
20
20
  /** How many peer machines we attempted to reach (drives the empty-fleet tip). */
21
21
  deviceCount: number;
@@ -48,3 +48,4 @@ export declare function gatherRemoteActive(hosts?: string[], opts?: {
48
48
  isDefinitive: (item: ActiveSession, machine: string) => boolean;
49
49
  };
50
50
  }): Promise<RemoteActiveResult>;
51
+ export {};
@@ -82,7 +82,7 @@ export declare function renderSummaryHeader(stats: SessionStats): string;
82
82
  */
83
83
  export declare function renderSummary(events: SessionEvent[], cwd?: string): string;
84
84
  /** Allowed values for --include/--exclude role filters. */
85
- export declare const VALID_ROLE_VALUES: readonly ["user", "assistant", "thinking", "tools"];
85
+ declare const VALID_ROLE_VALUES: readonly ["user", "assistant", "thinking", "tools"];
86
86
  /** A single role filter value derived from VALID_ROLE_VALUES. */
87
87
  export type RoleFilter = typeof VALID_ROLE_VALUES[number];
88
88
  /** Options for filtering session events by role and turn range. */
@@ -108,7 +108,7 @@ export declare function filterEvents(events: SessionEvent[], opts: FilterOptions
108
108
  * order so reasoning sits where it actually occurred relative to the assistant
109
109
  * reply.
110
110
  */
111
- export interface RenderConversationMarkdownOptions {
111
+ interface RenderConversationMarkdownOptions {
112
112
  redact?: boolean;
113
113
  knownSecrets?: readonly string[];
114
114
  reasoning?: 'omit' | 'fold' | 'include';
@@ -809,7 +809,7 @@ export function renderSummary(events, cwd) {
809
809
  }
810
810
  // ── Event filters ─────────────────────────────────────────────────────────────
811
811
  /** Allowed values for --include/--exclude role filters. */
812
- export const VALID_ROLE_VALUES = ['user', 'assistant', 'thinking', 'tools'];
812
+ const VALID_ROLE_VALUES = ['user', 'assistant', 'thinking', 'tools'];
813
813
  /**
814
814
  * Parse a comma-separated role list (e.g. "user,assistant") into typed values.
815
815
  * Throws with a clear message listing valid values on any unknown entry.
@@ -20,7 +20,7 @@
20
20
  * remote session resumed in whatever directory the user happened to be in.
21
21
  *
22
22
  * Callers act on the answer differently, and the difference is deliberate:
23
- * `agents sessions resume` and `agents sessions attach` HOP to the owner over SSH, while
23
+ * `agents sessions resume` HOPS to the owner over SSH, while
24
24
  * `resumeSessionInPlace` — the local takeover every routed caller reaches only
25
25
  * after deciding — REFUSES. The batch `sessions resume` needs no check of its
26
26
  * own: each of its tabs runs the canonical `agents sessions resume <id>`
@@ -20,7 +20,7 @@
20
20
  * remote session resumed in whatever directory the user happened to be in.
21
21
  *
22
22
  * Callers act on the answer differently, and the difference is deliberate:
23
- * `agents sessions resume` and `agents sessions attach` HOP to the owner over SSH, while
23
+ * `agents sessions resume` HOPS to the owner over SSH, while
24
24
  * `resumeSessionInPlace` — the local takeover every routed caller reaches only
25
25
  * after deciding — REFUSES. The batch `sessions resume` needs no check of its
26
26
  * own: each of its tabs runs the canonical `agents sessions resume <id>`
@@ -13,7 +13,7 @@
13
13
  * Mirrors the host-task sidecar convention (`~/.agents/.cache/hosts/<id>.json`),
14
14
  * one small JSON per run under `~/.agents/.cache/run-names/`.
15
15
  */
16
- export interface RunNameRecord {
16
+ interface RunNameRecord {
17
17
  sessionId: string;
18
18
  name: string;
19
19
  agent: string;
@@ -32,3 +32,4 @@ export declare function recordRunName(rec: Omit<RunNameRecord, 'ts'>): void;
32
32
  * map when the dir doesn't exist yet.
33
33
  */
34
34
  export declare function buildRunNameMap(): Map<string, string | null>;
35
+ export {};
@@ -8,7 +8,7 @@ import { type ActiveSession } from './active.js';
8
8
  export declare const DEFAULT_ACTIVE_CACHE_MAX_AGE_MS = 15000;
9
9
  /** Snapshot scope: this host only, or a fleet-wide merge written by a reader. */
10
10
  export type ActiveCacheScope = 'local' | 'fleet';
11
- export interface ActiveSessionsSnapshot {
11
+ interface ActiveSessionsSnapshot {
12
12
  version: 1;
13
13
  scope: ActiveCacheScope;
14
14
  /** Epoch ms the sessions array was captured. */
@@ -30,7 +30,7 @@ export declare function activeSessionJournalIdentity(row: ActiveSession): string
30
30
  * transcript mtime so a rewrite invalidates them. Live status is intentionally
31
31
  * absent — see {@link LIVE_STATUS_KEYS}.
32
32
  */
33
- export interface ImmutableSessionFields {
33
+ interface ImmutableSessionFields {
34
34
  topic?: string;
35
35
  firstUserMessage?: string;
36
36
  label?: string;
@@ -76,8 +76,6 @@ export declare function setActiveSessionsSnapshotPathForTest(p: string | null):
76
76
  export declare function clearActiveSnapshotMemoryForTest(): void;
77
77
  /** Test seam: redirect the immutable-memo file. Returns the previous override. */
78
78
  export declare function setImmutableMemoPathForTest(p: string | null): string | null;
79
- /** Test seam: redirect the append-only live-state journal. */
80
- export declare function setActiveSessionsJournalPathForTest(p: string | null): string | null;
81
79
  /** Test seam: redirect the reader-presence file. Returns the previous override. */
82
80
  export declare function setActiveSessionsReaderPresencePathForTest(p: string | null): string | null;
83
81
  export declare function activeSessionsJournalPath(): string;
@@ -99,8 +97,6 @@ export declare function noteActiveSessionsJournalReader(nowMs?: number): void;
99
97
  * {@link noteActiveSessionsJournalReader} and the following tick gathers.
100
98
  */
101
99
  export declare function isActiveSessionsJournalReaderRecent(nowMs?: number, idleWindowMs?: number): boolean;
102
- /** Default poll cadence for {@link watchActiveSessionsReaderPresence}. */
103
- export declare const ACTIVE_SESSIONS_READER_TRANSITION_POLL_MS = 1000;
104
100
  /**
105
101
  * Watch for a reader going from absent/idle to present and fire `onConnect`
106
102
  * out of band, instead of waiting for the next scheduled warm tick (RUSH-2484).
@@ -166,22 +162,6 @@ export declare function assertNoLiveStatusFields(fields: Record<string, unknown>
166
162
  * refill identity fields without re-deriving them.
167
163
  */
168
164
  export declare function updateImmutableMemos(sessions: ReadonlyArray<ActiveSession>, nowMs?: number): void;
169
- /**
170
- * Fill missing immutable fields on a live row from the memo when the transcript
171
- * mtime matches. Never overwrites a field the live gather already set, and
172
- * never copies live-status keys.
173
- */
174
- /**
175
- * Merge the daemon-computed session summary (PHNX-3939) onto a live row from the
176
- * transcript-keyed `session_summaries` cache. This is the low-cost display merge:
177
- * one indexed by-id read, NEVER a model call — the background
178
- * SessionSummarizerService is the only producer. It fills only what the cache
179
- * holds; the `pending`/`skipped` default for a row with no summary yet is applied
180
- * at the watch-stream boundary ({@link resolveStreamSummaryState}), so a
181
- * non-stream ActiveSession consumer is unaffected. Best-effort: a DB error leaves
182
- * the row untouched.
183
- */
184
- export declare function mergeSessionSummary(s: ActiveSession): ActiveSession;
185
165
  /**
186
166
  * The `summaryState` a watch-stream row carries when the merge left it unset:
187
167
  * `pending` while the summarizer is READY (enabled AND has an endpoint, so a
@@ -200,7 +180,7 @@ export declare function resolveStreamSummaryState(current: import('./types.js').
200
180
  */
201
181
  export declare function mergeSessionTimeline(s: ActiveSession): ActiveSession;
202
182
  export declare function applyImmutableMemo(s: ActiveSession): ActiveSession;
203
- export interface LoadLocalActiveSessionsOptions {
183
+ interface LoadLocalActiveSessionsOptions {
204
184
  /** Skip the cache and re-gather (the force-refresh path). */
205
185
  forceRefresh?: boolean;
206
186
  /** Freshness window; defaults to {@link DEFAULT_ACTIVE_CACHE_MAX_AGE_MS}. */
@@ -216,7 +196,7 @@ export interface LoadLocalActiveSessionsOptions {
216
196
  readCache?: typeof readActiveSessionsCache;
217
197
  writeCache?: typeof writeActiveSessionsCache;
218
198
  }
219
- export interface LoadLocalActiveSessionsResult {
199
+ interface LoadLocalActiveSessionsResult {
220
200
  sessions: ActiveSession[];
221
201
  /** True when the row set came from the warm snapshot, not a live gather. */
222
202
  servedFromCache: boolean;
@@ -228,7 +208,7 @@ export interface LoadLocalActiveSessionsResult {
228
208
  * re-gathers and rewrites the cache.
229
209
  */
230
210
  export declare function loadLocalActiveSessions(opts?: LoadLocalActiveSessionsOptions): Promise<LoadLocalActiveSessionsResult>;
231
- export interface LoadFleetActiveSessionsOptions {
211
+ interface LoadFleetActiveSessionsOptions {
232
212
  forceRefresh?: boolean;
233
213
  maxAgeMs?: number;
234
214
  nowMs?: number;
@@ -244,7 +224,7 @@ export interface LoadFleetActiveSessionsOptions {
244
224
  readCache?: typeof readActiveSessionsCache;
245
225
  writeCache?: typeof writeActiveSessionsCache;
246
226
  }
247
- export interface LoadFleetActiveSessionsResult {
227
+ interface LoadFleetActiveSessionsResult {
248
228
  sessions: ActiveSession[];
249
229
  remoteDeviceCount: number;
250
230
  servedFromCache: boolean;
@@ -275,3 +255,4 @@ export declare function publishLocalActiveSessions(opts?: {
275
255
  sessions: ActiveSession[];
276
256
  capturedAt: number;
277
257
  }>;
258
+ export {};
@@ -131,12 +131,6 @@ export function setImmutableMemoPathForTest(p) {
131
131
  immutablePathOverride = p;
132
132
  return prev;
133
133
  }
134
- /** Test seam: redirect the append-only live-state journal. */
135
- export function setActiveSessionsJournalPathForTest(p) {
136
- const prev = journalPathOverride;
137
- journalPathOverride = p;
138
- return prev;
139
- }
140
134
  /** Test seam: redirect the reader-presence file. Returns the previous override. */
141
135
  export function setActiveSessionsReaderPresencePathForTest(p) {
142
136
  const prev = readerPresencePathOverride;
@@ -194,7 +188,7 @@ export function isActiveSessionsJournalReaderRecent(nowMs = Date.now(), idleWind
194
188
  }
195
189
  }
196
190
  /** Default poll cadence for {@link watchActiveSessionsReaderPresence}. */
197
- export const ACTIVE_SESSIONS_READER_TRANSITION_POLL_MS = 1_000;
191
+ const ACTIVE_SESSIONS_READER_TRANSITION_POLL_MS = 1_000;
198
192
  /**
199
193
  * Watch for a reader going from absent/idle to present and fire `onConnect`
200
194
  * out of band, instead of waiting for the next scheduled warm tick (RUSH-2484).
@@ -439,7 +433,7 @@ export function updateImmutableMemos(sessions, nowMs = Date.now()) {
439
433
  * non-stream ActiveSession consumer is unaffected. Best-effort: a DB error leaves
440
434
  * the row untouched.
441
435
  */
442
- export function mergeSessionSummary(s) {
436
+ function mergeSessionSummary(s) {
443
437
  if (!s.sessionId)
444
438
  return s;
445
439
  try {
@@ -1,5 +1,5 @@
1
1
  import type { SessionMeta } from './types.js';
2
- export interface SessionHtmlOptions {
2
+ interface SessionHtmlOptions {
3
3
  /** Whether the Markdown was rendered with redaction on — shown in the footer. */
4
4
  redacted?: boolean;
5
5
  }
@@ -9,26 +9,6 @@ interface Chip {
9
9
  value: string;
10
10
  }
11
11
  export declare function escapeHtml(text: string): string;
12
- /**
13
- * Lift every folded reasoning block out of the Markdown, leaving a sentinel.
14
- *
15
- * `renderer.html` escapes raw HTML unconditionally — the transcript body is model
16
- * and tool output, so nothing in it may round-trip as markup. That also escaped
17
- * the `<details>` wrapper `--reasoning fold` emits, which is why the disclosure
18
- * element has to be reconstructed here instead of allowlisted through.
19
- *
20
- * Allowlisting was tried twice and is the wrong shape: marked hands the same
21
- * markup over as several different raw strings depending on context (a whole-token
22
- * gate passed the opening tag and escaped the closing one in a real document), and
23
- * a bare `<details>` in ordinary prose is a complete INLINE html token — so prose
24
- * that merely mentions the tag would emit a live, unclosed element that swallows
25
- * every later turn into it. Reconstructing both ends here makes the pairing
26
- * structural: it cannot be unbalanced by anything the transcript contains.
27
- */
28
- export declare function liftFoldBlocks(markdown: string): {
29
- text: string;
30
- blocks: string[];
31
- };
32
12
  /** Human duration — "13 minutes", never "12m 49s". */
33
13
  export declare function formatDuration(ms: number): string;
34
14
  /**
@@ -75,7 +75,7 @@ const FOLD_BLOCK = /<details>\n<summary>Reasoning<\/summary>\n\n([\s\S]*?)\n\n<\
75
75
  * every later turn into it. Reconstructing both ends here makes the pairing
76
76
  * structural: it cannot be unbalanced by anything the transcript contains.
77
77
  */
78
- export function liftFoldBlocks(markdown) {
78
+ function liftFoldBlocks(markdown) {
79
79
  const blocks = [];
80
80
  // A transcript that literally contains the sentinel must not be able to forge a
81
81
  // disclosure element, so break any occurrence before inserting our own.
@@ -1,5 +1,5 @@
1
1
  import { type Word } from 'unbash';
2
- export interface ShellProgramExtraction {
2
+ interface ShellProgramExtraction {
3
3
  programs: string[];
4
4
  occurrences: ShellProgramOccurrence[];
5
5
  diagnostics: string[];
@@ -30,3 +30,4 @@ export declare function isShellExecTool(tool: string | undefined): boolean;
30
30
  export declare function staticShellWord(word: Word | undefined): string | undefined;
31
31
  /** Parse Bash without executing it and return every statically identifiable program. */
32
32
  export declare function extractShellPrograms(source: string, depth?: number): ShellProgramExtraction;
33
+ export {};
@@ -49,9 +49,22 @@ export interface QuestionOption {
49
49
  * {@link AwaitingReason}; `options` is present when the agent offered discrete choices.
50
50
  */
51
51
  export interface StructuredQuestion {
52
+ /**
53
+ * The question itself — the trailing ask, not the whole message. For a prose
54
+ * question this is the extracted trailing question block (see
55
+ * {@link extractProseQuestion}); for a structured harness question it is the
56
+ * agent-supplied question text, unchanged.
57
+ */
52
58
  text: string;
53
59
  reason: AwaitingReason;
54
60
  options?: QuestionOption[];
61
+ /**
62
+ * Optional preceding prose for a prose question — the report/explanation that
63
+ * came BEFORE the trailing ask, with its Markdown and newlines preserved so a
64
+ * consumer can render it as context under the question. Absent for a structured
65
+ * harness question and when a prose question carries no preceding context.
66
+ */
67
+ context?: string;
55
68
  }
56
69
  export interface DetectedPr {
57
70
  url: string;
@@ -139,7 +152,7 @@ export interface SessionState {
139
152
  /** Displayable files/screenshots attached to the session prompt. */
140
153
  attachments?: SessionAttachment[];
141
154
  }
142
- export interface StateContext {
155
+ interface StateContext {
143
156
  /** Session file mtime; drives running-vs-stale. */
144
157
  mtimeMs?: number;
145
158
  cwd?: string;
@@ -196,13 +209,6 @@ export declare function isTicketCreateTool(name?: string, command?: string): boo
196
209
  * take `#<number>`. Returns undefined when neither shape is present.
197
210
  */
198
211
  export declare function extractCreatedTicket(text?: string): string | undefined;
199
- /**
200
- * Pull the plan markdown out of an `ExitPlanMode` tool_use event's args. The
201
- * Claude tool schema is `{ plan: string }`; the transcript parser already
202
- * lifts `input` onto `event.args`. Returns undefined for a missing/empty plan
203
- * so consumers can rely on `plan?: string` truthiness.
204
- */
205
- export declare function extractPlanText(args?: Record<string, any>): string | undefined;
206
212
  /**
207
213
  * Structured question from a Claude `AskUserQuestion` tool call. Its input is
208
214
  * `{ questions: [{ question, header, options: [{label, description}] }] }` and the
@@ -212,6 +218,33 @@ export declare function extractPlanText(args?: Record<string, any>): string | un
212
218
  * 1-based selection digit as `key`.
213
219
  */
214
220
  export declare function structuredQuestionFromAsk(args?: Record<string, any>): StructuredQuestion | undefined;
221
+ /** The separated question the CLI shows: the trailing ask + optional preceding context. */
222
+ export interface ProseQuestion {
223
+ /** The trailing ask, with its original Markdown and line breaks. */
224
+ text: string;
225
+ /** The preceding report/explanation, Markdown + newlines preserved; absent when none. */
226
+ context?: string;
227
+ }
228
+ /**
229
+ * Split a run of prose into its trailing QUESTION and the CONTEXT before it,
230
+ * instead of flattening a whole report into one line (the old `oneLine(content)`
231
+ * that copied a merged report and lost its Markdown). Returns undefined when the
232
+ * text has no real trailing ask.
233
+ *
234
+ * Rules, each pinned by a test:
235
+ * - The ask must be TRAILING: the last eligible non-empty line is the question,
236
+ * or the search stops (a report line after the question means it isn't the ask).
237
+ * - A `?` that lives ONLY inside a fenced code block, an inline `code` span, or a
238
+ * `>` blockquote does NOT count — those lines are ineligible to end the ask
239
+ * (they still ride along in `context`).
240
+ * - Multiple/multiline related asks are kept together (a contiguous run of
241
+ * question / list-item / `:`-lead-in lines), never dropped.
242
+ * - When the ask shares ONE line with preceding prose, the leading non-question
243
+ * sentences peel into `context` and only the trailing question sentence(s) stay
244
+ * in `text`.
245
+ * - Both fields preserve newlines and Markdown.
246
+ */
247
+ export declare function extractProseQuestion(raw: string): ProseQuestion | undefined;
215
248
  /**
216
249
  * Infer live activity + a preview from a chronological event slice. `pr` /
217
250
  * `ticket` / `worktree` are attached by `inferSessionState`; this focuses on the