@phnx-labs/agents-cli 1.22.113 → 1.22.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (680) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +10 -11
  3. package/dist/cli/command-registry.d.ts +0 -60
  4. package/dist/cli/command-registry.js +59 -61
  5. package/dist/commands/apply.d.ts +0 -4
  6. package/dist/commands/apply.js +3 -3
  7. package/dist/commands/browser-picker.d.ts +3 -6
  8. package/dist/commands/browser-picker.js +2 -2
  9. package/dist/commands/browser-sessions-picker.d.ts +2 -1
  10. package/dist/commands/computer-sessions-picker.d.ts +2 -1
  11. package/dist/commands/computer.d.ts +14 -19
  12. package/dist/commands/computer.js +65 -10
  13. package/dist/commands/config.js +46 -2
  14. package/dist/commands/daemon.d.ts +0 -23
  15. package/dist/commands/daemon.js +1 -1
  16. package/dist/commands/detach-core.d.ts +2 -1
  17. package/dist/commands/detach.d.ts +0 -3
  18. package/dist/commands/detach.js +3 -3
  19. package/dist/commands/feed.d.ts +3 -3
  20. package/dist/commands/feed.js +1 -1
  21. package/dist/commands/focus.d.ts +4 -4
  22. package/dist/commands/harness-hooks.d.ts +0 -7
  23. package/dist/commands/harness-hooks.js +1 -1
  24. package/dist/commands/harness-wizard.d.ts +2 -2
  25. package/dist/commands/harness.d.ts +3 -8
  26. package/dist/commands/harness.js +1 -1
  27. package/dist/commands/inspect.d.ts +2 -3
  28. package/dist/commands/inspect.js +1 -1
  29. package/dist/commands/message.d.ts +1 -1
  30. package/dist/commands/message.js +3 -3
  31. package/dist/commands/projects.d.ts +2 -18
  32. package/dist/commands/projects.js +89 -3
  33. package/dist/commands/resource-view.d.ts +3 -2
  34. package/dist/commands/resume.d.ts +0 -1
  35. package/dist/commands/resume.js +1 -1
  36. package/dist/commands/routines.d.ts +1 -3
  37. package/dist/commands/routines.js +1 -1
  38. package/dist/commands/run-account-picker.d.ts +2 -1
  39. package/dist/commands/run-broadcast.d.ts +2 -1
  40. package/dist/commands/run-device-picker.d.ts +2 -1
  41. package/dist/commands/secrets-passthrough.d.ts +14 -0
  42. package/dist/commands/secrets-passthrough.js +21 -2
  43. package/dist/commands/sessions-backfill.d.ts +2 -35
  44. package/dist/commands/sessions-backfill.js +1 -1
  45. package/dist/commands/sessions-bookmark.d.ts +0 -10
  46. package/dist/commands/sessions-bookmark.js +1 -1
  47. package/dist/commands/sessions-inject.d.ts +2 -3
  48. package/dist/commands/sessions-inject.js +8 -17
  49. package/dist/commands/sessions-picker-factory.d.ts +4 -14
  50. package/dist/commands/sessions-picker-factory.js +2 -2
  51. package/dist/commands/sessions-picker.d.ts +3 -9
  52. package/dist/commands/sessions-picker.js +2 -2
  53. package/dist/commands/sessions-resume.d.ts +2 -4
  54. package/dist/commands/sessions-resume.js +0 -5
  55. package/dist/commands/sessions-stats.d.ts +2 -1
  56. package/dist/commands/sessions-stop.d.ts +0 -3
  57. package/dist/commands/sessions-stop.js +1 -1
  58. package/dist/commands/sessions-tail.d.ts +2 -1
  59. package/dist/commands/sessions-trace.d.ts +4 -6
  60. package/dist/commands/sessions-trace.js +1 -1
  61. package/dist/commands/sessions.d.ts +13 -104
  62. package/dist/commands/sessions.js +10 -10
  63. package/dist/commands/setup-mine.d.ts +0 -6
  64. package/dist/commands/setup-mine.js +1 -1
  65. package/dist/commands/setup.d.ts +3 -4
  66. package/dist/commands/setup.js +1 -1
  67. package/dist/commands/share.d.ts +8 -8
  68. package/dist/commands/teams-picker.d.ts +2 -5
  69. package/dist/commands/teams-picker.js +2 -2
  70. package/dist/commands/teams.d.ts +1 -7
  71. package/dist/commands/teams.js +1 -1
  72. package/dist/commands/tmux.d.ts +1 -1
  73. package/dist/commands/tmux.js +1 -1
  74. package/dist/commands/upgrade.d.ts +2 -1
  75. package/dist/commands/utils.d.ts +1 -1
  76. package/dist/commands/utils.js +1 -1
  77. package/dist/lib/account-capabilities.d.ts +2 -1
  78. package/dist/lib/account-catalog.d.ts +4 -13
  79. package/dist/lib/account-catalog.js +1 -1
  80. package/dist/lib/account-registry.d.ts +3 -4
  81. package/dist/lib/account-registry.js +1 -1
  82. package/dist/lib/accounting/account-launch.d.ts +4 -3
  83. package/dist/lib/accounting/account-pool.d.ts +2 -1
  84. package/dist/lib/accounting/rotate.d.ts +3 -9
  85. package/dist/lib/accounting/rotate.js +2 -14
  86. package/dist/lib/accounting/usage-sync.d.ts +5 -4
  87. package/dist/lib/accounting/usage.d.ts +7 -31
  88. package/dist/lib/accounting/usage.js +4 -4
  89. package/dist/lib/accounts/migrate.d.ts +8 -8
  90. package/dist/lib/accounts/migrate.js +1 -1
  91. package/dist/lib/acp/client.d.ts +3 -2
  92. package/dist/lib/acp/harnesses.d.ts +2 -2
  93. package/dist/lib/acp/harnesses.js +1 -1
  94. package/dist/lib/acp/run.d.ts +2 -1
  95. package/dist/lib/actor.d.ts +3 -2
  96. package/dist/lib/add-dir.d.ts +2 -17
  97. package/dist/lib/add-dir.js +2 -6
  98. package/dist/lib/address.d.ts +56 -0
  99. package/dist/lib/address.js +143 -0
  100. package/dist/lib/agent-spec/agents.d.ts +12 -28
  101. package/dist/lib/agent-spec/agents.js +2 -6
  102. package/dist/lib/agent-spec/primitives.d.ts +0 -7
  103. package/dist/lib/agent-spec/primitives.js +0 -6
  104. package/dist/lib/agent-spec/types.d.ts +2 -1
  105. package/dist/lib/analytics/dashboard.d.ts +1 -5
  106. package/dist/lib/analytics/dashboard.js +0 -2
  107. package/dist/lib/analytics/mix-commands.d.ts +0 -7
  108. package/dist/lib/analytics/mix-commands.js +3 -3
  109. package/dist/lib/analytics/recipes.d.ts +0 -12
  110. package/dist/lib/analytics/recipes.js +7 -31
  111. package/dist/lib/analytics/usage-db.d.ts +5 -32
  112. package/dist/lib/analytics/usage-db.js +1 -70
  113. package/dist/lib/answer-router.d.ts +7 -6
  114. package/dist/lib/answer-router.js +5 -11
  115. package/dist/lib/artifact-actions.d.ts +0 -4
  116. package/dist/lib/ask-classifier.d.ts +3 -4
  117. package/dist/lib/ask-classifier.js +0 -7
  118. package/dist/lib/auth-health.d.ts +3 -46
  119. package/dist/lib/auth-health.js +3 -3
  120. package/dist/lib/auth-mint.d.ts +6 -6
  121. package/dist/lib/auth-mint.js +5 -5
  122. package/dist/lib/bench/runner.d.ts +2 -2
  123. package/dist/lib/bench/runner.js +1 -1
  124. package/dist/lib/bench/storage.d.ts +0 -1
  125. package/dist/lib/bench/storage.js +1 -1
  126. package/dist/lib/boot-profile.d.ts +0 -2
  127. package/dist/lib/boot-profile.js +0 -4
  128. package/dist/lib/brand.d.ts +0 -6
  129. package/dist/lib/brand.js +1 -1
  130. package/dist/lib/browser/arc-discovery.d.ts +4 -12
  131. package/dist/lib/browser/arc-discovery.js +1 -1
  132. package/dist/lib/browser/cdp.d.ts +1 -1
  133. package/dist/lib/browser/chrome.d.ts +2 -2
  134. package/dist/lib/browser/chrome.js +0 -4
  135. package/dist/lib/browser/chromium-discovery.d.ts +3 -2
  136. package/dist/lib/browser/drivers/arc.d.ts +3 -20
  137. package/dist/lib/browser/drivers/arc.js +2 -7
  138. package/dist/lib/browser/drivers/firefox.d.ts +2 -6
  139. package/dist/lib/browser/drivers/firefox.js +1 -1
  140. package/dist/lib/browser/drivers/local.d.ts +2 -1
  141. package/dist/lib/browser/drivers/ssh.d.ts +2 -3
  142. package/dist/lib/browser/drivers/ssh.js +0 -7
  143. package/dist/lib/browser/firefox-discovery.d.ts +4 -3
  144. package/dist/lib/browser/har.d.ts +8 -7
  145. package/dist/lib/browser/hygiene.d.ts +2 -3
  146. package/dist/lib/browser/hygiene.js +1 -1
  147. package/dist/lib/browser/ipc.d.ts +4 -3
  148. package/dist/lib/browser/ipc.js +1 -1
  149. package/dist/lib/browser/login-detection.d.ts +1 -8
  150. package/dist/lib/browser/registry.d.ts +2 -1
  151. package/dist/lib/browser/remote-control.d.ts +0 -7
  152. package/dist/lib/browser/remote-control.js +2 -2
  153. package/dist/lib/browser/resolve-target.d.ts +2 -6
  154. package/dist/lib/browser/resolve-target.js +3 -3
  155. package/dist/lib/browser/runtime-state.d.ts +4 -4
  156. package/dist/lib/browser/service.d.ts +4 -4
  157. package/dist/lib/browser/sessions-list.d.ts +0 -10
  158. package/dist/lib/browser/sessions-list.js +3 -3
  159. package/dist/lib/browser/stream.d.ts +2 -1
  160. package/dist/lib/browser/task-index.d.ts +4 -4
  161. package/dist/lib/browser/task-index.js +1 -1
  162. package/dist/lib/browser/types.d.ts +0 -20
  163. package/dist/lib/browser/types.js +1 -34
  164. package/dist/lib/browser/upload.d.ts +0 -27
  165. package/dist/lib/budget/ledger.d.ts +0 -2
  166. package/dist/lib/budget/ledger.js +1 -1
  167. package/dist/lib/budget/live-cloud.d.ts +2 -1
  168. package/dist/lib/budget/preflight.d.ts +3 -5
  169. package/dist/lib/budget/preflight.js +1 -1
  170. package/dist/lib/catchup.d.ts +2 -1
  171. package/dist/lib/channels/owner-forward.d.ts +5 -4
  172. package/dist/lib/channels/owner-sink.js +2 -2
  173. package/dist/lib/channels/providers/desktop.js +1 -1
  174. package/dist/lib/channels/providers/rush.d.ts +2 -1
  175. package/dist/lib/channels/registry.d.ts +1 -1
  176. package/dist/lib/channels/registry.js +1 -1
  177. package/dist/lib/channels/resolve.d.ts +3 -2
  178. package/dist/lib/channels/send.d.ts +5 -4
  179. package/dist/lib/cli-resources.d.ts +3 -9
  180. package/dist/lib/cli-resources.js +1 -1
  181. package/dist/lib/cloud/cursor.d.ts +1 -2
  182. package/dist/lib/cloud/cursor.js +1 -1
  183. package/dist/lib/cloud/dispatch.d.ts +2 -1
  184. package/dist/lib/cloud/factory.d.ts +0 -2
  185. package/dist/lib/cloud/factory.js +1 -1
  186. package/dist/lib/cloud/rush.d.ts +3 -11
  187. package/dist/lib/cloud/rush.js +1 -1
  188. package/dist/lib/cloud/session-index.d.ts +2 -1
  189. package/dist/lib/cloud/types.d.ts +2 -1
  190. package/dist/lib/codex-policy.d.ts +2 -1
  191. package/dist/lib/commands.d.ts +7 -7
  192. package/dist/lib/commands.js +1 -1
  193. package/dist/lib/comms-render.d.ts +1 -1
  194. package/dist/lib/computer/context.d.ts +11 -3
  195. package/dist/lib/computer/context.js +2 -2
  196. package/dist/lib/computer/policy.d.ts +0 -12
  197. package/dist/lib/computer/policy.js +1 -1
  198. package/dist/lib/computer-client.d.ts +3 -3
  199. package/dist/lib/computer-client.js +0 -1
  200. package/dist/lib/concurrency.d.ts +2 -1
  201. package/dist/lib/config-keys.d.ts +16 -3
  202. package/dist/lib/config-keys.js +47 -2
  203. package/dist/lib/convert.d.ts +0 -12
  204. package/dist/lib/convert.js +1 -12
  205. package/dist/lib/crabbox/cli.d.ts +6 -24
  206. package/dist/lib/crabbox/cli.js +2 -28
  207. package/dist/lib/crabbox/lease.d.ts +5 -6
  208. package/dist/lib/crabbox/lease.js +1 -1
  209. package/dist/lib/crabbox/progress.d.ts +2 -1
  210. package/dist/lib/crabbox/setup-copy.d.ts +2 -3
  211. package/dist/lib/crabbox/setup-copy.js +1 -1
  212. package/dist/lib/daemon/account-state-daemon-service.d.ts +1 -1
  213. package/dist/lib/daemon/attention-notify-service.d.ts +2 -1
  214. package/dist/lib/daemon/catchup-service.d.ts +2 -1
  215. package/dist/lib/daemon/daemon.d.ts +4 -4
  216. package/dist/lib/daemon/daemon.js +1 -1
  217. package/dist/lib/daemon/harness-update-service.d.ts +2 -19
  218. package/dist/lib/daemon/harness-update-service.js +3 -3
  219. package/dist/lib/daemon/runner.d.ts +3 -3
  220. package/dist/lib/daemon/self-update-service.d.ts +1 -16
  221. package/dist/lib/daemon/self-update-service.js +6 -6
  222. package/dist/lib/daemon/state-dir-check-service.d.ts +2 -1
  223. package/dist/lib/daemon/supervisor.d.ts +3 -2
  224. package/dist/lib/daemon-services.d.ts +2 -1
  225. package/dist/lib/daemon-webhooks.d.ts +1 -1
  226. package/dist/lib/deeplink/register.d.ts +3 -13
  227. package/dist/lib/deeplink/register.js +3 -3
  228. package/dist/lib/deeplink/url.d.ts +3 -2
  229. package/dist/lib/device-config.d.ts +4 -15
  230. package/dist/lib/device-config.js +164 -8
  231. package/dist/lib/devices/connect.d.ts +2 -1
  232. package/dist/lib/devices/discovery-policy.d.ts +3 -2
  233. package/dist/lib/devices/doctor-findings.js +1 -1
  234. package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
  235. package/dist/lib/devices/fleet-divergence.d.ts +2 -1
  236. package/dist/lib/devices/fleet.d.ts +3 -4
  237. package/dist/lib/devices/fleet.js +1 -1
  238. package/dist/lib/devices/harness-inventory.d.ts +3 -2
  239. package/dist/lib/devices/health-report.d.ts +3 -2
  240. package/dist/lib/devices/health.d.ts +1 -8
  241. package/dist/lib/devices/health.js +1 -1
  242. package/dist/lib/devices/interactive-host.d.ts +0 -2
  243. package/dist/lib/devices/interactive-host.js +1 -1
  244. package/dist/lib/devices/known-hosts.d.ts +2 -20
  245. package/dist/lib/devices/known-hosts.js +2 -2
  246. package/dist/lib/devices/pool.d.ts +2 -1
  247. package/dist/lib/devices/resolve-target.d.ts +2 -2
  248. package/dist/lib/devices/rollout-verify.d.ts +3 -2
  249. package/dist/lib/devices/stats-cache.d.ts +3 -2
  250. package/dist/lib/devices/sync.d.ts +6 -5
  251. package/dist/lib/devices/worker-pick.d.ts +3 -12
  252. package/dist/lib/devices/worker-pick.js +1 -1
  253. package/dist/lib/diff-text.d.ts +2 -1
  254. package/dist/lib/doctor-diff.d.ts +2 -1
  255. package/dist/lib/drift-sync.d.ts +3 -2
  256. package/dist/lib/drift.d.ts +3 -3
  257. package/dist/lib/drift.js +1 -1
  258. package/dist/lib/event-families.d.ts +0 -6
  259. package/dist/lib/event-families.js +3 -3
  260. package/dist/lib/event-provenance.d.ts +2 -1
  261. package/dist/lib/events-ingest.d.ts +4 -3
  262. package/dist/lib/exec-account-home.d.ts +2 -4
  263. package/dist/lib/exec-account-home.js +1 -1
  264. package/dist/lib/exec-bounded.d.ts +3 -4
  265. package/dist/lib/exec-bounded.js +1 -1
  266. package/dist/lib/exec.d.ts +6 -18
  267. package/dist/lib/exec.js +1 -1
  268. package/dist/lib/factory/snapshot.d.ts +2 -2
  269. package/dist/lib/factory/snapshot.js +1 -1
  270. package/dist/lib/feed/activity-stream.d.ts +2 -5
  271. package/dist/lib/feed/activity-stream.js +2 -2
  272. package/dist/lib/feed/activity.d.ts +8 -33
  273. package/dist/lib/feed/activity.js +8 -8
  274. package/dist/lib/feed/answer.d.ts +3 -2
  275. package/dist/lib/feed/attention.js +5 -1
  276. package/dist/lib/feed/events.d.ts +2 -47
  277. package/dist/lib/feed/events.js +1 -141
  278. package/dist/lib/feed/feed.d.ts +9 -42
  279. package/dist/lib/feed/feed.js +1 -60
  280. package/dist/lib/feed/pr-status.d.ts +0 -2
  281. package/dist/lib/feed/pr-status.js +1 -5
  282. package/dist/lib/feed/watch.d.ts +1 -2
  283. package/dist/lib/feed/watch.js +0 -1
  284. package/dist/lib/feed-broadcast.d.ts +5 -47
  285. package/dist/lib/feed-broadcast.js +9 -9
  286. package/dist/lib/feed-outcome.d.ts +3 -6
  287. package/dist/lib/feed-outcome.js +2 -2
  288. package/dist/lib/feed-policy.d.ts +5 -6
  289. package/dist/lib/feed-policy.js +2 -2
  290. package/dist/lib/feed-post.d.ts +3 -4
  291. package/dist/lib/feed-post.js +1 -1
  292. package/dist/lib/feed-ranking.d.ts +2 -2
  293. package/dist/lib/feed-ranking.js +1 -1
  294. package/dist/lib/fleet/apply.d.ts +5 -6
  295. package/dist/lib/fleet/apply.js +4 -4
  296. package/dist/lib/fleet/manifest.d.ts +2 -1
  297. package/dist/lib/fleet/remote-login.d.ts +18 -36
  298. package/dist/lib/fleet/remote-login.js +20 -19
  299. package/dist/lib/fleet/types.d.ts +0 -8
  300. package/dist/lib/fleet-cache.d.ts +1 -18
  301. package/dist/lib/fleet-cache.js +0 -5
  302. package/dist/lib/fleet-shared-repo-sync.d.ts +3 -3
  303. package/dist/lib/fleet-shared-repo-sync.js +1 -1
  304. package/dist/lib/fleet-shared-state.d.ts +3 -2
  305. package/dist/lib/format.d.ts +2 -1
  306. package/dist/lib/friction-heuristics.d.ts +2 -1
  307. package/dist/lib/fs-walk.d.ts +2 -1
  308. package/dist/lib/fuzzy.d.ts +2 -1
  309. package/dist/lib/gemini-settings.d.ts +0 -1
  310. package/dist/lib/gemini-settings.js +1 -1
  311. package/dist/lib/git.d.ts +7 -65
  312. package/dist/lib/git.js +3 -142
  313. package/dist/lib/github/gh-overload.d.ts +0 -4
  314. package/dist/lib/github/gh-overload.js +2 -2
  315. package/dist/lib/github/project-prs.d.ts +118 -0
  316. package/dist/lib/github/project-prs.js +173 -0
  317. package/dist/lib/github/rest.d.ts +2 -1
  318. package/dist/lib/harness/exec-config-version.d.ts +2 -1
  319. package/dist/lib/harness-auth-capabilities.d.ts +5 -4
  320. package/dist/lib/harness-connection-test.d.ts +2 -1
  321. package/dist/lib/heal.d.ts +3 -20
  322. package/dist/lib/heal.js +2 -39
  323. package/dist/lib/help.d.ts +3 -2
  324. package/dist/lib/helper-download.d.ts +0 -12
  325. package/dist/lib/helper-download.js +2 -2
  326. package/dist/lib/helper-versions.d.ts +2 -1
  327. package/dist/lib/helper-versions.js +1 -1
  328. package/dist/lib/hooks/install.d.ts +8 -49
  329. package/dist/lib/hooks/install.js +2 -96
  330. package/dist/lib/hooks/match.d.ts +2 -1
  331. package/dist/lib/hosts/credential-transport.d.ts +0 -2
  332. package/dist/lib/hosts/credential-transport.js +1 -1
  333. package/dist/lib/hosts/dispatch.d.ts +2 -24
  334. package/dist/lib/hosts/dispatch.js +2 -2
  335. package/dist/lib/hosts/logs.d.ts +2 -1
  336. package/dist/lib/hosts/passthrough.d.ts +1 -1
  337. package/dist/lib/hosts/passthrough.js +0 -1
  338. package/dist/lib/hosts/progress.d.ts +0 -5
  339. package/dist/lib/hosts/progress.js +1 -1
  340. package/dist/lib/hosts/ready.d.ts +3 -4
  341. package/dist/lib/hosts/ready.js +0 -8
  342. package/dist/lib/hosts/reconcile.d.ts +2 -8
  343. package/dist/lib/hosts/reconcile.js +1 -1
  344. package/dist/lib/hosts/reconnect.d.ts +4 -11
  345. package/dist/lib/hosts/reconnect.js +2 -2
  346. package/dist/lib/hosts/registry.d.ts +1 -1
  347. package/dist/lib/hosts/remote-cmd.d.ts +4 -3
  348. package/dist/lib/hosts/session-index.d.ts +3 -2
  349. package/dist/lib/hosts/ssh-config.d.ts +2 -3
  350. package/dist/lib/hosts/ssh-config.js +0 -10
  351. package/dist/lib/humans.d.ts +0 -2
  352. package/dist/lib/humans.js +2 -2
  353. package/dist/lib/import.d.ts +4 -3
  354. package/dist/lib/installations/installation-lock.d.ts +0 -2
  355. package/dist/lib/installations/installation-lock.js +2 -2
  356. package/dist/lib/installations/launch-gate.d.ts +0 -9
  357. package/dist/lib/installations/launch-gate.js +1 -1
  358. package/dist/lib/installations/migrate.d.ts +0 -11
  359. package/dist/lib/installations/migrate.js +1 -1
  360. package/dist/lib/installations/shims.d.ts +1 -1
  361. package/dist/lib/installations/shims.js +2 -2
  362. package/dist/lib/installations/update-runtime.js +1 -1
  363. package/dist/lib/linear-cache.d.ts +2 -1
  364. package/dist/lib/linux-userns.d.ts +2 -3
  365. package/dist/lib/linux-userns.js +0 -4
  366. package/dist/lib/loop.d.ts +2 -1
  367. package/dist/lib/mailbox-gc.d.ts +2 -1
  368. package/dist/lib/mailbox-target.d.ts +2 -1
  369. package/dist/lib/mailbox.d.ts +0 -6
  370. package/dist/lib/mailbox.js +1 -1
  371. package/dist/lib/manifest.d.ts +0 -14
  372. package/dist/lib/manifest.js +2 -2
  373. package/dist/lib/mcp-registry.d.ts +2 -1
  374. package/dist/lib/memory.d.ts +2 -13
  375. package/dist/lib/memory.js +4 -4
  376. package/dist/lib/menubar/download-menubar.d.ts +0 -2
  377. package/dist/lib/menubar/download-menubar.js +1 -5
  378. package/dist/lib/menubar/install-menubar.d.ts +3 -14
  379. package/dist/lib/menubar/install-menubar.js +3 -3
  380. package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
  381. package/dist/lib/menubar/migrate-prefs.js +168 -0
  382. package/dist/lib/menubar/resolve-version.d.ts +1 -9
  383. package/dist/lib/menubar/resolve-version.js +4 -4
  384. package/dist/lib/menubar/snapshot.d.ts +24 -2
  385. package/dist/lib/menubar/snapshot.js +26 -0
  386. package/dist/lib/model-tier-overrides.d.ts +3 -2
  387. package/dist/lib/monitors/config.d.ts +0 -2
  388. package/dist/lib/monitors/config.js +0 -4
  389. package/dist/lib/monitors/engine.d.ts +1 -1
  390. package/dist/lib/monitors/remote.d.ts +3 -2
  391. package/dist/lib/monitors/sources/webhook.d.ts +2 -15
  392. package/dist/lib/monitors/sources/webhook.js +1 -38
  393. package/dist/lib/monitors/state.d.ts +4 -7
  394. package/dist/lib/monitors/state.js +2 -2
  395. package/dist/lib/notify.d.ts +1 -1
  396. package/dist/lib/notify.js +1 -1
  397. package/dist/lib/onepassword.d.ts +5 -14
  398. package/dist/lib/onepassword.js +0 -64
  399. package/dist/lib/open-url.d.ts +3 -2
  400. package/dist/lib/openclaw-keychain.d.ts +4 -17
  401. package/dist/lib/openclaw-keychain.js +3 -33
  402. package/dist/lib/operator.d.ts +2 -2
  403. package/dist/lib/operator.js +1 -1
  404. package/dist/lib/output/git-output.d.ts +4 -14
  405. package/dist/lib/output/git-output.js +1 -1
  406. package/dist/lib/owner-message.d.ts +3 -29
  407. package/dist/lib/owner-message.js +3 -3
  408. package/dist/lib/packages/output-home.d.ts +2 -4
  409. package/dist/lib/packages/output-home.js +2 -2
  410. package/dist/lib/perf/db.d.ts +0 -2
  411. package/dist/lib/perf/db.js +2 -7
  412. package/dist/lib/permissions-registry.d.ts +2 -3
  413. package/dist/lib/permissions-registry.js +0 -4
  414. package/dist/lib/permissions.d.ts +6 -16
  415. package/dist/lib/permissions.js +2 -15
  416. package/dist/lib/picker.d.ts +6 -5
  417. package/dist/lib/placement.d.ts +3 -6
  418. package/dist/lib/placement.js +0 -17
  419. package/dist/lib/platform/posixpath.d.ts +2 -1
  420. package/dist/lib/platform/winpath.d.ts +2 -1
  421. package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
  422. package/dist/lib/plugins/plugin-marketplace.js +1 -1
  423. package/dist/lib/pr-land-detach.d.ts +2 -1
  424. package/dist/lib/profiles-presets.d.ts +2 -1
  425. package/dist/lib/profiles.d.ts +3 -9
  426. package/dist/lib/profiles.js +1 -9
  427. package/dist/lib/project-doctor.d.ts +2 -1
  428. package/dist/lib/project-launch.d.ts +2 -2
  429. package/dist/lib/project-probe.d.ts +4 -3
  430. package/dist/lib/project-pull.d.ts +2 -1
  431. package/dist/lib/project-resources.d.ts +2 -2
  432. package/dist/lib/project-resources.js +1 -1
  433. package/dist/lib/project-root.d.ts +2 -6
  434. package/dist/lib/project-root.js +1 -1
  435. package/dist/lib/project-schedule.d.ts +2 -1
  436. package/dist/lib/project-status.d.ts +2 -16
  437. package/dist/lib/project-status.js +3 -3
  438. package/dist/lib/reconcile-and-repair.d.ts +5 -4
  439. package/dist/lib/redact.d.ts +7 -1
  440. package/dist/lib/redact.js +94 -3
  441. package/dist/lib/refresh-coordinator.d.ts +2 -1
  442. package/dist/lib/refresh.d.ts +3 -2
  443. package/dist/lib/remote-agents-json.d.ts +3 -2
  444. package/dist/lib/reserved-stores.d.ts +0 -2
  445. package/dist/lib/reserved-stores.js +3 -5
  446. package/dist/lib/resource-content-diff.d.ts +0 -2
  447. package/dist/lib/resource-content-diff.js +1 -1
  448. package/dist/lib/resource-patterns.d.ts +2 -1
  449. package/dist/lib/resource-profiles.d.ts +2 -8
  450. package/dist/lib/resource-profiles.js +3 -27
  451. package/dist/lib/resources/workflows.d.ts +1 -1
  452. package/dist/lib/resources.d.ts +4 -9
  453. package/dist/lib/resources.js +1 -1
  454. package/dist/lib/routine-context.d.ts +2 -5
  455. package/dist/lib/routine-context.js +2 -2
  456. package/dist/lib/routine-notify-owner.d.ts +8 -7
  457. package/dist/lib/routine-notify-owner.js +5 -5
  458. package/dist/lib/routine-process-cleanup.d.ts +2 -1
  459. package/dist/lib/routine-readiness.d.ts +0 -2
  460. package/dist/lib/routine-readiness.js +0 -7
  461. package/dist/lib/routines-project.d.ts +3 -4
  462. package/dist/lib/routines-project.js +1 -1
  463. package/dist/lib/rules/compile.d.ts +3 -25
  464. package/dist/lib/rules/compile.js +1 -1
  465. package/dist/lib/rules/compose.d.ts +3 -9
  466. package/dist/lib/rules/rules.d.ts +4 -15
  467. package/dist/lib/rules/rules.js +1 -64
  468. package/dist/lib/run-defaults.d.ts +1 -1
  469. package/dist/lib/run-notify.d.ts +2 -1
  470. package/dist/lib/run-trace-sync.d.ts +1 -1
  471. package/dist/lib/run-trace-sync.js +1 -1
  472. package/dist/lib/scheduler.d.ts +2 -1
  473. package/dist/lib/scheduling/routines.d.ts +9 -21
  474. package/dist/lib/scheduling/routines.js +3 -46
  475. package/dist/lib/secrets-client.d.ts +0 -17
  476. package/dist/lib/secrets-client.js +4 -26
  477. package/dist/lib/secrets-policy.d.ts +12 -17
  478. package/dist/lib/secrets-policy.js +5 -5
  479. package/dist/lib/secrets-types.d.ts +3 -2
  480. package/dist/lib/secrets-types.js +2 -1
  481. package/dist/lib/self-heal/checks/install-staging.js +1 -1
  482. package/dist/lib/self-heal/registry.d.ts +3 -2
  483. package/dist/lib/self-heal/types.d.ts +1 -1
  484. package/dist/lib/self-heal/types.js +1 -1
  485. package/dist/lib/self-update.d.ts +5 -5
  486. package/dist/lib/self-update.js +4 -4
  487. package/dist/lib/session/actor-sidecar.d.ts +3 -2
  488. package/dist/lib/session/artifacts.d.ts +0 -2
  489. package/dist/lib/session/artifacts.js +1 -1
  490. package/dist/lib/session/bash-command.d.ts +2 -7
  491. package/dist/lib/session/bundle.d.ts +4 -6
  492. package/dist/lib/session/bundle.js +1 -5
  493. package/dist/lib/session/cloud.d.ts +0 -4
  494. package/dist/lib/session/cloud.js +2 -15
  495. package/dist/lib/session/detached.d.ts +2 -1
  496. package/dist/lib/session/detached.js +2 -2
  497. package/dist/lib/session/digest.d.ts +2 -2
  498. package/dist/lib/session/digest.js +1 -1
  499. package/dist/lib/session/fork.d.ts +3 -2
  500. package/dist/lib/session/highlights.d.ts +6 -5
  501. package/dist/lib/session/hook-sessions.d.ts +2 -1
  502. package/dist/lib/session/host-link.d.ts +2 -1
  503. package/dist/lib/session/inject.d.ts +1 -1
  504. package/dist/lib/session/inject.js +1 -1
  505. package/dist/lib/session/insights.d.ts +3 -15
  506. package/dist/lib/session/insights.js +2 -2
  507. package/dist/lib/session/local-tmux-attach.d.ts +2 -18
  508. package/dist/lib/session/local-tmux-attach.js +1 -1
  509. package/dist/lib/session/migrations.d.ts +0 -1
  510. package/dist/lib/session/migrations.js +1 -1
  511. package/dist/lib/session/mirror.d.ts +5 -8
  512. package/dist/lib/session/mirror.js +2 -2
  513. package/dist/lib/session/parse.d.ts +1 -32
  514. package/dist/lib/session/parse.js +4 -4
  515. package/dist/lib/session/presence.d.ts +2 -1
  516. package/dist/lib/session/prompt.d.ts +3 -2
  517. package/dist/lib/session/prompt.js +38 -1
  518. package/dist/lib/session/recovery.d.ts +3 -2
  519. package/dist/lib/session/remote/peer-stream.d.ts +2 -5
  520. package/dist/lib/session/remote/peer-stream.js +2 -2
  521. package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
  522. package/dist/lib/session/remote/remote-list.d.ts +5 -5
  523. package/dist/lib/session/remote/remote.d.ts +4 -3
  524. package/dist/lib/session/remote/watch.d.ts +2 -7
  525. package/dist/lib/session/remote/watch.js +3 -3
  526. package/dist/lib/session/remote-active.d.ts +2 -1
  527. package/dist/lib/session/render.d.ts +2 -2
  528. package/dist/lib/session/render.js +1 -1
  529. package/dist/lib/session/resume-owner.d.ts +1 -1
  530. package/dist/lib/session/resume-owner.js +1 -1
  531. package/dist/lib/session/run-names.d.ts +2 -1
  532. package/dist/lib/session/session-cache.d.ts +7 -26
  533. package/dist/lib/session/session-cache.js +2 -8
  534. package/dist/lib/session/share-html.d.ts +1 -21
  535. package/dist/lib/session/share-html.js +1 -1
  536. package/dist/lib/session/shell-programs.d.ts +2 -1
  537. package/dist/lib/session/state.d.ts +41 -8
  538. package/dist/lib/session/state.js +112 -11
  539. package/dist/lib/session/stream-render.d.ts +2 -1
  540. package/dist/lib/session/sync/agents.d.ts +0 -4
  541. package/dist/lib/session/sync/agents.js +0 -0
  542. package/dist/lib/session/sync/backend.d.ts +5 -5
  543. package/dist/lib/session/sync/managed-config.d.ts +0 -8
  544. package/dist/lib/session/sync/managed-key.d.ts +0 -2
  545. package/dist/lib/session/sync/managed-key.js +1 -1
  546. package/dist/lib/session/sync/r2.d.ts +4 -1
  547. package/dist/lib/session/sync/r2.js +4 -7
  548. package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
  549. package/dist/lib/session/tail.d.ts +2 -1
  550. package/dist/lib/session/team-filter.d.ts +1 -1
  551. package/dist/lib/session/throughput.d.ts +2 -3
  552. package/dist/lib/session/throughput.js +1 -1
  553. package/dist/lib/session/timeline-pass.d.ts +3 -42
  554. package/dist/lib/session/timeline-pass.js +4 -4
  555. package/dist/lib/session/timeline.d.ts +3 -13
  556. package/dist/lib/session/timeline.js +3 -3
  557. package/dist/lib/session/tool-calls.d.ts +2 -2
  558. package/dist/lib/session/tool-calls.js +1 -1
  559. package/dist/lib/session/tool-index.d.ts +0 -8
  560. package/dist/lib/session/tool-index.js +2 -2
  561. package/dist/lib/session/tool-store.d.ts +2 -1
  562. package/dist/lib/session/trajectory-compare.d.ts +2 -1
  563. package/dist/lib/session/trajectory-lineage.d.ts +2 -1
  564. package/dist/lib/session/trajectory-text.d.ts +3 -2
  565. package/dist/lib/session/trajectory.d.ts +2 -1
  566. package/dist/lib/session/viewing-in.d.ts +2 -1
  567. package/dist/lib/settings-manifest.d.ts +2 -1
  568. package/dist/lib/share/delete.d.ts +5 -4
  569. package/dist/lib/share/html.d.ts +0 -2
  570. package/dist/lib/share/html.js +9 -9
  571. package/dist/lib/share/http-error.d.ts +3 -2
  572. package/dist/lib/share/og.d.ts +2 -1
  573. package/dist/lib/share/provision.d.ts +2 -2
  574. package/dist/lib/share/publish.d.ts +4 -13
  575. package/dist/lib/share/publish.js +2 -2
  576. package/dist/lib/shim-heal.d.ts +1 -5
  577. package/dist/lib/shim-heal.js +0 -6
  578. package/dist/lib/smart-launch.d.ts +4 -5
  579. package/dist/lib/smart-launch.js +1 -1
  580. package/dist/lib/snapshot.d.ts +3 -2
  581. package/dist/lib/ssh-exec.d.ts +5 -4
  582. package/dist/lib/ssh-tunnel.d.ts +3 -2
  583. package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
  584. package/dist/lib/staleness/checkers/permissions.js +1 -1
  585. package/dist/lib/staleness/fingerprint.d.ts +0 -7
  586. package/dist/lib/staleness/fingerprint.js +1 -1
  587. package/dist/lib/staleness/prune.d.ts +3 -2
  588. package/dist/lib/staleness/registry.d.ts +1 -1
  589. package/dist/lib/staleness/writers/sources.d.ts +0 -8
  590. package/dist/lib/staleness/writers/sources.js +1 -1
  591. package/dist/lib/startup/command-registry.js +1 -1
  592. package/dist/lib/state.d.ts +1 -3
  593. package/dist/lib/state.js +1 -4
  594. package/dist/lib/subagents-registry.d.ts +4 -3
  595. package/dist/lib/subagents.d.ts +2 -1
  596. package/dist/lib/subagents.js +3 -2
  597. package/dist/lib/summarizer/pass.d.ts +3 -6
  598. package/dist/lib/summarizer/pass.js +2 -2
  599. package/dist/lib/summarizer/summarize.d.ts +4 -3
  600. package/dist/lib/sync-passphrase.d.ts +3 -2
  601. package/dist/lib/sync-status.d.ts +3 -16
  602. package/dist/lib/sync-status.js +2 -2
  603. package/dist/lib/sync-umbrella.d.ts +4 -3
  604. package/dist/lib/system-run-sync.d.ts +2 -1
  605. package/dist/lib/teams/agents.d.ts +2 -4
  606. package/dist/lib/teams/agents.js +1 -1
  607. package/dist/lib/teams/forEach.d.ts +3 -2
  608. package/dist/lib/teams/pr-watch.d.ts +4 -11
  609. package/dist/lib/teams/pr-watch.js +4 -4
  610. package/dist/lib/teams/registry.d.ts +2 -3
  611. package/dist/lib/teams/registry.js +1 -1
  612. package/dist/lib/teams/remoteWorktree.d.ts +0 -16
  613. package/dist/lib/teams/remoteWorktree.js +3 -3
  614. package/dist/lib/teams/scheduler.d.ts +6 -5
  615. package/dist/lib/teams/scheduler.js +1 -1
  616. package/dist/lib/teams/supervisor.d.ts +4 -3
  617. package/dist/lib/teams/worktree.d.ts +0 -9
  618. package/dist/lib/teams/worktree.js +0 -32
  619. package/dist/lib/term-client.d.ts +44 -0
  620. package/dist/lib/term-client.js +117 -0
  621. package/dist/lib/terminal/inject.d.ts +3 -16
  622. package/dist/lib/terminal/inject.js +1 -29
  623. package/dist/lib/terminal/resolve.d.ts +3 -9
  624. package/dist/lib/terminal/resolve.js +3 -7
  625. package/dist/lib/tmux/binary.d.ts +2 -1
  626. package/dist/lib/tmux/orphan-reap.d.ts +6 -7
  627. package/dist/lib/tmux/orphan-reap.js +1 -1
  628. package/dist/lib/tmux/session.d.ts +4 -3
  629. package/dist/lib/traces/classify.d.ts +3 -2
  630. package/dist/lib/traces/config.d.ts +0 -8
  631. package/dist/lib/traces/insights.d.ts +2 -1
  632. package/dist/lib/traces/phenotype.d.ts +3 -3
  633. package/dist/lib/traces/provision.d.ts +1 -3
  634. package/dist/lib/traces/provision.js +1 -1
  635. package/dist/lib/traces/schema2-build.d.ts +1 -1
  636. package/dist/lib/traces/schema2-danger.d.ts +2 -1
  637. package/dist/lib/traces/schema2.d.ts +5 -4
  638. package/dist/lib/traces/segments.d.ts +4 -20
  639. package/dist/lib/traces/segments.js +3 -3
  640. package/dist/lib/traces/sync.d.ts +2 -3
  641. package/dist/lib/traces/sync.js +1 -1
  642. package/dist/lib/triggers/handlers.d.ts +4 -13
  643. package/dist/lib/triggers/handlers.js +1 -1
  644. package/dist/lib/triggers/webhook.d.ts +5 -27
  645. package/dist/lib/triggers/webhook.js +4 -4
  646. package/dist/lib/types.d.ts +3 -3
  647. package/dist/lib/usage-refresh.d.ts +4 -10
  648. package/dist/lib/usage-refresh.js +3 -8
  649. package/dist/lib/verbs.d.ts +2 -1
  650. package/dist/lib/version-duplicates.d.ts +2 -3
  651. package/dist/lib/version-duplicates.js +3 -33
  652. package/dist/lib/version.d.ts +2 -1
  653. package/dist/lib/warn-unpushed.d.ts +2 -1
  654. package/dist/lib/watchdog/history.d.ts +3 -2
  655. package/dist/lib/watchdog/log.d.ts +0 -6
  656. package/dist/lib/watchdog/log.js +1 -1
  657. package/dist/lib/watchdog/rotate.d.ts +2 -26
  658. package/dist/lib/watchdog/rotate.js +4 -12
  659. package/dist/lib/watchdog/runner.d.ts +0 -7
  660. package/dist/lib/watchdog/runner.js +4 -4
  661. package/dist/lib/watchdog/service.d.ts +2 -2
  662. package/dist/lib/watchdog/service.js +1 -1
  663. package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
  664. package/dist/lib/watchdog/watchdog.d.ts +2 -1
  665. package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
  666. package/dist/lib/workflows-registry.d.ts +3 -2
  667. package/dist/lib/workflows.d.ts +4 -7
  668. package/dist/lib/workflows.js +1 -1
  669. package/dist/lib/worktree/held.d.ts +4 -28
  670. package/dist/lib/worktree/held.js +3 -3
  671. package/package.json +2 -3
  672. package/scripts/postinstall.js +5 -4
  673. package/dist/commands/pty.d.ts +0 -20
  674. package/dist/commands/pty.js +0 -404
  675. package/dist/lib/config-machine-keys.d.ts +0 -14
  676. package/dist/lib/config-machine-keys.js +0 -21
  677. package/dist/lib/pty-client.d.ts +0 -49
  678. package/dist/lib/pty-client.js +0 -315
  679. package/dist/lib/pty-server.d.ts +0 -59
  680. package/dist/lib/pty-server.js +0 -653
