codex-orchestrator 0.1.51 → 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 (570) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +45 -389
  3. package/dist/src/index.d.ts +16 -46
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +8 -24
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +111 -0
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -0
  9. package/dist/src/v2/acceptance-proof.js +427 -0
  10. package/dist/src/v2/acceptance-proof.js.map +1 -0
  11. package/dist/src/v2/adapters/command.d.ts.map +1 -0
  12. package/dist/src/v2/adapters/command.js.map +1 -0
  13. package/dist/src/v2/adapters/durable-atomic-file.d.ts.map +1 -0
  14. package/dist/src/v2/adapters/durable-atomic-file.js.map +1 -0
  15. package/dist/src/v2/adapters/gh-cli.d.ts.map +1 -0
  16. package/dist/src/v2/adapters/gh-cli.js.map +1 -0
  17. package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -0
  18. package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -0
  19. package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts.map +1 -0
  20. package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -0
  21. package/dist/src/v2/adapters/issues.d.ts.map +1 -0
  22. package/dist/src/v2/adapters/issues.js.map +1 -0
  23. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts.map +1 -0
  24. package/dist/src/v2/adapters/mission-coordinator-lock.js.map +1 -0
  25. package/dist/src/v2/adapters/path-policy.d.ts.map +1 -0
  26. package/dist/src/v2/adapters/path-policy.js.map +1 -0
  27. package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -0
  28. package/dist/src/v2/adapters/pull-requests.js.map +1 -0
  29. package/dist/src/v2/adapters/target-activity-fence.d.ts.map +1 -0
  30. package/dist/src/{runner → v2/adapters}/target-activity-fence.js +1 -1
  31. package/dist/src/v2/adapters/target-activity-fence.js.map +1 -0
  32. package/dist/src/{git → v2/adapters}/worktree.d.ts +1 -1
  33. package/dist/src/v2/adapters/worktree.d.ts.map +1 -0
  34. package/dist/src/{git → v2/adapters}/worktree.js +2 -2
  35. package/dist/src/v2/adapters/worktree.js.map +1 -0
  36. package/dist/src/v2/atomic-store.d.ts +36 -0
  37. package/dist/src/v2/atomic-store.d.ts.map +1 -0
  38. package/dist/src/v2/atomic-store.js +328 -0
  39. package/dist/src/v2/atomic-store.js.map +1 -0
  40. package/dist/src/v2/candidate-cli.d.ts +22 -0
  41. package/dist/src/v2/candidate-cli.d.ts.map +1 -0
  42. package/dist/src/v2/candidate-cli.js +161 -0
  43. package/dist/src/v2/candidate-cli.js.map +1 -0
  44. package/dist/src/v2/checked-change.d.ts +49 -0
  45. package/dist/src/v2/checked-change.d.ts.map +1 -0
  46. package/dist/src/v2/checked-change.js +139 -0
  47. package/dist/src/v2/checked-change.js.map +1 -0
  48. package/dist/src/v2/cli-contract.d.ts +8 -0
  49. package/dist/src/v2/cli-contract.d.ts.map +1 -0
  50. package/dist/src/v2/cli-contract.js +32 -0
  51. package/dist/src/v2/cli-contract.js.map +1 -0
  52. package/dist/src/v2/codex-process.d.ts +71 -0
  53. package/dist/src/v2/codex-process.d.ts.map +1 -0
  54. package/dist/src/v2/codex-process.js +404 -0
  55. package/dist/src/v2/codex-process.js.map +1 -0
  56. package/dist/src/v2/config.d.ts +45 -0
  57. package/dist/src/v2/config.d.ts.map +1 -0
  58. package/dist/src/v2/config.js +139 -0
  59. package/dist/src/v2/config.js.map +1 -0
  60. package/dist/src/v2/containment.d.ts +55 -0
  61. package/dist/src/v2/containment.d.ts.map +1 -0
  62. package/dist/src/v2/containment.js +370 -0
  63. package/dist/src/v2/containment.js.map +1 -0
  64. package/dist/src/v2/implementation-report.d.ts +18 -0
  65. package/dist/src/v2/implementation-report.d.ts.map +1 -0
  66. package/dist/src/v2/implementation-report.js +147 -0
  67. package/dist/src/v2/implementation-report.js.map +1 -0
  68. package/dist/src/v2/legacy-cutover.d.ts +52 -0
  69. package/dist/src/v2/legacy-cutover.d.ts.map +1 -0
  70. package/dist/src/v2/legacy-cutover.js +87 -0
  71. package/dist/src/v2/legacy-cutover.js.map +1 -0
  72. package/dist/src/v2/mobile-lease.d.ts +97 -0
  73. package/dist/src/v2/mobile-lease.d.ts.map +1 -0
  74. package/dist/src/v2/mobile-lease.js +253 -0
  75. package/dist/src/v2/mobile-lease.js.map +1 -0
  76. package/dist/src/v2/proof-report.d.ts +118 -0
  77. package/dist/src/v2/proof-report.d.ts.map +1 -0
  78. package/dist/src/v2/proof-report.js +703 -0
  79. package/dist/src/v2/proof-report.js.map +1 -0
  80. package/dist/src/v2/proof-store.d.ts +42 -0
  81. package/dist/src/v2/proof-store.d.ts.map +1 -0
  82. package/dist/src/v2/proof-store.js +180 -0
  83. package/dist/src/v2/proof-store.js.map +1 -0
  84. package/dist/src/v2/report-envelope.d.ts +4 -0
  85. package/dist/src/v2/report-envelope.d.ts.map +1 -0
  86. package/dist/src/v2/report-envelope.js +46 -0
  87. package/dist/src/v2/report-envelope.js.map +1 -0
  88. package/dist/src/v2/run-issue.d.ts +213 -0
  89. package/dist/src/v2/run-issue.d.ts.map +1 -0
  90. package/dist/src/v2/run-issue.js +906 -0
  91. package/dist/src/v2/run-issue.js.map +1 -0
  92. package/dist/src/v2/run-store.d.ts +136 -0
  93. package/dist/src/v2/run-store.d.ts.map +1 -0
  94. package/dist/src/v2/run-store.js +346 -0
  95. package/dist/src/v2/run-store.js.map +1 -0
  96. package/dist/src/v2/runtime-assets.d.ts +31 -0
  97. package/dist/src/v2/runtime-assets.d.ts.map +1 -0
  98. package/dist/src/v2/runtime-assets.js +473 -0
  99. package/dist/src/v2/runtime-assets.js.map +1 -0
  100. package/dist/src/v2/runtime.d.ts +137 -0
  101. package/dist/src/v2/runtime.d.ts.map +1 -0
  102. package/dist/src/v2/runtime.js +847 -0
  103. package/dist/src/v2/runtime.js.map +1 -0
  104. package/dist/src/v2/setup-cli.d.ts +5 -0
  105. package/dist/src/v2/setup-cli.d.ts.map +1 -0
  106. package/dist/src/v2/setup-cli.js +83 -0
  107. package/dist/src/v2/setup-cli.js.map +1 -0
  108. package/dist/src/v2/setup-runtime.d.ts +6 -0
  109. package/dist/src/v2/setup-runtime.d.ts.map +1 -0
  110. package/dist/src/v2/setup-runtime.js +213 -0
  111. package/dist/src/v2/setup-runtime.js.map +1 -0
  112. package/dist/src/v2/setup-store.d.ts +19 -0
  113. package/dist/src/v2/setup-store.d.ts.map +1 -0
  114. package/dist/src/v2/setup-store.js +208 -0
  115. package/dist/src/v2/setup-store.js.map +1 -0
  116. package/dist/src/v2/setup.d.ts +147 -0
  117. package/dist/src/v2/setup.d.ts.map +1 -0
  118. package/dist/src/v2/setup.js +529 -0
  119. package/dist/src/v2/setup.js.map +1 -0
  120. package/docs/deep-dive.md +54 -803
  121. package/internal-skills/acceptance-proof/SKILL.md +14 -0
  122. package/internal-skills/acceptance-proof/references/android.md +14 -0
  123. package/internal-skills/acceptance-proof/references/browser.md +13 -0
  124. package/internal-skills/acceptance-proof/references/ios.md +14 -0
  125. package/internal-skills/acceptance-proof/tools/android-lease.mjs +280 -0
  126. package/internal-skills/acceptance-proof/tools/ios-lease.mjs +288 -0
  127. package/internal-skills/agent-auto/SKILL.md +14 -0
  128. package/package.json +11 -18
  129. package/bridge-runtime.json +0 -2719
  130. package/dist/src/bridge-runtime.d.ts +0 -17
  131. package/dist/src/bridge-runtime.d.ts.map +0 -1
  132. package/dist/src/bridge-runtime.js +0 -170
  133. package/dist/src/bridge-runtime.js.map +0 -1
  134. package/dist/src/cli.d.ts +0 -3
  135. package/dist/src/cli.d.ts.map +0 -1
  136. package/dist/src/cli.js +0 -569
  137. package/dist/src/cli.js.map +0 -1
  138. package/dist/src/codex/command-adapter.d.ts +0 -47
  139. package/dist/src/codex/command-adapter.d.ts.map +0 -1
  140. package/dist/src/codex/command-adapter.js +0 -169
  141. package/dist/src/codex/command-adapter.js.map +0 -1
  142. package/dist/src/codex/mobile-device-guard.d.ts +0 -7
  143. package/dist/src/codex/mobile-device-guard.d.ts.map +0 -1
  144. package/dist/src/codex/mobile-device-guard.js +0 -63
  145. package/dist/src/codex/mobile-device-guard.js.map +0 -1
  146. package/dist/src/config/constants.d.ts +0 -6
  147. package/dist/src/config/constants.d.ts.map +0 -1
  148. package/dist/src/config/constants.js +0 -19
  149. package/dist/src/config/constants.js.map +0 -1
  150. package/dist/src/config/schema.d.ts +0 -234
  151. package/dist/src/config/schema.d.ts.map +0 -1
  152. package/dist/src/config/schema.js +0 -673
  153. package/dist/src/config/schema.js.map +0 -1
  154. package/dist/src/fs/durable-atomic-file.d.ts.map +0 -1
  155. package/dist/src/fs/durable-atomic-file.js.map +0 -1
  156. package/dist/src/git/base-branch.d.ts +0 -26
  157. package/dist/src/git/base-branch.d.ts.map +0 -1
  158. package/dist/src/git/base-branch.js +0 -45
  159. package/dist/src/git/base-branch.js.map +0 -1
  160. package/dist/src/git/worktree.d.ts.map +0 -1
  161. package/dist/src/git/worktree.js.map +0 -1
  162. package/dist/src/github/gh-cli.d.ts.map +0 -1
  163. package/dist/src/github/gh-cli.js.map +0 -1
  164. package/dist/src/github/gh-issue-adapter.d.ts.map +0 -1
  165. package/dist/src/github/gh-issue-adapter.js.map +0 -1
  166. package/dist/src/github/gh-pull-request-adapter.d.ts.map +0 -1
  167. package/dist/src/github/gh-pull-request-adapter.js.map +0 -1
  168. package/dist/src/github/issues.d.ts.map +0 -1
  169. package/dist/src/github/issues.js.map +0 -1
  170. package/dist/src/github/pull-requests.d.ts.map +0 -1
  171. package/dist/src/github/pull-requests.js.map +0 -1
  172. package/dist/src/package-info.d.ts +0 -6
  173. package/dist/src/package-info.d.ts.map +0 -1
  174. package/dist/src/package-info.js +0 -13
  175. package/dist/src/package-info.js.map +0 -1
  176. package/dist/src/path-policy.d.ts.map +0 -1
  177. package/dist/src/path-policy.js.map +0 -1
  178. package/dist/src/process/command.d.ts.map +0 -1
  179. package/dist/src/process/command.js.map +0 -1
  180. package/dist/src/review-handoff.d.ts +0 -3
  181. package/dist/src/review-handoff.d.ts.map +0 -1
  182. package/dist/src/review-handoff.js +0 -8
  183. package/dist/src/review-handoff.js.map +0 -1
  184. package/dist/src/runner/acceptance-proof-loop.d.ts +0 -97
  185. package/dist/src/runner/acceptance-proof-loop.d.ts.map +0 -1
  186. package/dist/src/runner/acceptance-proof-loop.js +0 -404
  187. package/dist/src/runner/acceptance-proof-loop.js.map +0 -1
  188. package/dist/src/runner/acceptance-proof-runner.d.ts +0 -24
  189. package/dist/src/runner/acceptance-proof-runner.d.ts.map +0 -1
  190. package/dist/src/runner/acceptance-proof-runner.js +0 -121
  191. package/dist/src/runner/acceptance-proof-runner.js.map +0 -1
  192. package/dist/src/runner/acceptance-proof.d.ts +0 -189
  193. package/dist/src/runner/acceptance-proof.d.ts.map +0 -1
  194. package/dist/src/runner/acceptance-proof.js +0 -594
  195. package/dist/src/runner/acceptance-proof.js.map +0 -1
  196. package/dist/src/runner/agent-attempt.d.ts +0 -105
  197. package/dist/src/runner/agent-attempt.d.ts.map +0 -1
  198. package/dist/src/runner/agent-attempt.js +0 -245
  199. package/dist/src/runner/agent-attempt.js.map +0 -1
  200. package/dist/src/runner/android-visual-proof-command.d.ts +0 -26
  201. package/dist/src/runner/android-visual-proof-command.d.ts.map +0 -1
  202. package/dist/src/runner/android-visual-proof-command.js +0 -592
  203. package/dist/src/runner/android-visual-proof-command.js.map +0 -1
  204. package/dist/src/runner/auto-visual-proof-command.d.ts +0 -15
  205. package/dist/src/runner/auto-visual-proof-command.d.ts.map +0 -1
  206. package/dist/src/runner/auto-visual-proof-command.js +0 -64
  207. package/dist/src/runner/auto-visual-proof-command.js.map +0 -1
  208. package/dist/src/runner/browser-proof-contract.d.ts +0 -134
  209. package/dist/src/runner/browser-proof-contract.d.ts.map +0 -1
  210. package/dist/src/runner/browser-proof-contract.js +0 -400
  211. package/dist/src/runner/browser-proof-contract.js.map +0 -1
  212. package/dist/src/runner/browser-visual-proof-command.d.ts +0 -101
  213. package/dist/src/runner/browser-visual-proof-command.d.ts.map +0 -1
  214. package/dist/src/runner/browser-visual-proof-command.js +0 -532
  215. package/dist/src/runner/browser-visual-proof-command.js.map +0 -1
  216. package/dist/src/runner/command-utils.d.ts +0 -15
  217. package/dist/src/runner/command-utils.d.ts.map +0 -1
  218. package/dist/src/runner/command-utils.js +0 -228
  219. package/dist/src/runner/command-utils.js.map +0 -1
  220. package/dist/src/runner/completion-report.d.ts +0 -121
  221. package/dist/src/runner/completion-report.d.ts.map +0 -1
  222. package/dist/src/runner/completion-report.js +0 -381
  223. package/dist/src/runner/completion-report.js.map +0 -1
  224. package/dist/src/runner/context-snapshot.d.ts +0 -33
  225. package/dist/src/runner/context-snapshot.d.ts.map +0 -1
  226. package/dist/src/runner/context-snapshot.js +0 -99
  227. package/dist/src/runner/context-snapshot.js.map +0 -1
  228. package/dist/src/runner/daemon-command.d.ts +0 -30
  229. package/dist/src/runner/daemon-command.d.ts.map +0 -1
  230. package/dist/src/runner/daemon-command.js +0 -262
  231. package/dist/src/runner/daemon-command.js.map +0 -1
  232. package/dist/src/runner/doctor-command.d.ts +0 -41
  233. package/dist/src/runner/doctor-command.d.ts.map +0 -1
  234. package/dist/src/runner/doctor-command.js +0 -177
  235. package/dist/src/runner/doctor-command.js.map +0 -1
  236. package/dist/src/runner/durable-run-summary.d.ts +0 -80
  237. package/dist/src/runner/durable-run-summary.d.ts.map +0 -1
  238. package/dist/src/runner/durable-run-summary.js +0 -200
  239. package/dist/src/runner/durable-run-summary.js.map +0 -1
  240. package/dist/src/runner/flutter-sdk-discovery.d.ts +0 -5
  241. package/dist/src/runner/flutter-sdk-discovery.d.ts.map +0 -1
  242. package/dist/src/runner/flutter-sdk-discovery.js +0 -103
  243. package/dist/src/runner/flutter-sdk-discovery.js.map +0 -1
  244. package/dist/src/runner/fresh-context-review.d.ts +0 -22
  245. package/dist/src/runner/fresh-context-review.d.ts.map +0 -1
  246. package/dist/src/runner/fresh-context-review.js +0 -177
  247. package/dist/src/runner/fresh-context-review.js.map +0 -1
  248. package/dist/src/runner/handoff-evidence.d.ts +0 -141
  249. package/dist/src/runner/handoff-evidence.d.ts.map +0 -1
  250. package/dist/src/runner/handoff-evidence.js +0 -543
  251. package/dist/src/runner/handoff-evidence.js.map +0 -1
  252. package/dist/src/runner/hygiene-cleanup.d.ts +0 -15
  253. package/dist/src/runner/hygiene-cleanup.d.ts.map +0 -1
  254. package/dist/src/runner/hygiene-cleanup.js +0 -25
  255. package/dist/src/runner/hygiene-cleanup.js.map +0 -1
  256. package/dist/src/runner/ios-visual-proof-command.d.ts +0 -25
  257. package/dist/src/runner/ios-visual-proof-command.d.ts.map +0 -1
  258. package/dist/src/runner/ios-visual-proof-command.js +0 -353
  259. package/dist/src/runner/ios-visual-proof-command.js.map +0 -1
  260. package/dist/src/runner/issue-state-machine.d.ts +0 -39
  261. package/dist/src/runner/issue-state-machine.d.ts.map +0 -1
  262. package/dist/src/runner/issue-state-machine.js +0 -124
  263. package/dist/src/runner/issue-state-machine.js.map +0 -1
  264. package/dist/src/runner/issue-tree.d.ts +0 -65
  265. package/dist/src/runner/issue-tree.d.ts.map +0 -1
  266. package/dist/src/runner/issue-tree.js +0 -474
  267. package/dist/src/runner/issue-tree.js.map +0 -1
  268. package/dist/src/runner/lifecycle-events.d.ts +0 -44
  269. package/dist/src/runner/lifecycle-events.d.ts.map +0 -1
  270. package/dist/src/runner/lifecycle-events.js +0 -108
  271. package/dist/src/runner/lifecycle-events.js.map +0 -1
  272. package/dist/src/runner/local-execution-session.d.ts +0 -112
  273. package/dist/src/runner/local-execution-session.d.ts.map +0 -1
  274. package/dist/src/runner/local-execution-session.js +0 -1064
  275. package/dist/src/runner/local-execution-session.js.map +0 -1
  276. package/dist/src/runner/local-state.d.ts +0 -44
  277. package/dist/src/runner/local-state.d.ts.map +0 -1
  278. package/dist/src/runner/local-state.js +0 -150
  279. package/dist/src/runner/local-state.js.map +0 -1
  280. package/dist/src/runner/mission-activation.d.ts +0 -29
  281. package/dist/src/runner/mission-activation.d.ts.map +0 -1
  282. package/dist/src/runner/mission-activation.js +0 -54
  283. package/dist/src/runner/mission-activation.js.map +0 -1
  284. package/dist/src/runner/mission-agent-broker.d.ts +0 -53
  285. package/dist/src/runner/mission-agent-broker.d.ts.map +0 -1
  286. package/dist/src/runner/mission-agent-broker.js +0 -182
  287. package/dist/src/runner/mission-agent-broker.js.map +0 -1
  288. package/dist/src/runner/mission-cancellation.d.ts +0 -77
  289. package/dist/src/runner/mission-cancellation.d.ts.map +0 -1
  290. package/dist/src/runner/mission-cancellation.js +0 -180
  291. package/dist/src/runner/mission-cancellation.js.map +0 -1
  292. package/dist/src/runner/mission-canonical-path.d.ts +0 -34
  293. package/dist/src/runner/mission-canonical-path.d.ts.map +0 -1
  294. package/dist/src/runner/mission-canonical-path.js +0 -121
  295. package/dist/src/runner/mission-canonical-path.js.map +0 -1
  296. package/dist/src/runner/mission-capability-kernel.d.ts +0 -34
  297. package/dist/src/runner/mission-capability-kernel.d.ts.map +0 -1
  298. package/dist/src/runner/mission-capability-kernel.js +0 -158
  299. package/dist/src/runner/mission-capability-kernel.js.map +0 -1
  300. package/dist/src/runner/mission-check-policy.d.ts +0 -17
  301. package/dist/src/runner/mission-check-policy.d.ts.map +0 -1
  302. package/dist/src/runner/mission-check-policy.js +0 -31
  303. package/dist/src/runner/mission-check-policy.js.map +0 -1
  304. package/dist/src/runner/mission-coordinator-lock.d.ts.map +0 -1
  305. package/dist/src/runner/mission-coordinator-lock.js.map +0 -1
  306. package/dist/src/runner/mission-deployment.d.ts +0 -21
  307. package/dist/src/runner/mission-deployment.d.ts.map +0 -1
  308. package/dist/src/runner/mission-deployment.js +0 -108
  309. package/dist/src/runner/mission-deployment.js.map +0 -1
  310. package/dist/src/runner/mission-evaluation.d.ts +0 -61
  311. package/dist/src/runner/mission-evaluation.d.ts.map +0 -1
  312. package/dist/src/runner/mission-evaluation.js +0 -183
  313. package/dist/src/runner/mission-evaluation.js.map +0 -1
  314. package/dist/src/runner/mission-executor-probe.d.ts +0 -10
  315. package/dist/src/runner/mission-executor-probe.d.ts.map +0 -1
  316. package/dist/src/runner/mission-executor-probe.js +0 -180
  317. package/dist/src/runner/mission-executor-probe.js.map +0 -1
  318. package/dist/src/runner/mission-git-contracts.d.ts +0 -75
  319. package/dist/src/runner/mission-git-contracts.d.ts.map +0 -1
  320. package/dist/src/runner/mission-git-contracts.js +0 -201
  321. package/dist/src/runner/mission-git-contracts.js.map +0 -1
  322. package/dist/src/runner/mission-git-runtime-owner-ref.d.ts +0 -13
  323. package/dist/src/runner/mission-git-runtime-owner-ref.d.ts.map +0 -1
  324. package/dist/src/runner/mission-git-runtime-owner-ref.js +0 -111
  325. package/dist/src/runner/mission-git-runtime-owner-ref.js.map +0 -1
  326. package/dist/src/runner/mission-git-transaction.d.ts +0 -97
  327. package/dist/src/runner/mission-git-transaction.d.ts.map +0 -1
  328. package/dist/src/runner/mission-git-transaction.js +0 -1009
  329. package/dist/src/runner/mission-git-transaction.js.map +0 -1
  330. package/dist/src/runner/mission-identifiers.d.ts +0 -31
  331. package/dist/src/runner/mission-identifiers.d.ts.map +0 -1
  332. package/dist/src/runner/mission-identifiers.js +0 -75
  333. package/dist/src/runner/mission-identifiers.js.map +0 -1
  334. package/dist/src/runner/mission-input-snapshot.d.ts +0 -21
  335. package/dist/src/runner/mission-input-snapshot.d.ts.map +0 -1
  336. package/dist/src/runner/mission-input-snapshot.js +0 -63
  337. package/dist/src/runner/mission-input-snapshot.js.map +0 -1
  338. package/dist/src/runner/mission-ownership.d.ts +0 -38
  339. package/dist/src/runner/mission-ownership.d.ts.map +0 -1
  340. package/dist/src/runner/mission-ownership.js +0 -88
  341. package/dist/src/runner/mission-ownership.js.map +0 -1
  342. package/dist/src/runner/mission-patch-audit.d.ts +0 -21
  343. package/dist/src/runner/mission-patch-audit.d.ts.map +0 -1
  344. package/dist/src/runner/mission-patch-audit.js +0 -186
  345. package/dist/src/runner/mission-patch-audit.js.map +0 -1
  346. package/dist/src/runner/mission-path-language.d.ts +0 -6
  347. package/dist/src/runner/mission-path-language.d.ts.map +0 -1
  348. package/dist/src/runner/mission-path-language.js +0 -106
  349. package/dist/src/runner/mission-path-language.js.map +0 -1
  350. package/dist/src/runner/mission-permit-authority.d.ts +0 -26
  351. package/dist/src/runner/mission-permit-authority.d.ts.map +0 -1
  352. package/dist/src/runner/mission-permit-authority.js +0 -145
  353. package/dist/src/runner/mission-permit-authority.js.map +0 -1
  354. package/dist/src/runner/mission-plan-parent-coordinator.d.ts +0 -87
  355. package/dist/src/runner/mission-plan-parent-coordinator.d.ts.map +0 -1
  356. package/dist/src/runner/mission-plan-parent-coordinator.js +0 -441
  357. package/dist/src/runner/mission-plan-parent-coordinator.js.map +0 -1
  358. package/dist/src/runner/mission-plan-parent.d.ts +0 -156
  359. package/dist/src/runner/mission-plan-parent.d.ts.map +0 -1
  360. package/dist/src/runner/mission-plan-parent.js +0 -589
  361. package/dist/src/runner/mission-plan-parent.js.map +0 -1
  362. package/dist/src/runner/mission-process-executor.d.ts +0 -25
  363. package/dist/src/runner/mission-process-executor.d.ts.map +0 -1
  364. package/dist/src/runner/mission-process-executor.js +0 -182
  365. package/dist/src/runner/mission-process-executor.js.map +0 -1
  366. package/dist/src/runner/mission-publication-git.d.ts +0 -21
  367. package/dist/src/runner/mission-publication-git.d.ts.map +0 -1
  368. package/dist/src/runner/mission-publication-git.js +0 -61
  369. package/dist/src/runner/mission-publication-git.js.map +0 -1
  370. package/dist/src/runner/mission-publication.d.ts +0 -192
  371. package/dist/src/runner/mission-publication.d.ts.map +0 -1
  372. package/dist/src/runner/mission-publication.js +0 -1001
  373. package/dist/src/runner/mission-publication.js.map +0 -1
  374. package/dist/src/runner/mission-quarantine-patch-executor.d.ts +0 -29
  375. package/dist/src/runner/mission-quarantine-patch-executor.d.ts.map +0 -1
  376. package/dist/src/runner/mission-quarantine-patch-executor.js +0 -121
  377. package/dist/src/runner/mission-quarantine-patch-executor.js.map +0 -1
  378. package/dist/src/runner/mission-repository-executor.d.ts +0 -54
  379. package/dist/src/runner/mission-repository-executor.d.ts.map +0 -1
  380. package/dist/src/runner/mission-repository-executor.js +0 -192
  381. package/dist/src/runner/mission-repository-executor.js.map +0 -1
  382. package/dist/src/runner/mission-repository-observer.d.ts +0 -8
  383. package/dist/src/runner/mission-repository-observer.d.ts.map +0 -1
  384. package/dist/src/runner/mission-repository-observer.js +0 -24
  385. package/dist/src/runner/mission-repository-observer.js.map +0 -1
  386. package/dist/src/runner/mission-reservations.d.ts +0 -15
  387. package/dist/src/runner/mission-reservations.d.ts.map +0 -1
  388. package/dist/src/runner/mission-reservations.js +0 -116
  389. package/dist/src/runner/mission-reservations.js.map +0 -1
  390. package/dist/src/runner/mission-resolution-loop.d.ts +0 -172
  391. package/dist/src/runner/mission-resolution-loop.d.ts.map +0 -1
  392. package/dist/src/runner/mission-resolution-loop.js +0 -318
  393. package/dist/src/runner/mission-resolution-loop.js.map +0 -1
  394. package/dist/src/runner/mission-runtime-owner.d.ts +0 -36
  395. package/dist/src/runner/mission-runtime-owner.d.ts.map +0 -1
  396. package/dist/src/runner/mission-runtime-owner.js +0 -174
  397. package/dist/src/runner/mission-runtime-owner.js.map +0 -1
  398. package/dist/src/runner/mission-safe-executor.d.ts +0 -96
  399. package/dist/src/runner/mission-safe-executor.d.ts.map +0 -1
  400. package/dist/src/runner/mission-safe-executor.js +0 -288
  401. package/dist/src/runner/mission-safe-executor.js.map +0 -1
  402. package/dist/src/runner/mission-sandbox.d.ts +0 -16
  403. package/dist/src/runner/mission-sandbox.d.ts.map +0 -1
  404. package/dist/src/runner/mission-sandbox.js +0 -91
  405. package/dist/src/runner/mission-sandbox.js.map +0 -1
  406. package/dist/src/runner/mission-scheduler.d.ts +0 -57
  407. package/dist/src/runner/mission-scheduler.d.ts.map +0 -1
  408. package/dist/src/runner/mission-scheduler.js +0 -205
  409. package/dist/src/runner/mission-scheduler.js.map +0 -1
  410. package/dist/src/runner/mission-scope-expansion.d.ts +0 -47
  411. package/dist/src/runner/mission-scope-expansion.d.ts.map +0 -1
  412. package/dist/src/runner/mission-scope-expansion.js +0 -147
  413. package/dist/src/runner/mission-scope-expansion.js.map +0 -1
  414. package/dist/src/runner/mission-state-machine.d.ts +0 -118
  415. package/dist/src/runner/mission-state-machine.d.ts.map +0 -1
  416. package/dist/src/runner/mission-state-machine.js +0 -316
  417. package/dist/src/runner/mission-state-machine.js.map +0 -1
  418. package/dist/src/runner/mission-state-store.d.ts +0 -70
  419. package/dist/src/runner/mission-state-store.d.ts.map +0 -1
  420. package/dist/src/runner/mission-state-store.js +0 -916
  421. package/dist/src/runner/mission-state-store.js.map +0 -1
  422. package/dist/src/runner/mobile-device-lease.d.ts +0 -11
  423. package/dist/src/runner/mobile-device-lease.d.ts.map +0 -1
  424. package/dist/src/runner/mobile-device-lease.js +0 -121
  425. package/dist/src/runner/mobile-device-lease.js.map +0 -1
  426. package/dist/src/runner/mobile-visual-proof-command.d.ts +0 -17
  427. package/dist/src/runner/mobile-visual-proof-command.d.ts.map +0 -1
  428. package/dist/src/runner/mobile-visual-proof-command.js +0 -168
  429. package/dist/src/runner/mobile-visual-proof-command.js.map +0 -1
  430. package/dist/src/runner/plan-auto-command.d.ts +0 -35
  431. package/dist/src/runner/plan-auto-command.d.ts.map +0 -1
  432. package/dist/src/runner/plan-auto-command.js +0 -918
  433. package/dist/src/runner/plan-auto-command.js.map +0 -1
  434. package/dist/src/runner/plan-auto-recovery.d.ts +0 -83
  435. package/dist/src/runner/plan-auto-recovery.d.ts.map +0 -1
  436. package/dist/src/runner/plan-auto-recovery.js +0 -303
  437. package/dist/src/runner/plan-auto-recovery.js.map +0 -1
  438. package/dist/src/runner/prompt.d.ts +0 -68
  439. package/dist/src/runner/prompt.d.ts.map +0 -1
  440. package/dist/src/runner/prompt.js +0 -202
  441. package/dist/src/runner/prompt.js.map +0 -1
  442. package/dist/src/runner/proof-routing.d.ts +0 -73
  443. package/dist/src/runner/proof-routing.d.ts.map +0 -1
  444. package/dist/src/runner/proof-routing.js +0 -182
  445. package/dist/src/runner/proof-routing.js.map +0 -1
  446. package/dist/src/runner/proof-strategy.d.ts +0 -21
  447. package/dist/src/runner/proof-strategy.d.ts.map +0 -1
  448. package/dist/src/runner/proof-strategy.js +0 -26
  449. package/dist/src/runner/proof-strategy.js.map +0 -1
  450. package/dist/src/runner/recovery.d.ts +0 -25
  451. package/dist/src/runner/recovery.d.ts.map +0 -1
  452. package/dist/src/runner/recovery.js +0 -89
  453. package/dist/src/runner/recovery.js.map +0 -1
  454. package/dist/src/runner/review-gate-policy.d.ts +0 -13
  455. package/dist/src/runner/review-gate-policy.d.ts.map +0 -1
  456. package/dist/src/runner/review-gate-policy.js +0 -241
  457. package/dist/src/runner/review-gate-policy.js.map +0 -1
  458. package/dist/src/runner/review-gates.d.ts +0 -28
  459. package/dist/src/runner/review-gates.d.ts.map +0 -1
  460. package/dist/src/runner/review-gates.js +0 -328
  461. package/dist/src/runner/review-gates.js.map +0 -1
  462. package/dist/src/runner/rework-policy.d.ts +0 -48
  463. package/dist/src/runner/rework-policy.d.ts.map +0 -1
  464. package/dist/src/runner/rework-policy.js +0 -150
  465. package/dist/src/runner/rework-policy.js.map +0 -1
  466. package/dist/src/runner/run-log.d.ts +0 -18
  467. package/dist/src/runner/run-log.d.ts.map +0 -1
  468. package/dist/src/runner/run-log.js +0 -53
  469. package/dist/src/runner/run-log.js.map +0 -1
  470. package/dist/src/runner/runner-handoff-decision.d.ts +0 -48
  471. package/dist/src/runner/runner-handoff-decision.d.ts.map +0 -1
  472. package/dist/src/runner/runner-handoff-decision.js +0 -93
  473. package/dist/src/runner/runner-handoff-decision.js.map +0 -1
  474. package/dist/src/runner/safety.d.ts +0 -14
  475. package/dist/src/runner/safety.d.ts.map +0 -1
  476. package/dist/src/runner/safety.js +0 -31
  477. package/dist/src/runner/safety.js.map +0 -1
  478. package/dist/src/runner/scope-isolation-policy.d.ts +0 -17
  479. package/dist/src/runner/scope-isolation-policy.d.ts.map +0 -1
  480. package/dist/src/runner/scope-isolation-policy.js +0 -82
  481. package/dist/src/runner/scope-isolation-policy.js.map +0 -1
  482. package/dist/src/runner/scoped-auto-command.d.ts +0 -90
  483. package/dist/src/runner/scoped-auto-command.d.ts.map +0 -1
  484. package/dist/src/runner/scoped-auto-command.js +0 -561
  485. package/dist/src/runner/scoped-auto-command.js.map +0 -1
  486. package/dist/src/runner/scoped-recovery.d.ts +0 -78
  487. package/dist/src/runner/scoped-recovery.d.ts.map +0 -1
  488. package/dist/src/runner/scoped-recovery.js +0 -601
  489. package/dist/src/runner/scoped-recovery.js.map +0 -1
  490. package/dist/src/runner/session-home.d.ts +0 -8
  491. package/dist/src/runner/session-home.d.ts.map +0 -1
  492. package/dist/src/runner/session-home.js +0 -18
  493. package/dist/src/runner/session-home.js.map +0 -1
  494. package/dist/src/runner/status-command.d.ts +0 -38
  495. package/dist/src/runner/status-command.d.ts.map +0 -1
  496. package/dist/src/runner/status-command.js +0 -97
  497. package/dist/src/runner/status-command.js.map +0 -1
  498. package/dist/src/runner/target-activity-fence.d.ts.map +0 -1
  499. package/dist/src/runner/target-activity-fence.js.map +0 -1
  500. package/dist/src/runner/terminal-outcome.d.ts +0 -58
  501. package/dist/src/runner/terminal-outcome.d.ts.map +0 -1
  502. package/dist/src/runner/terminal-outcome.js +0 -73
  503. package/dist/src/runner/terminal-outcome.js.map +0 -1
  504. package/dist/src/runner/visual-proof-runner.d.ts +0 -27
  505. package/dist/src/runner/visual-proof-runner.d.ts.map +0 -1
  506. package/dist/src/runner/visual-proof-runner.js +0 -379
  507. package/dist/src/runner/visual-proof-runner.js.map +0 -1
  508. package/dist/src/runner/worktree-cleanup.d.ts +0 -27
  509. package/dist/src/runner/worktree-cleanup.d.ts.map +0 -1
  510. package/dist/src/runner/worktree-cleanup.js +0 -63
  511. package/dist/src/runner/worktree-cleanup.js.map +0 -1
  512. package/dist/src/setup/codex-command-resolver.d.ts +0 -10
  513. package/dist/src/setup/codex-command-resolver.d.ts.map +0 -1
  514. package/dist/src/setup/codex-command-resolver.js +0 -91
  515. package/dist/src/setup/codex-command-resolver.js.map +0 -1
  516. package/dist/src/setup/github-label-adapter.d.ts +0 -13
  517. package/dist/src/setup/github-label-adapter.d.ts.map +0 -1
  518. package/dist/src/setup/github-label-adapter.js +0 -28
  519. package/dist/src/setup/github-label-adapter.js.map +0 -1
  520. package/dist/src/setup/labels.d.ts +0 -27
  521. package/dist/src/setup/labels.d.ts.map +0 -1
  522. package/dist/src/setup/labels.js +0 -42
  523. package/dist/src/setup/labels.js.map +0 -1
  524. package/dist/src/setup/project-config.d.ts +0 -24
  525. package/dist/src/setup/project-config.d.ts.map +0 -1
  526. package/dist/src/setup/project-config.js +0 -678
  527. package/dist/src/setup/project-config.js.map +0 -1
  528. package/dist/src/setup/prompt-sync.d.ts +0 -14
  529. package/dist/src/setup/prompt-sync.d.ts.map +0 -1
  530. package/dist/src/setup/prompt-sync.js +0 -228
  531. package/dist/src/setup/prompt-sync.js.map +0 -1
  532. package/dist/src/setup/setup-command.d.ts +0 -29
  533. package/dist/src/setup/setup-command.d.ts.map +0 -1
  534. package/dist/src/setup/setup-command.js +0 -304
  535. package/dist/src/setup/setup-command.js.map +0 -1
  536. package/dist/src/setup/skill-runtime-v2-preparation.d.ts +0 -56
  537. package/dist/src/setup/skill-runtime-v2-preparation.d.ts.map +0 -1
  538. package/dist/src/setup/skill-runtime-v2-preparation.js +0 -304
  539. package/dist/src/setup/skill-runtime-v2-preparation.js.map +0 -1
  540. package/dist/src/setup/workflows.d.ts +0 -10
  541. package/dist/src/setup/workflows.d.ts.map +0 -1
  542. package/dist/src/setup/workflows.js +0 -41
  543. package/dist/src/setup/workflows.js.map +0 -1
  544. package/prompts/setup-skill.md +0 -12
  545. package/prompts/workflows/acceptance-proof.md +0 -29
  546. package/prompts/workflows/breakdown-review.md +0 -48
  547. package/prompts/workflows/issue-breakdown.md +0 -155
  548. package/prompts/workflows/issue-tree-orchestration.md +0 -163
  549. package/prompts/workflows/prd.md +0 -80
  550. package/prompts/workflows/scoped-implementation.md +0 -129
  551. package/prompts/workflows/triage.md +0 -149
  552. /package/dist/src/{process → v2/adapters}/command.d.ts +0 -0
  553. /package/dist/src/{process → v2/adapters}/command.js +0 -0
  554. /package/dist/src/{fs → v2/adapters}/durable-atomic-file.d.ts +0 -0
  555. /package/dist/src/{fs → v2/adapters}/durable-atomic-file.js +0 -0
  556. /package/dist/src/{github → v2/adapters}/gh-cli.d.ts +0 -0
  557. /package/dist/src/{github → v2/adapters}/gh-cli.js +0 -0
  558. /package/dist/src/{github → v2/adapters}/gh-issue-adapter.d.ts +0 -0
  559. /package/dist/src/{github → v2/adapters}/gh-issue-adapter.js +0 -0
  560. /package/dist/src/{github → v2/adapters}/gh-pull-request-adapter.d.ts +0 -0
  561. /package/dist/src/{github → v2/adapters}/gh-pull-request-adapter.js +0 -0
  562. /package/dist/src/{github → v2/adapters}/issues.d.ts +0 -0
  563. /package/dist/src/{github → v2/adapters}/issues.js +0 -0
  564. /package/dist/src/{runner → v2/adapters}/mission-coordinator-lock.d.ts +0 -0
  565. /package/dist/src/{runner → v2/adapters}/mission-coordinator-lock.js +0 -0
  566. /package/dist/src/{path-policy.d.ts → v2/adapters/path-policy.d.ts} +0 -0
  567. /package/dist/src/{path-policy.js → v2/adapters/path-policy.js} +0 -0
  568. /package/dist/src/{github → v2/adapters}/pull-requests.d.ts +0 -0
  569. /package/dist/src/{github → v2/adapters}/pull-requests.js +0 -0
  570. /package/dist/src/{runner → v2/adapters}/target-activity-fence.d.ts +0 -0
