@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
@@ -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=…`). */
@@ -158,12 +158,62 @@ export declare const POWERSHELL_PROGRESS_SILENCE = "$ProgressPreference = 'Silen
158
158
  * every remote-JSON boundary regardless of the peer's OS.
159
159
  */
160
160
  export declare function stripClixml(stdout: string): string;
161
+ /**
162
+ * Statements that run the Agents CLI on a Windows peer with EXACT argv, leaving the
163
+ * child's exit code in `$zq`.
164
+ *
165
+ * `& agents …` cannot be used, and the reason is not our quoting. On Windows
166
+ * `agents` is an npm-generated `agents.ps1`, whose body ends in
167
+ *
168
+ * & "node$exe" --no-warnings=… "$basedir/node_modules/@phnx-labs/agents-cli/dist/index.js" $args
169
+ *
170
+ * — `$args` splatted into a NATIVE program, which is the PowerShell 5.1 lossy
171
+ * serializer. So the loss happens INSIDE the user's shim, after our tokens were
172
+ * already correct: measured on a real peer, `no-such-"menu"-proof` reached the
173
+ * Agents parser as `no-such-menu-proof`. Quoting harder upstream cannot fix that,
174
+ * and rewriting a user's npm shim is not ours to do.
175
+ *
176
+ * Instead the shim is bypassed the same way `getCliLaunch` (`lib/cli-entry.ts`)
177
+ * resolves a launch locally: a node-script entry becomes `<node> <entry> …args`.
178
+ * The entry and runtime are resolved ON THE PEER from the launcher's own location —
179
+ * the identical two-step the shim itself performs — and executed through .NET with
180
+ * a `CommandLineToArgvW`-escaped argument string.
181
+ *
182
+ * A peer whose `agents` is already a native executable is used directly. A peer
183
+ * where neither resolves FAILS LOUD: falling back to `& agents` would silently
184
+ * restore the argument loss, which is worse than an error naming what is missing.
185
+ *
186
+ * The entry comes from the package's DECLARED `bin` rather than a literal
187
+ * `dist/index.js`, so it follows the package instead of needing to be kept in sync
188
+ * with it.
189
+ */
190
+ export declare function windowsAgentsInvocation(args: string[], binName?: 'agents' | 'ag'): string;
161
191
  export declare function windowsAgentsScript(cmd: WindowsAgentsCommand): string;
162
192
  /**
163
193
  * Build the `ssh <target> <cmd>` string for one `agents …` invocation on a
164
- * Windows remote: a `powershell -NoProfile -EncodedCommand <base64>` call. The
194
+ * Windows remote: a rendered `powershell -NoProfile` call. The
165
195
  * Windows counterpart of `bash -lc '<...>'`, shared by every `--device` site.
166
196
  */
197
+ /**
198
+ * Render a PowerShell script as the single command string ssh sends to a Windows
199
+ * peer, compressing it when that is genuinely shorter.
200
+ *
201
+ * The plain route is `-EncodedCommand <base64 of UTF-16LE>`, which inflates the
202
+ * script by ~2.67x. That matters because OpenSSH-for-Windows caps the whole remote
203
+ * command far below cmd.exe's 8191 — bisected against a live peer, 2934 characters
204
+ * succeed and 3102 fail — so a longer script eats the headroom a caller's
205
+ * arguments, `--remote-cwd` and forwarded env need.
206
+ *
207
+ * The alternative is to deflate the UTF-8 script and emit a small fixed bootstrap
208
+ * that inflates it back. That trades ~2.67x for ~1.33x on the compressible part,
209
+ * which on scripts of this shape is a large net win. The variable-free bootstrap
210
+ * uses `-Command` with a base64 payload and leaves stdin available to the child.
211
+ *
212
+ * Applied ONLY when the result is actually shorter: for a small script the fixed
213
+ * bootstrap costs more than it saves, so picking the shorter of the two keeps the
214
+ * plain form in play for every small caller and is obviously correct either way.
215
+ */
216
+ export declare function renderPowershellCommand(script: string): string;
167
217
  export declare function buildWindowsAgentsCommand(cmd: WindowsAgentsCommand): string;
168
218
  /**
169
219
  * Build the `ssh <target> <cmd>` string for `agents secrets import` on a Windows
@@ -192,3 +242,4 @@ export declare function buildWindowsStdinImportCommand(bundle: string, opts?: {
192
242
  force?: boolean;
193
243
  policyNever?: boolean;
194
244
  }): string;
245
+ export {};
@@ -8,6 +8,9 @@
8
8
  * (`sshExec`/`sshStream`); orchestration lives in `passthrough.ts`.
9
9
  */
10
10
  import { shellQuote } from '../ssh-exec.js';
11
+ import { pwshLiteral, pwshNativeExecStatements } from '../pwsh.js';
12
+ import { quoteWin32ExecArg } from '../platform/exec.js';
13
+ import * as zlib from 'node:zlib';
11
14
  /**
12
15
  * Remove routing flags (and their values) from a command's args, leaving the
13
16
  * rest untouched and in order so they forward verbatim to the remote binary.
@@ -136,8 +139,6 @@ export const RUN_OPTION_FORWARDING = {
136
139
  // On a --device dispatch the remote box runs its own run-exit sync, so this
137
140
  // flag is never forwarded — it is a local-exit-behavior toggle, not remote.
138
141
  traceSync: 'local-only',
139
- // Deprecated alias for --device auto; resolved on the launching box before SSH.
140
- smart: 'local-only',
141
142
  // Broadcast mode (agents run --broadcast) is its own fan-out dispatch — mutually
142
143
  // exclusive with --host. All broadcast options are local-only; exec.ts handles them
143
144
  // before any SSH dispatch path is reached.
@@ -293,30 +294,146 @@ export function stripClixml(stdout) {
293
294
  .replace(/#< CLIXML[^\n]*\r?\n?(?:\s*<Objs\b[\s\S]*?<\/Objs>)*/g, '')
294
295
  .trim();
295
296
  }
297
+ /**
298
+ * Statements that run the Agents CLI on a Windows peer with EXACT argv, leaving the
299
+ * child's exit code in `$zq`.
300
+ *
301
+ * `& agents …` cannot be used, and the reason is not our quoting. On Windows
302
+ * `agents` is an npm-generated `agents.ps1`, whose body ends in
303
+ *
304
+ * & "node$exe" --no-warnings=… "$basedir/node_modules/@phnx-labs/agents-cli/dist/index.js" $args
305
+ *
306
+ * — `$args` splatted into a NATIVE program, which is the PowerShell 5.1 lossy
307
+ * serializer. So the loss happens INSIDE the user's shim, after our tokens were
308
+ * already correct: measured on a real peer, `no-such-"menu"-proof` reached the
309
+ * Agents parser as `no-such-menu-proof`. Quoting harder upstream cannot fix that,
310
+ * and rewriting a user's npm shim is not ours to do.
311
+ *
312
+ * Instead the shim is bypassed the same way `getCliLaunch` (`lib/cli-entry.ts`)
313
+ * resolves a launch locally: a node-script entry becomes `<node> <entry> …args`.
314
+ * The entry and runtime are resolved ON THE PEER from the launcher's own location —
315
+ * the identical two-step the shim itself performs — and executed through .NET with
316
+ * a `CommandLineToArgvW`-escaped argument string.
317
+ *
318
+ * A peer whose `agents` is already a native executable is used directly. A peer
319
+ * where neither resolves FAILS LOUD: falling back to `& agents` would silently
320
+ * restore the argument loss, which is worse than an error naming what is missing.
321
+ *
322
+ * The entry comes from the package's DECLARED `bin` rather than a literal
323
+ * `dist/index.js`, so it follows the package instead of needing to be kept in sync
324
+ * with it.
325
+ */
326
+ export function windowsAgentsInvocation(args, binName = 'agents') {
327
+ const escaped = pwshLiteral(args.map(quoteWin32ExecArg).join(' '));
328
+ return [
329
+ // Set before any resolution: a non-terminating failure below would otherwise
330
+ // leave the exit code null, and `exit $null` reports 0.
331
+ `$ErrorActionPreference = 'Stop'`,
332
+ `$zc = Get-Command ${powershellQuote(binName)} -ErrorAction Stop`,
333
+ `$ze = $zc.Source`,
334
+ `$zr = ''`,
335
+ // A real native executable needs no interpreter prefix. `CommandType` alone is
336
+ // NOT that test: `Get-Command` reports `Application` for `agents.cmd` too, and
337
+ // a .cmd launcher re-parses through cmd.exe with the same argument loss as the
338
+ // .ps1 one — so a cmd-only install must not bypass this either.
339
+ `if ($zc.CommandType -ne 'Application' -or $ze -match '\\.(cmd|bat)$') {`,
340
+ ` $zb = Split-Path $ze`,
341
+ ` $zk = Join-Path $zb 'node_modules\\@phnx-labs\\agents-cli'`,
342
+ // The package's DECLARED bin, so the entry follows the package rather than a
343
+ // hand-synced `dist/index.js` literal that would rot on upgrade. One check
344
+ // covers a missing bin AND the single-string `bin` form (which yields $null).
345
+ ` $zl = (Get-Content -Raw (Join-Path $zk 'package.json') | ConvertFrom-Json).bin.${binName}`,
346
+ ` if (-not $zl) { throw "agents package at $zk declares no bin.${binName}" }`,
347
+ ` $zt = Join-Path $zk $zl`,
348
+ ` if (-not [IO.File]::Exists($zt)) { throw "agents CLI entry not found at $zt" }`,
349
+ // The npm shim prefers a node.exe beside itself before PATH; match that.
350
+ ` $zd = Join-Path $zb 'node.exe'`,
351
+ ` $ze = if ([IO.File]::Exists($zd)) { $zd } else { 'node' }`,
352
+ // A Windows path cannot contain `"`, so wrapping is sufficient escaping here.
353
+ ` $zr = '--no-warnings=ExperimentalWarning "' + $zt + '" '`,
354
+ `}`,
355
+ ...pwshNativeExecStatements('$ze', `$zr + ${escaped}`),
356
+ // Reported through a plain variable rather than by assigning the automatic
357
+ // $LASTEXITCODE, which nothing set here since no PowerShell command ran.
358
+ `$zq = $zp.ExitCode`,
359
+ // Never let an unknown outcome read as success.
360
+ `if ($null -eq $zq) { $zq = 1 }`,
361
+ // NEWLINE-joined, and that is required rather than stylistic: the caller joins
362
+ // its parts with `'; '`, which between a closing `}` and `else`/an indented block
363
+ // would produce invalid PowerShell.
364
+ ].join('\n');
365
+ }
296
366
  export function windowsAgentsScript(cmd) {
297
367
  const { args, env, cwd, propagateExit = true, remapExit255 = false } = cmd;
298
- const parts = [POWERSHELL_PROGRESS_SILENCE];
368
+ // `Stop` FIRST, before the env assignments and the Set-Location: a failing
369
+ // `Set-Location` (a cwd that does not exist on the peer) must abort rather than
370
+ // continue into the launcher and run the command in the wrong directory.
371
+ const parts = [POWERSHELL_PROGRESS_SILENCE, `$ErrorActionPreference = 'Stop'`];
299
372
  if (env)
300
373
  for (const [k, v] of Object.entries(env))
301
374
  parts.push(`$env:${k} = ${powershellQuote(v)}`);
302
375
  if (cwd)
303
376
  parts.push(`Set-Location -LiteralPath ${powershellQuote(cwd)}`);
304
- parts.push(`& ${['agents', ...args].map(powershellQuote).join(' ')}`);
377
+ parts.push(windowsAgentsInvocation(args));
305
378
  if (propagateExit) {
306
379
  if (remapExit255)
307
- parts.push('$agentsExit = $LASTEXITCODE', 'if ($agentsExit -eq 255) { exit 254 }', 'exit $agentsExit');
380
+ parts.push('if ($zq -eq 255) { exit 254 }', 'exit $zq');
308
381
  else
309
- parts.push('exit $LASTEXITCODE');
382
+ parts.push('exit $zq');
310
383
  }
311
384
  return parts.join('; ');
312
385
  }
