@msn-control/liftoff 0.11.3 → 0.12.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 (326) hide show
  1. package/DEVELOPER.md +19 -18
  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/cli/args/definitions.js +11 -3
  117. package/dist/cli/args/definitions.js.map +1 -1
  118. package/dist/cli/args/parser.js +29 -3
  119. package/dist/cli/args/parser.js.map +1 -1
  120. package/dist/domain/governance/activation/approvals.d.ts +264 -7
  121. package/dist/domain/governance/activation/approvals.js +166 -23
  122. package/dist/domain/governance/activation/approvals.js.map +1 -1
  123. package/dist/domain/governance/activation/capabilities.js +5 -2
  124. package/dist/domain/governance/activation/capabilities.js.map +1 -1
  125. package/dist/domain/governance/activation/evidence.d.ts +2 -1
  126. package/dist/domain/governance/activation/evidence.js +64 -11
  127. package/dist/domain/governance/activation/evidence.js.map +1 -1
  128. package/dist/domain/governance/activation/graph.d.ts +11 -384
  129. package/dist/domain/governance/activation/graph.js +424 -379
  130. package/dist/domain/governance/activation/graph.js.map +1 -1
  131. package/dist/domain/governance/activation/inputs.d.ts +3 -1
  132. package/dist/domain/governance/activation/inputs.js +47 -6
  133. package/dist/domain/governance/activation/inputs.js.map +1 -1
  134. package/dist/domain/governance/activation/operations.d.ts +4 -1
  135. package/dist/domain/governance/activation/operations.js +110 -22
  136. package/dist/domain/governance/activation/operations.js.map +1 -1
  137. package/dist/domain/governance/activation/readiness.d.ts +10 -0
  138. package/dist/domain/governance/activation/readiness.js +77 -38
  139. package/dist/domain/governance/activation/readiness.js.map +1 -1
  140. package/dist/domain/governance/activation/types.d.ts +151 -9
  141. package/dist/domain/governance/activation/types.js +23 -1
  142. package/dist/domain/governance/activation/types.js.map +1 -1
  143. package/dist/domain/governance/activation/validators.d.ts +4 -1
  144. package/dist/domain/governance/activation/validators.js +419 -26
  145. package/dist/domain/governance/activation/validators.js.map +1 -1
  146. package/dist/domain/governance/policy/identity.d.ts +55 -13
  147. package/dist/domain/governance/policy/identity.js +28 -8
  148. package/dist/domain/governance/policy/identity.js.map +1 -1
  149. package/dist/domain/project/artifact-lifecycle.d.ts +2 -1
  150. package/dist/domain/project/artifact-lifecycle.js +7 -1
  151. package/dist/domain/project/artifact-lifecycle.js.map +1 -1
  152. package/dist/domain/project/catalog.d.ts +50 -1
  153. package/dist/domain/project/catalog.js +104 -4
  154. package/dist/domain/project/catalog.js.map +1 -1
  155. package/dist/domain/project/contracts.d.ts +9 -1
  156. package/dist/domain/project/infrastructure-layout.d.ts +1 -1
  157. package/dist/domain/project/infrastructure-layout.js +2 -1
  158. package/dist/domain/project/infrastructure-layout.js.map +1 -1
  159. package/dist/domain/project/manifest/governance.d.ts +1 -1
  160. package/dist/domain/project/manifest/governance.js +9 -10
  161. package/dist/domain/project/manifest/governance.js.map +1 -1
  162. package/dist/domain/project/planning.js +4 -5
  163. package/dist/domain/project/planning.js.map +1 -1
  164. package/dist/domain/repair/stateful-bounded.d.ts +1 -0
  165. package/dist/domain/repair/stateful-bounded.js +37 -0
  166. package/dist/domain/repair/stateful-bounded.js.map +1 -0
  167. package/dist/domain/repair/stateful-invariants.d.ts +28 -0
  168. package/dist/domain/repair/stateful-invariants.js +278 -0
  169. package/dist/domain/repair/stateful-invariants.js.map +1 -0
  170. package/dist/domain/repair/stateful.d.ts +690 -0
  171. package/dist/domain/repair/stateful.js +26 -0
  172. package/dist/domain/repair/stateful.js.map +1 -0
  173. package/dist/domain/workstation/constraints.d.ts +1 -0
  174. package/dist/domain/workstation/constraints.js.map +1 -1
  175. package/dist/domain/workstation/contracts.d.ts +42 -0
  176. package/dist/domain/workstation/contracts.js +2 -0
  177. package/dist/domain/workstation/contracts.js.map +1 -0
  178. package/dist/domain/workstation/executables.d.ts +19 -0
  179. package/dist/domain/workstation/executables.js +68 -0
  180. package/dist/domain/workstation/executables.js.map +1 -0
  181. package/dist/domain/workstation/versions.d.ts +8 -0
  182. package/dist/domain/workstation/versions.js +145 -0
  183. package/dist/domain/workstation/versions.js.map +1 -0
  184. package/dist/framework-adapters.d.ts +2 -0
  185. package/dist/framework-adapters.js +148 -22
  186. package/dist/framework-adapters.js.map +1 -1
  187. package/dist/framework-validation.d.ts +6 -0
  188. package/dist/framework-validation.js +89 -24
  189. package/dist/framework-validation.js.map +1 -1
  190. package/dist/generators/common/base.js +57 -17
  191. package/dist/generators/common/base.js.map +1 -1
  192. package/dist/governance-activation/activation-state.js +39 -7
  193. package/dist/governance-activation/activation-state.js.map +1 -1
  194. package/dist/governance-activation/authority-records.d.ts +4 -0
  195. package/dist/governance-activation/authority-records.js +24 -0
  196. package/dist/governance-activation/authority-records.js.map +1 -0
  197. package/dist/governance-activation/commands.d.ts +9 -1
  198. package/dist/governance-activation/commands.js +392 -97
  199. package/dist/governance-activation/commands.js.map +1 -1
  200. package/dist/governance-activation/compatibility.d.ts +11 -8
  201. package/dist/governance-activation/compatibility.js +37 -23
  202. package/dist/governance-activation/compatibility.js.map +1 -1
  203. package/dist/governance-activation/doctor.js +40 -16
  204. package/dist/governance-activation/doctor.js.map +1 -1
  205. package/dist/governance-activation/github-config.d.ts +17 -0
  206. package/dist/governance-activation/github-config.js +88 -0
  207. package/dist/governance-activation/github-config.js.map +1 -0
  208. package/dist/governance-activation/github-discovery.d.ts +18 -0
  209. package/dist/governance-activation/github-discovery.js +229 -0
  210. package/dist/governance-activation/github-discovery.js.map +1 -0
  211. package/dist/governance-activation/github-ports.d.ts +12 -0
  212. package/dist/governance-activation/github-ports.js +4 -0
  213. package/dist/governance-activation/github-ports.js.map +1 -0
  214. package/dist/governance-activation/github-publication.d.ts +3 -0
  215. package/dist/governance-activation/github-publication.js +190 -0
  216. package/dist/governance-activation/github-publication.js.map +1 -0
  217. package/dist/governance-activation/historical-common.d.ts +98 -0
  218. package/dist/governance-activation/historical-common.js +269 -0
  219. package/dist/governance-activation/historical-common.js.map +1 -0
  220. package/dist/governance-activation/historical-credential-policy.d.ts +3 -0
  221. package/dist/governance-activation/historical-credential-policy.js +91 -0
  222. package/dist/governance-activation/historical-credential-policy.js.map +1 -0
  223. package/dist/governance-activation/historical-inputs.d.ts +6 -0
  224. package/dist/governance-activation/historical-inputs.js +57 -0
  225. package/dist/governance-activation/historical-inputs.js.map +1 -0
  226. package/dist/governance-activation/historical-safety.d.ts +9 -0
  227. package/dist/governance-activation/historical-safety.js +102 -0
  228. package/dist/governance-activation/historical-safety.js.map +1 -0
  229. package/dist/governance-activation/historical-source-metadata.d.ts +31 -0
  230. package/dist/governance-activation/historical-source-metadata.js +55 -0
  231. package/dist/governance-activation/historical-source-metadata.js.map +1 -0
  232. package/dist/governance-activation/historical-state.d.ts +12 -50
  233. package/dist/governance-activation/historical-state.js +195 -308
  234. package/dist/governance-activation/historical-state.js.map +1 -1
  235. package/dist/governance-activation/historical-v1-auxiliary.d.ts +1 -0
  236. package/dist/governance-activation/historical-v1-auxiliary.js +43 -0
  237. package/dist/governance-activation/historical-v1-auxiliary.js.map +1 -0
  238. package/dist/governance-activation/historical-v1-phase-contracts.d.ts +31 -0
  239. package/dist/governance-activation/historical-v1-phase-contracts.js +46 -0
  240. package/dist/governance-activation/historical-v1-phase-contracts.js.map +1 -0
  241. package/dist/governance-activation/historical-v2.d.ts +53 -0
  242. package/dist/governance-activation/historical-v2.js +313 -0
  243. package/dist/governance-activation/historical-v2.js.map +1 -0
  244. package/dist/governance-activation/history-contracts.d.ts +21 -12
  245. package/dist/governance-activation/history-contracts.js +99 -27
  246. package/dist/governance-activation/history-contracts.js.map +1 -1
  247. package/dist/governance-activation/inputs.d.ts +8 -2
  248. package/dist/governance-activation/inputs.js +41 -6
  249. package/dist/governance-activation/inputs.js.map +1 -1
  250. package/dist/governance-activation/migration-history.d.ts +43 -5
  251. package/dist/governance-activation/migration-history.js +231 -50
  252. package/dist/governance-activation/migration-history.js.map +1 -1
  253. package/dist/governance-activation/migration.d.ts +7 -4
  254. package/dist/governance-activation/migration.js +53 -252
  255. package/dist/governance-activation/migration.js.map +1 -1
  256. package/dist/governance-activation/phase-azure.d.ts +3 -0
  257. package/dist/governance-activation/phase-azure.js +205 -0
  258. package/dist/governance-activation/phase-azure.js.map +1 -0
  259. package/dist/governance-activation/phase-bootstrap-state.js +3 -0
  260. package/dist/governance-activation/phase-bootstrap-state.js.map +1 -1
  261. package/dist/governance-activation/phase-github.d.ts +3 -0
  262. package/dist/governance-activation/phase-github.js +192 -0
  263. package/dist/governance-activation/phase-github.js.map +1 -0
  264. package/dist/governance-activation/phase-governance.js +8 -2
  265. package/dist/governance-activation/phase-governance.js.map +1 -1
  266. package/dist/governance-activation/public-plans.d.ts +36 -0
  267. package/dist/governance-activation/public-plans.js +100 -0
  268. package/dist/governance-activation/public-plans.js.map +1 -0
  269. package/dist/governance-activation/read-only.d.ts +3 -1
  270. package/dist/governance-activation/read-only.js +7 -3
  271. package/dist/governance-activation/read-only.js.map +1 -1
  272. package/dist/governance-activation/reconciliation.js +10 -0
  273. package/dist/governance-activation/reconciliation.js.map +1 -1
  274. package/dist/governance-activation/seed-lifecycle.js +14 -25
  275. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  276. package/dist/governance-activation/source-of-truth.d.ts +21 -5
  277. package/dist/governance-activation/source-of-truth.js +102 -13
  278. package/dist/governance-activation/source-of-truth.js.map +1 -1
  279. package/dist/governance-activation/task-projection.d.ts +4 -1
  280. package/dist/governance-activation/task-projection.js +32 -3
  281. package/dist/governance-activation/task-projection.js.map +1 -1
  282. package/dist/governance-activation/task-writes.d.ts +42 -0
  283. package/dist/governance-activation/task-writes.js +250 -0
  284. package/dist/governance-activation/task-writes.js.map +1 -0
  285. package/dist/governance-activation/transition-files.d.ts +12 -0
  286. package/dist/governance-activation/transition-files.js +109 -0
  287. package/dist/governance-activation/transition-files.js.map +1 -0
  288. package/dist/governance-activation/transition-planning.d.ts +3 -1
  289. package/dist/governance-activation/transition-planning.js +158 -20
  290. package/dist/governance-activation/transition-planning.js.map +1 -1
  291. package/dist/governance-activation/transition-ports.d.ts +31 -3
  292. package/dist/governance-activation/transition-records.d.ts +11 -1
  293. package/dist/governance-activation/transition-records.js +52 -6
  294. package/dist/governance-activation/transition-records.js.map +1 -1
  295. package/dist/governance-activation/transitions.d.ts +5 -0
  296. package/dist/governance-activation/transitions.js +271 -37
  297. package/dist/governance-activation/transitions.js.map +1 -1
  298. package/dist/governance-assessment/engine.js +22 -15
  299. package/dist/governance-assessment/engine.js.map +1 -1
  300. package/dist/governance-assessment/project.d.ts +2 -0
  301. package/dist/governance-assessment/project.js +2 -1
  302. package/dist/governance-assessment/project.js.map +1 -1
  303. package/dist/interactive.d.ts +0 -1
  304. package/dist/interactive.js +3 -22
  305. package/dist/interactive.js.map +1 -1
  306. package/dist/openspec-profile.d.ts +2 -1
  307. package/dist/openspec-profile.js +11 -41
  308. package/dist/openspec-profile.js.map +1 -1
  309. package/dist/repository-governance.d.ts +10 -5
  310. package/dist/repository-governance.js +178 -92
  311. package/dist/repository-governance.js.map +1 -1
  312. package/dist/telemetry/contract.d.ts +1 -1
  313. package/dist/telemetry/contract.js +3 -0
  314. package/dist/telemetry/contract.js.map +1 -1
  315. package/dist/workstation-catalog.d.ts +13 -1
  316. package/dist/workstation-catalog.js +122 -0
  317. package/dist/workstation-catalog.js.map +1 -1
  318. package/dist/workstation.d.ts +69 -14
  319. package/dist/workstation.js +600 -215
  320. package/dist/workstation.js.map +1 -1
  321. package/docs/cli-reference.md +59 -21
  322. package/docs/configuration-and-manifests.md +9 -8
  323. package/docs/prerequisites.md +93 -18
  324. package/docs/repository-governance.md +68 -40
  325. package/docs/spec-workflows-and-agents.md +132 -13
  326. package/package.json +1 -1
