@phnx-labs/agents-cli 1.22.112 → 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 (706) hide show
  1. package/CHANGELOG.md +37 -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 +14 -104
  62. package/dist/commands/sessions.js +22 -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 -12
  216. package/dist/lib/daemon/daemon.js +42 -23
  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/testdata/process-view-daemon.d.ts +1 -0
  225. package/dist/lib/daemon/testdata/process-view-daemon.js +14 -0
  226. package/dist/lib/daemon/testdata/process-view-start.d.ts +1 -0
  227. package/dist/lib/daemon/testdata/process-view-start.js +43 -0
  228. package/dist/lib/daemon-services.d.ts +2 -1
  229. package/dist/lib/daemon-webhooks.d.ts +1 -1
  230. package/dist/lib/deeplink/register.d.ts +3 -13
  231. package/dist/lib/deeplink/register.js +3 -3
  232. package/dist/lib/deeplink/url.d.ts +3 -2
  233. package/dist/lib/device-config.d.ts +4 -15
  234. package/dist/lib/device-config.js +164 -8
  235. package/dist/lib/devices/connect.d.ts +2 -1
  236. package/dist/lib/devices/discovery-policy.d.ts +3 -2
  237. package/dist/lib/devices/doctor-findings.js +1 -1
  238. package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
  239. package/dist/lib/devices/fleet-divergence.d.ts +2 -1
  240. package/dist/lib/devices/fleet.d.ts +3 -4
  241. package/dist/lib/devices/fleet.js +1 -1
  242. package/dist/lib/devices/harness-inventory.d.ts +3 -2
  243. package/dist/lib/devices/health-report.d.ts +3 -2
  244. package/dist/lib/devices/health.d.ts +1 -8
  245. package/dist/lib/devices/health.js +1 -1
  246. package/dist/lib/devices/interactive-host.d.ts +0 -2
  247. package/dist/lib/devices/interactive-host.js +1 -1
  248. package/dist/lib/devices/known-hosts.d.ts +2 -20
  249. package/dist/lib/devices/known-hosts.js +2 -2
  250. package/dist/lib/devices/pool.d.ts +2 -1
  251. package/dist/lib/devices/resolve-target.d.ts +2 -2
  252. package/dist/lib/devices/rollout-verify.d.ts +3 -2
  253. package/dist/lib/devices/stats-cache.d.ts +3 -2
  254. package/dist/lib/devices/sync.d.ts +6 -5
  255. package/dist/lib/devices/worker-pick.d.ts +3 -12
  256. package/dist/lib/devices/worker-pick.js +1 -1
  257. package/dist/lib/diff-text.d.ts +2 -1
  258. package/dist/lib/doctor-diff.d.ts +2 -1
  259. package/dist/lib/drift-sync.d.ts +3 -2
  260. package/dist/lib/drift.d.ts +3 -3
  261. package/dist/lib/drift.js +1 -1
  262. package/dist/lib/event-families.d.ts +0 -6
  263. package/dist/lib/event-families.js +3 -3
  264. package/dist/lib/event-provenance.d.ts +4 -1
  265. package/dist/lib/event-provenance.js +4 -0
  266. package/dist/lib/events-ingest.d.ts +4 -3
  267. package/dist/lib/exec-account-home.d.ts +2 -4
  268. package/dist/lib/exec-account-home.js +1 -1
  269. package/dist/lib/exec-bounded.d.ts +3 -4
  270. package/dist/lib/exec-bounded.js +1 -1
  271. package/dist/lib/exec.d.ts +6 -18
  272. package/dist/lib/exec.js +28 -8
  273. package/dist/lib/factory/snapshot.d.ts +2 -2
  274. package/dist/lib/factory/snapshot.js +1 -1
  275. package/dist/lib/feed/activity-stream.d.ts +2 -5
  276. package/dist/lib/feed/activity-stream.js +11 -2
  277. package/dist/lib/feed/activity.d.ts +16 -33
  278. package/dist/lib/feed/activity.js +69 -26
  279. package/dist/lib/feed/answer.d.ts +3 -2
  280. package/dist/lib/feed/attention.js +5 -1
  281. package/dist/lib/feed/events.d.ts +2 -47
  282. package/dist/lib/feed/events.js +1 -141
  283. package/dist/lib/feed/feed.d.ts +9 -42
  284. package/dist/lib/feed/feed.js +1 -60
  285. package/dist/lib/feed/pr-status.d.ts +0 -2
  286. package/dist/lib/feed/pr-status.js +1 -5
  287. package/dist/lib/feed/watch.d.ts +10 -2
  288. package/dist/lib/feed/watch.js +91 -4
  289. package/dist/lib/feed-broadcast.d.ts +5 -47
  290. package/dist/lib/feed-broadcast.js +9 -9
  291. package/dist/lib/feed-outcome.d.ts +3 -6
  292. package/dist/lib/feed-outcome.js +2 -2
  293. package/dist/lib/feed-policy.d.ts +5 -6
  294. package/dist/lib/feed-policy.js +2 -2
  295. package/dist/lib/feed-post.d.ts +3 -4
  296. package/dist/lib/feed-post.js +2 -2
  297. package/dist/lib/feed-ranking.d.ts +2 -2
  298. package/dist/lib/feed-ranking.js +1 -1
  299. package/dist/lib/fleet/apply.d.ts +5 -6
  300. package/dist/lib/fleet/apply.js +4 -4
  301. package/dist/lib/fleet/manifest.d.ts +2 -1
  302. package/dist/lib/fleet/remote-login.d.ts +18 -36
  303. package/dist/lib/fleet/remote-login.js +20 -19
  304. package/dist/lib/fleet/types.d.ts +0 -8
  305. package/dist/lib/fleet-cache.d.ts +1 -18
  306. package/dist/lib/fleet-cache.js +0 -5
  307. package/dist/lib/fleet-shared-repo-sync.d.ts +3 -3
  308. package/dist/lib/fleet-shared-repo-sync.js +1 -1
  309. package/dist/lib/fleet-shared-state.d.ts +3 -2
  310. package/dist/lib/format.d.ts +2 -1
  311. package/dist/lib/friction-heuristics.d.ts +2 -1
  312. package/dist/lib/fs-walk.d.ts +2 -1
  313. package/dist/lib/fuzzy.d.ts +2 -1
  314. package/dist/lib/gemini-settings.d.ts +0 -1
  315. package/dist/lib/gemini-settings.js +1 -1
  316. package/dist/lib/git.d.ts +7 -65
  317. package/dist/lib/git.js +3 -142
  318. package/dist/lib/github/gh-overload.d.ts +0 -4
  319. package/dist/lib/github/gh-overload.js +2 -2
  320. package/dist/lib/github/project-prs.d.ts +118 -0
  321. package/dist/lib/github/project-prs.js +173 -0
  322. package/dist/lib/github/rest.d.ts +2 -1
  323. package/dist/lib/harness/exec-config-version.d.ts +2 -1
  324. package/dist/lib/harness-auth-capabilities.d.ts +5 -4
  325. package/dist/lib/harness-connection-test.d.ts +2 -1
  326. package/dist/lib/heal.d.ts +3 -20
  327. package/dist/lib/heal.js +2 -39
  328. package/dist/lib/help.d.ts +3 -2
  329. package/dist/lib/helper-download.d.ts +0 -12
  330. package/dist/lib/helper-download.js +2 -2
  331. package/dist/lib/helper-versions.d.ts +2 -1
  332. package/dist/lib/helper-versions.js +1 -1
  333. package/dist/lib/hooks/install.d.ts +8 -49
  334. package/dist/lib/hooks/install.js +2 -96
  335. package/dist/lib/hooks/match.d.ts +2 -1
  336. package/dist/lib/hosts/credential-transport.d.ts +0 -2
  337. package/dist/lib/hosts/credential-transport.js +1 -1
  338. package/dist/lib/hosts/dispatch.d.ts +2 -34
  339. package/dist/lib/hosts/dispatch.js +4 -21
  340. package/dist/lib/hosts/logs.d.ts +2 -1
  341. package/dist/lib/hosts/passthrough.d.ts +1 -1
  342. package/dist/lib/hosts/passthrough.js +0 -1
  343. package/dist/lib/hosts/progress.d.ts +0 -5
  344. package/dist/lib/hosts/progress.js +1 -1
  345. package/dist/lib/hosts/ready.d.ts +3 -4
  346. package/dist/lib/hosts/ready.js +0 -8
  347. package/dist/lib/hosts/reconcile.d.ts +2 -8
  348. package/dist/lib/hosts/reconcile.js +1 -1
  349. package/dist/lib/hosts/reconnect.d.ts +4 -11
  350. package/dist/lib/hosts/reconnect.js +2 -2
  351. package/dist/lib/hosts/registry.d.ts +1 -1
  352. package/dist/lib/hosts/remote-cmd.d.ts +4 -3
  353. package/dist/lib/hosts/remote-session-id.d.ts +5 -27
  354. package/dist/lib/hosts/remote-session-id.js +18 -61
  355. package/dist/lib/hosts/session-index.d.ts +3 -2
  356. package/dist/lib/hosts/ssh-config.d.ts +2 -3
  357. package/dist/lib/hosts/ssh-config.js +0 -10
  358. package/dist/lib/humans.d.ts +0 -2
  359. package/dist/lib/humans.js +2 -2
  360. package/dist/lib/import.d.ts +4 -3
  361. package/dist/lib/installations/installation-lock.d.ts +0 -2
  362. package/dist/lib/installations/installation-lock.js +2 -2
  363. package/dist/lib/installations/launch-gate.d.ts +0 -9
  364. package/dist/lib/installations/launch-gate.js +1 -1
  365. package/dist/lib/installations/migrate.d.ts +0 -11
  366. package/dist/lib/installations/migrate.js +1 -1
  367. package/dist/lib/installations/shims.d.ts +1 -1
  368. package/dist/lib/installations/shims.js +2 -2
  369. package/dist/lib/installations/update-runtime.js +1 -1
  370. package/dist/lib/launch-identity.d.ts +10 -0
  371. package/dist/lib/launch-identity.js +31 -0
  372. package/dist/lib/linear-cache.d.ts +2 -1
  373. package/dist/lib/linux-userns.d.ts +2 -3
  374. package/dist/lib/linux-userns.js +0 -4
  375. package/dist/lib/loop.d.ts +2 -1
  376. package/dist/lib/mailbox-gc.d.ts +2 -1
  377. package/dist/lib/mailbox-target.d.ts +2 -1
  378. package/dist/lib/mailbox.d.ts +0 -6
  379. package/dist/lib/mailbox.js +1 -1
  380. package/dist/lib/manifest.d.ts +0 -14
  381. package/dist/lib/manifest.js +2 -2
  382. package/dist/lib/mcp-registry.d.ts +2 -1
  383. package/dist/lib/memory.d.ts +2 -13
  384. package/dist/lib/memory.js +4 -4
  385. package/dist/lib/menubar/download-menubar.d.ts +0 -2
  386. package/dist/lib/menubar/download-menubar.js +1 -5
  387. package/dist/lib/menubar/install-menubar.d.ts +3 -14
  388. package/dist/lib/menubar/install-menubar.js +3 -3
  389. package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
  390. package/dist/lib/menubar/migrate-prefs.js +168 -0
  391. package/dist/lib/menubar/resolve-version.d.ts +1 -9
  392. package/dist/lib/menubar/resolve-version.js +4 -4
  393. package/dist/lib/menubar/snapshot.d.ts +24 -2
  394. package/dist/lib/menubar/snapshot.js +26 -0
  395. package/dist/lib/model-tier-overrides.d.ts +3 -2
  396. package/dist/lib/monitors/config.d.ts +0 -2
  397. package/dist/lib/monitors/config.js +0 -4
  398. package/dist/lib/monitors/engine.d.ts +1 -1
  399. package/dist/lib/monitors/remote.d.ts +3 -2
  400. package/dist/lib/monitors/sources/webhook.d.ts +2 -15
  401. package/dist/lib/monitors/sources/webhook.js +1 -38
  402. package/dist/lib/monitors/state.d.ts +4 -7
  403. package/dist/lib/monitors/state.js +2 -2
  404. package/dist/lib/notify.d.ts +1 -1
  405. package/dist/lib/notify.js +1 -1
  406. package/dist/lib/onepassword.d.ts +5 -14
  407. package/dist/lib/onepassword.js +0 -64
  408. package/dist/lib/open-url.d.ts +3 -2
  409. package/dist/lib/openclaw-keychain.d.ts +4 -17
  410. package/dist/lib/openclaw-keychain.js +3 -33
  411. package/dist/lib/operator.d.ts +2 -2
  412. package/dist/lib/operator.js +1 -1
  413. package/dist/lib/output/git-output.d.ts +4 -14
  414. package/dist/lib/output/git-output.js +1 -1
  415. package/dist/lib/owner-message.d.ts +3 -29
  416. package/dist/lib/owner-message.js +3 -3
  417. package/dist/lib/packages/output-home.d.ts +2 -4
  418. package/dist/lib/packages/output-home.js +2 -2
  419. package/dist/lib/perf/db.d.ts +0 -2
  420. package/dist/lib/perf/db.js +2 -7
  421. package/dist/lib/permissions-registry.d.ts +2 -3
  422. package/dist/lib/permissions-registry.js +0 -4
  423. package/dist/lib/permissions.d.ts +6 -16
  424. package/dist/lib/permissions.js +2 -15
  425. package/dist/lib/picker.d.ts +6 -5
  426. package/dist/lib/placement.d.ts +3 -6
  427. package/dist/lib/placement.js +0 -17
  428. package/dist/lib/platform/posixpath.d.ts +2 -1
  429. package/dist/lib/platform/winpath.d.ts +2 -1
  430. package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
  431. package/dist/lib/plugins/plugin-marketplace.js +1 -1
  432. package/dist/lib/pr-land-detach.d.ts +2 -1
  433. package/dist/lib/profiles-presets.d.ts +2 -1
  434. package/dist/lib/profiles.d.ts +3 -9
  435. package/dist/lib/profiles.js +1 -9
  436. package/dist/lib/project-doctor.d.ts +2 -1
  437. package/dist/lib/project-launch.d.ts +2 -2
  438. package/dist/lib/project-probe.d.ts +4 -3
  439. package/dist/lib/project-pull.d.ts +2 -1
  440. package/dist/lib/project-resources.d.ts +2 -2
  441. package/dist/lib/project-resources.js +1 -1
  442. package/dist/lib/project-root.d.ts +2 -6
  443. package/dist/lib/project-root.js +1 -1
  444. package/dist/lib/project-schedule.d.ts +2 -1
  445. package/dist/lib/project-status.d.ts +2 -16
  446. package/dist/lib/project-status.js +3 -3
  447. package/dist/lib/reconcile-and-repair.d.ts +5 -4
  448. package/dist/lib/redact.d.ts +7 -1
  449. package/dist/lib/redact.js +94 -3
  450. package/dist/lib/refresh-coordinator.d.ts +2 -1
  451. package/dist/lib/refresh.d.ts +3 -2
  452. package/dist/lib/remote-agents-json.d.ts +3 -2
  453. package/dist/lib/reserved-stores.d.ts +0 -2
  454. package/dist/lib/reserved-stores.js +3 -5
  455. package/dist/lib/resource-content-diff.d.ts +0 -2
  456. package/dist/lib/resource-content-diff.js +1 -1
  457. package/dist/lib/resource-patterns.d.ts +2 -1
  458. package/dist/lib/resource-profiles.d.ts +2 -8
  459. package/dist/lib/resource-profiles.js +3 -27
  460. package/dist/lib/resources/workflows.d.ts +1 -1
  461. package/dist/lib/resources.d.ts +4 -9
  462. package/dist/lib/resources.js +1 -1
  463. package/dist/lib/routine-context.d.ts +2 -5
  464. package/dist/lib/routine-context.js +2 -2
  465. package/dist/lib/routine-notify-owner.d.ts +8 -7
  466. package/dist/lib/routine-notify-owner.js +5 -5
  467. package/dist/lib/routine-process-cleanup.d.ts +2 -1
  468. package/dist/lib/routine-readiness.d.ts +0 -2
  469. package/dist/lib/routine-readiness.js +0 -7
  470. package/dist/lib/routines-project.d.ts +3 -4
  471. package/dist/lib/routines-project.js +1 -1
  472. package/dist/lib/rules/compile.d.ts +3 -25
  473. package/dist/lib/rules/compile.js +1 -1
  474. package/dist/lib/rules/compose.d.ts +3 -9
  475. package/dist/lib/rules/rules.d.ts +4 -15
  476. package/dist/lib/rules/rules.js +1 -64
  477. package/dist/lib/run-defaults.d.ts +1 -1
  478. package/dist/lib/run-notify.d.ts +2 -1
  479. package/dist/lib/run-trace-sync.d.ts +1 -1
  480. package/dist/lib/run-trace-sync.js +1 -1
  481. package/dist/lib/scheduler.d.ts +2 -1
  482. package/dist/lib/scheduling/routines.d.ts +9 -21
  483. package/dist/lib/scheduling/routines.js +3 -46
  484. package/dist/lib/secrets-client.d.ts +0 -17
  485. package/dist/lib/secrets-client.js +4 -26
  486. package/dist/lib/secrets-policy.d.ts +12 -17
  487. package/dist/lib/secrets-policy.js +5 -5
  488. package/dist/lib/secrets-types.d.ts +3 -2
  489. package/dist/lib/secrets-types.js +2 -1
  490. package/dist/lib/self-heal/checks/install-staging.js +1 -1
  491. package/dist/lib/self-heal/registry.d.ts +3 -2
  492. package/dist/lib/self-heal/types.d.ts +1 -1
  493. package/dist/lib/self-heal/types.js +1 -1
  494. package/dist/lib/self-update.d.ts +5 -5
  495. package/dist/lib/self-update.js +4 -4
  496. package/dist/lib/session/active.js +9 -3
  497. package/dist/lib/session/actor-sidecar.d.ts +3 -2
  498. package/dist/lib/session/artifacts.d.ts +0 -2
  499. package/dist/lib/session/artifacts.js +1 -1
  500. package/dist/lib/session/bash-command.d.ts +2 -7
  501. package/dist/lib/session/bundle.d.ts +4 -6
  502. package/dist/lib/session/bundle.js +1 -5
  503. package/dist/lib/session/cloud.d.ts +0 -4
  504. package/dist/lib/session/cloud.js +2 -15
  505. package/dist/lib/session/db.d.ts +2 -1
  506. package/dist/lib/session/db.js +39 -4
  507. package/dist/lib/session/detached.d.ts +2 -1
  508. package/dist/lib/session/detached.js +2 -2
  509. package/dist/lib/session/digest.d.ts +2 -2
  510. package/dist/lib/session/digest.js +1 -1
  511. package/dist/lib/session/discover.js +7 -2
  512. package/dist/lib/session/fork.d.ts +3 -2
  513. package/dist/lib/session/highlights.d.ts +6 -5
  514. package/dist/lib/session/hook-sessions.d.ts +12 -1
  515. package/dist/lib/session/hook-sessions.js +139 -6
  516. package/dist/lib/session/host-link.d.ts +2 -1
  517. package/dist/lib/session/inject.d.ts +1 -1
  518. package/dist/lib/session/inject.js +1 -1
  519. package/dist/lib/session/insights.d.ts +3 -15
  520. package/dist/lib/session/insights.js +2 -2
  521. package/dist/lib/session/local-tmux-attach.d.ts +2 -18
  522. package/dist/lib/session/local-tmux-attach.js +1 -1
  523. package/dist/lib/session/migrations.d.ts +0 -1
  524. package/dist/lib/session/migrations.js +1 -1
  525. package/dist/lib/session/mirror.d.ts +5 -8
  526. package/dist/lib/session/mirror.js +2 -2
  527. package/dist/lib/session/parse.d.ts +1 -32
  528. package/dist/lib/session/parse.js +4 -4
  529. package/dist/lib/session/pid-registry.d.ts +18 -5
  530. package/dist/lib/session/pid-registry.js +164 -17
  531. package/dist/lib/session/presence.d.ts +2 -1
  532. package/dist/lib/session/process-view.d.ts +25 -0
  533. package/dist/lib/session/process-view.js +176 -0
  534. package/dist/lib/session/projection.d.ts +13 -0
  535. package/dist/lib/session/projection.js +101 -0
  536. package/dist/lib/session/prompt.d.ts +3 -2
  537. package/dist/lib/session/prompt.js +38 -1
  538. package/dist/lib/session/recovery.d.ts +3 -2
  539. package/dist/lib/session/remote/peer-stream.d.ts +2 -5
  540. package/dist/lib/session/remote/peer-stream.js +2 -2
  541. package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
  542. package/dist/lib/session/remote/remote-list.d.ts +5 -5
  543. package/dist/lib/session/remote/remote.d.ts +4 -3
  544. package/dist/lib/session/remote/watch.d.ts +10 -7
  545. package/dist/lib/session/remote/watch.js +10 -6
  546. package/dist/lib/session/remote-active.d.ts +2 -1
  547. package/dist/lib/session/render.d.ts +2 -2
  548. package/dist/lib/session/render.js +1 -1
  549. package/dist/lib/session/resume-owner.d.ts +1 -1
  550. package/dist/lib/session/resume-owner.js +1 -1
  551. package/dist/lib/session/run-names.d.ts +2 -1
  552. package/dist/lib/session/session-cache.d.ts +7 -26
  553. package/dist/lib/session/session-cache.js +17 -8
  554. package/dist/lib/session/share-html.d.ts +1 -21
  555. package/dist/lib/session/share-html.js +1 -1
  556. package/dist/lib/session/shell-programs.d.ts +2 -1
  557. package/dist/lib/session/state.d.ts +41 -8
  558. package/dist/lib/session/state.js +112 -11
  559. package/dist/lib/session/stream-render.d.ts +2 -1
  560. package/dist/lib/session/sync/agents.d.ts +0 -4
  561. package/dist/lib/session/sync/agents.js +0 -0
  562. package/dist/lib/session/sync/backend.d.ts +5 -5
  563. package/dist/lib/session/sync/managed-config.d.ts +0 -8
  564. package/dist/lib/session/sync/managed-key.d.ts +0 -2
  565. package/dist/lib/session/sync/managed-key.js +1 -1
  566. package/dist/lib/session/sync/r2.d.ts +4 -1
  567. package/dist/lib/session/sync/r2.js +4 -7
  568. package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
  569. package/dist/lib/session/tail.d.ts +2 -1
  570. package/dist/lib/session/team-filter.d.ts +1 -1
  571. package/dist/lib/session/testdata/pid-registry-namespace.d.ts +1 -0
  572. package/dist/lib/session/testdata/pid-registry-namespace.js +27 -0
  573. package/dist/lib/session/testdata/process-view-namespace.d.ts +1 -0
  574. package/dist/lib/session/testdata/process-view-namespace.js +56 -0
  575. package/dist/lib/session/testdata/process-view-private.d.ts +1 -0
  576. package/dist/lib/session/testdata/process-view-private.js +12 -0
  577. package/dist/lib/session/throughput.d.ts +2 -3
  578. package/dist/lib/session/throughput.js +1 -1
  579. package/dist/lib/session/timeline-pass.d.ts +3 -42
  580. package/dist/lib/session/timeline-pass.js +4 -4
  581. package/dist/lib/session/timeline.d.ts +3 -13
  582. package/dist/lib/session/timeline.js +3 -3
  583. package/dist/lib/session/tool-calls.d.ts +2 -2
  584. package/dist/lib/session/tool-calls.js +1 -1
  585. package/dist/lib/session/tool-index.d.ts +0 -8
  586. package/dist/lib/session/tool-index.js +2 -2
  587. package/dist/lib/session/tool-store.d.ts +2 -1
  588. package/dist/lib/session/trajectory-compare.d.ts +2 -1
  589. package/dist/lib/session/trajectory-lineage.d.ts +2 -1
  590. package/dist/lib/session/trajectory-text.d.ts +3 -2
  591. package/dist/lib/session/trajectory.d.ts +2 -1
  592. package/dist/lib/session/viewing-in.d.ts +2 -1
  593. package/dist/lib/settings-manifest.d.ts +2 -1
  594. package/dist/lib/share/delete.d.ts +5 -4
  595. package/dist/lib/share/html.d.ts +0 -2
  596. package/dist/lib/share/html.js +9 -9
  597. package/dist/lib/share/http-error.d.ts +3 -2
  598. package/dist/lib/share/og.d.ts +2 -1
  599. package/dist/lib/share/provision.d.ts +2 -2
  600. package/dist/lib/share/publish.d.ts +4 -13
  601. package/dist/lib/share/publish.js +2 -2
  602. package/dist/lib/shim-heal.d.ts +1 -5
  603. package/dist/lib/shim-heal.js +0 -6
  604. package/dist/lib/smart-launch.d.ts +4 -5
  605. package/dist/lib/smart-launch.js +1 -1
  606. package/dist/lib/snapshot.d.ts +3 -2
  607. package/dist/lib/ssh-exec.d.ts +5 -4
  608. package/dist/lib/ssh-tunnel.d.ts +3 -2
  609. package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
  610. package/dist/lib/staleness/checkers/permissions.js +1 -1
  611. package/dist/lib/staleness/fingerprint.d.ts +0 -7
  612. package/dist/lib/staleness/fingerprint.js +1 -1
  613. package/dist/lib/staleness/prune.d.ts +3 -2
  614. package/dist/lib/staleness/registry.d.ts +1 -1
  615. package/dist/lib/staleness/writers/sources.d.ts +0 -8
  616. package/dist/lib/staleness/writers/sources.js +1 -1
  617. package/dist/lib/startup/command-registry.js +1 -1
  618. package/dist/lib/state.d.ts +1 -3
  619. package/dist/lib/state.js +1 -4
  620. package/dist/lib/subagents-registry.d.ts +4 -3
  621. package/dist/lib/subagents.d.ts +2 -1
  622. package/dist/lib/subagents.js +3 -2
  623. package/dist/lib/summarizer/pass.d.ts +3 -6
  624. package/dist/lib/summarizer/pass.js +2 -2
  625. package/dist/lib/summarizer/summarize.d.ts +4 -3
  626. package/dist/lib/sync-passphrase.d.ts +3 -2
  627. package/dist/lib/sync-status.d.ts +3 -16
  628. package/dist/lib/sync-status.js +2 -2
  629. package/dist/lib/sync-umbrella.d.ts +4 -3
  630. package/dist/lib/system-run-sync.d.ts +2 -1
  631. package/dist/lib/teams/agents.d.ts +2 -4
  632. package/dist/lib/teams/agents.js +1 -1
  633. package/dist/lib/teams/forEach.d.ts +3 -2
  634. package/dist/lib/teams/pr-watch.d.ts +4 -11
  635. package/dist/lib/teams/pr-watch.js +4 -4
  636. package/dist/lib/teams/registry.d.ts +2 -3
  637. package/dist/lib/teams/registry.js +1 -1
  638. package/dist/lib/teams/remoteWorktree.d.ts +0 -16
  639. package/dist/lib/teams/remoteWorktree.js +3 -3
  640. package/dist/lib/teams/scheduler.d.ts +6 -5
  641. package/dist/lib/teams/scheduler.js +1 -1
  642. package/dist/lib/teams/supervisor.d.ts +4 -3
  643. package/dist/lib/teams/worktree.d.ts +0 -9
  644. package/dist/lib/teams/worktree.js +0 -32
  645. package/dist/lib/term-client.d.ts +44 -0
  646. package/dist/lib/term-client.js +117 -0
  647. package/dist/lib/terminal/inject.d.ts +3 -16
  648. package/dist/lib/terminal/inject.js +1 -29
  649. package/dist/lib/terminal/resolve.d.ts +3 -9
  650. package/dist/lib/terminal/resolve.js +3 -7
  651. package/dist/lib/tmux/binary.d.ts +2 -1
  652. package/dist/lib/tmux/orphan-reap.d.ts +6 -7
  653. package/dist/lib/tmux/orphan-reap.js +1 -1
  654. package/dist/lib/tmux/session.d.ts +4 -3
  655. package/dist/lib/traces/classify.d.ts +3 -2
  656. package/dist/lib/traces/config.d.ts +0 -8
  657. package/dist/lib/traces/insights.d.ts +2 -1
  658. package/dist/lib/traces/phenotype.d.ts +3 -3
  659. package/dist/lib/traces/provision.d.ts +1 -3
  660. package/dist/lib/traces/provision.js +1 -1
  661. package/dist/lib/traces/schema2-build.d.ts +1 -1
  662. package/dist/lib/traces/schema2-danger.d.ts +2 -1
  663. package/dist/lib/traces/schema2.d.ts +5 -4
  664. package/dist/lib/traces/segments.d.ts +4 -20
  665. package/dist/lib/traces/segments.js +3 -3
  666. package/dist/lib/traces/sync.d.ts +2 -3
  667. package/dist/lib/traces/sync.js +1 -1
  668. package/dist/lib/triggers/handlers.d.ts +4 -13
  669. package/dist/lib/triggers/handlers.js +1 -1
  670. package/dist/lib/triggers/webhook.d.ts +5 -27
  671. package/dist/lib/triggers/webhook.js +4 -4
  672. package/dist/lib/types.d.ts +3 -3
  673. package/dist/lib/usage-refresh.d.ts +4 -10
  674. package/dist/lib/usage-refresh.js +3 -8
  675. package/dist/lib/verbs.d.ts +2 -1
  676. package/dist/lib/version-duplicates.d.ts +2 -3
  677. package/dist/lib/version-duplicates.js +3 -33
  678. package/dist/lib/version.d.ts +2 -1
  679. package/dist/lib/warn-unpushed.d.ts +2 -1
  680. package/dist/lib/watchdog/history.d.ts +3 -2
  681. package/dist/lib/watchdog/log.d.ts +0 -6
  682. package/dist/lib/watchdog/log.js +1 -1
  683. package/dist/lib/watchdog/rotate.d.ts +2 -26
  684. package/dist/lib/watchdog/rotate.js +4 -12
  685. package/dist/lib/watchdog/runner.d.ts +0 -7
  686. package/dist/lib/watchdog/runner.js +4 -4
  687. package/dist/lib/watchdog/service.d.ts +2 -2
  688. package/dist/lib/watchdog/service.js +1 -1
  689. package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
  690. package/dist/lib/watchdog/watchdog.d.ts +2 -1
  691. package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
  692. package/dist/lib/workflows-registry.d.ts +3 -2
  693. package/dist/lib/workflows.d.ts +4 -7
  694. package/dist/lib/workflows.js +1 -1
  695. package/dist/lib/worktree/held.d.ts +4 -28
  696. package/dist/lib/worktree/held.js +3 -3
  697. package/package.json +2 -3
  698. package/scripts/postinstall.js +5 -4
  699. package/dist/commands/pty.d.ts +0 -20
  700. package/dist/commands/pty.js +0 -404
  701. package/dist/lib/config-machine-keys.d.ts +0 -14
  702. package/dist/lib/config-machine-keys.js +0 -21
  703. package/dist/lib/pty-client.d.ts +0 -49
  704. package/dist/lib/pty-client.js +0 -315
  705. package/dist/lib/pty-server.d.ts +0 -59
  706. package/dist/lib/pty-server.js +0 -653
