@phnx-labs/agents-cli 1.22.35 → 1.22.37

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 (487) hide show
  1. package/CHANGELOG.md +666 -2
  2. package/README.md +75 -35
  3. package/dist/bin/agents +0 -0
  4. package/dist/bootstrap.d.ts +15 -0
  5. package/dist/bootstrap.js +1211 -0
  6. package/dist/commands/accounts.d.ts +4 -11
  7. package/dist/commands/accounts.js +159 -27
  8. package/dist/commands/attach.js +17 -4
  9. package/dist/commands/audit.d.ts +8 -8
  10. package/dist/commands/audit.js +57 -47
  11. package/dist/commands/browser.js +15 -11
  12. package/dist/commands/cloud.js +1 -1
  13. package/dist/commands/commands.js +0 -11
  14. package/dist/commands/computer-actions.js +33 -0
  15. package/dist/commands/computer-sessions-picker.d.ts +21 -0
  16. package/dist/commands/computer-sessions-picker.js +141 -0
  17. package/dist/commands/computer.d.ts +16 -0
  18. package/dist/commands/computer.js +37 -0
  19. package/dist/commands/config.d.ts +17 -0
  20. package/dist/commands/config.js +401 -0
  21. package/dist/commands/cp.d.ts +84 -0
  22. package/dist/commands/cp.js +231 -0
  23. package/dist/commands/daemon.js +243 -14
  24. package/dist/commands/detach-core.d.ts +1 -1
  25. package/dist/commands/detach-core.js +12 -2
  26. package/dist/commands/detach.js +1 -1
  27. package/dist/commands/doctor.js +64 -5
  28. package/dist/commands/events.d.ts +24 -12
  29. package/dist/commands/events.js +144 -28
  30. package/dist/commands/exec.js +85 -41
  31. package/dist/commands/feed.d.ts +1 -1
  32. package/dist/commands/feed.js +16 -8
  33. package/dist/commands/focus.d.ts +33 -1
  34. package/dist/commands/focus.js +177 -17
  35. package/dist/commands/funnel.d.ts +1 -1
  36. package/dist/commands/go.js +9 -8
  37. package/dist/commands/harness-wizard.d.ts +1 -0
  38. package/dist/commands/harness-wizard.js +18 -20
  39. package/dist/commands/harness.d.ts +2 -0
  40. package/dist/commands/harness.js +59 -26
  41. package/dist/commands/hooks.js +0 -11
  42. package/dist/commands/inspect.d.ts +94 -1
  43. package/dist/commands/inspect.js +866 -40
  44. package/dist/commands/lease.d.ts +4 -4
  45. package/dist/commands/lease.js +6 -6
  46. package/dist/commands/login.js +0 -13
  47. package/dist/commands/logs.d.ts +2 -2
  48. package/dist/commands/logs.js +2 -2
  49. package/dist/commands/mcp.js +7 -2
  50. package/dist/commands/memory.js +7 -2
  51. package/dist/commands/message.d.ts +1 -1
  52. package/dist/commands/message.js +37 -6
  53. package/dist/commands/models.js +4 -0
  54. package/dist/commands/monitors.d.ts +0 -1
  55. package/dist/commands/monitors.js +199 -16
  56. package/dist/commands/open.d.ts +18 -0
  57. package/dist/commands/open.js +57 -0
  58. package/dist/commands/packages.js +2 -107
  59. package/dist/commands/plugins.js +6 -3
  60. package/dist/commands/profiles.d.ts +1 -0
  61. package/dist/commands/profiles.js +16 -160
  62. package/dist/commands/projects.d.ts +28 -0
  63. package/dist/commands/projects.js +125 -5
  64. package/dist/commands/reconnect.js +9 -3
  65. package/dist/commands/repo.js +42 -1
  66. package/dist/commands/resource-view.d.ts +17 -0
  67. package/dist/commands/resource-view.js +36 -14
  68. package/dist/commands/resume.js +9 -2
  69. package/dist/commands/routines.d.ts +0 -2
  70. package/dist/commands/routines.js +473 -289
  71. package/dist/commands/secrets.js +52 -9
  72. package/dist/commands/sessions-export.d.ts +47 -0
  73. package/dist/commands/sessions-export.js +116 -6
  74. package/dist/commands/sessions-import.d.ts +17 -0
  75. package/dist/commands/sessions-import.js +114 -6
  76. package/dist/commands/sessions-migrate.d.ts +27 -0
  77. package/dist/commands/sessions-migrate.js +50 -9
  78. package/dist/commands/sessions-picker.js +23 -4
  79. package/dist/commands/sessions-resume.d.ts +5 -3
  80. package/dist/commands/sessions-resume.js +30 -8
  81. package/dist/commands/sessions-watch.d.ts +2 -0
  82. package/dist/commands/sessions-watch.js +53 -0
  83. package/dist/commands/sessions.d.ts +66 -3
  84. package/dist/commands/sessions.js +298 -47
  85. package/dist/commands/set.d.ts +1 -1
  86. package/dist/commands/set.js +2 -2
  87. package/dist/commands/setup-browser.js +2 -2
  88. package/dist/commands/setup-mine.js +0 -1
  89. package/dist/commands/setup-preferences.js +1 -1
  90. package/dist/commands/setup-share.js +34 -4
  91. package/dist/commands/setup.d.ts +5 -0
  92. package/dist/commands/setup.js +26 -0
  93. package/dist/commands/share.d.ts +67 -0
  94. package/dist/commands/share.js +275 -12
  95. package/dist/commands/skills.js +0 -11
  96. package/dist/commands/snapshot.js +1 -1
  97. package/dist/commands/ssh.d.ts +18 -0
  98. package/dist/commands/ssh.js +549 -210
  99. package/dist/commands/sync.d.ts +5 -0
  100. package/dist/commands/sync.js +212 -32
  101. package/dist/commands/teams.d.ts +13 -0
  102. package/dist/commands/teams.js +187 -30
  103. package/dist/commands/tickets.d.ts +2 -0
  104. package/dist/commands/tickets.js +43 -0
  105. package/dist/commands/update.js +2 -4
  106. package/dist/commands/usage.js +5 -3
  107. package/dist/commands/versions.js +11 -5
  108. package/dist/commands/view.js +15 -7
  109. package/dist/commands/webhook.d.ts +2 -2
  110. package/dist/commands/webhook.js +7 -7
  111. package/dist/index.d.ts +18 -2
  112. package/dist/index.js +53 -1264
  113. package/dist/lib/account-catalog.d.ts +18 -0
  114. package/dist/lib/account-catalog.js +38 -0
  115. package/dist/lib/account-provider-registry.d.ts +18 -0
  116. package/dist/lib/account-provider-registry.js +59 -0
  117. package/dist/lib/account-registry.d.ts +40 -0
  118. package/dist/lib/account-registry.js +239 -0
  119. package/dist/lib/account-schema.d.ts +44 -0
  120. package/dist/lib/account-schema.js +91 -0
  121. package/dist/lib/account-state-service.d.ts +21 -0
  122. package/dist/lib/account-state-service.js +60 -0
  123. package/dist/lib/activity.d.ts +1 -1
  124. package/dist/lib/activity.js +8 -1
  125. package/dist/lib/add-dir.d.ts +80 -0
  126. package/dist/lib/add-dir.js +241 -0
  127. package/dist/lib/agent-cli-commands.d.ts +11 -0
  128. package/dist/lib/agent-cli-commands.js +30 -0
  129. package/dist/lib/agents.js +44 -36
  130. package/dist/lib/answer-router.js +1 -1
  131. package/dist/lib/audit/log.d.ts +10 -27
  132. package/dist/lib/audit/log.js +20 -33
  133. package/dist/lib/auth-health.d.ts +9 -2
  134. package/dist/lib/auth-health.js +42 -9
  135. package/dist/lib/auto-pull-worker.js +7 -3
  136. package/dist/lib/auto-pull.d.ts +44 -3
  137. package/dist/lib/auto-pull.js +88 -5
  138. package/dist/lib/binary-shadow.d.ts +28 -0
  139. package/dist/lib/binary-shadow.js +121 -0
  140. package/dist/lib/brand.js +9 -3
  141. package/dist/lib/browser/ipc.d.ts +30 -0
  142. package/dist/lib/browser/ipc.js +81 -4
  143. package/dist/lib/browser/profiles.d.ts +3 -2
  144. package/dist/lib/browser/profiles.js +65 -22
  145. package/dist/lib/browser/service.d.ts +4 -0
  146. package/dist/lib/browser/service.js +30 -3
  147. package/dist/lib/browser/sessions-list.d.ts +22 -2
  148. package/dist/lib/browser/sessions-list.js +54 -6
  149. package/dist/lib/browser/stream.d.ts +2 -0
  150. package/dist/lib/browser/stream.js +1 -0
  151. package/dist/lib/browser/types.d.ts +19 -0
  152. package/dist/lib/byok-usage.d.ts +9 -2
  153. package/dist/lib/byok-usage.js +133 -31
  154. package/dist/lib/cli-entry.d.ts +11 -0
  155. package/dist/lib/cli-entry.js +46 -0
  156. package/dist/lib/cloud/host.d.ts +1 -1
  157. package/dist/lib/cloud/host.js +2 -2
  158. package/dist/lib/cloud/registry.js +1 -1
  159. package/dist/lib/cloud/types.d.ts +1 -1
  160. package/dist/lib/commands.d.ts +2 -0
  161. package/dist/lib/commands.js +2 -0
  162. package/dist/lib/computer/sessions-list.d.ts +150 -0
  163. package/dist/lib/computer/sessions-list.js +363 -0
  164. package/dist/lib/config-keys.d.ts +86 -0
  165. package/dist/lib/config-keys.js +193 -0
  166. package/dist/lib/config-machine-keys.d.ts +12 -0
  167. package/dist/lib/config-machine-keys.js +17 -0
  168. package/dist/lib/config-transfer.js +3 -4
  169. package/dist/lib/crabbox/cli.d.ts +2 -2
  170. package/dist/lib/crabbox/cli.js +3 -3
  171. package/dist/lib/daemon-health.d.ts +22 -0
  172. package/dist/lib/daemon-health.js +33 -3
  173. package/dist/lib/daemon-services.d.ts +50 -0
  174. package/dist/lib/daemon-services.js +147 -0
  175. package/dist/lib/daemon-ticks.d.ts +35 -66
  176. package/dist/lib/daemon-ticks.js +77 -159
  177. package/dist/lib/daemon.d.ts +72 -4
  178. package/dist/lib/daemon.js +792 -202
  179. package/dist/lib/deeplink/register.d.ts +49 -0
  180. package/dist/lib/deeplink/register.js +253 -0
  181. package/dist/lib/deeplink/url.d.ts +34 -0
  182. package/dist/lib/deeplink/url.js +78 -0
  183. package/dist/lib/device-config.d.ts +124 -29
  184. package/dist/lib/device-config.js +346 -141
  185. package/dist/lib/devices/config-migration.d.ts +42 -0
  186. package/dist/lib/devices/config-migration.js +203 -0
  187. package/dist/lib/devices/connect.js +14 -7
  188. package/dist/lib/devices/doctor-findings.d.ts +4 -1
  189. package/dist/lib/devices/doctor-findings.js +20 -1
  190. package/dist/lib/devices/harness-inventory.d.ts +11 -2
  191. package/dist/lib/devices/harness-inventory.js +0 -0
  192. package/dist/lib/devices/health.d.ts +1 -1
  193. package/dist/lib/devices/health.js +1 -1
  194. package/dist/lib/devices/pending.d.ts +22 -1
  195. package/dist/lib/devices/pending.js +67 -2
  196. package/dist/lib/devices/registry.d.ts +0 -25
  197. package/dist/lib/devices/registry.js +2 -83
  198. package/dist/lib/devices/resolve-profile.d.ts +20 -0
  199. package/dist/lib/devices/resolve-profile.js +44 -0
  200. package/dist/lib/devices/rollout-verify.d.ts +101 -0
  201. package/dist/lib/devices/rollout-verify.js +193 -0
  202. package/dist/lib/devices/ssh-config.js +10 -6
  203. package/dist/lib/event-families.d.ts +28 -0
  204. package/dist/lib/event-families.js +159 -0
  205. package/dist/lib/event-stream.d.ts +9 -1
  206. package/dist/lib/event-stream.js +26 -9
  207. package/dist/lib/events.d.ts +9 -1
  208. package/dist/lib/events.js +21 -6
  209. package/dist/lib/exec.d.ts +30 -0
  210. package/dist/lib/exec.js +219 -121
  211. package/dist/lib/feed-broadcast.d.ts +25 -0
  212. package/dist/lib/feed-broadcast.js +33 -0
  213. package/dist/lib/feed.d.ts +1 -1
  214. package/dist/lib/feed.js +12 -2
  215. package/dist/lib/fleet/capture.js +15 -0
  216. package/dist/lib/fleet/manifest.js +9 -0
  217. package/dist/lib/fleet/types.d.ts +9 -0
  218. package/dist/lib/fleet-status.js +10 -8
  219. package/dist/lib/git.d.ts +20 -6
  220. package/dist/lib/git.js +121 -17
  221. package/dist/lib/hosts/dispatch.d.ts +8 -3
  222. package/dist/lib/hosts/dispatch.js +29 -3
  223. package/dist/lib/hosts/logs.d.ts +2 -2
  224. package/dist/lib/hosts/logs.js +2 -2
  225. package/dist/lib/hosts/option.js +1 -1
  226. package/dist/lib/hosts/passthrough.d.ts +2 -3
  227. package/dist/lib/hosts/passthrough.js +10 -24
  228. package/dist/lib/hosts/progress.js +2 -2
  229. package/dist/lib/hosts/providers/devices.d.ts +3 -3
  230. package/dist/lib/hosts/providers/devices.js +18 -12
  231. package/dist/lib/hosts/ready.d.ts +5 -1
  232. package/dist/lib/hosts/ready.js +9 -3
  233. package/dist/lib/hosts/reconcile.d.ts +2 -2
  234. package/dist/lib/hosts/reconcile.js +2 -2
  235. package/dist/lib/hosts/registry.js +14 -9
  236. package/dist/lib/hosts/remote-cmd.js +1 -1
  237. package/dist/lib/hosts/remote-os.d.ts +9 -6
  238. package/dist/lib/hosts/remote-os.js +13 -6
  239. package/dist/lib/hosts/routing-flag.d.ts +23 -0
  240. package/dist/lib/hosts/routing-flag.js +41 -0
  241. package/dist/lib/hosts/run-target.js +1 -1
  242. package/dist/lib/hosts/session-index.js +1 -1
  243. package/dist/lib/hosts/tasks.d.ts +6 -6
  244. package/dist/lib/hosts/tasks.js +4 -4
  245. package/dist/lib/hosts/types.js +1 -2
  246. package/dist/lib/installations/resolve.js +2 -8
  247. package/dist/lib/isolation-boundary-report.js +0 -1
  248. package/dist/lib/linear-cache.d.ts +7 -0
  249. package/dist/lib/linear-cache.js +31 -4
  250. package/dist/lib/linear-project-counts.d.ts +1 -1
  251. package/dist/lib/linear-project-counts.js +2 -3
  252. package/dist/lib/linear-projects.js +1 -1
  253. package/dist/lib/loop.d.ts +2 -2
  254. package/dist/lib/loop.js +1 -1
  255. package/dist/lib/mailbox-target.d.ts +1 -1
  256. package/dist/lib/mailbox-target.js +1 -1
  257. package/dist/lib/manifest.js +7 -4
  258. package/dist/lib/menubar/MenubarHelper.app/Contents/CodeResources +0 -0
  259. package/dist/lib/menubar/MenubarHelper.app/Contents/MacOS/MenubarHelper +0 -0
  260. package/dist/lib/menubar/snapshot.d.ts +3 -2
  261. package/dist/lib/menubar/snapshot.js +6 -2
  262. package/dist/lib/migrate-fold.d.ts +33 -0
  263. package/dist/lib/migrate-fold.js +130 -0
  264. package/dist/lib/migrate.d.ts +34 -34
  265. package/dist/lib/migrate.js +106 -128
  266. package/dist/lib/model-tier-overrides.d.ts +1 -1
  267. package/dist/lib/model-tier-overrides.js +15 -2
  268. package/dist/lib/monitors/config.d.ts +17 -3
  269. package/dist/lib/monitors/config.js +52 -18
  270. package/dist/lib/monitors/engine.d.ts +32 -1
  271. package/dist/lib/monitors/engine.js +94 -11
  272. package/dist/lib/monitors/fingerprint.d.ts +46 -0
  273. package/dist/lib/monitors/fingerprint.js +100 -0
  274. package/dist/lib/monitors/remote.d.ts +47 -0
  275. package/dist/lib/monitors/remote.js +81 -0
  276. package/dist/lib/monitors/state.d.ts +39 -0
  277. package/dist/lib/monitors/state.js +56 -0
  278. package/dist/lib/onepassword.d.ts +17 -0
  279. package/dist/lib/onepassword.js +52 -22
  280. package/dist/lib/open-url.js +1 -1
  281. package/dist/lib/picker.d.ts +14 -2
  282. package/dist/lib/picker.js +35 -13
  283. package/dist/lib/placement.d.ts +1 -1
  284. package/dist/lib/placement.js +1 -1
  285. package/dist/lib/pr-land-detach.d.ts +32 -0
  286. package/dist/lib/pr-land-detach.js +79 -0
  287. package/dist/lib/profiles-presets.js +13 -0
  288. package/dist/lib/profiles.d.ts +2 -0
  289. package/dist/lib/profiles.js +44 -1
  290. package/dist/lib/project-focus.d.ts +1 -1
  291. package/dist/lib/project-focus.js +1 -1
  292. package/dist/lib/project-probe.d.ts +4 -1
  293. package/dist/lib/project-probe.js +5 -4
  294. package/dist/lib/project-resources.js +2 -18
  295. package/dist/lib/project-root.d.ts +16 -0
  296. package/dist/lib/project-root.js +20 -2
  297. package/dist/lib/projects.d.ts +20 -1
  298. package/dist/lib/projects.js +78 -1
  299. package/dist/lib/refresh-coordinator.d.ts +24 -0
  300. package/dist/lib/refresh-coordinator.js +52 -0
  301. package/dist/lib/registry.d.ts +2 -2
  302. package/dist/lib/registry.js +1 -1
  303. package/dist/lib/resource-aliases.d.ts +13 -0
  304. package/dist/lib/resource-aliases.js +26 -0
  305. package/dist/lib/resources/types.d.ts +1 -1
  306. package/dist/lib/resources.d.ts +16 -0
  307. package/dist/lib/resources.js +66 -10
  308. package/dist/lib/rotate.d.ts +3 -4
  309. package/dist/lib/rotate.js +4 -5
  310. package/dist/lib/routine-activation.d.ts +22 -2
  311. package/dist/lib/routine-activation.js +63 -16
  312. package/dist/lib/routine-context.d.ts +9 -2
  313. package/dist/lib/routine-context.js +21 -6
  314. package/dist/lib/routines-project.d.ts +58 -48
  315. package/dist/lib/routines-project.js +190 -159
  316. package/dist/lib/routines.d.ts +41 -6
  317. package/dist/lib/routines.js +92 -34
  318. package/dist/lib/run-defaults.d.ts +5 -0
  319. package/dist/lib/run-defaults.js +11 -1
  320. package/dist/lib/runner.d.ts +10 -8
  321. package/dist/lib/runner.js +122 -39
  322. package/dist/lib/secrets/Agents CLI.app/Contents/CodeResources +0 -0
  323. package/dist/lib/secrets/Agents CLI.app/Contents/MacOS/Agents CLI +0 -0
  324. package/dist/lib/secrets/agent.d.ts +10 -3
  325. package/dist/lib/secrets/agent.js +43 -8
  326. package/dist/lib/secrets/bundles.d.ts +1 -0
  327. package/dist/lib/secrets/bundles.js +92 -80
  328. package/dist/lib/secrets/index.js +32 -9
  329. package/dist/lib/secrets/install-helper.d.ts +4 -4
  330. package/dist/lib/secrets/install-helper.js +4 -4
  331. package/dist/lib/secrets/push.d.ts +40 -6
  332. package/dist/lib/secrets/push.js +58 -11
  333. package/dist/lib/secrets/read-backoff.d.ts +1 -1
  334. package/dist/lib/secrets/read-backoff.js +1 -1
  335. package/dist/lib/secrets/remote.d.ts +24 -0
  336. package/dist/lib/secrets/remote.js +54 -4
  337. package/dist/lib/self-update.d.ts +108 -0
  338. package/dist/lib/self-update.js +276 -1
  339. package/dist/lib/session/active.d.ts +89 -5
  340. package/dist/lib/session/active.js +165 -10
  341. package/dist/lib/session/actor-sidecar.d.ts +1 -1
  342. package/dist/lib/session/actor-sidecar.js +2 -1
  343. package/dist/lib/session/db.d.ts +176 -2
  344. package/dist/lib/session/db.js +484 -17
  345. package/dist/lib/session/discover.js +27 -4
  346. package/dist/lib/session/hook-sessions.js +2 -2
  347. package/dist/lib/session/host-link.d.ts +2 -2
  348. package/dist/lib/session/host-link.js +2 -2
  349. package/dist/lib/session/pid-registry.d.ts +21 -0
  350. package/dist/lib/session/pid-registry.js +57 -0
  351. package/dist/lib/session/remote-active.js +15 -1
  352. package/dist/lib/session/remote.js +2 -2
  353. package/dist/lib/session/session-cache.d.ts +14 -7
  354. package/dist/lib/session/session-cache.js +51 -9
  355. package/dist/lib/session/state.d.ts +2 -2
  356. package/dist/lib/session/state.js +1 -1
  357. package/dist/lib/session/sync/config.d.ts +10 -10
  358. package/dist/lib/session/sync/config.js +10 -10
  359. package/dist/lib/session/sync/r2.d.ts +34 -0
  360. package/dist/lib/session/sync/r2.js +123 -0
  361. package/dist/lib/session/throughput.d.ts +1 -1
  362. package/dist/lib/session/throughput.js +1 -1
  363. package/dist/lib/session/types.d.ts +23 -1
  364. package/dist/lib/session/types.js +15 -0
  365. package/dist/lib/session/viewing-in.d.ts +1 -1
  366. package/dist/lib/session/viewing-in.js +1 -1
  367. package/dist/lib/session/watch.d.ts +101 -0
  368. package/dist/lib/session/watch.js +242 -0
  369. package/dist/lib/share/config.d.ts +4 -0
  370. package/dist/lib/share/config.js +1 -0
  371. package/dist/lib/share/provision.d.ts +38 -0
  372. package/dist/lib/share/provision.js +50 -0
  373. package/dist/lib/share/publish.d.ts +40 -1
  374. package/dist/lib/share/publish.js +116 -3
  375. package/dist/lib/share/worker-template.js +71 -6
  376. package/dist/lib/shims.d.ts +17 -3
  377. package/dist/lib/shims.js +98 -26
  378. package/dist/lib/signin-badge.js +3 -2
  379. package/dist/lib/skills.js +2 -0
  380. package/dist/lib/smart-launch.d.ts +8 -8
  381. package/dist/lib/smart-launch.js +80 -59
  382. package/dist/lib/ssh-exec.d.ts +1 -1
  383. package/dist/lib/ssh-exec.js +1 -1
  384. package/dist/lib/staleness/prune.d.ts +88 -0
  385. package/dist/lib/staleness/prune.js +69 -0
  386. package/dist/lib/staleness/registry.d.ts +1 -1
  387. package/dist/lib/staleness/writers/commands.js +34 -2
  388. package/dist/lib/staleness/writers/hooks.js +16 -0
  389. package/dist/lib/staleness/writers/kinds.d.ts +6 -0
  390. package/dist/lib/staleness/writers/skills.js +19 -0
  391. package/dist/lib/staleness/writers/subagents.d.ts +2 -3
  392. package/dist/lib/staleness/writers/subagents.js +0 -4
  393. package/dist/lib/staleness/writers/types.d.ts +32 -0
  394. package/dist/lib/startup/command-registry.d.ts +6 -12
  395. package/dist/lib/startup/command-registry.js +11 -31
  396. package/dist/lib/startup/dev-build.d.ts +10 -0
  397. package/dist/lib/startup/dev-build.js +13 -1
  398. package/dist/lib/startup/spellcheck.d.ts +18 -0
  399. package/dist/lib/startup/spellcheck.js +45 -0
  400. package/dist/lib/state.d.ts +36 -9
  401. package/dist/lib/state.js +96 -46
  402. package/dist/lib/subagents-registry.d.ts +0 -7
  403. package/dist/lib/subagents-registry.js +38 -65
  404. package/dist/lib/subagents.d.ts +0 -33
  405. package/dist/lib/subagents.js +0 -75
  406. package/dist/lib/sync-umbrella.js +1 -1
  407. package/dist/lib/teams/agents.d.ts +41 -1
  408. package/dist/lib/teams/agents.js +187 -9
  409. package/dist/lib/teams/api.d.ts +11 -1
  410. package/dist/lib/teams/api.js +11 -2
  411. package/dist/lib/teams/delivery.d.ts +41 -0
  412. package/dist/lib/teams/delivery.js +60 -0
  413. package/dist/lib/teams/registry.d.ts +14 -0
  414. package/dist/lib/teams/registry.js +51 -1
  415. package/dist/lib/teams/remoteWorktree.d.ts +19 -0
  416. package/dist/lib/teams/remoteWorktree.js +29 -0
  417. package/dist/lib/teams/scheduler.d.ts +1 -1
  418. package/dist/lib/teams/scheduler.js +1 -1
  419. package/dist/lib/teams/worktree.d.ts +24 -0
  420. package/dist/lib/teams/worktree.js +42 -0
  421. package/dist/lib/terminal/backends/vscodium-agent.d.ts +10 -1
  422. package/dist/lib/terminal/backends/vscodium-agent.js +16 -5
  423. package/dist/lib/terminal/engine.d.ts +4 -0
  424. package/dist/lib/terminal/engine.js +8 -2
  425. package/dist/lib/terminal/types.d.ts +21 -2
  426. package/dist/lib/testdata/refresh-coordinator-worker.d.ts +1 -0
  427. package/dist/lib/testdata/refresh-coordinator-worker.js +23 -0
  428. package/dist/lib/tickets/list.d.ts +53 -0
  429. package/dist/lib/tickets/list.js +153 -0
  430. package/dist/lib/tmux/orphan-reap.d.ts +320 -0
  431. package/dist/lib/tmux/orphan-reap.js +644 -0
  432. package/dist/lib/tmux/session.d.ts +68 -3
  433. package/dist/lib/tmux/session.js +95 -5
  434. package/dist/lib/triggers/handlers.d.ts +20 -0
  435. package/dist/lib/triggers/handlers.js +6 -1
  436. package/dist/lib/types.d.ts +46 -34
  437. package/dist/lib/usage-fleet.d.ts +32 -0
  438. package/dist/lib/usage-fleet.js +125 -0
  439. package/dist/lib/usage-refresh.d.ts +3 -3
  440. package/dist/lib/usage-refresh.js +19 -16
  441. package/dist/lib/usage.d.ts +51 -47
  442. package/dist/lib/usage.js +145 -153
  443. package/dist/lib/version-duplicates.js +2 -2
  444. package/dist/lib/versions.d.ts +56 -13
  445. package/dist/lib/versions.js +195 -45
  446. package/dist/lib/watchdog/log.d.ts +1 -1
  447. package/dist/lib/watchdog/log.js +3 -3
  448. package/dist/lib/watchdog/rotate.d.ts +6 -6
  449. package/dist/lib/watchdog/rotate.js +6 -6
  450. package/dist/lib/workflows.d.ts +1 -1
  451. package/dist/lib/yaml-io.d.ts +47 -0
  452. package/dist/lib/yaml-io.js +55 -0
  453. package/package.json +2 -1
  454. package/scripts/install-helper.js +2 -2
  455. package/scripts/postinstall.js +23 -20
  456. package/dist/commands/defaults.d.ts +0 -7
  457. package/dist/commands/defaults.js +0 -107
  458. package/dist/commands/export.d.ts +0 -11
  459. package/dist/commands/export.js +0 -215
  460. package/dist/commands/helper.d.ts +0 -12
  461. package/dist/commands/helper.js +0 -87
  462. package/dist/commands/hosts.d.ts +0 -11
  463. package/dist/commands/hosts.js +0 -330
  464. package/dist/commands/lock.d.ts +0 -12
  465. package/dist/commands/lock.js +0 -70
  466. package/dist/commands/pull.d.ts +0 -17
  467. package/dist/commands/pull.js +0 -39
  468. package/dist/commands/push.d.ts +0 -14
  469. package/dist/commands/push.js +0 -30
  470. package/dist/commands/wallet.d.ts +0 -20
  471. package/dist/commands/wallet.js +0 -216
  472. package/dist/commands/worktree.d.ts +0 -19
  473. package/dist/commands/worktree.js +0 -272
  474. package/dist/lib/account-labels.d.ts +0 -24
  475. package/dist/lib/account-labels.js +0 -72
  476. package/dist/lib/auto-dispatch-linear.d.ts +0 -18
  477. package/dist/lib/auto-dispatch-linear.js +0 -107
  478. package/dist/lib/auto-dispatch-provider.d.ts +0 -10
  479. package/dist/lib/auto-dispatch-provider.js +0 -30
  480. package/dist/lib/auto-dispatch.d.ts +0 -93
  481. package/dist/lib/auto-dispatch.js +0 -128
  482. package/dist/lib/export.d.ts +0 -72
  483. package/dist/lib/export.js +0 -269
  484. package/dist/lib/lock.d.ts +0 -93
  485. package/dist/lib/lock.js +0 -207
  486. package/dist/lib/wallet/index.d.ts +0 -78
  487. package/dist/lib/wallet/index.js +0 -253
