@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
@@ -14,7 +14,7 @@ export const TOOL_PROGRAM_COUNT_SCHEMA_VERSION = 1;
14
14
  export const TOOL_QUERY_MAX_CLAUSES = 32;
15
15
  export const TOOL_QUERY_MAX_CLAUSE_BYTES = 4096;
16
16
  export const TOOL_QUERY_MAX_CALL_ROWS = 50_000;
17
- export const TOOL_QUERY_MAX_RESULT_BYTES = 8 * 1024 * 1024;
17
+ const TOOL_QUERY_MAX_RESULT_BYTES = 8 * 1024 * 1024;
18
18
  export const TOOL_QUERY_MAX_RESULT_SESSIONS = 1_000;
19
19
  export const TOOL_QUERY_MAX_SERIALIZED_BYTES = 15 * 1024 * 1024;
20
20
  export const TOOL_QUERY_MERGE_OVERHEAD_BYTES = 64 * 1024;
@@ -400,7 +400,7 @@ function tokenizeClause(source) {
400
400
  return tokens;
401
401
  }
402
402
  /** Parse one same-call clause. Unprefixed terms search every evidence field. */
403
- export function parseToolQueryClause(source) {
403
+ function parseToolQueryClause(source) {
404
404
  const fields = new Set(['tool', 'program', 'input', 'output', 'status', 'exit', 'error']);
405
405
  return tokenizeClause(source).map((token) => {
406
406
  const colon = token.indexOf(':');
@@ -22,7 +22,7 @@ export interface ToolScanResumePoint {
22
22
  */
23
23
  parsedOffset: number;
24
24
  }
25
- export interface PersistToolCallsOptions {
25
+ interface PersistToolCallsOptions {
26
26
  /**
27
27
  * `replace` drops the session's stored evidence first — correct for a parse
28
28
  * that started at byte 0. `append` merges the batch into what is already
@@ -68,3 +68,4 @@ export declare function planEventToolResume(db: Database.Database, sessionId: st
68
68
  fileMtimeMs: number;
69
69
  fileSize: number;
70
70
  }, currentEventCount: number): EventToolScanResumePoint | null;
71
+ export {};
@@ -35,7 +35,7 @@ export interface TrajectoryComparison {
35
35
  truncatedA: number;
36
36
  truncatedB: number;
37
37
  }
38
- export interface DiffTrajectoriesOptions {
38
+ interface DiffTrajectoriesOptions {
39
39
  /** Cap on tool steps considered per side (the LCS table is O(n*m)). Default 1000. */
40
40
  maxDiffSteps?: number;
41
41
  }
@@ -45,3 +45,4 @@ export interface DiffTrajectoriesOptions {
45
45
  * did. Never mutates either input.
46
46
  */
47
47
  export declare function diffTrajectories(a: SessionTrajectory, b: SessionTrajectory, options?: DiffTrajectoriesOptions): TrajectoryComparison;
48
+ export {};
@@ -65,7 +65,7 @@ export interface SessionLineage {
65
65
  */
66
66
  unresolvedParentIds: string[];
67
67
  }
68
- export interface BuildLineageOptions {
68
+ interface BuildLineageOptions {
69
69
  /**
70
70
  * Which session the graph is about. The graph is always rooted at that
71
71
  * session's TOPMOST ancestor in the pool, so passing a child still renders its
@@ -90,3 +90,4 @@ export interface BuildLineageOptions {
90
90
  * sessions in the pool supply edges but never become nodes.
91
91
  */
92
92
  export declare function buildLineage(sessions: SessionMeta[], options?: BuildLineageOptions): SessionLineage;
93
+ export {};
@@ -1,7 +1,7 @@
1
1
  import type { SessionTrajectory } from './trajectory.js';
2
2
  import type { TrajectoryComparison } from './trajectory-compare.js';
3
3
  import type { SessionLineage } from './trajectory-lineage.js';
4
- export interface RenderTrajectoryTextOptions {
4
+ interface RenderTrajectoryTextOptions {
5
5
  /** Collapse to error steps and their immediate neighbours. */
6
6
  errorsOnly?: boolean;
7
7
  /** Cap on the step lines emitted; the remainder is collapsed with a count. */
@@ -9,7 +9,7 @@ export interface RenderTrajectoryTextOptions {
9
9
  }
10
10
  /** Render one session's trajectory as compact, ANSI-free text. */
11
11
  export declare function renderTrajectoryText(model: SessionTrajectory, options?: RenderTrajectoryTextOptions): string;
12
- export interface RenderTrajectoryCompareTextOptions {
12
+ interface RenderTrajectoryCompareTextOptions {
13
13
  /** Cap on step lines listed per diff column; the remainder is collapsed with a count. Default 15. */
14
14
  maxDiffLines?: number;
15
15
  }
@@ -35,3 +35,4 @@ export declare function renderTrajectoryCompareText(cmp: TrajectoryComparison, o
35
35
  * the shape of the fan-out; `agents sessions trace <child>` answers one child.
36
36
  */
37
37
  export declare function renderLineageText(lineage: SessionLineage): string;
38
+ export {};
@@ -80,7 +80,7 @@ export interface SessionTrajectory {
80
80
  /** Steps dropped by the `maxSteps` cap, surfaced so truncation is never silent. */
81
81
  truncatedSteps: number;
82
82
  }
83
- export interface BuildTrajectoryOptions {
83
+ interface BuildTrajectoryOptions {
84
84
  /** Redact derived labels/details (default true; `--no-redact` is local-only). */
85
85
  redact?: boolean;
86
86
  /** Known secret values to mask, from `knownSecretValuesFromEnv()`. */
@@ -142,3 +142,4 @@ export declare function pairSteps(events: SessionEvent[], eventMs: number[], fir
142
142
  * event array and therefore an empty trajectory — never a crash or a fabricated one.
143
143
  */
144
144
  export declare function buildTrajectory(events: SessionEvent[], meta: SessionMeta, options?: BuildTrajectoryOptions): SessionTrajectory;
145
+ export {};
@@ -21,7 +21,7 @@ import type { TmuxClient } from '../tmux/session.js';
21
21
  import type { ActiveSession } from './active.js';
22
22
  import { type GhosttySurface } from './ghostty-tabs.js';
23
23
  /** Where a tmux-hosted session is currently displayed. */
24
- export interface ViewingIn {
24
+ interface ViewingIn {
25
25
  /** Host app of the attached client — 'ghostty', 'iterm', 'code', 'codium', … */
26
26
  app: string;
27
27
  /** 1-based tab number within that app, when it can be resolved. */
@@ -83,3 +83,4 @@ export declare function resolveViewingIn(session: ActiveSession, clients: TmuxCl
83
83
  * Ghostty's `index of tab`. Exported for the parser test.
84
84
  */
85
85
  export declare function itermTabFromSessionId(value: string | undefined): number | undefined;
86
+ export {};
@@ -70,12 +70,9 @@ const ENGINE_VERBS = new Set([
70
70
  'tail',
71
71
  'watch',
72
72
  'preview',
73
- 'attach',
74
73
  'focus',
75
74
  'render',
76
75
  'stats',
77
- 'go',
78
- 'reconnect',
79
76
  'migrations',
80
77
  'export',
81
78
  ]);
@@ -17,7 +17,7 @@
17
17
  * `hasTrustDialogAccepted: false` to `true` — see the note on that entry.)
18
18
  */
19
19
  import type { AgentId } from './types.js';
20
- export interface CarryForwardResult {
20
+ interface CarryForwardResult {
21
21
  /** Manifest rel paths that were created or updated in the target home. */
22
22
  applied: string[];
23
23
  /** Backup directory holding pre-merge copies of modified target files, if any. */
@@ -39,3 +39,4 @@ export declare function fillGaps(target: Record<string, unknown>, source: Record
39
39
  * Only fills gaps — never overwrites target values — so it is idempotent.
40
40
  */
41
41
  export declare function carryForwardSettings(agent: AgentId, fromHome: string, toHome: string): CarryForwardResult;
42
+ export {};
@@ -0,0 +1,3 @@
1
+ import { type SetupTool } from './setup-tool-status.js';
2
+ /** Use the host installer; setup must not install or start a tool from a read. */
3
+ export declare function installSetupTool(tool: Exclude<SetupTool, 'secrets'>): Promise<boolean>;
@@ -0,0 +1,26 @@
1
+ import { installCli, resolveCliManifest } from './cli-resources.js';
2
+ import { getCachedToolSetup, refreshToolSetup } from './setup-tool-status.js';
3
+ const PACKAGES = {
4
+ browser: '@phnx-labs/browser-cli@0.1.3',
5
+ computer: '@phnx-labs/computer-cli@0.1.5',
6
+ };
7
+ /** Use the host installer; setup must not install or start a tool from a read. */
8
+ export async function installSetupTool(tool) {
9
+ if (getCachedToolSetup().find((row) => row.tool === tool)?.installed)
10
+ return true;
11
+ const manifest = resolveCliManifest(tool) ?? {
12
+ name: tool,
13
+ check: { kind: 'which', cmd: tool },
14
+ install: [{ npm: PACKAGES[tool] }],
15
+ source: 'builtin',
16
+ path: '',
17
+ };
18
+ const result = installCli(manifest);
19
+ if (result.error)
20
+ console.error(result.error);
21
+ const rows = await refreshToolSetup(tool);
22
+ const installed = rows[0]?.installed === true;
23
+ if (!installed && !result.error)
24
+ console.error(`${tool} installation did not produce a standalone executable on PATH.`);
25
+ return result.installed && installed;
26
+ }
@@ -0,0 +1,22 @@
1
+ export declare const SETUP_TOOLS: readonly ["browser", "computer", "secrets"];
2
+ export type SetupTool = typeof SETUP_TOOLS[number];
3
+ export interface ToolSetupRow {
4
+ tool: SetupTool;
5
+ installed: boolean | null;
6
+ executable?: string;
7
+ version?: string;
8
+ readiness: 'ready' | 'needs-setup' | 'permission-required' | 'stopped' | 'unsupported' | 'unknown';
9
+ detail: string;
10
+ checkedAtMs: number | null;
11
+ }
12
+ export interface ToolSetupOptions {
13
+ cacheDir?: string;
14
+ }
15
+ export declare function toolSetupCacheDir(options?: ToolSetupOptions): string;
16
+ /** Presence is metadata; health is the last explicit check, never a timer probe. */
17
+ export declare function getCachedToolSetup(options?: ToolSetupOptions): ToolSetupRow[];
18
+ export declare function toolReadiness(tool: SetupTool, status: unknown): Pick<ToolSetupRow, 'readiness' | 'detail'>;
19
+ /** A shared disk lock coalesces overlapping requests from separate CLI clients. */
20
+ export declare function refreshToolSetup(tool?: SetupTool | 'all', options?: ToolSetupOptions): Promise<ToolSetupRow[]>;
21
+ /** File notifications are shared by the daemon collector; no background probes. */
22
+ export declare function subscribeToolSetup(listener: (rows: ToolSetupRow[]) => void, options?: ToolSetupOptions): () => void;
@@ -0,0 +1,215 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { findInPath } from './agent-spec/agents.js';
4
+ import { getCacheDir, getDeviceMetaPath, getHelpersDir, getUserAgentsDir } from './state.js';
5
+ import { atomicWriteJsonSync, withFileLockAsync } from './fs-atomic.js';
6
+ import { probeCapture } from './probe.js';
7
+ import { invocation, isStandaloneComputer } from './computer-client.js';
8
+ import { getSocketPath as browserSocketPath } from './browser/ipc.js';
9
+ export const SETUP_TOOLS = ['browser', 'computer', 'secrets'];
10
+ export function toolSetupCacheDir(options = {}) {
11
+ return path.join(options.cacheDir ?? getCacheDir(), 'setup-tools');
12
+ }
13
+ function cachePath(tool, options) {
14
+ return path.join(toolSetupCacheDir(options), `${tool}.json`);
15
+ }
16
+ function setupInputs(tool) {
17
+ const inputs = [path.join(getUserAgentsDir(), 'agents.yaml'), getDeviceMetaPath()];
18
+ if (tool === 'browser')
19
+ inputs.push(browserSocketPath());
20
+ if (tool === 'computer')
21
+ inputs.push(process.env.COMPUTER_HELPER_SOCKET || path.join(getHelpersDir(), 'computer.sock'));
22
+ return inputs;
23
+ }
24
+ function inputStamp(tool) {
25
+ return setupInputs(tool).map((file) => {
26
+ try {
27
+ const stat = fs.statSync(file);
28
+ return `${file}:${stat.ino}:${stat.mtimeMs}:${stat.size}`;
29
+ }
30
+ catch {
31
+ return `${file}:missing`;
32
+ }
33
+ }).join('|');
34
+ }
35
+ function binaryMetadata(tool) {
36
+ const empty = { tool, installed: false, readiness: 'needs-setup', detail: 'CLI is not installed.', checkedAtMs: null };
37
+ try {
38
+ const explicit = process.env[`${tool.toUpperCase()}_BIN`]?.trim();
39
+ const accept = (candidate) => {
40
+ if (tool === 'computer')
41
+ return isStandaloneComputer(candidate);
42
+ if (tool === 'browser') {
43
+ try {
44
+ return !fs.realpathSync(candidate).endsWith(path.join('dist', 'browser.js'));
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ return true;
51
+ };
52
+ let executable = explicit ? (accept(explicit) ? explicit : null) : findInPath(tool, { accept });
53
+ if (!executable)
54
+ return { row: empty, fingerprint: 'missing' };
55
+ if (/\.(cmd|ps1)$/i.test(executable)) {
56
+ const packageDir = path.join(path.dirname(executable), 'node_modules', '@phnx-labs', `${tool}-cli`);
57
+ const pkg = JSON.parse(fs.readFileSync(path.join(packageDir, 'package.json'), 'utf8'));
58
+ const entry = typeof pkg.bin === 'string' ? pkg.bin : pkg.bin?.[tool];
59
+ if (pkg.name !== `@phnx-labs/${tool}-cli` || typeof entry !== 'string')
60
+ throw new Error('unrecognized npm launcher');
61
+ const resolved = path.resolve(packageDir, entry);
62
+ if (!resolved.startsWith(`${path.resolve(packageDir)}${path.sep}`))
63
+ throw new Error('invalid npm entrypoint');
64
+ executable = resolved;
65
+ }
66
+ fs.accessSync(executable, process.platform === 'win32' || /\.[cm]?js$/i.test(executable) ? fs.constants.R_OK : fs.constants.X_OK);
67
+ const real = fs.realpathSync(executable);
68
+ const stat = fs.statSync(real);
69
+ if (!stat.isFile())
70
+ throw new Error('not a file');
71
+ let version;
72
+ let dir = path.dirname(real);
73
+ for (let depth = 0; depth < 5; depth++) {
74
+ try {
75
+ const pkg = JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf8'));
76
+ if (pkg.name === `@phnx-labs/${tool}-cli` && typeof pkg.version === 'string') {
77
+ version = pkg.version;
78
+ break;
79
+ }
80
+ }
81
+ catch { /* Executables need not be npm packages. */ }
82
+ const parent = path.dirname(dir);
83
+ if (parent === dir)
84
+ break;
85
+ dir = parent;
86
+ }
87
+ return {
88
+ fingerprint: `${real}:${stat.size}:${stat.mtimeMs}:${version ?? ''}|${inputStamp(tool)}`,
89
+ row: { tool, installed: true, executable, version, readiness: 'unknown', detail: 'Installed. Health has not been checked.', checkedAtMs: null },
90
+ };
91
+ }
92
+ catch {
93
+ return { fingerprint: 'unavailable', row: { ...empty, installed: null, readiness: 'unknown', detail: 'Executable could not be inspected.' } };
94
+ }
95
+ }
96
+ function readCache(tool, options) {
97
+ try {
98
+ const cached = JSON.parse(fs.readFileSync(cachePath(tool, options), 'utf8'));
99
+ if (cached.v === 1 && cached.row?.tool === tool && typeof cached.fingerprint === 'string')
100
+ return cached;
101
+ }
102
+ catch { /* No health result yet. */ }
103
+ return null;
104
+ }
105
+ /** Presence is metadata; health is the last explicit check, never a timer probe. */
106
+ export function getCachedToolSetup(options = {}) {
107
+ return SETUP_TOOLS.map((tool) => {
108
+ const { row, fingerprint } = binaryMetadata(tool);
109
+ const cached = readCache(tool, options);
110
+ return cached?.fingerprint === fingerprint ? { ...cached.row, executable: row.executable, version: row.version } : row;
111
+ });
112
+ }
113
+ export function toolReadiness(tool, status) {
114
+ if (!status || typeof status !== 'object')
115
+ return { readiness: 'unknown', detail: 'The CLI returned an unreadable health result.' };
116
+ const value = status;
117
+ if (tool === 'computer') {
118
+ if (value.installed === false)
119
+ return { readiness: 'needs-setup', detail: 'CLI installed; computer helper needs setup.' };
120
+ if (value.running === true && value.trusted === true)
121
+ return { readiness: 'ready', detail: 'Helper is running and Accessibility is granted. Screen Recording is checked when capturing.' };
122
+ if (value.running === true && value.trusted === false)
123
+ return { readiness: 'permission-required', detail: 'Grant Accessibility to Agents Computer in System Settings.' };
124
+ if (value.running === false)
125
+ return { readiness: 'stopped', detail: 'Computer helper is stopped or unreachable.' };
126
+ }
127
+ if (tool === 'browser') {
128
+ if (value.running === true)
129
+ return { readiness: 'ready', detail: 'Browser service is running.' };
130
+ if (value.running === false)
131
+ return { readiness: 'stopped', detail: 'Browser service is stopped.' };
132
+ }
133
+ return { readiness: 'unknown', detail: typeof value.error === 'string' && value.error.trim() ? value.error.slice(0, 500) : 'The CLI did not report a recognized health state.' };
134
+ }
135
+ async function checkTool(row) {
136
+ if (!row.installed || !row.executable)
137
+ return { ...row, checkedAtMs: Date.now() };
138
+ // The standalone has no non-interactive health JSON. Do not list bundles or
139
+ // unlock the broker merely to paint a settings row.
140
+ if (row.tool === 'secrets')
141
+ return { ...row, checkedAtMs: Date.now(), detail: 'Installed. Secret access is checked when used; this check does not unlock secrets.' };
142
+ try {
143
+ const { command, prefix } = invocation(row.executable);
144
+ const { stdout } = await probeCapture(command, [...prefix, 'status', '--json'], 8000, { acceptedExitCodes: [0, 1], maxOutputBytes: 256 * 1024 });
145
+ return { ...row, ...toolReadiness(row.tool, JSON.parse(stdout)), checkedAtMs: Date.now() };
146
+ }
147
+ catch {
148
+ return { ...row, readiness: 'unknown', detail: 'Health check failed or timed out. Check again to retry.', checkedAtMs: Date.now() };
149
+ }
150
+ }
151
+ /** A shared disk lock coalesces overlapping requests from separate CLI clients. */
152
+ export async function refreshToolSetup(tool = 'all', options = {}) {
153
+ const requestedAt = Date.now();
154
+ const dir = toolSetupCacheDir(options);
155
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
156
+ for (const selected of tool === 'all' ? SETUP_TOOLS : [tool]) {
157
+ const file = cachePath(selected, options);
158
+ await withFileLockAsync(file, async () => {
159
+ const metadata = binaryMetadata(selected);
160
+ const cached = readCache(selected, options);
161
+ if (cached?.fingerprint === metadata.fingerprint && (cached.row.checkedAtMs ?? 0) >= requestedAt)
162
+ return;
163
+ const row = await checkTool(metadata.row);
164
+ atomicWriteJsonSync(file, { v: 1, fingerprint: metadata.fingerprint, row });
165
+ }, { realpath: false, acquireTimeoutMs: 20_000 });
166
+ }
167
+ return getCachedToolSetup(options).filter((row) => tool === 'all' || row.tool === tool);
168
+ }
169
+ /** File notifications are shared by the daemon collector; no background probes. */
170
+ export function subscribeToolSetup(listener, options = {}) {
171
+ const dir = toolSetupCacheDir(options);
172
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
173
+ const paths = new Set([dir, ...(process.env.PATH ?? '').split(path.delimiter).filter(Boolean)]);
174
+ for (const tool of SETUP_TOOLS)
175
+ for (const input of setupInputs(tool))
176
+ paths.add(path.dirname(input));
177
+ for (const row of getCachedToolSetup(options)) {
178
+ if (row.executable) {
179
+ paths.add(path.dirname(row.executable));
180
+ try {
181
+ paths.add(path.dirname(fs.realpathSync(row.executable)));
182
+ }
183
+ catch { /* Removed since discovery. */ }
184
+ }
185
+ }
186
+ let previous = JSON.stringify(getCachedToolSetup(options));
187
+ let debounce;
188
+ const changed = () => {
189
+ if (debounce)
190
+ return;
191
+ debounce = setTimeout(() => {
192
+ debounce = undefined;
193
+ const rows = getCachedToolSetup(options);
194
+ const next = JSON.stringify(rows);
195
+ if (next !== previous) {
196
+ previous = next;
197
+ listener(rows);
198
+ }
199
+ }, 150);
200
+ debounce.unref();
201
+ };
202
+ const watchers = [];
203
+ for (const target of paths) {
204
+ try {
205
+ const watcher = fs.watch(target, { persistent: false }, changed);
206
+ watcher.on('error', changed);
207
+ watchers.push(watcher);
208
+ }
209
+ catch { /* Absent PATH entries have no executable to report. */ }
210
+ }
211
+ changed();
212
+ return () => { if (debounce)
213
+ clearTimeout(debounce); for (const watcher of watchers)
214
+ watcher.close(); };
215
+ }
@@ -0,0 +1,11 @@
1
+ /** Best-effort runtime env for spawned agents. Never throws AND never prompts.
2
+ *
3
+ * Auto-injecting the share write token on every `agents run` is a background
4
+ * convenience, NOT a user-initiated secret access — so it MUST NOT raise a Touch
5
+ * ID sheet (SEC-13: an agent launch never pops biometry on its own). The read is
6
+ * always `agentOnly`: it resolves the token only from the injected env or an
7
+ * already-held / no-ACL bundle, and silently returns undefined otherwise (the
8
+ * agent can still publish via its own `artifacts share` credentials). For
9
+ * zero-friction auto-share with no prompt: unlock once (`agents secrets unlock
10
+ * share`) or make it no-ACL (`agents secrets policy share never`). */
11
+ export declare function shareRuntimeEnv(): Record<string, string> | undefined;
@@ -0,0 +1,63 @@
1
+ // Runtime share-token injection for spawned agents.
2
+ //
3
+ // The artifact share ENGINE moved to `@phnx-labs/artifacts-cli` (PHNX-3992);
4
+ // agents-cli no longer publishes artifacts itself. What stays here is the thin
5
+ // glue that lets a dispatched agent inherit the operator's BYO write token so
6
+ // its own `artifacts share` can publish headlessly: `run`/`teams`/`cloud`
7
+ // dispatch call `shareRuntimeEnv()` and forward the result into the agent env.
8
+ // artifacts-cli honors the same `SHARE_WRITE_TOKEN` variable, so the injection
9
+ // contract is unchanged by the extraction.
10
+ //
11
+ // The endpoint config still lives in `agents.yaml` under `share:` (Meta.share)
12
+ // so a previously-provisioned BYO endpoint keeps syncing fleet-wide; the raw
13
+ // write token lives in the keychain-backed `share` secrets bundle, never on disk.
14
+ import { readMeta } from './state.js';
15
+ import { bundleExistsSync as bundleExists, readAndResolveBundleEnvSync as readAndResolveBundleEnv, } from './secrets-client.js';
16
+ const SHARE_BUNDLE = 'share';
17
+ const SHARE_TOKEN_KEY = 'WRITE_TOKEN';
18
+ const SHARE_TOKEN_ENV_KEY = 'SHARE_WRITE_TOKEN';
19
+ /** Trim; empty / whitespace-only strings are absent. */
20
+ function nonempty(v) {
21
+ const t = v?.trim();
22
+ return t ? t : undefined;
23
+ }
24
+ /** Whether a BYO share endpoint is still configured in `agents.yaml`. */
25
+ function hasShareEndpoint() {
26
+ return !!nonempty(readMeta().share?.baseUrl);
27
+ }
28
+ /** The write token as injected ephemerally into fleet/cloud agents. */
29
+ function readWriteTokenEnv(env = process.env) {
30
+ const token = env[SHARE_TOKEN_ENV_KEY]?.trim();
31
+ return token ? token : null;
32
+ }
33
+ /** Best-effort runtime env for spawned agents. Never throws AND never prompts.
34
+ *
35
+ * Auto-injecting the share write token on every `agents run` is a background
36
+ * convenience, NOT a user-initiated secret access — so it MUST NOT raise a Touch
37
+ * ID sheet (SEC-13: an agent launch never pops biometry on its own). The read is
38
+ * always `agentOnly`: it resolves the token only from the injected env or an
39
+ * already-held / no-ACL bundle, and silently returns undefined otherwise (the
40
+ * agent can still publish via its own `artifacts share` credentials). For
41
+ * zero-friction auto-share with no prompt: unlock once (`agents secrets unlock
42
+ * share`) or make it no-ACL (`agents secrets policy share never`). */
43
+ export function shareRuntimeEnv() {
44
+ if (!hasShareEndpoint())
45
+ return undefined;
46
+ const fromEnv = readWriteTokenEnv();
47
+ if (fromEnv)
48
+ return { [SHARE_TOKEN_ENV_KEY]: fromEnv };
49
+ try {
50
+ if (!bundleExists(SHARE_BUNDLE))
51
+ return undefined;
52
+ const { env } = readAndResolveBundleEnv(SHARE_BUNDLE, {
53
+ caller: 'share',
54
+ keys: [SHARE_TOKEN_KEY],
55
+ agentOnly: true, // never raise a Touch ID sheet on an agent launch (SEC-13)
56
+ });
57
+ const token = env[SHARE_TOKEN_KEY];
58
+ return token ? { [SHARE_TOKEN_ENV_KEY]: token } : undefined;
59
+ }
60
+ catch {
61
+ return undefined;
62
+ }
63
+ }
@@ -1,5 +1,5 @@
1
1
  import type { SelfHealReport } from './self-heal/types.js';
2
- export interface InteractiveShimHealResult {
2
+ interface InteractiveShimHealResult {
3
3
  noticeLines: string[] | null;
4
4
  report: SelfHealReport;
5
5
  }
@@ -9,10 +9,6 @@ export interface InteractiveShimHealResult {
9
9
  * won't move; a PATH entry that was just added / needs a reload).
10
10
  */
11
11
  export declare function runInteractiveShimHeal(): Promise<InteractiveShimHealResult>;
12
- /**
13
- * Back-compat wrapper for callers that only need the persistent one-time notice.
14
- */
15
- export declare function healShimsInteractive(): Promise<string[] | null>;
16
12
  type PathNoticeState = 'ok' | 'added' | 'reload';
17
13
  /**
18
14
  * A stable signature of the conditions worth surfacing: the sorted set of
@@ -54,12 +54,6 @@ export async function runInteractiveShimHeal() {
54
54
  }
55
55
  return { noticeLines: lines.length > 0 ? lines : null, report };
56
56
  }
57
- /**
58
- * Back-compat wrapper for callers that only need the persistent one-time notice.
59
- */
60
- export async function healShimsInteractive() {
61
- return (await runInteractiveShimHeal()).noticeLines;
62
- }
63
57
  function noticeStatePath() {
64
58
  return path.join(getRuntimeStateDir(), 'shim-notice.json');
65
59
  }
@@ -8,8 +8,6 @@
8
8
  import { type AffinityRow } from './session/db.js';
9
9
  import { type DevicePlacementSignal } from './teams/scheduler.js';
10
10
  import type { AgentType } from './teams/agents.js';
11
- /** Peakiness of usage weights; >1 amplifies the most-used option. */
12
- export declare const DEFAULT_AFFINITY_ALPHA = 1.3;
13
11
  export interface WeightedCandidate {
14
12
  key: string;
15
13
  launches: number;
@@ -41,7 +39,7 @@ export declare function sampleWeighted(candidates: WeightedCandidate[], rng?: ()
41
39
  * keep agents off).
42
40
  */
43
41
  export declare function listOnlineDeviceNames(localName?: string): string[];
44
- export interface DeviceAffinityOptions {
42
+ interface DeviceAffinityOptions {
45
43
  sinceDays?: number;
46
44
  alpha?: number;
47
45
  /**
@@ -64,7 +62,7 @@ export interface DeviceAffinityPlan {
64
62
  pickedDeviceKey: string | null;
65
63
  }
66
64
  /** Live placement plan used by the explicit `--device auto` surface. */
67
- export interface DeviceAutoPlan {
65
+ interface DeviceAutoPlan {
68
66
  /** null means the local machine won the comparison. */
69
67
  host: string | null;
70
68
  candidates: Array<{
@@ -114,21 +112,17 @@ export declare function resolveDeviceAuto(agent?: string, opts?: {
114
112
  export declare function resolveDeviceAffinity(opts?: DeviceAffinityOptions): DeviceAffinityPlan;
115
113
  /** True when a host flag value means affinity pick. */
116
114
  export declare function isDeviceAuto(value: string | undefined | null): boolean;
117
- export type DeviceAutoHostOptions = {
115
+ type DeviceAutoHostOptions = {
118
116
  host?: string;
119
117
  device?: string;
120
118
  on?: string;
121
119
  computer?: string;
122
- /** @deprecated Hidden alias for `--device auto`. */
123
- smart?: boolean;
124
120
  balanced?: boolean;
125
121
  strategy?: string;
126
122
  };
127
123
  export type DeviceAutoApplyResult = {
128
124
  /** True when automatic placement ran successfully. */
129
125
  attempted: boolean;
130
- /** True when deprecated `--smart` was seen. */
131
- deprecationSmart: boolean;
132
126
  /** Present when affinity resolved without error. */
133
127
  banner?: {
134
128
  hostLabel: string;
@@ -137,7 +131,7 @@ export type DeviceAutoApplyResult = {
137
131
  };
138
132
  };
139
133
  /**
140
- * Apply `--device auto` (and deprecated `--smart`) onto run options.
134
+ * Apply `--device auto` onto run options.
141
135
  * Mutates `options` in place. Placement failures propagate without rewriting
142
136
  * `auto`, so callers fail loud instead of silently launching locally.
143
137
  */
@@ -146,3 +140,4 @@ export declare function applyDeviceAutoToOptions(options: DeviceAutoHostOptions,
146
140
  agent?: string;
147
141
  accountPickerRequested?: boolean;
148
142
  }): Promise<DeviceAutoApplyResult>;
143
+ export {};
@@ -13,7 +13,7 @@ import { normalizeHost } from './machine-id.js';
13
13
  import { probePoolSignals } from './teams/placement-probe.js';
14
14
  import { pickBestDevice } from './teams/scheduler.js';
15
15
  /** Peakiness of usage weights; >1 amplifies the most-used option. */
16
- export const DEFAULT_AFFINITY_ALPHA = 1.3;
16
+ const DEFAULT_AFFINITY_ALPHA = 1.3;
17
17
  /**
18
18
  * Convert affinity rows into positive weights: launches^α (floor 1 for any
19
19
  * row with launches > 0 so a single-use host still participates).
@@ -176,7 +176,7 @@ export async function resolveDeviceAuto(agent, opts = {}) {
176
176
  if (eligiblePool.length === 0) {
177
177
  throw new Error(formatNoHealthyDeviceError(pool, signals, agent));
178
178
  }
179
- // `agents devices prefer <name>` boosts a device in the ranking — resolved
179
+ // `agents devices config <name> auto-launch.preferred on` boosts a device in the ranking — resolved
180
180
  // over the same pool so a fleet default reaches a doc-less box.
181
181
  const preferred = opts.preferred ?? autoLaunchPreferredSet(pool, { roster: pool });
182
182
  const picked = pickBestDevice(eligiblePool, [], { signals, agentLabel: agent, preferred });
@@ -260,21 +260,14 @@ export function isDeviceAuto(value) {
260
260
  }
261
261
  const HOST_SLOTS = ['host', 'device', 'on', 'computer'];
262
262
  /**
263
- * Apply `--device auto` (and deprecated `--smart`) onto run options.
263
+ * Apply `--device auto` onto run options.
264
264
  * Mutates `options` in place. Placement failures propagate without rewriting
265
265
  * `auto`, so callers fail loud instead of silently launching locally.
266
266
  */
267
267
  export async function applyDeviceAutoToOptions(options, deps = {}) {
268
- let deprecationSmart = false;
269
- if (options.smart) {
270
- const anyHost = HOST_SLOTS.some((k) => typeof options[k] === 'string' && options[k].trim() !== '');
271
- if (!anyHost)
272
- options.device = 'auto';
273
- deprecationSmart = true;
274
- }
275
268
  const hasAuto = HOST_SLOTS.some((k) => isDeviceAuto(options[k]));
276
269
  if (!hasAuto) {
277
- return { attempted: false, deprecationSmart };
270
+ return { attempted: false };
278
271
  }
279
272
  const accountPickerRequested = deps.accountPickerRequested ?? false;
280
273
  const resolve = deps.resolve ?? ((accountPicker) => resolveDeviceAuto(deps.agent, { accountPicker }));
@@ -296,7 +289,6 @@ export async function applyDeviceAutoToOptions(options, deps = {}) {
296
289
  const acctNote = accountPickerRequested ? 'accounts=picker' : 'accounts=balanced';
297
290
  return {
298
291
  attempted: true,
299
- deprecationSmart,
300
292
  banner: { hostLabel, deviceHint, acctNote },
301
293
  };
302
294
  }
@@ -19,7 +19,7 @@ import type { AgentId } from './types.js';
19
19
  import type { UnifiedSyncStatus } from './sync-status.js';
20
20
  import type { ViewJsonAgent } from './view-types.js';
21
21
  /** One open-block row in the optional feed summary (no full question bodies). */
22
- export interface SnapshotFeedBlock {
22
+ interface SnapshotFeedBlock {
23
23
  blockId: string;
24
24
  sessionId: string;
25
25
  host: string;
@@ -66,7 +66,7 @@ export interface FleetSnapshot {
66
66
  /** Present when --with-sync (UnifiedSyncStatus; does not replace `agents sync status`). */
67
67
  sync?: UnifiedSyncStatus;
68
68
  }
69
- export interface ComputeSnapshotOptions {
69
+ interface ComputeSnapshotOptions {
70
70
  /** Restrict inventory to one agent id. */
71
71
  agent?: AgentId;
72
72
  /** Local sessions only — no cross-machine SSH fan-out. Default true for cheap polls. */
@@ -101,3 +101,4 @@ export declare function assembleSnapshot(parts: {
101
101
  * `local: false` (or hosts) to match full `sessions --active` fleet scope.
102
102
  */
103
103
  export declare function computeSnapshot(opts?: ComputeSnapshotOptions): Promise<FleetSnapshot>;
104
+ export {};