@@ -1,3 +1,4 @@
1
+ import { daemonProcessViewAllowed, recordDaemonProcessView } from '../session/process-view.js';
1
2
  /**
2
3
  * Daemon lifecycle management for the routines scheduler.
3
4
  *
@@ -22,7 +23,6 @@ import { detectOverdueJobs, notifyOverdue } from '../overdue.js';
22
23
  import { runCatchup } from '../catchup.js';
23
24
  import { notifyRoutineStart, notifyRoutineFinish, notifyRoutineStartFailed } from '../routine-notify.js';
24
25
  import { notifyOwnerRoutineFinish, notifyOwnerRoutineStartFailed } from '../routine-notify-owner.js';
25
- import { BrowserService } from '../browser/service.js';
26
26
  import { getSocketPath as getBrowserIpcSocketPath } from '../browser/ipc.js';
27
27
  import { redactSecrets } from '../redact.js';
28
28
  import { getAgentsBinPath, getCliLaunch, BUN_VIRTUAL_ROOT } from '../cli-entry.js';
@@ -30,27 +30,6 @@ import { localBinDir } from '../platform/posixpath.js';
30
30
  import { isSchedulerEnabled, assertSchedulerEnabled, isDaemonEnabled } from '../device-config.js';
31
31
  import { recordSubsystemOk, recordSubsystemError, recordSubsystemErrorReason, readSubsystemHealth, SUBSYSTEM_DAEMON_START } from '../daemon-health.js';
32
32
  import { ServiceSupervisor } from './supervisor.js';
33
- import { SessionIndexService } from './session-index-service.js';
34
- import { SessionSummarizerService } from './session-summarizer-service.js';
35
- import { SessionTitleService } from './session-title-service.js';
36
- import { MonitorEngineService } from './monitor-engine-service.js';
37
- import { AccountUsageService, AccountAuthService } from './account-state-daemon-service.js';
38
- import { CatchupService } from './catchup-service.js';
39
- import { BrowserIPCService } from './browser-ipc-service.js';
40
- import { WatchdogService } from './watchdog-service.js';
41
- import { DeviceProbeService } from './device-probe-service.js';
42
- import { SelfHealService } from './self-heal-service.js';
43
- import { SelfUpdateService } from './self-update-service.js';
44
- import { HarnessUpdateService } from './harness-update-service.js';
45
- import { AuthSyncService } from './auth-sync-service.js';
46
- import { UsageSyncService } from './usage-sync-service.js';
47
- import { StateDirCheckService } from './state-dir-check-service.js';
48
- import { SessionStateService } from './session-state-service.js';
49
- import { AttentionNotifyService } from './attention-notify-service.js';
50
- import { WebhookReceiverService } from './webhook-receiver-service.js';
51
- import { HeartbeatService } from './heartbeat-service.js';
52
- import { TmuxReapService } from './tmux-reap-service.js';
53
- import { BrowserTaskReapService } from './browser-task-reap-service.js';
54
33
  import { emit, emitAsync, emitRoutineEnd } from '../feed/events.js';
55
34
  import { readDaemonServicesConfig, drainDaemonServiceRestartQueue } from '../daemon-services.js';
56
35
  import { sleepSync } from '../fs-atomic.js';
@@ -478,6 +457,12 @@ export function isDaemonRunning() {
478
457
  * liveness check and the write.
479
458
  */