@@ -20,6 +20,7 @@
20
20
  import * as fs from 'fs';
21
21
  import * as path from 'path';
22
22
  import * as yaml from 'yaml';
23
+ import { stringifyDoc } from './yaml-io.js';
23
24
  import chalk from 'chalk';
24
25
  import { relTime, truncate } from './format.js';
25
26
  import { getActivityDir, getUserAgentsDir } from './state.js';
@@ -1561,7 +1562,13 @@ export function ensureActivityLogHook(userAgentsDir = getUserAgentsDir()) {
1561
1562
  }
1562
1563
  if (installed) {
1563
1564
  const tmpYaml = `${agentsYamlPath}.${process.pid}.tmp`;
1564
- fs.writeFileSync(tmpYaml, String(yamlDoc));
1565
+ // `flowCollectionPadding: false` matches the committed formatting — see the
1566
+ // twin `ensureFeedPublishHook` in feed.ts. Without it, re-emitting a
1567
+ // committed flow node (`[a, b]` -> `[ a, b ]`) leaves the git-backed
1568
+ // `~/.agents` tree permanently dirty and blocks `agents repo pull`
1569
+ // fleet-wide (RUSH-2505). This writer runs back-to-back with the feed one
1570
+ // on the `agents feed` path, so both must round-trip cleanly.
1571
+ fs.writeFileSync(tmpYaml, stringifyDoc(yamlDoc));
1565
1572
  fs.renameSync(tmpYaml, agentsYamlPath);
1566
1573
  }