313
386
  /**
314
387
  * Build the `ssh <target> <cmd>` string for one `agents …` invocation on a
315
- * Windows remote: a `powershell -NoProfile -EncodedCommand <base64>` call. The
388
+ * Windows remote: a rendered `powershell -NoProfile` call. The
316
389
  * Windows counterpart of `bash -lc '<...>'`, shared by every `--device` site.
317
390
  */
391
+ /**
392
+ * Render a PowerShell script as the single command string ssh sends to a Windows
393
+ * peer, compressing it when that is genuinely shorter.
394
+ *
395
+ * The plain route is `-EncodedCommand <base64 of UTF-16LE>`, which inflates the
396
+ * script by ~2.67x. That matters because OpenSSH-for-Windows caps the whole remote
397
+ * command far below cmd.exe's 8191 — bisected against a live peer, 2934 characters
398
+ * succeed and 3102 fail — so a longer script eats the headroom a caller's
399
+ * arguments, `--remote-cwd` and forwarded env need.
400
+ *
401
+ * The alternative is to deflate the UTF-8 script and emit a small fixed bootstrap
402
+ * that inflates it back. That trades ~2.67x for ~1.33x on the compressible part,
403
+ * which on scripts of this shape is a large net win. The variable-free bootstrap
404
+ * uses `-Command` with a base64 payload and leaves stdin available to the child.
405
+ *
406
+ * Applied ONLY when the result is actually shorter: for a small script the fixed
407
+ * bootstrap costs more than it saves, so picking the shorter of the two keeps the
408
+ * plain form in play for every small caller and is obviously correct either way.
409
+ */
410
+ export function renderPowershellCommand(script) {
411
+ const plain = `powershell -NoProfile -EncodedCommand ${encodePowershell(script)}`;
412
+ // Raw DEFLATE (RFC 1951) — what .NET's `DeflateStream` reads. `deflateSync`
413
+ // would prepend a zlib header that `DeflateStream` rejects.
414
+ const packed = zlib.deflateRawSync(Buffer.from(script, 'utf-8'), { level: 9 }).toString('base64');
415
+ // The blob is embedded DIRECTLY in a `-Command` string rather than wrapped in a
416
+ // second `-EncodedCommand`: routing an already-base64 payload through the encoded
417
+ // form would inflate it by another 2.67x and cancel most of the compression.
418
+ //
419
+ // The bootstrap is deliberately VARIABLE-FREE — one nested expression, no `$`
420
+ // anywhere. A `$b = …` form is unsafe here: OpenSSH-for-Windows may have
421
+ // PowerShell as its `DefaultShell`, in which case the outer double-quoted string
422
+ // is parsed by PowerShell first and `$b` would be expanded before our script ever
423
+ // runs. With no `$`, no `%`, no backtick and no cmd metacharacter — base64's
424
+ // alphabet is `A-Za-z0-9+/=` and the rest is ASCII punctuation neither shell
425
+ // touches inside quotes — the same text survives either default shell. stdin is
426
+ // untouched by both routes.
427
+ const bootstrap = 'iex ([IO.StreamReader]::new([IO.Compression.DeflateStream]::new('
428
+ + `[IO.MemoryStream]::new([Convert]::FromBase64String('${packed}')),`
429
+ + '[IO.Compression.CompressionMode]::Decompress),[Text.Encoding]::UTF8).ReadToEnd())';
430
+ const compressed = `powershell -NoProfile -Command "${bootstrap}"`;
431
+ // Only when genuinely shorter: for a small script the fixed bootstrap costs more
432
+ // than it saves, so this keeps the plain form in play for every small caller.
433
+ return compressed.length < plain.length ? compressed : plain;
434
+ }
318
435
  export function buildWindowsAgentsCommand(cmd) {
319
- return `powershell -NoProfile -EncodedCommand ${encodePowershell(windowsAgentsScript(cmd))}`;
436
+ return renderPowershellCommand(windowsAgentsScript(cmd));
320
437
  }
