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,328 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { acceptsScreenshotArtifactPath, classifyChangedPaths, globMatches, isRunnerVisualProofCodeArtifactPath, } from '../path-policy.js';
4
- import { isNonVisualProofMode } from './proof-routing.js';
5
- import { hasPassedTddValidation, hasPassedValidation, isVisualProofDesirable, isRunnerVisualValidation, isStrongVisualValidation, runnerVisualProofPolicy, shouldApplyVisualProofGate, } from './review-gate-policy.js';
6
- export { shouldApplyVisualProofGate } from './review-gate-policy.js';
7
- export function evaluateParentRiskRoutingGate(input) {
8
- const findings = evaluateParentRiskRoutingFindings(input);
9
- const reasons = [];
10
- const warnings = [];
11
- applyRiskRoutingFindings(findings, input.config, reasons, warnings);
12
- return { ok: reasons.length === 0, reasons, warnings };
13
- }
14
- export function evaluateReviewGates(input) {
15
- const reasons = [];
16
- const warnings = [];
17
- const blockers = [];
18
- const qualityGate = evaluateQualityGate(input);
19
- reasons.push(...qualityGate.reasons);
20
- blockers.push(...qualityGate.blockers);
21
- const riskRoutingFindings = evaluateScopedRiskRoutingGate(input);
22
- applyRiskRoutingFindings(riskRoutingFindings, input.config, reasons, warnings);
23
- if (input.config.reviewGates.riskRouting.mode === 'block') {
24
- blockers.push(...riskRoutingFindings.map((finding) => runnerBlocker('risk-routing-policy', `Risk routing gate requires: ${finding}.`)));
25
- }
26
- const proofMode = input.report.proofPlan.mode;
27
- if (proofMode === 'none' || isNonVisualProofMode(proofMode)) {
28
- return reviewGateResult(reasons, warnings, blockers);
29
- }
30
- const visualProofDesirable = isVisualProofDesirable(input);
31
- const visualProofGateApplies = shouldApplyVisualProofGate(input);
32
- if (!visualProofDesirable && !visualProofGateApplies) {
33
- return reviewGateResult(reasons, warnings, blockers);
34
- }
35
- const visualProof = input.config.reviewGates.visualProof;
36
- const runnerPolicy = runnerVisualProofPolicy(input.config);
37
- const runnerCommand = runnerPolicy.commandTemplate ?? '';
38
- const runnerVisualValidation = input.validation.filter(isRunnerVisualValidation);
39
- const hasPassedRunnerVisualValidation = runnerVisualValidation.some((line) => line.status === 'passed' && isStrongVisualValidation(line));
40
- const nonPassingRunnerVisualValidation = runnerVisualValidation.filter((line) => line.status !== 'passed');
41
- const capabilityUnavailableRunnerValidation = nonPassingRunnerVisualValidation.filter(isVisualProofCapabilityUnavailable);
42
- const otherNonPassingRunnerVisualValidation = nonPassingRunnerVisualValidation.filter((line) => !capabilityUnavailableRunnerValidation.includes(line));
43
- const screenshotArtifacts = input.report.artifacts.filter((artifact) => {
44
- if (artifact.type !== 'screenshot') {
45
- return false;
46
- }
47
- if (artifact.url) {
48
- return true;
49
- }
50
- if (!artifact.path) {
51
- return false;
52
- }
53
- const worktreePath = input.worktreePath;
54
- return acceptsScreenshotArtifactPath({
55
- artifactPath: artifact.path,
56
- artifactDir: runnerPolicy.artifactDir,
57
- changedFiles: input.changedFiles,
58
- hasPassedRunnerVisualValidation,
59
- exists: worktreePath ? (path) => existsSync(join(worktreePath, path)) : undefined,
60
- });
61
- });
62
- const proofPossible = Boolean(runnerCommand) && capabilityUnavailableRunnerValidation.length === 0;
63
- const strictVisualProofRequired = visualProofDesirable && runnerPolicy.requireWhenDesirable;
64
- if (!runnerCommand && visualProofDesirable) {
65
- const message = strictVisualProofRequired
66
- ? 'Visual proof is required by strict visual proof config, but no runner-owned visual proof command/provider is configured.'
67
- : 'Visual proof capability note: visual proof is desirable, but no runner-owned visual proof command/provider is configured; not required for review-ready outcome.';
68
- (strictVisualProofRequired ? reasons : warnings).push(message);
69
- }
70
- for (const line of capabilityUnavailableRunnerValidation) {
71
- if (strictVisualProofRequired) {
72
- reasons.push(`Visual proof is required by strict visual proof config, but proof capability is unavailable: ${line.command} - ${line.summary}.`);
73
- }
74
- else {
75
- warnings.push(`Visual proof capability note: ${line.command} - ${line.summary}; not required for review-ready outcome.`);
76
- }
77
- }
78
- for (const line of otherNonPassingRunnerVisualValidation) {
79
- const message = strictVisualProofRequired
80
- ? `Visual proof validation failed under strict visual proof config: ${line.command} - ${line.summary}`
81
- : `Visual proof validation warning: ${line.command} - ${line.summary}`;
82
- (strictVisualProofRequired ? reasons : warnings).push(message);
83
- }
84
- if (visualProofDesirable
85
- && (proofPossible || runnerPolicy.requireWhenDesirable)
86
- && screenshotArtifacts.length < visualProof.minScreenshotArtifacts) {
87
- const message = strictVisualProofRequired
88
- ? `Visual proof is required by strict visual proof config, but expected at least ${visualProof.minScreenshotArtifacts} screenshot artifact under ${runnerPolicy.artifactDir} or a screenshot URL.`
89
- : `Visual proof warning: expected at least ${visualProof.minScreenshotArtifacts} screenshot artifact under ${runnerPolicy.artifactDir} or a screenshot URL.`;
90
- (strictVisualProofRequired ? reasons : warnings).push(message);
91
- }
92
- return reviewGateResult(reasons, warnings, blockers);
93
- }
94
- function evaluateScopedRiskRoutingGate(input) {
95
- const riskRouting = input.config.reviewGates.riskRouting;
96
- if (!riskRouting.enabled) {
97
- return [];
98
- }
99
- const findings = [];
100
- const reviewHandoff = input.report.reviewHandoff;
101
- if (!reviewHandoff) {
102
- if (riskRouting.requireScopedReviewHandoff) {
103
- findings.push('scoped review handoff is required');
104
- }
105
- return findings;
106
- }
107
- if (riskRouting.requireScopedReviewHandoff) {
108
- requireNonEmptyEvidence(findings, reviewHandoff.implementedContract, 'implementedContract must describe the delivered contract');
109
- requireNonEmptyEvidence(findings, reviewHandoff.proofByAcceptanceCriteria, 'proofByAcceptanceCriteria must map proof to acceptance criteria');
110
- requireNonEmptyEvidence(findings, reviewHandoff.reviewFocus, 'reviewFocus must identify review targets');
111
- requireNonEmptyEvidence(findings, reviewHandoff.agentVerifiedChecks ?? [], 'agentVerifiedChecks must identify checks completed by the agent');
112
- findings.push(...evaluateMaintainerOnlyChecks(reviewHandoff));
113
- }
114
- if (reviewHandoff.riskLevel === 'low') {
115
- if (!riskRouting.allowedLowRiskFlows.includes(reviewHandoff.flowUsed)) {
116
- findings.push(`low-risk scoped work used flow ${reviewHandoff.flowUsed}`);
117
- }
118
- for (const file of input.changedFiles) {
119
- if (riskRouting.riskyChangedPathGlobs.some((pattern) => globMatches(pattern, file))) {
120
- findings.push(`low-risk scoped work changed configured risky path ${file}`);
121
- }
122
- }
123
- }
124
- if (reviewHandoff.riskLevel === 'high' && riskRouting.highRiskRequiresCodeReview) {
125
- const hasCodeReview = hasPassedValidation(input.validation, input.config.reviewGates.quality.codeReview.requiredValidationPatterns);
126
- if (!hasCodeReview) {
127
- findings.push('high-risk scoped work requires passed code-review validation');
128
- }
129
- }
130
- return findings;
131
- }
132
- function evaluateMaintainerOnlyChecks(reviewHandoff) {
133
- const findings = [];
134
- (reviewHandoff.maintainerOnlyChecks ?? []).forEach((item, index) => {
135
- if (item.check.trim().length === 0) {
136
- findings.push(`maintainerOnlyChecks[${index}].check must be non-empty`);
137
- }
138
- if (item.reasonAgentCouldNotVerify.trim().length === 0) {
139
- findings.push(`maintainerOnlyChecks[${index}].reasonAgentCouldNotVerify must explain the human-only blocker`);
140
- }
141
- if (looksAgentVerifiableMaintainerCheck(item.check, item.reasonAgentCouldNotVerify)) {
142
- findings.push(`maintainerOnlyChecks[${index}] looks agent-verifiable; put commands, code searches, import checks, and fallback-path confirmations in validation, proofByAcceptanceCriteria, or agentVerifiedChecks`);
143
- }
144
- });
145
- return findings;
146
- }
147
- function looksAgentVerifiableMaintainerCheck(check, reason) {
148
- const normalizedCheck = normalizeEvidenceText(check);
149
- const normalizedReason = normalizeEvidenceText(reason);
150
- const commandLike = /(?:^|\b)(?:run|rerun|execute)\s+(?:npm|pnpm|yarn|node|npx|jest|vitest|tsc|typecheck|rg|grep|git|curl)\b/u
151
- .test(normalizedCheck)
152
- || /\b(?:npm|pnpm|yarn|node|npx|jest|vitest|typecheck|rg|grep|git diff|git status)\b/u.test(normalizedCheck);
153
- if (commandLike) {
154
- return true;
155
- }
156
- const sourceInspectionLike = /^(?:confirm|check|verify|inspect)\b.*\b(?:import|imports|path|paths|fallback|only|code|client|test|spec|typecheck|appears)\b/u
157
- .test(normalizedCheck);
158
- if (!sourceInspectionLike) {
159
- return false;
160
- }
161
- return !hasConcreteHumanOnlyReason(normalizedReason);
162
- }
163
- function hasConcreteHumanOnlyReason(reason) {
164
- return /\b(?:product|business|legal|security policy|approval|credential|credentials|secret|external|account|permission|production|deploy|release|live provider|inaccessible|no access|manual device|customer|stakeholder|ux judgment)\b/u
165
- .test(reason)
166
- || /outside repository evidence/u.test(reason);
167
- }
168
- function normalizeEvidenceText(value) {
169
- return value.toLowerCase().replace(/\s+/gu, ' ').trim();
170
- }
171
- function evaluateParentRiskRoutingFindings(input) {
172
- const riskRouting = input.config.reviewGates.riskRouting;
173
- if (!riskRouting.enabled) {
174
- return [];
175
- }
176
- const findings = [];
177
- const stableIds = input.report.graph.nodes.map((node) => node.stableId);
178
- if (!input.report.sizeRisk) {
179
- if (riskRouting.requireParentSizeRisk) {
180
- findings.push('parent sizeRisk is required');
181
- }
182
- }
183
- else if (riskRouting.requireParentSizeRisk) {
184
- findings.push(...evaluateSizeRiskPartition(stableIds, input.report.sizeRisk));
185
- }
186
- const parentReviewHandoff = input.report.parentReviewHandoff;
187
- if (!parentReviewHandoff) {
188
- if (riskRouting.requireParentReviewHandoff) {
189
- findings.push('parentReviewHandoff is required');
190
- }
191
- }
192
- else if (riskRouting.requireParentReviewHandoff) {
193
- requireNonEmptyEvidence(findings, parentReviewHandoff.risks, 'parentReviewHandoff.risks must describe parent orchestration risks');
194
- requireNonEmptyEvidence(findings, parentReviewHandoff.proofStrategy, 'parentReviewHandoff.proofStrategy must describe parent proof strategy');
195
- requireNonEmptyEvidence(findings, parentReviewHandoff.humanReviewFocus, 'parentReviewHandoff.humanReviewFocus must describe human review focus');
196
- }
197
- return findings;
198
- }
199
- function evaluateSizeRiskPartition(stableIds, sizeRisk) {
200
- const findings = [];
201
- const known = new Set(stableIds);
202
- const counts = new Map();
203
- const listed = [...sizeRisk.small, ...sizeRisk.medium, ...sizeRisk.high];
204
- for (const stableId of listed) {
205
- counts.set(stableId, (counts.get(stableId) ?? 0) + 1);
206
- }
207
- for (const stableId of stableIds) {
208
- if (!counts.has(stableId)) {
209
- findings.push(`sizeRisk is missing stable id ${stableId}`);
210
- }
211
- }
212
- for (const stableId of listed) {
213
- if (!known.has(stableId)) {
214
- findings.push(`sizeRisk lists unknown stable id ${stableId}`);
215
- }
216
- else if ((counts.get(stableId) ?? 0) > 1) {
217
- findings.push(`sizeRisk lists stable id ${stableId} more than once`);
218
- counts.set(stableId, 1);
219
- }
220
- }
221
- return findings;
222
- }
223
- function requireNonEmptyEvidence(findings, values, message) {
224
- if (values.length === 0 || values.every((value) => value.trim().length === 0)) {
225
- findings.push(message);
226
- }
227
- }
228
- function applyRiskRoutingFindings(findings, config, reasons, warnings) {
229
- if (findings.length === 0) {
230
- return;
231
- }
232
- if (config.reviewGates.riskRouting.mode === 'block') {
233
- reasons.push(...findings.map((finding) => `Risk routing gate requires: ${finding}.`));
234
- return;
235
- }
236
- warnings.push(...findings.map((finding) => `Risk routing warning: ${finding}.`));
237
- }
238
- function isVisualProofCapabilityUnavailable(line) {
239
- if (line.status !== 'skipped') {
240
- return false;
241
- }
242
- return /(?:no runner-owned|not configured|no .*provider|unavailable|not available|not installed|not found|missing tool|no devices? connected|no usable .*device|adb|emulator|xcodebuild|simctl|flutter .*requires flutter|flutter was not found)/iu
243
- .test(line.summary);
244
- }
245
- function evaluateQualityGate(input) {
246
- const quality = input.config.reviewGates.quality;
247
- if (!quality.enabled) {
248
- return { reasons: [], blockers: [] };
249
- }
250
- const { runtimeFiles, testFiles } = classifyChangedPaths(input.changedFiles, {
251
- runtimeChangedPathGlobs: quality.runtimeChangedPathGlobs,
252
- testChangedPathGlobs: quality.testChangedPathGlobs,
253
- });
254
- if (runtimeFiles.length === 0) {
255
- return { reasons: [], blockers: [] };
256
- }
257
- const reasons = [];
258
- const blockers = [];
259
- if (quality.tdd.enabled) {
260
- const hasTddValidation = hasPassedTddValidation(input.validation, quality.tdd.requiredValidationPatterns);
261
- const hasRunnerVisualProofEvidence = hasPassedRunnerVisualProofEvidence(input);
262
- if (quality.tdd.requireTestChange && testFiles.length === 0 && !hasRunnerVisualProofEvidence) {
263
- const reason = 'Quality gate requires TDD test file change for runtime changes.';
264
- reasons.push(reason);
265
- blockers.push(runnerBlocker('missing-quality-gate-evidence', reason));
266
- }
267
- if (!hasTddValidation && !hasRunnerVisualProofEvidence) {
268
- const reason = 'Quality gate requires TDD red-to-green proof in validation.';
269
- reasons.push(reason);
270
- blockers.push(runnerBlocker('missing-quality-gate-evidence', reason));
271
- }
272
- }
273
- if (quality.cleanupReview.enabled && runtimeFiles.length >= quality.cleanupReview.runtimeFileThreshold) {
274
- const hasCleanupReview = hasPassedValidation(input.validation, quality.cleanupReview.requiredValidationPatterns);
275
- if (!hasCleanupReview) {
276
- const reason = 'Quality gate requires passed cleanup-review validation for medium or large runtime changes.';
277
- reasons.push(reason);
278
- blockers.push(runnerBlocker('missing-quality-gate-evidence', reason));
279
- }
280
- }
281
- if (quality.codeReview.enabled) {
282
- const hasCodeReview = hasPassedValidation(input.validation, quality.codeReview.requiredValidationPatterns);
283
- if (!hasCodeReview) {
284
- const reason = 'Quality gate requires passed code-review validation for runtime changes.';
285
- reasons.push(reason);
286
- blockers.push(runnerBlocker('missing-quality-gate-evidence', reason));
287
- }
288
- }
289
- return { reasons, blockers };
290
- }
291
- function reviewGateResult(reasons, warnings, blockers) {
292
- return {
293
- ok: reasons.length === 0,
294
- reasons,
295
- warnings,
296
- ...(blockers.length > 0 ? { blockers: uniqueBlockers(blockers) } : {}),
297
- };
298
- }
299
- function runnerBlocker(key, reason) {
300
- return { key, reason, source: 'review-gate', repair: 'evidence' };
301
- }
302
- function uniqueBlockers(blockers) {
303
- const seen = new Set();
304
- const unique = [];
305
- for (const blocker of blockers) {
306
- const key = `${blocker.key}\n${blocker.reason}`;
307
- if (!seen.has(key)) {
308
- seen.add(key);
309
- unique.push(blocker);
310
- }
311
- }
312
- return unique;
313
- }
314
- function hasPassedRunnerVisualProofEvidence(input) {
315
- if (!shouldApplyVisualProofGate(input)) {
316
- return false;
317
- }
318
- const hasPassedRunnerProof = input.validation.some((line) => line.status === 'passed'
319
- && isRunnerVisualValidation(line)
320
- && isStrongVisualValidation(line));
321
- if (!hasPassedRunnerProof) {
322
- return false;
323
- }
324
- return input.changedFiles.some((file) => {
325
- return isRunnerVisualProofCodeArtifactPath(file, runnerVisualProofPolicy(input.config).artifactDir);
326
- });
327
- }
328
- //# sourceMappingURL=review-gates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-gates.js","sourceRoot":"","sources":["../../../src/runner/review-gates.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import type { CodexOrchestratorConfig } from '../config/schema.js';
2
- export declare const MISSING_COMPLETION_REPORT_REASON = "Codex did not write CODEX_ORCHESTRATOR_REPORT_FILE; runner cannot prove safety contract.";
3
- export declare const INCOMPLETE_AFTER_PROGRESS_REASON = "Codex idle timed out after safe local progress; runner will retry completion from existing worktree.";
4
- export declare const IDLE_TIMEOUT_BEFORE_CHANGE_REASON = "Codex idle timed out before creating a safe local change; runner will retry from the clean worktree.";
5
- export declare const OPTIONAL_FIGMA_MCP_FAILURE_REASON = "Optional Figma MCP failed before completion; retry without optional Figma MCP.";
6
- export declare const REQUIRED_FIGMA_MCP_FAILURE_REASON = "Required Figma MCP failed; required design access is unavailable.";
7
- export type ReworkBlockerKey = 'missing-completion-report' | 'idle-timeout-before-change' | 'incomplete-after-progress' | 'invalid-completion-report' | 'no-changed-files' | 'failed-configured-checks' | 'missing-quality-gate-evidence' | 'invalid-acceptance-proof-report' | 'failed-acceptance-proof' | 'risk-routing-policy' | 'optional-figma-mcp-failure' | 'required-figma-mcp-failure' | 'denied-path' | 'publication-violation' | 'destructive-or-production-action' | 'unknown';
8
- export type RunnerBlockerSource = 'publishability' | 'completion-report' | 'configured-check' | 'review-gate' | 'acceptance-proof' | 'safety' | 'codex' | 'recovery';
9
- export type RunnerBlockerRepair = 'implementation-rework' | 'completion-report' | 'evidence' | 'none';
10
- export interface RunnerBlocker {
11
- key: ReworkBlockerKey;
12
- reason: string;
13
- source: RunnerBlockerSource;
14
- repair?: RunnerBlockerRepair;
15
- }
16
- export interface ReworkDecisionInput {
17
- reasons: string[];
18
- blockers?: RunnerBlocker[];
19
- config: CodexOrchestratorConfig;
20
- attempt: number;
21
- }
22
- export type ReworkDecision = {
23
- kind: 'retry';
24
- attempt: number;
25
- nextAttempt: number;
26
- maxAttempts: number;
27
- blockerKeys: ReworkBlockerKey[];
28
- reasons: string[];
29
- rework: {
30
- attempt: number;
31
- blockedReasons: string[];
32
- disableOptionalFigmaMcp: boolean;
33
- };
34
- } | {
35
- kind: 'exhausted';
36
- attempt: number;
37
- maxAttempts: number;
38
- blockerKeys: ReworkBlockerKey[];
39
- reasons: string[];
40
- } | {
41
- kind: 'hard-block';
42
- attempt: number;
43
- blockerKeys: ReworkBlockerKey[];
44
- reasons: string[];
45
- };
46
- export declare function decideImplementationRework(input: ReworkDecisionInput): ReworkDecision;
47
- export declare function blockersFromReasons(reasons: string[]): RunnerBlocker[];
48
- //# sourceMappingURL=rework-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rework-policy.d.ts","sourceRoot":"","sources":["../../../src/runner/rework-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,eAAO,MAAM,gCAAgC,6FAC+C,CAAC;AAE7F,eAAO,MAAM,gCAAgC,yGAC2D,CAAC;AAEzG,eAAO,MAAM,iCAAiC,yGAC0D,CAAC;AAEzG,eAAO,MAAM,iCAAiC,mFACoC,CAAC;AAEnF,eAAO,MAAM,iCAAiC,sEACuB,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GACxB,2BAA2B,GAC3B,4BAA4B,GAC5B,2BAA2B,GAC3B,2BAA2B,GAC3B,kBAAkB,GAClB,0BAA0B,GAC1B,+BAA+B,GAC/B,iCAAiC,GACjC,yBAAyB,GACzB,qBAAqB,GACrB,4BAA4B,GAC5B,4BAA4B,GAC5B,aAAa,GACb,uBAAuB,GACvB,kCAAkC,GAClC,SAAS,CAAC;AAEd,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,QAAQ,GACR,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,MAAM,mBAAmB,GAC3B,uBAAuB,GACvB,mBAAmB,GACnB,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,gBAAgB,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,uBAAuB,EAAE,OAAO,CAAC;KAClC,CAAC;CACH,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAmCN,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAoDrF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CA4BtE"}
@@ -1,150 +0,0 @@
1
- export const MISSING_COMPLETION_REPORT_REASON = 'Codex did not write CODEX_ORCHESTRATOR_REPORT_FILE; runner cannot prove safety contract.';
2
- export const INCOMPLETE_AFTER_PROGRESS_REASON = 'Codex idle timed out after safe local progress; runner will retry completion from existing worktree.';
3
- export const IDLE_TIMEOUT_BEFORE_CHANGE_REASON = 'Codex idle timed out before creating a safe local change; runner will retry from the clean worktree.';
4
- export const OPTIONAL_FIGMA_MCP_FAILURE_REASON = 'Optional Figma MCP failed before completion; retry without optional Figma MCP.';
5
- export const REQUIRED_FIGMA_MCP_FAILURE_REASON = 'Required Figma MCP failed; required design access is unavailable.';
6
- const missingCompletionReportPattern = new RegExp(escapeRegex(MISSING_COMPLETION_REPORT_REASON), 'iu');
7
- const idleTimeoutBeforeChangePattern = new RegExp(escapeRegex(IDLE_TIMEOUT_BEFORE_CHANGE_REASON), 'iu');
8
- const incompleteAfterProgressPattern = new RegExp(escapeRegex(INCOMPLETE_AFTER_PROGRESS_REASON), 'iu');
9
- const optionalFigmaPattern = new RegExp(escapeRegex(OPTIONAL_FIGMA_MCP_FAILURE_REASON), 'iu');
10
- const requiredFigmaPattern = new RegExp(escapeRegex(REQUIRED_FIGMA_MCP_FAILURE_REASON), 'iu');
11
- const blockerPatterns = [
12
- ['denied-path', /matches denied pattern/iu],
13
- ['publication-violation', /runner-owned publication was violated/iu],
14
- ['destructive-or-production-action', /destructive-db-or-cache|production-deploy-or-release/iu],
15
- ['required-figma-mcp-failure', requiredFigmaPattern],
16
- ['optional-figma-mcp-failure', optionalFigmaPattern],
17
- ['missing-quality-gate-evidence', /Quality gate requires/iu],
18
- ['failed-configured-checks', /One or more configured checks failed|^(?!Codex exited\b)[^\n:]+:\s*failed\b/iu],
19
- ['invalid-acceptance-proof-report', /Invalid acceptance proof report schema/iu],
20
- ['failed-acceptance-proof', /Acceptance proof/iu],
21
- ['risk-routing-policy', /Risk routing gate requires/iu],
22
- ['invalid-completion-report', /Invalid scoped completion report/iu],
23
- ['idle-timeout-before-change', idleTimeoutBeforeChangePattern],
24
- ['incomplete-after-progress', incompleteAfterProgressPattern],
25
- ['missing-completion-report', missingCompletionReportPattern],
26
- ['no-changed-files', /Codex completed without file changes/iu],
27
- ];
28
- const hardBlockerKeys = new Set([
29
- 'denied-path',
30
- 'publication-violation',
31
- 'destructive-or-production-action',
32
- 'required-figma-mcp-failure',
33
- 'invalid-acceptance-proof-report',
34
- 'unknown',
35
- ]);
36
- export function decideImplementationRework(input) {
37
- const blockers = input.blockers ?? blockersFromReasons(input.reasons);
38
- const blockerKeys = uniqueBlockerKeys(blockers);
39
- const repairDisabledBlockerKeys = blockers
40
- .filter((blocker) => blocker.repair === 'none')
41
- .map((blocker) => blocker.key);
42
- const hardBlockers = blockerKeys.filter((key) => hardBlockerKeys.has(key) || repairDisabledBlockerKeys.includes(key));
43
- if (hardBlockers.length > 0) {
44
- return {
45
- kind: 'hard-block',
46
- attempt: input.attempt,
47
- blockerKeys,
48
- reasons: input.reasons,
49
- };
50
- }
51
- const retryable = new Set(input.config.loopPolicy.rework.retryableBlockers);
52
- const retryableBlockerKeys = blockerKeys.filter((key) => retryable.has(key));
53
- if (retryableBlockerKeys.length === 0) {
54
- return {
55
- kind: 'hard-block',
56
- attempt: input.attempt,
57
- blockerKeys,
58
- reasons: input.reasons,
59
- };
60
- }
61
- const maxAttempts = maxAttemptsForBlockerKeys(blockerKeys, input.config);
62
- if (input.attempt >= maxAttempts) {
63
- return {
64
- kind: 'exhausted',
65
- attempt: input.attempt,
66
- maxAttempts,
67
- blockerKeys,
68
- reasons: input.reasons,
69
- };
70
- }
71
- return {
72
- kind: 'retry',
73
- attempt: input.attempt,
74
- nextAttempt: input.attempt + 1,
75
- maxAttempts,
76
- blockerKeys,
77
- reasons: input.reasons,
78
- rework: {
79
- attempt: input.attempt + 1,
80
- blockedReasons: input.reasons,
81
- disableOptionalFigmaMcp: blockerKeys.includes('optional-figma-mcp-failure'),
82
- },
83
- };
84
- }
85
- export function blockersFromReasons(reasons) {
86
- const blockers = [];
87
- for (const reason of reasons) {
88
- const matched = blockerPatterns
89
- .filter(([, pattern]) => pattern.test(reason))
90
- .map(([key]) => key);
91
- if (matched.length === 0) {
92
- pushUniqueBlocker(blockers, {
93
- key: 'unknown',
94
- reason,
95
- source: 'publishability',
96
- repair: 'none',
97
- });
98
- continue;
99
- }
100
- const effectiveMatched = matched.includes('invalid-acceptance-proof-report')
101
- ? matched.filter((key) => key !== 'failed-acceptance-proof')
102
- : matched;
103
- for (const key of effectiveMatched) {
104
- pushUniqueBlocker(blockers, {
105
- key,
106
- reason,
107
- source: sourceForLegacyKey(key),
108
- repair: repairForLegacyKey(key),
109
- });
110
- }
111
- }
112
- return blockers;
113
- }
114
- function maxAttemptsForBlockerKeys(blockerKeys, config) {
115
- if (blockerKeys.includes('failed-acceptance-proof')) {
116
- return Math.max(0, config.reviewGates.acceptanceProof.maxIterations - 1);
117
- }
118
- return config.loopPolicy.rework.maxAttempts;
119
- }
120
- function uniqueBlockerKeys(blockers) {
121
- const keys = [];
122
- for (const blocker of blockers) {
123
- pushUnique(keys, blocker.key);
124
- }
125
- return keys;
126
- }
127
- function sourceForLegacyKey(key) {
128
- void key;
129
- return 'publishability';
130
- }
131
- function repairForLegacyKey(key) {
132
- if (hardBlockerKeys.has(key)) {
133
- return 'none';
134
- }
135
- return 'implementation-rework';
136
- }
137
- function pushUniqueBlocker(items, item) {
138
- if (!items.some((existing) => existing.key === item.key && existing.reason === item.reason)) {
139
- items.push(item);
140
- }
141
- }
142
- function pushUnique(items, item) {
143
- if (!items.includes(item)) {
144
- items.push(item);
145
- }
146
- }
147
- function escapeRegex(value) {
148
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
149
- }
150
- //# sourceMappingURL=rework-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rework-policy.js","sourceRoot":"","sources":["../../../src/runner/rework-policy.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { CodexOrchestratorConfig } from '../config/schema.js';
2
- export declare function sessionLogPath(input: {
3
- targetRoot: string;
4
- config: CodexOrchestratorConfig;
5
- issueNumber: number;
6
- sessionId: string;
7
- }): string;
8
- export declare class RunLogWriter {
9
- private readonly logPath;
10
- constructor(logPath: string);
11
- appendStdout(chunk: string): Promise<void>;
12
- appendStderr(chunk: string): Promise<void>;
13
- appendLifecycle(message: string): Promise<void>;
14
- close(): Promise<void>;
15
- private append;
16
- }
17
- export declare function renderCodexStreamChunk(chunk: string, stream: 'stdout' | 'stderr'): string[];
18
- //# sourceMappingURL=run-log.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-log.d.ts","sourceRoot":"","sources":["../../../src/runner/run-log.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,uBAAuB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAOT;AAED,qBAAa,YAAY;IACJ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAEtC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAIrB,MAAM;CAIrB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAAE,CAE3F"}
@@ -1,53 +0,0 @@
1
- import { appendFile, mkdir } from 'node:fs/promises';
2
- import { dirname, join } from 'node:path';
3
- export function sessionLogPath(input) {
4
- return join(input.targetRoot, input.config.runner.stateDir, 'logs', `issue-${input.issueNumber}-${input.sessionId}.log`);
5
- }
6
- export class RunLogWriter {
7
- logPath;
8
- constructor(logPath) {
9
- this.logPath = logPath;
10
- }
11
- async appendStdout(chunk) {
12
- await this.append(renderCodexStreamChunk(chunk, 'stdout').join(''));
13
- }
14
- async appendStderr(chunk) {
15
- await this.append(renderCodexStreamChunk(chunk, 'stderr').join(''));
16
- }
17
- async appendLifecycle(message) {
18
- await this.append(`[lifecycle] ${message}\n`);
19
- }
20
- async close() {
21
- await this.appendLifecycle('log closed');
22
- }
23
- async append(content) {
24
- await mkdir(dirname(this.logPath), { recursive: true });
25
- await appendFile(this.logPath, content, 'utf8');
26
- }
27
- }
28
- export function renderCodexStreamChunk(chunk, stream) {
29
- return chunk.split(/(?<=\n)/u).filter((line) => line.length > 0).map((line) => renderCodexStreamLine(line, stream));
30
- }
31
- function renderCodexStreamLine(line, stream) {
32
- const trimmed = line.trim();
33
- if (!trimmed.startsWith('{') || !trimmed.endsWith('}')) {
34
- return `[${stream}] ${line}`;
35
- }
36
- try {
37
- const parsed = JSON.parse(trimmed);
38
- if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
39
- return `[${stream}] ${line}`;
40
- }
41
- const record = parsed;
42
- const eventType = readString(record.type) ?? readString(record.event) ?? 'codex-event';
43
- const text = readString(record.message) ?? readString(record.delta) ?? readString(record.text);
44
- return text ? `[${stream}] ${eventType}: ${text}\n` : `[${stream}] ${eventType}: ${trimmed}\n`;
45
- }
46
- catch {
47
- return `[${stream}] ${line}`;
48
- }
49
- }
50
- function readString(value) {
51
- return typeof value === 'string' && value.length > 0 ? value : undefined;
52
- }
53
- //# sourceMappingURL=run-log.js.map