@msn-control/liftoff 0.11.3 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/DEVELOPER.md +26 -35
  2. package/README.md +18 -18
  3. package/assets/governance/single-maintainer-gitflow/activation-v2-graph.json +1583 -0
  4. package/dist/adapters/credentials/github-enrollment.d.ts +51 -0
  5. package/dist/adapters/credentials/github-enrollment.js +226 -0
  6. package/dist/adapters/credentials/github-enrollment.js.map +1 -0
  7. package/dist/adapters/credentials/protected-input.d.ts +7 -0
  8. package/dist/adapters/credentials/protected-input.js +68 -0
  9. package/dist/adapters/credentials/protected-input.js.map +1 -0
  10. package/dist/adapters/filesystem/executables.d.ts +2 -0
  11. package/dist/adapters/filesystem/executables.js +70 -0
  12. package/dist/adapters/filesystem/executables.js.map +1 -0
  13. package/dist/adapters/filesystem/update-previews.d.ts +9 -0
  14. package/dist/adapters/filesystem/update-previews.js +44 -0
  15. package/dist/adapters/filesystem/update-previews.js.map +1 -1
  16. package/dist/adapters/filesystem/workstation-attempts.d.ts +13 -0
  17. package/dist/adapters/filesystem/workstation-attempts.js +78 -0
  18. package/dist/adapters/filesystem/workstation-attempts.js.map +1 -0
  19. package/dist/adapters/github/activation-rest.d.ts +40 -0
  20. package/dist/adapters/github/activation-rest.js +272 -0
  21. package/dist/adapters/github/activation-rest.js.map +1 -0
  22. package/dist/adapters/state/azure-blob.d.ts +43 -0
  23. package/dist/adapters/state/azure-blob.js +335 -0
  24. package/dist/adapters/state/azure-blob.js.map +1 -0
  25. package/dist/adapters/state/darwin-capabilities.d.ts +33 -0
  26. package/dist/adapters/state/darwin-capabilities.js +146 -0
  27. package/dist/adapters/state/darwin-capabilities.js.map +1 -0
  28. package/dist/adapters/state/darwin-native-host.d.ts +32 -0
  29. package/dist/adapters/state/darwin-native-host.js +294 -0
  30. package/dist/adapters/state/darwin-native-host.js.map +1 -0
  31. package/dist/adapters/state/darwin-profile.d.ts +6 -0
  32. package/dist/adapters/state/darwin-profile.js +56 -0
  33. package/dist/adapters/state/darwin-profile.js.map +1 -0
  34. package/dist/adapters/state/darwin-system-program.d.ts +1 -0
  35. package/dist/adapters/state/darwin-system-program.js +94 -0
  36. package/dist/adapters/state/darwin-system-program.js.map +1 -0
  37. package/dist/adapters/state/local-qualification.d.ts +16 -0
  38. package/dist/adapters/state/local-qualification.js +299 -0
  39. package/dist/adapters/state/local-qualification.js.map +1 -0
  40. package/dist/adapters/state/local.d.ts +25 -0
  41. package/dist/adapters/state/local.js +145 -0
  42. package/dist/adapters/state/local.js.map +1 -0
  43. package/dist/adapters/state/native-command.d.ts +21 -0
  44. package/dist/adapters/state/native-command.js +82 -0
  45. package/dist/adapters/state/native-command.js.map +1 -0
  46. package/dist/adapters/state/native-files.d.ts +2 -0
  47. package/dist/adapters/state/native-files.js +47 -0
  48. package/dist/adapters/state/native-files.js.map +1 -0
  49. package/dist/adapters/state/native-system.d.ts +38 -0
  50. package/dist/adapters/state/native-system.js +86 -0
  51. package/dist/adapters/state/native-system.js.map +1 -0
  52. package/dist/adapters/state/opentofu.d.ts +35 -0
  53. package/dist/adapters/state/opentofu.js +350 -0
  54. package/dist/adapters/state/opentofu.js.map +1 -0
  55. package/dist/adapters/state/owned-process.d.ts +43 -0
  56. package/dist/adapters/state/owned-process.js +252 -0
  57. package/dist/adapters/state/owned-process.js.map +1 -0
  58. package/dist/adapters/state/posix-lock-program.d.ts +1 -0
  59. package/dist/adapters/state/posix-lock-program.js +185 -0
  60. package/dist/adapters/state/posix-lock-program.js.map +1 -0
  61. package/dist/adapters/state/posix-native-lock.d.ts +15 -0
  62. package/dist/adapters/state/posix-native-lock.js +145 -0
  63. package/dist/adapters/state/posix-native-lock.js.map +1 -0
  64. package/dist/adapters/state/protected-workspace.d.ts +57 -0
  65. package/dist/adapters/state/protected-workspace.js +412 -0
  66. package/dist/adapters/state/protected-workspace.js.map +1 -0
  67. package/dist/application/context.d.ts +3 -0
  68. package/dist/application/diagnose/doctor.d.ts +5 -0
  69. package/dist/application/diagnose/doctor.js +21 -5
  70. package/dist/application/diagnose/doctor.js.map +1 -1
  71. package/dist/application/diagnose/generated-project.js +2 -7
  72. package/dist/application/diagnose/generated-project.js.map +1 -1
  73. package/dist/application/initialize/fixture.js +8 -1
  74. package/dist/application/initialize/fixture.js.map +1 -1
  75. package/dist/application/initialize/use-case.js +70 -36
  76. package/dist/application/initialize/use-case.js.map +1 -1
  77. package/dist/application/project/manifest.js +5 -4
  78. package/dist/application/project/manifest.js.map +1 -1
  79. package/dist/application/state-migration/execution.d.ts +32 -0
  80. package/dist/application/state-migration/execution.js +440 -0
  81. package/dist/application/state-migration/execution.js.map +1 -0
  82. package/dist/application/state-migration/index.d.ts +22 -0
  83. package/dist/application/state-migration/index.js +17 -0
  84. package/dist/application/state-migration/index.js.map +1 -0
  85. package/dist/application/state-migration/lifecycle.d.ts +3 -0
  86. package/dist/application/state-migration/lifecycle.js +149 -0
  87. package/dist/application/state-migration/lifecycle.js.map +1 -0
  88. package/dist/application/state-migration/planning.d.ts +7 -0
  89. package/dist/application/state-migration/planning.js +150 -0
  90. package/dist/application/state-migration/planning.js.map +1 -0
  91. package/dist/application/state-migration/recovery.d.ts +5 -0
  92. package/dist/application/state-migration/recovery.js +145 -0
  93. package/dist/application/state-migration/recovery.js.map +1 -0
  94. package/dist/application/state-migration/runtime.d.ts +32 -0
  95. package/dist/application/state-migration/runtime.js +188 -0
  96. package/dist/application/state-migration/runtime.js.map +1 -0
  97. package/dist/application/state-migration/service.d.ts +2 -0
  98. package/dist/application/state-migration/service.js +20 -0
  99. package/dist/application/state-migration/service.js.map +1 -0
  100. package/dist/application/update/inspection.d.ts +16 -2
  101. package/dist/application/update/inspection.js +76 -23
  102. package/dist/application/update/inspection.js.map +1 -1
  103. package/dist/application/update/migration-runtime.js +24 -11
  104. package/dist/application/update/migration-runtime.js.map +1 -1
  105. package/dist/application/update/output.d.ts +2 -0
  106. package/dist/application/update/output.js +11 -1
  107. package/dist/application/update/output.js.map +1 -1
  108. package/dist/application/update/revalidation-plan.d.ts +1 -0
  109. package/dist/application/update/revalidation-plan.js +25 -12
  110. package/dist/application/update/revalidation-plan.js.map +1 -1
  111. package/dist/application/update/revalidation.d.ts +4 -1
  112. package/dist/application/update/revalidation.js +62 -21
  113. package/dist/application/update/revalidation.js.map +1 -1
  114. package/dist/application/update/use-case.js +25 -17
  115. package/dist/application/update/use-case.js.map +1 -1
  116. package/dist/application/upgrade/use-case.js +3 -0
  117. package/dist/application/upgrade/use-case.js.map +1 -1
  118. package/dist/cli/args/definitions.js +11 -3
  119. package/dist/cli/args/definitions.js.map +1 -1
  120. package/dist/cli/args/parser.js +29 -3
  121. package/dist/cli/args/parser.js.map +1 -1
  122. package/dist/domain/governance/activation/approvals.d.ts +264 -7
  123. package/dist/domain/governance/activation/approvals.js +166 -23
  124. package/dist/domain/governance/activation/approvals.js.map +1 -1
  125. package/dist/domain/governance/activation/capabilities.js +5 -2
  126. package/dist/domain/governance/activation/capabilities.js.map +1 -1
  127. package/dist/domain/governance/activation/evidence.d.ts +2 -1
  128. package/dist/domain/governance/activation/evidence.js +64 -11
  129. package/dist/domain/governance/activation/evidence.js.map +1 -1
  130. package/dist/domain/governance/activation/graph.d.ts +11 -384
  131. package/dist/domain/governance/activation/graph.js +424 -379
  132. package/dist/domain/governance/activation/graph.js.map +1 -1
  133. package/dist/domain/governance/activation/inputs.d.ts +3 -1
  134. package/dist/domain/governance/activation/inputs.js +47 -6
  135. package/dist/domain/governance/activation/inputs.js.map +1 -1
  136. package/dist/domain/governance/activation/operations.d.ts +4 -1
  137. package/dist/domain/governance/activation/operations.js +110 -22
  138. package/dist/domain/governance/activation/operations.js.map +1 -1
  139. package/dist/domain/governance/activation/readiness.d.ts +10 -0
  140. package/dist/domain/governance/activation/readiness.js +77 -38
  141. package/dist/domain/governance/activation/readiness.js.map +1 -1
  142. package/dist/domain/governance/activation/types.d.ts +151 -9
  143. package/dist/domain/governance/activation/types.js +23 -1
  144. package/dist/domain/governance/activation/types.js.map +1 -1
  145. package/dist/domain/governance/activation/validators.d.ts +4 -1
  146. package/dist/domain/governance/activation/validators.js +419 -26
  147. package/dist/domain/governance/activation/validators.js.map +1 -1
  148. package/dist/domain/governance/policy/identity.d.ts +55 -13
  149. package/dist/domain/governance/policy/identity.js +28 -8
  150. package/dist/domain/governance/policy/identity.js.map +1 -1
  151. package/dist/domain/project/artifact-lifecycle.d.ts +2 -1
  152. package/dist/domain/project/artifact-lifecycle.js +7 -1
  153. package/dist/domain/project/artifact-lifecycle.js.map +1 -1
  154. package/dist/domain/project/catalog.d.ts +50 -1
  155. package/dist/domain/project/catalog.js +104 -4
  156. package/dist/domain/project/catalog.js.map +1 -1
  157. package/dist/domain/project/contracts.d.ts +9 -1
  158. package/dist/domain/project/infrastructure-layout.d.ts +1 -1
  159. package/dist/domain/project/infrastructure-layout.js +3 -1
  160. package/dist/domain/project/infrastructure-layout.js.map +1 -1
  161. package/dist/domain/project/manifest/governance.d.ts +1 -1
  162. package/dist/domain/project/manifest/governance.js +9 -10
  163. package/dist/domain/project/manifest/governance.js.map +1 -1
  164. package/dist/domain/project/planning.js +4 -5
  165. package/dist/domain/project/planning.js.map +1 -1
  166. package/dist/domain/repair/stateful-bounded.d.ts +1 -0
  167. package/dist/domain/repair/stateful-bounded.js +37 -0
  168. package/dist/domain/repair/stateful-bounded.js.map +1 -0
  169. package/dist/domain/repair/stateful-invariants.d.ts +28 -0
  170. package/dist/domain/repair/stateful-invariants.js +278 -0
  171. package/dist/domain/repair/stateful-invariants.js.map +1 -0
  172. package/dist/domain/repair/stateful.d.ts +690 -0
  173. package/dist/domain/repair/stateful.js +26 -0
  174. package/dist/domain/repair/stateful.js.map +1 -0
  175. package/dist/domain/workstation/constraints.d.ts +1 -0
  176. package/dist/domain/workstation/constraints.js.map +1 -1
  177. package/dist/domain/workstation/contracts.d.ts +42 -0
  178. package/dist/domain/workstation/contracts.js +2 -0
  179. package/dist/domain/workstation/contracts.js.map +1 -0
  180. package/dist/domain/workstation/executables.d.ts +19 -0
  181. package/dist/domain/workstation/executables.js +68 -0
  182. package/dist/domain/workstation/executables.js.map +1 -0
  183. package/dist/domain/workstation/versions.d.ts +8 -0
  184. package/dist/domain/workstation/versions.js +145 -0
  185. package/dist/domain/workstation/versions.js.map +1 -0
  186. package/dist/framework-adapters.d.ts +2 -0
  187. package/dist/framework-adapters.js +148 -22
  188. package/dist/framework-adapters.js.map +1 -1
  189. package/dist/framework-validation.d.ts +6 -0
  190. package/dist/framework-validation.js +89 -24
  191. package/dist/framework-validation.js.map +1 -1
  192. package/dist/generators/common/base.js +57 -17
  193. package/dist/generators/common/base.js.map +1 -1
  194. package/dist/governance-activation/activation-state.js +39 -7
  195. package/dist/governance-activation/activation-state.js.map +1 -1
  196. package/dist/governance-activation/authority-records.d.ts +4 -0
  197. package/dist/governance-activation/authority-records.js +24 -0
  198. package/dist/governance-activation/authority-records.js.map +1 -0
  199. package/dist/governance-activation/commands.d.ts +9 -1
  200. package/dist/governance-activation/commands.js +392 -97
  201. package/dist/governance-activation/commands.js.map +1 -1
  202. package/dist/governance-activation/compatibility.d.ts +11 -8
  203. package/dist/governance-activation/compatibility.js +37 -23
  204. package/dist/governance-activation/compatibility.js.map +1 -1
  205. package/dist/governance-activation/doctor.js +40 -16
  206. package/dist/governance-activation/doctor.js.map +1 -1
  207. package/dist/governance-activation/github-config.d.ts +17 -0
  208. package/dist/governance-activation/github-config.js +88 -0
  209. package/dist/governance-activation/github-config.js.map +1 -0
  210. package/dist/governance-activation/github-discovery.d.ts +18 -0
  211. package/dist/governance-activation/github-discovery.js +229 -0
  212. package/dist/governance-activation/github-discovery.js.map +1 -0
  213. package/dist/governance-activation/github-ports.d.ts +12 -0
  214. package/dist/governance-activation/github-ports.js +4 -0
  215. package/dist/governance-activation/github-ports.js.map +1 -0
  216. package/dist/governance-activation/github-publication.d.ts +3 -0
  217. package/dist/governance-activation/github-publication.js +190 -0
  218. package/dist/governance-activation/github-publication.js.map +1 -0
  219. package/dist/governance-activation/historical-common.d.ts +98 -0
  220. package/dist/governance-activation/historical-common.js +269 -0
  221. package/dist/governance-activation/historical-common.js.map +1 -0
  222. package/dist/governance-activation/historical-credential-policy.d.ts +3 -0
  223. package/dist/governance-activation/historical-credential-policy.js +91 -0
  224. package/dist/governance-activation/historical-credential-policy.js.map +1 -0
  225. package/dist/governance-activation/historical-inputs.d.ts +6 -0
  226. package/dist/governance-activation/historical-inputs.js +57 -0
  227. package/dist/governance-activation/historical-inputs.js.map +1 -0
  228. package/dist/governance-activation/historical-safety.d.ts +9 -0
  229. package/dist/governance-activation/historical-safety.js +102 -0
  230. package/dist/governance-activation/historical-safety.js.map +1 -0
  231. package/dist/governance-activation/historical-source-metadata.d.ts +31 -0
  232. package/dist/governance-activation/historical-source-metadata.js +55 -0
  233. package/dist/governance-activation/historical-source-metadata.js.map +1 -0
  234. package/dist/governance-activation/historical-state.d.ts +12 -50
  235. package/dist/governance-activation/historical-state.js +195 -308
  236. package/dist/governance-activation/historical-state.js.map +1 -1
  237. package/dist/governance-activation/historical-v1-auxiliary.d.ts +1 -0
  238. package/dist/governance-activation/historical-v1-auxiliary.js +43 -0
  239. package/dist/governance-activation/historical-v1-auxiliary.js.map +1 -0
  240. package/dist/governance-activation/historical-v1-phase-contracts.d.ts +31 -0
  241. package/dist/governance-activation/historical-v1-phase-contracts.js +46 -0
  242. package/dist/governance-activation/historical-v1-phase-contracts.js.map +1 -0
  243. package/dist/governance-activation/historical-v2.d.ts +53 -0
  244. package/dist/governance-activation/historical-v2.js +313 -0
  245. package/dist/governance-activation/historical-v2.js.map +1 -0
  246. package/dist/governance-activation/history-contracts.d.ts +21 -12
  247. package/dist/governance-activation/history-contracts.js +99 -27
  248. package/dist/governance-activation/history-contracts.js.map +1 -1
  249. package/dist/governance-activation/inputs.d.ts +8 -2
  250. package/dist/governance-activation/inputs.js +41 -6
  251. package/dist/governance-activation/inputs.js.map +1 -1
  252. package/dist/governance-activation/migration-history.d.ts +43 -5
  253. package/dist/governance-activation/migration-history.js +231 -50
  254. package/dist/governance-activation/migration-history.js.map +1 -1
  255. package/dist/governance-activation/migration.d.ts +7 -4
  256. package/dist/governance-activation/migration.js +53 -252
  257. package/dist/governance-activation/migration.js.map +1 -1
  258. package/dist/governance-activation/phase-azure.d.ts +3 -0
  259. package/dist/governance-activation/phase-azure.js +205 -0
  260. package/dist/governance-activation/phase-azure.js.map +1 -0
  261. package/dist/governance-activation/phase-bootstrap-state.js +3 -0
  262. package/dist/governance-activation/phase-bootstrap-state.js.map +1 -1
  263. package/dist/governance-activation/phase-github.d.ts +3 -0
  264. package/dist/governance-activation/phase-github.js +192 -0
  265. package/dist/governance-activation/phase-github.js.map +1 -0
  266. package/dist/governance-activation/phase-governance.js +8 -2
  267. package/dist/governance-activation/phase-governance.js.map +1 -1
  268. package/dist/governance-activation/public-plans.d.ts +36 -0
  269. package/dist/governance-activation/public-plans.js +100 -0
  270. package/dist/governance-activation/public-plans.js.map +1 -0
  271. package/dist/governance-activation/read-only.d.ts +3 -1
  272. package/dist/governance-activation/read-only.js +7 -3
  273. package/dist/governance-activation/read-only.js.map +1 -1
  274. package/dist/governance-activation/reconciliation.js +10 -0
  275. package/dist/governance-activation/reconciliation.js.map +1 -1
  276. package/dist/governance-activation/seed-lifecycle.js +14 -25
  277. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  278. package/dist/governance-activation/source-of-truth.d.ts +21 -5
  279. package/dist/governance-activation/source-of-truth.js +102 -13
  280. package/dist/governance-activation/source-of-truth.js.map +1 -1
  281. package/dist/governance-activation/task-projection.d.ts +4 -1
  282. package/dist/governance-activation/task-projection.js +32 -3
  283. package/dist/governance-activation/task-projection.js.map +1 -1
  284. package/dist/governance-activation/task-writes.d.ts +42 -0
  285. package/dist/governance-activation/task-writes.js +250 -0
  286. package/dist/governance-activation/task-writes.js.map +1 -0
  287. package/dist/governance-activation/transition-files.d.ts +12 -0
  288. package/dist/governance-activation/transition-files.js +109 -0
  289. package/dist/governance-activation/transition-files.js.map +1 -0
  290. package/dist/governance-activation/transition-planning.d.ts +3 -1
  291. package/dist/governance-activation/transition-planning.js +158 -20
  292. package/dist/governance-activation/transition-planning.js.map +1 -1
  293. package/dist/governance-activation/transition-ports.d.ts +31 -3
  294. package/dist/governance-activation/transition-records.d.ts +11 -1
  295. package/dist/governance-activation/transition-records.js +52 -6
  296. package/dist/governance-activation/transition-records.js.map +1 -1
  297. package/dist/governance-activation/transitions.d.ts +5 -0
  298. package/dist/governance-activation/transitions.js +271 -37
  299. package/dist/governance-activation/transitions.js.map +1 -1
  300. package/dist/governance-assessment/engine.js +22 -15
  301. package/dist/governance-assessment/engine.js.map +1 -1
  302. package/dist/governance-assessment/project.d.ts +2 -0
  303. package/dist/governance-assessment/project.js +2 -1
  304. package/dist/governance-assessment/project.js.map +1 -1
  305. package/dist/interactive.d.ts +0 -1
  306. package/dist/interactive.js +3 -22
  307. package/dist/interactive.js.map +1 -1
  308. package/dist/openspec-profile.d.ts +2 -1
  309. package/dist/openspec-profile.js +11 -41
  310. package/dist/openspec-profile.js.map +1 -1
  311. package/dist/repository-governance.d.ts +10 -5
  312. package/dist/repository-governance.js +178 -92
  313. package/dist/repository-governance.js.map +1 -1
  314. package/dist/self-upgrade.d.ts +8 -2
  315. package/dist/self-upgrade.js +180 -47
  316. package/dist/self-upgrade.js.map +1 -1
  317. package/dist/telemetry/contract.d.ts +1 -1
  318. package/dist/telemetry/contract.js +3 -0
  319. package/dist/telemetry/contract.js.map +1 -1
  320. package/dist/workstation-catalog.d.ts +13 -1
  321. package/dist/workstation-catalog.js +122 -0
  322. package/dist/workstation-catalog.js.map +1 -1
  323. package/dist/workstation.d.ts +69 -14
  324. package/dist/workstation.js +600 -215
  325. package/dist/workstation.js.map +1 -1
  326. package/docs/cli-reference.md +69 -22
  327. package/docs/configuration-and-manifests.md +9 -8
  328. package/docs/prerequisites.md +93 -18
  329. package/docs/repository-governance.md +68 -40
  330. package/docs/spec-workflows-and-agents.md +132 -13
  331. package/docs/troubleshooting.md +32 -2
  332. package/package.json +1 -1