321
438
  /**
322
439
  * Build the `ssh <target> <cmd>` string for `agents secrets import` on a Windows
@@ -0,0 +1,2 @@
1
+ /** The script behind either render route. Throws if the command is neither. */
2
+ export declare function decodeRenderedPowershell(command: string): string;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Test-only decoder for a rendered remote PowerShell command.
3
+ *
4
+ * `renderPowershellCommand` emits whichever of two representations is shorter: the
5
+ * plain `-EncodedCommand <base64 UTF-16LE>`, or a `-Command` bootstrap carrying a
6
+ * deflated UTF-8 payload. Tests assert on the SCRIPT, not the representation, so
7
+ * every suite needs both — and four copies of that parsing is exactly how one of
8
+ * them silently stops decoding the form it was meant to check.
9
+ *
10
+ * Named `*.test-fixture.ts` after the existing `daemon.test-fixture.ts`.
11
+ */
12
+ import * as zlib from 'node:zlib';
13
+ /** The script behind either render route. Throws if the command is neither. */
14
+ export function decodeRenderedPowershell(command) {
15
+ const encoded = /-EncodedCommand (\S+)\s*$/.exec(command);
16
+ if (encoded)
17
+ return Buffer.from(encoded[1], 'base64').toString('utf16le');
18
+ const packed = /FromBase64String\('([A-Za-z0-9+/=]+)'\)/.exec(command);
19
+ if (!packed)
20
+ throw new Error(`not a rendered PowerShell command: ${command}`);
21
+ return zlib.inflateRawSync(Buffer.from(packed[1], 'base64')).toString('utf-8');
22
+ }
@@ -18,7 +18,7 @@
18
18
  */