1567
1574
  return { installed };
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Cross-harness application of project / `--add-dir` directory grants.
3
+ *
4
+ * A multi-repo project binds several checkouts; the primary becomes cwd and the
5
+ * rest become grants so the agent can read and write the siblings. How a grant
6
+ * lands depends on the harness:
7
+ *
8
+ * - `native-flag` — Claude, Kimi, Cursor: repeatable `--add-dir <path>`
9
+ * - `codex-policy` — Codex: folded into the named edit profile's workspace_roots
10
+ * (handled in buildExecCommand / codex-policy, not here)
11
+ * - `grok-sandbox` — Grok: OS sandbox is off by default (siblings already
12
+ * writable); when a non-off sandbox is active, write a
13
+ * project-local profile with `read_write` and select it.
14
+ * Always appends a short `--rules` note so the model knows
15
+ * the siblings are in scope.
16
+ * - `none` — harness has no multi-root surface; grants are ignored
17
+ * (caller may warn). Not a configuration mistake — the CLI
18
+ * has nowhere to put the grant.
19
+ *
20
+ * Capability honesty: only strategies that actually change the launch count as
21
+ * support. Silent no-ops stay `none`.
22
+ */
23
+ import type { AgentId } from './types.js';
24
+ export type AddDirStrategy = 'native-flag' | 'codex-policy' | 'grok-sandbox' | 'none';
25
+ /** How each harness consumes directory grants. Keep in lockstep with apply* below. */
26
+ export declare const ADD_DIR_STRATEGY: Record<AgentId, AddDirStrategy>;
27
+ /** Agents whose launch command is widened by applyAddDirs (excludes codex — policy path). */
28
+ export declare function agentsWithNativeOrGrokAddDir(): AgentId[];
29
+ /** Expand `~` / `$HOME` and de-dupe, preserving order. */
30
+ export declare function normalizeAddDirs(dirs: string[] | undefined): string[];
31
+ /**
32
+ * Append native `--add-dir` flags for harnesses that take them (Claude, Kimi, Cursor).
33
+ * No-op for other strategies — call sites route by ADD_DIR_STRATEGY.
34
+ */
35
+ export declare function appendNativeAddDirFlags(cmd: string[], dirs: string[]): void;
36
+ /** Profile name written into `.grok/sandbox.toml` under the run cwd. */
37
+ export declare const GROK_PROJECT_SANDBOX_PROFILE = "agents-project";
38
+ /**
39
+ * Active Grok sandbox profile from the env, if a non-off profile is set.
40
+ * Returns null when sandbox is off / unset / devbox (no widen needed).
41
+ *
42
+ * Only `GROK_SANDBOX` is consulted — a profile set only in config.toml is not
43
+ * visible here (Grok does not expose it on the CLI), so those runs still get
44
+ * the rules note but not a custom widen. Prefer env when launching sandboxed.
45
+ */
46
+ export declare function grokActiveSandboxProfile(env?: NodeJS.ProcessEnv): string | null;
47
+ /** Whether Grok's active sandbox needs a custom profile with extra read_write. */
48
+ export declare function grokNeedsSandboxWiden(env?: NodeJS.ProcessEnv): boolean;
49
+ /**
50
+ * Ensure `.grok/sandbox.toml` under `cwd` defines `[profiles.agents-project]`
51
+ * with `read_write` covering every grant, **extending the active base profile**
52
+ * (so `GROK_SANDBOX=strict` does not silently widen to `workspace`).
53
+ * Returns the profile name to pass as `--sandbox`, or null when not needed.
54
+ *
55
+ * Idempotent: rewrites only the managed profile block.
56
+ */
57
+ export declare function ensureGrokProjectSandboxProfile(cwd: string, dirs: string[], opts?: {
58
+ extendsBase?: string;
59
+ }): string | null;
60
+ /**
61
+ * Short rules blob so Grok's model treats sibling dirs as in-scope.
62
+ * Wording tracks whether we actually widened the sandbox for write access.
63
+ */
64
+ export declare function grokAddDirRules(dirs: string[], opts?: {
65
+ writeGranted?: boolean;
66
+ }): string;
67
+ /**
68
+ * Apply directory grants on the argv for harnesses handled here.
69
+ * Codex is intentionally excluded — its path lives next to codexPolicyArgs.
70
+ *
71
+ * @returns true when any argv / on-disk change was made for the grants
72
+ */
73
+ export declare function applyAddDirs(agent: AgentId, cmd: string[], dirs: string[] | undefined, opts?: {
74
+ cwd?: string;
75
+ env?: NodeJS.ProcessEnv;
76
+ }): boolean;
77
+ /** Whether this harness effectively consumes directory grants. */
78
+ export declare function supportsAddDir(agent: AgentId): boolean;
79
+ /** One-line note for harnesses that ignore grants (used by callers that want to warn). */
80
+ export declare function addDirUnsupportedNote(agent: AgentId): string | null;
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Cross-harness application of project / `--add-dir` directory grants.
3
+ *
4
+ * A multi-repo project binds several checkouts; the primary becomes cwd and the
5
+ * rest become grants so the agent can read and write the siblings. How a grant
6
+ * lands depends on the harness:
7
+ *
8
+ * - `native-flag` — Claude, Kimi, Cursor: repeatable `--add-dir <path>`
9
+ * - `codex-policy` — Codex: folded into the named edit profile's workspace_roots
10
+ * (handled in buildExecCommand / codex-policy, not here)
11
+ * - `grok-sandbox` — Grok: OS sandbox is off by default (siblings already
12
+ * writable); when a non-off sandbox is active, write a
13
+ * project-local profile with `read_write` and select it.
14
+ * Always appends a short `--rules` note so the model knows
15
+ * the siblings are in scope.
16
+ * - `none` — harness has no multi-root surface; grants are ignored
17
+ * (caller may warn). Not a configuration mistake — the CLI
18
+ * has nowhere to put the grant.
19
+ *
20
+ * Capability honesty: only strategies that actually change the launch count as
21
+ * support. Silent no-ops stay `none`.
22
+ */
23
+ import * as fs from 'fs';
24
+ import * as path from 'path';
25
+ import { expandLocalHome } from './project-root.js';
26
+ /** How each harness consumes directory grants. Keep in lockstep with apply* below. */
27
+ export const ADD_DIR_STRATEGY = {
28
+ claude: 'native-flag',
29
+ kimi: 'native-flag',
30
+ cursor: 'native-flag',
31
+ codex: 'codex-policy',
32
+ grok: 'grok-sandbox',
33
+ // No multi-root CLI surface today (single --dir / project path).
34
+ opencode: 'none',
35
+ gemini: 'none',
36
+ pi: 'none',
37
+ openclaw: 'none',
38
+ copilot: 'none',
39
+ amp: 'none',
40
+ kiro: 'none',
41
+ goose: 'none',
42
+ antigravity: 'none',
43
+ droid: 'none',
44
+ hermes: 'none',
45
+ muse: 'none',
46
+ warp: 'none',
47
+ };
48
+ /** Agents whose launch command is widened by applyAddDirs (excludes codex — policy path). */
49
+ export function agentsWithNativeOrGrokAddDir() {
50
+ return Object.keys(ADD_DIR_STRATEGY).filter((id) => ADD_DIR_STRATEGY[id] === 'native-flag' || ADD_DIR_STRATEGY[id] === 'grok-sandbox');
51
+ }
52
+ /** Expand `~` / `$HOME` and de-dupe, preserving order. */
53
+ export function normalizeAddDirs(dirs) {
54
+ if (!dirs?.length)
55
+ return [];
56
+ const seen = new Set();
57
+ const out = [];
58
+ for (const raw of dirs) {
59
+ const expanded = expandLocalHome(raw);
60
+ if (!expanded || seen.has(expanded))
61
+ continue;
62
+ seen.add(expanded);
63
+ out.push(expanded);
64
+ }
65
+ return out;
66
+ }
67
+ /**
68
+ * Append native `--add-dir` flags for harnesses that take them (Claude, Kimi, Cursor).
69
+ * No-op for other strategies — call sites route by ADD_DIR_STRATEGY.
70
+ */
71
+ export function appendNativeAddDirFlags(cmd, dirs) {
72
+ for (const dir of dirs) {
73
+ cmd.push('--add-dir', dir);
74
+ }
75
+ }
76
+ /** Profile name written into `.grok/sandbox.toml` under the run cwd. */
77
+ export const GROK_PROJECT_SANDBOX_PROFILE = 'agents-project';
78
+ /**
79
+ * Active Grok sandbox profile from the env, if a non-off profile is set.
80
+ * Returns null when sandbox is off / unset / devbox (no widen needed).
81
+ *
82
+ * Only `GROK_SANDBOX` is consulted — a profile set only in config.toml is not
83
+ * visible here (Grok does not expose it on the CLI), so those runs still get
84
+ * the rules note but not a custom widen. Prefer env when launching sandboxed.
85
+ */
86
+ export function grokActiveSandboxProfile(env = process.env) {
87
+ const raw = (env.GROK_SANDBOX ?? '').trim();
88
+ if (!raw)
89
+ return null;
90
+ const lower = raw.toLowerCase();
91
+ if (lower === 'off' || lower === 'devbox')
92
+ return null;
93
+ // Never extend our own managed profile (would recurse).
94
+ if (lower === GROK_PROJECT_SANDBOX_PROFILE.toLowerCase())
95
+ return 'workspace';
96
+ return raw;
97
+ }
98
+ /** Whether Grok's active sandbox needs a custom profile with extra read_write. */
99
+ export function grokNeedsSandboxWiden(env = process.env) {
100
+ return grokActiveSandboxProfile(env) !== null;
101
+ }
102
+ /**
103
+ * Ensure `.grok/sandbox.toml` under `cwd` defines `[profiles.agents-project]`
104
+ * with `read_write` covering every grant, **extending the active base profile**
105
+ * (so `GROK_SANDBOX=strict` does not silently widen to `workspace`).
106
+ * Returns the profile name to pass as `--sandbox`, or null when not needed.
107
+ *
108
+ * Idempotent: rewrites only the managed profile block.
109
+ */
110
+ export function ensureGrokProjectSandboxProfile(cwd, dirs, opts = {}) {
111
+ if (!dirs.length)
112
+ return null;
113
+ if (!cwd)
114
+ return null;
115
+ const base = opts.extendsBase ?? 'workspace';
116
+ // Refuse to extend ourselves or an empty name.
117
+ const extendsBase = !base || base.toLowerCase() === GROK_PROJECT_SANDBOX_PROFILE.toLowerCase()
118
+ ? 'workspace'
119
+ : base;
120
+ const grokDir = path.join(cwd, '.grok');
121
+ const sandboxPath = path.join(grokDir, 'sandbox.toml');
122
+ const readWriteLines = dirs
123
+ .map((d) => ` ${JSON.stringify(d)},`)
124
+ .join('\n');
125
+ const managedBlock = [
126
+ '# BEGIN agents-cli managed — project multi-repo grants (do not edit by hand)',
127
+ `[profiles.${GROK_PROJECT_SANDBOX_PROFILE}]`,
128
+ `extends = ${JSON.stringify(extendsBase)}`,
129
+ 'read_write = [',
130
+ readWriteLines,
131
+ ']',
132
+ '# END agents-cli managed',
133
+ '',
134
+ ].join('\n');
135
+ let existing = '';
136
+ try {
137
+ existing = fs.readFileSync(sandboxPath, 'utf-8');
138
+ }
139
+ catch {
140
+ // create fresh
141
+ }
142
+ const begin = '# BEGIN agents-cli managed';
143
+ const end = '# END agents-cli managed';
144
+ let next;
145
+ const beginIdx = existing.indexOf(begin);
146
+ const endIdx = existing.indexOf(end);
147
+ if (beginIdx !== -1 && endIdx !== -1 && endIdx > beginIdx) {
148
+ // Replace through end of the end-marker line
149
+ const afterEnd = existing.indexOf('\n', endIdx);
150
+ const endCut = afterEnd === -1 ? existing.length : afterEnd + 1;
151
+ next = existing.slice(0, beginIdx) + managedBlock + existing.slice(endCut);
152
+ }
153
+ else if (existing.trim()) {
154
+ // If a hand-written [profiles.agents-project] already exists without our
155
+ // markers, refuse to append a second block with the same name.
156
+ const bare = new RegExp(`\\[profiles\\.${GROK_PROJECT_SANDBOX_PROFILE}\\]`);
157
+ if (bare.test(existing)) {
158
+ return null;
159
+ }
160
+ next = existing.replace(/\s*$/, '\n\n') + managedBlock;
161
+ }
162
+ else {
163
+ next = managedBlock;
164
+ }
165
+ fs.mkdirSync(grokDir, { recursive: true });
166
+ fs.writeFileSync(sandboxPath, next, 'utf-8');
167
+ return GROK_PROJECT_SANDBOX_PROFILE;
168
+ }
169
+ /**
170
+ * Short rules blob so Grok's model treats sibling dirs as in-scope.
171
+ * Wording tracks whether we actually widened the sandbox for write access.
172
+ */
173
+ export function grokAddDirRules(dirs, opts = {}) {
174
+ const list = dirs.map((d) => `- ${d}`).join('\n');
175
+ const access = opts.writeGranted === false
176
+ ? 'intended as first-class workspace roots (OS sandbox may still restrict writes unless GROK_SANDBOX is set so agents-cli can widen it)'
177
+ : 'read + write';
178
+ return [
179
+ `Project sibling directories (part of this multi-repo project; ${access}):`,
180
+ list,
181
+ 'Treat these as first-class workspace roots alongside the primary cwd.',
182
+ ].join('\n');
183
+ }
184
+ /**
185
+ * Apply directory grants on the argv for harnesses handled here.
186
+ * Codex is intentionally excluded — its path lives next to codexPolicyArgs.
187
+ *
188
+ * @returns true when any argv / on-disk change was made for the grants
189
+ */
190
+ export function applyAddDirs(agent, cmd, dirs, opts = {}) {
191
+ const normalized = normalizeAddDirs(dirs);
192
+ if (normalized.length === 0)
193
+ return false;
194
+ const strategy = ADD_DIR_STRATEGY[agent];
195
+ if (strategy === 'native-flag') {
196
+ appendNativeAddDirFlags(cmd, normalized);
197
+ return true;
198
+ }
199
+ if (strategy === 'grok-sandbox') {
200
+ const env = opts.env ?? process.env;
201
+ const activeBase = grokActiveSandboxProfile(env);
202
+ let writeGranted = true; // default off sandbox = unrestricted FS
203
+ if (activeBase) {
204
+ const cwd = opts.cwd ?? process.cwd();
205
+ const profile = ensureGrokProjectSandboxProfile(cwd, normalized, {
206
+ extendsBase: activeBase,
207
+ });
208
+ if (profile) {
209
+ // Drop a prior --sandbox <x> pair so the managed profile wins.
210
+ for (let i = cmd.length - 2; i >= 0; i--) {
211
+ if (cmd[i] === '--sandbox') {
212
+ cmd.splice(i, 2);
213
+ }
214
+ }
215
+ cmd.push('--sandbox', profile);
216
+ writeGranted = true;
217
+ }
218
+ else {
219
+ // Could not write the profile (e.g. hand-owned agents-project block).
220
+ writeGranted = false;
221
+ }
222
+ }
223
+ // Model awareness always — even when the OS sandbox is off.
224
+ cmd.push('--rules', grokAddDirRules(normalized, { writeGranted }));
225
+ return true;
226
+ }
227
+ // codex-policy / none — not applied here
228
+ return false;
229
+ }
230
+ /** Whether this harness effectively consumes directory grants. */
231
+ export function supportsAddDir(agent) {
232
+ const s = ADD_DIR_STRATEGY[agent];
233
+ return s === 'native-flag' || s === 'codex-policy' || s === 'grok-sandbox';
234
+ }
235
+ /** One-line note for harnesses that ignore grants (used by callers that want to warn). */
236
+ export function addDirUnsupportedNote(agent) {
237
+ if (supportsAddDir(agent))
238
+ return null;
239
+ return (`${agent} has no multi-root / --add-dir surface; project sibling directory ` +
240
+ `grants are ignored (cwd only). Claude, Codex, Cursor, Kimi, and Grok consume them.`);
241
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Agent CLI binary names — the `cliCommand` field of each harness in AGENTS.
3
+ *
4
+ * Leaf module with zero imports. brand.ts uses this for reservedBrandNames so
5
+ * the eager index.ts → brand.js graph never pulls agents.ts / versions.ts on
6
+ * every invocation (RUSH-2331). agents.ts AGENTS[*].cliCommand values are
7
+ * pinned equal by agent-cli-commands.test.ts — when a harness is added or
8
+ * renamed, both this list and AGENTS must change together.
9
+ */
10
+ /** Every managed harness CLI binary name (no `agents` / `ag`). */
11
+ export declare const AGENT_CLI_COMMANDS: readonly string[];
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Agent CLI binary names — the `cliCommand` field of each harness in AGENTS.
3
+ *
4
+ * Leaf module with zero imports. brand.ts uses this for reservedBrandNames so
5
+ * the eager index.ts → brand.js graph never pulls agents.ts / versions.ts on
6
+ * every invocation (RUSH-2331). agents.ts AGENTS[*].cliCommand values are
7
+ * pinned equal by agent-cli-commands.test.ts — when a harness is added or
8
+ * renamed, both this list and AGENTS must change together.
9
+ */
10
+ /** Every managed harness CLI binary name (no `agents` / `ag`). */
11
+ export const AGENT_CLI_COMMANDS = [
12
+ 'claude',
13
+ 'codex',
14
+ 'gemini',
15
+ 'cursor-agent',
16
+ 'opencode',
17
+ 'omp',
18
+ 'openclaw',
19
+ 'copilot',
20
+ 'amp',
21
+ 'kiro-cli',
22
+ 'goose',
23
+ 'agy',
24
+ 'grok',
25
+ 'kimi',
26
+ 'droid',
27
+ 'hermes',
28
+ 'muse',
29
+ 'warp',
30
+ ];
@@ -654,7 +654,12 @@ export const AGENTS = {
654
654
  skills: true,
655
655
  commands: false,
656
656
  plugins: true,
657
- subagents: true, // YAML agent files under ~/.kimi-code/agents/ (see transformSubagentForKimi)
657
+ // Claude-shaped agent markdown under ~/.kimi-code/agents/. kimi-code
658
+ // discovers that dir from `USER_BRAND_DIRS = ["agents"]` (agent-file
659
+ // discovery, added in 0.29.0); 0.28.x and older compile their four agent
660
+ // profiles into the bundle with no filesystem loader at all, so a synced
661
+ // file there is never read.
662
+ subagents: { since: '0.29.0' },
658
663
  rules: { file: 'AGENTS.md' },
659
664
  workflows: true,
660
665
  memory: false,
@@ -859,27 +864,32 @@ export const AGENTS = {
859
864
  interactiveRepl: true,
860
865
  },
861
866
  },
862
- // Warp Agent CLI (`oz`) — the standalone coding-agent CLI on Warp's "Oz"
863
- // platform (the same shared Warp binary invoked via the `oz` symlink). Native
864
- // binary via `brew install --cask oz` (macOS) / `oz-stable` apt|yum|pacman
865
- // package (Linux); self-updating, no npm package. Config lives under `~/.warp/`
866
- // (`.mcp.json`, `skills/`, `tab_configs/`, `worktrees/`, `remote-server`).
867
- // Headless: `oz agent run --prompt "<task>" [--model <id>]` (local) /
868
- // `oz agent run-cloud` (cloud). Auth: `oz login` (browser OAuth) or a
869
- // `WARP_API_KEY` env token for headless/CI (`oz api-key create`). Rules/context
870
- // file is `AGENTS.md` (also reads WARP.md / CLAUDE.md). Autonomy is governed by
871
- // the selected agent profile (`--profile`), not a per-run permission flag.
872
- // Sessions/conversations are stored SERVER-SIDE (retrieved with auth via
873
- // `oz run conversation get <id>`), so there is no local transcript for
874
- // `agents sessions` to index warp is intentionally absent from SESSION_AGENTS.
875
- // Docs: https://docs.warp.dev/reference/cli
867
+ // Warp Agent CLI (`warp`) — Warp's standalone interactive TUI coding agent
868
+ // (docs.warp.dev/cli). Installed by the official cross-platform installer
869
+ // `curl -fsSL https://app.warp.dev/download/agent-cli | bash` (Windows: the
870
+ // sibling agent-cli.ps1), which drops a self-updating `warp` binary at
871
+ // ~/.local/bin/warp NOT the older `oz` platform runner (brew cask `oz` /
872
+ // apt `oz-stable`), a separate headless product that no longer matches this
873
+ // CLI. Config lives under `~/.warp/` (`.mcp.json`, `skills/`, `tui/`). It is
874
+ // interactive-only: bare `warp` opens the TUI (streamed responses, diffs,
875
+ // inline approvals). There is NO headless one-shot form the documented
876
+ // flags are --api-key / --auto-approve / --resume <token> /
877
+ // --set-provider-api-key / --clear-provider-api-key / --version / --help; no
878
+ // -p/--prompt, no --model (model is the `/model` picker), no JSON output.
879
+ // Auth: interactive browser sign-in on launch, or the `WARP_API_KEY` env
880
+ // token / `--api-key` for CI. Rules/context file is `AGENTS.md` (also reads
881
+ // WARP.md / CLAUDE.md). Conversations sync SERVER-SIDE to the Warp/Oz
882
+ // platform (resume a prior one with `warp --resume <token>`), so there is no
883
+ // local transcript for `agents sessions` to index — warp is intentionally
884
+ // absent from SESSION_AGENTS.
885
+ // Docs: https://docs.warp.dev/cli/quickstart
876
886
  warp: {
877
887
  id: 'warp',
878
888
  name: 'Warp',
879
889
  color: 'blueBright',
880
- cliCommand: 'oz',
890
+ cliCommand: 'warp',
881
891
  npmPackage: '',
882
- installScript: 'brew install --cask oz',
892
+ installScript: 'curl -fsSL https://app.warp.dev/download/agent-cli | bash',
883
893
  configDir: path.join(HOME, '.warp'),
884
894
  commandsDir: '',
885
895
  commandsSubdir: '',
@@ -888,44 +898,42 @@ export const AGENTS = {
888
898
  instructionsFile: 'AGENTS.md',
889
899
  format: 'markdown',
890
900
  variableSyntax: '$ARGUMENTS',
891
- // Oz has no event->shell-command hook registration surface (its documented
892
- // capabilities are agent-profiles-permissions, codebase-context,
893
- // full-terminal-use, mcp, planning, rules, slash-commands — no hooks).
901
+ // Warp has no event->shell-command hook registration surface (its startup
902
+ // flags are --api-key/--auto-approve/--resume/--set-provider-api-key/
903
+ // --clear-provider-api-key — no hooks).
894
904
  supportsHooks: false,
895
905
  capabilities: {
896
906
  hooks: false,
897
- // MCP: Oz reads the Claude `{ "mcpServers": {...} }` schema from
898
- // `.warp/.mcp.json` (user `~/.warp/.mcp.json`, project `<root>/.warp/.mcp.json`)
899
- // and accepts `--mcp <path|json>` at run time; `oz mcp list` reads them
900
- // back. stdio + http with headers, same schema as Claude's .mcp.json.
907
+ // MCP: Warp reads the Claude `{ "mcpServers": {...} }` schema from
908
+ // `.warp/.mcp.json` (user `~/.warp/.mcp.json`, project `<root>/.warp/.mcp.json`),
909
+ // stdio + http with headers, same schema as Claude's .mcp.json.
901
910
  mcp: true,
902
911
  mcpHttp: true,
903
912
  mcpHeaders: true,
904
- // Autonomy is governed by the selected agent profile
905
- // (agent-profiles-permissions), not a Claude-style tool-name allow/deny
906
- // list agents-cli can write — so no allowlist writer (mirrors muse).
913
+ // Autonomy is a single toggle (`--auto-approve`), not a Claude-style
914
+ // tool-name allow/deny list agents-cli can write — so no allowlist writer
915
+ // (mirrors muse).
907
916
  allowlist: false,
908
- // Skills: `--skill <spec>` + `oz agent skills`; searched in
909
- // `.agents/skills/`, `.warp/skills/`, `.claude/skills/`, `.codex/skills/`.
917
+ // Skills searched in `.agents/skills/`, `.warp/skills/`, `.claude/skills/`,
918
+ // `.codex/skills/`.
910
919
  skills: true,
911
920
  // Slash-commands are native/server-managed (no droppable markdown
912
921
  // command-file directory for agents-cli to sync into).
913
922
  commands: false,
914
923
  // No Claude marketplace / plugin manifest support.
915
924
  plugins: false,
916
- // Cloud agents + agent profiles are server-side; no installable
917
- // subagent-definition directory to sync into (keeps the table truthful).
925
+ // Cloud agents are server-side; no installable subagent-definition
926
+ // directory to sync into (keeps the table truthful).
918
927
  subagents: false,
919
928
  rules: { file: 'AGENTS.md' },
920
929
  workflows: false,
921
930
  memory: false,
922
- // Oz has no per-run permission flag; a single autonomous mode maps to no
923
- // flags (the `--profile` selection governs autonomy). Mirrors hermes.
931
+ // No per-run permission flag beyond `--auto-approve`; the single `edit`
932
+ // mode maps to no flags (mirrors hermes).
924
933
  modes: ['edit'],
925
934
  rulesImports: false,
926
- // `oz agent run` requires a prompt (--prompt/--saved-prompt/--task-id/
927
- // --skill), so a bare invocation opens no REPL.
928
- interactiveRepl: false,
935
+ // Bare `warp` opens the interactive TUI (its only run form).
936
+ interactiveRepl: true,
929
937
  },
930
938
  },
931
939
  };
@@ -123,7 +123,7 @@ export function resolveAnswerRoute(input) {
123
123
  return {
124
124
  kind: 'refuse',
125
125
  reason: 'Agent is parked on a question but has no addressable terminal (no tmux/iterm/pty rail). ' +
126
- 'Open its terminal and answer there, or run `agents sessions focus <id>` first.',
126
+ 'Open its terminal and answer there, or run `agents sessions resume <id>` first.',
127
127
  };
128
128
  }
129
129
  // Open block but agent is still looping between tool calls — mailbox is correct.
@@ -1,29 +1,12 @@
1
1
  /**
2
- * Cross-agent, tamper-evident audit log of every dispatched run (issue #347).
2
+ * Run-dispatch recording (issue #347) now a thin write into the unified
3
+ * event stream (`emit('run.dispatched', …)`). The historical hash-chained file
4
+ * at `~/.agents/.history/audit/log.jsonl` is still readable via
5
+ * `readAuditLog` / `verifyAuditChain` for pre-unification history; new runs do
6
+ * NOT append there. Operators list run outcomes with:
3
7
  *
4
- * Every run that reaches the single dispatch chokepoint in `agents run`
5
- * (src/commands/exec.ts) appends ONE record here. Records form a hash chain:
6
- * each record embeds the previous record's `hash` as `prevHash`, and its own
7
- * `hash` is `sha256(canonicalJSON(record-without-hash))`. Because `prevHash`
8
- * is part of the hashed payload, rewriting or reordering any record breaks the
9
- * chain from that point forward — `verifyAuditChain()` reports the first index
10
- * that fails to reproduce.
11
- *
12
- * Storage is append-only JSONL under the durable-runtime bucket
13
- * (`~/.agents/.history/audit/log.jsonl`), one record per line. `.history/` is
14
- * machine-local, gitignored, and NEVER synced by `agents repo push/pull` — so
15
- * the `repo` field (a git remote url that can embed an access token) never
16
- * lands in a version-controlled DotAgents repo, and a cross-machine pull can't
17
- * splice a foreign chain into this one. The write path is deliberately cheap
18
- * and non-fatal: a logging failure must never crash a run (see
19
- * `recordDispatchedRun`). Concurrent writers (parallel teams/routines dispatch)
20
- * are serialized by an advisory lock file so the chain never forks — see
21
- * `appendAuditRecord`.
22
- *
23
- * Governance context: this is the evidence trail an operator needs to answer
24
- * "which agent, at which version, ran against which repo, and did it succeed?"
25
- * — the kind of automated-decision logging the EU AI Act (Art. 12) expects of
26
- * high-risk systems, kept tamper-evident so the log itself can be trusted.
8
+ * agents events --include runs
9
+ * agents audit # alias of the above
27
10
  */
28
11
  /** First record's `prevHash` — a fixed anchor so the chain has a root. */
29
12
  export declare const GENESIS_HASH = "GENESIS";
@@ -79,9 +62,9 @@ export declare function verifyAuditChain(logPath?: string): {
79
62
  /** Read the whole chain, oldest-first. Exposed for `agents audit list`. */
80
63
  export declare function readAuditLog(logPath?: string): AuditRecord[];
81
64
  /**
82
- * Record ONE dispatched run at the single exec chokepoint. Non-fatal by
83
- * contract: any failure is caught and warned, never thrown — an audit-log
84
- * hiccup must not crash a run that already finished.
65
+ * Record ONE dispatched run at the single exec chokepoint into the unified
66
+ * event stream. Non-fatal by contract: any failure is caught and warned, never
67
+ * thrown — a log hiccup must not crash a run that already finished.
85
68
  */
86
69
  export declare function recordDispatchedRun(run: {
87
70
  agent: string;