codex-orchestrator 0.1.50 → 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 +27 -0
  2. package/README.md +45 -389
  3. package/dist/src/index.d.ts +16 -46
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +8 -24
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +111 -0
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -0
  9. package/dist/src/v2/acceptance-proof.js +427 -0
  10. package/dist/src/v2/acceptance-proof.js.map +1 -0
  11. package/dist/src/v2/adapters/command.d.ts.map +1 -0
  12. package/dist/src/v2/adapters/command.js.map +1 -0
  13. package/dist/src/v2/adapters/durable-atomic-file.d.ts.map +1 -0
  14. package/dist/src/v2/adapters/durable-atomic-file.js.map +1 -0
  15. package/dist/src/v2/adapters/gh-cli.d.ts.map +1 -0
  16. package/dist/src/v2/adapters/gh-cli.js.map +1 -0
  17. package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -0
  18. package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -0
  19. package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts.map +1 -0
  20. package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -0
  21. package/dist/src/v2/adapters/issues.d.ts.map +1 -0
  22. package/dist/src/v2/adapters/issues.js.map +1 -0
  23. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts.map +1 -0
  24. package/dist/src/v2/adapters/mission-coordinator-lock.js.map +1 -0
  25. package/dist/src/v2/adapters/path-policy.d.ts.map +1 -0
  26. package/dist/src/v2/adapters/path-policy.js.map +1 -0
  27. package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -0
  28. package/dist/src/v2/adapters/pull-requests.js.map +1 -0
  29. package/dist/src/v2/adapters/target-activity-fence.d.ts.map +1 -0
  30. package/dist/src/{runner → v2/adapters}/target-activity-fence.js +1 -1
  31. package/dist/src/v2/adapters/target-activity-fence.js.map +1 -0
  32. package/dist/src/{git → v2/adapters}/worktree.d.ts +1 -1
  33. package/dist/src/v2/adapters/worktree.d.ts.map +1 -0
  34. package/dist/src/{git → v2/adapters}/worktree.js +2 -2
  35. package/dist/src/v2/adapters/worktree.js.map +1 -0
  36. package/dist/src/v2/atomic-store.d.ts +36 -0
  37. package/dist/src/v2/atomic-store.d.ts.map +1 -0
  38. package/dist/src/v2/atomic-store.js +328 -0
  39. package/dist/src/v2/atomic-store.js.map +1 -0
  40. package/dist/src/v2/candidate-cli.d.ts +22 -0
  41. package/dist/src/v2/candidate-cli.d.ts.map +1 -0
  42. package/dist/src/v2/candidate-cli.js +161 -0
  43. package/dist/src/v2/candidate-cli.js.map +1 -0
  44. package/dist/src/v2/checked-change.d.ts +49 -0
  45. package/dist/src/v2/checked-change.d.ts.map +1 -0
  46. package/dist/src/v2/checked-change.js +139 -0
  47. package/dist/src/v2/checked-change.js.map +1 -0
  48. package/dist/src/v2/cli-contract.d.ts +8 -0
  49. package/dist/src/v2/cli-contract.d.ts.map +1 -0
  50. package/dist/src/v2/cli-contract.js +32 -0
  51. package/dist/src/v2/cli-contract.js.map +1 -0
  52. package/dist/src/v2/codex-process.d.ts +71 -0
  53. package/dist/src/v2/codex-process.d.ts.map +1 -0
  54. package/dist/src/v2/codex-process.js +404 -0
  55. package/dist/src/v2/codex-process.js.map +1 -0
  56. package/dist/src/v2/config.d.ts +45 -0
  57. package/dist/src/v2/config.d.ts.map +1 -0
  58. package/dist/src/v2/config.js +139 -0
  59. package/dist/src/v2/config.js.map +1 -0
  60. package/dist/src/v2/containment.d.ts +55 -0
  61. package/dist/src/v2/containment.d.ts.map +1 -0
  62. package/dist/src/v2/containment.js +370 -0
  63. package/dist/src/v2/containment.js.map +1 -0
  64. package/dist/src/v2/implementation-report.d.ts +18 -0
  65. package/dist/src/v2/implementation-report.d.ts.map +1 -0
  66. package/dist/src/v2/implementation-report.js +147 -0
  67. package/dist/src/v2/implementation-report.js.map +1 -0
  68. package/dist/src/v2/legacy-cutover.d.ts +52 -0
  69. package/dist/src/v2/legacy-cutover.d.ts.map +1 -0
  70. package/dist/src/v2/legacy-cutover.js +87 -0
  71. package/dist/src/v2/legacy-cutover.js.map +1 -0
  72. package/dist/src/v2/mobile-lease.d.ts +97 -0
  73. package/dist/src/v2/mobile-lease.d.ts.map +1 -0
  74. package/dist/src/v2/mobile-lease.js +253 -0
  75. package/dist/src/v2/mobile-lease.js.map +1 -0
  76. package/dist/src/v2/proof-report.d.ts +118 -0
  77. package/dist/src/v2/proof-report.d.ts.map +1 -0
  78. package/dist/src/v2/proof-report.js +703 -0
  79. package/dist/src/v2/proof-report.js.map +1 -0
  80. package/dist/src/v2/proof-store.d.ts +42 -0
  81. package/dist/src/v2/proof-store.d.ts.map +1 -0
  82. package/dist/src/v2/proof-store.js +180 -0
  83. package/dist/src/v2/proof-store.js.map +1 -0
  84. package/dist/src/v2/report-envelope.d.ts +4 -0
  85. package/dist/src/v2/report-envelope.d.ts.map +1 -0
  86. package/dist/src/v2/report-envelope.js +46 -0
  87. package/dist/src/v2/report-envelope.js.map +1 -0
  88. package/dist/src/v2/run-issue.d.ts +213 -0
  89. package/dist/src/v2/run-issue.d.ts.map +1 -0
  90. package/dist/src/v2/run-issue.js +906 -0
  91. package/dist/src/v2/run-issue.js.map +1 -0
  92. package/dist/src/v2/run-store.d.ts +136 -0
  93. package/dist/src/v2/run-store.d.ts.map +1 -0
  94. package/dist/src/v2/run-store.js +346 -0
  95. package/dist/src/v2/run-store.js.map +1 -0
  96. package/dist/src/v2/runtime-assets.d.ts +31 -0
  97. package/dist/src/v2/runtime-assets.d.ts.map +1 -0
  98. package/dist/src/v2/runtime-assets.js +473 -0
  99. package/dist/src/v2/runtime-assets.js.map +1 -0
  100. package/dist/src/v2/runtime.d.ts +137 -0
  101. package/dist/src/v2/runtime.d.ts.map +1 -0
  102. package/dist/src/v2/runtime.js +847 -0
  103. package/dist/src/v2/runtime.js.map +1 -0
  104. package/dist/src/v2/setup-cli.d.ts +5 -0
  105. package/dist/src/v2/setup-cli.d.ts.map +1 -0
  106. package/dist/src/v2/setup-cli.js +83 -0
  107. package/dist/src/v2/setup-cli.js.map +1 -0
  108. package/dist/src/v2/setup-runtime.d.ts +6 -0
  109. package/dist/src/v2/setup-runtime.d.ts.map +1 -0
  110. package/dist/src/v2/setup-runtime.js +213 -0
  111. package/dist/src/v2/setup-runtime.js.map +1 -0
  112. package/dist/src/v2/setup-store.d.ts +19 -0
  113. package/dist/src/v2/setup-store.d.ts.map +1 -0
  114. package/dist/src/v2/setup-store.js +208 -0
  115. package/dist/src/v2/setup-store.js.map +1 -0
  116. package/dist/src/v2/setup.d.ts +147 -0
  117. package/dist/src/v2/setup.d.ts.map +1 -0
  118. package/dist/src/v2/setup.js +529 -0
  119. package/dist/src/v2/setup.js.map +1 -0
  120. package/docs/deep-dive.md +54 -803
  121. package/internal-skills/acceptance-proof/SKILL.md +14 -0
  122. package/internal-skills/acceptance-proof/references/android.md +14 -0
  123. package/internal-skills/acceptance-proof/references/browser.md +13 -0
  124. package/internal-skills/acceptance-proof/references/ios.md +14 -0
  125. package/internal-skills/acceptance-proof/tools/android-lease.mjs +280 -0
  126. package/internal-skills/acceptance-proof/tools/ios-lease.mjs +288 -0
  127. package/internal-skills/agent-auto/SKILL.md +14 -0
  128. package/package.json +11 -18
  129. package/bridge-runtime.json +0 -2719
  130. package/dist/src/bridge-runtime.d.ts +0 -17
  131. package/dist/src/bridge-runtime.d.ts.map +0 -1
  132. package/dist/src/bridge-runtime.js +0 -168
  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,36 +0,0 @@
