codex-orchestrator 0.1.51 → 2.0.0

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 +21 -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
@@ -1,678 +0,0 @@
1
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
- import { dirname, join } from 'node:path';
3
- import { forbiddenRuntimeKeys } from '../config/constants.js';
4
- import { validateConfig } from '../config/schema.js';
5
- export const defaultLabels = {
6
- auto: label('agent:auto', '0E8A16', 'Scoped autonomous Codex implementation'),
7
- planAuto: label('agent:plan-auto', '5319E7', 'Autonomous Codex planning and issue-tree execution'),
8
- running: label('agent:running', '1D76DB', 'Codex orchestration is currently running'),
9
- blocked: label('agent:blocked', 'B60205', 'Codex orchestration is blocked and needs maintainer input'),
10
- manual: label('agent:manual', 'BFDADC', 'Issue is reserved for manual work'),
11
- review: label('agent:review', 'FBCA04', 'Codex work is ready for human review'),
12
- child: label('agent:child', 'C2E0C6', 'Child issue owned by an autonomous parent issue tree'),
13
- };
14
- export const packageOwnedDefaultChecks = {
15
- typecheck: 'npm run typecheck',
16
- test: 'npm test',
17
- };
18
- export const packageOwnedMobileVisualProofCommand = 'codex-orchestrator visual-proof mobile --issue ${issueNumber}';
19
- export const packageOwnedAutoVisualProofCommand = 'codex-orchestrator visual-proof auto --issue ${issueNumber}';
20
- export function defaultFigmaMcpConfig() {
21
- return {
22
- enabled: true,
23
- url: 'https://mcp.figma.com/mcp',
24
- httpHeaders: {
25
- 'X-Figma-Region': 'us-east-1',
26
- },
27
- optionalIssueTextPatterns: [
28
- 'https?://(?:www\\.)?figma\\.com/\\S+',
29
- '\\bFigma\\b.{0,80}\\b(design|file|node|mockup|prototype|дизайн|макет)\\b',
30
- '\\b(design|file|node|mockup|prototype|дизайн|макет)\\b.{0,80}\\bFigma\\b',
31
- ],
32
- requiredIssueTextPatterns: [
33
- '\\b(?:must|requires?|required)\\b.{0,80}\\bFigma\\b',
34
- '\\bFigma\\b.{0,80}\\b(?:must|required|source of truth)\\b',
35
- ],
36
- optionalFailure: 'retry-without-mcp',
37
- requiredFailure: 'block',
38
- };
39
- }
40
- export function defaultAcceptanceProofConfig() {
41
- return {
42
- enabled: true,
43
- proofStrategy: 'auto',
44
- artifactDir: '.codex-orchestrator/proofs',
45
- issueTextPatterns: [
46
- '\\bUI\\b',
47
- 'frontend',
48
- 'responsive',
49
- 'layout',
50
- 'visual',
51
- 'screenshot',
52
- '\\bAPI\\b',
53
- 'worker',
54
- '\\bCLI\\b',
55
- 'скриншот',
56
- 'скріншот',
57
- 'viewport',
58
- 'dark theme',
59
- 'мобіл',
60
- 'mobile',
61
- ],
62
- changedPathGlobs: [
63
- 'src/frontend/**',
64
- 'frontend/**',
65
- 'app/**',
66
- 'pages/**',
67
- 'components/**',
68
- ],
69
- proofOwnedPathGlobs: [
70
- '.codex-orchestrator/proofs/**',
71
- ],
72
- runnerValidationCommand: packageOwnedAutoVisualProofCommand,
73
- runnerTimeoutMs: 900_000,
74
- envPassthrough: [],
75
- browserProof: {
76
- strictConsoleErrors: false,
77
- strictNetworkFailures: false,
78
- },
79
- maxIterations: 5,
80
- };
81
- }
82
- export function defaultRiskRoutingConfig() {
83
- return {
84
- enabled: true,
85
- mode: 'warn',
86
- requireScopedReviewHandoff: true,
87
- requireParentSizeRisk: true,
88
- requireParentReviewHandoff: true,
89
- riskyChangedPathGlobs: [],
90
- highRiskRequiresCodeReview: true,
91
- allowedLowRiskFlows: ['small-task-implementer', 'scoped-implementation'],
92
- };
93
- }
94
- export function buildProjectConfig(input) {
95
- return {
96
- version: 1,
97
- github: {
98
- owner: input.owner,
99
- repo: input.repo,
100
- prepareLabels: input.prepareLabels,
101
- labels: defaultLabels,
102
- },
103
- runner: {
104
- workspaceRoot: '.codex-orchestrator/workspaces',
105
- maxParallelChildren: 3,
106
- maxParallelScopedIssues: 3,
107
- stateDir: '.codex-orchestrator/state',
108
- allowAgentLocalCommits: false,
109
- worktreeCleanup: {
110
- enabled: true,
111
- },
112
- resolutionMission: {
113
- mode: 'off',
114
- markerLabel: 'agent:mission',
115
- },
116
- },
117
- codex: {
118
- adapter: 'codex-cli',
119
- command: 'codex',
120
- args: [
121
- 'exec',
122
- '--cd',
123
- '${worktreePath}',
124
- '--sandbox',
125
- 'workspace-write',
126
- '--add-dir',
127
- '${stateDir}',
128
- '--ignore-user-config',
129
- '-c',
130
- 'sandbox_workspace_write.network_access=true',
131
- '--output-last-message',
132
- '${reportPath}',
133
- '-',
134
- ],
135
- timeoutMs: 1_800_000,
136
- mobileTimeoutMs: 3_600_000,
137
- idleTimeoutMs: 300_000,
138
- ignoreUserConfig: true,
139
- figmaMcp: defaultFigmaMcpConfig(),
140
- profiles: {},
141
- promptFileEnv: 'CODEX_ORCHESTRATOR_PROMPT_FILE',
142
- reportFileEnv: 'CODEX_ORCHESTRATOR_REPORT_FILE',
143
- },
144
- project: {
145
- configDir: '.codex-orchestrator',
146
- promptsDir: '.codex-orchestrator/prompts',
147
- },
148
- workflows: input.workflows,
149
- checks: packageOwnedDefaultChecks,
150
- checksPolicy: {
151
- missingNpmScript: 'skip',
152
- lintBaseline: {
153
- mode: 'strict',
154
- },
155
- },
156
- reviewGates: {
157
- acceptanceProof: defaultAcceptanceProofConfig(),
158
- visualProof: {
159
- enabled: true,
160
- artifactDir: '.codex-orchestrator/proofs',
161
- issueTextPatterns: [
162
- '\\bUI\\b',
163
- 'frontend',
164
- 'responsive',
165
- 'layout',
166
- 'visual',
167
- 'screenshot',
168
- 'скриншот',
169
- 'скріншот',
170
- 'viewport',
171
- 'dark theme',
172
- 'мобіл',
173
- 'mobile',
174
- ],
175
- changedPathGlobs: [
176
- 'src/frontend/**',
177
- 'frontend/**',
178
- 'app/**',
179
- 'pages/**',
180
- 'components/**',
181
- ],
182
- requiredValidationPatterns: [
183
- 'Playwright',
184
- 'screenshot',
185
- 'visual',
186
- 'viewport',
187
- 'runner visual proof',
188
- ],
189
- blockOnSkippedPatterns: [
190
- 'Playwright',
191
- 'screenshot',
192
- 'visual',
193
- 'viewport',
194
- 'runner visual proof',
195
- ],
196
- minScreenshotArtifacts: 1,
197
- requireWhenDesirable: false,
198
- runnerValidationCommand: packageOwnedAutoVisualProofCommand,
199
- runnerTimeoutMs: 900_000,
200
- envPassthrough: [],
201
- },
202
- quality: {
203
- enabled: true,
204
- runtimeChangedPathGlobs: [
205
- 'src/**',
206
- 'app/**',
207
- 'pages/**',
208
- 'components/**',
209
- 'lib/**',
210
- 'packages/**',
211
- '*.js',
212
- '*.jsx',
213
- '*.ts',
214
- '*.tsx',
215
- '*.mjs',
216
- '*.cjs',
217
- ],
218
- testChangedPathGlobs: [
219
- 'test/**',
220
- 'tests/**',
221
- '__tests__/**',
222
- '*.test.*',
223
- '*.spec.*',
224
- 'src/**/*.test.*',
225
- 'src/**/*.spec.*',
226
- ],
227
- tdd: {
228
- enabled: true,
229
- requireTestChange: true,
230
- requiredValidationPatterns: [
231
- 'red.*green',
232
- 'fail(?:ed|ing)?.*pass(?:ed|ing)?',
233
- 'test.*fail(?:ed|ing)?.*test.*pass(?:ed|ing)?',
234
- ],
235
- },
236
- cleanupReview: {
237
- enabled: true,
238
- runtimeFileThreshold: 3,
239
- requiredValidationPatterns: [
240
- '\\$?cleanup-review',
241
- 'cleanup review',
242
- ],
243
- },
244
- codeReview: {
245
- enabled: true,
246
- requiredValidationPatterns: [
247
- '\\$?code-review',
248
- 'code review',
249
- ],
250
- },
251
- },
252
- riskRouting: defaultRiskRoutingConfig(),
253
- },
254
- loopPolicy: {
255
- issueSelection: {
256
- priorityLabels: ['priority:critical', 'priority:high', 'priority:medium', 'priority:low'],
257
- tieBreaker: 'issue-number-asc',
258
- },
259
- rework: {
260
- maxAttempts: 1,
261
- retryableBlockers: [
262
- 'missing-completion-report',
263
- 'idle-timeout-before-change',
264
- 'incomplete-after-progress',
265
- 'invalid-completion-report',
266
- 'no-changed-files',
267
- 'failed-configured-checks',
268
- 'missing-quality-gate-evidence',
269
- 'failed-acceptance-proof',
270
- 'optional-figma-mcp-failure',
271
- ],
272
- },
273
- freshContextReview: {
274
- enabled: false,
275
- mode: 'advisory',
276
- blockOnHighConfidencePolicyViolations: true,
277
- },
278
- durableRunSummaries: {
279
- enabled: true,
280
- },
281
- policySuggestions: {
282
- enabled: true,
283
- maxSuggestions: 5,
284
- },
285
- },
286
- deny: {
287
- secretFiles: ['.env', '.env.*'],
288
- destructiveDbOrCache: true,
289
- productionDeployOrRelease: true,
290
- additionalPathGlobs: [],
291
- },
292
- branches: {
293
- base: input.baseBranch ?? { mode: 'explicit', remote: 'origin', branch: 'main' },
294
- scopedIssue: 'codex/issue-${issueNumber}',
295
- issueTree: 'codex/tree-${parentIssueNumber}',
296
- },
297
- pullRequests: {
298
- scopedIssueTitle: 'Codex: issue #${issueNumber}',
299
- issueTreeTitle: 'Codex: parent issue #${parentIssueNumber}',
300
- },
301
- issueClassification: {
302
- promotionCriteria: [
303
- 'api-contract',
304
- 'dto-or-schema',
305
- 'persistence',
306
- 'auth-or-permissions',
307
- 'billing',
308
- 'background-job',
309
- 'shared-state',
310
- 'multi-service',
311
- 'three-or-more-runtime-files',
312
- ],
313
- clarificationGate: 'block-and-comment',
314
- },
315
- };
316
- }
317
- export function mergeExistingProjectConfig(defaults, existing) {
318
- if (!existing) {
319
- return defaults;
320
- }
321
- const existingGithub = readObject(existing.github);
322
- const existingRunner = readObject(existing.runner);
323
- const existingCodex = readObject(existing.codex);
324
- const existingProject = readObject(existing.project);
325
- const existingWorkflows = readObject(existing.workflows);
326
- const existingChecks = readStringRecord(existing.checks);
327
- const existingChecksPolicy = readObject(existing.checksPolicy);
328
- const existingReviewGates = readObject(existing.reviewGates);
329
- const existingAcceptanceProof = readObject(existingReviewGates?.acceptanceProof);
330
- const existingVisualProof = readObject(existingReviewGates?.visualProof);
331
- const existingQuality = readObject(existingReviewGates?.quality);
332
- const existingRiskRouting = readObject(existingReviewGates?.riskRouting);
333
- const existingLoopPolicy = readObject(existing.loopPolicy);
334
- const existingIssueSelection = readObject(existingLoopPolicy?.issueSelection);
335
- const existingRework = readObject(existingLoopPolicy?.rework);
336
- const existingFreshContextReview = readObject(existingLoopPolicy?.freshContextReview);
337
- const existingDurableRunSummaries = readObject(existingLoopPolicy?.durableRunSummaries);
338
- const existingPolicySuggestions = readObject(existingLoopPolicy?.policySuggestions);
339
- const existingDeny = readObject(existing.deny);
340
- const existingBranches = readObject(existing.branches);
341
- const existingPullRequests = readObject(existing.pullRequests);
342
- const existingIssueClassification = readObject(existing.issueClassification);
343
- const defaultChecksPolicy = defaults.checksPolicy ?? {};
344
- return {
345
- ...defaults,
346
- github: {
347
- ...defaults.github,
348
- ...existingGithub,
349
- owner: defaults.github.owner,
350
- repo: defaults.github.repo,
351
- prepareLabels: defaults.github.prepareLabels,
352
- labels: {
353
- ...defaults.github.labels,
354
- ...readObject(existingGithub?.labels),
355
- },
356
- },
357
- runner: {
358
- ...defaults.runner,
359
- ...existingRunner,
360
- },
361
- codex: {
362
- ...defaults.codex,
363
- ...existingCodex,
364
- args: migrateCodexArgs(readStringArray(existingCodex?.args), defaults.codex.args),
365
- timeoutMs: migrateCodexTimeout(readPositiveInteger(existingCodex?.timeoutMs), defaults.codex.timeoutMs ?? 1_800_000),
366
- mobileTimeoutMs: readPositiveInteger(existingCodex?.mobileTimeoutMs) ?? defaults.codex.mobileTimeoutMs,
367
- idleTimeoutMs: readPositiveInteger(existingCodex?.idleTimeoutMs) ?? defaults.codex.idleTimeoutMs,
368
- ignoreUserConfig: readBoolean(existingCodex?.ignoreUserConfig) ?? defaults.codex.ignoreUserConfig,
369
- figmaMcp: migrateFigmaMcpConfig(defaults.codex.figmaMcp, readObject(existingCodex?.figmaMcp)),
370
- profiles: readObject(existingCodex?.profiles)
371
- ?? defaults.codex.profiles,
372
- promptFileEnv: defaults.codex.promptFileEnv,
373
- reportFileEnv: defaults.codex.reportFileEnv,
374
- adapter: defaults.codex.adapter,
375
- },
376
- project: {
377
- ...defaults.project,
378
- ...existingProject,
379
- },
380
- workflows: migrateWorkflowConfigs(defaults.workflows, existingWorkflows),
381
- checks: existingChecks ?? defaults.checks,
382
- checksPolicy: {
383
- ...defaultChecksPolicy,
384
- ...existingChecksPolicy,
385
- lintBaseline: {
386
- ...readObject(defaultChecksPolicy.lintBaseline),
387
- ...readObject(existingChecksPolicy?.lintBaseline),
388
- },
389
- },
390
- reviewGates: {
391
- ...defaults.reviewGates,
392
- ...existingReviewGates,
393
- acceptanceProof: migrateAcceptanceProofConfig(defaults.reviewGates.acceptanceProof, existingAcceptanceProof),
394
- visualProof: migrateVisualProofConfig(defaults.reviewGates.visualProof, existingVisualProof),
395
- quality: {
396
- ...defaults.reviewGates.quality,
397
- ...existingQuality,
398
- tdd: {
399
- ...defaults.reviewGates.quality.tdd,
400
- ...readObject(existingQuality?.tdd),
401
- },
402
- cleanupReview: {
403
- ...defaults.reviewGates.quality.cleanupReview,
404
- ...readObject(existingQuality?.cleanupReview),
405
- },
406
- codeReview: {
407
- ...defaults.reviewGates.quality.codeReview,
408
- ...readObject(existingQuality?.codeReview),
409
- },
410
- },
411
- riskRouting: {
412
- ...defaults.reviewGates.riskRouting,
413
- ...existingRiskRouting,
414
- allowedLowRiskFlows: readStringArray(existingRiskRouting?.allowedLowRiskFlows)
415
- ?? defaults.reviewGates.riskRouting.allowedLowRiskFlows,
416
- riskyChangedPathGlobs: readStringArray(existingRiskRouting?.riskyChangedPathGlobs)
417
- ?? defaults.reviewGates.riskRouting.riskyChangedPathGlobs,
418
- },
419
- },
420
- loopPolicy: {
421
- ...defaults.loopPolicy,
422
- ...existingLoopPolicy,
423
- issueSelection: {
424
- ...defaults.loopPolicy.issueSelection,
425
- ...existingIssueSelection,
426
- },
427
- rework: {
428
- ...defaults.loopPolicy.rework,
429
- ...existingRework,
430
- retryableBlockers: migrateRetryableBlockers(defaults.loopPolicy.rework.retryableBlockers, readStringArray(existingRework?.retryableBlockers)),
431
- },
432
- freshContextReview: {
433
- ...defaults.loopPolicy.freshContextReview,
434
- ...existingFreshContextReview,
435
- },
436
- durableRunSummaries: {
437
- ...defaults.loopPolicy.durableRunSummaries,
438
- ...existingDurableRunSummaries,
439
- },
440
- policySuggestions: {
441
- ...defaults.loopPolicy.policySuggestions,
442
- ...existingPolicySuggestions,
443
- },
444
- },
445
- deny: {
446
- ...defaults.deny,
447
- ...existingDeny,
448
- },
449
- branches: {
450
- ...defaults.branches,
451
- ...existingBranches,
452
- base: migrateBaseBranch(existingBranches?.base, defaults.branches.base),
453
- },
454
- pullRequests: {
455
- ...defaults.pullRequests,
456
- ...existingPullRequests,
457
- },
458
- issueClassification: {
459
- ...defaults.issueClassification,
460
- ...existingIssueClassification,
461
- },
462
- };
463
- }
464
- export async function applyTargetPackageConfigDefaults(targetRoot, config) {
465
- return {
466
- ...config,
467
- checks: await adaptPackageOwnedChecks(targetRoot, config),
468
- reviewGates: {
469
- ...config.reviewGates,
470
- acceptanceProof: migrateAcceptanceProofConfig(config.reviewGates.acceptanceProof, config.reviewGates.acceptanceProof),
471
- visualProof: migrateVisualProofConfig(config.reviewGates.visualProof, config.reviewGates.visualProof),
472
- },
473
- };
474
- }
475
- export async function readExistingConfig(configPath) {
476
- try {
477
- const content = await readFile(configPath, 'utf8');
478
- return JSON.parse(content);
479
- }
480
- catch (error) {
481
- if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
482
- return undefined;
483
- }
484
- throw error;
485
- }
486
- }
487
- export function assertNoRuntimeState(value) {
488
- if (!value) {
489
- return;
490
- }
491
- const forbiddenKey = forbiddenRuntimeKeys.find((key) => key in value);
492
- if (forbiddenKey) {
493
- throw new Error(`${forbiddenKey} is runtime state and must not be committed config`);
494
- }
495
- }
496
- export async function writeProjectConfig(targetRoot, config) {
497
- const configPath = projectConfigPath(targetRoot);
498
- const validation = validateConfig(config);
499
- if (!validation.ok) {
500
- throw new Error(`Generated config is invalid: ${validation.errors.join('; ')}`);
501
- }
502
- await mkdir(dirname(configPath), { recursive: true });
503
- await writeFile(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
504
- return configPath;
505
- }
506
- export function projectConfigPath(targetRoot) {
507
- return join(targetRoot, '.codex-orchestrator', 'config.json');
508
- }
509
- async function adaptPackageOwnedChecks(targetRoot, config) {
510
- if ((config.checksPolicy?.missingNpmScript ?? 'skip') !== 'skip') {
511
- return config.checks;
512
- }
513
- if (!Object.entries(config.checks).some(([name, command]) => isPackageOwnedDefaultCheck(name, command))) {
514
- return config.checks;
515
- }
516
- const scripts = await readPackageScripts(targetRoot);
517
- const entries = Object.entries(config.checks).filter(([name, command]) => {
518
- if (!isPackageOwnedDefaultCheck(name, command)) {
519
- return true;
520
- }
521
- const script = npmScriptName(command);
522
- return script !== undefined && scripts.has(script);
523
- });
524
- return Object.fromEntries(entries);
525
- }
526
- async function readPackageScripts(targetRoot) {
527
- let content = '';
528
- try {
529
- content = await readFile(join(targetRoot, 'package.json'), 'utf8');
530
- }
531
- catch (error) {
532
- if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
533
- return new Set();
534
- }
535
- throw error;
536
- }
537
- const parsed = JSON.parse(content);
538
- if (typeof parsed.scripts !== 'object' || parsed.scripts === null || Array.isArray(parsed.scripts)) {
539
- return new Set();
540
- }
541
- return new Set(Object.entries(parsed.scripts)
542
- .filter(([, value]) => typeof value === 'string')
543
- .map(([name]) => name));
544
- }
545
- function isPackageOwnedDefaultCheck(name, command) {
546
- return packageOwnedDefaultChecks[name] === command;
547
- }
548
- function npmScriptName(command) {
549
- if (command === 'npm test') {
550
- return 'test';
551
- }
552
- return /^npm\s+run(?:-script)?\s+([^\s]+)/u.exec(command)?.[1];
553
- }
554
- function migrateVisualProofConfig(defaults, existing) {
555
- const visualProof = {
556
- ...defaults,
557
- ...existing,
558
- };
559
- const command = visualProof.runnerValidationCommand?.trim();
560
- if (visualProof.enabled && !command) {
561
- visualProof.runnerValidationCommand = packageOwnedAutoVisualProofCommand;
562
- }
563
- return visualProof;
564
- }
565
- function migrateAcceptanceProofConfig(defaults, existing) {
566
- const acceptanceProof = {
567
- ...defaults,
568
- ...existing,
569
- };
570
- acceptanceProof.proofStrategy = acceptanceProof.proofStrategy ?? defaults.proofStrategy;
571
- const command = acceptanceProof.runnerValidationCommand?.trim();
572
- if (acceptanceProof.enabled && !command) {
573
- acceptanceProof.runnerValidationCommand = packageOwnedAutoVisualProofCommand;
574
- }
575
- return acceptanceProof;
576
- }
577
- function migrateRetryableBlockers(defaults, existing) {
578
- return Array.from(new Set([...(existing ?? defaults), ...defaults]));
579
- }
580
- function migrateFigmaMcpConfig(defaults, existing) {
581
- if (!defaults) {
582
- return undefined;
583
- }
584
- if (!existing) {
585
- return defaults;
586
- }
587
- return {
588
- enabled: readBoolean(existing.enabled) ?? defaults.enabled,
589
- url: readString(existing.url) ?? defaults.url,
590
- httpHeaders: readStringRecord(existing.httpHeaders) ?? defaults.httpHeaders,
591
- optionalIssueTextPatterns: readStringArray(existing.optionalIssueTextPatterns)
592
- ?? readStringArray(existing.issueTextPatterns)
593
- ?? defaults.optionalIssueTextPatterns,
594
- requiredIssueTextPatterns: readStringArray(existing.requiredIssueTextPatterns) ?? defaults.requiredIssueTextPatterns,
595
- optionalFailure: 'retry-without-mcp',
596
- requiredFailure: 'block',
597
- };
598
- }
599
- function label(name, color, description) {
600
- return { name, color, description };
601
- }
602
- function migrateWorkflowConfigs(defaults, existingWorkflows) {
603
- const entries = Object.entries(defaults).map(([id, workflow]) => {
604
- const existing = readObject(existingWorkflows?.[id]);
605
- const promptPath = readString(existing?.promptPath) ?? workflow.promptPath;
606
- return [
607
- id,
608
- {
609
- skillName: workflow.skillName,
610
- source: 'package-bundled-prompt',
611
- promptPath,
612
- },
613
- ];
614
- });
615
- return Object.fromEntries(entries);
616
- }
617
- function migrateCodexArgs(existingArgs, defaultArgs) {
618
- const args = existingArgs ?? defaultArgs;
619
- const migrated = [...args];
620
- if (migrated[0] !== 'exec') {
621
- return migrated;
622
- }
623
- if (!migrated.includes('--ignore-user-config')) {
624
- const insertAt = migrated[0] === 'exec' ? 1 : 0;
625
- migrated.splice(insertAt, 0, '--ignore-user-config');
626
- }
627
- if (!migrated.includes('sandbox_workspace_write.network_access=true')) {
628
- const outputIndex = migrated.indexOf('--output-last-message');
629
- const insertAt = outputIndex >= 0 ? outputIndex : migrated.length;
630
- migrated.splice(insertAt, 0, '-c', 'sandbox_workspace_write.network_access=true');
631
- }
632
- return migrated;
633
- }
634
- function migrateBaseBranch(existingBase, defaultBase) {
635
- if (typeof existingBase === 'string' && existingBase.length > 0) {
636
- return { mode: 'explicit', remote: 'origin', branch: existingBase };
637
- }
638
- const objectBase = readObject(existingBase);
639
- if (objectBase?.mode === 'explicit'
640
- && typeof objectBase.remote === 'string'
641
- && objectBase.remote.length > 0
642
- && typeof objectBase.branch === 'string'
643
- && objectBase.branch.length > 0) {
644
- return { mode: 'explicit', remote: objectBase.remote, branch: objectBase.branch };
645
- }
646
- return defaultBase;
647
- }
648
- function readObject(value) {
649
- return typeof value === 'object' && value !== null && !Array.isArray(value)
650
- ? value
651
- : undefined;
652
- }
653
- function readStringArray(value) {
654
- return Array.isArray(value) && value.every((item) => typeof item === 'string') ? value : undefined;
655
- }
656
- function readString(value) {
657
- return typeof value === 'string' && value.length > 0 ? value : undefined;
658
- }
659
- function readBoolean(value) {
660
- return typeof value === 'boolean' ? value : undefined;
661
- }
662
- function readStringRecord(value) {
663
- const object = readObject(value);
664
- if (!object || Object.values(object).some((item) => typeof item !== 'string')) {
665
- return undefined;
666
- }
667
- return object;
668
- }
669
- function readPositiveInteger(value) {
670
- return Number.isInteger(value) && typeof value === 'number' && value > 0 ? value : undefined;
671
- }
672
- function migrateCodexTimeout(existingTimeoutMs, defaultTimeoutMs) {
673
- if (existingTimeoutMs === undefined || existingTimeoutMs === 600_000) {
674
- return defaultTimeoutMs;
675
- }
676
- return existingTimeoutMs;
677
- }
678
- //# sourceMappingURL=project-config.js.map