19
19
  import type { SessionMeta } from '../session/types.js';
20
20
  import { type HostTask } from './tasks.js';
21
- export interface HostSessionContext {
21
+ interface HostSessionContext {
22
22
  /** Local directory the `agents run --device` was invoked from. */
23
23
  cwd: string;
24
24
  /** Prompt the run was launched with, used for the session topic. */
@@ -53,7 +53,7 @@ export declare function registerHostSession(task: HostTask, ctx: HostSessionCont
53
53
  * missing/unreadable mirror or absent marker yields null, never an exception.
54
54
  */
55
55
  export declare function captureRemoteSessionId(task: HostTask): HostTask | null;
56
- export interface InteractiveHostSessionContext {
56
+ interface InteractiveHostSessionContext {
57
57
  cwd: string;
58
58
  host: string;
59
59
  agent: string;
@@ -68,3 +68,4 @@ export interface InteractiveHostSessionContext {
68
68
  * surface and resume it by id.
69
69
  */
70
70
  export declare function registerInteractiveHostSession(ctx: InteractiveHostSessionContext): void;
71
+ export {};
@@ -19,11 +19,9 @@ export declare function parseSshConfigHosts(content: string): string[];
19
19
  export declare function parseKnownHosts(content: string): string[];
20
20
  /** `Host` names from ~/.ssh/config, following `Include` globs (best-effort). */
21
21
  export declare function listSshConfigHosts(): string[];
22
- /** Hostnames recorded in ~/.ssh/known_hosts (hashed entries skipped). */
23
- export declare function listKnownHosts(): string[];
24
22
  /** True if `name` is a concrete `Host` stanza in ssh config. */
25
23
  export declare function isSshConfigHost(name: string): boolean;
26
- export interface SshGResult {
24
+ interface SshGResult {
27
25
  hostname?: string;
28
26
  user?: string;
29
27
  port?: string;
@@ -35,3 +33,4 @@ export interface SshGResult {
35
33
  * to decide whether a name is actually configured.
36
34
  */
37
35
  export declare function sshResolve(name: string): SshGResult | undefined;
36
+ export {};
@@ -12,7 +12,6 @@ import { spawnSync } from 'child_process';
12
12
  import { assertValidSshTarget } from '../ssh-exec.js';
13
13
  const SSH_DIR = path.join(os.homedir(), '.ssh');
14
14
  const SSH_CONFIG = path.join(SSH_DIR, 'config');
15
- const KNOWN_HOSTS = path.join(SSH_DIR, 'known_hosts');
16
15
  /**
17
16
  * Parse `Host` stanza names from ssh config text. Wildcard/negated patterns
18
17
  * (`*`, `?`, `!`) are skipped — they're match rules, not concrete hosts.
@@ -110,15 +109,6 @@ function globMaybe(pattern) {
110
109
  return [];
111
110
  }
112
111
  }
113
- /** Hostnames recorded in ~/.ssh/known_hosts (hashed entries skipped). */
114
- export function listKnownHosts() {
115
- try {
116
- return parseKnownHosts(fs.readFileSync(KNOWN_HOSTS, 'utf-8'));
117
- }
118
- catch {
119
- return [];
120
- }
121
- }
122
112
  /** True if `name` is a concrete `Host` stanza in ssh config. */
123
113
  export function isSshConfigHost(name) {
124
114
  return listSshConfigHosts().includes(name);
@@ -1,6 +1,4 @@
1
1
  import type { HumansConfig, HumanOwner } from './types.js';
2
- export declare const HUMANS_VERSION: 1;
3
- export declare const HUMANS_HEADER = "# humans.yaml \u2014 owner identity and notification channels\n# Managed by agents-cli. See: agents humans --help\n";
4
2
  /**
5
3
  * Read and parse humans.yaml. Returns null when the file does not exist or
6
4
  * is not a valid v1 config — never throws.
@@ -10,8 +10,8 @@
10
10
  import * as fs from 'fs';
11
11
  import * as yaml from 'yaml';
12
12
  import { getHumansFilePath } from './state.js';
13
- export const HUMANS_VERSION = 1;
14
- export const HUMANS_HEADER = `# humans.yaml — owner identity and notification channels
13
+ const HUMANS_VERSION = 1;
14
+ const HUMANS_HEADER = `# humans.yaml — owner identity and notification channels
15
15
  # Managed by agents-cli. See: agents humans --help
16
16
  `;
17
17
  /**
@@ -17,12 +17,12 @@
17
17
  * true.
18
18
  */
19
19
  import type { AgentId } from './types.js';
20
- export interface ImportConfigResult {
20
+ interface ImportConfigResult {
21
21
  success: boolean;
22
22
  skipped?: boolean;
23
23
  error?: string;
24
24
  }
25
- export interface ImportBinaryResult {
25
+ interface ImportBinaryResult {
26
26
  success: boolean;
27
27
  skipped?: boolean;
28
28
  error?: string;
@@ -60,7 +60,7 @@ export declare function finalizeImport(agentId: AgentId, version: string): void;
60
60
  * farm from the AGENTS registry, which keeps the function pure and avoids
61
61
  * fragile coupling in test setups that stub `lib/agents.ts`.
62
62
  */
63
- export interface AgentBinarySpec {
63
+ interface AgentBinarySpec {
64
64
  /** Agent id used in the marker package.json (`agents-{agentId}-{version}`). */
65
65
  agentId: string;
66
66
  /** npm package name (e.g. `openclaw`) — used as the `node_modules/<name>` dir. */
@@ -136,3 +136,4 @@ export declare function seedIsolatedConfigFromLocal(agentId: AgentId, version: s
136
136
  skippedRuntime: string[];
137
137
  error?: string;
138
138
  };
139
+ export {};
@@ -1,6 +1,4 @@
1
1
  import { type FileLockOptions } from '../fs-atomic.js';
2
2
  import { type AgentId } from '../types.js';
3
3
  export declare function installationLockTarget(agent: AgentId, label: string): string;
4
- export declare const INSTALLATION_LOCK_STALE_MS: number;
5
- export declare const INSTALLATION_LOCK_ACQUIRE_TIMEOUT_MS: number;
6
4
  export declare const INSTALLATION_LOCK_OPTIONS: Required<FileLockOptions>;
@@ -20,8 +20,8 @@ export function installationLockTarget(agent, label) {
20
20
  ensureLockTarget(target, '', 0o700);
21
21
  return target;
22
22
  }
23
- export const INSTALLATION_LOCK_STALE_MS = 10 * 60_000;
24
- export const INSTALLATION_LOCK_ACQUIRE_TIMEOUT_MS = 5 * 60_000;
23
+ const INSTALLATION_LOCK_STALE_MS = 10 * 60_000;
24
+ const INSTALLATION_LOCK_ACQUIRE_TIMEOUT_MS = 5 * 60_000;
25
25
  export const INSTALLATION_LOCK_OPTIONS = {
26
26
  staleMs: INSTALLATION_LOCK_STALE_MS,
27
27
  acquireTimeoutMs: INSTALLATION_LOCK_ACQUIRE_TIMEOUT_MS,
@@ -44,15 +44,6 @@ import type { AgentId } from '../types.js';
44
44
  * work here serializes launches against each other unnecessarily.
45
45
  */
46
46
  export declare function withLaunchGate<T>(agent: AgentId, label: string, fn: () => T): Promise<T>;
47
- /**
48
- * Acquire the per-installation update lock, register a launch lease for
49
- * `pid`, then release. For a caller that already has its own pid before the
50
- * risky operation (the native shim's `$$`, exec-replaced so the pid is
51
- * final) — a Node caller that spawns a child should use {@link withLaunchGate}
52
- * around the spawn itself instead, since here the process already exists by
53
- * the time the lock is acquired.
54
- */
55
- export declare function acquireLaunchGate(agent: AgentId, label: string, pid: number): Promise<() => void>;
56
47
  /** Keep a live launcher's lease until its operation ends, without holding the lock. */
57
48
  export declare function withInstallationLease<T>(agent: AgentId, label: string, fn: () => Promise<T>): Promise<T>;
58
49
  /**
@@ -91,7 +91,7 @@ export async function withLaunchGate(agent, label, fn) {
91
91
  * around the spawn itself instead, since here the process already exists by
92
92
  * the time the lock is acquired.
93
93
  */
94
- export async function acquireLaunchGate(agent, label, pid) {
94
+ async function acquireLaunchGate(agent, label, pid) {
95
95
  return withLaunchGate(agent, label, () => recordLaunchLease(agent, label, pid));
96
96
  }
97
97
  /** Keep a live launcher's lease until its operation ends, without holding the lock. */
@@ -45,17 +45,6 @@ export declare function migrateRoutineDeviceToDevices(routinesDir?: string): voi
45
45
  * Idempotent: a file with only `cwd` (already migrated) is skipped.
46
46
  */
47
47
  export declare function migrateRoutineRemoteCwdToCwd(routinesDir?: string): void;
48
- /**
49
- * Pause every currently-active routine whose execution context no longer
50
- * resolves ready (RUSH-2290). An agent/workflow routine with no project/cwd, a
51
- * missing directory, or a non-portable path used to fire and fail every tick —
52
- * the mass auth_failed / untrusted-home storm this ticket exists to stop. After
53
- * the fold, such a routine is deactivated on THIS device (only), preventing it
54
- * from being scheduled until `agents routines doctor --all --fix` (or a repair +
55
- * `resume`) makes it ready. Never materializes a device manifest that does not
56
- * yet exist, and never touches command routines (they run in the target home).
57
- */
58
- export declare function pauseUnreadyEnabledRoutines(): void;
59
48
  /**
60
49
  * Fold the legacy watchdog enable sentinel into the `watchdog.enabled` config.
61
50
  *