borgmcp 1.1.14 → 2.0.1

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 (459) hide show
  1. package/CONTRIBUTING.md +15 -0
  2. package/LICENSE +201 -33
  3. package/NOTICE +2 -0
  4. package/README.md +86 -37
  5. package/SECURITY.md +7 -0
  6. package/dist/agent-runtime.d.ts.map +1 -0
  7. package/dist/agent-runtime.js +63 -1
  8. package/dist/agent-runtime.js.map +1 -0
  9. package/dist/assimilate-cmd.d.ts +96 -17
  10. package/dist/assimilate-cmd.d.ts.map +1 -0
  11. package/dist/assimilate-cmd.js +1396 -48
  12. package/dist/assimilate-cmd.js.map +1 -0
  13. package/dist/assimilate-deps.d.ts.map +1 -0
  14. package/dist/assimilate-deps.js +384 -3
  15. package/dist/assimilate-deps.js.map +1 -0
  16. package/dist/assimilate-guard.d.ts +5 -7
  17. package/dist/assimilate-guard.d.ts.map +1 -0
  18. package/dist/assimilate-guard.js +60 -2
  19. package/dist/assimilate-guard.js.map +1 -0
  20. package/dist/assimilate-welcome.d.ts +1 -1
  21. package/dist/assimilate-welcome.d.ts.map +1 -0
  22. package/dist/assimilate-welcome.js +32 -2
  23. package/dist/assimilate-welcome.js.map +1 -0
  24. package/dist/auth-env.d.ts +7 -50
  25. package/dist/auth-env.d.ts.map +1 -0
  26. package/dist/auth-env.js +22 -1
  27. package/dist/auth-env.js.map +1 -0
  28. package/dist/backends/launch-all-pastelist.d.ts.map +1 -0
  29. package/dist/backends/launch-all-pastelist.js +11 -4
  30. package/dist/backends/launch-all-pastelist.js.map +1 -0
  31. package/dist/backends/launch-all-tmux.d.ts.map +1 -0
  32. package/dist/backends/launch-all-tmux.js +49 -1
  33. package/dist/backends/launch-all-tmux.js.map +1 -0
  34. package/dist/backends/launch-all-windows.d.ts.map +1 -0
  35. package/dist/backends/launch-all-windows.js +86 -12
  36. package/dist/backends/launch-all-windows.js.map +1 -0
  37. package/dist/bare-launch-menu.d.ts.map +1 -0
  38. package/dist/bare-launch-menu.js +83 -6
  39. package/dist/bare-launch-menu.js.map +1 -0
  40. package/dist/claude-launch-args.d.ts.map +1 -0
  41. package/dist/claude-launch-args.js +34 -1
  42. package/dist/claude-launch-args.js.map +1 -0
  43. package/dist/claude.d.ts.map +1 -0
  44. package/dist/claude.js +486 -14
  45. package/dist/claude.js.map +1 -0
  46. package/dist/cleanup-cmd.d.ts +5 -5
  47. package/dist/cleanup-cmd.d.ts.map +1 -0
  48. package/dist/cleanup-cmd.js +453 -14
  49. package/dist/cleanup-cmd.js.map +1 -0
  50. package/dist/clear-rewake-core.d.ts.map +1 -0
  51. package/dist/clear-rewake-core.js +23 -2
  52. package/dist/clear-rewake-core.js.map +1 -0
  53. package/dist/clear-rewake.d.ts.map +1 -0
  54. package/dist/clear-rewake.js +19 -1
  55. package/dist/clear-rewake.js.map +1 -0
  56. package/dist/cli-help.d.ts +5 -0
  57. package/dist/cli-help.d.ts.map +1 -0
  58. package/dist/cli-help.js +104 -56
  59. package/dist/cli-help.js.map +1 -0
  60. package/dist/cli-platform.d.ts.map +1 -0
  61. package/dist/cli-platform.js +106 -4
  62. package/dist/cli-platform.js.map +1 -0
  63. package/dist/cli-tool-approval.d.ts +84 -0
  64. package/dist/cli-tool-approval.d.ts.map +1 -0
  65. package/dist/cli-tool-approval.js +583 -0
  66. package/dist/cli-tool-approval.js.map +1 -0
  67. package/dist/codex-app-server.d.ts.map +1 -0
  68. package/dist/codex-app-server.js +228 -4
  69. package/dist/codex-app-server.js.map +1 -0
  70. package/dist/codex-app-wake.d.ts.map +1 -0
  71. package/dist/codex-app-wake.js +432 -2
  72. package/dist/codex-app-wake.js.map +1 -0
  73. package/dist/codex-launch.d.ts.map +1 -0
  74. package/dist/codex-launch.js +102 -2
  75. package/dist/codex-launch.js.map +1 -0
  76. package/dist/codex-remote.d.ts +6 -1
  77. package/dist/codex-remote.d.ts.map +1 -0
  78. package/dist/codex-remote.js +394 -1
  79. package/dist/codex-remote.js.map +1 -0
  80. package/dist/codex-wake-resolve.d.ts.map +1 -0
  81. package/dist/codex-wake-resolve.js +127 -1
  82. package/dist/codex-wake-resolve.js.map +1 -0
  83. package/dist/config-utils.d.ts +2 -2
  84. package/dist/config-utils.d.ts.map +1 -0
  85. package/dist/config-utils.js +766 -3
  86. package/dist/config-utils.js.map +1 -0
  87. package/dist/config.d.ts +98 -61
  88. package/dist/config.d.ts.map +1 -0
  89. package/dist/config.js +426 -1
  90. package/dist/config.js.map +1 -0
  91. package/dist/console-prefix.d.ts.map +1 -0
  92. package/dist/console-prefix.js +96 -1
  93. package/dist/console-prefix.js.map +1 -0
  94. package/dist/cube-name.d.ts.map +1 -0
  95. package/dist/cube-name.js +67 -1
  96. package/dist/cube-name.js.map +1 -0
  97. package/dist/cubes.d.ts +126 -18
  98. package/dist/cubes.d.ts.map +1 -0
  99. package/dist/cubes.js +412 -4
  100. package/dist/cubes.js.map +1 -0
  101. package/dist/debug.d.ts.map +1 -0
  102. package/dist/debug.js +71 -1
  103. package/dist/debug.js.map +1 -0
  104. package/dist/direct-log.d.ts.map +1 -0
  105. package/dist/direct-log.js +11 -1
  106. package/dist/direct-log.js.map +1 -0
  107. package/dist/docs-sections.d.ts +11 -10
  108. package/dist/docs-sections.d.ts.map +1 -0
  109. package/dist/docs-sections.js +113 -3
  110. package/dist/docs-sections.js.map +1 -0
  111. package/dist/drone-lifecycle.d.ts +5 -21
  112. package/dist/drone-lifecycle.d.ts.map +1 -0
  113. package/dist/drone-lifecycle.js +57 -8
  114. package/dist/drone-lifecycle.js.map +1 -0
  115. package/dist/drone-management.d.ts +29 -0
  116. package/dist/drone-management.d.ts.map +1 -0
  117. package/dist/drone-management.js +109 -0
  118. package/dist/drone-management.js.map +1 -0
  119. package/dist/ensure-mcp-config.d.ts.map +1 -0
  120. package/dist/ensure-mcp-config.js +36 -1
  121. package/dist/ensure-mcp-config.js.map +1 -0
  122. package/dist/evict-drone.d.ts +10 -2
  123. package/dist/evict-drone.d.ts.map +1 -0
  124. package/dist/evict-drone.js +60 -1
  125. package/dist/evict-drone.js.map +1 -0
  126. package/dist/gc-orphan-inboxes.d.ts.map +1 -0
  127. package/dist/gc-orphan-inboxes.js +177 -1
  128. package/dist/gc-orphan-inboxes.js.map +1 -0
  129. package/dist/inbox-monitor.d.ts +1 -1
  130. package/dist/inbox-monitor.d.ts.map +1 -0
  131. package/dist/inbox-monitor.js +856 -3
  132. package/dist/inbox-monitor.js.map +1 -0
  133. package/dist/index.d.ts +6 -4
  134. package/dist/index.d.ts.map +1 -0
  135. package/dist/index.js +1034 -37
  136. package/dist/index.js.map +1 -0
  137. package/dist/launch-all-cmd.d.ts.map +1 -0
  138. package/dist/launch-all-cmd.js +377 -37
  139. package/dist/launch-all-cmd.js.map +1 -0
  140. package/dist/launch-all-command.d.ts.map +1 -0
  141. package/dist/launch-all-command.js +24 -1
  142. package/dist/launch-all-command.js.map +1 -0
  143. package/dist/launch-all-deps.d.ts +3 -8
  144. package/dist/launch-all-deps.d.ts.map +1 -0
  145. package/dist/launch-all-deps.js +99 -1
  146. package/dist/launch-all-deps.js.map +1 -0
  147. package/dist/launch-all-discovery.d.ts +1 -0
  148. package/dist/launch-all-discovery.d.ts.map +1 -0
  149. package/dist/launch-all-discovery.js +90 -4
  150. package/dist/launch-all-discovery.js.map +1 -0
  151. package/dist/launch-all-locks.d.ts.map +1 -0
  152. package/dist/launch-all-locks.js +54 -1
  153. package/dist/launch-all-locks.js.map +1 -0
  154. package/dist/launch-gate.d.ts +2 -2
  155. package/dist/launch-gate.d.ts.map +1 -0
  156. package/dist/launch-gate.js +73 -1
  157. package/dist/launch-gate.js.map +1 -0
  158. package/dist/lifecycle-log-guard.d.ts.map +1 -0
  159. package/dist/lifecycle-log-guard.js +93 -2
  160. package/dist/lifecycle-log-guard.js.map +1 -0
  161. package/dist/list-roles-render.d.ts.map +1 -0
  162. package/dist/list-roles-render.js +40 -6
  163. package/dist/list-roles-render.js.map +1 -0
  164. package/dist/local-log-routing.d.ts +19 -0
  165. package/dist/local-log-routing.d.ts.map +1 -0
  166. package/dist/local-log-routing.js +67 -0
  167. package/dist/local-log-routing.js.map +1 -0
  168. package/dist/local-manage-tool-result.d.ts +8 -0
  169. package/dist/local-manage-tool-result.d.ts.map +1 -0
  170. package/dist/local-manage-tool-result.js +10 -0
  171. package/dist/local-manage-tool-result.js.map +1 -0
  172. package/dist/local-server-cursor.d.ts +34 -0
  173. package/dist/local-server-cursor.d.ts.map +1 -0
  174. package/dist/local-server-cursor.js +151 -0
  175. package/dist/local-server-cursor.js.map +1 -0
  176. package/dist/log-audit.d.ts.map +1 -0
  177. package/dist/log-audit.js +194 -3
  178. package/dist/log-audit.js.map +1 -0
  179. package/dist/log-stream.d.ts +31 -18
  180. package/dist/log-stream.d.ts.map +1 -0
  181. package/dist/log-stream.js +1214 -12
  182. package/dist/log-stream.js.map +1 -0
  183. package/dist/model-presets.d.ts.map +1 -0
  184. package/dist/model-presets.js +19 -1
  185. package/dist/model-presets.js.map +1 -0
  186. package/dist/name-validator.d.ts.map +1 -0
  187. package/dist/name-validator.js +22 -1
  188. package/dist/name-validator.js.map +1 -0
  189. package/dist/opencode-drone.d.ts.map +1 -0
  190. package/dist/opencode-drone.js +438 -4
  191. package/dist/opencode-drone.js.map +1 -0
  192. package/dist/opencode-plugin.d.ts +1 -1
  193. package/dist/opencode-plugin.d.ts.map +1 -0
  194. package/dist/opencode-plugin.js +29 -4
  195. package/dist/opencode-plugin.js.map +1 -0
  196. package/dist/parse-assimilate-args.d.ts +1 -1
  197. package/dist/parse-assimilate-args.d.ts.map +1 -0
  198. package/dist/parse-assimilate-args.js +125 -1
  199. package/dist/parse-assimilate-args.js.map +1 -0
  200. package/dist/parse-launch-all-args.d.ts.map +1 -0
  201. package/dist/parse-launch-all-args.js +70 -1
  202. package/dist/parse-launch-all-args.js.map +1 -0
  203. package/dist/postinstall-banner.d.ts.map +1 -0
  204. package/dist/postinstall-banner.js +27 -2
  205. package/dist/postinstall-banner.js.map +1 -0
  206. package/dist/postinstall.d.ts.map +1 -0
  207. package/dist/postinstall.js +32 -5
  208. package/dist/postinstall.js.map +1 -0
  209. package/dist/readiness-probe.d.ts.map +1 -0
  210. package/dist/readiness-probe.js +9 -1
  211. package/dist/readiness-probe.js.map +1 -0
  212. package/dist/regen-format.d.ts.map +1 -0
  213. package/dist/regen-format.js +545 -13
  214. package/dist/regen-format.js.map +1 -0
  215. package/dist/regen.d.ts.map +1 -0
  216. package/dist/regen.js +141 -5
  217. package/dist/regen.js.map +1 -0
  218. package/dist/remote-client.d.ts +65 -175
  219. package/dist/remote-client.d.ts.map +1 -0
  220. package/dist/remote-client.js +942 -1
  221. package/dist/remote-client.js.map +1 -0
  222. package/dist/reset-local-seat-cmd.d.ts +50 -0
  223. package/dist/reset-local-seat-cmd.d.ts.map +1 -0
  224. package/dist/reset-local-seat-cmd.js +169 -0
  225. package/dist/reset-local-seat-cmd.js.map +1 -0
  226. package/dist/role-match.d.ts.map +1 -0
  227. package/dist/role-match.js +23 -1
  228. package/dist/role-match.js.map +1 -0
  229. package/dist/role-resolver.d.ts.map +1 -0
  230. package/dist/role-resolver.js +60 -1
  231. package/dist/role-resolver.js.map +1 -0
  232. package/dist/roster-render.d.ts.map +1 -0
  233. package/dist/roster-render.js +121 -3
  234. package/dist/roster-render.js.map +1 -0
  235. package/dist/seat-probe.d.ts +32 -13
  236. package/dist/seat-probe.d.ts.map +1 -0
  237. package/dist/seat-probe.js +78 -1
  238. package/dist/seat-probe.js.map +1 -0
  239. package/dist/seat-store.d.ts +76 -0
  240. package/dist/seat-store.d.ts.map +1 -0
  241. package/dist/seat-store.js +309 -0
  242. package/dist/seat-store.js.map +1 -0
  243. package/dist/seats.d.ts +303 -0
  244. package/dist/seats.d.ts.map +1 -0
  245. package/dist/seats.js +551 -0
  246. package/dist/seats.js.map +1 -0
  247. package/dist/self-path.d.ts +27 -0
  248. package/dist/self-path.d.ts.map +1 -0
  249. package/dist/self-path.js +43 -0
  250. package/dist/self-path.js.map +1 -0
  251. package/dist/server-endpoint.d.ts +9 -0
  252. package/dist/server-endpoint.d.ts.map +1 -0
  253. package/dist/server-endpoint.js +38 -0
  254. package/dist/server-endpoint.js.map +1 -0
  255. package/dist/server-errors.d.ts +50 -0
  256. package/dist/server-errors.d.ts.map +1 -0
  257. package/dist/server-errors.js +79 -0
  258. package/dist/server-errors.js.map +1 -0
  259. package/dist/server-handshake.d.ts +197 -0
  260. package/dist/server-handshake.d.ts.map +1 -0
  261. package/dist/server-handshake.js +505 -0
  262. package/dist/server-handshake.js.map +1 -0
  263. package/dist/server-response.d.ts +3 -0
  264. package/dist/server-response.d.ts.map +1 -0
  265. package/dist/server-response.js +67 -0
  266. package/dist/server-response.js.map +1 -0
  267. package/dist/server-trust.d.ts +14 -0
  268. package/dist/server-trust.d.ts.map +1 -0
  269. package/dist/server-trust.js +225 -0
  270. package/dist/server-trust.js.map +1 -0
  271. package/dist/setup-confirm.d.ts +3 -3
  272. package/dist/setup-confirm.d.ts.map +1 -0
  273. package/dist/setup-confirm.js +126 -2
  274. package/dist/setup-confirm.js.map +1 -0
  275. package/dist/setup.d.ts +5 -3
  276. package/dist/setup.d.ts.map +1 -0
  277. package/dist/setup.js +169 -46
  278. package/dist/setup.js.map +1 -0
  279. package/dist/shell-escape.d.ts.map +1 -0
  280. package/dist/shell-escape.js +22 -1
  281. package/dist/shell-escape.js.map +1 -0
  282. package/dist/spawn.d.ts +2 -2
  283. package/dist/spawn.d.ts.map +1 -0
  284. package/dist/spawn.js +29 -10
  285. package/dist/spawn.js.map +1 -0
  286. package/dist/startup-services.d.ts +0 -1
  287. package/dist/startup-services.d.ts.map +1 -0
  288. package/dist/startup-services.js +26 -1
  289. package/dist/startup-services.js.map +1 -0
  290. package/dist/stream-owner.d.ts +6 -2
  291. package/dist/stream-owner.d.ts.map +1 -0
  292. package/dist/stream-owner.js +547 -2
  293. package/dist/stream-owner.js.map +1 -0
  294. package/dist/stream-status.d.ts +1 -1
  295. package/dist/stream-status.d.ts.map +1 -0
  296. package/dist/stream-status.js +268 -3
  297. package/dist/stream-status.js.map +1 -0
  298. package/dist/sync-roles-render.d.ts.map +1 -0
  299. package/dist/sync-roles-render.js +118 -3
  300. package/dist/sync-roles-render.js.map +1 -0
  301. package/dist/sync.d.ts +1 -1
  302. package/dist/sync.d.ts.map +1 -0
  303. package/dist/sync.js +286 -22
  304. package/dist/sync.js.map +1 -0
  305. package/dist/terminal-title.d.ts.map +1 -0
  306. package/dist/terminal-title.js +68 -1
  307. package/dist/terminal-title.js.map +1 -0
  308. package/dist/token-store.d.ts +17 -111
  309. package/dist/token-store.d.ts.map +1 -0
  310. package/dist/token-store.js +81 -1
  311. package/dist/token-store.js.map +1 -0
  312. package/dist/tool-manifest.d.ts +4 -8
  313. package/dist/tool-manifest.d.ts.map +1 -0
  314. package/dist/tool-manifest.js +554 -1
  315. package/dist/tool-manifest.js.map +1 -0
  316. package/dist/tool-scope.d.ts +8 -12
  317. package/dist/tool-scope.d.ts.map +1 -0
  318. package/dist/tool-scope.js +97 -1
  319. package/dist/tool-scope.js.map +1 -0
  320. package/dist/types.d.ts +1 -5
  321. package/dist/types.d.ts.map +1 -0
  322. package/dist/types.js +5 -0
  323. package/dist/types.js.map +1 -0
  324. package/dist/unknown-subcommand.d.ts +1 -1
  325. package/dist/unknown-subcommand.d.ts.map +1 -0
  326. package/dist/unknown-subcommand.js +37 -1
  327. package/dist/unknown-subcommand.js.map +1 -0
  328. package/dist/version.d.ts +1 -1
  329. package/dist/version.d.ts.map +1 -0
  330. package/dist/version.js +78 -2
  331. package/dist/version.js.map +1 -0
  332. package/dist/working-repo.d.ts.map +1 -0
  333. package/dist/working-repo.js +81 -1
  334. package/dist/working-repo.js.map +1 -0
  335. package/dist/worktree-lifecycle.d.ts.map +1 -0
  336. package/dist/worktree-lifecycle.js +205 -2
  337. package/dist/worktree-lifecycle.js.map +1 -0
  338. package/docs/EXTRACTION_PROVENANCE.md +40 -0
  339. package/docs/LOCAL_SERVER.md +103 -0
  340. package/docs/RELEASING.md +120 -0
  341. package/package.json +52 -34
  342. package/src/agent-runtime.ts +69 -0
  343. package/src/assimilate-cmd.ts +1864 -0
  344. package/src/assimilate-deps.ts +444 -0
  345. package/src/assimilate-guard.ts +84 -0
  346. package/src/assimilate-welcome.ts +39 -0
  347. package/src/auth-env.ts +21 -0
  348. package/src/backends/launch-all-pastelist.ts +18 -0
  349. package/src/backends/launch-all-tmux.ts +75 -0
  350. package/src/backends/launch-all-windows.ts +110 -0
  351. package/src/bare-launch-menu.ts +148 -0
  352. package/src/claude-launch-args.ts +35 -0
  353. package/src/claude.ts +561 -0
  354. package/src/cleanup-cmd.ts +581 -0
  355. package/src/clear-rewake-core.ts +34 -0
  356. package/src/clear-rewake.ts +18 -0
  357. package/src/cli-help.ts +116 -0
  358. package/src/cli-platform.ts +127 -0
  359. package/src/cli-tool-approval.ts +716 -0
  360. package/src/codex-app-server.ts +238 -0
  361. package/src/codex-app-wake.ts +512 -0
  362. package/src/codex-launch.ts +140 -0
  363. package/src/codex-remote.ts +500 -0
  364. package/src/codex-wake-resolve.ts +155 -0
  365. package/src/config-utils.ts +811 -0
  366. package/src/config.ts +595 -0
  367. package/src/console-prefix.ts +99 -0
  368. package/src/cube-name.ts +69 -0
  369. package/src/cubes.ts +583 -0
  370. package/src/debug.ts +73 -0
  371. package/src/direct-log.ts +9 -0
  372. package/src/docs-sections.ts +129 -0
  373. package/src/drone-lifecycle.ts +62 -0
  374. package/src/drone-management.ts +162 -0
  375. package/src/ensure-mcp-config.ts +54 -0
  376. package/src/evict-drone.ts +82 -0
  377. package/src/gc-orphan-inboxes.ts +229 -0
  378. package/src/inbox-monitor.ts +1005 -0
  379. package/src/index.ts +1201 -0
  380. package/src/launch-all-cmd.ts +450 -0
  381. package/src/launch-all-command.ts +30 -0
  382. package/src/launch-all-deps.ts +188 -0
  383. package/src/launch-all-discovery.ts +118 -0
  384. package/src/launch-all-locks.ts +74 -0
  385. package/src/launch-gate.ts +80 -0
  386. package/src/lifecycle-log-guard.ts +144 -0
  387. package/src/list-roles-render.ts +52 -0
  388. package/src/local-log-routing.ts +106 -0
  389. package/src/local-manage-tool-result.ts +10 -0
  390. package/src/local-server-cursor.ts +188 -0
  391. package/src/log-audit.ts +207 -0
  392. package/src/log-stream.ts +1505 -0
  393. package/src/model-presets.ts +22 -0
  394. package/src/name-validator.ts +23 -0
  395. package/src/opencode-drone.ts +528 -0
  396. package/src/opencode-plugin.ts +38 -0
  397. package/src/parse-assimilate-args.ts +125 -0
  398. package/src/parse-launch-all-args.ts +100 -0
  399. package/src/postinstall-banner.ts +37 -0
  400. package/src/postinstall.ts +36 -0
  401. package/src/readiness-probe.ts +12 -0
  402. package/src/regen-format.ts +651 -0
  403. package/src/regen.ts +150 -0
  404. package/src/remote-client.ts +1379 -0
  405. package/src/reset-local-seat-cmd.ts +227 -0
  406. package/src/role-match.ts +29 -0
  407. package/src/role-resolver.ts +93 -0
  408. package/src/roster-render.ts +196 -0
  409. package/src/seat-probe.ts +115 -0
  410. package/src/seat-store.ts +333 -0
  411. package/src/seats.ts +741 -0
  412. package/src/self-path.ts +51 -0
  413. package/src/server-endpoint.ts +38 -0
  414. package/src/server-errors.ts +93 -0
  415. package/src/server-handshake.ts +783 -0
  416. package/src/server-response.ts +76 -0
  417. package/src/server-trust.ts +245 -0
  418. package/src/setup-confirm.ts +171 -0
  419. package/src/setup.ts +186 -0
  420. package/src/shell-escape.ts +22 -0
  421. package/src/spawn.ts +31 -0
  422. package/src/startup-services.ts +36 -0
  423. package/src/stream-owner.ts +686 -0
  424. package/src/stream-status.ts +337 -0
  425. package/src/sync-roles-render.ts +163 -0
  426. package/src/sync.ts +363 -0
  427. package/src/terminal-title.ts +76 -0
  428. package/src/token-store.ts +102 -0
  429. package/src/tool-manifest.ts +610 -0
  430. package/src/tool-scope.ts +110 -0
  431. package/src/types.ts +5 -0
  432. package/src/unknown-subcommand.ts +35 -0
  433. package/src/version.ts +82 -0
  434. package/src/working-repo.ts +99 -0
  435. package/src/worktree-lifecycle.ts +254 -0
  436. package/dist/auth-recovery.d.ts +0 -33
  437. package/dist/auth-recovery.js +0 -1
  438. package/dist/auth.d.ts +0 -103
  439. package/dist/auth.js +0 -39
  440. package/dist/device-auth.d.ts +0 -75
  441. package/dist/device-auth.js +0 -1
  442. package/dist/drone-address.d.ts +0 -26
  443. package/dist/drone-address.js +0 -1
  444. package/dist/get-started.d.ts +0 -20
  445. package/dist/get-started.js +0 -2
  446. package/dist/health-beat.d.ts +0 -134
  447. package/dist/health-beat.js +0 -1
  448. package/dist/role-section.d.ts +0 -110
  449. package/dist/role-section.js +0 -8
  450. package/dist/setup-action.d.ts +0 -20
  451. package/dist/setup-action.js +0 -1
  452. package/dist/stale-version-check.d.ts +0 -40
  453. package/dist/stale-version-check.js +0 -1
  454. package/dist/subscription-retry.d.ts +0 -40
  455. package/dist/subscription-retry.js +0 -1
  456. package/dist/templates.d.ts +0 -107
  457. package/dist/templates.js +0 -359
  458. package/dist/token-crypto.d.ts +0 -50
  459. package/dist/token-crypto.js +0 -1