1
- import type { MissionDeploymentRecord } from './mission-deployment.js';
2
- export interface RuntimeOwnerRecord {
3
- version: 1;
4
- repository: string;
5
- deploymentId: string;
6
- githubAppInstallationId: string;
7
- credentialGeneration: string;
8
- compatibilityEpoch: number;
9
- deploymentRecordHash: string;
10
- approvedByCommit: string;
11
- fencingEpoch: number;
12
- }
13
- export interface RuntimeOwnerObservation {
14
- sha: string;
15
- record: RuntimeOwnerRecord;
16
- }
17
- export interface RuntimeOwnerRefAdapter {
18
- read(): Promise<RuntimeOwnerObservation | undefined>;
19
- compareAndSwap(expectedSha: string | undefined, record: RuntimeOwnerRecord): Promise<RuntimeOwnerObservation>;
20
- }
21
- export declare function canonicalRuntimeOwnerRecord(record: RuntimeOwnerRecord): string;
22
- export declare function parseRuntimeOwnerRecord(content: string): RuntimeOwnerRecord;
23
- export declare function assertRuntimeOwnerRecord(value: unknown): asserts value is RuntimeOwnerRecord;
24
- export declare class RuntimeOwnerConflictError extends Error {
25
- constructor(message: string);
26
- }
27
- export declare class MissionRuntimeOwnership {
28
- private readonly adapter;
29
- constructor(adapter: RuntimeOwnerRefAdapter);
30
- acquireInitial(deployment: MissionDeploymentRecord): Promise<RuntimeOwnerObservation>;
31
- transfer(deployment: MissionDeploymentRecord, githubServerTime: string): Promise<RuntimeOwnerObservation>;
32
- assertMutationFence(deployment: MissionDeploymentRecord, expectedFencingEpoch: number): Promise<RuntimeOwnerObservation>;
33
- runFencedMutation<T>(deployment: MissionDeploymentRecord, expectedFencingEpoch: number, mutation: (fence: RuntimeOwnerObservation) => Promise<T>): Promise<T>;
34
- }
35
- export declare function ownerRecord(deployment: MissionDeploymentRecord, fencingEpoch: number): RuntimeOwnerRecord;
36
- //# sourceMappingURL=mission-runtime-owner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mission-runtime-owner.d.ts","sourceRoot":"","sources":["../../../src/runner/mission-runtime-owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,IAAI,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;IACrD,cAAc,CACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACrC;AAcD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAG9E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAY3E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,kBAAkB,CAwC5F;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAInC;AAED,qBAAa,uBAAuB;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,sBAAsB;IAEtD,cAAc,CAAC,UAAU,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQrF,QAAQ,CACnB,UAAU,EAAE,uBAAuB,EACnC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,uBAAuB,CAAC;IA+BtB,mBAAmB,CAC9B,UAAU,EAAE,uBAAuB,EACnC,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC,uBAAuB,CAAC;IA8BtB,iBAAiB,CAAC,CAAC,EAC9B,UAAU,EAAE,uBAAuB,EACnC,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,CAAC,CAAC,GACvD,OAAO,CAAC,CAAC,CAAC;CAId;AAED,wBAAgB,WAAW,CACzB,UAAU,EAAE,uBAAuB,EACnC,YAAY,EAAE,MAAM,GACnB,kBAAkB,CAepB"}
@@ -1,174 +0,0 @@
1
- import { missionDeploymentRecordHash } from './mission-deployment.js';
2
- const runtimeOwnerFields = [
3
- 'version',
4
- 'repository',
5
- 'deploymentId',
6
- 'githubAppInstallationId',
7
- 'credentialGeneration',
8
- 'compatibilityEpoch',
9
- 'deploymentRecordHash',
10
- 'approvedByCommit',
11
- 'fencingEpoch',
12
- ];
13
- export function canonicalRuntimeOwnerRecord(record) {
14
- assertRuntimeOwnerRecord(record);
15
- return JSON.stringify(Object.fromEntries(runtimeOwnerFields.map((field) => [field, record[field]])));
16
- }
17
- export function parseRuntimeOwnerRecord(content) {
18
- let parsed;
19
- try {
20
- parsed = JSON.parse(content);
21
- }
22
- catch {
23
- throw new Error('Invalid Mission runtime owner record: expected JSON.');
24
- }
25
- assertRuntimeOwnerRecord(parsed);
26
- if (content !== canonicalRuntimeOwnerRecord(parsed)) {
27
- throw new Error('Invalid Mission runtime owner record: expected canonical JSON.');
28
- }
29
- return parsed;
30
- }
31
- export function assertRuntimeOwnerRecord(value) {
32
- if (typeof value !== 'object' || value === null || Array.isArray(value)) {
33
- throw new Error('Invalid Mission runtime owner record: root must be an object.');
34
- }
35
- const record = value;
36
- const allowed = new Set(runtimeOwnerFields);
37
- for (const key of Object.keys(record)) {
38
- if (!allowed.has(key)) {
39
- throw new Error(`Invalid Mission runtime owner record: unexpected field ${key}.`);
40
- }
41
- }
42
- if (Object.keys(record).length !== runtimeOwnerFields.length
43
- || runtimeOwnerFields.some((field) => !(field in record))) {
44
- throw new Error('Invalid Mission runtime owner record: exact fields are required.');
45
- }
46
- if (record.version !== 1) {
47
- throw new Error('Invalid Mission runtime owner record: version must be 1.');
48
- }
49
- for (const field of [
50
- 'repository',
51
- 'deploymentId',
52
- 'githubAppInstallationId',
53
- 'credentialGeneration',
54
- ]) {
55
- if (typeof record[field] !== 'string' || record[field].trim().length === 0) {
56
- throw new Error(`Invalid Mission runtime owner record: ${field} must be non-empty.`);
57
- }
58
- }
59
- if (!Number.isSafeInteger(record.compatibilityEpoch) || record.compatibilityEpoch <= 0
60
- || !Number.isSafeInteger(record.fencingEpoch) || record.fencingEpoch <= 0) {
61
- throw new Error('Invalid Mission runtime owner record: epochs must be positive integers.');
62
- }
63
- if (typeof record.deploymentRecordHash !== 'string'
64
- || !/^sha256:[a-f0-9]{64}$/u.test(record.deploymentRecordHash)) {
65
- throw new Error('Invalid Mission runtime owner record: deploymentRecordHash must be SHA-256.');
66
- }
67
- if (typeof record.approvedByCommit !== 'string'
68
- || !/^[a-f0-9]{40}(?:[a-f0-9]{24})?$/u.test(record.approvedByCommit)) {
69
- throw new Error('Invalid Mission runtime owner record: approvedByCommit must be a Git object ID.');
70
- }
71
- }
72
- export class RuntimeOwnerConflictError extends Error {
73
- constructor(message) {
74
- super(`Mission runtime owner conflict: ${message}`);
75
- this.name = 'RuntimeOwnerConflictError';
76
- }
77
- }
78
- export class MissionRuntimeOwnership {
79
- adapter;
80
- constructor(adapter) {
81
- this.adapter = adapter;
82
- }
83
- async acquireInitial(deployment) {
84
- const observed = await this.adapter.read();
85
- if (observed) {
86
- throw new RuntimeOwnerConflictError(`already owned by ${observed.record.deploymentId}`);
87
- }
88
- return this.adapter.compareAndSwap(undefined, ownerRecord(deployment, 1));
89
- }
90
- async transfer(deployment, githubServerTime) {
91
- const observed = await this.adapter.read();
92
- if (!observed) {
93
- throw new RuntimeOwnerConflictError('cannot transfer an absent owner; use initial acquisition');
94
- }
95
- if (deployment.repository !== observed.record.repository) {
96
- throw new RuntimeOwnerConflictError('repository does not match current owner');
97
- }
98
- if (deployment.deploymentId === observed.record.deploymentId) {
99
- throw new RuntimeOwnerConflictError('transfer requires a different deployment ID');
100
- }
101
- const now = exactTimestamp(githubServerTime, 'GitHub server time');
102
- const notBefore = exactTimestamp(deployment.takeoverNotBefore, 'takeoverNotBefore');
103
- if (now < notBefore) {
104
- throw new RuntimeOwnerConflictError(`takeoverNotBefore is ${deployment.takeoverNotBefore}`);
105
- }
106
- if (exactTimestamp(deployment.priorCredentialRevokedAt, 'priorCredentialRevokedAt') > now) {
107
- throw new RuntimeOwnerConflictError('prior credential revocation is not yet observed');
108
- }
109
- if (deployment.credentialGeneration === observed.record.credentialGeneration) {
110
- throw new RuntimeOwnerConflictError('transfer requires a new credential generation');
111
- }
112
- if (deployment.compatibilityEpoch < observed.record.compatibilityEpoch) {
113
- throw new RuntimeOwnerConflictError('compatibility epoch cannot move backward');
114
- }
115
- return this.adapter.compareAndSwap(observed.sha, ownerRecord(deployment, observed.record.fencingEpoch + 1));
116
- }
117
- async assertMutationFence(deployment, expectedFencingEpoch) {
118
- if (!Number.isSafeInteger(expectedFencingEpoch) || expectedFencingEpoch <= 0) {
119
- throw new RuntimeOwnerConflictError('fencing epoch must be a positive integer');
120
- }
121
- const observed = await this.adapter.read();
122
- if (!observed) {
123
- throw new RuntimeOwnerConflictError('owner ref is absent');
124
- }
125
- const expected = ownerRecord(deployment, expectedFencingEpoch);
126
- if (observed.record.credentialGeneration !== expected.credentialGeneration) {
127
- throw new RuntimeOwnerConflictError('credential generation does not match current owner');
128
- }
129
- for (const field of [
130
- 'repository',
131
- 'deploymentId',
132
- 'githubAppInstallationId',
133
- 'compatibilityEpoch',
134
- 'deploymentRecordHash',
135
- 'approvedByCommit',
136
- ]) {
137
- if (observed.record[field] !== expected[field]) {
138
- throw new RuntimeOwnerConflictError(`${field} does not match the protected deployment record`);
139
- }
140
- }
141
- if (observed.record.fencingEpoch !== expectedFencingEpoch) {
142
- throw new RuntimeOwnerConflictError('fencing epoch does not match current owner');
143
- }
144
- return observed;
145
- }
146
- async runFencedMutation(deployment, expectedFencingEpoch, mutation) {
147
- const fence = await this.assertMutationFence(deployment, expectedFencingEpoch);
148
- return mutation(fence);
149
- }
150
- }
151
- export function ownerRecord(deployment, fencingEpoch) {
152
- if (!Number.isSafeInteger(fencingEpoch) || fencingEpoch <= 0) {
153
- throw new Error('Mission runtime owner fencingEpoch must be a positive integer.');
154
- }
155
- return {
156
- version: 1,
157
- repository: deployment.repository,
158
- deploymentId: deployment.deploymentId,
159
- githubAppInstallationId: deployment.githubAppInstallationId,
160
- credentialGeneration: deployment.credentialGeneration,
161
- compatibilityEpoch: deployment.compatibilityEpoch,
162
- deploymentRecordHash: missionDeploymentRecordHash(deployment),
163
- approvedByCommit: deployment.approvedByCommit,
164
- fencingEpoch,
165
- };
166
- }
167
- function exactTimestamp(value, field) {
168
- const parsed = Date.parse(value);
169
- if (!Number.isFinite(parsed) || new Date(parsed).toISOString() !== value) {
170
- throw new RuntimeOwnerConflictError(`${field} is not an exact UTC ISO timestamp`);
171
- }
172
- return parsed;
173
- }
174
- //# sourceMappingURL=mission-runtime-owner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mission-runtime-owner.js","sourceRoot":"","sources":["../../../src/runner/mission-runtime-owner.ts"],"names":[],"mappings":"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"}
@@ -1,96 +0,0 @@
1
- import { type MissionExecutorProbeResult } from './mission-executor-probe.js';
2
- import { type MissionProcessInput, type MissionProcessResult } from './mission-process-executor.js';
3
- import type { MissionSandboxBackend } from './mission-capability-kernel.js';
4
- export declare const missionSafeExecutorKinds: readonly ["completion-report-repair", "review-evidence-repair", "acceptance-proof-repair", "configured-check"];
5
- export type MissionSafeExecutorKind = (typeof missionSafeExecutorKinds)[number];
6
- export interface MissionSafeExecutorDescriptor {
7
- id: string;
8
- kind: MissionSafeExecutorKind;
9
- executable: string;
10
- args: string[];
11
- readPaths: string[];
12
- writePaths: string[];
13
- network: 'deny';
14
- idempotency: 'repeat-safe' | 'reconcile';
15
- }
16
- export interface MissionSafeExecutorPermit extends MissionSafeExecutorDescriptor {
17
- missionId: string;
18
- actionKey: string;
19
- executorId: string;
20
- grantedPaths: string[];
21
- inputSnapshot: string;
22
- fencingEpoch: number;
23
- expiresAt: string;
24
- descriptorFingerprint: string;
25
- }
26
- export interface MissionSafeExecutorAuthorizationRequest {
27
- missionId: string;
28
- actionKey: string;
29
- executorId: string;
30
- grantedPaths: string[];
31
- inputSnapshot: string;
32
- fencingEpoch: number;
33
- expiresAt: string;
34
- }
35
- export type MissionSafeExecutorClassification = {
36
- kind: 'safe-executor';
37
- descriptor: MissionSafeExecutorDescriptor;
38
- } | {
39
- kind: 'external-input-required';
40
- reason: 'legacy-shell-executor-unavailable-in-mission-mode';
41
- migration: 'register an exact argv Mission safe executor';
42
- };
43
- export interface MissionSafeExecutorOptions {
44
- backend: MissionSandboxBackend;
45
- workspaceRoot: string;
46
- quarantineRoot: string;
47
- deniedReadPaths: string[];
48
- sourceEnv: NodeJS.ProcessEnv;
49
- allowedEnvKeys: string[];
50
- timeoutMs: number;
51
- capabilityProof: MissionExecutorProbeResult;
52
- }
53
- export interface MissionSafeExecutorReceipt {
54
- version: 1;
55
- missionId: string;
56
- actionKey: string;
57
- executorId: string;
58
- descriptorFingerprint: string;
59
- exitCode: number;
60
- termination: MissionProcessResult['termination'];
61
- stdoutSha256: string;
62
- stderrSha256: string;
63
- outputs: Array<{
64
- path: string;
65
- size: number;
66
- sha256: string;
67
- }>;
68
- }
69
- export interface MissionSafeExecutorResult {
70
- process: MissionProcessResult;
71
- receipt: MissionSafeExecutorReceipt;
72
- }
73
- export interface MissionSafeExecutorDependencies {
74
- runProcess?: (input: MissionProcessInput) => Promise<MissionProcessResult>;
75
- now?: () => Date;
76
- }
77
- export declare class MissionSafeExecutorRegistry {
78
- private readonly descriptors;
79
- constructor(descriptors: MissionSafeExecutorDescriptor[]);
80
- authorize(request: MissionSafeExecutorAuthorizationRequest): MissionSafeExecutorPermit;
81
- classify(input: string | {
82
- executorId: string;
83
- }): MissionSafeExecutorClassification;
84
- kinds(): MissionSafeExecutorKind[];
85
- validatePermit(permit: MissionSafeExecutorPermit, now: Date): MissionSafeExecutorPermit;
86
- }
87
- export declare class MissionSafeExecutor {
88
- private readonly registry;
89
- private readonly options;
90
- private readonly runProcess;
91
- private readonly now;
92
- constructor(registry: MissionSafeExecutorRegistry, options: MissionSafeExecutorOptions, dependencies?: MissionSafeExecutorDependencies);
93
- execute(permit: MissionSafeExecutorPermit): Promise<MissionSafeExecutorResult>;
94
- }
95
- export declare function missionSafeExecutorPermitFingerprint(permit: MissionSafeExecutorPermit): string;
96
- //# sourceMappingURL=mission-safe-executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mission-safe-executor.d.ts","sourceRoot":"","sources":["../../../src/runner/mission-safe-executor.ts"],"names":[],"mappings":"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"}
@@ -1,288 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { lstat, readdir } from 'node:fs/promises';
3
- import { basename, isAbsolute, join } from 'node:path';
4
- import { globMatches, normalizePath, uniqueSortedPaths } from '../path-policy.js';
5
- import { inspectCanonicalFile } from './mission-canonical-path.js';
6
- import { missionExecutorRequiredChecks, } from './mission-executor-probe.js';
7
- import { assertMissionPathPattern, missionDefaultDeniedRepositoryPaths, missionPathPatternsOverlap, scopePatternContainedBy, } from './mission-path-language.js';
8
- import { runMissionProcess, } from './mission-process-executor.js';
9
- import { buildMissionSandboxInvocation } from './mission-sandbox.js';
10
- export const missionSafeExecutorKinds = [
11
- 'completion-report-repair',
12
- 'review-evidence-repair',
13
- 'acceptance-proof-repair',
14
- 'configured-check',
15
- ];
16
- export class MissionSafeExecutorRegistry {
17
- descriptors = new Map();
18
- constructor(descriptors) {
19
- for (const input of descriptors) {
20
- const descriptor = normalizeDescriptor(input);
21
- if (this.descriptors.has(descriptor.id)) {
22
- throw new Error(`Mission safe executor id is duplicated: ${descriptor.id}.`);
23
- }
24
- this.descriptors.set(descriptor.id, descriptor);
25
- }
26
- }
27
- authorize(request) {
28
- requireText(request.missionId, 'missionId');
29
- requireText(request.actionKey, 'actionKey');
30
- requireText(request.inputSnapshot, 'inputSnapshot');
31
- if (!Number.isSafeInteger(request.fencingEpoch) || request.fencingEpoch <= 0) {
32
- throw new Error('Mission safe executor fencingEpoch must be a positive integer.');
33
- }
34
- if (!Number.isFinite(Date.parse(request.expiresAt))) {
35
- throw new Error('Mission safe executor expiresAt must be an ISO timestamp.');
36
- }
37
- const descriptor = this.descriptors.get(request.executorId);
38
- if (!descriptor) {
39
- throw new Error(`Mission safe executor is not registered: ${request.executorId}.`);
40
- }
41
- const grantedPaths = uniqueSortedPaths(request.grantedPaths);
42
- if (grantedPaths.length === 0) {
43
- throw new Error('Mission safe executor granted scope must not be empty.');
44
- }
45
- for (const path of descriptor.readPaths) {
46
- if (!grantedPaths.some((grant) => scopePatternContainedBy(path, grant))) {
47
- throw new Error(`Mission safe executor path is outside granted scope: ${path}.`);
48
- }
49
- }
50
- return {
51
- ...structuredClone(descriptor),
52
- missionId: request.missionId,
53
- actionKey: request.actionKey,
54
- executorId: descriptor.id,
55
- grantedPaths,
56
- inputSnapshot: request.inputSnapshot,
57
- fencingEpoch: request.fencingEpoch,
58
- expiresAt: request.expiresAt,
59
- descriptorFingerprint: descriptorFingerprint(descriptor),
60
- };
61
- }
62
- classify(input) {
63
- if (typeof input === 'string') {
64
- return {
65
- kind: 'external-input-required',
66
- reason: 'legacy-shell-executor-unavailable-in-mission-mode',
67
- migration: 'register an exact argv Mission safe executor',
68
- };
69
- }
70
- const descriptor = this.descriptors.get(input.executorId);
71
- if (!descriptor) {
72
- throw new Error(`Mission safe executor is not registered: ${input.executorId}.`);
73
- }
74
- return { kind: 'safe-executor', descriptor: structuredClone(descriptor) };
75
- }
76
- kinds() {
77
- return Array.from(new Set([...this.descriptors.values()].map((descriptor) => descriptor.kind))).sort();
78
- }
79
- validatePermit(permit, now) {
80
- const receivedDescriptor = normalizeDescriptor(permit);
81
- const registered = this.descriptors.get(permit.executorId);
82
- if (!registered
83
- || descriptorFingerprint(receivedDescriptor) !== permit.descriptorFingerprint
84
- || descriptorFingerprint(registered) !== permit.descriptorFingerprint) {
85
- throw new Error('Mission safe executor permit descriptor was modified or unregistered.');
86
- }
87
- if (Date.parse(permit.expiresAt) <= now.getTime()) {
88
- throw new Error('Mission safe executor permit has expired.');
89
- }
90
- const authorized = this.authorize({
91
- missionId: permit.missionId,
92
- actionKey: permit.actionKey,
93
- executorId: permit.executorId,
94
- grantedPaths: permit.grantedPaths,
95
- inputSnapshot: permit.inputSnapshot,
96
- fencingEpoch: permit.fencingEpoch,
97
- expiresAt: permit.expiresAt,
98
- });
99
- if (missionSafeExecutorPermitFingerprint(authorized)
100
- !== missionSafeExecutorPermitFingerprint(permit)) {
101
- throw new Error('Mission safe executor permit identity was modified.');
102
- }
103
- return authorized;
104
- }
105
- }
106
- export class MissionSafeExecutor {
107
- registry;
108
- options;
109
- runProcess;
110
- now;
111
- constructor(registry, options, dependencies = {}) {
112
- this.registry = registry;
113
- this.options = options;
114
- const checks = new Set(options.capabilityProof.checks);
115
- if (!options.capabilityProof.supported
116
- || options.capabilityProof.backend !== options.backend
117
- || options.capabilityProof.failures.length > 0
118
- || missionExecutorRequiredChecks.some((check) => !checks.has(check))) {
119
- throw new Error('Mission safe executor requires a successful active capability proof.');
120
- }
121
- this.runProcess = dependencies.runProcess ?? runMissionProcess;
122
- this.now = dependencies.now ?? (() => new Date());
123
- }
124
- async execute(permit) {
125
- const authorized = this.registry.validatePermit(permit, this.now());
126
- const existingOutputs = await inspectQuarantineOutputs(this.options.quarantineRoot);
127
- if (existingOutputs.length > 0) {
128
- throw new Error('Mission safe executor requires a fresh empty quarantine.');
129
- }
130
- const invocation = buildMissionSandboxInvocation({
131
- backend: this.options.backend,
132
- workspaceRoot: this.options.workspaceRoot,
133
- quarantineRoot: this.options.quarantineRoot,
134
- mode: authorized.writePaths.length > 0 ? 'quarantine-write' : 'read-only',
135
- command: authorized.executable,
136
- args: authorized.args,
137
- deniedReadPaths: this.options.deniedReadPaths,
138
- });
139
- const process = await this.runProcess({
140
- ...invocation,
141
- cwd: this.options.workspaceRoot,
142
- timeoutMs: this.options.timeoutMs,
143
- sourceEnv: this.options.sourceEnv,
144
- allowedEnvKeys: this.options.allowedEnvKeys,
145
- });
146
- const outputs = await inspectQuarantineOutputs(this.options.quarantineRoot);
147
- const undeclared = outputs.filter((output) => !authorized.writePaths.some((pattern) => globMatches(pattern, output.path)));
148
- if (undeclared.length > 0) {
149
- throw new Error(`Mission safe executor produced undeclared quarantine output: ${undeclared[0].path}.`);
150
- }
151
- return {
152
- process,
153
- receipt: {
154
- version: 1,
155
- missionId: authorized.missionId,
156
- actionKey: authorized.actionKey,
157
- executorId: authorized.executorId,
158
- descriptorFingerprint: authorized.descriptorFingerprint,
159
- exitCode: process.exitCode,
160
- termination: process.termination,
161
- stdoutSha256: hash(process.stdout),
162
- stderrSha256: hash(process.stderr),
163
- outputs,
164
- },
165
- };
166
- }
167
- }
168
- export function missionSafeExecutorPermitFingerprint(permit) {
169
- return hash(JSON.stringify([
170
- 'mission-safe-executor-permit-v1',
171
- permit.missionId,
172
- permit.actionKey,
173
- permit.executorId,
174
- permit.descriptorFingerprint,
175
- permit.grantedPaths,
176
- permit.inputSnapshot,
177
- permit.fencingEpoch,
178
- permit.expiresAt,
179
- ]));
180
- }
181
- function normalizeDescriptor(input) {
182
- const id = requireText(input.id, 'id');
183
- if (!missionSafeExecutorKinds.includes(input.kind)) {
184
- throw new Error(`Mission safe executor kind is invalid: ${String(input.kind)}.`);
185
- }
186
- if (!isAbsolute(input.executable)) {
187
- throw new Error('Mission safe executor executable must be absolute.');
188
- }
189
- if (['sh', 'bash', 'zsh', 'fish', 'dash', 'env'].includes(basename(input.executable))) {
190
- throw new Error('Mission safe executor forbids shell executables.');
191
- }
192
- if (input.args.some((arg) => arg.includes('\0') || /\$\(|`|\|\||&&|[<>;]/u.test(arg))) {
193
- throw new Error('Mission safe executor arguments contain shell-control syntax.');
194
- }
195
- if (input.network !== 'deny') {
196
- throw new Error('Mission safe executor network must be denied.');
197
- }
198
- if (input.idempotency !== 'repeat-safe' && input.idempotency !== 'reconcile') {
199
- throw new Error('Mission safe executor idempotency is invalid.');
200
- }
201
- const readPaths = uniqueSortedPaths(input.readPaths);
202
- const writePaths = uniqueSortedPaths(input.writePaths);
203
- if (readPaths.length === 0) {
204
- throw new Error('Mission safe executor requires finite read scope.');
205
- }
206
- for (const path of [...readPaths, ...writePaths]) {
207
- assertMissionPathPattern(path, 'Mission safe executor path');
208
- if (missionDefaultDeniedRepositoryPaths.some((denied) => missionPathPatternsOverlap(path, denied))) {
209
- throw new Error(`Mission safe executor path overlaps a denied repository path: ${path}.`);
210
- }
211
- }
212
- return {
213
- id,
214
- kind: input.kind,
215
- executable: input.executable,
216
- args: [...input.args],
217
- readPaths,
218
- writePaths,
219
- network: 'deny',
220
- idempotency: input.idempotency,
221
- };
222
- }
223
- function descriptorFingerprint(descriptor) {
224
- return hash(JSON.stringify([
225
- 'mission-safe-executor-descriptor-v1',
226
- descriptor.id,
227
- descriptor.kind,
228
- descriptor.executable,
229
- descriptor.args,
230
- descriptor.readPaths,
231
- descriptor.writePaths,
232
- descriptor.network,
233
- descriptor.idempotency,
234
- ]));
235
- }
236
- function hash(value) {
237
- return `sha256:${createHash('sha256').update(value).digest('hex')}`;
238
- }
239
- async function inspectQuarantineOutputs(root) {
240
- const paths = [];
241
- await walk('');
242
- const outputs = [];
243
- for (const path of paths.sort()) {
244
- const inspected = await inspectCanonicalFile({
245
- root,
246
- path,
247
- deniedPaths: [],
248
- missing: 'reject',
249
- });
250
- if (!inspected)
251
- throw new Error(`Mission safe executor quarantine output disappeared: ${path}.`);
252
- outputs.push({
253
- path,
254
- size: inspected.identity.size,
255
- sha256: `sha256:${inspected.identity.sha256}`,
256
- });
257
- }
258
- return outputs;
259
- async function walk(relativeDirectory) {
260
- const directory = relativeDirectory ? join(root, relativeDirectory) : root;
261
- const entries = await readdir(directory);
262
- for (const entry of entries) {
263
- const relativePath = normalizePath(relativeDirectory
264
- ? `${relativeDirectory}/${entry}` : entry);
265
- const info = await lstat(join(root, relativePath));
266
- if (info.isSymbolicLink()) {
267
- throw new Error(`Mission safe executor refuses symbolic quarantine output: ${relativePath}.`);
268
- }
269
- if (info.isDirectory()) {
270
- await walk(relativePath);
271
- }
272
- else if (info.isFile()) {
273
- paths.push(relativePath);
274
- }
275
- else {
276
- throw new Error(`Mission safe executor refuses non-regular quarantine output: ${relativePath}.`);
277
- }
278
- }
279
- }
280
- }
281
- function requireText(value, field) {
282
- const normalized = value.trim();
283
- if (normalized.length === 0) {
284
- throw new Error(`Mission safe executor ${field} must be non-empty.`);
285
- }
286
- return normalized;
287
- }
288
- //# sourceMappingURL=mission-safe-executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mission-safe-executor.js","sourceRoot":"","sources":["../../../src/runner/mission-safe-executor.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { MissionSandboxBackend } from './mission-capability-kernel.js';
2
- export interface MissionSandboxInput {
3
- backend: MissionSandboxBackend;
4
- workspaceRoot: string;
5
- quarantineRoot: string;
6
- mode: 'read-only' | 'quarantine-write';
7
- command: string;
8
- args: string[];
9
- deniedReadPaths?: string[];
10
- }
11
- export interface MissionSandboxInvocation {
12
- file: string;
13
- args: string[];
14
- }
15
- export declare function buildMissionSandboxInvocation(input: MissionSandboxInput): MissionSandboxInvocation;
16
- //# sourceMappingURL=mission-sandbox.d.ts.map