@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
@@ -1,404 +0,0 @@
1
- /**
2
- * PTY Commands
3
- *
4
- * CLI commands for managing interactive PTY sessions.
5
- * Auto-starts the sidecar server on first use.
6
- *
7
- * Usage:
8
- * agents pty start [--rows 24 --cols 120 --shell zsh --cwd /path]
9
- * agents pty exec <id> <command>
10
- * agents pty read <id> [--ms 200]
11
- * agents pty write <id> <input>
12
- * agents pty screen <id>
13
- * agents pty signal <id> [INT|TERM|KILL]
14
- * agents pty list
15
- * agents pty stop <id>
16
- * agents pty server [start|stop|status]
17
- */
18
- import chalk from 'chalk';
19
- import { ptyRequest, unescapeInput } from '../lib/pty-client.js';
20
- import { isPtyServerRunning, runPtyServer, getPtyPidPath, getPtyLogPath } from '../lib/pty-server.js';
21
- import * as fs from 'fs';
22
- import { setHelpSections } from '../lib/help.js';
23
- /** Register the `agents pty` command tree. */
24
- export function registerPtyCommands(program) {
25
- const pty = program
26
- .command('pty')
27
- .description('Drive interactive terminal programs from AI agents. Use this for REPLs, TUIs, or anything needing a real terminal.');
28
- setHelpSections(pty, {
29
- examples: `
30
- # Start a session (returns a session ID)
31
- SID=$(agents pty start)
32
-
33
- # Run a command (non-blocking)
34
- agents pty exec $SID "python3"
35
-
36
- # Wait, then see what's on screen (clean text, no ANSI)
37
- sleep 1 && agents pty screen $SID
38
-
39
- # Type input (supports escapes: \\n \\t \\e \\xHH)
40
- agents pty write $SID "print('hello')\\n"
41
-
42
- # Read again
43
- agents pty screen $SID
44
-
45
- # Clean up
46
- agents pty stop $SID
47
- `,
48
- notes: `
49
- Use cases:
50
- - Drive REPLs (python, node, irb) from agent code
51
- - Automate TUI programs (npm init, interactive wizards)
52
- - Test CLI tools that require a real PTY
53
- - Run the 'agents' CLI itself from another agent
54
-
55
- The PTY server auto-starts on first use and runs in the background.
56
- Health: 'agents pty server status'.
57
- `,
58
- });
59
- // --- Session lifecycle ---
60
- const startCmd = pty
61
- .command('start')
62
- .description('Start a new PTY session and return its ID. The session persists until you stop it.')
63
- .option('-r, --rows <n>', 'Terminal height in rows', '24')
64
- .option('-c, --cols <n>', 'Terminal width in columns', '120')
65
- .option('-s, --shell <shell>', 'Shell to launch (defaults to $SHELL, e.g., zsh, bash)')
66
- .option('-d, --cwd <dir>', 'Working directory for the shell')
67
- .option('--json', 'Output full session metadata as JSON');
68
- setHelpSections(startCmd, {
69
- examples: `
70
- # Start a session and capture its ID
71
- SID=$(agents pty start)
72
-
73
- # Start a Python REPL in a specific directory
74
- agents pty start --shell python3 --cwd /tmp
75
-
76
- # Start a wider terminal for TUI programs
77
- agents pty start --cols 160 --rows 40
78
- `,
79
- });
80
- startCmd.action(async (opts) => {
81
- const params = {
82
- rows: parseInt(opts.rows, 10),
83
- cols: parseInt(opts.cols, 10),
84
- };
85
- if (opts.shell)
86
- params.shell = opts.shell;
87
- if (opts.cwd)
88
- params.cwd = opts.cwd;
89
- const res = await ptyRequest('start', undefined, params);
90
- if (!res.ok) {
91
- console.error(chalk.red(res.error));
92
- process.exit(1);
93
- }
94
- if (opts.json) {
95
- console.log(JSON.stringify(res));
96
- }
97
- else {
98
- console.log(res.id);
99
- }
100
- });
101
- const execCmd = pty
102
- .command('exec <id> <command>')
103
- .description('Send a command to a PTY session. Returns immediately (non-blocking). Use screen or read to see output.')
104
- .option('--wait <ms>', 'Wait this many milliseconds then return the screen (convenience for quick commands)', '0')
105
- .option('--json', 'Output as JSON');
106
- setHelpSections(execCmd, {
107
- examples: `
108
- # Run a command and return immediately
109
- agents pty exec $SID "ls -la"
110
-
111
- # Run a command and wait 500ms to see output
112
- agents pty exec $SID "git status" --wait 500
113
-
114
- # Start a long-running process (returns right away)
115
- agents pty exec $SID "npm run dev"
116
- `,
117
- });
118
- execCmd.action(async (id, command, opts) => {
119
- const res = await ptyRequest('exec', id, { command });
120
- if (!res.ok) {
121
- console.error(chalk.red(res.error));
122
- process.exit(1);
123
- }
124
- const waitMs = parseInt(opts.wait, 10);
125
- if (waitMs > 0) {
126
- // Wait then return screen
127
- await new Promise(r => setTimeout(r, waitMs));
128
- const screen = await ptyRequest('screen', id);
129
- if (opts.json) {
130
- console.log(JSON.stringify(screen));
131
- }
132
- else if (screen.ok) {
133
- console.log(screen.screen);
134
- }
135
- }
136
- else if (opts.json) {
137
- console.log(JSON.stringify(res));
138
- }
139
- });
140
- const readCmd = pty
141
- .command('read <id>')
142
- .description('Read raw output from the PTY (includes ANSI codes). Use screen for clean text instead.')
143
- .option('-m, --ms <ms>', 'Wait up to this many milliseconds for new output (50-5000)', '200')
144
- .option('--json', 'Output as JSON');
145
- setHelpSections(readCmd, {
146
- examples: `
147
- # Read pending output (wait up to 200ms)
148
- agents pty read $SID
149
-
150
- # Read with longer wait for slow commands
151
- agents pty read $SID --ms 1000
152
- `,
153
- });
154
- readCmd.action(async (id, opts) => {
155
- const ms = parseInt(opts.ms, 10);
156
- const res = await ptyRequest('read', id, { ms });
157
- if (!res.ok) {
158
- console.error(chalk.red(res.error));
159
- process.exit(1);
160
- }
161
- if (opts.json) {
162
- console.log(JSON.stringify(res));
163
- }
164
- else {
165
- if (res.output)
166
- process.stdout.write(res.output);
167
- }
168
- });
169
- const writeCmd = pty
170
- .command('write <id> <input>')
171
- .description('Send keystrokes to the PTY (like typing into the terminal). Processes escape sequences by default.')
172
- .option('--raw', 'Send input literally without processing \\n \\t \\e \\xHH escape codes')
173
- .option('--json', 'Output as JSON');
174
- setHelpSections(writeCmd, {
175
- examples: `
176
- # Send Enter key
177
- agents pty write $SID "\\n"
178
-
179
- # Type a command and press Enter
180
- agents pty write $SID "ls -la\\n"
181
-
182
- # Send Ctrl-C (interrupt signal)
183
- agents pty write $SID "\\x03"
184
-
185
- # Send Escape key
186
- agents pty write $SID "\\e"
187
-
188
- # Send literal backslash-n (not newline)
189
- agents pty write $SID "\\\\n" --raw
190
- `,
191
- });
192
- writeCmd.action(async (id, input, opts) => {
193
- const processed = opts.raw ? input : unescapeInput(input);
194
- const res = await ptyRequest('write', id, { input: processed });
195
- if (!res.ok) {
196
- console.error(chalk.red(res.error));
197
- process.exit(1);
198
- }
199
- if (opts.json) {
200
- console.log(JSON.stringify(res));
201
- }
202
- });
203
- const screenCmd = pty
204
- .command('screen <id>')
205
- .description('Render the terminal screen as clean text (no ANSI codes). This is what a human sees looking at the terminal.')
206
- .option('--json', 'Output as JSON (includes cursor position and dimensions)');
207
- setHelpSections(screenCmd, {
208
- examples: `
209
- # See what's currently on screen
210
- agents pty screen $SID
211
-
212
- # Get screen with cursor position as JSON
213
- agents pty screen $SID --json
214
- `,
215
- notes: `
216
- Use this (not read) when you want clean text for an LLM to parse.
217
- `,
218
- });
219
- screenCmd.action(async (id, opts) => {
220
- const res = await ptyRequest('screen', id);
221
- if (!res.ok) {
222
- console.error(chalk.red(res.error));
223
- process.exit(1);
224
- }
225
- if (opts.json) {
226
- console.log(JSON.stringify(res));
227
- }
228
- else {
229
- console.log(res.screen);
230
- }
231
- });
232
- const signalCmd = pty
233
- .command('signal <id> [signal]')
234
- .description('Send a POSIX signal to the running process. Defaults to INT (Ctrl-C).');
235
- setHelpSections(signalCmd, {
236
- examples: `
237
- # Send Ctrl-C (interrupt)
238
- agents pty signal $SID INT
239
-
240
- # Terminate gracefully
241
- agents pty signal $SID TERM
242
-
243
- # Force kill
244
- agents pty signal $SID KILL
245
- `,
246
- });
247
- signalCmd.action(async (id, signal) => {
248
- const res = await ptyRequest('signal', id, { signal: signal || 'INT' });
249
- if (!res.ok) {
250
- console.error(chalk.red(res.error));
251
- process.exit(1);
252
- }
253
- });
254
- pty
255
- .command('resize <id>')
256
- .description('Resize a PTY session')
257
- .option('-r, --rows <n>', 'Terminal rows')
258
- .option('-c, --cols <n>', 'Terminal columns')
259
- .action(async (id, opts) => {
260
- const params = {};
261
- if (opts.rows)
262
- params.rows = parseInt(opts.rows, 10);
263
- if (opts.cols)
264
- params.cols = parseInt(opts.cols, 10);
265
- const res = await ptyRequest('resize', id, params);
266
- if (!res.ok) {
267
- console.error(chalk.red(res.error));
268
- process.exit(1);
269
- }
270
- console.log(`${res.cols}x${res.rows}`);
271
- });
272
- const stopCmd = pty
273
- .command('stop <id>')
274
- .description('Stop a PTY session and clean up. The session ID becomes invalid.');
275
- setHelpSections(stopCmd, {
276
- examples: `
277
- # Stop a session by ID
278
- agents pty stop $SID
279
- `,
280
- });
281
- stopCmd.action(async (id) => {
282
- const res = await ptyRequest('stop', id);
283
- if (!res.ok) {
284
- console.error(chalk.red(res.error));
285
- process.exit(1);
286
- }
287
- });
288
- // --- Session listing ---
289
- const listCmd = pty
290
- .command('list')
291
- .description('List all active PTY sessions (running or idle).')
292
- .option('--json', 'Output as JSON');
293
- setHelpSections(listCmd, {
294
- examples: `
295
- # List all active sessions
296
- agents pty list
297
- `,
298
- });
299
- listCmd.action(async (opts) => {
300
- const res = await ptyRequest('list');
301
- if (!res.ok) {
302
- console.error(chalk.red(res.error));
303
- process.exit(1);
304
- }
305
- if (opts.json) {
306
- console.log(JSON.stringify(res.sessions));
307
- return;
308
- }
309
- if (res.sessions.length === 0) {
310
- console.log(chalk.gray('No active PTY sessions'));
311
- return;
312
- }
313
- for (const s of res.sessions) {
314
- const age = formatAge(Date.now() - s.started_at);
315
- const status = s.exited
316
- ? chalk.red(`exited (${s.exit_code})`)
317
- : s.app_active
318
- ? chalk.yellow(`running: ${s.active_command}`)
319
- : chalk.green('idle');
320
- console.log(` ${chalk.bold(s.id)} pid=${s.pid} ${s.shell} ${s.cols}x${s.rows} ${age} ${status}`);
321
- console.log(` ${chalk.gray(s.cwd)}`);
322
- }
323
- });
324
- // --- Server management ---
325
- const serverCmd = pty
326
- .command('server')
327
- .description('Manage the PTY sidecar server (auto-starts on first use, usually you do not need this).');
328
- serverCmd
329
- .command('start')
330
- .description('Start the PTY server manually (auto-starts on first pty command anyway).')
331
- .action(async () => {
332
- if (isPtyServerRunning()) {
333
- const pidPath = getPtyPidPath();
334
- const pid = fs.existsSync(pidPath) ? fs.readFileSync(pidPath, 'utf-8').trim() : '?';
335
- console.log(chalk.yellow(`PTY server already running (PID: ${pid})`));
336
- return;
337
- }
338
- // Use ptyRequest which auto-starts the server
339
- const res = await ptyRequest('ping');
340
- if (res.ok) {
341
- console.log(chalk.green(`PTY server started (PID: ${res.pid})`));
342
- }
343
- else {
344
- console.error(chalk.red('Failed to start PTY server'));
345
- process.exit(1);
346
- }
347
- });
348
- serverCmd
349
- .command('stop')
350
- .description('Stop the PTY server and kill all active sessions.')
351
- .action(async () => {
352
- if (!isPtyServerRunning()) {
353
- console.log(chalk.yellow('PTY server is not running'));
354
- return;
355
- }
356
- const pidPath = getPtyPidPath();
357
- try {
358
- const pid = parseInt(fs.readFileSync(pidPath, 'utf-8').trim(), 10);
359
- process.kill(pid, 'SIGTERM');
360
- console.log(chalk.green('PTY server stopped'));
361
- }
362
- catch {
363
- console.error(chalk.red('Failed to stop PTY server'));
364
- process.exit(1);
365
- }
366
- });
367
- serverCmd
368
- .command('status')
369
- .description('Check if the PTY server is running and how many sessions are active.')
370
- .action(async () => {
371
- const running = isPtyServerRunning();
372
- console.log(` Status: ${running ? chalk.green('running') : chalk.gray('stopped')}`);
373
- if (running) {
374
- try {
375
- const res = await ptyRequest('ping');
376
- if (res.ok) {
377
- console.log(` PID: ${res.pid}`);
378
- console.log(` Sessions: ${res.sessions}`);
379
- }
380
- }
381
- catch { }
382
- }
383
- const logPath = getPtyLogPath();
384
- console.log(` Log: ${logPath}`);
385
- });
386
- // Internal: run server in foreground (spawned by auto-start)
387
- pty
388
- .command('_server', { hidden: true })
389
- .description('Run PTY server (internal)')
390
- .action(async () => {
391
- await runPtyServer();
392
- });
393
- }
394
- /** Format a millisecond duration as a compact human-readable string (e.g. "5m", "2h 30m"). */
395
- function formatAge(ms) {
396
- const secs = Math.floor(ms / 1000);
397
- if (secs < 60)
398
- return `${secs}s`;
399
- const mins = Math.floor(secs / 60);
400
- if (mins < 60)
401
- return `${mins}m`;
402
- const hours = Math.floor(mins / 60);
403
- return `${hours}h ${mins % 60}m`;
404
- }
@@ -1,46 +0,0 @@
1
- /**
2
- * `agents reconnect [session-id]` — get me back into an agent terminal whose ssh
3
- * link dropped.
4
- *
5
- * The auto-reconnect in lib/hosts/reconnect.ts already re-attaches a live remote
6
- * pane over its own bounded backoff on a transient blink. This is the MANUAL
7
- * recovery for after it gave up — a sustained outage, or a VS Code terminal tab
8
- * that closed with the dead ssh client. One verb that always tries hardest to put
9
- * you back into that agent: attach the live pane if it still exists, else resume
10
- * the session; live pane > resumed copy > a clear message about what was lost.
11
- *
12
- * It delegates to `focus`, which already does exactly attach-else-resume for a
13
- * resolved id ({@link focusAction} → `focusResolvedSession`), so there is no second
14
- * recovery path to keep in sync. What `reconnect` adds is the recovery framing and,
15
- * with no id, targeting the MOST RECENT session in this shell's directory — the one
16
- * that most likely just dropped — instead of opening the full fleet picker.
17
- */
18
- import type { Command } from 'commander';
19
- import type { SessionMeta } from '../lib/session/types.js';
20
- /**
21
- * The recency signal a no-id reconnect targets: last activity if the scan
22
- * computed one, else the creation time. A row with neither parseable sorts last.
23
- * Pure so target selection is unit-tested without the scanner.
24
- */
25
- export declare function sessionRecency(s: Pick<SessionMeta, 'lastActivity' | 'timestamp'>): number;
26
- /**
27
- * Pick the session to reconnect when the user gave no id: the most recently
28
- * active one in scope — the terminal that most likely just dropped. Pure; returns
29
- * undefined for an empty scope so the caller can print guidance.
30
- */
31
- export declare function pickMostRecentSession(sessions: SessionMeta[]): SessionMeta | undefined;
32
- /**
33
- * Resolve the no-id target: prefer the most recent session started from THIS
34
- * directory (the shell the user is reconnecting from), falling back to the most
35
- * recent session anywhere when the current directory has none. Best-effort — a
36
- * discovery failure yields undefined, never throws. Injectable `discover` keeps
37
- * the two-step scope preference testable without touching the real scanner.
38
- */
39
- export declare function resolveRecentTarget(cwd: string, discover?: (opts: {
40
- cwd?: string;
41
- all?: boolean;
42
- since?: string;
43
- limit?: number;
44
- }) => Promise<SessionMeta[]>): Promise<SessionMeta | undefined>;
45
- export declare function reconnectAction(id: string | undefined): Promise<void>;
46
- export declare function registerReconnectCommand(program: Command): void;
@@ -1,115 +0,0 @@
1
- /**
2
- * `agents reconnect [session-id]` — get me back into an agent terminal whose ssh
3
- * link dropped.
4
- *
5
- * The auto-reconnect in lib/hosts/reconnect.ts already re-attaches a live remote
6
- * pane over its own bounded backoff on a transient blink. This is the MANUAL
7
- * recovery for after it gave up — a sustained outage, or a VS Code terminal tab
8
- * that closed with the dead ssh client. One verb that always tries hardest to put
9
- * you back into that agent: attach the live pane if it still exists, else resume
10
- * the session; live pane > resumed copy > a clear message about what was lost.
11
- *
12
- * It delegates to `focus`, which already does exactly attach-else-resume for a
13
- * resolved id ({@link focusAction} → `focusResolvedSession`), so there is no second
14
- * recovery path to keep in sync. What `reconnect` adds is the recovery framing and,
15
- * with no id, targeting the MOST RECENT session in this shell's directory — the one
16
- * that most likely just dropped — instead of opening the full fleet picker.
17
- */
18
- import chalk from 'chalk';
19
- import { focusAction } from './focus.js';
20
- import { discoverSessions } from '../lib/session/discover.js';
21
- import { setHelpSections } from '../lib/help.js';
22
- /**
23
- * The recency signal a no-id reconnect targets: last activity if the scan
24
- * computed one, else the creation time. A row with neither parseable sorts last.
25
- * Pure so target selection is unit-tested without the scanner.
26
- */
27
- export function sessionRecency(s) {
28
- const t = Date.parse(s.lastActivity ?? s.timestamp ?? '');
29
- return Number.isFinite(t) ? t : Number.NEGATIVE_INFINITY;
30
- }
31
- /**
32
- * Pick the session to reconnect when the user gave no id: the most recently
33
- * active one in scope — the terminal that most likely just dropped. Pure; returns
34
- * undefined for an empty scope so the caller can print guidance.
35
- */
36
- export function pickMostRecentSession(sessions) {
37
- let best;
38
- for (const s of sessions) {
39
- if (!best || sessionRecency(s) > sessionRecency(best))
40
- best = s;
41
- }
42
- return best;
43
- }
44
- /**
45
- * Resolve the no-id target: prefer the most recent session started from THIS
46
- * directory (the shell the user is reconnecting from), falling back to the most
47
- * recent session anywhere when the current directory has none. Best-effort — a
48
- * discovery failure yields undefined, never throws. Injectable `discover` keeps
49
- * the two-step scope preference testable without touching the real scanner.
50
- */
51
- export async function resolveRecentTarget(cwd, discover = discoverSessions) {
52
- try {
53
- const here = await discover({ cwd, since: '7d', limit: 200 });
54
- const local = pickMostRecentSession(here);
55
- if (local)
56
- return local;
57
- const any = await discover({ all: true, since: '7d', limit: 200 });
58
- return pickMostRecentSession(any);
59
- }
60
- catch {
61
- return undefined;
62
- }
63
- }
64
- export async function reconnectAction(id) {
65
- if (id) {
66
- // focus already attaches a live pane or recovers a dropped one for a resolved
67
- // id — on the origin device for a remote session. Reconnect is that path with
68
- // a recovery-first name; no reason to duplicate the resolution/attach logic.
69
- await focusAction(id, {});
70
- return;
71
- }
72
- const recent = await resolveRecentTarget(process.cwd());
73
- if (!recent) {
74
- console.log(chalk.gray('No recent session to reconnect from here.'));
75
- console.log(chalk.gray(' reconnect a specific one: agents reconnect <session-id>'));
76
- console.log(chalk.gray(' or pick from the fleet: agents sessions'));
77
- return;
78
- }
79
- const where = recent.machine ? ` on ${recent.machine}` : '';
80
- console.log(chalk.gray(`Reconnecting ${recent.shortId}${where} (most recent here)…`));
81
- await focusAction(recent.id, {});
82
- }
83
- export function registerReconnectCommand(program) {
84
- // Deprecated: superseded by `agents sessions resume`, which does the same
85
- // attach-else-recover and additionally takes a tmux alias. Hidden + warned +
86
- // functional for one release. Bare `reconnect` targeted the most recent
87
- // session in this directory; that default now lives on `resume`'s picker.
88
- const cmd = program
89
- .command('reconnect', { hidden: true })
90
- .argument('[session-id]', 'Session id/prefix to reconnect (default: the most recent session started here)')
91
- .description('Deprecated — use `agents sessions resume` instead.')
92
- .action(async (id) => {
93
- console.warn(chalk.yellow('`agents reconnect` is deprecated — use `agents sessions resume` instead:'));
94
- console.warn(chalk.gray(` agents sessions resume${id ? ` ${id}` : ''}`));
95
- await reconnectAction(id);
96
- });
97
- setHelpSections(cmd, {
98
- examples: `
99
- # Reconnect the session that just dropped in this shell (most recent here)
100
- agents reconnect
101
-
102
- # Reconnect one specific agent terminal by id/prefix
103
- agents reconnect 74b13b0b
104
-
105
- # Same, spelled under the sessions group
106
- agents sessions reconnect 74b13b0b
107
- `,
108
- notes: `
109
- - Best-effort recovery: a living remote tmux pane is JOINED (a second client, no fork); a dropped one is RESUMED on its origin device (a copy if it was mid-run, a /continue if idle).
110
- - With no id, targets the most recent session started from this directory (the terminal that most likely just dropped), not the full fleet picker. Falls back to the most recent session anywhere when this directory has none.
111
- - This is the manual companion to the automatic reconnect that runs during a live 'agents run --device <box>' when the network blinks; use it after that gave up or the terminal tab closed.
112
- - Deprecated: use 'agents sessions resume' — it attaches a live pane, foregrounds a headless session, or recovers an ended one.
113
- `,
114
- });
115
- }