@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
@@ -4,10 +4,8 @@ import type { AgentId, Meta, NativeAccountRecord } from './types.js';
4
4
  import { type DeviceProfile } from './devices/registry.js';
5
5
  import { type SharedAuthStatus } from './fleet-shared-state.js';
6
6
  import { selfConfiguredDeviceRole } from './device-config.js';
7
- import { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind } from './reserved-stores.js';
8
- export { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind, };
9
- /** Filter `names` down to the ones the active resource profile allows for `secrets`. */
10
- export declare function filterBundleNamesForActiveProfile(names: string[]): string[];
7
+ import { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind } from './reserved-stores.js';
8
+ export { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind, };
11
9
  /**
12
10
  * `SecretsContext.allowedBundles` for the active resource profile, or
13
11
  * `undefined` when no profile is active (full trust — the client's default).
@@ -36,15 +34,13 @@ export declare function assertRemoteBundleFlagsUnsupported(bundleName: string, h
36
34
  keysFlag: string;
37
35
  allowExpiredFlag: string;
38
36
  }): void;
39
- /** Each import/read-back SSH operation gets this deadline plus the SSH hard-kill grace. */
40
- export declare const AUTH_SYNC_PUSH_DEADLINE_MS = 20000;
41
37
  export interface AuthSyncDevice {
42
38
  name: string;
43
39
  reachable: boolean;
44
40
  pinned: boolean;
45
41
  remoteAuth: SharedAuthStatus | 'unknown';
46
42
  }