@@ -22,18 +22,6 @@ export declare function loadComputerAllowList(): string[];
22
22
  export declare function loadDefaultPeers(opts?: {
23
23
  computerBin?: string;
24
24
  }): string[];
25
- /**
26
- * Parse a `host:port` VNC endpoint, defaulting the port to 5901. Pure.
27
- *
28
- * Kept on the consumer side because the `--vnc` FLAG is parsed here — the
29
- * platform gate has to know whether a remote desktop was named before the
30
- * engine is ever spawned (see `shouldBlockOffPlatform`). The RFB protocol
31
- * implementation itself went to the engine.
32
- */
33
- export declare function parseVncEndpoint(raw: string | undefined): {
34
- host: string;
35
- port: number;
36
- } | null;
37
25
  export declare function resolveTcpEndpoint(): {
38
26
  host: string;
39
27
  port: number;
@@ -120,7 +120,7 @@ export function loadDefaultPeers(opts = {}) {
120
120
  * engine is ever spawned (see `shouldBlockOffPlatform`). The RFB protocol
121
121
  * implementation itself went to the engine.
122
122
  */
123
- export function parseVncEndpoint(raw) {
123
+ function parseVncEndpoint(raw) {
124
124
  if (!raw || raw.length === 0)
125
125
  return null;
126
126
  const idx = raw.lastIndexOf(':');
@@ -114,7 +114,7 @@ export declare function parseEventLines(buffer: string): {
114
114
  events: ComputerActionEvent[];
115
115
  rest: string;
116
116
  };
117
- export interface RunComputerOptions {
117
+ interface RunComputerOptions {
118
118
  /** argv handed to the standalone, after the program name. */
119
119
  argv: string[];
120
120
  /** The consumer context serialized onto fd 3. */
@@ -131,7 +131,7 @@ export interface RunComputerOptions {
131
131
  */
132
132
  capture?: boolean;
133
133
  }
134
- export interface RunComputerResult {
134
+ interface RunComputerResult {
135
135
  exitCode: number;
136
136
  /** Engine stdout, only when `capture` was set. */
137
137
  stdout: string;
@@ -147,4 +147,4 @@ export interface RunComputerResult {
147
147
  export declare function runComputer(opts: RunComputerOptions): Promise<RunComputerResult>;
148
148
  /** Test seam: drop the memoized bin so PATH fixtures can re-resolve. */
149
149
  export declare function _resetComputerClientForTest(): void;
150
- export declare const COMPUTER_INSTALL_HINT = "npm i -g @phnx-labs/computer-cli";
150
+ export {};
@@ -219,4 +219,3 @@ function osSignalNumber(signal) {
219
219
  export function _resetComputerClientForTest() {
220
220
  cachedBin = undefined;
221
221
  }
222
- export const COMPUTER_INSTALL_HINT = INSTALL_HINT;
@@ -10,10 +10,11 @@
10
10
  * `lsof`, multi-dotfile scans) reads to behavioral EDR as recon/enumeration. A
11
11
  * bounded, spread-out spawn rate produces the same data without the burst signature.
12
12
  */
13
- export interface BoundedMapOptions {
13
+ interface BoundedMapOptions {
14
14
  /** Maximum number of `fn` calls running at once. Coerced to >= 1. */
15
15
  concurrency: number;
16
16
  /** Minimum spacing (ms) between successive task starts. 0 (default) = no spacing. */
17
17
  staggerMs?: number;
18
18
  }
19
19
  export declare function mapBounded<T, R>(items: readonly T[], fn: (item: T, index: number) => Promise<R>, opts: BoundedMapOptions): Promise<R[]>;
20
+ export {};
@@ -9,7 +9,14 @@
9
9
  import type { AgentId } from './types.js';
10
10
  import { type ModelTier } from './model-tiers.js';
11
11
  /** The top-level scope of a unified config key. */
12
- export type ConfigScope = 'run' | 'interactive' | 'auto' | 'browser' | 'project' | 'device' | 'summarizer' | 'updates';
12
+ export type ConfigScope = 'run' | 'interactive' | 'auto' | 'browser' | 'project' | 'device' | 'summarizer' | 'updates' | 'menubar';
13
+ /**
14
+ * The AGI Menu preference leaf names under `menubar.menu.*` (PHNX-3999). The
15
+ * types, defaults, and enum validation for each live in `device-config.ts`'s
16
+ * CONFIG_KEYS (user scope); this list is only the parser's allow-set so an
17
+ * unknown `menubar.menu.<x>` fails loud here instead of at the store.
18
+ */
19
+ export declare const MENUBAR_MENU_PROPERTIES: readonly ["defaultProject", "workingRowsShown", "showPreviews", "projectPriorityFilter", "hideCompletedMilestones", "bannerWhenNeedsYou", "includeOtherDeviceRequests", "groupBy", "thenBy", "projectScope", "projectSort", "ticketSort", "showPullRequests"];
13
20
  /** A run-time default key: model, mode, effort, or tier override. */
14
21
  export interface ParsedRunConfigKey {
15
22
  scope: 'run';
@@ -60,8 +67,14 @@ export interface ParsedUpdatesConfigKey {
60
67
  property: 'auto';
61
68
  agent?: AgentId;
62
69
  }
63
- export type ParsedConfigKey = ParsedRunConfigKey | ParsedInteractiveConfigKey | ParsedAutoConfigKey | ParsedBrowserConfigKey | ParsedProjectConfigKey | ParsedDeviceConfigKey | ParsedSummarizerConfigKey | ParsedUpdatesConfigKey;
64
- export type DeviceConfigProperty = 'role' | 'max-agents' | 'scheduler' | 'daemon' | 'watchdog' | 'tmux' | 'browser.remote-control' | 'browser.task-idle-minutes' | 'notes' | 'browser.profile' | 'browser.viewer';
70
+ /** An AGI Menu preference key: `menubar.menu.<property>` (user-scope, PHNX-3999). */
71
+ export interface ParsedMenubarConfigKey {
72
+ scope: 'menubar';
73
+ /** Leaf name under `menubar.menu.` — one of {@link MENUBAR_MENU_PROPERTIES}. */
74
+ property: string;
75
+ }
76
+ export type ParsedConfigKey = ParsedRunConfigKey | ParsedInteractiveConfigKey | ParsedAutoConfigKey | ParsedBrowserConfigKey | ParsedProjectConfigKey | ParsedDeviceConfigKey | ParsedSummarizerConfigKey | ParsedUpdatesConfigKey | ParsedMenubarConfigKey;
77
+ export type DeviceConfigProperty = 'role' | 'max-agents' | 'scheduler' | 'daemon' | 'watchdog' | 'tmux' | 'browser.remote-control' | 'browser.task-idle-minutes' | 'notes' | 'browser.profile' | 'browser.viewer' | 'computer.host' | 'formFactor';
65
78
  /** Normalize agent@version to use `@` consistently. */
66
79
  export declare function formatAgentVersion(agent: AgentId, version: string): string;
67
80
  /**
@@ -9,6 +9,27 @@
9
9
  import { AGENTS } from './agents.js';
10
10
  import { MODEL_TIERS } from './model-tiers.js';
11
11
  import { VERSION_RE } from './run-defaults.js';
12
+ /**
13
+ * The AGI Menu preference leaf names under `menubar.menu.*` (PHNX-3999). The
14
+ * types, defaults, and enum validation for each live in `device-config.ts`'s
15
+ * CONFIG_KEYS (user scope); this list is only the parser's allow-set so an
16
+ * unknown `menubar.menu.<x>` fails loud here instead of at the store.
17
+ */
18
+ export const MENUBAR_MENU_PROPERTIES = [
19
+ 'defaultProject',
20
+ 'workingRowsShown',
21
+ 'showPreviews',
22
+ 'projectPriorityFilter',
23
+ 'hideCompletedMilestones',
24
+ 'bannerWhenNeedsYou',
25
+ 'includeOtherDeviceRequests',
26
+ 'groupBy',
27
+ 'thenBy',
28
+ 'projectScope',
29
+ 'projectSort',
30
+ 'ticketSort',
31
+ 'showPullRequests',
32
+ ];
12
33
  const DEVICE_CONFIG_PROPERTIES = [
13
34
  'browser.viewer',
14
35
  'role',
@@ -21,6 +42,8 @@ const DEVICE_CONFIG_PROPERTIES = [
21
42
  'browser.task-idle-minutes',
22
43
  'notes',
23
44
  'browser.profile',
45
+ 'computer.host',
46
+ 'formFactor',
24
47
  ];
25
48
  /** Split an agent@version token into its parts. Accepts both `@` and `:`. */
26
49
  function parseAgentVersion(token) {
@@ -98,6 +121,14 @@ export function parseConfigKey(key) {
98
121
  if (summarizerMatch) {
99
122
  return { scope: 'summarizer', property: summarizerMatch[1] };
100
123
  }
124
+ const menubarMatch = raw.match(/^menubar\.menu\.(.+)$/);
125
+ if (menubarMatch) {
126
+ const property = menubarMatch[1];
127
+ if (!MENUBAR_MENU_PROPERTIES.includes(property)) {
128
+ throw new Error(`Unknown AGI Menu preference '${key}'. Known keys: ${MENUBAR_MENU_PROPERTIES.map((p) => `menubar.menu.${p}`).join(', ')}.`);
129
+ }
130
+ return { scope: 'menubar', property };
131
+ }
101
132
  if (raw === 'updates.auto') {
102
133
  return { scope: 'updates', property: 'auto' };
103
134
  }
@@ -109,7 +140,7 @@ export function parseConfigKey(key) {
109
140
  }
110
141
  return { scope: 'updates', agent: agentPart, property: 'auto' };
111
142
  }
112
- const deviceMatch = raw.match(/^devices\.(.+)\.(role|max-agents|scheduler|daemon|watchdog|tmux|notes|browser\.remote-control|browser\.task-idle-minutes|browser\.profile|browser\.viewer)$/);
143
+ const deviceMatch = raw.match(/^devices\.(.+)\.(role|max-agents|scheduler|daemon|watchdog|tmux|notes|formFactor|browser\.remote-control|browser\.task-idle-minutes|browser\.profile|browser\.viewer|computer\.host)$/);
113
144
  if (deviceMatch) {
114
145
  return {
115
146
  scope: 'device',
@@ -139,10 +170,13 @@ export function parseConfigKey(key) {
139
170
  if (raw.startsWith('updates.')) {
140
171
  throw new Error(`Invalid updates config key '${key}'. Use updates.auto or updates.<agent>.auto.`);
141
172
  }
173
+ if (raw.startsWith('menubar.')) {
174
+ throw new Error(`Invalid AGI Menu config key '${key}'. Use ${MENUBAR_MENU_PROPERTIES.map((p) => `menubar.menu.${p}`).join(', ')}.`);
175
+ }
142
176
  if (raw.startsWith('devices.')) {
143
177
  throw new Error(`Invalid device config key '${key}'. Expected devices.<name>.<${DEVICE_CONFIG_PROPERTIES.join('|')}>.`);
144
178
  }
145
- throw new Error(`Unknown config scope in '${key}'. Use one of: run, interactive, auto, browser, project, devices, summarizer.`);
179
+ throw new Error(`Unknown config scope in '${key}'. Use one of: run, interactive, auto, browser, project, devices, summarizer, updates, menubar.`);
146
180
  }
147
181
  /** Render a parsed key back to its canonical dotted string. */
148
182
  export function formatConfigKey(parsed) {
@@ -168,6 +202,8 @@ export function formatConfigKey(parsed) {
168
202
  return `summarizer.${parsed.property}`;
169
203
  case 'updates':
170
204
  return parsed.agent ? `updates.${parsed.agent}.auto` : 'updates.auto';
205
+ case 'menubar':
206
+ return `menubar.menu.${parsed.property}`;
171
207
  }
172
208
  }
173
209
  /** List every canonical key the command documents, with wildcards expanded to a concrete example. */
@@ -178,6 +214,9 @@ export function listKnownConfigKeys() {
178
214
  keys.push(`run.<agent@version>.tier.${tier}`);
179
215
  }
180
216
  keys.push('interactive.host', 'auto.pool', 'browser.profile', 'browser.viewer', 'browser.device', 'project.root', 'summarizer.enabled', 'summarizer.baseUrl', 'summarizer.model', 'updates.auto', 'updates.<agent>.auto');
217
+ for (const prop of MENUBAR_MENU_PROPERTIES) {
218
+ keys.push(`menubar.menu.${prop}`);
219
+ }
181
220
  for (const prop of DEVICE_CONFIG_PROPERTIES) {
182
221
  keys.push(`devices.<name>.${prop}`);
183
222
  }
@@ -212,6 +251,10 @@ export function devicePropertyToConfigName(property) {
212
251
  return 'browser.profile';
213
252
  case 'browser.viewer':
214
253
  return 'browser.viewer';
254
+ case 'computer.host':
255
+ return 'computer.host';
256
+ case 'formFactor':
257
+ return 'formFactor';
215
258
  }
216
259
  }
217
260
  /**
@@ -253,5 +296,7 @@ export function configKeyStorageHint(parsed) {
253
296
  return parsed.agent
254
297
  ? `config.updatesAgentAuto.${parsed.agent} (central agents.yaml; syncs fleet-wide)`
255
298
  : 'config.updatesAuto (central agents.yaml; syncs fleet-wide)';
299
+ case 'menubar':
300
+ return `config.menubarMenu${parsed.property.charAt(0).toUpperCase()}${parsed.property.slice(1)} (central agents.yaml; syncs fleet-wide)`;
256
301
  }
257
302
  }
@@ -4,16 +4,6 @@
4
4
  * Handles frontmatter parsing and bidirectional translation so that slash commands
5
5
  * authored in one format can be synced to agents that expect the other.
6
6
  */
7
- /** Parsed YAML frontmatter from a Markdown command file. */
8
- export interface MarkdownFrontmatter {
9
- description?: string;
10
- [key: string]: unknown;
11
- }
12
- /** Extract YAML frontmatter and body from a Markdown string. Returns empty frontmatter if none found. */
13
- export declare function parseMarkdownFrontmatter(content: string): {
14
- frontmatter: MarkdownFrontmatter;
15
- body: string;
16
- };
17
7
  /** Convert a Markdown command file to Gemini's TOML format, translating $ARGUMENTS to {{args}}. */
18
8
  export declare function markdownToToml(skillName: string, markdown: string): string;
19
9
  /**
@@ -27,5 +17,3 @@ export declare function markdownToToml(skillName: string, markdown: string): str
27
17
  * Returns a plain object so the caller can `yaml.stringify` it.
28
18
  */
29
19
  export declare function markdownToGooseRecipe(commandName: string, markdown: string): Record<string, unknown>;
30
- /** Convert a Gemini TOML command file back to Markdown format, translating {{args}} to $ARGUMENTS. */
31
- export declare function tomlToMarkdown(toml: string): string;
@@ -5,7 +5,7 @@
5
5
  * authored in one format can be synced to agents that expect the other.
6
6
  */
7
7
  /** Extract YAML frontmatter and body from a Markdown string. Returns empty frontmatter if none found. */
8
- export function parseMarkdownFrontmatter(content) {
8
+ function parseMarkdownFrontmatter(content) {
9
9
  const match = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
10
10
  if (!match) {
11
11
  return { frontmatter: {}, body: content };
@@ -62,14 +62,3 @@ export function markdownToGooseRecipe(commandName, markdown) {
62
62
  prompt,
63
63
  };
64
64
  }
65
- /** Convert a Gemini TOML command file back to Markdown format, translating {{args}} to $ARGUMENTS. */
66
- export function tomlToMarkdown(toml) {
67
- const nameMatch = toml.match(/name\s*=\s*"([^"]+)"/);
68
- const descMatch = toml.match(/description\s*=\s*"([^"]+)"/);
69
- const promptMatch = toml.match(/prompt\s*=\s*(?:'''|""")([\s\S]*?)(?:'''|""")/);
70
- const description = descMatch?.[1] || '';
71
- let prompt = promptMatch?.[1]?.trim() || '';
72
- prompt = prompt.replace(/\{\{args\}\}/g, '$ARGUMENTS');
73
- const lines = ['---', `description: ${description}`, '---', '', prompt, ''];
74
- return lines.join('\n');
75
- }
@@ -45,7 +45,7 @@ export interface CrabboxBox {
45
45
  /** Idle-timeout window in seconds, or null. */
46
46
  idleTimeoutSecs: number | null;
47
47
  }
48
- export interface CrabboxOptions {
48
+ interface CrabboxOptions {
49
49
  /**
50
50
  * Name of a secrets bundle whose env (e.g. `HCLOUD_TOKEN`) crabbox needs to
51
51
  * reach its cloud provider. Resolved via agents-cli's own keychain-backed
@@ -63,21 +63,8 @@ export interface CrabboxOptions {
63
63
  }
64
64
  /** Locate the crabbox binary, or throw an actionable error. */
65
65
  export declare function findCrabbox(): string;
66
- /**
67
- * Env keys that mark a secrets bundle as usable for `--lease` — the provider
68
- * tokens crabbox reads to reach a cloud API. Matching a bundle needs only its
69
- * declared key NAMES; only the matched key's VALUE is ever injected (see
70
- * `crabboxEnv`), so an auto-detected bundle can't leak its other secrets.
71
- */
72
- export declare const LEASE_PROVIDER_TOKEN_KEYS: string[];
73
66
  /** The first bundle that declares a provider token key, or undefined. Pure over `bundles`. */
74
67
  export declare function pickLeaseBundleFromList(bundles: SecretsBundle[]): string | undefined;
75
- /**
76
- * Env keys a bundle may use for a Tailscale auth key. crabbox reads
77
- * `CRABBOX_TAILSCALE_AUTH_KEY` to join a leased box to the tailnet; we accept the
78
- * common alternate names too and rename to that canonical key on injection.
79
- */
80
- export declare const TAILSCALE_AUTH_KEY_NAMES: string[];
81
68
  /** The first bundle + key that declares a Tailscale auth key, or undefined. Pure over `bundles`. */
82
69
  export declare function pickTailscaleBundleFromList(bundles: SecretsBundle[]): {
83
70
  name: string;
@@ -86,7 +73,7 @@ export declare function pickTailscaleBundleFromList(bundles: SecretsBundle[]): {
86
73
  /** Test seam: drop every crabboxEnv secrets memo so each test resolves fresh. */
87
74
  export declare function resetCrabboxSecretsMemosForTest(): void;
88
75
  /** A resolved lease bundle: its name, plus (auto-detect only) the exact keys to inject. */
89
- export interface ResolvedLeaseBundle {
76
+ interface ResolvedLeaseBundle {
90
77
  name: string;
91
78
  /** When set (auto-detect), inject ONLY these keys — not the whole bundle. */
92
79
  keys?: string[];
@@ -122,7 +109,7 @@ export declare function crabboxFind(slug: string, opts?: CrabboxOptions): Crabbo
122
109
  * (mirrors scripts/sandbox.sh's `box_ready`).
123
110
  */
124
111
  export declare function crabboxStatusReady(slug: string, opts?: CrabboxOptions): boolean;
125
- export interface PoolMatchOptions {
112
+ interface PoolMatchOptions {
126
113
  /**
127
114
  * Lease pool label (shared default, or `.crabbox.yaml leaseProfile:` opt-in;
128
115
  * see config.ts). Both sides normalize an unset profile to
@@ -149,7 +136,7 @@ export interface PoolMatchOptions {
149
136
  * run may be mid-boot on it, and crabbox's idle timeout reaps genuine duds.
150
137
  */
151
138
  export declare function poolReusableBoxes(boxes: CrabboxBox[], opts?: PoolMatchOptions): CrabboxBox[];
152
- export interface WarmupOptions extends CrabboxOptions {
139
+ interface WarmupOptions extends CrabboxOptions {
153
140
  class?: string;
154
141
  profile?: string;
155
142
  /** Provision web code-server capability on the box. */
@@ -181,7 +168,7 @@ export declare function crabboxWaitReady(slug: string, opts?: CrabboxOptions & {
181
168
  intervalMs?: number;
182
169
  sleep?: (ms: number) => Promise<void>;
183
170
  }): Promise<CrabboxBox>;
184
- export interface CrabboxRunOptions extends CrabboxOptions {
171
+ interface CrabboxRunOptions extends CrabboxOptions {
185
172
  /** Called with each chunk of combined stdout/stderr as it streams. */
186
173
  onData?: (chunk: string) => void;
187
174
  /** Force a full remote resync before running. */
@@ -189,12 +176,6 @@ export interface CrabboxRunOptions extends CrabboxOptions {
189
176
  /** Refresh an existing lease with this idle window before running. */
190
177
  renewIdleTimeoutSecs?: number;
191
178
  }
192
- /**
193
- * Run `remoteCmd` on the leased box via `crabbox run` (crabbox syncs the dirty
194
- * checkout and owns the SSH). Streams combined output; resolves with the remote
195
- * exit code (or null if crabbox itself failed to dispatch).
196
- */
197
- export declare function crabboxRun(slug: string, remoteCmd: string, opts?: CrabboxRunOptions): Promise<number | null>;
198
179
  /**
199
180
  * Upload `script` to the box via `crabbox run --script-stdin` and run it.
200
181
  *
@@ -251,3 +232,4 @@ export declare function reapOrphans(opts?: CrabboxOptions & {
251
232
  candidates: CrabboxBox[];
252
233
  reaped: string[];
253
234
  };
235
+ export {};
@@ -29,7 +29,7 @@ export function findCrabbox() {
29
29
  * declared key NAMES; only the matched key's VALUE is ever injected (see
30
30
  * `crabboxEnv`), so an auto-detected bundle can't leak its other secrets.
31
31
  */
32
- export const LEASE_PROVIDER_TOKEN_KEYS = ['HCLOUD_TOKEN', 'AWS_ACCESS_KEY_ID', 'DIGITALOCEAN_TOKEN', 'DO_TOKEN'];
32
+ const LEASE_PROVIDER_TOKEN_KEYS = ['HCLOUD_TOKEN', 'AWS_ACCESS_KEY_ID', 'DIGITALOCEAN_TOKEN', 'DO_TOKEN'];
33
33
  /** The first bundle that declares a provider token key, or undefined. Pure over `bundles`. */
34
34
  export function pickLeaseBundleFromList(bundles) {
35
35
  for (const b of bundles) {
@@ -43,7 +43,7 @@ export function pickLeaseBundleFromList(bundles) {
43
43
  * `CRABBOX_TAILSCALE_AUTH_KEY` to join a leased box to the tailnet; we accept the
44
44
  * common alternate names too and rename to that canonical key on injection.
45
45
  */
46
- export const TAILSCALE_AUTH_KEY_NAMES = ['CRABBOX_TAILSCALE_AUTH_KEY', 'TAILSCALE_AUTH_KEY', 'TS_AUTHKEY'];
46
+ const TAILSCALE_AUTH_KEY_NAMES = ['CRABBOX_TAILSCALE_AUTH_KEY', 'TAILSCALE_AUTH_KEY', 'TS_AUTHKEY'];
47
47
  /** The first bundle + key that declares a Tailscale auth key, or undefined. Pure over `bundles`. */
48
48
  export function pickTailscaleBundleFromList(bundles) {
49
49
  for (const b of bundles) {
@@ -447,32 +447,6 @@ export async function crabboxWaitReady(slug, opts = {}) {
447
447
  }
448
448
  throw new Error(`crabbox box "${slug}" did not become ready within ${Math.round(timeoutMs / 1000)}s (state: ${last?.state ?? 'gone'}).`);
449
449
  }
450
- /**
451
- * Run `remoteCmd` on the leased box via `crabbox run` (crabbox syncs the dirty
452
- * checkout and owns the SSH). Streams combined output; resolves with the remote
453
- * exit code (or null if crabbox itself failed to dispatch).
454
- */
455
- export function crabboxRun(slug, remoteCmd, opts = {}) {
456
- findCrabbox();
457
- const args = ['run', '--id', slug, '--reclaim'];
458
- if (opts.fullResync)
459
- args.push('--full-resync');
460
- args.push('--', 'bash', '-lc', remoteCmd);
461
- return new Promise((resolve) => {
462
- const proc = spawn('crabbox', args, { env: crabboxEnv(opts), stdio: ['ignore', 'pipe', 'pipe'] });
463
- const pump = (chunk) => {
464
- const s = chunk.toString('utf-8');
465
- if (opts.onData)
466
- opts.onData(s);
467
- else
468
- process.stdout.write(s);
469
- };
470
- proc.stdout.on('data', pump);
471
- proc.stderr.on('data', pump);
472
- proc.on('error', () => resolve(null));
473
- proc.on('close', (code) => resolve(code));
474
- });
475
- }
476
450
  /**
477
451
  * Upload `script` to the box via `crabbox run --script-stdin` and run it.
478
452
  *
@@ -33,7 +33,7 @@ import type { AgentId } from '../types.js';
33
33
  import { type CrabboxBox } from './cli.js';
34
34
  import { type DetectedRuntime } from './runtimes.js';
35
35
  /** Phase signal for a lease run, so the command layer can drive a progress UI. */
36
- export type LeasePhase = {
36
+ type LeasePhase = {
37
37
  kind: 'warmup';
38
38
  backend?: string;
39
39
  } | {
@@ -46,7 +46,7 @@ export type LeasePhase = {
46
46
  } | {
47
47
  kind: 'teardown';
48
48
  };
49
- export interface LeaseRunOptions {
49
+ interface LeaseRunOptions {
50
50
  agent: string;
51
51
  prompt: string;
52
52
  mode?: string;
@@ -110,7 +110,7 @@ export interface LeaseDispatchProfile {
110
110
  provider?: string;
111
111
  fallbackModel?: string;
112
112
  }
113
- export interface LeaseRunResult {
113
+ interface LeaseRunResult {
114
114
  box: CrabboxBox;
115
115
  exitCode: number | null;
116
116
  toreDown: boolean;
@@ -126,8 +126,6 @@ export interface LeaseRunResult {
126
126
  export declare const LEASE_BOOTSTRAP_FAILED_CODE = 97;
127
127
  /** Build a shell-safe, collision-resistant workspace id for one lease run. */
128
128
  export declare function leaseWorkspaceId(repoRoot: string, startedAtMs?: number, pid?: number): string;
129
- /** Isolated box-home path for one run, relative to the shared box user's home. */
130
- export declare function leaseHomeDir(workspaceId: string): string;
131
129
  /**
132
130
  * Build the single bootstrap script run on the box: ensure agents-cli, install
133
131
  * the picked runtime CLIs, write their credentials, run the agent, then shred
@@ -136,7 +134,7 @@ export declare function leaseHomeDir(workspaceId: string): string;
136
134
  export declare function buildBootstrapScript(opts: LeaseRunOptions): string;
137
135
  /** Untouched-for-this-long ⇒ no active run holds the box, so an expired one is a stray. */
138
136
  export declare const STRAY_GRACE_SECS = 600;
139
- export interface StrayMatchOptions {
137
+ interface StrayMatchOptions {
140
138
  /** Pool the lease belongs to (defaults to DEFAULT_CRABBOX_PROFILE). */
141
139
  profile?: string;
142
140
  /** Network mode of the lease (default 'public'); a box is partitioned by it. */
@@ -160,3 +158,4 @@ export interface StrayMatchOptions {
160
158
  */
161
159
  export declare function isExpiredPoolStray(box: CrabboxBox, opts: StrayMatchOptions): boolean;
162
160
  export declare function leaseAndRun(opts: LeaseRunOptions): Promise<LeaseRunResult>;
161
+ export {};
@@ -55,7 +55,7 @@ export function leaseWorkspaceId(repoRoot, startedAtMs = Date.now(), pid = proce
55
55
  return `${safeRepo}-${startedAtMs.toString(36)}-${pid.toString(36)}`;
56
56
  }
57
57
  /** Isolated box-home path for one run, relative to the shared box user's home. */
58
- export function leaseHomeDir(workspaceId) {
58
+ function leaseHomeDir(workspaceId) {
59
59
  return `lease-homes/${workspaceId}`;
60
60
  }
61
61
  function profileRemotePath(name) {
@@ -61,7 +61,7 @@ export declare function createSpinner(opts?: {
61
61
  enabled?: boolean;
62
62
  intervalMs?: number;
63
63
  }): Spinner;
64
- export interface LeaseOutputRouter {
64
+ interface LeaseOutputRouter {
65
65
  /** Feed a raw chunk of the crabbox run's combined stdout/stderr. */
66
66
  push(chunk: string): void;
67
67
  /** Flush any buffered partial line (call once the stream closes). */
@@ -91,3 +91,4 @@ export declare function createLeaseOutputRouter(cb: {
91
91
  marker?: string;
92
92
  now?: () => number;
93
93
  }): LeaseOutputRouter;
94
+ export {};
@@ -22,9 +22,7 @@
22
22
  * ride the box-side bootstrap script (that only echoes the `copy-setup` progress
23
23
  * sentinel — see `buildBootstrapScript`).
24
24
  */
25
- /** Remote path (relative to the box user's home) the tracked config lands in. */
26
- export declare const REMOTE_AGENTS_DIR = ".agents/";
27
- export interface CopySetupOptions {
25
+ interface CopySetupOptions {
28
26
  /** crabbox box slug to push to — its per-lease ssh key does the auth. */
29
27
  slug: string;
30
28
  /** Secrets bundle whose env the ssh/rsync children inherit (crabbox parity). */
@@ -90,3 +88,4 @@ export declare function buildSetupRsyncArgs(opts: {
90
88
  * the returned exit codes.
91
89
  */
92
90
  export declare function copySetupToBox(opts: CopySetupOptions): Promise<CopySetupResult>;
91
+ export {};
@@ -29,7 +29,7 @@ import * as path from 'path';
29
29
  import { getUserAgentsDir } from '../state.js';
30
30
  import { crabboxEnv, crabboxSshArgv } from './cli.js';
31
31
  /** Remote path (relative to the box user's home) the tracked config lands in. */
32
- export const REMOTE_AGENTS_DIR = '.agents/';
32
+ const REMOTE_AGENTS_DIR = '.agents/';
33
33
  /** Top-level paths that must never be pushed, even if somehow tracked. */
34
34
  const NEVER_COPY = new Set(['.claude', '.claude.json']);
35
35
  /**
@@ -28,7 +28,7 @@ export declare const USAGE_STATE_TICK_MS = 60000;
28
28
  export declare const AUTH_STATE_TICK_MS: number;
29
29
  type AccountAuthRefresh = (signal: AbortSignal) => Promise<AuthProbeRow[] | void>;
30
30
  type AccountTransitionNotifier = (transition: DeadAccountTransition) => Promise<void>;
31
- export interface DeadAccountTransition {
31
+ interface DeadAccountTransition {
32
32
  agent: AuthProbeRow['agent'];
33
33
  /** Display label (email / account name) — presentation only, never a key. */
34
34
  account: string;
@@ -35,7 +35,7 @@ import type { DaemonServiceId } from '../daemon-services.js';
35
35
  * through here, so what ships is what is asserted.
36
36
  */
37
37
  export declare function buildAttentionNotification(item: AttentionItem, session: ActiveSession): DesktopNotification | undefined;
38
- export interface AttentionNotifyServiceOptions {
38
+ interface AttentionNotifyServiceOptions {
39
39
  /** Live-session source (default: the real active-session query). Injected in tests. */
40
40
  getSessions?: () => Promise<ActiveSession[]>;
41
41
  /** Notifier (default: the real desktop notifier). Injected in tests to capture posts. */
@@ -67,3 +67,4 @@ export declare class AttentionNotifyService extends BasePeriodicService {
67
67
  private markNotified;
68
68
  private pruneLedger;
69
69
  }
70
+ export {};
@@ -24,7 +24,7 @@ import type { DaemonServiceId } from '../daemon-services.js';
24
24
  * recovering from a wedge or an OS suspend the process survived.
25
25
  */
26
26
  export declare const CATCHUP_TICK_MS: number;
27
- export interface CatchupServiceDeps {
27
+ interface CatchupServiceDeps {
28
28
  /**
29
29
  * Whether the routine scheduler is currently booted. When false (the
30
30
  * `scheduler.enabled` gate is off), the pass no-ops — there is nothing to
@@ -49,3 +49,4 @@ export declare class CatchupService extends BasePeriodicService {
49
49
  protected onStop(): Promise<void>;
50
50
  protected onTick(_ctx: DaemonContext, signal: AbortSignal): Promise<void>;
51
51
  }
52
+ export {};
@@ -67,7 +67,7 @@ export declare const DAEMON_AUTOSTART_FAILURE_LIMIT = 5;
67
67
  * !running + enabled → boot (gate flipped on since boot)
68
68
  * !running + !enabled → none (stay dark)
69
69
  */
70
- export type SchedulerGateTransition = 'reload' | 'stop' | 'boot' | 'none';
70
+ type SchedulerGateTransition = 'reload' | 'stop' | 'boot' | 'none';
71
71
  export declare function schedulerGateTransition(running: boolean, enabled: boolean): SchedulerGateTransition;
72
72
  /**
73
73
  * Wrap an async routine so it runs AT MOST ONCE, however many callers fire it.
@@ -104,7 +104,7 @@ export declare function readDaemonPid(daemonDir?: string): number | null;
104
104
  export declare function writeDaemonPid(pid: number): void;
105
105
  /** Remove the daemon PID file. */
106
106
  export declare function removeDaemonPid(): void;
107
- export interface DaemonHeartbeat {
107
+ interface DaemonHeartbeat {
108
108
  lastTick: string;
109
109
  pid: number;
110
110
  }
@@ -409,7 +409,7 @@ export declare function startDetached(opts?: StartDetachedOptions): {
409
409
  * One piece of daemon state that a graceful `handleShutdown` removes and an
410
410
  * escalated kill leaves behind (RUSH-2421).
411
411
  */
412
- export interface StopResidueArtifact {
412
+ interface StopResidueArtifact {
413
413
  label: string;
414
414
  present: boolean;
415
415
  /** The file names a live owner, including a stopped target that survived. */
@@ -438,7 +438,7 @@ export declare function stopResidueArtifacts(stoppedPid: number | null, survivor
438
438
  * in-flight routine children that survive deliberately (SING-11a) and are
439
439
  * reported, never killed.
440
440
  */
441
- export interface DaemonStopResult {
441
+ interface DaemonStopResult {
442
442
  ok: boolean;
443
443
  stoppedPid: number | null;
444
444
  escalated: boolean;
@@ -1226,7 +1226,7 @@ export async function runDaemon() {
1226
1226
  }
1227
1227
  catch { /* best-effort */ }
1228
1228
  // RUSH-2288: the pre-spawn failure (e.g. auth_failed) is exactly the one the
1229
- // per-routine `agents notify` prompt can never send — its agent never ran —
1229
+ // per-routine `agents send --to owner` prompt can never send — its agent never ran —
1230
1230
  // so the daemon reaches the owner directly.
1231
1231
  void notifyOwnerRoutineStartFailed(config, message)
1232
1232
  .then((r) => {
@@ -33,24 +33,7 @@
33
33
  */
34
34
  import { BasePeriodicService, type DaemonContext } from './service.js';
35
35
  import type { DaemonServiceId } from '../daemon-services.js';
36
- /**
37
- * Cancellation deadline per tick. A real pass can touch several installations, each an npm
38
- * install (`INSTALL_TIMEOUT_MS` = 120s in strategies.ts) plus two launch
39
- * probes; 10 minutes leaves headroom for a handful of harnesses in one pass
40
- * while staying comfortably under the 15-minute cadence above.
41
- */
42
- export declare const HARNESS_UPDATE_DEADLINE_MS: number;
43
- /**
44
- * How long to wait for the child to exit AFTER a cooperative cancel before
45
- * force-reaping it as an orphan backstop. The child's own work is bounded — one
46
- * npm install (`INSTALL_TIMEOUT_MS` = 120s in strategies.ts) plus two launch
47
- * probes, then a fast synchronous swap — so a healthy child stops well within
48
- * this window. A slow staging/postinstall can also exhaust it, but a delivered
49
- * cancel prevents that stage from committing. The backstop kills the process
50
- * group on POSIX and the worker on Windows; the tick reports a failure.
51
- */
52
- export declare const HARNESS_UPDATE_CANCEL_GRACE_MS: number;
53
- export interface HarnessUpdateOutcome {
36
+ interface HarnessUpdateOutcome {
54
37
  ran: boolean;
55
38
  reason?: string;
56
39
  exitCode?: number | null;
@@ -72,7 +55,6 @@ export interface CooperativeChildResult {
72
55
  export interface HarnessUpdateDeps {
73
56
  runAutoUpdatePass(signal: AbortSignal): Promise<CooperativeChildResult>;
74
57
  }
75
- export declare function defaultHarnessUpdateDeps(): HarnessUpdateDeps;
76
58
  /**
77
59
  * Spawn `command args` as a child over a Node IPC channel and drive it to a TRUE
78
60
  * completion, requesting a cooperative stop (never a kill) when `signal` aborts —
@@ -108,3 +90,4 @@ export declare class HarnessUpdateService extends BasePeriodicService {
108
90
  protected onStop(): Promise<void>;
109
91
  protected onTick(ctx: DaemonContext, signal: AbortSignal): Promise<void>;
110
92
  }
93
+ export {};
@@ -43,7 +43,7 @@ const HARNESS_UPDATE_TICK_MS = 15 * 60_000;
43
43
  * probes; 10 minutes leaves headroom for a handful of harnesses in one pass
44
44
  * while staying comfortably under the 15-minute cadence above.
45
45
  */
46
- export const HARNESS_UPDATE_DEADLINE_MS = 10 * 60_000;
46
+ const HARNESS_UPDATE_DEADLINE_MS = 10 * 60_000;
47
47
  /** First tick fires 60 seconds after daemon boot — long enough for shims/PATH to settle, short enough that a fresh box doesn't wait a full interval for its first check. */
48
48
  const HARNESS_UPDATE_STARTUP_DELAY_MS = 60_000;
49
49
  /**
@@ -55,8 +55,8 @@ const HARNESS_UPDATE_STARTUP_DELAY_MS = 60_000;
55
55
  * cancel prevents that stage from committing. The backstop kills the process
56
56
  * group on POSIX and the worker on Windows; the tick reports a failure.
57
57
  */
58
- export const HARNESS_UPDATE_CANCEL_GRACE_MS = 3 * 60_000;
59
- export function defaultHarnessUpdateDeps() {
58
+ const HARNESS_UPDATE_CANCEL_GRACE_MS = 3 * 60_000;
59
+ function defaultHarnessUpdateDeps() {
60
60
  return {
61
61
  runAutoUpdatePass(signal) {
62
62
  const { command, args } = getCliLaunch([HARNESS_UPDATE_CHILD_CMD], getAgentsBinPath());