@@ -2,22 +2,59 @@ import { randomUUID } from 'node:crypto';
2
2
  import { lstat, realpath } from 'node:fs/promises';
3
3
  import { canonicalJson, canonicalSha256, isRecord } from '../domain/governance/activation/canonical-json.js';
4
4
  import { currentActivationIdentity } from '../domain/governance/activation/graph.js';
5
+ import { phaseIds } from '../domain/governance/activation/types.js';
5
6
  import { validateApprovalEnvelope, validateUserActivationState } from '../domain/governance/activation/validators.js';
6
7
  import { evidenceBodyDigest } from '../domain/governance/activation/evidence.js';
7
- import { isHistoricalActivationIdentity } from '../domain/governance/policy/identity.js';
8
+ import { activationStateSchemaVersion, isHistoricalActivationIdentity, isHistoricalV2ActivationIdentity } from '../domain/governance/policy/identity.js';
8
9
  import { parseManifest } from '../application/project/manifest.js';
9
10
  import { FileSystemError } from '../domain/project/errors.js';
10
11
  import { errorCode } from '../adapters/filesystem/errors.js';
11
12
  import { packagedActivationSuccessorMigrations } from './compatibility.js';
12
- import { ActivationHistoryError, activationHistoryCopyPathParts, activationHistoryIndexPathParts, activationHistorySnapshotId, activationHistoryTargetModes, historicalActivationStatePathParts, historicalManifestPathParts, historyDigest, historyFail, historyPathKey, historyRecordId, historyTimestamp, migrationStateFilePathParts, migrationRevalidationPhaseIds, migrationTargetIdentity, parseHistoryJson, rawHistoryDigest, validateActivationHistoryIndex, validateMigrationJournal } from './history-contracts.js';
13
- import { assertHistoricalPhasesComplete, captureHistoryFile, historicalActiveRecordPaths, historicalPhaseIds, readHistoricalActivationInventory, resolveHistoryProjectPath, validateHistoricalActivationState, validateHistoricalSourceManifest } from './historical-state.js';
13
+ import { ActivationHistoryError, activationHistoryCopyPathParts, activationHistoryIndexPathParts, activationHistorySnapshotId, activationHistoryTargetModes, historicalActivationStatePathParts, historicalManifestPathParts, historyCaseKey, historyDigest, historyFail, historyPathKey, historyRecordId, historyTimestamp, migrationStateFilePathParts, migrationRevalidationPhaseIds, migrationTargetIdentity, parseHistoryJson, rawHistoryDigest, validateActivationHistoryIndex, validateMigrationJournal } from './history-contracts.js';
14
+ import { captureHistoryFile, historicalActiveRecordPaths, readHistoricalActivationInventory, readHistoricalSnapshotInventory, resolveHistoryProjectPath, validateReadableHistoricalActivationState, validateHistoricalSourceManifest } from './historical-state.js';
14
15
  import { readActivationEvidence, readReviewedTransitionPlans } from './proof-records.js';