47
- export type AuthSyncPlanItem = {
43
+ type AuthSyncPlanItem = {
48
44
  action: 'push';
49
45
  device: string;
50
46
  } | {
@@ -53,7 +49,7 @@ export type AuthSyncPlanItem = {
53
49
  reason: string;
54
50
  };
55
51
  export declare function planAuthBundlePush(localAuthOk: boolean, localIsPublisher: boolean, devices: AuthSyncDevice[]): AuthSyncPlanItem[];
56
- export interface AuthSyncResult {
52
+ interface AuthSyncResult {
57
53
  publisher: string | null;
58
54
  stateChanged: boolean;
59
55
  pushed: string[];
@@ -66,7 +62,7 @@ export interface AuthSyncResult {
66
62
  message: string;
67
63
  }>;
68
64
  }
69
- export interface AuthSyncDeps {
65
+ interface AuthSyncDeps {
70
66
  inspectLocal?: () => {
71
67
  exists: boolean;
72
68
  ok: boolean;
@@ -90,7 +86,7 @@ export interface AuthSyncDeps {
90
86
  * over `zion`, and zion then skipped every peer as a non-publisher.
91
87
  */
92
88
  export declare function electPublisher(ready: readonly string[], roleOf: (name: string) => ReturnType<typeof selfConfiguredDeviceRole>): string | null;
93
- export interface PublishAuthVerdictOptions {
89
+ interface PublishAuthVerdictOptions {
94
90
  inspectLocal?: () => {
95
91
  exists: boolean;
96
92
  ok: boolean;
@@ -98,7 +94,7 @@ export interface PublishAuthVerdictOptions {
98
94
  localName?: string;
99
95
  userAgentsDir?: string;
100
96
  }
101
- export interface PublishAuthVerdictResult {
97
+ interface PublishAuthVerdictResult {
102
98
  device: string;
103
99
  status: SharedAuthStatus;
104
100
  changed: boolean;
@@ -135,7 +131,7 @@ export interface ReservedSyncPeer {
135
131
  /** bundle -> keys the peer already holds at the current fingerprint. Absent ⇒ none known. */
136
132
  presentKeys: Record<string, ReadonlySet<string>>;
137
133
  }
138
- export type ReservedSyncPlanItem = {
134
+ type ReservedSyncPlanItem = {
139
135
  action: 'push';
140
136
  device: string;
141
137
  bundle: string;
@@ -160,7 +156,6 @@ export declare function planReservedStoreSync(accounts: ReservedSyncAccount[], p
160
156
  * `workerCredential`) is not a sync target.
161
157
  */
162
158
  export declare function reservedSyncTargets(meta: Pick<Meta, 'accounts' | 'deviceAccounts'>): ReservedSyncAccount[];
163
- export declare function readDeliveryMemo(root?: string): Record<string, string>;
164
159
  /**
165
160
  * The keys a peer is KNOWN to hold, per bundle, from what we have delivered to it
166
161
  * (memo, matched by fingerprint) plus the coarse legacy-`auth` verdict: a peer
@@ -169,7 +164,7 @@ export declare function readDeliveryMemo(root?: string): Record<string, string>;
169
164
  * from the memo alone -- which is what makes a newly-added reserved account push.
170
165
  */
171
166
  export declare function peerPresentKeys(peer: string, accounts: ReservedSyncAccount[], memo: Record<string, string>, legacyAuthReady: boolean): Record<string, ReadonlySet<string>>;
172
- export interface ReservedStoreSyncResult {
167
+ interface ReservedStoreSyncResult {
173
168
  publisher: string | null;
174
169
  /** Legacy raw reserved items adopted into their bundle on this box before planning (local repair). */
175
170
  adopted: Array<{
@@ -190,7 +185,7 @@ export interface ReservedStoreSyncResult {
190
185
  message: string;
191
186
  }>;
192
187
  }
193
- export interface ReservedStoreSyncDeps {
188
+ interface ReservedStoreSyncDeps {
194
189
  listDevices?: () => DeviceProfile[];
195
190
  localName?: string;
196
191
  userAgentsDir?: string;
@@ -224,7 +219,7 @@ export interface ReservedStoreSyncDeps {
224
219
  * there is no second scheduler. The daemon runs this each tick.
225
220
  */
226
221
  export declare function syncReservedStores(deps?: ReservedStoreSyncDeps): Promise<ReservedStoreSyncResult>;
227
- export interface ReconcileWorkerSlotsResult {
222
+ interface ReconcileWorkerSlotsResult {
228
223
  provisioned: string[];
229
224
  skipped: Array<{
230
225
  accountId: string;
@@ -235,7 +230,7 @@ export interface ReconcileWorkerSlotsResult {
235
230
  message: string;
236
231
  }>;
237
232
  }
238
- export interface ReconcileWorkerSlotsDeps {
233
+ interface ReconcileWorkerSlotsDeps {
239
234
  selfRole?: ReturnType<typeof selfConfiguredDeviceRole>;
240
235
  readMetaFn?: () => Pick<Meta, 'accounts' | 'deviceAccounts'>;
241
236
  hasLocalKey?: (bundle: string, key: string) => boolean;
@@ -21,7 +21,7 @@ import { getCacheDir, getUserAgentsDir, readMeta } from './state.js';
21
21
  import { listNativeAccounts, readSlots } from './account-registry.js';
22
22
  import { claudeAccountTokenKey, isClaudeWorkerHomeSeeded, provisionWorkerSlot, readReservedCredential } from './claude-account-token.js';
23
23
  import { configuredDeviceRole, isHeadedDeviceRole, selfConfiguredDeviceRole } from './device-config.js';
24
- import { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, } from './reserved-stores.js';
24
+ import { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, } from './reserved-stores.js';
25
25
  // --- reserved per-harness credential stores (PHNX-3940 / PHNX-3989) --------
26
26
  //
27
27
  // Re-exported from the leaf module `reserved-stores.ts` rather than declared
@@ -31,7 +31,7 @@ import { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDL
31
31
  // ReferenceError under real ESM evaluation order, outside vitest's
32
32
  // mock-tolerant transform). Keep the public surface unchanged for existing
33
33
  // importers of `secrets-policy.js`.
34
- export { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, };
34
+ export { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, };
35
35
  // --- resource-profile -> allowedBundles (CTX-1) -----------------------------
36
36
  //
37
37
  // A resource profile scopes WHICH bundle names a run may reach. The standalone
@@ -40,7 +40,7 @@ export { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDL
40
40
  // every bounded request. Absent (no active profile) means full trust, matching
41
41
  // the client's own documented default.
42
42
  /** Filter `names` down to the ones the active resource profile allows for `secrets`. */
43
- export function filterBundleNamesForActiveProfile(names) {
43
+ function filterBundleNamesForActiveProfile(names) {
44
44
  return filterNamesForActiveResourceProfile('secrets', names);
45
45
  }
46
46
  /**
@@ -98,7 +98,7 @@ export function assertRemoteBundleFlagsUnsupported(bundleName, host, opts, flagL
98
98
  // async and kill-bounded so it never blocks the daemon event loop.
99
99
  // ---------------------------------------------------------------------------
100
100
  /** Each import/read-back SSH operation gets this deadline plus the SSH hard-kill grace. */
101
- export const AUTH_SYNC_PUSH_DEADLINE_MS = 20_000;
101
+ const AUTH_SYNC_PUSH_DEADLINE_MS = 20_000;
102
102
  export function planAuthBundlePush(localAuthOk, localIsPublisher, devices) {
103
103
  if (!localAuthOk) {
104
104
  return devices.map((device) => ({ action: 'skip', device: device.name, reason: 'no local file-backed auth bundle' }));
@@ -332,7 +332,7 @@ function deliveryMemoPath(root = getCacheDir()) {
332
332
  function memoKey(peer, bundle, key) {
333
333
  return `${normalizeHost(peer)} ${bundle} ${key}`;
334
334
  }
335
- export function readDeliveryMemo(root) {
335
+ function readDeliveryMemo(root) {
336
336
  try {
337
337
  const parsed = JSON.parse(fs.readFileSync(deliveryMemoPath(root), 'utf-8'));
338
338
  if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
@@ -29,8 +29,8 @@ export type BundleValue = string | {
29
29
  };
30
30
  /** Remote (bundle@host) push destination backend. */
31
31
  export type RemoteBackend = 'keychain' | 'file';
32
- export declare const SECRET_TYPES: readonly ["api-key", "token", "password", "url", "database-url", "ssh-key", "certificate", "webhook", "note"];
33
- export type SecretType = (typeof SECRET_TYPES)[number];
32
+ declare const SECRET_TYPES: readonly ["api-key", "token", "password", "url", "database-url", "ssh-key", "certificate", "webhook", "note"];
33
+ type SecretType = (typeof SECRET_TYPES)[number];
34
34
  /** Per-secret metadata; absent fields are omitted at write time. */
35
35
  export interface VarMeta {
36
36
  type?: SecretType;
@@ -194,3 +194,4 @@ export interface RcSecretFinding {
194
194
  /** The file-store master passphrase gets called out separately. */
195
195
  isMasterPassphrase: boolean;
196
196
  }
197
+ export {};
@@ -11,7 +11,7 @@
11
11
  * `secrets-client.ts` docblock).
12
12
  */
13
13
  // --- bundle document ---------------------------------------------------
14
- export const SECRET_TYPES = [
14
+ const SECRET_TYPES = [
15
15
  'api-key',
16
16
  'token',
17
17
  'password',
@@ -22,3 +22,4 @@ export const SECRET_TYPES = [
22
22
  'webhook',
23
23
  'note',
24
24
  ];
25
+ export {};
@@ -9,7 +9,7 @@
9
9
  // ENOTEMPTY the sweep exists to prevent, and nothing runs `agents upgrade` to
10
10
  // trigger that sweep in the meantime. Periodic cadence closes that gap
11
11
  // fleet-wide (via the daemon's self-heal service) and on demand via
12
- // `agents doctor --fix`.
12
+ // `agents sync`.
13
13
  //
14
14
  // The age guard is load-bearing: a staging dir can be legitimately mid-write
15
15
  // by a CONCURRENT upgrade this instant. Only a dir older than the guard is
@@ -1,11 +1,11 @@
1
1
  import type { HealCheck, HealCheckId, HealCadence, SelfHealReport } from './types.js';
2
2
  export declare const HEAL_CHECKS: HealCheck[];
3
- export interface SelfHealOptions {
3
+ interface SelfHealOptions {
4
4
  /** Restrict to these check ids; omit to run every registered check. */
5
5
  checks?: HealCheckId[];
6
6
  /** Only run checks whose cadence is in this set (daemon scheduling). */
7
7
  cadences?: HealCadence[];
8
- /** 'safe' (daemon default) or 'full' (doctor --fix). Default 'safe'. */
8
+ /** 'safe' (daemon default) or 'full' (agents sync). Default 'safe'. */
9
9
  mode?: 'safe' | 'full';
10
10
  /** Detect only — never write. Default false. */
11
11
  dryRun?: boolean;
@@ -20,3 +20,4 @@ export declare function selfHealChangedAnything(report: SelfHealReport): boolean
20
20
  export declare function selfHealNeedsAttention(report: SelfHealReport): boolean;
21
21
  /** One-line human summary, e.g. "shims: 2 fixed; path: 1 fixed". */
22
22
  export declare function summarizeSelfHeal(report: SelfHealReport): string;
23
+ export {};
@@ -2,7 +2,7 @@ export type HealCheckId = 'resources' | 'hook-runtime' | 'hook-manifest' | 'shim
2
2
  /** When the daemon schedules a check. */
3
3
  export type HealCadence = 'startup' | 'frequent' | 'periodic';
4
4
  export interface HealCtx {
5
- /** 'safe' = daemon (low-risk only); 'full' = doctor --fix (everything). */
5
+ /** 'safe' = daemon (low-risk only); 'full' = agents sync (everything). */
6
6
  mode: 'safe' | 'full';
7
7
  /** Detect only — never write. Powers `agents doctor` (read-only) and previews. */
8
8
  dryRun: boolean;
@@ -10,7 +10,7 @@
10
10
  // when `ctx.dryRun`), mirroring the existing resource heal (heal.ts) which computes
11
11
  // and applies together. `mode` gates how aggressive a repair may be: 'safe' (the
12
12
  // daemon default) fixes only low-risk drift and merely reports risky conditions;
13
- // 'full' (`agents doctor --fix`) applies everything.
13
+ // 'full' (`agents sync`) applies everything.
14
14
  /** Convenience: an all-clear result. */
15
15
  export function okResult() {
16
16
  return { fixed: [], needsAttention: [], ok: true };
@@ -307,7 +307,7 @@ export interface MultiInstallInventoryEntry {
307
307
  /** True for the copy that is currently executing. */
308
308
  running: boolean;
309
309
  /**
310
- * True when a bare `agents doctor --fix` deletes this copy (RUSH-2415:
310
+ * True when a bare `agents sync` deletes this copy (RUSH-2415:
311
311
  * npx-cache / unsafe-legacy / pre-1.22.30 with a fixed peer). False for the
312
312
  * running copy and for any duplicate --fix will not touch — a healthy
313
313
  * >=1.22.30 peer, or a pre-1.22.30 copy with no fixed peer to fall back to;
@@ -317,7 +317,7 @@ export interface MultiInstallInventoryEntry {
317
317
  }
318
318
  /**
319
319
  * The exact shell command that removes the install at `packageRoot` by hand —
320
- * the remedy for duplicates `doctor --fix` deliberately will not purge
320
+ * the remedy for duplicates `agents sync` deliberately will not purge
321
321
  * (RUSH-2705). `--prefix` pins the target tree no matter which npm binary
322
322
  * PATH resolves, mirroring installPackageIntoPrefix.
323
323
  */
@@ -347,7 +347,7 @@ export declare function isNpxCacheInstall(packageRoot: string): boolean;
347
347
  */
348
348
  export declare function isTouchIdStormFixedVersion(version: string): boolean;
349
349
  /**
350
- * Classify discovered installs that doctor --fix / upgrade may delete.
350
+ * Classify discovered installs that agents sync / upgrade may delete.
351
351
  *
352
352
  * Never marks the running package root. Auto-purge is limited to copies that
353
353
  * cannot be the intended primary install:
@@ -371,7 +371,7 @@ export declare function purgeRemovableAgentsCliInstalls(candidates: RemovableAge
371
371
  dryRun?: boolean;
372
372
  runningRoot?: string;
373
373
  }): PurgeRemovableInstallsResult;
374
- /** A detected duplicate that `doctor --fix` will not purge (RUSH-2705). */
374
+ /** A detected duplicate that `agents sync` will not purge (RUSH-2705). */
375
375
  export interface UnresolvedDuplicateInstall {
376
376
  packageRoot: string;
377
377
  version: string;
@@ -393,7 +393,7 @@ export interface RemediateStaleInstallsResult extends PurgeRemovableInstallsResu
393
393
  unresolved: UnresolvedDuplicateInstall[];
394
394
  }
395
395
  /**
396
- * Scan + classify + purge in one call. Used by `agents doctor --fix` and
396
+ * Scan + classify + purge in one call. Used by `agents sync` and
397
397
  * `agents upgrade` so both paths remediate the same set of latent copies.
398
398
  */
399
399
  export declare function remediateStaleAgentsCliInstalls(opts: {
@@ -669,7 +669,7 @@ function withRunningInstall(installs, runningRoot, runningVersion) {
669
669
  }
670
670
  /**
671
671
  * The exact shell command that removes the install at `packageRoot` by hand —
672
- * the remedy for duplicates `doctor --fix` deliberately will not purge
672
+ * the remedy for duplicates `agents sync` deliberately will not purge
673
673
  * (RUSH-2705). `--prefix` pins the target tree no matter which npm binary
674
674
  * PATH resolves, mirroring installPackageIntoPrefix.
675
675
  */
@@ -720,7 +720,7 @@ export function buildMultiInstallInventory(runningRoot, runningVersion, installs
720
720
  /** True when the package root lives under npm's `_npx` cache (ephemeral runs). */
721
721
  export function isNpxCacheInstall(packageRoot) {
722
722
  // Split on either separator so a POSIX-shaped path is still recognized when
723
- // this runs on Windows (doctor --fix / tests pass forward literal `_npx`
723
+ // this runs on Windows (agents sync / tests pass forward literal `_npx`
724
724
  // paths from other boxes). `path.sep` alone missed `/home/…/_npx/…` on win32.
725
725
  const parts = packageRoot.split(/[\\/]/);
726
726
  return parts.includes('_npx');
@@ -741,7 +741,7 @@ export function isTouchIdStormFixedVersion(version) {
741
741
  return compareVersions(version, TOUCH_ID_STORM_FIXED_SINCE) >= 0;
742
742
  }
743
743
  /**
744
- * Classify discovered installs that doctor --fix / upgrade may delete.
744
+ * Classify discovered installs that agents sync / upgrade may delete.
745
745
  *
746
746
  * Never marks the running package root. Auto-purge is limited to copies that
747
747
  * cannot be the intended primary install:
@@ -866,7 +866,7 @@ export function purgeRemovableAgentsCliInstalls(candidates, opts = {}) {
866
866
  return result;
867
867
  }
868
868
  /**
869
- * Scan + classify + purge in one call. Used by `agents doctor --fix` and
869
+ * Scan + classify + purge in one call. Used by `agents sync` and
870
870
  * `agents upgrade` so both paths remediate the same set of latent copies.
871
871
  */
872
872
  export function remediateStaleAgentsCliInstalls(opts) {
@@ -1,3 +1,4 @@
1
+ import { writerProcessView } from './process-view.js';
1
2
  /**
2
3
  * Active-session detection across every context an agent can run in:
3
4
  *
@@ -24,7 +25,7 @@ import { promisify } from 'util';
24
25
  import { listActiveTasks } from '../cloud/store.js';
25
26
  import { AgentManager } from '../teams/agents.js';
26
27
  import { getTerminalsDir } from '../state.js';
27
- import { readPidSessionEntry, listPidSessionEntries, prunePidSessionRegistry, sessionIdFromLivePid, isSessionIdShape, } from './pid-registry.js';
28
+ import { readLivePidSessionEntry as readPidSessionEntry, listPidSessionEntries, prunePidSessionRegistry, sessionIdFromLivePid, isSessionIdShape, } from './pid-registry.js';
28
29
  import { readSessionActorRecord, writeSessionAliasRecord } from './actor-sidecar.js';
29
30
  import { loadHookSessionIndex, resolveHookSessionRecord, readStateSessionRecord } from './hook-sessions.js';
30
31
  import { buildClaudeLabelMap, getAgentSessionDirs } from './discover.js';
@@ -1696,8 +1697,9 @@ export async function listTmuxAgentSessions() {
1696
1697
  // split) resolves to its own agent. Newest launch wins a pane (pid reuse), and
1697
1698
  // only live pids count — a dead agent's stale entry can't light up its old pane.
1698
1699
  const liveByPane = new Map();
1699
- for (const e of listPidSessionEntries()) {
1700
- if (!e.tmuxPane || !isPidAlive(e.pid, e.startedAtMs))
1700
+ for (const recorded of listPidSessionEntries()) {
1701
+ const e = readPidSessionEntry(recorded.pid);
1702
+ if (!e?.tmuxPane)
1701
1703
  continue;
1702
1704
  const prev = liveByPane.get(e.tmuxPane);
1703
1705
  if (!prev || e.startedAtMs > prev.startedAtMs)
@@ -1824,6 +1826,10 @@ export async function listTmuxAgentSessions() {
1824
1826
  * terminal/headless row for the same session id.
1825
1827
  */
1826
1828
  export async function getActiveSessions(opts = {}) {
1829
+ if (!writerProcessView()) {
1830
+ const { loadLocalActiveSessions } = await import('./session-cache.js');
1831
+ return (await loadLocalActiveSessions()).sessions;
1832
+ }
1827
1833
  const [tmuxAgents, teams, terminals, cloud] = await Promise.all([
1828
1834
  listTmuxAgentSessions().catch(() => []),
1829
1835
  listTeamsActive({ localOnly: opts.localOnly }).catch(() => []),
@@ -1,5 +1,5 @@
1
1
  import { type SessionRunMode } from './types.js';
2
- export interface SessionActorRecord {
2
+ interface SessionActorRecord {
3
3
  sessionId: string;
4
4
  /** Resolved actor id (`resolveActor().id`) — the responsible human/agent. */
5
5
  actor?: string;
@@ -36,7 +36,7 @@ export interface SessionActorRecord {
36
36
  */
37
37
  export declare function writeSessionActorRecord(record: SessionActorRecord): void;
38
38
  export declare function writeSessionAliasRecord(sessionId: string, alias: string): void;
39
- export type SessionAliasResolution = {
39
+ type SessionAliasResolution = {
40
40
  kind: 'resolved';
41
41
  sessionId: string;
42
42
  } | {
@@ -56,3 +56,4 @@ export declare function readSessionActorRecord(sessionId: string): SessionActorR
56
56
  * yields an empty map.
57
57
  */
58
58
  export declare function loadSessionActorIndex(): Map<string, SessionActorRecord>;
59
+ export {};
@@ -8,8 +8,6 @@
8
8
  import type { SessionMeta, SessionArtifact } from './types.js';
9
9
  /** Parse a session and return metadata for every file written or edited during it. */
10
10
  export declare function discoverArtifacts(meta: SessionMeta): SessionArtifact[];
11
- /** Refuse to load artifact files larger than this. Returns '' silently above the cap. */
12
- export declare const ARTIFACT_MAX_BYTES = 50000000;
13
11
  /** Read the current contents of an artifact file from disk. Rejects symlinks. */
14
12
  export declare function readArtifact(artifact: SessionArtifact): string;
15
13
  /** Resolve a user-provided name to an artifact by exact path, basename, or path suffix. */
@@ -65,7 +65,7 @@ export function discoverArtifacts(meta) {
65
65
  return artifacts;
66
66
  }
67
67
  /** Refuse to load artifact files larger than this. Returns '' silently above the cap. */
68
- export const ARTIFACT_MAX_BYTES = 50_000_000;
68
+ const ARTIFACT_MAX_BYTES = 50_000_000;
69
69
  /** Read the current contents of an artifact file from disk. Rejects symlinks. */
70
70
  export function readArtifact(artifact) {
71
71
  const stat = fs.lstatSync(artifact.path);
@@ -5,13 +5,7 @@
5
5
  * summarize what actually happened instead of printing a wall of shell.
6
6
  */
7
7
  export type BashCategory = 'vcs' | 'build-test' | 'install' | 'remote' | 'http' | 'media' | 'upscaling' | 'metadata' | 'probe' | 'search' | 'shell' | 'wait' | 'other';
8
- export interface BashToolInfo {
9
- category: BashCategory;
10
- signal: 'high' | 'mid' | 'low';
11
- action: string;
12
- aliases?: string[];
13
- }
14
- export interface BashCommandInfo {
8
+ interface BashCommandInfo {
15
9
  tool: string;
16
10
  category: BashCategory;
17
11
  subcommand: string;
@@ -66,3 +60,4 @@ export declare function detectBashMilestone(command: string): {
66
60
  * Human-readable category label for renderers.
67
61
  */
68
62
  export declare function categoryLabel(category: BashCategory): string;
63
+ export {};
@@ -19,7 +19,6 @@
19
19
  */
20
20
  import { type SyncAgentSpec } from './sync/agents.js';
21
21
  export declare const BUNDLE_KIND = "agents-session-bundle";
22
- export declare const BUNDLE_VERSION = 1;
23
22
  /** First line of a bundle: what it is and how the bodies are encoded. */
24
23
  export interface BundleHeader {
25
24
  kind: typeof BUNDLE_KIND;
@@ -71,7 +70,7 @@ export interface FileToExport {
71
70
  absPath: string;
72
71
  label?: string;
73
72
  }
74
- export interface BuildRecordOpts {
73
+ interface BuildRecordOpts {
75
74
  /** Scrub secrets from the body before hashing/sealing (default-on at the command layer). */
76
75
  redact: boolean;
77
76
  /** Non-null → seal each body with this key; null → plaintext bodies. */
@@ -85,8 +84,6 @@ export interface BuildRecordOpts {
85
84
  }
86
85
  /** Look up the sync spec for an agent id (undefined → agent not sync-representable). */
87
86
  export declare function specForAgent(agentId: string): SyncAgentSpec | undefined;
88
- /** True when an agent's sessions can be represented in a bundle (has a sync spec). */
89
- export declare function isExportableAgent(agentId: string): boolean;
90
87
  /**
91
88
  * Read one file and turn it into a bundle record. The hash and size are always
92
89
  * computed over the PLAINTEXT (post-redaction) body, so they equal what lands on
@@ -128,7 +125,7 @@ export interface ImportPlanItem {
128
125
  targetPath: string;
129
126
  status: ImportStatus;
130
127
  }
131
- export interface PlanImportOpts {
128
+ interface PlanImportOpts {
132
129
  /** Key to open encrypted record bodies (null → only plaintext bodies readable). */
133
130
  decryptKey: Buffer | null;
134
131
  }
@@ -152,7 +149,7 @@ export interface WriteResult {
152
149
  /** Records for agents with no sync spec. */
153
150
  unknown: number;
154
151
  }
155
- export interface WriteImportOpts {
152
+ interface WriteImportOpts {
156
153
  overwrite: boolean;
157
154
  decryptKey: Buffer | null;
158
155
  }
@@ -162,3 +159,4 @@ export interface WriteImportOpts {
162
159
  * are counted and skipped.
163
160
  */
164
161
  export declare function writeImport(plan: ImportPlanItem[], opts: WriteImportOpts): WriteResult;
162
+ export {};
@@ -24,7 +24,7 @@ import { SYNC_AGENTS, mirrorPath } from './sync/agents.js';
24
24
  import { redactSecrets } from '../redact.js';
25
25
  import { encryptTranscript, decryptTranscriptBody } from './sync/transcript-crypto.js';
26
26
  export const BUNDLE_KIND = 'agents-session-bundle';
27
- export const BUNDLE_VERSION = 1;
27
+ const BUNDLE_VERSION = 1;
28
28
  /** SHA-256 of a file body, used for the bundle's dedup/conflict check on import. */
29
29
  function hashContent(content) {
30
30
  return crypto.createHash('sha256').update(content).digest('hex');
@@ -33,10 +33,6 @@ function hashContent(content) {
33
33
  export function specForAgent(agentId) {
34
34
  return SYNC_AGENTS.find(s => s.id === agentId);
35
35
  }
36
- /** True when an agent's sessions can be represented in a bundle (has a sync spec). */
37
- export function isExportableAgent(agentId) {
38
- return specForAgent(agentId) !== undefined;
39
- }
40
36
  /**
41
37
  * Read one file and turn it into a bundle record. The hash and size are always
42
38
  * computed over the PLAINTEXT (post-redaction) body, so they equal what lands on
@@ -10,8 +10,6 @@
10
10
  * GET /api/v1/cloud-runs/:id/session.jsonl → raw captured jsonl
11
11
  */
12
12
  import type { SessionMeta } from './types.js';
13
- export declare function assertContained(candidate: string, rootDir: string): string;
14
- export declare function validateCloudExecutionId(executionId: string): string;
15
13
  /**
16
14
  * List cloud executions the user has captured sessions for. Includes
17
15
  * completed + needs_review + failed; an empty session_path means capture
@@ -28,5 +26,3 @@ export declare function discoverCloudSessions(options?: {
28
26
  export declare function ensureCloudSessionCached(executionId: string, destPath?: string): Promise<string>;
29
27
  /** True if filePath points into the cloud session cache dir. */
30
28
  export declare function isCloudSessionPath(filePath: string): boolean;
31
- /** Extract execution_id from a cloud cache path. */
32
- export declare function executionIdFromCloudPath(filePath: string): string | null;
@@ -57,7 +57,7 @@ function agentToFormat(agent) {
57
57
  return 'opencode';
58
58
  return null;
59
59
  }
60
- export function assertContained(candidate, rootDir) {
60
+ function assertContained(candidate, rootDir) {
61
61
  const root = path.resolve(rootDir);
62
62
  const resolved = path.resolve(root, candidate);
63
63
  if (!resolved.startsWith(root + path.sep)) {
@@ -65,7 +65,7 @@ export function assertContained(candidate, rootDir) {
65
65
  }
66
66
  return resolved;
67
67
  }
68
- export function validateCloudExecutionId(executionId) {
68
+ function validateCloudExecutionId(executionId) {
69
69
  if (!CLOUD_EXECUTION_ID_RE.test(executionId)) {
70
70
  throw new Error(`Invalid cloud execution_id: ${JSON.stringify(executionId)}`);
71
71
  }
@@ -145,16 +145,3 @@ export function isCloudSessionPath(filePath) {
145
145
  const resolved = path.resolve(filePath);
146
146
  return resolved.startsWith(root + path.sep);
147
147
  }
148
- /** Extract execution_id from a cloud cache path. */
149
- export function executionIdFromCloudPath(filePath) {
150
- if (!isCloudSessionPath(filePath))
151
- return null;
152
- const rel = path.relative(CLOUD_CACHE_DIR, filePath);
153
- const parts = rel.split(path.sep);
154
- try {
155
- return parts[0] ? validateCloudExecutionId(parts[0]) : null;
156
- }
157
- catch {
158
- return null;
159
- }
160
- }
@@ -30,8 +30,9 @@ export declare const SCHEMA_VERSION = 50;
30
30
  * genuine first-user-turn extractor was added.
31
31
  * v4 (PHNX-3621 leftover) invalidates Grok rows stamped before the bounded
32
32
  * chat_history.jsonl prefix read filled firstUserMessage.
33
+ * v5 (PHNX-3939) restores first-meta Codex fork ownership, including cold files.
33
34
  */
34
- export declare const CONTENT_INDEX_VERSION = 4;
35
+ export declare const CONTENT_INDEX_VERSION = 5;
35
36
  /**
36
37
  * Bumping this invalidates every cached facet row without touching the schema
37
38
  * version, so a change to the extraction logic (a new metric, a corrected bucket)
@@ -16,7 +16,7 @@ import { query as queryEvents, queryToolUsageForSessions } from '../feed/events.
16
16
  import { machineForSessionFile } from '../origin-machine.js';
17
17
  import { loadSessionActorIndex, readSessionActorRecord } from './actor-sidecar.js';
18
18
  import { scanEventToolCalls } from './tool-calls.js';
19
- import { persistToolCalls, planEventToolResume, toolEvidenceSourcePath } from './tool-store.js';
19
+ import { persistToolCalls, planEventToolResume, purgeToolCalls, toolEvidenceSourcePath } from './tool-store.js';
20
20
  import { buildClaudeAccountIndex, resolveClaudeAccount } from './claude-accounts.js';
21
21
  import { extractBackgroundShells, extractSkills, extractSlashCommands, harnessTracksBackgroundShells, isSubAgentTool, } from './highlights.js';
22
22
  import { resolveResource } from '../resources.js';
@@ -45,8 +45,9 @@ export const SCHEMA_VERSION = 50;
45
45
  * genuine first-user-turn extractor was added.
46
46
  * v4 (PHNX-3621 leftover) invalidates Grok rows stamped before the bounded
47
47
  * chat_history.jsonl prefix read filled firstUserMessage.
48
+ * v5 (PHNX-3939) restores first-meta Codex fork ownership, including cold files.
48
49
  */
49
- export const CONTENT_INDEX_VERSION = 4;
50
+ export const CONTENT_INDEX_VERSION = 5;
50
51
  /**
51
52
  * Bump to force `agents sessions backfill resources` to re-derive every
52
53
  * session's skill/slash-command tallies on its next run (resource_scan_ledger
@@ -1452,8 +1453,17 @@ export function getDB() {
1452
1453
  db.exec(`CREATE INDEX IF NOT EXISTS idx_sessions_mirror_synced ON sessions(mirror_synced_at)`);
1453
1454
  db.exec(`CREATE INDEX IF NOT EXISTS idx_sessions_routine_run_id ON sessions(routine_run_id)`);
1454
1455
  const sessionColumns = db.prepare('PRAGMA table_info(sessions)').all();
1455
- if (!sessionColumns.some(column => column.name === 'account_id'))
1456
- db.exec('ALTER TABLE sessions ADD COLUMN account_id TEXT');
1456
+ if (['account_id', 'phoenix_id'].some(name => !sessionColumns.some(column => column.name === name))) {
1457
+ // Partial upgrades can stamp the current version before every column exists.
1458
+ // Recheck under the writer lock so concurrent openers cannot add it twice.
1459
+ db.transaction(() => {
1460
+ const columns = db.prepare('PRAGMA table_info(sessions)').all();
1461
+ if (!columns.some(column => column.name === 'account_id'))
1462
+ db.exec('ALTER TABLE sessions ADD COLUMN account_id TEXT');
1463
+ if (!columns.some(column => column.name === 'phoenix_id'))
1464
+ db.exec('ALTER TABLE sessions ADD COLUMN phoenix_id TEXT');
1465
+ })();
1466
+ }
1457
1467
  // Account attribution repair. Two ways a Claude row ends up wrong even at v33:
1458
1468
  // an older CLI (whose INSERT does not name the column) writes NULL, and a DB
1459
1469
  // migrated by a build that predates the "clear the stale email on a dark row" fix
@@ -2333,6 +2343,30 @@ export function upsertSession(meta, content, scan, assistantContent = '') {
2333
2343
  });
2334
2344
  txn();
2335
2345
  }
2346
+ /** A verified Codex rollout has one native owner. An older last-meta scan may
2347
+ * have indexed its child bytes under the parent id. Reconcile only paths that
2348
+ * were successfully written, after the whole batch, so a real parent rollout
2349
+ * repaired in the same transaction keeps its own row regardless of scan order. */
2350
+ function reconcileCodexFileOwners(db, metas) {
2351
+ const owners = new Map(metas.filter(meta => meta.agent === 'codex' && meta.filePath).map(meta => [meta.filePath, meta.id]));
2352
+ const paths = [...owners.keys()];
2353
+ for (let i = 0; i < paths.length; i += 500) {
2354
+ const chunk = paths.slice(i, i + 500);
2355
+ const rows = db.prepare(`SELECT id, file_path FROM sessions WHERE agent = 'codex' AND file_path IN (${chunk.map(() => '?').join(',')})`)
2356
+ .all(...chunk);
2357
+ for (const row of rows) {
2358
+ if (owners.get(row.file_path) === row.id)
2359
+ continue;
2360
+ db.prepare('DELETE FROM sessions WHERE id = ?').run(row.id);
2361
+ for (const table of ['session_text', 'session_preview_cache', 'session_summaries', 'session_insights', 'session_topics', 'session_phenotypes', 'session_resource_usage', 'resource_scan_ledger']) {
2362
+ db.prepare(`DELETE FROM ${table} WHERE session_id = ?`).run(row.id);
2363
+ }
2364
+ // The tool ledger has a unique file path too; release the wrong binding
2365
+ // before the child evidence is persisted below. Transcript files stay put.
2366
+ purgeToolCalls(db, row.id);
2367
+ }
2368
+ }
2369
+ }
2336
2370
  /** Batch-upsert sessions with their FTS5 content and scan stamps in a single transaction. */
2337
2371
  export function upsertSessionsBatch(entries) {
2338
2372
  if (entries.length === 0)
@@ -2582,6 +2616,7 @@ export function upsertSessionsBatch(entries) {
2582
2616
  }
2583
2617
  }
2584
2618
  }
2619
+ reconcileCodexFileOwners(db, writtenEntries.map(entry => entry.meta));
2585
2620
  });
2586
2621
  txn(enrichedEntries);
2587
2622
  // Tool evidence shares the transcript parse above but owns an independent