480
459
  export function claimDaemonInstance() {
460
+ // A nested caller cannot interpret legacy numeric lock/PID files. Authenticate
461
+ // before acquiring the lock (whose stale-PID cleanup itself mutates state).
462
+ if (!daemonProcessViewAllowed()) {
463
+ console.error('Daemon startup requires the owning process namespace. Automatic reuse of a private-container HOME across namespaces is unsupported; run in its owning namespace or use a fresh HOME.');
464
+ return false;
465
+ }
481
466
  // A stop owns this same lock through teardown. Waiting here is load-bearing:
482
467
  // returning false while stopDaemon() holds it lets this replacement exit 0,
483
468
  // then the stop completes with no singleton left alive. The bounded lifecycle
@@ -488,6 +473,10 @@ export function claimDaemonInstance() {
488
473
  if (!release)
489
474
  return false;
490
475
  try {
476
+ // Recheck under lifecycle serialization; invocation is not provenance.
477
+ if (!daemonProcessViewAllowed())
478
+ return false;
479
+ recordDaemonProcessView();
491
480
  // Do not overwrite a live-but-uninspectable owner. This is the non-
492
481
  // destructive side of the same fail-closed rule stopDaemon applies.
493
482
  if (unverifiedLiveDaemonPid() !== null)
@@ -887,6 +876,32 @@ export async function runDaemon() {
887
876
  // HOME override must refuse to run against the operator's real state rather than
888
877
  // schedule against the real host. No-op in production (the marker is never set).
889
878
  assertTestDaemonHome();
879
+ // Lifecycle readers and launchers do not run services. Load their code only
880
+ // in the daemon process, before it claims or publishes lifecycle state.
881
+ const [{ BrowserService }, { SessionIndexService }, { SessionSummarizerService }, { SessionTitleService }, { MonitorEngineService }, { AccountUsageService, AccountAuthService }, { CatchupService }, { BrowserIPCService }, { WatchdogService }, { DeviceProbeService }, { SelfHealService }, { SelfUpdateService }, { HarnessUpdateService }, { AuthSyncService }, { UsageSyncService }, { StateDirCheckService }, { SessionStateService }, { AttentionNotifyService }, { WebhookReceiverService }, { HeartbeatService }, { TmuxReapService }, { BrowserTaskReapService },] = await Promise.all([
882
+ import('../browser/service.js'),
883
+ import('./session-index-service.js'),
884
+ import('./session-summarizer-service.js'),
885
+ import('./session-title-service.js'),
886
+ import('./monitor-engine-service.js'),
887
+ import('./account-state-daemon-service.js'),
888
+ import('./catchup-service.js'),
889
+ import('./browser-ipc-service.js'),
890
+ import('./watchdog-service.js'),
891
+ import('./device-probe-service.js'),
892
+ import('./self-heal-service.js'),
893
+ import('./self-update-service.js'),
894
+ import('./harness-update-service.js'),
895
+ import('./auth-sync-service.js'),
896
+ import('./usage-sync-service.js'),
897
+ import('./state-dir-check-service.js'),
898
+ import('./session-state-service.js'),
899
+ import('./attention-notify-service.js'),
900
+ import('./webhook-receiver-service.js'),
901
+ import('./heartbeat-service.js'),
902
+ import('./tmux-reap-service.js'),
903
+ import('./browser-task-reap-service.js'),
904
+ ]);
890
905
  // Install the shared-daemon reload signal boundary BEFORE publishing our PID
891
906
  // in claimDaemonInstance(). Browser/routines clients use that PID to decide a
892
907
  // daemon exists and may request a service reload immediately. POSIX otherwise
@@ -1211,7 +1226,7 @@ export async function runDaemon() {
1211
1226
  }
1212
1227
  catch { /* best-effort */ }
1213
1228
  // RUSH-2288: the pre-spawn failure (e.g. auth_failed) is exactly the one the
1214
- // 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 —
1215
1230
  // so the daemon reaches the owner directly.
1216
1231
  void notifyOwnerRoutineStartFailed(config, message)
1217
1232
  .then((r) => {
@@ -1739,6 +1754,10 @@ function assertDaemonLaunchHomeAllowed() {
1739
1754
  }
1740
1755
  /** Start the daemon via launchd, systemd, or as a detached process. */
1741
1756
  export function startDaemon(agentsBin) {
1757
+ // The public launcher must obey the same namespace boundary as its child:
1758
+ // even probing/repairing legacy PID state or pruning a lock can mutate it.
1759
+ if (!daemonProcessViewAllowed())
1760
+ throw new Error('Daemon startup requires the owning process namespace. Automatic reuse of a private-container HOME across namespaces is unsupported; run in its owning namespace or use a fresh HOME.');
1742
1761
  if (isDaemonRunning()) {
1743
1762
  const pid = readDaemonPid();
1744
1763
  return { pid, method: 'already-running' };
@@ -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());
@@ -54,7 +54,7 @@ export declare function activeRunSkipStreak(runs: RunMeta[]): number;
54
54
  */
55
55
  export declare function launcherClaimPid(): number | null;
56
56
  /** How a routine attempt was triggered, plus the schedule slot it belongs to. */
57
- export interface RoutineTrigger {
57
+ interface RoutineTrigger {
58
58
  kind: NonNullable<RunMeta['triggerKind']>;
59
59
  /** UTC fire time for a schedule/catchup attempt; keys the single-fire slot claim. */
60
60
  scheduledFor?: Date | string;
@@ -103,7 +103,7 @@ export declare function buildJobCommand(config: JobConfig, resolvedPrompt: strin
103
103
  export declare function snapshotRoutineTranscriptBase(meta: Pick<RunMeta, 'jobName' | 'agent' | 'version'>, runDir: string, overlayHome?: string): void;
104
104
  export declare function archiveRoutineTranscripts(meta: Pick<RunMeta, 'jobName' | 'runId' | 'agent' | 'version'>, runDir: string, overlayHome?: string): void;
105
105
  /** Pre-flight version/account selection for a routine job. */
106
- export interface RoutineLaunchPlan {
106
+ interface RoutineLaunchPlan {
107
107
  /** Ordered attempts: primary first, then same-agent failover accounts. */
108
108
  chain: FallbackEntry[];
109
109
  /** Full rotation result when strategy selected among healthy accounts; null when pinned. */
@@ -219,7 +219,7 @@ declare function executeJobOnHost(config: JobConfig, opts: {
219
219
  * observes the live running→terminal transition (the monitor tick would already
220
220
  * see a finalized record and skip it). Never let a hook throw into finalization.
221
221
  */
222
- export interface RoutineHooks {
222
+ interface RoutineHooks {
223
223
  /** Called once with the finalized meta when the run reaches a terminal state. */
224
224
  onFinish?: (meta: RunMeta) => void;
225
225
  }
@@ -35,16 +35,7 @@
35
35
  */
36
36
  import { BasePeriodicService, type DaemonContext } from './service.js';
37
37
  import type { DaemonServiceId } from '../daemon-services.js';
38
- /**
39
- * Hard cap per tick: a real download + npm/bun install + verify can
40
- * legitimately take minutes on a slow link. 15 minutes matches the task's
41
- * stated budget and is short relative to the ~75min cadence. Exported so the
42
- * on-demand `request-self-update` IPC handler (`browser/ipc.ts`) can bound
43
- * its own `AbortController` on the SAME budget the periodic tick runs under —
44
- * one deadline, not two independently-tuned numbers that could drift apart.
45
- */
46
- export declare const SELF_UPDATE_DEADLINE_MS: number;
47
- export interface SelfUpdateOutcome {
38
+ interface SelfUpdateOutcome {
48
39
  updated: boolean;
49
40
  reason?: string;
50
41
  }
@@ -75,7 +66,6 @@ export interface SelfUpdateDeps {
75
66
  syncSystemRepo(): Promise<void>;
76
67
  syncLocal(): Promise<void>;
77
68
  }
78
- export declare function fetchLatestNpmMetadata(signal: AbortSignal): Promise<NpmLatestMetadata>;
79
69
  /**
80
70
  * Install + byte-verify `metadata` into `packageRoot`'s install, exactly the
81
71
  * sequence `bootstrap.ts`'s `installResolvedPackage` runs for `agents
@@ -101,7 +91,6 @@ export declare function fetchLatestNpmMetadata(signal: AbortSignal): Promise<Npm
101
91
  * it's guarding (found in review, PHNX-3695).
102
92
  */
103
93
  export declare function installAndVerifyDefault(metadata: NpmLatestMetadata, packageRoot: string, signal: AbortSignal): Promise<void>;
104
- export declare function defaultSelfUpdateDeps(): SelfUpdateDeps;
105
94
  /**
106
95
  * Core self-update decision + action, shared by the periodic tick
107
96
  * ({@link SelfUpdateService.onTick}) and the on-demand IPC path
@@ -167,10 +156,6 @@ export declare function triggerSelfUpdateInBackground(ctx: DaemonContext, deps?:
167
156
  * reason, or `null` to proceed to the (backgrounded) install path.
168
157
  */
169
158
  export declare function selfUpdateSyncDeclineReason(deps?: SelfUpdateDeps): string | null;
170
- export declare const DEV_BUILD_DECLINE = "dev build \u2014 self-update is a no-op";
171
- export declare const SHADOW_DECLINE = "another agents binary shadows this install \u2014 self-update is a no-op";
172
- /** True when the package on disk is a strictly newer release than the one this process booted with. */
173
- export declare function installedIsNewerThanRunning(installed: string, running: string): boolean;
174
159
  export declare class SelfUpdateService extends BasePeriodicService {
175
160
  readonly id: DaemonServiceId;
176
161
  readonly intervalMs: number;
@@ -56,7 +56,7 @@ const SELF_UPDATE_TICK_MS = 75 * 60_000;
56
56
  * its own `AbortController` on the SAME budget the periodic tick runs under —
57
57
  * one deadline, not two independently-tuned numbers that could drift apart.
58
58
  */
59
- export const SELF_UPDATE_DEADLINE_MS = 15 * 60_000;
59
+ const SELF_UPDATE_DEADLINE_MS = 15 * 60_000;
60
60
  /**
61
61
  * First tick fires 5 minutes after daemon boot — deliberately longer than
62
62
  * self-heal's 30s stagger (`self-heal-service.ts`): self-heal repairs local
@@ -67,7 +67,7 @@ export const SELF_UPDATE_DEADLINE_MS = 15 * 60_000;
67
67
  * a restart). Every later tick still fires on the normal cadence.
68
68
  */
69
69
  const SELF_UPDATE_STARTUP_DELAY_MS = 5 * 60_000;
70
- export async function fetchLatestNpmMetadata(signal) {
70
+ async function fetchLatestNpmMetadata(signal) {
71
71
  const response = await fetch(`https://registry.npmjs.org/${NPM_PACKAGE_NAME}/latest`, { signal });
72
72
  if (!response.ok) {
73
73
  throw new Error(`registry.npmjs.org responded ${response.status}`);
@@ -148,7 +148,7 @@ export async function installAndVerifyDefault(metadata, packageRoot, signal) {
148
148
  }
149
149
  }
150
150
  }
151
- export function defaultSelfUpdateDeps() {
151
+ function defaultSelfUpdateDeps() {
152
152
  return {
153
153
  currentVersion: () => getCliVersion(),
154
154
  installedVersion: () => getCliVersionFresh(),
@@ -362,10 +362,10 @@ export function selfUpdateSyncDeclineReason(deps = defaultSelfUpdateDeps()) {
362
362
  }
363
363
  return null;
364
364
  }
365
- export const DEV_BUILD_DECLINE = 'dev build — self-update is a no-op';
366
- export const SHADOW_DECLINE = 'another agents binary shadows this install — self-update is a no-op';
365
+ const DEV_BUILD_DECLINE = 'dev build — self-update is a no-op';
366
+ const SHADOW_DECLINE = 'another agents binary shadows this install — self-update is a no-op';
367
367
  /** True when the package on disk is a strictly newer release than the one this process booted with. */
368
- export function installedIsNewerThanRunning(installed, running) {
368
+ function installedIsNewerThanRunning(installed, running) {
369
369
  if (installed === 'unknown' || running === 'unknown')
370
370
  return false;
371
371
  return compareVersions(installed, running) > 0;
@@ -24,7 +24,7 @@
24
24
  */
25
25
  import { BasePeriodicService, type DaemonContext } from './service.js';
26
26
  import type { DaemonServiceId } from '../daemon-services.js';
27
- export interface StateDirCheckServiceOptions {
27
+ interface StateDirCheckServiceOptions {
28
28
  lifetimePath: string;
29
29
  lifetimeToken: string;
30
30
  onMissing: () => void;
@@ -41,3 +41,4 @@ export declare class StateDirCheckService extends BasePeriodicService {
41
41
  protected onStop(): Promise<void>;
42
42
  protected onTick(ctx: DaemonContext): Promise<void>;
43
43
  }
44
+ export {};
@@ -32,7 +32,7 @@
32
32
  */
33
33
  import type { DaemonServiceId } from '../daemon-services.js';
34
34
  import type { DaemonContext, DaemonService, ServiceHealth } from './service.js';
35
- export interface ServiceSupervisorOptions {
35
+ interface ServiceSupervisorOptions {
36
36
  /** Consecutive thrown tick failures before a service is parked. Deadline breaches park immediately. Default 3. */
37
37
  parkAfterFailures?: number;
38
38
  /** First restart backoff delay, doubled on each further failed restart attempt. Default 5s. */
@@ -48,7 +48,7 @@ export interface ServiceSupervisorOptions {
48
48
  */
49
49
  lifecycleDeadlineMs?: number;
50
50
  }
51
- export interface RegisterServiceOptions {
51
+ interface RegisterServiceOptions {
52
52
  /** Register the lifecycle owner but leave it stopped until a live enable. */
53
53
  enabled?: boolean;
54
54
  }
@@ -135,3 +135,4 @@ export declare class ServiceSupervisor {
135
135
  private recordFailure;
136
136
  private finishTick;
137
137
  }
138
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ // Runs the production daemon entrypoint against an isolated HOME. No installed
2
+ // CLI, service manager, scheduler, or production socket participates.
3
+ import { runDaemon, startDaemon } from '../daemon.js';
4
+ if (process.argv[2] === '__start-daemon') {
5
+ try {
6
+ startDaemon();
7
+ }
8
+ catch (error) {
9
+ console.log(error.message);
10
+ process.exitCode = 2;
11
+ }
12
+ }
13
+ else
14
+ await runDaemon();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ import assert from 'node:assert/strict';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import net from 'node:net';
5
+ import { spawn } from 'node:child_process';
6
+ import { serviceManagerRegistrationAllowed } from '../../service-manifest.js';
7
+ import { startDaemon, stopDaemon } from '../daemon.js';
8
+ import { getDaemonDir, getTerminalsDir, getCacheDir } from '../../state.js';
9
+ // Tripwire precedes ALL lifecycle calls. Some older Bun versions return HOME
10
+ // from os.userInfo(), which would incorrectly allow the real service manager.
11
+ assert.equal(serviceManagerRegistrationAllowed().allowed, false, 'isolated fixture must never access the production service manager');
12
+ const cold = process.argv[3] === 'cold';
13
+ const child = cold ? spawn('bun', [process.argv[4], '__daemon-run'], { stdio: 'ignore', env: process.env }) : undefined;
14
+ const started = child ? { pid: child.pid, method: 'detached' } : startDaemon(process.argv[2]);
15
+ assert.equal(started.method, 'detached');
16
+ assert.ok(started.pid);
17
+ fs.writeFileSync(path.join(process.env.HOME, 'test-child.pid'), String(started.pid));
18
+ try {
19
+ if (!cold)
20
+ assert.ok(fs.existsSync(path.join(getDaemonDir(), 'health.json')), 'ordinary launcher publishes health before daemon starts');
21
+ const socket = path.join(getCacheDir(), 'helpers', 'browser', 'browser.sock');
22
+ let ready = false;
23
+ for (let i = 0; i < 80 && !ready; i++) {
24
+ ready = await new Promise(resolve => {
25
+ const client = net.createConnection(socket);
26
+ const done = (value) => { client.destroy(); resolve(value); };
27
+ client.setTimeout(100, () => done(false));
28
+ client.once('connect', () => done(true));
29
+ client.once('error', () => done(false));
30
+ });
31
+ if (!ready)
32
+ await new Promise(resolve => setTimeout(resolve, 100));
33
+ }
34
+ assert.ok(ready, 'ordinary fresh-home daemon must serve its actual browser socket');
35
+ assert.equal(fs.readFileSync(path.join(getDaemonDir(), 'daemon.pid'), 'utf8').trim(), String(started.pid));
36
+ const owner = JSON.parse(fs.readFileSync(path.join(getTerminalsDir(), 'process-view.json'), 'utf8'));
37
+ assert.equal(owner.pidNamespace, fs.readlinkSync('/proc/self/ns/pid'));
38
+ assert.equal(owner.bootId, fs.readFileSync('/proc/sys/kernel/random/boot_id', 'utf8').trim());
39
+ console.log(`${cold ? 'cold runDaemon' : 'ordinary startDaemon: health published'}; canonical socket ready; namespace owner verified`);
40
+ }
41
+ finally {
42
+ stopDaemon();
43
+ }
@@ -9,7 +9,7 @@
9
9
  /** Every service the daemon can host. IDs are kebab-case and stable. */
10
10
  export type DaemonServiceId = 'scheduler' | 'catchup' | 'monitors' | 'browser-ipc' | 'webhook-receiver' | 'self-heal' | 'self-update' | 'account-state' | 'account-auth' | 'watchdog' | 'device-probe' | 'state-dir-check' | 'session-index' | 'session-title' | 'auth-sync' | 'usage-sync' | 'daemon-heartbeat' | 'tmux-reap' | 'browser-task-reap' | 'session-state' | 'session-summarizer' | 'attention-notify' | 'harness-update';
11
11
  /** Human-readable metadata for each service. */
12
- export interface DaemonServiceDef {
12
+ interface DaemonServiceDef {
13
13
  id: DaemonServiceId;
14
14
  title: string;
15
15
  description: string;
@@ -55,3 +55,4 @@ export declare function queueDaemonServiceRestart(id: DaemonServiceId): void;
55
55
  * daemon; never throws. Clears the file so a request is applied at most once.
56
56
  */
57
57
  export declare function drainDaemonServiceRestartQueue(): DaemonServiceId[];
58
+ export {};
@@ -35,7 +35,7 @@ export interface HostedReceiverConfig {
35
35
  /** Public Funnel exposure; omit to bind localhost only. */
36
36
  funnel?: HostedReceiverFunnel;
37
37
  }
38
- export interface DaemonWebhooksConfig {
38
+ interface DaemonWebhooksConfig {
39
39
  receivers: HostedReceiverConfig[];
40
40
  }
41
41
  /** Path to `~/.agents/daemon/webhooks.yaml`. */
@@ -1,6 +1,5 @@
1
1
  export declare const AGENTS_URL_SCHEME = "agents";
2
- export declare const MAC_BUNDLE_ID = "dev.agents.urlhandler";
3
- export interface SchemeStatus {
2
+ interface SchemeStatus {
4
3
  registered: boolean;
5
4
  platform: NodeJS.Platform;
6
5
  /** One human line: where the handler is, or why it is not registered. */
@@ -11,15 +10,6 @@ export interface SchemeStatus {
11
10
  * out of the handler command.
12
11
  */
13
12
  export declare function shQuote(p: string): string;
14
- /**
15
- * Resolve how the OS handler should invoke this CLI, as an already-quoted
16
- * command prefix (without the `open <url>` suffix).
17
- *
18
- * A macOS GUI app does NOT inherit the shell PATH, so the handler must use an
19
- * absolute path. Prefer the `agents` shim on PATH (directly executable); fall
20
- * back to `<node> <entry>` for a bare JS install.
21
- */
22
- export declare function resolveAgentsInvocation(platform?: NodeJS.Platform): string;
23
13
  /** The freedesktop `.desktop` entry that claims `x-scheme-handler/agents`. */
24
14
  export declare function linuxDesktopEntry(invocation: string): string;
25
15
  /**
@@ -33,10 +23,9 @@ export declare function macPlistBuddyCommands(plistPath: string): string[][];
33
23
  /** `reg add` argv lists that register the scheme under HKCU on Windows. */
34
24
  export declare function windowsRegistryCommands(invocation: string): string[][];
35
25
  export declare function linuxDesktopPath(home?: string): string;
36
- export declare function macAppPath(home?: string): string;
37
26
  /** Whether the handler artifact exists on disk (a cheap, side-effect-free check). */
38
27
  export declare function agentsUrlSchemeStatus(platform?: NodeJS.Platform, home?: string): SchemeStatus;
39
- export interface RegisterOptions {
28
+ interface RegisterOptions {
40
29
  platform?: NodeJS.Platform;
41
30
  home?: string;
42
31
  /** Skip if already present (used by best-effort callers like setup). */
@@ -47,3 +36,4 @@ export declare function unregisterAgentsUrlScheme(opts?: {
47
36
  platform?: NodeJS.Platform;
48
37
  home?: string;
49
38
  }): SchemeStatus;
39
+ export {};
@@ -23,7 +23,7 @@ import * as os from 'node:os';
23
23
  import * as path from 'node:path';
24
24
  import { getAgentsBinPath } from '../cli-entry.js';
25
25
  export const AGENTS_URL_SCHEME = 'agents';
26
- export const MAC_BUNDLE_ID = 'dev.agents.urlhandler';
26
+ const MAC_BUNDLE_ID = 'dev.agents.urlhandler';
27
27
  const LINUX_DESKTOP_FILE = 'agents-url-handler.desktop';
28
28
  const MAC_APP_NAME = 'AgentsURLHandler.app';
29
29
  // ---------------------------------------------------------------------------
@@ -44,7 +44,7 @@ export function shQuote(p) {
44
44
  * absolute path. Prefer the `agents` shim on PATH (directly executable); fall
45
45
  * back to `<node> <entry>` for a bare JS install.
46
46
  */
47
- export function resolveAgentsInvocation(platform = os.platform()) {
47
+ function resolveAgentsInvocation(platform = os.platform()) {
48
48
  const onPath = whichAgents(platform);
49
49
  if (onPath)
50
50
  return platform === 'win32' ? `"${onPath}"` : shQuote(onPath);
@@ -123,7 +123,7 @@ export function windowsRegistryCommands(invocation) {
123
123
  export function linuxDesktopPath(home = os.homedir()) {
124
124
  return path.join(home, '.local', 'share', 'applications', LINUX_DESKTOP_FILE);
125
125
  }
126
- export function macAppPath(home = os.homedir()) {
126
+ function macAppPath(home = os.homedir()) {
127
127
  return path.join(home, 'Applications', MAC_APP_NAME);
128
128
  }
129
129
  // ---------------------------------------------------------------------------
@@ -16,14 +16,14 @@
16
16
  * agents://session/<id> — resume <id>, owner host resolved from the id
17
17
  * agents://session/<id>?host=<name> — the same, with a routing hint
18
18
  */
19
- export interface AgentsSessionLink {
19
+ interface AgentsSessionLink {
20
20
  kind: 'session';
21
21
  /** The session id (or short-id/alias) to resume. */
22
22
  id: string;
23
23
  /** Optional owning-host hint; resume self-resolves the owner from the id regardless. */
24
24
  host?: string;
25
25
  }
26
- export interface AgentsUrlError {
26
+ interface AgentsUrlError {
27
27
  error: string;
28
28
  }
29
29
  export declare function isDeepLinkSessionId(raw: string): boolean;
@@ -32,3 +32,4 @@ export declare function isDeepLinkSessionId(raw: string): boolean;
32
32
  * {@link AgentsUrlError} with a human reason. Never throws.
33
33
  */
34
34
  export declare function parseAgentsUrl(input: string): AgentsSessionLink | AgentsUrlError;
35
+ export {};
@@ -44,7 +44,7 @@ export type ConfigScope = 'user' | 'device';
44
44
  */
45
45
  export type ConfigVisibility = 'shared' | 'machine';
46
46
  /** Value type of a config key — drives validation and `--json` rendering. */
47
- export type ConfigType = 'string' | 'int' | 'bool' | 'string-list';
47
+ type ConfigType = 'string' | 'int' | 'bool' | 'string-list';
48
48
  /** Fields every key carries, regardless of scope. */
49
49
  interface ConfigKeySpecBase {
50
50
  /** CLI dotted name, e.g. `interactive.host`. */
@@ -81,7 +81,7 @@ export interface ConfigEntry {
81
81
  source: ConfigSource;
82
82
  }
83
83
  /** Options scoping a read/write: a specific device (default: this machine), or the fleet-defaults layer. */
84
- export interface ConfigTarget {
84
+ interface ConfigTarget {
85
85
  device?: string;
86
86
  /** Write/read the fleet-wide defaults layer (central fleet.defaults.config). */
87
87
  fleet?: boolean;
@@ -92,16 +92,8 @@ declare const DEVICE_ROLES: readonly ["worker", "personal", "desktop"];
92
92
  declare const AUTO_POOL_MODES: readonly ["workers", "all"];
93
93
  export declare const CONFIG_KEYS: readonly ConfigKeySpec[];
94
94
  export declare function configKeySpec(name: string): ConfigKeySpec;
95
- /**
96
- * Fold the legacy config/pins stores into the current layout, once per
97
- * process. A failure is loud but non-fatal — config reads must keep working,
98
- * and the next process retries the fold. Honors AGENTS_SKIP_MIGRATION=1, the
99
- * same gate bootstrap's runMigration uses (tests pin it so a fork never folds
100
- * the developer's real ~/.agents as a side effect).
101
- */
102
- export declare function ensureDeviceConfigMigrated(): void;
103
- /** The fleet-defaults config layer (central `fleet.defaults.config`; {} when unset). */
104
- export declare function readFleetConfigDefaults(): Record<string, unknown>;
95
+ /** Throw when `value` does not match the key's declared type or validation. */
96
+ export declare function assertValidValue(spec: ConfigKeySpec, value: unknown): void;
105
97
  /**
106
98
  * The effective device-scope config block for `device`: fleet.defaults.config
107
99
  * overlaid with the per-device doc's config:. This is the single read path
@@ -130,9 +122,6 @@ export declare function getConfigValueAsync(name: string, opts?: ConfigTarget):
130
122
  * must not hard-fail. Asking for such a key by name still errors.
131
123
  */
132
124
  export declare function listConfig(opts?: ConfigTarget): ConfigEntry[];
133
- /** List user-scope config keys with their values. Used to show inherited settings
134
- * in per-device views without implying those keys are device-local. */
135
- export declare function listUserConfig(): ConfigEntry[];
136
125
  /**
137
126
  * Set a config key (validated). Device-scope keys target this machine unless
138
127
  * `opts.device` names a peer; `opts.fleet` writes the fleet-wide defaults layer