@@ -3,7 +3,8 @@ import { executeGitOperations } from './phase-publication.js';
3
3
  import { discoverPhase0 } from './phase-discovery.js';
4
4
  import { executeActivationApproval, executeCredentialReady, executeRulesetPhase } from './phase-governance.js';
5
5
  import { remoteImportRetention, executeBootstrapStateDisposal } from './phase-bootstrap-state.js';
6
- import { phaseOrder, rollbackPlanFromCompletedOperations, phaseById, assertPlanOperationsAllowed, assertOperationAllowed, rollbackPlanForPhase } from '../domain/governance/activation/operations.js';
6
+ import { phaseScope } from '../domain/governance/activation/types.js';
7
+ import { phaseOrder, rollbackPlanFromCompletedOperations, phaseById, phaseUsesProvider, assertPlanOperationsAllowed, assertOperationAllowed, rollbackPlanForPhase, governanceTaskProjectionAction } from '../domain/governance/activation/operations.js';
7
8
  import { NodeCommandRunner } from '../process-runner.js';
8
9
  import { validateManifestActivationForExecution } from '../domain/governance/activation/validators.js';
9
10
  import { withProjectMutationLock } from '../adapters/filesystem/project-lock.js';
@@ -13,6 +14,12 @@ import { buildSavedTransitionPlan, previewApplyNext, comparePlanFreshness } from
13
14
  import { readActivationInputSnapshot, phaseInputDigest, remoteBindingDigest } from './inputs.js';