16
+ import { assertSafeHistoricalRecord } from './historical-safety.js';
17
+ import { assertGovernanceApprovalIssued } from './authority-records.js';
18
+ function historicalSources(index, inventory) {
19
+ if (!inventory.state.activeChange)
20
+ return [];
21
+ const metadata = index.files.find((file) => file.kind === 'source-metadata');
22
+ return [{
23
+ snapshotId: index.snapshotId,
24
+ sourceIdentity: inventory.sourceChangeMetadata?.activationIdentity ?? index.sourceIdentity,
25
+ activeChange: { ...inventory.state.activeChange },
26
+ metadata: inventory.sourceChangeMetadata ?? null,
27
+ metadataCopyPathParts: metadata ? [...metadata.copyPathParts] : null,
28
+ metadataDigest: metadata?.digest ?? null
29
+ }];
30
+ }
31
+ function validLocalAnchor(value) {
32
+ return /^local:[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/u.test(value);
33
+ }
34
+ function lifecycleObligations(index, inventory) {
35
+ return inventory.state.bootstrapState ? [{
36
+ snapshotId: index.snapshotId, sourceIdentity: index.sourceIdentity,
37
+ repositoryId: inventory.state.repository.id,
38
+ retention: structuredClone(inventory.state.bootstrapState),
39
+ verification: 'required', authority: 'historical-protection-only'
40
+ }] : [];
41
+ }
42
+ /** Consumers must retain these safety blockers until separately authorized current lifecycle binding. */
43
+ export function historicalLifecyclePhaseBlockers(obligations) {
44
+ if (!obligations.length)
45
+ return {};
46
+ const blockers = obligations.map((obligation) => obligation.retention.status === 'disposed'
47
+ ? `History ${obligation.snapshotId} records disposed bootstrap material; identity migration cannot recreate it or its keys. Current lifecycle verification is separate.`
48
+ : `History ${obligation.snapshotId} retains bootstrap material from ${obligation.retention.retainedAt} until ${obligation.retention.disposeAfter}; it must not be reused for ordinary plan/apply or disposed under migration approval. Verify ownership through separate lifecycle planning.`);
49
+ return Object.fromEntries(['bootstrap-local', 'remote-import-verified', 'bootstrap-state-disposed'].map((id) => [id, [...blockers]]));
50
+ }
15
51
  function requireContent(snapshot, detail) {
16
52
  if (snapshot.content === undefined)
17
53
  historyFail(historyPathKey(snapshot.pathParts), detail, 'missing-history-record');
18
54
  return snapshot.content;
19
55
  }
20
56
  function currentState(value, location) {
57
+ assertSafeHistoricalRecord(value, location);
21
58
  try {
22
59
  return validateUserActivationState(value);
23
60
  }
@@ -28,6 +65,7 @@ function currentState(value, location) {
28
65
  }
29
66
  }
30
67
  function currentManifestIdentity(value, location) {
68
+ assertSafeHistoricalRecord(value, location);
31
69
  let manifest;
32
70
  try {
33
71
  manifest = parseManifest(value);
@@ -50,6 +88,20 @@ function preconditionIdentities(preconditions) {
50
88
  mode: snapshot.mode ?? null
51
89
  })).sort((a, b) => historyPathKey(a.pathParts) < historyPathKey(b.pathParts) ? -1 : 1);
52
90
  }