@@ -0,0 +1,529 @@
1
+ import { lstat, realpath } from 'node:fs/promises';
2
+ import { basename, resolve } from 'node:path';
3
+ import { canonicalJson } from './containment.js';
4
+ import { parseAgentAutoConfig } from './config.js';
5
+ import { detectLegacyConfig, parseCutoverManifest, sha256, } from './legacy-cutover.js';
6
+ import { SetupStore } from './setup-store.js';
7
+ const CONFIG_PATH = '.codex-orchestrator/config.json';
8
+ const IGNORE_PATH = '.gitignore';
9
+ const IGNORE_START = '# codex-orchestrator v2 runtime start';
10
+ const IGNORE_END = '# codex-orchestrator v2 runtime end';
11
+ export class Setup {
12
+ dependencies;
13
+ store;
14
+ constructor(dependencies, store = new SetupStore()) {
15
+ this.dependencies = dependencies;
16
+ this.store = store;
17
+ }
18
+ async execute(intent) {
19
+ if (!isIntent(intent))
20
+ return { status: 'unsupported-schema', reason: 'Setup intent is invalid.' };
21
+ let targetRoot = resolve(intent.targetRoot);
22
+ try {
23
+ const info = await lstat(targetRoot);
24
+ if (!info.isDirectory() || info.isSymbolicLink())
25
+ return { status: 'io-failed', detail: failure('target-root', 'Target root is not a direct directory.') };
26
+ targetRoot = await realpath(targetRoot);
27
+ }
28
+ catch {
29
+ return { status: 'io-failed', detail: failure('target-root', 'Target root is unavailable.') };
30
+ }
31
+ const observed = await this.dependencies.repository.inspect(targetRoot).catch(() => undefined);
32
+ if (!observed?.repository || !observed.baseBranch) {
33
+ return { status: 'repository-mismatch', reason: 'Canonical repository and base branch could not be determined.' };
34
+ }
35
+ if (intent.repository && !sameRepository(intent.repository, observed.repository)) {
36
+ return { status: 'repository-mismatch', reason: 'Requested repository does not match target origin.' };
37
+ }
38
+ try {
39
+ if (intent.operation === 'configure') {
40
+ return await this.configure(targetRoot, intent, observed.repository, observed.baseBranch);
41
+ }
42
+ if (intent.operation === 'prepare-labels') {
43
+ return await this.prepareLabels(targetRoot, intent, observed.repository, observed.baseBranch);
44
+ }
45
+ if (intent.operation === 'doctor' || intent.operation === 'status') {
46
+ return await this.inspect(targetRoot, observed.repository);
47
+ }
48
+ return await this.fresh(targetRoot, intent, observed.repository, observed.baseBranch);
49
+ }
50
+ catch {
51
+ return { status: 'io-failed', detail: failure('setup-operation', 'Setup operation could not complete safely.') };
52
+ }
53
+ }
54
+ async configure(targetRoot, intent, repository, baseBranch) {
55
+ const existing = await this.store.readOptional(resolve(targetRoot, CONFIG_PATH));
56
+ if (existing) {
57
+ let config;
58
+ try {
59
+ config = parseAgentAutoConfig(JSON.parse(existing.toString('utf8')));
60
+ }
61
+ catch {
62
+ return classifyNonV2Config(existing);
63
+ }
64
+ if (!sameRepository(config.github, repository) || (intent.repository && !sameRepository(config.github, intent.repository))) {
65
+ return { status: 'repository-mismatch', reason: 'Persisted repository does not match target origin.' };
66
+ }
67
+ return { status: 'unchanged' };
68
+ }
69
+ const config = await defaultConfig(targetRoot, repository, baseBranch, this.store);
70
+ const currentIgnore = await this.store.readOptional(resolve(targetRoot, IGNORE_PATH));
71
+ const nextIgnore = renderIgnore(currentIgnore?.toString('utf8') ?? '', config);
72
+ const actions = [];
73
+ if (nextIgnore.changed)
74
+ actions.push({ kind: 'write-ignore', path: IGNORE_PATH });
75
+ actions.push({ kind: 'write-config', path: CONFIG_PATH });
76
+ if (intent.dryRun)
77
+ return { status: 'planned', actions };
78
+ const lock = await this.dependencies.ownership.acquire(repository);
79
+ try {
80
+ const recheck = await this.store.readOptional(resolve(targetRoot, CONFIG_PATH));
81
+ if (recheck) {
82
+ try {
83
+ const parsed = parseAgentAutoConfig(JSON.parse(recheck.toString('utf8')));
84
+ return sameRepository(parsed.github, repository)
85
+ ? { status: 'unchanged' }
86
+ : { status: 'repository-mismatch', reason: 'Persisted repository changed while waiting for setup ownership.' };
87
+ }
88
+ catch {
89
+ return classifyNonV2Config(recheck);
90
+ }
91
+ }
92
+ if (nextIgnore.changed)
93
+ await this.store.writeAtomic(resolve(targetRoot, IGNORE_PATH), nextIgnore.bytes, 0o644);
94
+ await this.store.writeAtomic(resolve(targetRoot, CONFIG_PATH), `${canonicalJson(config)}\n`, 0o644);
95
+ return { status: 'created' };
96
+ }
97
+ catch {
98
+ return { status: 'io-failed', detail: failure('configure-write', 'Setup could not durably commit target configuration.') };
99
+ }
100
+ finally {
101
+ await lock.release();
102
+ }
103
+ }
104
+ async prepareLabels(targetRoot, intent, repository, baseBranch) {
105
+ const existing = await this.store.readOptional(resolve(targetRoot, CONFIG_PATH));
106
+ let config;
107
+ const localActions = [];
108
+ let nextIgnore;
109
+ if (existing) {
110
+ try {
111
+ config = parseAgentAutoConfig(JSON.parse(existing.toString('utf8')));
112
+ }
113
+ catch {
114
+ return classifyNonV2Config(existing);
115
+ }
116
+ if (!sameRepository(config.github, repository)) {
117
+ return { status: 'repository-mismatch', reason: 'Persisted repository does not match target origin.' };
118
+ }
119
+ }
120
+ else {
121
+ try {
122
+ config = await defaultConfig(targetRoot, repository, baseBranch, this.store);
123
+ }
124
+ catch {
125
+ return { status: 'io-failed', detail: failure('config-plan', 'Setup could not derive deterministic configuration.') };
126
+ }
127
+ nextIgnore = renderIgnore((await this.store.readOptional(resolve(targetRoot, IGNORE_PATH)))?.toString('utf8') ?? '', config);
128
+ if (nextIgnore.changed)
129
+ localActions.push({ kind: 'write-ignore', path: IGNORE_PATH });
130
+ localActions.push({ kind: 'write-config', path: CONFIG_PATH });
131
+ }
132
+ let observedLabels;
133
+ try {
134
+ observedLabels = await this.listAllLabels(repository);
135
+ }
136
+ catch {
137
+ return { status: 'transport-failed', detail: failure('label-list', 'GitHub labels could not be inspected.') };
138
+ }
139
+ const existingNames = new Set(observedLabels.map((name) => name.toLowerCase()));
140
+ const policyLabels = Object.values(config.github.labels);
141
+ const missing = policyLabels.filter((label) => !existingNames.has(label.name.toLowerCase()));
142
+ const actions = [...localActions, ...missing.map((label) => ({ kind: 'create-label', name: label.name }))];
143
+ if (intent.dryRun)
144
+ return { status: 'planned', actions };
145
+ const lock = await this.dependencies.ownership.acquire(repository);
146
+ const created = [];
147
+ try {
148
+ if (!existing) {
149
+ const recheck = await this.store.readOptional(resolve(targetRoot, CONFIG_PATH));
150
+ if (recheck) {
151
+ try {
152
+ const parsed = parseAgentAutoConfig(JSON.parse(recheck.toString('utf8')));
153
+ if (!sameRepository(parsed.github, repository)) {
154
+ return { status: 'repository-mismatch', reason: 'Persisted repository changed while waiting for setup ownership.' };
155
+ }
156
+ }
157
+ catch {
158
+ return classifyNonV2Config(recheck);
159
+ }
160
+ }
161
+ else {
162
+ if (nextIgnore?.changed)
163
+ await this.store.writeAtomic(resolve(targetRoot, IGNORE_PATH), nextIgnore.bytes, 0o644);
164
+ await this.store.writeAtomic(resolve(targetRoot, CONFIG_PATH), `${canonicalJson(config)}\n`, 0o644);
165
+ }
166
+ }
167
+ for (const [index, label] of missing.entries()) {
168
+ let outcome;
169
+ try {
170
+ outcome = await this.dependencies.labels.create({ ...repository, label });
171
+ }
172
+ catch {
173
+ return {
174
+ status: 'labels-partial', created, missing: missing.slice(index).map((item) => item.name),
175
+ cause: failure('label-create-transport', 'GitHub label creation did not settle.'),
176
+ };
177
+ }
178
+ if (outcome === 'created') {
179
+ created.push(label.name);
180
+ continue;
181
+ }
182
+ if (outcome === 'already-exists') {
183
+ let reread;
184
+ try {
185
+ reread = await this.listAllLabels(repository);
186
+ }
187
+ catch {
188
+ return {
189
+ status: 'labels-partial', created, missing: missing.slice(index).map((item) => item.name),
190
+ cause: failure('label-reconcile', 'Concurrent label creation could not be reconciled.'),
191
+ };
192
+ }
193
+ if (reread.some((name) => name.toLowerCase() === label.name.toLowerCase()))
194
+ continue;
195
+ return {
196
+ status: 'labels-partial', created, missing: missing.slice(index).map((item) => item.name),
197
+ cause: failure('label-reconcile', 'Concurrent label creation was not observable.'),
198
+ };
199
+ }
200
+ return { status: 'labels-partial', created, missing: missing.slice(index).map((item) => item.name), cause: outcome.failure };
201
+ }
202
+ return { status: 'labels-prepared' };
203
+ }
204
+ catch {
205
+ return { status: 'io-failed', detail: failure('prepare-labels', 'Label preparation could not durably configure the target.') };
206
+ }
207
+ finally {
208
+ await lock.release();
209
+ }
210
+ }
211
+ async inspect(targetRoot, repository) {
212
+ const bytes = await this.store.readOptional(resolve(targetRoot, CONFIG_PATH));
213
+ if (!bytes) {
214
+ return {
215
+ status: 'inspected', disposition: 'blocked', diagnostics: [
216
+ { code: 'config-missing', status: 'block', summary: 'V2 configuration is missing.' },
217
+ ],
218
+ };
219
+ }
220
+ let config;
221
+ try {
222
+ config = parseAgentAutoConfig(JSON.parse(bytes.toString('utf8')));
223
+ }
224
+ catch {
225
+ const classified = classifyNonV2Config(bytes);
226
+ const legacy = classified.status === 'legacy-detected';
227
+ return {
228
+ status: 'inspected', disposition: 'blocked', diagnostics: [{
229
+ code: legacy ? 'legacy-detected' : 'unsupported-schema', status: 'block',
230
+ summary: legacy ? 'Legacy configuration requires setup --fresh.' : 'Configuration schema is unsupported.',
231
+ }],
232
+ };
233
+ }
234
+ const diagnostics = [
235
+ { code: 'config-v2', status: 'pass', summary: 'V2 configuration is valid.' },
236
+ ];
237
+ const repositoryMatch = sameRepository(config.github, repository);
238
+ diagnostics.push(repositoryMatch
239
+ ? { code: 'repository', status: 'pass', summary: 'Configured repository matches target origin.' }
240
+ : { code: 'repository', status: 'block', summary: 'Configured repository does not match target origin.' });
241
+ const owner = await this.dependencies.ownership.inspectV2Owner(repository).catch(() => ({ status: 'ambiguous' }));
242
+ diagnostics.push(owner.status === 'active' || owner.status === 'ambiguous'
243
+ ? { code: 'owner', status: 'block', summary: 'An active or ambiguous V2 owner blocks setup.' }
244
+ : { code: 'owner', status: 'pass', summary: 'No active V2 owner blocks setup.' });
245
+ try {
246
+ const labels = new Set((await this.listAllLabels(repository)).map((name) => name.toLowerCase()));
247
+ const missing = Object.values(config.github.labels).filter((label) => !labels.has(label.name.toLowerCase()));
248
+ diagnostics.push(missing.length === 0
249
+ ? { code: 'labels', status: 'pass', summary: 'All configured V2 labels exist.' }
250
+ : { code: 'labels', status: 'block', summary: 'One or more configured V2 labels are missing.' });
251
+ }
252
+ catch {
253
+ diagnostics.push({ code: 'labels', status: 'block', summary: 'Configured V2 labels could not be inspected.' });
254
+ }
255
+ return {
256
+ status: 'inspected',
257
+ disposition: diagnostics.some((diagnostic) => diagnostic.status === 'block') ? 'blocked' : 'ok',
258
+ diagnostics,
259
+ };
260
+ }
261
+ async listAllLabels(repository) {
262
+ const output = [];
263
+ const cursors = new Set();
264
+ let cursor;
265
+ for (let page = 0; page < 100; page += 1) {
266
+ const result = await this.dependencies.labels.listPage({ ...repository, cursor });
267
+ output.push(...result.labels.map((label) => label.name));
268
+ if (!result.nextCursor)
269
+ return output;
270
+ if (cursors.has(result.nextCursor))
271
+ throw new Error('label pagination cursor repeated');
272
+ cursors.add(result.nextCursor);
273
+ cursor = result.nextCursor;
274
+ }
275
+ throw new Error('label pagination exceeded bound');
276
+ }
277
+ async fresh(targetRoot, intent, repository, baseBranch) {
278
+ const configPath = resolve(targetRoot, CONFIG_PATH);
279
+ let sourceBytes;
280
+ try {
281
+ sourceBytes = await this.store.readOptional(configPath);
282
+ }
283
+ catch {
284
+ return { status: 'io-failed', detail: failure('fresh-config-read', 'Fresh could not read target configuration safely.') };
285
+ }
286
+ if (!sourceBytes)
287
+ return { status: 'unsupported-schema', reason: 'Fresh requires a recognized Legacy configuration.' };
288
+ try {
289
+ const v2 = parseAgentAutoConfig(JSON.parse(sourceBytes.toString('utf8')));
290
+ if (!sameRepository(v2.github, repository))
291
+ return { status: 'repository-mismatch', reason: 'Persisted repository does not match target origin.' };
292
+ return this.replayCommittedFresh(targetRoot, repository, sourceBytes);
293
+ }
294
+ catch {
295
+ // Detect-only parsing below owns the Legacy boundary.
296
+ }
297
+ const detected = detectLegacyConfig(sourceBytes);
298
+ if (detected.status !== 'recognized')
299
+ return { status: 'unsupported-schema', reason: 'Fresh configuration schema is unsupported.' };
300
+ const legacy = detected.record;
301
+ if (!sameRepository(legacy.repository, repository) || (intent.repository && !sameRepository(legacy.repository, intent.repository))) {
302
+ return { status: 'repository-mismatch', reason: 'Legacy repository does not match target origin.' };
303
+ }
304
+ if (intent.dryRun) {
305
+ return { status: 'planned', actions: [
306
+ { kind: 'backup-legacy', path: '.codex-orchestrator/v2/legacy-backups' },
307
+ { kind: 'commit-fresh', path: CONFIG_PATH },
308
+ ] };
309
+ }
310
+ let ownerLock;
311
+ let legacyFence;
312
+ try {
313
+ const owner = await this.dependencies.ownership.inspectV2Owner(repository);
314
+ if (owner.status === 'active' || owner.status === 'ambiguous') {
315
+ return { status: 'blocked-active', reason: owner.reason ?? 'An active or ambiguous V2 owner blocks fresh.' };
316
+ }
317
+ ownerLock = await this.dependencies.ownership.acquire(repository);
318
+ legacyFence = await this.dependencies.ownership.acquireLegacyFence(targetRoot);
319
+ let running;
320
+ try {
321
+ running = await this.dependencies.labels.listOpenIssueNumbersWithLabel({ ...repository, label: legacy.runningLabel });
322
+ }
323
+ catch {
324
+ return { status: 'transport-failed', detail: failure('fresh-running-read', 'Fresh could not prove remote running claims are absent.') };
325
+ }
326
+ if (running.length > 0)
327
+ return { status: 'blocked-active', reason: 'Open Legacy running claims block fresh.' };
328
+ const config = await defaultConfig(targetRoot, repository, baseBranch, this.store);
329
+ const roots = [config.runner.workspaceRoot, config.runner.stateDir, config.proof.artifactDir];
330
+ for (const root of roots) {
331
+ if (!await this.store.isAbsentOrEmptyDirectory(resolve(targetRoot, root))) {
332
+ return { status: 'blocked-active', reason: `V2 destination root is not empty: ${root}` };
333
+ }
334
+ }
335
+ let retained;
336
+ try {
337
+ retained = await this.dependencies.repository.inspectRetained({
338
+ targetRoot,
339
+ legacy: { workspaceRoot: legacy.workspaceRoot, stateDir: legacy.stateDir },
340
+ v2: { workspaceRoot: config.runner.workspaceRoot, stateDir: config.runner.stateDir, proofDir: config.proof.artifactDir },
341
+ });
342
+ }
343
+ catch {
344
+ return { status: 'io-failed', detail: failure('fresh-retained-read', 'Fresh could not inspect retained worktrees and refs.') };
345
+ }
346
+ if (retained.collisions.length > 0)
347
+ return { status: 'blocked-active', reason: 'Retained worktree or ref collision blocks fresh.' };
348
+ const configBytes = `${canonicalJson(config)}\n`;
349
+ const manifest = await this.buildManifest(targetRoot, legacy, configBytes, retained);
350
+ const manifestDirectory = resolve(targetRoot, '.codex-orchestrator/v2/fresh-cutover');
351
+ const manifestPath = resolve(manifestDirectory, `${manifest.transactionId}.json`);
352
+ const existingManifests = await this.readManifests(manifestDirectory);
353
+ if (existingManifests.some((entry) => entry.transactionId !== manifest.transactionId)) {
354
+ return { status: 'blocked-active', reason: 'Ambiguous fresh-cutover manifests block authority switch.' };
355
+ }
356
+ const existingManifest = existingManifests[0];
357
+ if (existingManifest && canonicalJson(existingManifest) !== canonicalJson(manifest)) {
358
+ return { status: 'blocked-active', reason: 'Fresh-cutover manifest does not match current Legacy evidence.' };
359
+ }
360
+ if (!existingManifest)
361
+ await this.store.writeAtomic(manifestPath, `${canonicalJson(manifest)}\n`, 0o600);
362
+ await this.copyConfigBackupIfNeeded(resolve(targetRoot, CONFIG_PATH), resolve(targetRoot, manifest.backup.configPath), manifest.source.configSha256);
363
+ await this.copyBackupIfNeeded(resolve(targetRoot, legacy.stateDir), resolve(targetRoot, manifest.backup.statePath), manifest.source.stateSha256);
364
+ const ignore = renderIgnore((await this.store.readOptional(resolve(targetRoot, IGNORE_PATH)))?.toString('utf8') ?? '', config);
365
+ if (ignore.changed)
366
+ await this.store.writeAtomic(resolve(targetRoot, IGNORE_PATH), ignore.bytes, 0o644);
367
+ await this.store.writeAtomic(configPath, configBytes, 0o644);
368
+ return { status: 'fresh-reset' };
369
+ }
370
+ catch {
371
+ return { status: 'io-failed', detail: failure('fresh-write', 'Fresh could not durably complete the cutover.') };
372
+ }
373
+ finally {
374
+ await legacyFence?.release().catch(() => undefined);
375
+ await ownerLock?.release().catch(() => undefined);
376
+ }
377
+ }
378
+ async replayCommittedFresh(targetRoot, repository, configBytes) {
379
+ let manifests;
380
+ try {
381
+ manifests = await this.readManifests(resolve(targetRoot, '.codex-orchestrator/v2/fresh-cutover'));
382
+ }
383
+ catch {
384
+ return { status: 'unsupported-schema', reason: 'Fresh-cutover manifest set is unreadable or ambiguous.' };
385
+ }
386
+ const matches = manifests.filter((manifest) => sameRepository(manifest.repository, repository)
387
+ && manifest.destination.configSha256 === sha256(configBytes));
388
+ return matches.length === 1 && manifests.length === 1
389
+ ? { status: 'fresh-reset' }
390
+ : { status: 'unsupported-schema', reason: 'Valid V2 configuration is not linked to one exact fresh-cutover manifest.' };
391
+ }
392
+ async readManifests(directory) {
393
+ const output = [];
394
+ for (const path of await this.store.listJsonFiles(directory)) {
395
+ const bytes = await this.store.readOptional(path);
396
+ if (!bytes)
397
+ throw new Error('fresh manifest disappeared');
398
+ output.push(parseCutoverManifest(JSON.parse(bytes.toString('utf8'))));
399
+ }
400
+ return output;
401
+ }
402
+ async buildManifest(targetRoot, legacy, configBytes, retained) {
403
+ const stateSha256 = await this.store.hashPath(resolve(targetRoot, legacy.stateDir));
404
+ const destination = {
405
+ workspaceRoot: '.codex-orchestrator/workspaces-v2', stateDir: '.codex-orchestrator/v2/state',
406
+ proofDir: '.codex-orchestrator/v2/proofs', configSha256: sha256(configBytes),
407
+ };
408
+ const inventory = {
409
+ worktreePaths: [...retained.worktreePaths].sort(), localRefs: [...retained.localRefs].sort(), remoteRefs: [...retained.remoteRefs].sort(),
410
+ };
411
+ const transactionId = sha256(canonicalJson({
412
+ repository: legacy.repository, configSha256: legacy.configSha256, stateSha256, destination, retained: inventory,
413
+ }));
414
+ const backupRoot = `.codex-orchestrator/v2/legacy-backups/${transactionId}`;
415
+ return {
416
+ schema: 'codex-orchestrator.agent-auto-fresh-cutover', version: 1, transactionId,
417
+ repository: legacy.repository,
418
+ source: { configPath: CONFIG_PATH, configSha256: legacy.configSha256, statePath: legacy.stateDir, stateSha256 },
419
+ destination,
420
+ retained: inventory,
421
+ backup: { root: backupRoot, configPath: `${backupRoot}/${basename(CONFIG_PATH)}`, statePath: `${backupRoot}/state` },
422
+ };
423
+ }
424
+ async copyBackupIfNeeded(source, destination, expectedHash) {
425
+ const destinationHash = await this.store.hashPath(destination);
426
+ if (destinationHash === expectedHash)
427
+ return;
428
+ const sourceHash = await this.store.hashPath(source);
429
+ if (sourceHash !== expectedHash)
430
+ throw new Error('fresh source hash changed');
431
+ const absentHash = await this.store.hashPath(`${destination}.known-absent-sentinel`);
432
+ if (destinationHash !== absentHash)
433
+ throw new Error('fresh backup destination contains different evidence');
434
+ await this.store.copyTree(source, destination);
435
+ }
436
+ async copyConfigBackupIfNeeded(source, destination, expectedHash) {
437
+ const destinationBytes = await this.store.readOptional(destination);
438
+ if (destinationBytes) {
439
+ if (sha256(destinationBytes) !== expectedHash)
440
+ throw new Error('fresh config backup contains different evidence');
441
+ return;
442
+ }
443
+ const sourceBytes = await this.store.readOptional(source);
444
+ if (!sourceBytes || sha256(sourceBytes) !== expectedHash)
445
+ throw new Error('fresh config source hash changed');
446
+ await this.store.writeAtomic(destination, sourceBytes, 0o600);
447
+ }
448
+ }
449
+ async function defaultConfig(targetRoot, repository, baseBranch, store) {
450
+ const packageJson = await store.readOptional(resolve(targetRoot, 'package.json'));
451
+ let scripts = {};
452
+ if (packageJson) {
453
+ try {
454
+ const parsed = JSON.parse(packageJson.toString('utf8'));
455
+ if (parsed.scripts && typeof parsed.scripts === 'object' && !Array.isArray(parsed.scripts))
456
+ scripts = parsed.scripts;
457
+ }
458
+ catch {
459
+ throw new Error('package.json is invalid');
460
+ }
461
+ }
462
+ const checks = {};
463
+ if (typeof scripts.test === 'string')
464
+ checks.test = 'npm test';
465
+ if (typeof scripts.typecheck === 'string')
466
+ checks.typecheck = 'npm run typecheck';
467
+ return parseAgentAutoConfig({
468
+ schema: 'codex-orchestrator.agent-auto',
469
+ version: 1,
470
+ github: {
471
+ owner: repository.owner,
472
+ repo: repository.repo,
473
+ baseBranch,
474
+ labels: {
475
+ auto: { name: 'agent:auto', color: '1d76db', description: 'Ready for the agent.' },
476
+ running: { name: 'agent:running', color: 'fbca04', description: 'Agent is running.' },
477
+ blocked: { name: 'agent:blocked', color: 'd93f0b', description: 'Agent needs help.' },
478
+ review: { name: 'agent:review', color: '0e8a16', description: 'Ready for review.' },
479
+ },
480
+ },
481
+ runner: {
482
+ workspaceRoot: '.codex-orchestrator/workspaces-v2',
483
+ stateDir: '.codex-orchestrator/v2/state',
484
+ branchTemplate: 'codex/issue-${issueNumber}',
485
+ pollIntervalSeconds: 60,
486
+ maxCycles: 5,
487
+ },
488
+ codex: {
489
+ command: 'codex', requiredVersion: '0.144.4', timeoutMs: 900_000, idleTimeoutMs: 300_000, toolNetwork: 'deny',
490
+ },
491
+ checks,
492
+ proof: { artifactDir: '.codex-orchestrator/v2/proofs' },
493
+ deny: {
494
+ readPaths: ['.env', '.env.local', '.git/config'],
495
+ commands: ['/usr/bin/gh', '/usr/bin/npm', '/usr/bin/ssh'],
496
+ },
497
+ });
498
+ }
499
+ function renderIgnore(current, config) {
500
+ if (current.includes(IGNORE_START) || current.includes(IGNORE_END)) {
501
+ const complete = current.includes(`${IGNORE_START}\n`) && current.includes(`${IGNORE_END}\n`);
502
+ if (!complete)
503
+ throw new Error('managed ignore block is malformed');
504
+ return { changed: false, bytes: current };
505
+ }
506
+ const prefix = current.length === 0 ? '' : current.endsWith('\n') ? `${current}\n` : `${current}\n\n`;
507
+ const entries = [config.runner.workspaceRoot, config.runner.stateDir, config.proof.artifactDir].map((path) => `${path}/`);
508
+ return { changed: true, bytes: `${prefix}${IGNORE_START}\n${entries.join('\n')}\n${IGNORE_END}\n` };
509
+ }
510
+ function classifyNonV2Config(bytes) {
511
+ const detected = detectLegacyConfig(bytes);
512
+ return detected.status === 'recognized'
513
+ ? { status: 'legacy-detected', reason: detected.record.kind === 'experimental-skill-runtime-v2'
514
+ ? 'Experimental runtime configuration requires setup --fresh.'
515
+ : 'Legacy configuration requires setup --fresh.' }
516
+ : { status: 'unsupported-schema', reason: 'Configuration schema is unsupported or unreadable.' };
517
+ }
518
+ function sameRepository(left, right) {
519
+ return left.owner.toLowerCase() === right.owner.toLowerCase() && left.repo.toLowerCase() === right.repo.toLowerCase();
520
+ }
521
+ function failure(code, summary) { return { code, summary }; }
522
+ function isIntent(value) {
523
+ return typeof value?.targetRoot === 'string' && value.targetRoot.length > 0
524
+ && ['configure', 'prepare-labels', 'fresh', 'doctor', 'status'].includes(value.operation)
525
+ && typeof value.dryRun === 'boolean'
526
+ && (value.repository === undefined || (typeof value.repository.owner === 'string' && value.repository.owner.length > 0
527
+ && typeof value.repository.repo === 'string' && value.repository.repo.length > 0));
528
+ }
529
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/v2/setup.ts"],"names":[],"mappings":"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"}