14
15
  import { activationStateContentHash } from './activation-state.js';
15
16
  import { evidenceHeaderDigest, validateEvidenceFreshness } from '../domain/governance/activation/evidence.js';
17
+ import { executeAzurePhase } from './phase-azure.js';
18
+ import { executeGitHubPhase } from './phase-github.js';
19
+ import { assertOutcomeFileChanges, assertInputFileChanges, assertPlannedFilesAfter, snapshotWithPlannedWrites, verifiedGitInputBinding } from './transition-files.js';
20
+ import { assertGovernanceApprovalIssued } from './authority-records.js';
21
+ import { approvalRequestForSavedPlan, authorityOperations, evaluateApprovalForTransitionPlan } from '../domain/governance/activation/approvals.js';
22
+ import { blockedGovernanceTaskProjection, captureGovernanceTaskSource, prepareGovernanceTaskProjection } from './task-writes.js';
16
23
  export { governancePlanDirectoryPathParts, transitionPlanPathParts } from './transition-records.js';
17
24
  export { buildSavedTransitionPlan, previewApplyNext } from './transition-planning.js';
18
25
  export { rollbackPlanFromCompletedOperations, planDigestFor } from '../domain/governance/activation/operations.js';
@@ -24,6 +31,7 @@ const builtInExecutors = {
24
31
  pushed: executeGitOperations,
25
32
  'phase-0-complete': discoverPhase0,
26
33
  'activation-approved': executeActivationApproval,
34
+ 'enforcement-approved': () => ({ status: 'completed', resultState: 'approved', completedOperations: [] }),
27
35
  'credential-ready': executeCredentialReady,
28
36
  'remote-ready': remoteImportRetention,
29
37
  'bootstrap-state-disposed': executeBootstrapStateDisposal,
@@ -40,12 +48,91 @@ async function executeBuiltInPhase(input, localRevalidation = false) {
40
48
  const custom = input.adapters.phases?.[input.phase.id];
41
49
  if (custom)
42
50
  return await custom.execute(input);
51
+ if (phaseScope(input.phase.id) === 'local') {
52
+ const outcome = await executeSeedOperations(input);
53
+ if (!outcome)
54
+ throw new Error(`The local scope has no executor for ${input.phase.id}.`);
55
+ return outcome;
56
+ }
57
+ const githubFirst = ['private-backend-proof', 'application-artifact-ready', 'staging-qualified', 'production-rehearsed'].includes(input.phase.id);
58
+ const azurePhase = () => phaseUsesProvider(input.phase, 'azure') ? executeAzurePhase(input) : null;
59
+ const githubPhase = () => phaseUsesProvider(input.phase, 'github') ? executeGitHubPhase(input) : null;
60
+ const first = await (githubFirst ? githubPhase() : azurePhase());
61
+ if (first && first.status !== 'completed')
62
+ return first;
63
+ const second = await (githubFirst ? azurePhase() : githubPhase());
64
+ const azure = githubFirst ? second : first;
65
+ const github = githubFirst ? first : second;
66
+ if (azure || github)
67
+ return combineProviderOutcomes(azure, github);
43
68
  return await builtInExecutors[input.phase.id]?.(input) ?? {
44
69
  status: 'blocked',
45
70
  blocker: `No production adapter is configured for ${input.phase.id}; refusing success-shaped fallback.`,
46
71
  completedOperations: []
47
72
  };
48
73
  }
74
+ function combinePublicValues(left, right, path = 'provider outcome') {
75
+ if (left === undefined)
76
+ return right;
77
+ if (right === undefined || canonicalSha256(left) === canonicalSha256(right))
78
+ return left;
79
+ if (isRecord(left) && isRecord(right)) {
80
+ return Object.fromEntries([...new Set([...Object.keys(left), ...Object.keys(right)])]
81
+ .map((key) => [key, combinePublicValues(left[key], right[key], `${path}.${key}`)]));
82
+ }
83
+ if (Array.isArray(left) && Array.isArray(right)) {
84
+ const combined = new Map();
85
+ for (const entry of [...left, ...right]) {
86
+ const identity = isRecord(entry) && (typeof entry.id === 'string' || typeof entry.id === 'number')
87
+ ? `id:${entry.id}` : canonicalSha256(entry);
88
+ combined.set(identity, combined.has(identity)
89
+ ? combinePublicValues(combined.get(identity), entry, `${path}[${identity}]`)
90
+ : entry);
91
+ }
92
+ return [...combined.values()];
93
+ }
94
+ throw new Error(`Independent producers reported contradictory ${path}; no successful proof can be recorded.`);
95
+ }
96
+ function combineProviderOutcomes(azure, github) {
97
+ if (!azure)
98
+ return github;
99
+ if (!github)
100
+ return azure;
101
+ if (azure.stateOverride && github.stateOverride &&
102
+ canonicalSha256(azure.stateOverride) !== canonicalSha256(github.stateOverride)) {
103
+ throw new Error('Independent phase producers proposed conflicting activation state changes.');
104
+ }
105
+ if (azure.operation && github.operation)
106
+ throw new Error('A phase cannot resume two independent external operations from one checkpoint.');
107
+ if (azure.resultState && github.resultState && azure.resultState !== github.resultState) {
108
+ throw new Error('Independent phase producers reported contradictory terminal results.');
109
+ }
110
+ const values = { ...azure.outputs?.values };
111
+ for (const [key, value] of Object.entries(github.outputs?.values ?? {})) {
112
+ if (Object.hasOwn(values, key) && values[key] !== value) {
113
+ throw new Error(`Independent phase producers reported contradictory output binding ${key}.`);
114
+ }
115
+ values[key] = value;
116
+ }
117
+ return {
118
+ status: azure.status === 'blocked' || github.status === 'blocked' ? 'blocked' :
119
+ azure.status === 'pending' || github.status === 'pending' ? 'pending' : 'completed',
120
+ resultState: github.resultState ?? azure.resultState,
121
+ blocker: github.blocker ?? azure.blocker,
122
+ evidencePayload: combinePublicValues(azure.evidencePayload, github.evidencePayload),
123
+ liveReadback: [...azure.liveReadback ?? [], ...github.liveReadback ?? []],
124
+ stateOverride: github.stateOverride ?? azure.stateOverride,
125
+ operation: github.operation ?? azure.operation,
126
+ outputs: azure.outputs && github.outputs ? {
127
+ values,
128
+ resources: [...azure.outputs.resources, ...github.outputs.resources]
129
+ } : github.outputs ?? azure.outputs,
130
+ completedOperations: [...azure.completedOperations ?? [], ...github.completedOperations ?? []],
131
+ fileMutations: [...azure.fileMutations ?? [], ...github.fileMutations ?? []],
132
+ filePreconditions: [...azure.filePreconditions ?? [], ...github.filePreconditions ?? []],
133
+ cleanupWarnings: [...azure.cleanupWarnings ?? [], ...github.cleanupWarnings ?? []]
134
+ };
135
+ }
49
136
  function sourceOfTruthAllowsPhase(inspection, phaseId) {
50
137
  if (phaseOrder(phaseId) <= phaseOrder('phase-0-complete'))
51
138
  return null;
@@ -64,7 +151,7 @@ export async function executeApplyNext(input) {
64
151
  validateManifestActivationForExecution(input.inspection.manifest);
65
152
  if (input.localRevalidation && (!input.inspection.loadedState || input.inspection.state.repository.id === 'unbound' ||
66
153
  !input.assertReviewedPlan || !input.assertProtectedInputs)) {
67
- throw new Error('Local revalidation requires a committed anchored v2 state and exact reviewed-plan/protected-input guards.');
154
+ throw new Error('Local revalidation requires a committed anchored v3 state and exact reviewed-plan/protected-input guards.');
68
155
  }
69
156
  return withProjectMutationLock(input.inspection.projectRoot, async (lease) => {
70
157
  await lease.assertHeld();
@@ -83,7 +170,10 @@ async function executeApplyNextLocked(input, lease) {
83
170
  const clock = () => input.now ?? input.clock?.() ?? new Date();
84
171
  const now = clock();
85
172
  const localRevalidation = input.localRevalidation ?? false;
86
- const initialPlan = await buildSavedTransitionPlan({ inspection: input.inspection, runner, now, localRevalidation });
173
+ const initialPlan = await buildSavedTransitionPlan({
174
+ inspection: input.inspection, runner, now, localRevalidation,
175
+ ...(input.reviewedPlan ? { createdAt: input.reviewedPlan.createdAt } : {})
176
+ });
87
177
  if (!initialPlan) {
88
178
  const preview = await previewApplyNext({ inspection: input.inspection, runner, now, execute: true, localRevalidation });
89
179
  return {
@@ -100,6 +190,20 @@ async function executeApplyNextLocked(input, lease) {
100
190
  }
101
191
  const phase = phaseById(input.inspection.graph, initialPlan.phaseId);
102
192
  assertPlanOperationsAllowed(initialPlan, phase);
193
+ if (input.reviewedPlan && (input.reviewedPlan.planDigest !== initialPlan.planDigest ||
194
+ input.reviewedPlan.stateHash !== initialPlan.stateHash ||
195
+ Date.parse(input.reviewedPlan.expiresAt) <= now.getTime())) {
196
+ throw new Error('The reviewed preview expired or its inputs/operations changed; request a fresh plan before execution.');
197
+ }
198
+ const pendingOperation = input.inspection.state.phases[phase.id].operation;
199
+ if (pendingOperation) {
200
+ const checkpointDigest = pendingOperation.planDigest ?? input.inspection.state.phases[phase.id].executionPlanDigest;
201
+ const dispatched = input.inspection.contexts[phase.id].reviewedPlans?.find((plan) => plan.planDigest === checkpointDigest);
202
+ if (!dispatched || dispatched.phaseId !== phase.id || dispatched.scope !== initialPlan.scope ||
203
+ (!input.recovery && canonicalSha256(authorityOperations(dispatched.operations)) !== canonicalSha256(authorityOperations(initialPlan.operations)))) {
204
+ throw new Error('The pending external operation does not match this exact reviewed operation set; inspect and approve recovery.');
205
+ }
206
+ }
103
207
  if (initialPlan.approval.evaluation.approvalRequired) {
104
208
  const preview = await previewApplyNext({ inspection: input.inspection, runner, now, execute: true, localRevalidation });
105
209
  return {
@@ -107,15 +211,21 @@ async function executeApplyNextLocked(input, lease) {
107
211
  executedOperations: [], evidence: null, stateHash: null, rollbackPlan: initialPlan.rollbackPlan, cleanupWarnings: []
108
212
  };
109
213
  }
214
+ if (initialPlan.approval.required && initialPlan.approval.envelopeId) {
215
+ const envelope = input.inspection.approvals.find((entry) => entry.id === initialPlan.approval.envelopeId);
216
+ if (envelope) {
217
+ await assertGovernanceApprovalIssued(input.inspection.projectRoot, envelope);
218
+ }
219
+ }
110
220
  await input.assertReviewedPlan?.(initialPlan);
111
221
  await input.assertProtectedInputs?.();
112
222
  const saved = await saveTransitionPlan(input.inspection.projectRoot, initialPlan);
113
223
  const freshInspection = await input.reinspect();
114
- const freshPlan = await buildSavedTransitionPlan({ inspection: freshInspection, runner, now, localRevalidation });
224
+ const freshPlan = await buildSavedTransitionPlan({ inspection: freshInspection, runner, now, createdAt: initialPlan.createdAt, localRevalidation });
115
225
  const freshnessIssues = comparePlanFreshness(initialPlan, freshPlan);
116
226
  if (freshnessIssues.length > 0) {
117
227
  return {
118
- schemaVersion: 1, command: 'governance apply-next', projectRoot: input.inspection.projectRoot,
228
+ schemaVersion: 2, scope: input.inspection.scope, command: 'governance apply-next', projectRoot: input.inspection.projectRoot,
119
229
  execute: true, applied: false, authorized: false, reason: 'stale-after-plan-save', message: freshnessIssues.join(' '),
120
230
  selectedPhase: initialPlan.phaseId, executedPhase: null, nextReadyPhase: freshInspection.readiness.nextReadyPhase,
121
231
  approval: initialPlan.approval,
@@ -127,6 +237,7 @@ async function executeApplyNextLocked(input, lease) {
127
237
  if (freshPlan)
128
238
  await input.assertReviewedPlan?.(freshPlan);
129
239
  await input.assertProtectedInputs?.();
240
+ const taskSource = localRevalidation ? undefined : await captureGovernanceTaskSource(freshInspection, initialPlan);
130
241
  const sourceBlocker = sourceOfTruthAllowsPhase(freshInspection, initialPlan.phaseId);
131
242
  if (sourceBlocker) {
132
243
  const nextState = blockedState({ inspection: freshInspection, phase, plan: initialPlan, blocker: sourceBlocker, now });
@@ -134,13 +245,34 @@ async function executeApplyNextLocked(input, lease) {
134
245
  return executionBlockedResult(freshInspection, initialPlan, saved, sourceBlocker, [], write.stateHash);
135
246
  }
136
247
  await lease.assertHeld();
248
+ const inputOptions = { sensitivePathExclusions: freshInspection.sensitivePathExclusions };
249
+ const beforeSnapshot = await readActivationInputSnapshot(freshInspection.projectRoot, freshInspection.manifest, runner, inputOptions);
250
+ let executionStateHash = initialPlan.stateHash;
251
+ const readOnlyMutations = new Set(['none', 'read-worktree', 'github-read', 'azure-read', 'backend-state-read', 'write-evidence', 'write-activation-state', 'project-governance-tasks']);
252
+ const executionStarted = phaseScope(phase.id) !== 'local' && initialPlan.operations.some((operation) => (operation.remote || operation.effects?.some((effect) => effect.remote)) &&
253
+ (!readOnlyMutations.has(operation.mutationClass) || operation.effects?.some((effect) => !readOnlyMutations.has(effect.mutationClass))));
254
+ if (executionStarted) {
255
+ const intent = nextStateForOutcome({
256
+ inspection: freshInspection, phase, plan: initialPlan, resultState: 'running', now,
257
+ ...(pendingOperation ? { operation: pendingOperation } : {})
258
+ });
259
+ executionStateHash = (await writeOutcomeTransaction({
260
+ projectRoot: freshInspection.projectRoot, plan: initialPlan, nextState: intent
261
+ })).stateHash;
262
+ await lease.assertHeld();
263
+ }
137
264
  const outcome = await executeBuiltInPhase({
138
265
  inspection: freshInspection, plan: initialPlan, phase, runner, adapters, now,
139
- clock, lease
266
+ clock, lease, recovery: input.recovery, credentialEnrollment: input.credentialEnrollment
140
267
  }, localRevalidation);
141
268
  await input.assertProtectedInputs?.();
142
269
  const completedOperations = outcome.completedOperations ?? [];
270
+ if (outcome.operation && !initialPlan.operations.some((operation) => operation.actionId === outcome.operation.actionId)) {
271
+ throw new Error('The reported external operation has no corresponding action in the reviewed plan.');
272
+ }
143
273
  for (const completed of completedOperations) {
274
+ if (completed.actionId === governanceTaskProjectionAction)
275
+ throw new Error('Adapters cannot claim the engine-owned post-outcome task projection.');
144
276
  assertOperationAllowed(phase, completed);
145
277
  if (!initialPlan.operations.some((planned) => canonicalSha256(planned) === canonicalSha256(completed))) {
146
278
  throw new Error(`Completed operation ${completed.actionId} was not in the reviewed plan.`);
@@ -152,58 +284,106 @@ async function executeApplyNextLocked(input, lease) {
152
284
  const allowed = initialPlan.operations.some((operation) => {
153
285
  const prefix = operation.destination.pathParts;
154
286
  return !operation.remote && prefix && prefix.every((part, index) => mutation.pathParts[index] === part) &&
155
- ['write-seed-tasks', 'write-openspec-governance', 'write-workflows', 'write-ruleset-source', 'delete-local-state'].includes(operation.mutationClass) &&
287
+ ['write-seed-tasks', 'write-openspec-governance', 'write-workflows', 'write-ruleset-source', 'write-credential-policy', 'delete-local-state'].includes(operation.mutationClass) &&
156
288
  (mutation.type !== 'delete' || operation.destructive && prefix.length === mutation.pathParts.length);
157
289
  });
158
290
  if (!allowed)
159
291
  throw new Error(`Outcome file mutation ${mutation.pathParts.join('/')} is outside the reviewed plan destinations.`);
160
292
  }
161
- const postSnapshot = await readActivationInputSnapshot(freshInspection.projectRoot, freshInspection.manifest, runner);
162
- if (postSnapshot.baselineSha !== initialPlan.baselineDigest || phaseInputDigest(phase.id, postSnapshot) !== initialPlan.inputDigest) {
163
- return executionBlockedResult(freshInspection, initialPlan, saved, 'Relevant project inputs changed during execution; no outcome was persisted.', completedOperations, freshInspection.loadedState?.contentHash ?? '', outcome.cleanupWarnings ?? [], false);
293
+ assertOutcomeFileChanges(initialPlan, outcome.fileMutations ?? [], outcome.filePreconditions ?? []);
294
+ const postSnapshot = await readActivationInputSnapshot(freshInspection.projectRoot, freshInspection.manifest, runner, inputOptions);
295
+ try {
296
+ assertInputFileChanges(beforeSnapshot, postSnapshot, initialPlan);
297
+ }
298
+ catch (error) {
299
+ return executionBlockedResult(freshInspection, initialPlan, saved, 'Relevant project inputs changed during execution; no outcome was persisted.', completedOperations, executionStateHash ?? '', outcome.cleanupWarnings ?? [], false);
300
+ }
301
+ const gitBinding = await verifiedGitInputBinding(beforeSnapshot.git, postSnapshot.git, initialPlan, freshInspection.projectRoot, runner);
302
+ const effectiveSnapshot = snapshotWithPlannedWrites(postSnapshot, outcome.fileMutations ?? []);
303
+ const afterInputDigest = phaseInputDigest(phase.id, effectiveSnapshot, freshInspection.state);
304
+ if (outcome.status === 'pending') {
305
+ if (!outcome.operation || outcome.operation.status !== 'running') {
306
+ throw new Error('A pending phase must provide a concrete resumable external operation handle.');
307
+ }
308
+ const nextState = nextStateForOutcome({
309
+ inspection: freshInspection, phase, plan: initialPlan, resultState: 'running', now: clock(),
310
+ operation: { ...outcome.operation, planDigest: pendingOperation?.planDigest ?? initialPlan.planDigest }
311
+ });
312
+ const write = await persistWithTaskProjection({
313
+ inspection: freshInspection, plan: initialPlan, nextState, source: taskSource, snapshot: postSnapshot, now: clock(),
314
+ expectedStateHash: executionStateHash, projectCreation: false, fallbackState: nextState
315
+ });
316
+ return {
317
+ ...executionBlockedResult(freshInspection, initialPlan, saved, outcome.blocker ?? `External operation ${outcome.operation.operationId} is running; resume polls this operation without redispatch.`, [...completedOperations, ...taskSource?.contract.source === 'existing' && !write.projectionFailure
318
+ ? initialPlan.operations.filter((operation) => operation.actionId === governanceTaskProjectionAction) : []], write.stateHash, [...outcome.cleanupWarnings ?? [], ...(write.projectionFailure ? [write.projectionFailure] : [])]),
319
+ reason: 'external-operation-pending', authorized: true, executedPhase: phase.id,
320
+ nextReadyPhase: phase.id
321
+ };
164
322
  }
165
323
  if (outcome.status === 'blocked') {
166
324
  const blocker = outcome.blocker ?? `Phase ${phase.id} blocked.`;
167
325
  if (outcome.retryableWithoutStateMutation) {
168
- const stateHash = freshInspection.loadedState?.contentHash ?? activationStateContentHash(canonicalJson(freshInspection.state));
169
- return executionBlockedResult(freshInspection, initialPlan, saved, blocker, completedOperations, stateHash, outcome.cleanupWarnings ?? [], false);
326
+ if (outcome.operation || completedOperations.some((operation) => operation.remote && !readOnlyMutations.has(operation.mutationClass) ||
327
+ operation.effects?.some((effect) => effect.remote && !readOnlyMutations.has(effect.mutationClass)))) {
328
+ throw new Error('A producer cannot request a state-free retry after reporting remote writes or an external operation handle.');
329
+ }
330
+ const stateHash = executionStarted
331
+ ? (await writeOutcomeTransaction({
332
+ projectRoot: freshInspection.projectRoot, plan: initialPlan, nextState: freshInspection.state,
333
+ expectedStateHash: executionStateHash
334
+ })).stateHash
335
+ : executionStateHash ?? activationStateContentHash(canonicalJson(freshInspection.state));
336
+ return executionBlockedResult(freshInspection, initialPlan, saved, blocker, completedOperations, stateHash, outcome.cleanupWarnings ?? [], executionStarted);
170
337
  }
171
- const nextState = blockedState({ inspection: freshInspection, phase, plan: initialPlan, blocker, now });
172
- const write = await writeOutcomeTransaction({ projectRoot: freshInspection.projectRoot, plan: initialPlan, nextState });
173
- return executionBlockedResult(freshInspection, initialPlan, saved, blocker, completedOperations, write.stateHash, outcome.cleanupWarnings ?? []);
338
+ const nextState = blockedState({
339
+ inspection: freshInspection, phase, plan: initialPlan, blocker, now,
340
+ executionStarted, ...(outcome.operation ? {
341
+ operation: { ...outcome.operation, planDigest: pendingOperation?.planDigest ?? initialPlan.planDigest }
342
+ } : {})
343
+ });
344
+ const write = await persistWithTaskProjection({
345
+ inspection: freshInspection, plan: initialPlan, nextState, source: taskSource, snapshot: postSnapshot, now: clock(),
346
+ expectedStateHash: executionStateHash, projectCreation: false, fallbackState: nextState
347
+ });
348
+ return executionBlockedResult(freshInspection, initialPlan, saved, blocker, [...completedOperations, ...taskSource?.contract.source === 'existing' && !write.projectionFailure
349
+ ? initialPlan.operations.filter((operation) => operation.actionId === governanceTaskProjectionAction) : []], write.stateHash, [...outcome.cleanupWarnings ?? [], ...(write.projectionFailure ? [write.projectionFailure] : [])]);
174
350
  }
175
351
  const resultState = outcome.resultState ?? 'verified';
352
+ await assertPlannedFilesAfter(freshInspection.projectRoot, initialPlan, outcome.fileMutations ?? []);
176
353
  if (!phase.terminalStates.includes(resultState)) {
177
354
  const blocker = `Phase adapter returned ${resultState}, which is not an allowed terminal state for ${phase.id}.`;
178
- const nextState = blockedState({ inspection: freshInspection, phase, plan: initialPlan, blocker, now });
179
- const write = await writeOutcomeTransaction({ projectRoot: freshInspection.projectRoot, plan: initialPlan, nextState });
355
+ const nextState = blockedState({ inspection: freshInspection, phase, plan: initialPlan, blocker, now, executionStarted, operation: outcome.operation });
356
+ const write = await writeOutcomeTransaction({ projectRoot: freshInspection.projectRoot, plan: initialPlan, nextState, expectedStateHash: executionStateHash });
180
357
  return executionBlockedResult(freshInspection, initialPlan, saved, blocker, completedOperations, write.stateHash, outcome.cleanupWarnings ?? []);
181
358
  }
182
359
  if (outcome.stateOverride && outcome.stateOverride.repository.id !== freshInspection.state.repository.id) {
183
360
  throw new Error('A phase outcome must not replace the immutable local execution anchor.');
184
361
  }
185
362
  if (outcome.stateOverride) {
363
+ if (canonicalSha256(outcome.stateOverride.successorHistory ?? null) !== canonicalSha256(freshInspection.state.successorHistory ?? null) ||
364
+ outcome.stateOverride.baselineAnchor !== freshInspection.state.baselineAnchor ||
365
+ canonicalSha256(outcome.stateOverride.taskProjection ?? null) !== canonicalSha256(freshInspection.state.taskProjection ?? null)) {
366
+ throw new Error('A phase adapter cannot replace immutable execution-baseline/successor-history bindings or engine-owned task-projection records.');
367
+ }
186
368
  if (canonicalSha256(outcome.stateOverride.phases) !== canonicalSha256(freshInspection.state.phases)) {
187
369
  throw new Error('A phase adapter cannot rewrite authoritative phase history or unrelated phase states.');
188
370
  }
189
- if (phase.id !== 'phase-0-complete' &&
371
+ if (phase.id !== 'phase-0-complete' && phase.id !== 'pushed' &&
190
372
  canonicalSha256(outcome.stateOverride.remoteBinding ?? null) !== canonicalSha256(freshInspection.state.remoteBinding ?? null)) {
191
- throw new Error('Only verified Phase 0 discovery may establish a remote repository binding.');
373
+ throw new Error('Only verified Phase 0 discovery or publication may establish a remote repository binding.');
192
374
  }
193
375
  }
194
376
  if (phase.approvalGate.required) {
195
377
  const finalInspection = await input.reinspect();
196
- const finalPlan = await buildSavedTransitionPlan({ inspection: finalInspection, runner, now: clock(), localRevalidation });
197
- if (finalPlan)
198
- await input.assertReviewedPlan?.(finalPlan);
199
- if (!finalPlan || finalPlan.phaseId !== phase.id || finalPlan.approval.evaluation.approvalRequired ||
200
- finalPlan.approval.envelopeHash !== initialPlan.approval.envelopeHash) {
201
- return executionBlockedResult(freshInspection, initialPlan, saved, 'Approval changed or expired before outcome persistence; no successful outcome was recorded.', completedOperations, freshInspection.loadedState?.contentHash ?? '', outcome.cleanupWarnings ?? [], false);
378
+ const finalApproval = evaluateApprovalForTransitionPlan(approvalRequestForSavedPlan(initialPlan, phase, finalInspection.state), finalInspection.approvals, { now: clock() });
379
+ if (finalApproval.approvalRequired || finalApproval.envelopeHash !== initialPlan.approval.envelopeHash) {
380
+ return executionBlockedResult(freshInspection, initialPlan, saved, 'Approval changed or expired before outcome persistence; no successful outcome was recorded.', completedOperations, executionStateHash ?? '', outcome.cleanupWarnings ?? [], false);
202
381
  }
203
382
  }
204
383
  const outcomeInspection = { ...freshInspection, state: outcome.stateOverride ?? freshInspection.state };
205
384
  const boundPayload = isRecord(outcome.evidencePayload)
206
- ? { ...outcome.evidencePayload, planDigest: initialPlan.planDigest, savedPlanDigest: canonicalSha256(initialPlan) }
385
+ ? { ...outcome.evidencePayload, planDigest: initialPlan.planDigest, savedPlanDigest: canonicalSha256(initialPlan),
386
+ ...(outcome.outputs ? { outputBindings: outcome.outputs } : {}) }
207
387
  : outcome.evidencePayload;
208
388
  const outcomeNow = clock();
209
389
  let evidenceRecord;
@@ -213,7 +393,7 @@ async function executeApplyNextLocked(input, lease) {
213
393
  const evidenceId = `${phase.id}-${safeTimestamp(now.toISOString())}`;
214
394
  const header = evidenceHeaderFor({
215
395
  inspection: outcomeInspection, phase, plan: initialPlan, result: resultState, now: outcomeNow,
216
- payload: boundPayload, liveReadback: outcome.liveReadback
396
+ payload: boundPayload, liveReadback: outcome.liveReadback, afterInputDigest, gitBinding
217
397
  });
218
398
  evidenceRecord = {
219
399
  evidenceId, header,
@@ -224,45 +404,99 @@ async function executeApplyNextLocked(input, lease) {
224
404
  evidenceReference = { phaseId: phase.id, evidenceId, headerDigest: evidenceHeaderDigest(header), result: header.result };
225
405
  const validation = validateEvidenceFreshness(evidenceRecord, {
226
406
  ...freshInspection.contexts[phase.id],
407
+ inputDigest: (initialPlan.fileChanges?.length || gitBinding) ? afterInputDigest : initialPlan.inputDigest,
227
408
  remoteBindingDigest: remoteBindingDigest(outcomeInspection.state.remoteBinding),
228
409
  evidenceReferences: [evidenceReference], reviewedPlans: [initialPlan],
229
410
  ...(phase.id === 'seed-archived' && postSnapshot.workflowSpecDigest ? { workflowSpecDigest: postSnapshot.workflowSpecDigest } : {}),
230
411
  now: outcomeNow
231
412
  });
232
413
  if (!validation.valid) {
233
- return executionBlockedResult(freshInspection, initialPlan, saved, `Completed outcome rejected: ${validation.issues.map((issue) => issue.message).join(' ')}`, completedOperations, freshInspection.loadedState?.contentHash ?? '', outcome.cleanupWarnings ?? [], false);
414
+ return executionBlockedResult(freshInspection, initialPlan, saved, `Completed outcome rejected: ${validation.issues.map((issue) => issue.message).join(' ')}`, completedOperations, executionStateHash ?? '', outcome.cleanupWarnings ?? [], false);
234
415
  }
235
416
  }
236
417
  const nextState = nextStateForOutcome({
237
418
  inspection: freshInspection, phase, plan: initialPlan, resultState,
238
- evidenceReference, override: outcome.stateOverride, now
419
+ evidenceReference, override: outcome.stateOverride, now: outcomeNow, outputs: outcome.outputs
239
420
  });
240
421
  await input.assertProtectedInputs?.();
241
- const write = await writeOutcomeTransaction({
242
- projectRoot: freshInspection.projectRoot, plan: initialPlan, nextState, evidenceRecord,
243
- evidencePathParts: evidenceParts, fileMutations: outcome.fileMutations, filePreconditions: outcome.filePreconditions
422
+ const write = await persistWithTaskProjection({
423
+ inspection: outcomeInspection, plan: initialPlan, nextState, source: taskSource, snapshot: effectiveSnapshot, now: outcomeNow,
424
+ evidenceRecord, evidencePathParts: evidenceParts, fileMutations: outcome.fileMutations, filePreconditions: outcome.filePreconditions,
425
+ expectedStateHash: executionStateHash, projectCreation: true,
426
+ fallbackState: blockedState({
427
+ inspection: freshInspection, phase, plan: initialPlan, blocker: 'Current task projection did not commit.',
428
+ now: outcomeNow, executionStarted, operation: outcome.operation
429
+ })
244
430
  });
431
+ if (write.projectionFailure) {
432
+ return executionBlockedResult(freshInspection, initialPlan, saved, write.projectionFailure, completedOperations, write.stateHash, [...outcome.cleanupWarnings ?? [], 'No successful phase or task projection was claimed; inspect and approve recovery of any completed external effects.']);
433
+ }
245
434
  await input.assertProtectedInputs?.();
246
435
  const rollbackPlan = rollbackPlanForPhase(phase, completedOperations);
436
+ const completedInspection = await input.reinspect();
247
437
  return {
248
- schemaVersion: 1, command: 'governance apply-next', projectRoot: freshInspection.projectRoot,
438
+ schemaVersion: 2, scope: freshInspection.scope, command: 'governance apply-next', projectRoot: freshInspection.projectRoot,
249
439
  execute: true, applied: true, authorized: true, reason: 'phase-executed',
250
440
  message: `Executed one phase: ${phase.id}.`, selectedPhase: phase.id, executedPhase: phase.id,
251
- nextReadyPhase: phase.id, approval: initialPlan.approval,
441
+ nextReadyPhase: completedInspection.readiness.nextReadyPhase, approval: initialPlan.approval,
252
442
  proposedMutations: { local: initialPlan.mutationClasses.local, remote: initialPlan.mutationClasses.remote, operations: initialPlan.operations },
253
443
  savedPlan: saved, noWrites: false, blockers: [],
254
- executedOperations: [...completedOperations, ...(evidenceParts ? [evidenceWriteOperation(phase, evidenceParts)] : []), stateWriteOperation(phase)],
444
+ executedOperations: [...completedOperations,
445
+ ...(taskSource ? initialPlan.operations.filter((operation) => operation.actionId === governanceTaskProjectionAction) : []),
446
+ ...(evidenceParts ? [evidenceWriteOperation(phase, evidenceParts)] : []), stateWriteOperation(phase)],
255
447
  evidence: write.evidence, stateHash: write.stateHash, rollbackPlan,
256
448
  cleanupWarnings: [...rollbackPlan.cleanupWarnings, ...(outcome.cleanupWarnings ?? [])]
257
449
  };
258
450
  }
451
+ async function persistWithTaskProjection(input) {
452
+ const write = {
453
+ projectRoot: input.inspection.projectRoot, plan: input.plan, nextState: input.nextState,
454
+ evidenceRecord: input.evidenceRecord, evidencePathParts: input.evidencePathParts,
455
+ fileMutations: input.fileMutations, filePreconditions: input.filePreconditions,
456
+ expectedStateHash: input.expectedStateHash
457
+ };
458
+ if (!input.source || input.source.contract.source === 'create' && !input.projectCreation)
459
+ return writeOutcomeTransaction(write);
460
+ try {
461
+ const projection = await prepareGovernanceTaskProjection({ ...input, source: input.source });
462
+ return await writeOutcomeTransaction({
463
+ ...write, nextState: { ...input.nextState, taskProjection: projection.record }, taskProjection: projection
464
+ });
465
+ }
466
+ catch (error) {
467
+ const detail = error instanceof Error ? error.message : String(error);
468
+ const projectionFailure = `Current task/record projection was blocked: ${detail}`;
469
+ const record = blockedGovernanceTaskProjection(input.plan, input.now, projectionFailure);
470
+ const fallback = {
471
+ ...input.fallbackState, taskProjection: record,
472
+ phases: {
473
+ ...input.fallbackState.phases,
474
+ [input.plan.phaseId]: {
475
+ ...input.fallbackState.phases[input.plan.phaseId],
476
+ blockers: [...input.fallbackState.phases[input.plan.phaseId].blockers, projectionFailure]
477
+ }
478
+ }
479
+ };
480
+ try {
481
+ return {
482
+ ...await writeOutcomeTransaction({
483
+ projectRoot: input.inspection.projectRoot, plan: input.plan,
484
+ nextState: fallback, expectedStateHash: input.expectedStateHash
485
+ }), projectionFailure
486
+ };
487
+ }
488
+ catch (checkpointError) {
489
+ throw new Error(`${projectionFailure} The execution checkpoint could not be persisted: ${checkpointError instanceof Error ? checkpointError.message : String(checkpointError)}. Preserve current files and inspect the reviewed operation before retrying.`);
490
+ }
491
+ }
492
+ }
259
493
  function executionBlockedResult(inspection, plan, saved, blocker, completedOperations, stateHashValue, cleanupWarnings = [], stateWritten = true) {
260
494
  const phase = phaseById(inspection.graph, plan.phaseId);
261
495
  const rollbackPlan = rollbackPlanForPhase(phase, completedOperations);
262
496
  return {
263
- schemaVersion: 1, command: 'governance apply-next', projectRoot: inspection.projectRoot,
497
+ schemaVersion: 2, scope: inspection.scope, command: 'governance apply-next', projectRoot: inspection.projectRoot,
264
498
  execute: true, applied: false, authorized: false, reason: 'blocked', message: blocker,
265
- selectedPhase: plan.phaseId, executedPhase: null, nextReadyPhase: plan.phaseId, approval: plan.approval,
499
+ selectedPhase: plan.phaseId, executedPhase: null, nextReadyPhase: inspection.readiness.nextReadyPhase, approval: plan.approval,
266
500
  proposedMutations: { local: plan.mutationClasses.local, remote: plan.mutationClasses.remote, operations: plan.operations },
267
501
  savedPlan: saved, noWrites: false, blockers: [blocker],
268
502
  executedOperations: [...completedOperations, ...(stateWritten ? [stateWriteOperation(phase)] : [])],
@@ -1 +1 @@
1
- {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/governance-activation/transitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/governance-activation/transitions.ts"],"names":[],"mappings":"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"}