91
+ function uniqueHistoryPreconditions(preconditions) {
92
+ const unique = new Map();
93
+ for (const snapshot of preconditions) {
94
+ const key = historyCaseKey(snapshot.pathParts);
95
+ const previous = unique.get(key);
96
+ if (previous && (historyPathKey(previous.pathParts) !== historyPathKey(snapshot.pathParts) ||
97
+ previous.mode !== snapshot.mode || (previous.content === undefined
98
+ ? snapshot.content !== undefined : snapshot.content === undefined || !previous.content.equals(snapshot.content)))) {
99
+ historyFail(historyPathKey(snapshot.pathParts), 'protected bytes, path casing or modes changed during inspection.', 'historical-source-changed');
100
+ }
101
+ unique.set(key, snapshot);
102
+ }
103
+ return [...unique.values()];
104
+ }
53
105
  async function directoryExists(projectRoot, parts) {
54
106
  const target = await resolveHistoryProjectPath(projectRoot, parts);
55
107
  try {
@@ -71,7 +123,7 @@ export async function readActivationHistoryIndex(projectRoot, snapshotId) {
71
123
  const index = validateActivationHistoryIndex(parseHistoryJson(content, historyPathKey(parts)));
72
124
  if (index.snapshotId !== snapshotId)
73
125
  historyFail(historyPathKey(parts), 'index declares another snapshot.', 'history-digest-mismatch');
74
- return { index, content, digest: rawHistoryDigest(content) };
126
+ return { index, content, digest: rawHistoryDigest(content), snapshot };
75
127
  }
76
128
  export async function readMigrationJournal(projectRoot) {
77
129
  const snapshot = await captureHistoryFile(projectRoot, migrationStateFilePathParts);
@@ -91,6 +143,78 @@ async function verifyHistoryCopies(projectRoot, index) {
91
143
  }
92
144
  return snapshots;
93
145
  }
146
+ async function inspectAncestorHistory(projectRoot, inventory) {
147
+ const journal = inventory.sourceMigration;
148
+ if (!journal)
149
+ return { references: [], obligations: [], preconditions: [], historicalSources: [] };
150
+ const loaded = await readActivationHistoryIndex(projectRoot, journal.snapshotId);
151
+ if (loaded.index.files.some((file) => !['manifest', 'state', 'metadata', 'evidence', 'plan', 'approval'].includes(file.kind))) {
152
+ historyFail(historyPathKey(journal.historyIndexPathParts), 'the published v1-to-v2 history contract does not contain these record roles.', 'unsupported-historical-record');
153
+ }
154
+ if (loaded.digest !== journal.historyIndexDigest ||
155
+ canonicalSha256(loaded.index.sourceIdentity) !== canonicalSha256(journal.sourceIdentity)) {
156
+ historyFail(historyPathKey(journal.historyIndexPathParts), 'ancestor index digest or source contract contradicts the preserved migration.', 'history-digest-mismatch');
157
+ }
158
+ const copies = await verifyHistoryCopies(projectRoot, loaded.index);
159
+ const source = await readHistoricalSnapshotInventory(projectRoot, loaded.index);
160
+ if (source.sourceMigration)
161
+ historyFail('ancestor history', 'published v1 history cannot contain another migration.', 'invalid-historical-reference');
162
+ if (inventory.sourceChangeMetadata &&
163
+ canonicalSha256(inventory.sourceChangeMetadata.activationIdentity) !== canonicalSha256(inventory.state.identity) &&
164
+ (canonicalSha256(inventory.sourceChangeMetadata.activationIdentity) !== canonicalSha256(source.state.identity) ||
165
+ canonicalSha256(inventory.state.activeChange) !== canonicalSha256(source.state.activeChange))) {
166
+ historyFail('ancestor history', 'historical source metadata is not bound to the preserved ancestor pointer.', 'invalid-historical-reference');
167
+ }
168
+ return {
169
+ references: [{
170
+ snapshotId: loaded.index.snapshotId, sourceIdentity: loaded.index.sourceIdentity,
171
+ historyIndexPathParts: [...journal.historyIndexPathParts], historyIndexDigest: loaded.digest
172
+ }],
173
+ obligations: lifecycleObligations(loaded.index, source),
174
+ historicalSources: historicalSources(loaded.index, source),
175
+ preconditions: [loaded.snapshot, ...copies]
176
+ };
177
+ }
178
+ export async function activeActivationRecordsWithoutState(projectRoot) {
179
+ const records = [];
180
+ for (const directory of ['evidence', 'plans', 'approvals', 'reconciliation']) {
181
+ records.push(...await historicalActiveRecordPaths(projectRoot, directory));
182
+ }
183
+ const supersessionPaths = await historicalActiveRecordPaths(projectRoot, 'supersessions');
184
+ for (const parts of supersessionPaths) {
185
+ const file = await captureHistoryFile(projectRoot, parts);
186
+ if (!file.content)
187
+ continue;
188
+ try {
189
+ const parsed = JSON.parse(file.content.toString('utf8'));
190
+ if (parsed.schemaVersion !== currentActivationIdentity.supersessionSchemaVersion ||
191
+ canonicalSha256(parsed.identity) !== canonicalSha256(currentActivationIdentity)) {
192
+ records.push(parts);
193
+ }
194
+ }
195
+ catch {
196
+ records.push(parts);
197
+ }
198
+ }
199
+ for (const parts of [
200
+ [...migrationStateFilePathParts], ['governance', 'credentials', 'preflight-policy.json'], ['governance', 'activation-baseline.json']
201
+ ]) {
202
+ if ((await captureHistoryFile(projectRoot, parts)).content !== undefined)
203
+ records.push(parts);
204
+ }
205
+ return records;
206
+ }
207
+ export async function verifyActivationHistoryBeforeReplacement(projectRoot, plan, mutation) {
208
+ const original = plan.index.files.find((file) => historyPathKey(file.originalPathParts) === historyPathKey(mutation.pathParts));
209
+ if (!original)
210
+ return;
211
+ const index = await captureHistoryFile(projectRoot, activationHistoryIndexPathParts(plan.index.snapshotId));
212
+ const copy = await captureHistoryFile(projectRoot, original.copyPathParts);
213
+ if (!index.content || rawHistoryDigest(index.content) !== plan.indexDigest ||
214
+ !copy.content || rawHistoryDigest(copy.content) !== original.digest) {
215
+ historyFail(historyPathKey(mutation.pathParts), 'original bytes and their completed history index must be verified before replacement or retirement.', 'history-preservation-failed');
216
+ }
217
+ }
94
218
  async function inspectActiveProofRecords(projectRoot, state) {
95
219
  // Current proof is validated separately; no preserved record is considered here.
96
220
  for (const directory of ['evidence', 'plans', 'approvals']) {
@@ -141,6 +265,7 @@ async function inspectActiveProofRecords(projectRoot, state) {
141
265
  historyRecordId(approval.id, `${historyPathKey(parts)}.id`);
142
266
  if (approvals.has(approval.id))
143
267
  historyFail(historyPathKey(parts), 'duplicates a current approval ID.', 'invalid-current-proof');
268
+ await assertGovernanceApprovalIssued(projectRoot, approval);
144
269
  approvals.set(approval.id, approval.phaseId);
145
270
  }
146
271
  catch (error) {
@@ -163,32 +288,45 @@ async function inspectActiveProofRecords(projectRoot, state) {
163
288
  }
164
289
  export async function inspectActivationMigrationHistory(projectRoot) {
165
290
  const journal = await readMigrationJournal(projectRoot);
166
- if (journal === undefined)
291
+ const stateSnapshot = await captureHistoryFile(projectRoot, historicalActivationStatePathParts);
292
+ if (journal === undefined) {
293
+ if (stateSnapshot.content) {
294
+ const raw = parseHistoryJson(stateSnapshot.content, historyPathKey(stateSnapshot.pathParts));
295
+ if (isRecord(raw) && Object.hasOwn(raw, 'successorHistory')) {
296
+ currentState(raw, historyPathKey(stateSnapshot.pathParts));
297
+ historyFail(historyPathKey(migrationStateFilePathParts), 'the current successor declares a missing migration journal.', 'missing-migration-journal');
298
+ }
299
+ }
167
300
  return { status: 'none' };
301
+ }
302
+ const state = currentState(parseHistoryJson(requireContent(stateSnapshot, 'committed successor state is missing.'), historyPathKey(stateSnapshot.pathParts)), historyPathKey(stateSnapshot.pathParts));
303
+ const link = state.successorHistory;
304
+ if (!link || link.snapshotId !== journal.snapshotId || link.historyIndexDigest !== journal.historyIndexDigest ||
305
+ historyPathKey(link.journalPathParts) !== historyPathKey(migrationStateFilePathParts) ||
306
+ historyPathKey(link.historyIndexPathParts) !== historyPathKey(journal.historyIndexPathParts)) {
307
+ historyFail(historyPathKey(stateSnapshot.pathParts), 'successor history backlink is missing or contradicts the committed journal.', 'invalid-migration-successor');
308
+ }
168
309
  const loaded = await readActivationHistoryIndex(projectRoot, journal.snapshotId);
169
310
  if (loaded.digest !== journal.historyIndexDigest ||
170
311
  canonicalSha256(loaded.index.sourceIdentity) !== canonicalSha256(journal.sourceIdentity)) {
171
312
  historyFail(historyPathKey(journal.historyIndexPathParts), 'index digest or source identity contradicts the migration journal.', 'history-digest-mismatch');
172
313
  }
173
314
  const copies = await verifyHistoryCopies(projectRoot, loaded.index);
174
- for (const file of loaded.index.files) {
175
- if (file.kind !== 'state' && file.kind !== 'manifest')
176
- continue;
177
- const copy = copies.find((entry) => historyPathKey(entry.pathParts) === historyPathKey(file.copyPathParts));
178
- if (copy === undefined)
179
- historyFail(historyPathKey(file.copyPathParts), 'required copy was not verified.');
180
- const parsed = parseHistoryJson(requireContent(copy, 'required copy is missing.'), historyPathKey(file.copyPathParts));
181
- if (file.kind === 'state')
182
- validateHistoricalActivationState(parsed);
183
- else
184
- validateHistoricalSourceManifest(parsed);
315
+ const source = await readHistoricalSnapshotInventory(projectRoot, loaded.index);
316
+ if (canonicalSha256(link.sourceActiveChange) !== canonicalSha256(source.state.activeChange)) {
317
+ historyFail(historyPathKey(stateSnapshot.pathParts), 'sourceActiveChange contradicts the exact archived source pointer.', 'invalid-migration-successor');
185
318
  }
186
- const stateSnapshot = await captureHistoryFile(projectRoot, historicalActivationStatePathParts);
187
- const state = currentState(parseHistoryJson(requireContent(stateSnapshot, 'committed successor state is missing.'), historyPathKey(stateSnapshot.pathParts)), historyPathKey(stateSnapshot.pathParts));
319
+ if (source.state.activeChange && !source.sourceChangeMetadata) {
320
+ historyFail(historyPathKey(journal.historyIndexPathParts), 'the successor lacks its required preserved source-change metadata and tasks.', 'missing-historical-record');
321
+ }
322
+ const ancestors = await inspectAncestorHistory(projectRoot, source);
188
323
  if (canonicalSha256(state.identity) !== canonicalSha256(journal.targetIdentity) ||
189
324
  state.repository.id !== journal.successor.repositoryId || state.createdAt !== journal.successor.createdAt) {
190
325
  historyFail(historyPathKey(stateSnapshot.pathParts), 'active successor identity or stable local anchor contradicts the journal.', 'invalid-migration-successor');
191
326
  }
327
+ if (validLocalAnchor(source.state.repository.id) && source.state.repository.id !== state.repository.id) {
328
+ historyFail(historyPathKey(stateSnapshot.pathParts), 'successor replaced a valid protected source-local anchor.', 'invalid-migration-successor');
329
+ }
192
330
  const manifestSnapshot = await captureHistoryFile(projectRoot, historicalManifestPathParts);
193
331
  currentManifestIdentity(parseHistoryJson(requireContent(manifestSnapshot, 'committed active manifest is missing.'), historyPathKey(manifestSnapshot.pathParts)), historyPathKey(manifestSnapshot.pathParts));
194
332
  const records = await inspectActiveProofRecords(projectRoot, state);
@@ -202,46 +340,58 @@ export async function inspectActivationMigrationHistory(projectRoot) {
202
340
  historyFail(historyPathKey(migrationStateFilePathParts), `revalidation result for ${result.phaseId} has no corresponding current state references.`, 'invalid-migration-progress');
203
341
  }
204
342
  }
205
- return { status: 'committed', journal, index: loaded.index, state };
343
+ return {
344
+ status: 'committed', journal, index: loaded.index, state,
345
+ ancestorHistory: ancestors.references,
346
+ lifecycleObligations: [...lifecycleObligations(loaded.index, source), ...ancestors.obligations],
347
+ historicalSources: [...historicalSources(loaded.index, source), ...ancestors.historicalSources],
348
+ preconditions: [
349
+ await captureHistoryFile(projectRoot, migrationStateFilePathParts),
350
+ loaded.snapshot,
351
+ ...copies, ...ancestors.preconditions
352
+ ]
353
+ };
206
354
  }
207
355
  /** Project-read-only. This creates neither mutations nor approval, runtime IDs or timestamps. */
208
356
  export async function planActivationHistoryMigration(projectRoot, options = {}) {
209
357
  try {
210
358
  const stateSnapshot = await captureHistoryFile(projectRoot, historicalActivationStatePathParts);
211
359
  const journalSnapshot = await captureHistoryFile(projectRoot, migrationStateFilePathParts);
212
- if (journalSnapshot.content !== undefined) {
213
- const history = await inspectActivationMigrationHistory(projectRoot);
214
- if (history.status !== 'committed')
215
- historyFail('migration-state.json', 'declared journal disappeared during inspection.');
216
- return { status: 'current', state: history.state, history };
217
- }
218
360
  if (stateSnapshot.content === undefined) {
219
- const manifestSnapshot = await captureHistoryFile(projectRoot, historicalManifestPathParts);
220
- if (manifestSnapshot.content !== undefined) {
221
- const manifest = parseHistoryJson(manifestSnapshot.content, historyPathKey(manifestSnapshot.pathParts));
222
- if (isRecord(manifest) && isRecord(manifest.governance) && isHistoricalActivationIdentity(manifest.governance.activationIdentity)) {
223
- historyFail(historyPathKey(stateSnapshot.pathParts), 'the historical manifest has no required v1 activation state.', 'missing-historical-record');
224
- }
361
+ const orphaned = await activeActivationRecordsWithoutState(projectRoot);
362
+ if (orphaned.length > 0) {
363
+ historyFail(historyPathKey(stateSnapshot.pathParts), `required activation state is missing while active records remain: ${orphaned.map(historyPathKey).join(', ')}.`, 'missing-historical-record');
225
364
  }
226
365
  return { status: 'not-present' };
227
366
  }
228
367
  const raw = parseHistoryJson(stateSnapshot.content, historyPathKey(stateSnapshot.pathParts));
229
- if (isRecord(raw) && raw.schemaVersion === 2) {
368
+ if (journalSnapshot.content !== undefined && !(isRecord(raw) && isHistoricalV2ActivationIdentity(raw.identity))) {
369
+ const history = await inspectActivationMigrationHistory(projectRoot);
370
+ if (history.status !== 'committed')
371
+ historyFail('migration-state.json', 'declared journal disappeared during inspection.');
372
+ return { status: 'current', state: history.state, history };
373
+ }
374
+ if (isRecord(raw) && raw.schemaVersion === activationStateSchemaVersion) {
230
375
  const state = currentState(raw, historyPathKey(stateSnapshot.pathParts));
231
376
  migrationTargetIdentity(state.identity, 'activation-state.json.identity');
232
377
  const manifest = await captureHistoryFile(projectRoot, historicalManifestPathParts);
233
378
  currentManifestIdentity(parseHistoryJson(requireContent(manifest, 'active manifest is missing.'), historyPathKey(manifest.pathParts)), historyPathKey(manifest.pathParts));
234
379
  await inspectActiveProofRecords(projectRoot, state);
235
- return { status: 'current', state, history: { status: 'none' } };
380
+ return { status: 'current', state, history: await inspectActivationMigrationHistory(projectRoot) };
236
381
  }
237
- if (!isRecord(raw) || raw.schemaVersion !== 1 || !isHistoricalActivationIdentity(raw.identity)) {
238
- historyFail(historyPathKey(stateSnapshot.pathParts), 'only the exact versioned historical v1 representation has a successor lane.', 'unsupported-historical-identity');
382
+ if (!isRecord(raw) || !isHistoricalActivationIdentity(raw.identity) ||
383
+ raw.schemaVersion !== raw.identity.activationStateSchemaVersion) {
384
+ historyFail(historyPathKey(stateSnapshot.pathParts), 'only exact versioned historical v1/v2 representations have a successor lane.', 'unsupported-historical-identity');
239
385
  }
240
386
  const lane = packagedActivationSuccessorMigrations().find((entry) => canonicalSha256(entry.fromIdentity) === canonicalSha256(raw.identity) &&
241
387
  canonicalSha256(entry.toIdentity) === canonicalSha256(currentActivationIdentity));
242
388
  if (lane === undefined)
243
389
  historyFail(historyPathKey(stateSnapshot.pathParts), 'no exact packaged successor lane exists.', 'unsupported-historical-identity');
244
390
  const inventory = await readHistoricalActivationInventory(projectRoot, options);
391
+ if (canonicalSha256(inventory.state.identity) !== canonicalSha256(lane.fromIdentity) ||
392
+ !inventory.files.find((file) => file.kind === 'state')?.content.equals(stateSnapshot.content)) {
393
+ historyFail(historyPathKey(stateSnapshot.pathParts), 'source changed during preview; obtain a fresh check.', 'historical-source-changed');
394
+ }
245
395
  if (inventory.unreviewedRecords.length > 0) {
246
396
  return {
247
397
  status: 'blocked', reasonCode: 'unreviewed-historical-records',
@@ -249,6 +399,7 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
249
399
  unreviewedPathParts: inventory.unreviewedRecords.map((file) => [...file.pathParts])
250
400
  };
251
401
  }
402
+ const ancestors = await inspectAncestorHistory(projectRoot, inventory);
252
403
  const sourceFiles = inventory.files.map((file) => ({
253
404
  kind: file.kind, originalPathParts: [...file.pathParts], digest: file.digest, mode: file.mode
254
405
  }));
@@ -257,18 +408,20 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
257
408
  schemaVersion: 1, snapshotId, sourceIdentity: inventory.state.identity,
258
409
  files: sourceFiles.map((file) => ({ ...file, copyPathParts: activationHistoryCopyPathParts(snapshotId, file.originalPathParts) }))
259
410
  });
260
- const indexContent = Buffer.from(canonicalJson(index), 'utf8');
261
- const indexDigest = rawHistoryDigest(indexContent);
411
+ let indexContent = Buffer.from(canonicalJson(index), 'utf8');
412
+ let indexDigest = rawHistoryDigest(indexContent);
262
413
  const indexPath = activationHistoryIndexPathParts(snapshotId);
263
414
  const indexSnapshot = await captureHistoryFile(projectRoot, indexPath);
264
- const preconditions = [...inventory.preconditions, journalSnapshot, indexSnapshot];
415
+ const preconditions = uniqueHistoryPreconditions([...inventory.preconditions, ...ancestors.preconditions, journalSnapshot, indexSnapshot]);
265
416
  let historyDisposition = 'create';
266
417
  if (indexSnapshot.content !== undefined) {
267
418
  const existing = validateActivationHistoryIndex(parseHistoryJson(indexSnapshot.content, historyPathKey(indexPath)));
268
- if (!indexSnapshot.content.equals(indexContent) || canonicalSha256(existing) !== canonicalSha256(index)) {
419
+ if (canonicalSha256(existing) !== canonicalSha256(index)) {
269
420
  historyFail(historyPathKey(indexPath), 'existing immutable snapshot differs; force cannot replace history.', 'historical-destination-conflict');
270
421
  }
271
422
  preconditions.push(...await verifyHistoryCopies(projectRoot, index));
423
+ indexContent = indexSnapshot.content;
424
+ indexDigest = rawHistoryDigest(indexContent);
272
425
  historyDisposition = 'reuse';
273
426
  }
274
427
  else {
@@ -282,7 +435,7 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
282
435
  preconditions.push(snapshot);
283
436
  }
284
437
  }
285
- const requiredRetirements = index.files.filter((file) => ['evidence', 'plan', 'approval'].includes(file.kind)).map((file) => ({
438
+ const requiredRetirements = index.files.filter((file) => ['evidence', 'plan', 'approval', 'supersession', 'reconciliation', 'credential-policy'].includes(file.kind)).map((file) => ({
286
439
  pathParts: [...file.originalPathParts], digest: file.digest, copyPathParts: [...file.copyPathParts]
287
440
  }));
288
441
  const semanticPlan = {
@@ -292,10 +445,14 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
292
445
  preconditions: preconditionIdentities(preconditions), requiredRetirements,
293
446
  revalidationPhaseIds: [...migrationRevalidationPhaseIds],
294
447
  targetModes: { ...activationHistoryTargetModes },
448
+ ancestorHistory: ancestors.references,
449
+ lifecycleObligations: [...lifecycleObligations(index, inventory), ...ancestors.obligations],
295
450
  successor: {
296
451
  statePathParts: [...historicalActivationStatePathParts], journalPathParts: [...migrationStateFilePathParts],
297
- policy: 'fresh-local-anchor-no-inherited-proof', projectName: inventory.manifest.project.name,
298
- activeChange: inventory.state.activeChange
452
+ policy: 'preserve-valid-local-anchor-no-inherited-proof',
453
+ localRepositoryId: validLocalAnchor(inventory.state.repository.id) ? inventory.state.repository.id : null,
454
+ projectName: inventory.manifest.project.name,
455
+ activeChange: null, sourceActiveChange: inventory.state.activeChange
299
456
  }
300
457
  };
301
458
  return {
@@ -314,13 +471,13 @@ export function finalizeActivationHistoryMigration(plan, approvedPlanFingerprint
314
471
  historyDigest(approvedPlanFingerprint, 'approvedPlanFingerprint');
315
472
  const timestamp = historyTimestamp(now.toISOString(), 'migration finalization timestamp');
316
473
  validateActivationHistoryIndex(plan.index);
317
- const retirements = plan.index.files.filter((file) => ['evidence', 'plan', 'approval'].includes(file.kind)).map((file) => ({
474
+ const retirements = plan.index.files.filter((file) => ['evidence', 'plan', 'approval', 'supersession', 'reconciliation', 'credential-policy'].includes(file.kind)).map((file) => ({
318
475
  pathParts: file.originalPathParts, digest: file.digest, copyPathParts: file.copyPathParts
319
476
  }));
320
477
  if (canonicalSha256(plan.semanticPlan) !== plan.planDigest ||
321
478
  canonicalSha256(preconditionIdentities(plan.preconditions)) !== canonicalSha256(plan.semanticPlan.preconditions) ||
322
479
  canonicalSha256(plan.index) !== canonicalSha256(plan.semanticPlan.historyIndex) ||
323
- !plan.indexContent.equals(Buffer.from(canonicalJson(plan.index), 'utf8')) ||
480
+ canonicalSha256(parseHistoryJson(plan.indexContent, 'planned history index')) !== canonicalSha256(plan.index) ||
324
481
  rawHistoryDigest(plan.indexContent) !== plan.indexDigest || plan.indexDigest !== plan.semanticPlan.historyIndexDigest ||
325
482
  plan.historyDisposition !== plan.semanticPlan.historyDisposition ||
326
483
  canonicalSha256(plan.semanticPlan.targetModes) !== canonicalSha256(activationHistoryTargetModes) ||
@@ -335,14 +492,38 @@ export function finalizeActivationHistoryMigration(plan, approvedPlanFingerprint
335
492
  historyFail(historyPathKey(file.originalPathParts), 'planned historical bytes changed.', 'historical-plan-changed');
336
493
  }
337
494
  }
338
- const phases = {};
339
- for (const id of historicalPhaseIds)
340
- phases[id] = { state: 'pending', updatedAt: timestamp, evidence: [], approvals: [], blockers: [] };
341
- assertHistoricalPhasesComplete(phases);
495
+ const sourceState = plan.inventory.files.find((file) => file.kind === 'state');
496
+ const sourceManifest = plan.inventory.files.find((file) => file.kind === 'manifest');
497
+ if (!sourceState || !sourceManifest)
498
+ historyFail('migration plan', 'required source records are missing.', 'historical-plan-changed');
499
+ const originalState = validateReadableHistoricalActivationState(parseHistoryJson(sourceState.content, 'source state'));
500
+ const originalManifest = validateHistoricalSourceManifest(parseHistoryJson(sourceManifest.content, 'source manifest'));
501
+ const expectedAnchor = validLocalAnchor(originalState.repository.id) ? originalState.repository.id : null;
502
+ const lane = packagedActivationSuccessorMigrations().find((entry) => entry.id === plan.semanticPlan.laneId);
503
+ if (!lane || canonicalSha256(lane.fromIdentity) !== canonicalSha256(plan.index.sourceIdentity) ||
504
+ canonicalSha256(lane.toIdentity) !== canonicalSha256(plan.semanticPlan.targetIdentity) ||
505
+ canonicalSha256(originalState) !== canonicalSha256(plan.inventory.state) ||
506
+ canonicalSha256(originalManifest) !== canonicalSha256(plan.inventory.manifest) ||
507
+ plan.semanticPlan.successor.localRepositoryId !== expectedAnchor ||
508
+ plan.semanticPlan.successor.projectName !== originalManifest.project.name ||
509
+ plan.semanticPlan.successor.activeChange !== null ||
510
+ canonicalSha256(plan.semanticPlan.successor.sourceActiveChange) !== canonicalSha256(originalState.activeChange)) {
511
+ historyFail('migration plan', 'source mapping differs from the exact reviewed source bytes.', 'historical-plan-changed');
512
+ }
513
+ const phases = Object.fromEntries(phaseIds.map((id) => [id, {
514
+ state: 'pending', updatedAt: timestamp, evidence: [], approvals: [], blockers: []
515
+ }]));
342
516
  const successor = validateUserActivationState({
343
- schemaVersion: 2, identity: plan.semanticPlan.targetIdentity,
344
- repository: { id: `local:${randomUUID()}`, name: plan.semanticPlan.successor.projectName, defaultBranch: 'develop' },
517
+ schemaVersion: activationStateSchemaVersion, identity: plan.semanticPlan.targetIdentity,
518
+ repository: { id: expectedAnchor ?? `local:${randomUUID()}`, name: plan.semanticPlan.successor.projectName, defaultBranch: 'develop' },
345
519
  activeChange: plan.semanticPlan.successor.activeChange,
520
+ successorHistory: {
521
+ schemaVersion: 1, snapshotId: plan.index.snapshotId,
522
+ journalPathParts: [...migrationStateFilePathParts],
523
+ historyIndexPathParts: activationHistoryIndexPathParts(plan.index.snapshotId),
524
+ historyIndexDigest: plan.indexDigest,
525
+ sourceActiveChange: originalState.activeChange
526
+ },
346
527
  applicability: { statePath: 'none', privateStagingDast: 'unknown', credentialRequired: 'unknown' },
347
528
  phases, createdAt: timestamp, updatedAt: timestamp
348
529
  });
@@ -1 +1 @@
1
- {"version":3,"file":"migration-history.js","sourceRoot":"","sources":["../../src/governance-activation/migration-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-history.js","sourceRoot":"","sources":["../../src/governance-activation/migration-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EACL,QAAQ,EACT,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACtH,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AACzJ,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EACL,qCAAqC,EACtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EAAE,8BAA8B,EAAE,+BAA+B,EACvF,2BAA2B,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,2BAA2B,EAC1H,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,2BAA2B,EAC1H,6BAA6B,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,8BAA8B,EAC1H,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAAE,2BAA2B,EAAE,iCAAiC,EAAE,+BAA+B,EACnH,yBAAyB,EAAE,yCAAyC,EAAE,gCAAgC,EAEvG,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAoGxE,SAAS,iBAAiB,CAAC,KAA6B,EAAE,SAAwC;IAChG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;IAC7E,OAAO,CAAC;YACN,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,SAAS,CAAC,oBAAoB,EAAE,kBAAkB,IAAI,KAAK,CAAC,cAAc;YAC1F,YAAY,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE;YACjD,QAAQ,EAAE,SAAS,CAAC,oBAAoB,IAAI,IAAI;YAChD,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;YACpE,cAAc,EAAE,QAAQ,EAAE,MAAM,IAAI,IAAI;SACzC,CAAC,CAAC;AACL,CAAC;AAWD,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,8EAA8E,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA6B,EAAE,SAAwC;IAEvE,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACvC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;YAClE,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YAC3C,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC;YAC1D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,4BAA4B;SAClE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACV,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,gCAAgC,CAC9C,WAAqD;IAErD,IAAI,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU;QACzF,CAAC,CAAC,WAAW,UAAU,CAAC,UAAU,sIAAsI;QACxK,CAAC,CAAC,WAAW,UAAU,CAAC,UAAU,oCAAoC,UAAU,CAAC,SAAS,CAAC,UAAU,UAAU,UAAU,CAAC,SAAS,CAAC,YAAY,6IAA6I,CAAC,CAAC;IACjS,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACxI,CAAC;AAED,SAAS,cAAc,CAAC,QAA6B,EAAE,MAAc;IACnE,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACtH,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,QAAgB;IACpD,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC;QAAC,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAClD,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC;QACrE,OAAO,WAAW,CAAC,QAAQ,EAAE,8BAA8B,KAAK,CAAC,OAAO,EAAE,EAAE,6BAA6B,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc,EAAE,QAAgB;IAC/D,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IACxC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,KAAK,YAAY,eAAe,CAAC;YAAE,MAAM,KAAK,CAAC;QACrD,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,KAAK,aAAa;QACzF,QAAQ,CAAC,UAAU,CAAC,kBAAkB,KAAK,SAAS;QAAE,WAAW,CAAC,QAAQ,EAAE,4CAA4C,EAAE,4BAA4B,CAAC,CAAC;IAC1J,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,QAAQ,gCAAgC,CAAC,CAAC;AAC/G,CAAC;AAED,SAAS,sBAAsB,CAAC,aAA6C;IAC3E,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAA+B,EAAE,CAAC,CAAC;QACnE,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;QAClC,IAAI,EAAE,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QACxD,MAAM,EAAE,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAClF,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;KAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,0BAA0B,CAAC,aAA6C;IAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IACtD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;YACxF,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS;YAChE,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACtH,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,kEAAkE,EAAE,2BAA2B,CAAC,CAAC;QACnJ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,KAAwB;IAC1E,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;YAAE,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,2BAA2B,EAAE,qBAAqB,CAAC,CAAC;QACnH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,WAAmB,EAAE,UAAkB;IAEvC,MAAM,KAAK,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,8BAA8B,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU;QAAE,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,kCAAkC,EAAE,yBAAyB,CAAC,CAAC;IACvI,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;IACpF,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;AACnH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,KAA6B;IACnF,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;QACjF,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9C,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,mDAAmD,EAAE,yBAAyB,CAAC,CAAC;QAClI,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,WAAmB,EAAE,SAAwC;IACjG,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACnG,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9H,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,8EAA8E,EAAE,+BAA+B,CAAC,CAAC;IAC9K,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB;QAC9C,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3F,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,+EAA+E,EAAE,yBAAyB,CAAC,CAAC;IACzK,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,eAAe;QAAE,WAAW,CAAC,kBAAkB,EAAE,wDAAwD,EAAE,8BAA8B,CAAC,CAAC;IACtJ,IAAI,SAAS,CAAC,oBAAoB;QAChC,eAAe,CAAC,SAAS,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChH,CAAC,eAAe,CAAC,SAAS,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5G,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAClG,WAAW,CAAC,kBAAkB,EAAE,4EAA4E,EAAE,8BAA8B,CAAC,CAAC;IAChJ,CAAC;IACD,OAAO;QACL,UAAU,EAAE,CAAC;gBACX,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;gBAChF,qBAAqB,EAAE,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM;aAC7F,CAAC;QACF,WAAW,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QACvD,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QAC1D,aAAa,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mCAAmC,CAAC,WAAmB;IAC3E,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,KAAK,MAAM,SAAS,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,2BAA2B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAM,2BAA2B,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC1F,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,SAAS;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACzD,IAAI,MAAM,CAAC,aAAa,KAAK,yBAAyB,CAAC,yBAAyB;gBAC9E,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,eAAe,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBAClF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI;QAClB,CAAC,GAAG,2BAA2B,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,uBAAuB,CAAC,EAAE,CAAC,YAAY,EAAE,0BAA0B,CAAC;KACrI,EAAE,CAAC;QACF,IAAI,CAAC,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wCAAwC,CAC5D,WAAmB,EAAE,IAAwC,EAAE,QAA0C;IAEzG,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5G,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,WAAW;QACxE,CAAC,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,qGAAqG,EAAE,6BAA6B,CAAC,CAAC;IACxL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,WAAmB,EAAE,KAA0B;IACtF,iFAAiF;IACjF,KAAK,MAAM,SAAS,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,2BAA2B,CAAC,WAAW,EAAE,SAAS,CAAC;YAAE,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9H,CAAC;IACD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,2BAA2B,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC;QACrE,OAAO,WAAW,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;QAC1D,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;YAAE,WAAW,CAAC,qBAAqB,EAAE,iCAAiC,MAAM,CAAC,UAAU,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAC/J,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,UAAU,CAAC,EAAE;YACpD,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACvF,WAAW,CAAC,uBAAuB,MAAM,CAAC,UAAU,OAAO,EAAE,0DAA0D,EAAE,uBAAuB,CAAC,CAAC;QACpJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9G,WAAW,CAAC,gCAAgC,OAAO,EAAE,EAAE,oDAAoD,EAAE,uBAAuB,CAAC,CAAC;QACxI,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACvC,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,gCAAgC,OAAO,aAAa,CAAC,CAAC;YAC5F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU;gBACtE,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBAC9E,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7D,WAAW,CAAC,gCAAgC,OAAO,EAAE,EAAE,wDAAwD,EAAE,uBAAuB,CAAC,CAAC;YAC5I,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,2BAA2B,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,iDAAiD,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/H,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvF,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,mCAAmC,EAAE,uBAAuB,CAAC,CAAC;YACjI,MAAM,8BAA8B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5D,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,KAAK,CAAC;YACrE,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,WAAW,CAAC,gCAAgC,OAAO,EAAE,EAAE,oDAAoD,EAAE,uBAAuB,CAAC,CAAC;QACxI,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,eAAe,CAAC,EAAE,EAAE,gCAAgC,OAAO,YAAY,CAAC,CAAC;YACzE,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO;gBAAE,WAAW,CAAC,gCAAgC,OAAO,EAAE,EAAE,+DAA+D,EAAE,uBAAuB,CAAC,CAAC;QACtL,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,WAAmB;IACzE,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;IAChG,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7F,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBAC5D,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC3D,WAAW,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,6DAA6D,EAAE,2BAA2B,CAAC,CAAC;YACvJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,aAAa,EAAE,uCAAuC,CAAC,EAChH,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACpC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,KAAK,OAAO,CAAC,kBAAkB;QAC3G,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,cAAc,CAAC,2BAA2B,CAAC;QACrF,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC/F,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,6EAA6E,EAAE,6BAA6B,CAAC,CAAC;IACrK,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,kBAAkB;QAC9C,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3F,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,oEAAoE,EAAE,yBAAyB,CAAC,CAAC;IAC9J,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5F,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,mEAAmE,EAAE,6BAA6B,CAAC,CAAC;IAC3J,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC9D,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,8EAA8E,EAAE,2BAA2B,CAAC,CAAC;IAC1K,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpE,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC;QAC7E,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC5G,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,2EAA2E,EAAE,6BAA6B,CAAC,CAAC;IACnK,CAAC;IACD,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACvG,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,2DAA2D,EAAE,6BAA6B,CAAC,CAAC;IACnJ,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;IAC5F,uBAAuB,CAAC,gBAAgB,CAAC,cAAc,CAAC,gBAAgB,EAAE,uCAAuC,CAAC,EAChH,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACpE,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;YAAE,SAAS;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,uFAAuF;QACvF,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/D,GAAG,CAAC,UAAU,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;YACpH,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YAClG,WAAW,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,2BAA2B,MAAM,CAAC,OAAO,iDAAiD,EAAE,4BAA4B,CAAC,CAAC;QACrL,CAAC;IACH,CAAC;IACD,OAAO;QACL,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK;QACxD,eAAe,EAAE,SAAS,CAAC,UAAU;QACrC,oBAAoB,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC;QAC/F,iBAAiB,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAC/F,aAAa,EAAE;YACb,MAAM,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC;YAClE,MAAM,CAAC,QAAQ;YACf,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,aAAa;SACtC;KACF,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,WAAmB,EAAE,OAAO,GAA+B,EAAE;IAE7D,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;QAChG,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QAC3F,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,mCAAmC,CAAC,WAAW,CAAC,CAAC;YACxE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EACjD,qEAAqE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC/G,2BAA2B,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QACnC,CAAC;QACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7F,IAAI,eAAe,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,gCAAgC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAChH,MAAM,OAAO,GAAG,MAAM,iCAAiC,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;gBAAE,WAAW,CAAC,sBAAsB,EAAE,iDAAiD,CAAC,CAAC;YAC3H,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;YACxE,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YACzE,uBAAuB,CAAC,KAAK,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;YACpF,uBAAuB,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,6BAA6B,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACnI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACtC,MAAM,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC,WAAW,CAAC,EAAE,CAAC;QACrG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjE,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;YAClE,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,8EAA8E,EAAE,iCAAiC,CAAC,CAAC;QAC1K,CAAC;QACD,MAAM,IAAI,GAAG,qCAAqC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;YACrE,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACpF,IAAI,IAAI,KAAK,SAAS;YAAE,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,0CAA0C,EAAE,iCAAiC,CAAC,CAAC;QAC5J,MAAM,SAAS,GAAG,MAAM,iCAAiC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChF,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YAClF,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChG,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,sDAAsD,EAAE,2BAA2B,CAAC,CAAC;QAC5I,CAAC;QACD,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,+BAA+B;gBAC9D,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/C,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,yIAAyI,CAAC;gBAC7K,mBAAmB,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;aACpF,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;SAC9F,CAAC,CAAC,CAAC;QACJ,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,8BAA8B,CAAC;YAC3C,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ;YACtE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;SACnI,CAAC,CAAC;QACH,IAAI,YAAY,GAAW,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,0BAA0B,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;QAC3I,IAAI,kBAAkB,GAAuB,QAAQ,CAAC;QACtD,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,8BAA8B,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpH,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,oEAAoE,EAAE,iCAAiC,CAAC,CAAC;YAClJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrE,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC;YACrC,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC7C,kBAAkB,GAAG,OAAO,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,yGAAyG,EAAE,6BAA6B,CAAC,CAAC;YACnL,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3E,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;oBAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,+CAA+C,EAAE,iCAAiC,CAAC,CAAC;gBACxK,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5H,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;SACpG,CAAC,CAAC,CAAC;QACJ,MAAM,YAAY,GAAoC;YACpD,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC;YAChG,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,EAAE,GAAG,yBAAyB,EAAE;YACvG,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB;YACxE,aAAa,EAAE,sBAAsB,CAAC,aAAa,CAAC,EAAE,mBAAmB;YACzE,oBAAoB,EAAE,CAAC,GAAG,6BAA6B,CAAC;YACxD,WAAW,EAAE,EAAE,GAAG,4BAA4B,EAAE;YAChD,eAAe,EAAE,SAAS,CAAC,UAAU;YACrC,oBAAoB,EAAE,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC;YAC3F,SAAS,EAAE;gBACT,cAAc,EAAE,CAAC,GAAG,kCAAkC,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAG,2BAA2B,CAAC;gBAC3G,MAAM,EAAE,gDAAgD;gBACxD,iBAAiB,EAAE,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;gBACzG,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;gBAC5C,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY;aACrE;SACF,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,SAAS;YACtF,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB;SACzF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,sBAAsB,CAAC;YAAE,MAAM,KAAK,CAAC;QAC5D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAChF,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,kCAAkC,CAChD,IAAwC,EAAE,uBAA+B,EAAE,GAAS;IAEpF,aAAa,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,kCAAkC,CAAC,CAAC;IAC1F,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACnD,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5H,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa;KAC1F,CAAC,CAAC,CAAC;IACJ,IAAI,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU;QACxD,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;QAChH,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QAC/E,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7G,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC,kBAAkB;QACrH,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,YAAY,CAAC,kBAAkB;QAChE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,eAAe,CAAC,4BAA4B,CAAC;QAChG,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,KAAK,eAAe,CAAC,6BAA6B,CAAC;QAC1G,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC;QACpG,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7E,WAAW,CAAC,gBAAgB,EAAE,iDAAiD,EAAE,yBAAyB,CAAC,CAAC;IAC9G,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChI,IAAI,MAAM,KAAK,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1G,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,mCAAmC,EAAE,yBAAyB,CAAC,CAAC;QACtH,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACrF,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc;QAAE,WAAW,CAAC,gBAAgB,EAAE,sCAAsC,EAAE,yBAAyB,CAAC,CAAC;IACtI,MAAM,aAAa,GAAG,yCAAyC,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACvH,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvH,MAAM,cAAc,GAAG,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1G,MAAM,IAAI,GAAG,qCAAqC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5G,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAC5F,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;QACtF,eAAe,CAAC,aAAa,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACxE,eAAe,CAAC,gBAAgB,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,iBAAiB,KAAK,cAAc;QAChE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,KAAK,gBAAgB,CAAC,OAAO,CAAC,IAAI;QACzE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,KAAK,IAAI;QACjD,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAClH,WAAW,CAAC,gBAAgB,EAAE,8DAA8D,EAAE,yBAAyB,CAAC,CAAC;IAC3H,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1D,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;SAClF,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,SAAS,GAAG,2BAA2B,CAAC;QAC5C,aAAa,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc;QACvF,UAAU,EAAE,EAAE,EAAE,EAAE,cAAc,IAAI,SAAS,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE;QACtI,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY;QACtD,gBAAgB,EAAE;YAChB,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACnD,gBAAgB,EAAE,CAAC,GAAG,2BAA2B,CAAC;YAClD,qBAAqB,EAAE,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7E,kBAAkB,EAAE,IAAI,CAAC,WAAW;YACpC,kBAAkB,EAAE,aAAa,CAAC,YAAY;SAC/C;QACD,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE;QAClG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;KACnD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,wBAAwB,CAAC;QACvC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;QACrF,qBAAqB,EAAE,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,WAAW;QACnH,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,QAAQ,EAAE,uBAAuB;QACtG,SAAS,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;QAC1E,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE;QAC5D,YAAY,EAAE;YACZ,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;YACvC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC7D,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAClE,UAAU,EAAE,wGAAwG;SACrH;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,IAAI,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAChI,IAAI,MAAM,KAAK,SAAS;gBAAE,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,+CAA+C,CAAC,CAAC;YAC/H,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvF,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW;aAChD,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAChF,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY;SAC1F,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,mBAAmB;QAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5H,SAAS,CAAC,IAAI,CACZ;QACE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,kCAAkC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;QACpG,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc;KACnD,EACD;QACE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,2BAA2B,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;QAC3F,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,gBAAgB;KACrD,CACF,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7H,CAAC"}
@@ -1,7 +1,7 @@
1
- import { type HistoricalActivationStateMigration } from './compatibility.js';
2
1
  import { type ActivationCompatibilityMap } from '../domain/governance/policy/identity.js';
3
2
  import type { ActivationIdentity, PhaseId } from '../domain/governance/activation/types.js';
4
- import { type ProjectFileMutation, type ProjectFileSnapshot } from '../adapters/filesystem/project-transaction.js';
3
+ import type { ProjectFileMutation, ProjectFileSnapshot } from '../adapters/filesystem/project-transaction.js';
4
+ import type { HistoricalActivationStateMigration } from './compatibility.js';
5
5
  export declare const updateFailureInjectionEnv: 'LIFTOFF_UPDATE_INJECT_FAILURE';
6
6
  export type ActivationStateMigrationPlan = {
7
7
  status: 'not-present' | 'current';
@@ -9,6 +9,7 @@ export type ActivationStateMigrationPlan = {
9
9
  preconditions: readonly ProjectFileSnapshot[];
10
10
  report: ActivationStateMigrationReport;
11
11
  } | {
12
+ /** Retained for API compatibility; installed releases never mint an in-place identity relabel. */
12
13
  status: 'migrate';
13
14
  mutations: readonly ProjectFileMutation[];
14
15
  preconditions: readonly ProjectFileSnapshot[];
@@ -24,7 +25,7 @@ export type ActivationStateMigrationPlan = {
24
25
  mutations: readonly ProjectFileMutation[];
25
26
  preconditions: readonly ProjectFileSnapshot[];
26
27
  report: ActivationStateMigrationReport & {
27
- reasonCode: 'ad-hoc-state' | 'future-state-schema' | 'unsupported-activation-identity' | 'malformed-state' | 'reconciliation-conflict';
28
+ reasonCode: 'ad-hoc-state' | 'future-state-schema' | 'unsupported-activation-identity' | 'malformed-state' | 'reconciliation-conflict' | 'missing-historical-record';
28
29
  issues: readonly string[];
29
30
  };
30
31
  };
@@ -38,8 +39,10 @@ export interface ActivationStateMigrationReport {
38
39
  diagnosticOnly?: boolean;
39
40
  }
40
41
  export interface ActivationStateMigrationMappingInput {
42
+ /** Diagnostic legacy inputs cannot extend installed successor-lane authority. */
41
43
  compatibility?: ActivationCompatibilityMap;
42
44
  historicalStateMigrations?: readonly HistoricalActivationStateMigration[];
43
45
  }
44
- export declare function planHistoricalActivationStateMigration(projectRoot: string, nowIso?: string, mappingInput?: ActivationStateMigrationMappingInput): Promise<ActivationStateMigrationPlan>;
46
+ /** Read-only diagnostic compatibility. Actual successors use the reviewed history transaction. */
47
+ export declare function planHistoricalActivationStateMigration(projectRoot: string, _nowIso?: string, _mappingInput?: ActivationStateMigrationMappingInput): Promise<ActivationStateMigrationPlan>;
45
48
  export declare function activationStateMigrationFingerprint(content: string | Buffer): string;