@@ -0,0 +1,583 @@
1
+ import { spawn, spawnSync } from 'node:child_process';
2
+ import { chmod, copyFile, mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises';
3
+ import { homedir, tmpdir } from 'node:os';
4
+ import { dirname, join, resolve } from 'node:path';
5
+ /**
6
+ * Client #20: the narrow coordination surface a borg-launched agent needs
7
+ * without an approval round-trip. Keep the direct-tool list deliberately
8
+ * smaller than the complete Borg MCP surface. borg_tool's transitive scope is
9
+ * disclosed separately before consent.
10
+ */
11
+ export const BORG_COORDINATION_TOOLS = [
12
+ 'regen',
13
+ 'log',
14
+ 'read-log',
15
+ 'roster',
16
+ 'ack',
17
+ 'stream-status',
18
+ 'whoami',
19
+ // Required by the canonical lean orientation before acting/after compaction.
20
+ 'cube',
21
+ 'role',
22
+ 'playbook',
23
+ 'tool',
24
+ 'describe-tool',
25
+ ];
26
+ export const CODEX_BORG_COORDINATION_TOOLS = BORG_COORDINATION_TOOLS.map((name) => `borg:${name}`);
27
+ // OpenCode sanitizes MCP tool names as <server>_<raw tool name>, preserving
28
+ // hyphens. The Borg raw tool prefix is itself `borg_`.
29
+ export const OPENCODE_BORG_COORDINATION_TOOLS = BORG_COORDINATION_TOOLS.map((name) => `borg_borg_${name}`);
30
+ export const BORG_DISPATCHER_APPROVAL_DISCLOSURE = 'This set includes borg_tool: approving the dispatcher also approves any Borg operation invoked through it.';
31
+ function parseCodexModes(text) {
32
+ let section = 'other';
33
+ let defaultMode;
34
+ const toolModes = new Map();
35
+ for (const line of text.split(/\r?\n/)) {
36
+ const header = line.match(/^\s*\[([^\]]+)\]\s*(?:#.*)?$/);
37
+ if (header) {
38
+ if (header[1] === 'mcp_servers.borg') {
39
+ section = 'borg';
40
+ }
41
+ else {
42
+ const tool = header[1].match(/^mcp_servers\.borg\.tools\."([^"]+)"$/);
43
+ section = tool ? { tool: tool[1] } : 'other';
44
+ }
45
+ continue;
46
+ }
47
+ const value = line.match(/^\s*(default_tools_approval_mode|approval_mode)\s*=\s*["'](auto|prompt|writes|approve)["']\s*(?:#.*)?$/);
48
+ if (!value)
49
+ continue;
50
+ const mode = value[2];
51
+ if (section === 'borg' && value[1] === 'default_tools_approval_mode') {
52
+ defaultMode = mode;
53
+ }
54
+ else if (typeof section === 'object' && value[1] === 'approval_mode') {
55
+ toolModes.set(section.tool, mode);
56
+ }
57
+ }
58
+ return { ...(defaultMode ? { defaultMode } : {}), toolModes };
59
+ }
60
+ export function codexApprovalRepairSnippet(tools = CODEX_BORG_COORDINATION_TOOLS) {
61
+ return tools
62
+ .map((tool) => `[mcp_servers.borg.tools."${tool}"]\n` +
63
+ `approval_mode = "auto"`)
64
+ .join('\n\n');
65
+ }
66
+ export function inspectCodexBorgApprovals(config) {
67
+ let defaultMode;
68
+ let toolModes = new Map();
69
+ if (typeof config === 'string') {
70
+ ({ defaultMode, toolModes } = parseCodexModes(config));
71
+ }
72
+ else if (config && typeof config === 'object' && !Array.isArray(config)) {
73
+ const servers = config.mcp_servers;
74
+ const borg = servers && typeof servers === 'object' && !Array.isArray(servers)
75
+ ? servers.borg
76
+ : undefined;
77
+ if (borg && typeof borg === 'object' && !Array.isArray(borg)) {
78
+ const record = borg;
79
+ if (typeof record.default_tools_approval_mode === 'string') {
80
+ defaultMode = record.default_tools_approval_mode;
81
+ }
82
+ if (record.tools && typeof record.tools === 'object' && !Array.isArray(record.tools)) {
83
+ toolModes = new Map(Object.entries(record.tools).flatMap(([tool, value]) => value && typeof value === 'object' &&
84
+ typeof value.approval_mode === 'string'
85
+ ? [[tool, value.approval_mode]]
86
+ : []));
87
+ }
88
+ }
89
+ }
90
+ const restrictiveTools = CODEX_BORG_COORDINATION_TOOLS.filter((tool) => {
91
+ const mode = toolModes.get(tool) ?? defaultMode;
92
+ return mode !== undefined && mode !== 'auto';
93
+ });
94
+ return {
95
+ restrictiveTools,
96
+ repairSnippet: codexApprovalRepairSnippet(restrictiveTools.length > 0 ? restrictiveTools : CODEX_BORG_COORDINATION_TOOLS),
97
+ };
98
+ }
99
+ function globMatches(pattern, value) {
100
+ const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*').replace(/\?/g, '.');
101
+ return new RegExp(`^${escaped}$`).test(value);
102
+ }
103
+ function effectiveOpenCodePermission(permission, tool) {
104
+ if (permission === 'allow' || permission === 'ask' || permission === 'deny') {
105
+ return permission;
106
+ }
107
+ if (!permission || typeof permission !== 'object' || Array.isArray(permission))
108
+ return undefined;
109
+ let result;
110
+ for (const [pattern, action] of Object.entries(permission)) {
111
+ if (globMatches(pattern, tool) &&
112
+ (action === 'allow' || action === 'ask' || action === 'deny')) {
113
+ result = action;
114
+ }
115
+ }
116
+ return result;
117
+ }
118
+ export function openCodeApprovalRepairObject(tools = OPENCODE_BORG_COORDINATION_TOOLS) {
119
+ return Object.fromEntries(tools.map((tool) => [tool, 'allow']));
120
+ }
121
+ /** Preserve every existing OpenCode permission rule, then append the exact
122
+ * Borg coordination allows. This remains safe whether OPENCODE_PERMISSION is
123
+ * deep-merged or replaces the configured permission value. */
124
+ export function mergeOpenCodePermission(permission, tools = OPENCODE_BORG_COORDINATION_TOOLS) {
125
+ let existing = {};
126
+ if (permission === 'allow' || permission === 'ask' || permission === 'deny') {
127
+ existing = { '*': permission };
128
+ }
129
+ else if (permission && typeof permission === 'object' && !Array.isArray(permission)) {
130
+ existing = { ...permission };
131
+ }
132
+ // Reinsert exact keys at the END. OpenCode resolves matching permission
133
+ // patterns in order, so merely overwriting an earlier exact key would keep
134
+ // its old insertion position and a later wildcard could still win.
135
+ const toolSet = new Set(tools);
136
+ const preserved = Object.fromEntries(Object.entries(existing).filter(([key]) => !toolSet.has(key)));
137
+ return { ...preserved, ...openCodeApprovalRepairObject(tools) };
138
+ }
139
+ export function inspectOpenCodeBorgApprovals(config) {
140
+ const permission = config && typeof config === 'object' && !Array.isArray(config)
141
+ ? config.permission
142
+ : undefined;
143
+ const restrictiveTools = OPENCODE_BORG_COORDINATION_TOOLS.filter((tool) => {
144
+ const action = effectiveOpenCodePermission(permission, tool);
145
+ return action === 'ask' || action === 'deny';
146
+ });
147
+ return {
148
+ restrictiveTools,
149
+ repairSnippet: JSON.stringify({ permission: mergeOpenCodePermission(permission, restrictiveTools.length > 0 ? restrictiveTools : OPENCODE_BORG_COORDINATION_TOOLS) }, null, 2),
150
+ };
151
+ }
152
+ export function codexBorgApprovalArgs(tools = CODEX_BORG_COORDINATION_TOOLS) {
153
+ if (tools.length === 0)
154
+ return [];
155
+ // Codex's dotted CLI override parser treats quotes in a segment literally,
156
+ // so `tools."borg:regen"` creates the wrong key. An inline TOML table is the
157
+ // supported way to address colon-named tools and deep-merges with the
158
+ // remaining effective tool config.
159
+ const toolTable = tools
160
+ .map((tool) => `${JSON.stringify(tool)}={approval_mode="auto"}`)
161
+ .join(',');
162
+ return ['-c', `mcp_servers.borg.tools={${toolTable}}`];
163
+ }
164
+ /** Keep only flags that app-server supports and that participate in config
165
+ * resolution. Runtime-only --profile/-p is resolved separately because Codex
166
+ * rejects it on the app-server subcommand. */
167
+ export function codexEffectiveConfigArgs(args) {
168
+ const out = [];
169
+ const paired = new Set(['-c', '--config', '--enable', '--disable']);
170
+ for (let i = 0; i < args.length; i += 1) {
171
+ const arg = args[i];
172
+ if (arg === '--')
173
+ break;
174
+ if (arg === '-p' || arg === '--profile') {
175
+ if (args[i + 1] !== undefined)
176
+ i += 1;
177
+ continue;
178
+ }
179
+ if (arg.startsWith('--profile=') || (arg.startsWith('-p') && arg.length > 2)) {
180
+ continue;
181
+ }
182
+ if (paired.has(arg)) {
183
+ if (args[i + 1] !== undefined)
184
+ out.push(arg, args[++i]);
185
+ continue;
186
+ }
187
+ if (/^--(?:config|enable|disable)=/.test(arg) || arg === '--strict-config') {
188
+ out.push(arg);
189
+ }
190
+ }
191
+ return out;
192
+ }
193
+ /** Resolve Codex's selected runtime profile. Short attached forms are accepted
194
+ * by Codex/clap; the final occurrence before -- wins. */
195
+ export function codexSelectedProfile(args) {
196
+ let selected;
197
+ for (let index = 0; index < args.length; index += 1) {
198
+ const arg = args[index];
199
+ if (arg === '--')
200
+ break;
201
+ if (arg === '-p' || arg === '--profile') {
202
+ const value = args[index + 1];
203
+ if (value !== undefined && value.length > 0) {
204
+ selected = value;
205
+ index += 1;
206
+ }
207
+ continue;
208
+ }
209
+ if (arg.startsWith('--profile=')) {
210
+ const value = arg.slice('--profile='.length);
211
+ if (value.length > 0)
212
+ selected = value;
213
+ continue;
214
+ }
215
+ if (arg.startsWith('-p') && arg.length > 2) {
216
+ const value = arg.slice(2).replace(/^=/, '');
217
+ if (value.length > 0)
218
+ selected = value;
219
+ }
220
+ }
221
+ return selected;
222
+ }
223
+ function isRecord(value) {
224
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
225
+ }
226
+ function mergeConfigValue(base, overlay) {
227
+ if (!isRecord(base) || !isRecord(overlay))
228
+ return structuredClone(overlay);
229
+ const merged = structuredClone(base);
230
+ for (const [key, value] of Object.entries(overlay)) {
231
+ merged[key] = key in merged ? mergeConfigValue(merged[key], value) : structuredClone(value);
232
+ }
233
+ return merged;
234
+ }
235
+ function borgConfigFragment(config) {
236
+ if (!isRecord(config) || !isRecord(config.mcp_servers))
237
+ return {};
238
+ const borg = config.mcp_servers.borg;
239
+ return isRecord(borg) ? borg : {};
240
+ }
241
+ /** Rebuild the native ordered layer stack with the selected profile inserted
242
+ * immediately above the base user layer, matching Codex's runtime loader. */
243
+ export function composeCodexProfileConfig(snapshot, profileConfig) {
244
+ const layers = snapshot.layers;
245
+ if (!Array.isArray(layers))
246
+ throw new Error('Codex effective-config layers were unavailable');
247
+ let mergedBorg = {};
248
+ let inserted = false;
249
+ // config/read returns highest precedence first; Codex's merge runs from
250
+ // system/base-user upward, so replay the array in reverse.
251
+ for (const layer of [...layers].reverse()) {
252
+ if (layer.disabledReason)
253
+ continue;
254
+ mergedBorg = mergeConfigValue(mergedBorg, borgConfigFragment(layer.config));
255
+ if (!inserted && layer.name?.type === 'user' && layer.name.profile == null) {
256
+ mergedBorg = mergeConfigValue(mergedBorg, borgConfigFragment(profileConfig));
257
+ inserted = true;
258
+ }
259
+ }
260
+ if (!inserted)
261
+ throw new Error('Codex base user config layer was unavailable');
262
+ return { mcp_servers: { borg: mergedBorg } };
263
+ }
264
+ async function withNativeCodexProfileLayer(profile, env, query) {
265
+ const codexHome = resolve(env.CODEX_HOME || join(homedir(), '.codex'));
266
+ const profilePath = resolve(codexHome, `${profile}.config.toml`);
267
+ if (dirname(profilePath) !== codexHome) {
268
+ throw new Error('Codex profile path was invalid');
269
+ }
270
+ const temporaryHome = await mkdtemp(join(tmpdir(), 'borg-codex-profile-'));
271
+ try {
272
+ const dotCodex = join(temporaryHome, '.codex');
273
+ const temporaryConfig = join(dotCodex, 'config.toml');
274
+ await mkdir(dotCodex, { mode: 0o700 });
275
+ // Codex discovers project config from its configured project-root markers;
276
+ // an empty .git directory is sufficient and never invokes Git itself.
277
+ await mkdir(join(temporaryHome, '.git'), { mode: 0o700 });
278
+ try {
279
+ await copyFile(profilePath, temporaryConfig);
280
+ await chmod(temporaryConfig, 0o600);
281
+ }
282
+ catch (error) {
283
+ if (error?.code !== 'ENOENT')
284
+ throw error;
285
+ // Codex treats a selected but absent profile as an empty layer.
286
+ await writeFile(temporaryConfig, '', { mode: 0o600 });
287
+ }
288
+ const trustOverride = `projects={${JSON.stringify(temporaryHome)}={trust_level="trusted"}}`;
289
+ const snapshot = await query(temporaryHome, trustOverride);
290
+ const profileLayer = snapshot.layers?.find((layer) => !layer.disabledReason && layer.name?.type === 'project');
291
+ if (!profileLayer)
292
+ throw new Error('Codex profile layer was unavailable');
293
+ return profileLayer.config;
294
+ }
295
+ catch {
296
+ throw new Error('Codex selected-profile query failed');
297
+ }
298
+ finally {
299
+ await rm(temporaryHome, { recursive: true, force: true }).catch(() => undefined);
300
+ }
301
+ }
302
+ async function readCodexConfigSnapshot(args, cwd, env, runtime) {
303
+ return new Promise((resolveSnapshot, reject) => {
304
+ let child;
305
+ try {
306
+ child = (runtime.spawnProcess ?? spawn)('codex', [...args, 'app-server', '--stdio'], { cwd, env, stdio: ['pipe', 'pipe', 'ignore'] });
307
+ }
308
+ catch {
309
+ reject(new Error('Codex effective-config query failed'));
310
+ return;
311
+ }
312
+ if (!child.stdin || !child.stdout) {
313
+ try {
314
+ child.kill();
315
+ }
316
+ catch {
317
+ // No usable protocol streams exist; reject with a static failure.
318
+ }
319
+ reject(new Error('Codex effective-config query failed'));
320
+ return;
321
+ }
322
+ const stdin = child.stdin;
323
+ const stdout = child.stdout;
324
+ let buffer = '';
325
+ let receivedBytes = 0;
326
+ let initialized = false;
327
+ let settled = false;
328
+ let timer;
329
+ const finish = (error, value) => {
330
+ if (settled)
331
+ return;
332
+ settled = true;
333
+ if (timer)
334
+ clearTimeout(timer);
335
+ try {
336
+ child.kill();
337
+ }
338
+ catch {
339
+ // The query is already settled; process teardown is best-effort.
340
+ }
341
+ if (error)
342
+ reject(error);
343
+ else
344
+ resolveSnapshot(value);
345
+ };
346
+ const fail = () => finish(new Error('Codex effective-config query failed'));
347
+ const safeWrite = (payload) => {
348
+ if (settled)
349
+ return false;
350
+ try {
351
+ stdin.write(payload, (error) => {
352
+ if (error)
353
+ fail();
354
+ });
355
+ return true;
356
+ }
357
+ catch {
358
+ fail();
359
+ return false;
360
+ }
361
+ };
362
+ timer = setTimeout(() => finish(new Error('Codex effective-config query timed out')), runtime.timeoutMs ?? 5_000);
363
+ child.on('error', fail);
364
+ stdin.on('error', fail);
365
+ stdout.on('error', fail);
366
+ child.on('exit', () => {
367
+ if (!settled)
368
+ finish(new Error('Codex effective-config query exited before responding'));
369
+ });
370
+ stdout.on('data', (chunk) => {
371
+ if (settled)
372
+ return;
373
+ receivedBytes += chunk.length;
374
+ if (receivedBytes > (runtime.maxResponseBytes ?? 4 * 1024 * 1024)) {
375
+ finish(new Error('Codex effective-config response exceeded 4 MiB'));
376
+ return;
377
+ }
378
+ buffer += chunk.toString('utf8');
379
+ for (;;) {
380
+ if (settled)
381
+ return;
382
+ const newline = buffer.indexOf('\n');
383
+ if (newline < 0)
384
+ break;
385
+ const line = buffer.slice(0, newline).trim();
386
+ buffer = buffer.slice(newline + 1);
387
+ if (!line)
388
+ continue;
389
+ let message;
390
+ try {
391
+ message = JSON.parse(line);
392
+ }
393
+ catch {
394
+ continue;
395
+ }
396
+ if (message.id === 1 && !initialized) {
397
+ initialized = true;
398
+ if (!safeWrite(`${JSON.stringify({ method: 'initialized', params: {} })}\n`))
399
+ return;
400
+ safeWrite(`${JSON.stringify({
401
+ id: 2,
402
+ method: 'config/read',
403
+ params: { cwd, includeLayers: true },
404
+ })}\n`);
405
+ }
406
+ else if (message.id === 2) {
407
+ if (message.error)
408
+ finish(new Error('Codex effective-config query was rejected'));
409
+ else
410
+ finish(undefined, message.result ?? {});
411
+ }
412
+ }
413
+ });
414
+ safeWrite(`${JSON.stringify({
415
+ id: 1,
416
+ method: 'initialize',
417
+ params: {
418
+ clientInfo: { name: 'borgmcp', title: null, version: '0' },
419
+ capabilities: { experimentalApi: true },
420
+ },
421
+ })}\n`);
422
+ });
423
+ }
424
+ export async function readCodexEffectiveConfig(args, cwd, env, runtime = {}) {
425
+ const snapshot = await readCodexConfigSnapshot(args, cwd, env, runtime);
426
+ if (!runtime.profile)
427
+ return snapshot.config ?? null;
428
+ const profileConfig = await withNativeCodexProfileLayer(runtime.profile, env, (profileCwd, trustOverride) => readCodexConfigSnapshot([...args.filter((arg) => arg === '--strict-config'), '-c', trustOverride], profileCwd, env, { ...runtime, profile: undefined }));
429
+ return composeCodexProfileConfig(snapshot, profileConfig);
430
+ }
431
+ export function readOpenCodeEffectiveConfig(cwd, env) {
432
+ const result = spawnSync('opencode', ['debug', 'config'], {
433
+ cwd,
434
+ env,
435
+ encoding: 'utf8',
436
+ timeout: 5_000,
437
+ maxBuffer: 4 * 1024 * 1024,
438
+ });
439
+ if (result.error || result.status !== 0 || !result.stdout.trim()) {
440
+ throw new Error('OpenCode effective-config query failed');
441
+ }
442
+ return JSON.parse(result.stdout);
443
+ }
444
+ export function defaultApprovalIo(confirm, isTTY, options = {}) {
445
+ const cwd = options.cwd ?? process.cwd();
446
+ const env = options.env ?? process.env;
447
+ const selectedCodexArgs = codexEffectiveConfigArgs(options.codexArgs ?? []);
448
+ const selectedCodexProfile = codexSelectedProfile(options.codexArgs ?? []);
449
+ const loadCodex = options.loadCodex ?? ((args, loadCwd, loadEnv, profile) => readCodexEffectiveConfig(args, loadCwd, loadEnv, { profile }));
450
+ const loadOpenCode = options.loadOpenCode ?? readOpenCodeEffectiveConfig;
451
+ return {
452
+ readCodexConfig: (approvalArgs = []) => {
453
+ const args = [...approvalArgs, ...selectedCodexArgs];
454
+ return selectedCodexProfile === undefined
455
+ ? loadCodex(args, cwd, env)
456
+ : loadCodex(args, cwd, env, selectedCodexProfile);
457
+ },
458
+ readOpenCodeConfig: (permissionOverride) => loadOpenCode(cwd, {
459
+ ...env,
460
+ ...(permissionOverride === undefined
461
+ ? {}
462
+ : { OPENCODE_PERMISSION: permissionOverride }),
463
+ }),
464
+ isTTY,
465
+ confirm,
466
+ };
467
+ }
468
+ function accepted(answer) {
469
+ return /^(?:y|yes)$/i.test(answer.trim());
470
+ }
471
+ export async function resolveLaunchBorgApprovals(cli, io) {
472
+ if (cli === 'claude')
473
+ return { codexArgs: [] };
474
+ let inspection;
475
+ let openCodeConfig;
476
+ try {
477
+ if (cli === 'codex') {
478
+ inspection = inspectCodexBorgApprovals(await io.readCodexConfig());
479
+ }
480
+ else {
481
+ openCodeConfig = await io.readOpenCodeConfig();
482
+ inspection = inspectOpenCodeBorgApprovals(openCodeConfig);
483
+ }
484
+ }
485
+ catch (error) {
486
+ return {
487
+ codexArgs: [],
488
+ warning: `Could not inspect ${cli} Borg tool approvals: ${error?.message ?? error}. No approval override was applied.`,
489
+ };
490
+ }
491
+ if (inspection.restrictiveTools.length === 0)
492
+ return { codexArgs: [] };
493
+ const intro = `${cli === 'codex' ? 'Codex' : 'OpenCode'} requires approval for ${inspection.restrictiveTools.length} Borg tool${inspection.restrictiveTools.length === 1 ? '' : 's'}. ` +
494
+ BORG_DISPATCHER_APPROVAL_DISCLOSURE;
495
+ if (!io.isTTY()) {
496
+ return {
497
+ codexArgs: [],
498
+ warning: `${intro} Re-run in a terminal to approve a launch-only fix, or add:\n${inspection.repairSnippet}`,
499
+ };
500
+ }
501
+ const answer = await io.confirm(`${intro} Apply this launch-only Borg approval set? [y/N] `);
502
+ if (!accepted(answer)) {
503
+ return {
504
+ codexArgs: [],
505
+ warning: `${intro} Continuing without the launch-only fix. To repair it globally, add:\n${inspection.repairSnippet}`,
506
+ };
507
+ }
508
+ if (cli === 'codex') {
509
+ const codexArgs = codexBorgApprovalArgs(inspection.restrictiveTools);
510
+ let effectiveWithOverride;
511
+ try {
512
+ effectiveWithOverride = inspectCodexBorgApprovals(await io.readCodexConfig(codexArgs));
513
+ }
514
+ catch {
515
+ return {
516
+ codexArgs: [],
517
+ warning: 'Could not verify the Codex launch-only approval override against effective config. No override was applied.',
518
+ };
519
+ }
520
+ if (effectiveWithOverride.restrictiveTools.length > 0) {
521
+ return {
522
+ codexArgs: [],
523
+ warning: `Codex managed policy prevents the launch-only Borg approval override. Ask your Codex administrator to allow these tools:\n${effectiveWithOverride.repairSnippet}`,
524
+ };
525
+ }
526
+ return { codexArgs };
527
+ }
528
+ const openCodePermission = JSON.stringify(mergeOpenCodePermission(openCodeConfig && typeof openCodeConfig === 'object'
529
+ ? openCodeConfig.permission
530
+ : undefined, inspection.restrictiveTools));
531
+ let effectiveWithOverride;
532
+ try {
533
+ effectiveWithOverride = inspectOpenCodeBorgApprovals(await io.readOpenCodeConfig(openCodePermission));
534
+ }
535
+ catch {
536
+ return {
537
+ codexArgs: [],
538
+ warning: 'Could not verify the OpenCode launch-only approval override against effective config. No override was applied.',
539
+ };
540
+ }
541
+ if (effectiveWithOverride.restrictiveTools.length > 0) {
542
+ return {
543
+ codexArgs: [],
544
+ warning: `OpenCode managed policy prevents the launch-only Borg approval override. Ask your OpenCode administrator to allow these tools:\n${effectiveWithOverride.repairSnippet}`,
545
+ };
546
+ }
547
+ return {
548
+ codexArgs: [],
549
+ openCodePermission,
550
+ };
551
+ }
552
+ export function buildOpenCodeLaunchArgs(cwd, port, prompt, passthroughArgs = []) {
553
+ // Deliberately no `--auto`: that switch auto-approves unrelated shell/file
554
+ // actions. Exact Borg coordination consent is carried in the child env.
555
+ return [cwd, '--port', String(port), '--prompt', prompt, ...passthroughArgs];
556
+ }
557
+ export async function setupApprovalWarnings(deps, selected = { codex: true, opencode: true }) {
558
+ const warnings = [];
559
+ try {
560
+ const codex = selected.codex
561
+ ? inspectCodexBorgApprovals(await deps.readCodexConfig())
562
+ : null;
563
+ if (codex && codex.restrictiveTools.length > 0) {
564
+ warnings.push(`Codex Borg approvals are restrictive. ${BORG_DISPATCHER_APPROVAL_DISCLOSURE} Borg launches will offer a launch-only fix. Global repair:\n${codex.repairSnippet}`);
565
+ }
566
+ }
567
+ catch (error) {
568
+ warnings.push(`Could not inspect Codex Borg tool approvals: ${error?.message ?? error}`);
569
+ }
570
+ try {
571
+ const opencode = selected.opencode
572
+ ? inspectOpenCodeBorgApprovals(await deps.readOpenCodeConfig())
573
+ : null;
574
+ if (opencode && opencode.restrictiveTools.length > 0) {
575
+ warnings.push(`OpenCode Borg approvals are restrictive. ${BORG_DISPATCHER_APPROVAL_DISCLOSURE} Borg launches will offer a launch-only fix. Global repair:\n${opencode.repairSnippet}`);
576
+ }
577
+ }
578
+ catch (error) {
579
+ warnings.push(`Could not inspect OpenCode Borg tool approvals: ${error?.message ?? error}`);
580
+ }
581
+ return warnings;
582
+ }
583
+ //# sourceMappingURL=cli-tool-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-tool-approval.js","sourceRoot":"","sources":["../src/cli-tool-approval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-app-server.d.ts","sourceRoot":"","sources":["../src/codex-app-server.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,qBAAa,oBAAoB;IAOnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IANvC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAqC;gBAEvB,UAAU,EAAE,MAAM;IAEzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C9B,KAAK,IAAI,IAAI;IAKP,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKpC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAahE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;CA6BtB;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBzB"}