@msn-control/liftoff 0.9.8 → 0.10.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 (107) hide show
  1. package/DEVELOPER.md +142 -0
  2. package/README.md +26 -18
  3. package/assets/governance/single-maintainer-gitflow/policy.md +62 -13
  4. package/dist/args.js +21 -0
  5. package/dist/args.js.map +1 -1
  6. package/dist/artifact-lifecycle.d.ts +1 -1
  7. package/dist/artifact-lifecycle.js +5 -0
  8. package/dist/artifact-lifecycle.js.map +1 -1
  9. package/dist/commands.js +355 -13
  10. package/dist/commands.js.map +1 -1
  11. package/dist/file-system.js +100 -13
  12. package/dist/file-system.js.map +1 -1
  13. package/dist/governance-activation/activation-state.d.ts +32 -0
  14. package/dist/governance-activation/activation-state.js +165 -0
  15. package/dist/governance-activation/activation-state.js.map +1 -0
  16. package/dist/governance-activation/approvals.d.ts +188 -0
  17. package/dist/governance-activation/approvals.js +508 -0
  18. package/dist/governance-activation/approvals.js.map +1 -0
  19. package/dist/governance-activation/canonical-json.d.ts +3 -0
  20. package/dist/governance-activation/canonical-json.js +36 -0
  21. package/dist/governance-activation/canonical-json.js.map +1 -0
  22. package/dist/governance-activation/commands.d.ts +10 -0
  23. package/dist/governance-activation/commands.js +1023 -0
  24. package/dist/governance-activation/commands.js.map +1 -0
  25. package/dist/governance-activation/compatibility.d.ts +68 -0
  26. package/dist/governance-activation/compatibility.js +447 -0
  27. package/dist/governance-activation/compatibility.js.map +1 -0
  28. package/dist/governance-activation/credentials.d.ts +160 -0
  29. package/dist/governance-activation/credentials.js +403 -0
  30. package/dist/governance-activation/credentials.js.map +1 -0
  31. package/dist/governance-activation/doctor.d.ts +10 -0
  32. package/dist/governance-activation/doctor.js +379 -0
  33. package/dist/governance-activation/doctor.js.map +1 -0
  34. package/dist/governance-activation/evidence.d.ts +49 -0
  35. package/dist/governance-activation/evidence.js +246 -0
  36. package/dist/governance-activation/evidence.js.map +1 -0
  37. package/dist/governance-activation/graph.d.ts +397 -0
  38. package/dist/governance-activation/graph.js +441 -0
  39. package/dist/governance-activation/graph.js.map +1 -0
  40. package/dist/governance-activation/identity.d.ts +35 -0
  41. package/dist/governance-activation/identity.js +89 -0
  42. package/dist/governance-activation/identity.js.map +1 -0
  43. package/dist/governance-activation/index.d.ts +18 -0
  44. package/dist/governance-activation/index.js +19 -0
  45. package/dist/governance-activation/index.js.map +1 -0
  46. package/dist/governance-activation/migration.d.ts +44 -0
  47. package/dist/governance-activation/migration.js +268 -0
  48. package/dist/governance-activation/migration.js.map +1 -0
  49. package/dist/governance-activation/readiness.d.ts +23 -0
  50. package/dist/governance-activation/readiness.js +158 -0
  51. package/dist/governance-activation/readiness.js.map +1 -0
  52. package/dist/governance-activation/reconciliation.d.ts +11 -0
  53. package/dist/governance-activation/reconciliation.js +58 -0
  54. package/dist/governance-activation/reconciliation.js.map +1 -0
  55. package/dist/governance-activation/release-integrity.d.ts +11 -0
  56. package/dist/governance-activation/release-integrity.js +49 -0
  57. package/dist/governance-activation/release-integrity.js.map +1 -0
  58. package/dist/governance-activation/seed-lifecycle.d.ts +116 -0
  59. package/dist/governance-activation/seed-lifecycle.js +609 -0
  60. package/dist/governance-activation/seed-lifecycle.js.map +1 -0
  61. package/dist/governance-activation/source-of-truth.d.ts +164 -0
  62. package/dist/governance-activation/source-of-truth.js +986 -0
  63. package/dist/governance-activation/source-of-truth.js.map +1 -0
  64. package/dist/governance-activation/task-projection.d.ts +21 -0
  65. package/dist/governance-activation/task-projection.js +75 -0
  66. package/dist/governance-activation/task-projection.js.map +1 -0
  67. package/dist/governance-activation/transitions.d.ts +163 -0
  68. package/dist/governance-activation/transitions.js +2128 -0
  69. package/dist/governance-activation/transitions.js.map +1 -0
  70. package/dist/governance-activation/type-contract.d.ts +1 -0
  71. package/dist/governance-activation/type-contract.js +27 -0
  72. package/dist/governance-activation/type-contract.js.map +1 -0
  73. package/dist/governance-activation/types.d.ts +390 -0
  74. package/dist/governance-activation/types.js +108 -0
  75. package/dist/governance-activation/types.js.map +1 -0
  76. package/dist/governance-activation/validators.d.ts +17 -0
  77. package/dist/governance-activation/validators.js +1305 -0
  78. package/dist/governance-activation/validators.js.map +1 -0
  79. package/dist/init-filesystem.js +5 -1
  80. package/dist/init-filesystem.js.map +1 -1
  81. package/dist/planner.js +3 -3
  82. package/dist/planner.js.map +1 -1
  83. package/dist/power-apps-templates.js +14 -1
  84. package/dist/power-apps-templates.js.map +1 -1
  85. package/dist/process-runner.d.ts +3 -0
  86. package/dist/process-runner.js +68 -10
  87. package/dist/process-runner.js.map +1 -1
  88. package/dist/repository-governance.d.ts +13 -3
  89. package/dist/repository-governance.js +385 -52
  90. package/dist/repository-governance.js.map +1 -1
  91. package/dist/telemetry/contract.d.ts +1 -1
  92. package/dist/telemetry/contract.js +6 -0
  93. package/dist/telemetry/contract.js.map +1 -1
  94. package/dist/templates.js +320 -25
  95. package/dist/templates.js.map +1 -1
  96. package/dist/types.d.ts +14 -6
  97. package/docs/cli-reference.md +60 -12
  98. package/docs/configuration-and-manifests.md +40 -16
  99. package/docs/existing-repositories.md +22 -11
  100. package/docs/getting-started.md +46 -10
  101. package/docs/prerequisites.md +5 -0
  102. package/docs/project-structure.md +34 -5
  103. package/docs/repository-governance.md +200 -203
  104. package/docs/safety-and-consent.md +29 -2
  105. package/docs/troubleshooting.md +74 -4
  106. package/docs/workloads.md +1 -1
  107. package/package.json +2 -1
@@ -3,8 +3,11 @@ import { access, chmod, lstat, mkdir, readdir, readFile, realpath, rename, rmdir
3
3
  import path from 'node:path';
4
4
  import { getApiStack, canonicalizeCodingAgents, getEnvironment, getGovernanceProfile, getCodingAgent, getPattern, getProvider, getProjectType, getSpecWorkflow, listRegions } from './catalogs.js';
5
5
  import { validateFrameworkInstallation } from './framework-validation.js';
6
- import { isManagedCoreLogicalName, legacyProvisioningGroup } from './artifact-lifecycle.js';
6
+ import { isManagedCoreLogicalName, managedCoreLogicalNames, legacyProvisioningGroup } from './artifact-lifecycle.js';
7
7
  import { governanceArtifactPaths, governancePolicyVersion } from './repository-governance.js';
8
+ import { currentActivationIdentity } from './governance-activation/graph.js';
9
+ import { validateActivationIdentity } from './governance-activation/validators.js';
10
+ import { validateGovernanceCompatibilityMetadata } from './governance-activation/compatibility.js';
8
11
  export class FileSystemError extends Error {
9
12
  constructor(message) {
10
13
  super(message);
@@ -142,7 +145,7 @@ export async function writeArtifacts(targetRoot, artifacts) {
142
145
  await writeProjectFile(targetRoot, artifact.pathParts, artifact.content);
143
146
  }
144
147
  }
145
- export const SUPPORTED_MANIFEST_VERSIONS = [2, 3, 4, 5, 6];
148
+ export const SUPPORTED_MANIFEST_VERSIONS = [2, 3, 4, 5, 6, 7];
146
149
  // seed entries recorded by 0.2.0 manifests; dropped on read so archiving the
147
150
  // seeded change is a non-event for validate, update, and doctor
148
151
  const LEGACY_SEED_LOGICAL_NAMES = new Set([
@@ -151,6 +154,7 @@ const LEGACY_SEED_LOGICAL_NAMES = new Set([
151
154
  'openspec-seed-proposal',
152
155
  'openspec-seed-design',
153
156
  'openspec-seed-tasks',
157
+ 'openspec-seed-spec',
154
158
  'openspec-spec-placeholder',
155
159
  'spec-kit-constitution',
156
160
  'specs-placeholder'
@@ -185,10 +189,12 @@ export async function loadManifest(projectRoot) {
185
189
  throw new FileSystemError('Manifest artifactVersion must be an integer.');
186
190
  }
187
191
  if (!SUPPORTED_MANIFEST_VERSIONS.includes(artifactVersion)) {
188
- throw new FileSystemError(`Unsupported manifest artifactVersion ${JSON.stringify(artifactVersion)}; this CLI supports version ${SUPPORTED_MANIFEST_VERSIONS.join(', ')}. ` +
189
- 'Regenerate the project with this CLI or use the Liftoff version that generated it.');
192
+ throw new FileSystemError(`Unsupported manifest artifactVersion ${JSON.stringify(artifactVersion)}: found ${JSON.stringify(artifactVersion)}; ` +
193
+ `supported values are ${SUPPORTED_MANIFEST_VERSIONS.join(', ')}; write version is 7. ` +
194
+ `Minimum Liftoff ${currentActivationIdentity.liftoffVersion} is required for manifest v7. ` +
195
+ 'Regenerate the project with this CLI, upgrade the CLI for future manifests, or use the Liftoff version that generated this project; no downgrade or write was performed.');
190
196
  }
191
- if (artifactVersion === 6) {
197
+ if (artifactVersion === 6 || artifactVersion === 7) {
192
198
  assertOnlyFields(raw, [
193
199
  'artifactVersion',
194
200
  'generatedBy',
@@ -224,10 +230,10 @@ export async function loadManifest(projectRoot) {
224
230
  let managedArtifacts;
225
231
  let projectArtifacts;
226
232
  let filteredLegacySeedOwnership = false;
227
- if (artifactVersion === 6) {
233
+ if (artifactVersion === 6 || artifactVersion === 7) {
228
234
  managedArtifacts = normalizeManifestManagedArtifacts(raw.managedArtifacts, 'Manifest.managedArtifacts');
229
235
  projectArtifacts = normalizeManifestProjectArtifacts(raw.projectArtifacts);
230
- validateV6ArtifactAuthority(managedArtifacts, projectArtifacts);
236
+ validateV6AndV7ArtifactAuthority(managedArtifacts, projectArtifacts);
231
237
  }
232
238
  else {
233
239
  const normalizedArtifacts = normalizeManifestManagedArtifacts(raw.artifacts, 'Manifest.artifacts');
@@ -606,17 +612,47 @@ function normalizeManifestGovernance(value, artifactVersion) {
606
612
  }
607
613
  return { profile: profile.id, state };
608
614
  }
609
- assertOnlyFields(value, ['profile', 'policyVersion', 'state'], 'Manifest.governance');
615
+ assertOnlyFields(value, artifactVersion === 7
616
+ ? ['profile', 'policyVersion', 'state', 'activationIdentity']
617
+ : ['profile', 'policyVersion', 'state'], 'Manifest.governance');
610
618
  const policyVersion = requiredString(value, 'policyVersion', 'Manifest.governance');
611
619
  if (!/^[1-9]\d*$/.test(policyVersion)) {
612
620
  throw new FileSystemError('Manifest governance policyVersion must be a positive integer.');
613
621
  }
614
- if (Number(policyVersion) > Number(governancePolicyVersion)) {
615
- throw new FileSystemError(`Manifest governance policyVersion cannot be newer than ${governancePolicyVersion}.`);
622
+ const supportedPolicyVersions = artifactVersion === 7
623
+ ? [governancePolicyVersion]
624
+ : ['1', '2', '3', '4', '5', governancePolicyVersion];
625
+ if (!supportedPolicyVersions.includes(policyVersion)) {
626
+ throw new FileSystemError(`Manifest governance policyVersion cannot be newer than ${governancePolicyVersion}. ` +
627
+ `Unsupported Manifest.governance.policyVersion: found ${JSON.stringify(policyVersion)}; ` +
628
+ `supported values for artifactVersion ${artifactVersion} are ${supportedPolicyVersions.map((value) => JSON.stringify(value)).join(', ')}. ` +
629
+ `Minimum Liftoff ${currentActivationIdentity.liftoffVersion} is required for policy ${governancePolicyVersion}; ` +
630
+ 'upgrade the CLI for future policy identities or restore a supported manifest without writing.');
631
+ }
632
+ if (artifactVersion === 7 && policyVersion !== governancePolicyVersion) {
633
+ throw new FileSystemError(`Manifest governance policyVersion must be ${governancePolicyVersion} for artifactVersion 7.`);
616
634
  }
617
635
  if (state !== 'handoff-generated' && state !== 'handoff-partial') {
618
636
  throw new FileSystemError('Enabled manifest governance requires handoff-generated or handoff-partial state.');
619
637
  }
638
+ if (artifactVersion === 7) {
639
+ let activationIdentity;
640
+ try {
641
+ activationIdentity = validateActivationIdentity(value.activationIdentity);
642
+ }
643
+ catch (error) {
644
+ throw new FileSystemError(`Manifest governance activationIdentity is invalid: ${errorMessage(error)}`);
645
+ }
646
+ if (activationIdentity.policyVersion !== policyVersion) {
647
+ throw new FileSystemError('Manifest governance activationIdentity.policyVersion must match policyVersion.');
648
+ }
649
+ return {
650
+ profile: profile.id,
651
+ policyVersion,
652
+ activationIdentity,
653
+ state
654
+ };
655
+ }
620
656
  return {
621
657
  profile: profile.id,
622
658
  policyVersion,
@@ -720,7 +756,7 @@ function normalizeProjectProvisioningGroup(value, scope) {
720
756
  }
721
757
  throw new FileSystemError(`${scope}.provisioningGroup is invalid.`);
722
758
  }
723
- function validateV6ArtifactAuthority(managedArtifacts, projectArtifacts) {
759
+ function validateV6AndV7ArtifactAuthority(managedArtifacts, projectArtifacts) {
724
760
  for (const artifact of managedArtifacts) {
725
761
  if (!isManagedCoreLogicalName(artifact.logicalName)) {
726
762
  throw new FileSystemError(`Manifest managed artifact ${artifact.logicalName} is not an explicit managed-core logical name.`);
@@ -751,13 +787,27 @@ const governanceLogicalPaths = new Map([
751
787
  ['repository-governance-policy', governanceArtifactPaths.policy],
752
788
  ['repository-governance-context', governanceArtifactPaths.context],
753
789
  ['repository-governance-guide', governanceArtifactPaths.guide],
790
+ ['repository-governance-phase-graph', governanceArtifactPaths.phaseGraph],
791
+ ['repository-governance-compatibility', governanceArtifactPaths.compatibility],
792
+ [
793
+ 'repository-governance-credential-policy-schema',
794
+ governanceArtifactPaths.credentialPolicySchema
795
+ ],
796
+ [
797
+ 'liftoff-setup-copilot',
798
+ governanceArtifactPaths.setup['github-copilot']
799
+ ],
800
+ [
801
+ 'liftoff-setup-claude',
802
+ governanceArtifactPaths.setup.claude
803
+ ],
754
804
  [
755
805
  'repository-governance-copilot-launcher',
756
- governanceArtifactPaths['github-copilot']
806
+ governanceArtifactPaths.alias['github-copilot']
757
807
  ],
758
808
  [
759
809
  'repository-governance-claude-launcher',
760
- governanceArtifactPaths.claude
810
+ governanceArtifactPaths.alias.claude
761
811
  ]
762
812
  ]);
763
813
  function validateGovernanceArtifactIdentity(manifest) {
@@ -778,6 +828,12 @@ function validateGovernanceArtifactIdentity(manifest) {
778
828
  'repository-governance-policy',
779
829
  'repository-governance-context',
780
830
  'repository-governance-guide',
831
+ 'repository-governance-phase-graph',
832
+ 'repository-governance-compatibility',
833
+ 'repository-governance-credential-policy-schema',
834
+ ...manifest.project.agents.map((agent) => agent === 'github-copilot'
835
+ ? 'liftoff-setup-copilot'
836
+ : 'liftoff-setup-claude'),
781
837
  ...manifest.project.agents.map((agent) => agent === 'github-copilot'
782
838
  ? 'repository-governance-copilot-launcher'
783
839
  : 'repository-governance-claude-launcher')
@@ -837,6 +893,37 @@ export async function validateGeneratedProject(projectRoot) {
837
893
  }
838
894
  }
839
895
  }
896
+ const compatibilityArtifact = manifest.managedArtifacts.find((artifact) => artifact.logicalName === 'repository-governance-compatibility');
897
+ if (compatibilityArtifact &&
898
+ manifest.governance.profile !== 'none' &&
899
+ manifest.governance.profile !== 'unspecified') {
900
+ try {
901
+ const bytes = await readProjectFile(projectRoot, compatibilityArtifact.pathParts);
902
+ if (bytes === undefined) {
903
+ issues.push(`Missing artifact ${compatibilityArtifact.logicalName} at ${compatibilityArtifact.pathParts.join('/')}`);
904
+ }
905
+ else {
906
+ const expectedInventory = manifest.managedArtifacts.map((artifact) => ({
907
+ logicalName: artifact.logicalName,
908
+ pathParts: artifact.pathParts,
909
+ lifecycle: 'managed-core',
910
+ contentHashAuthority: 'liftoff.manifest.json managedArtifacts[].contentHash'
911
+ }));
912
+ validateGovernanceCompatibilityMetadata(JSON.parse(bytes.toString('utf8')), manifest.governance.state === 'handoff-generated'
913
+ ? {
914
+ logicalNameAllowlist: managedCoreLogicalNames,
915
+ pathAllowlist: manifest.managedArtifacts.map((artifact) => artifact.pathParts),
916
+ inventory: expectedInventory
917
+ }
918
+ : {
919
+ logicalNameAllowlist: managedCoreLogicalNames
920
+ });
921
+ }
922
+ }
923
+ catch (error) {
924
+ issues.push(`Invalid repository-governance-compatibility at ${compatibilityArtifact.pathParts.join('/')}: ${errorMessage(error)}`);
925
+ }
926
+ }
840
927
  for (const artifact of manifest.projectArtifacts) {
841
928
  try {
842
929
  await resolveProjectPath(projectRoot, artifact.pathParts);
@@ -1 +1 @@
1
- {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../src/file-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../src/file-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { UserActivationState } from './types.js';
2
+ export declare class ActivationStateFileError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export declare class ActivationStateTransactionError extends ActivationStateFileError {
6
+ readonly rollbackFailures: readonly string[];
7
+ constructor(message: string, rollbackFailures: readonly string[]);
8
+ }
9
+ export interface LoadedActivationState {
10
+ state: UserActivationState;
11
+ content: string;
12
+ contentHash: string;
13
+ schemaVersion: number;
14
+ }
15
+ export interface ActivationStateWriteExpectation {
16
+ expectedContentHash: string | null;
17
+ expectedSchemaVersion?: number | null;
18
+ expectedContent?: string | null;
19
+ }
20
+ export interface ActivationStateWriteResult {
21
+ pathParts: readonly string[];
22
+ content: string;
23
+ contentHash: string;
24
+ schemaVersion: number;
25
+ }
26
+ export interface ActivationStateWriteOptions {
27
+ failAfterReplace?: boolean;
28
+ }
29
+ export declare const activationStateFilePathParts: readonly ['governance', 'activation-state.json'];
30
+ export declare function activationStateContentHash(content: string | Buffer): string;
31
+ export declare function loadActivationState(projectRoot: string): Promise<LoadedActivationState | undefined>;
32
+ export declare function writeActivationState(projectRoot: string, state: UserActivationState, expectation: ActivationStateWriteExpectation, options?: ActivationStateWriteOptions): Promise<ActivationStateWriteResult>;
@@ -0,0 +1,165 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { chmod, mkdir, rename, stat, unlink, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { canonicalJson, sha256Hex } from './canonical-json.js';
5
+ import { readProjectFile, resolveProjectPath, validateArtifactPathParts } from '../file-system.js';
6
+ import { validateUserActivationState } from './validators.js';
7
+ export class ActivationStateFileError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'ActivationStateFileError';
11
+ }
12
+ }
13
+ export class ActivationStateTransactionError extends ActivationStateFileError {
14
+ rollbackFailures;
15
+ constructor(message, rollbackFailures) {
16
+ super(message);
17
+ this.rollbackFailures = rollbackFailures;
18
+ this.name = 'ActivationStateTransactionError';
19
+ }
20
+ }
21
+ export const activationStateFilePathParts = ['governance', 'activation-state.json'];
22
+ function errorCode(error) {
23
+ if (typeof error !== 'object' || error === null || !('code' in error)) {
24
+ return undefined;
25
+ }
26
+ const code = error.code;
27
+ return typeof code === 'string' ? code : undefined;
28
+ }
29
+ function errorMessage(error) {
30
+ return error instanceof Error ? error.message : String(error);
31
+ }
32
+ function activationStatePathParts() {
33
+ return validateArtifactPathParts([...activationStateFilePathParts], 'Activation state path');
34
+ }
35
+ export function activationStateContentHash(content) {
36
+ return sha256Hex(typeof content === 'string' ? content : content.toString('utf8'));
37
+ }
38
+ export async function loadActivationState(projectRoot) {
39
+ const bytes = await readProjectFile(projectRoot, activationStatePathParts());
40
+ if (bytes === undefined) {
41
+ return undefined;
42
+ }
43
+ const content = bytes.toString('utf8');
44
+ let parsed;
45
+ try {
46
+ parsed = JSON.parse(content);
47
+ }
48
+ catch (error) {
49
+ throw new ActivationStateFileError(`Unable to parse governance/activation-state.json: ${errorMessage(error)}`);
50
+ }
51
+ let state;
52
+ try {
53
+ state = validateUserActivationState(parsed);
54
+ }
55
+ catch (error) {
56
+ throw new ActivationStateFileError(`Invalid governance/activation-state.json: ${errorMessage(error)}`);
57
+ }
58
+ return {
59
+ state,
60
+ content,
61
+ contentHash: activationStateContentHash(content),
62
+ schemaVersion: state.schemaVersion
63
+ };
64
+ }
65
+ async function removeIfExists(filePath, failures) {
66
+ try {
67
+ await unlink(filePath);
68
+ }
69
+ catch (error) {
70
+ if (errorCode(error) !== 'ENOENT') {
71
+ failures.push(`${filePath}: ${errorMessage(error)}`);
72
+ }
73
+ }
74
+ }
75
+ function assertExpectedPrior(loaded, expectation) {
76
+ if (expectation.expectedContentHash === null) {
77
+ if (loaded !== undefined) {
78
+ throw new ActivationStateFileError('Activation state write expected no prior activation-state.json, but one exists.');
79
+ }
80
+ return;
81
+ }
82
+ if (loaded === undefined) {
83
+ throw new ActivationStateFileError('Activation state write expected an existing activation-state.json, but it is absent.');
84
+ }
85
+ if (loaded.contentHash !== expectation.expectedContentHash) {
86
+ throw new ActivationStateFileError(`Activation state changed concurrently: expected hash ${expectation.expectedContentHash}, found ${loaded.contentHash}.`);
87
+ }
88
+ if (expectation.expectedSchemaVersion !== undefined && expectation.expectedSchemaVersion !== null) {
89
+ if (loaded.schemaVersion !== expectation.expectedSchemaVersion) {
90
+ throw new ActivationStateFileError(`Activation state schema changed concurrently: expected ${expectation.expectedSchemaVersion}, found ${loaded.schemaVersion}.`);
91
+ }
92
+ }
93
+ if (expectation.expectedContent !== undefined && expectation.expectedContent !== null) {
94
+ if (loaded.content !== expectation.expectedContent) {
95
+ throw new ActivationStateFileError('Activation state content changed concurrently.');
96
+ }
97
+ }
98
+ }
99
+ export async function writeActivationState(projectRoot, state, expectation, options = {}) {
100
+ const validatedState = validateUserActivationState(state);
101
+ const prior = await loadActivationState(projectRoot);
102
+ assertExpectedPrior(prior, expectation);
103
+ const content = canonicalJson(validatedState);
104
+ const contentHash = activationStateContentHash(content);
105
+ const targetPath = await resolveProjectPath(projectRoot, activationStatePathParts());
106
+ const directory = path.dirname(targetPath);
107
+ const temporaryPath = path.join(directory, `.${path.basename(targetPath)}.liftoff-${process.pid}-${randomUUID()}.tmp`);
108
+ const backupPath = path.join(directory, `.${path.basename(targetPath)}.liftoff-${process.pid}-${randomUUID()}.bak`);
109
+ const mode = prior ? (await stat(targetPath)).mode & 0o7777 : 0o600;
110
+ let temporaryWritten = false;
111
+ let backupWritten = false;
112
+ let replacementInstalled = false;
113
+ const rollbackFailures = [];
114
+ try {
115
+ await mkdir(directory, { recursive: true });
116
+ if (prior) {
117
+ await writeFile(backupPath, prior.content, { encoding: 'utf8', flag: 'wx', mode });
118
+ await chmod(backupPath, mode);
119
+ backupWritten = true;
120
+ }
121
+ await writeFile(temporaryPath, content, { encoding: 'utf8', flag: 'wx', mode });
122
+ await chmod(temporaryPath, mode);
123
+ temporaryWritten = true;
124
+ await rename(temporaryPath, targetPath);
125
+ replacementInstalled = true;
126
+ temporaryWritten = false;
127
+ if (options.failAfterReplace) {
128
+ throw new ActivationStateTransactionError('Injected activation-state write failure after replace.', []);
129
+ }
130
+ if (backupWritten) {
131
+ await unlink(backupPath);
132
+ backupWritten = false;
133
+ }
134
+ return {
135
+ pathParts: activationStateFilePathParts,
136
+ content,
137
+ contentHash,
138
+ schemaVersion: validatedState.schemaVersion
139
+ };
140
+ }
141
+ catch (error) {
142
+ if (temporaryWritten) {
143
+ await removeIfExists(temporaryPath, rollbackFailures);
144
+ }
145
+ if (replacementInstalled) {
146
+ if (prior) {
147
+ try {
148
+ await writeFile(targetPath, prior.content, { encoding: 'utf8', mode });
149
+ await chmod(targetPath, mode);
150
+ }
151
+ catch (restoreError) {
152
+ rollbackFailures.push(`restore governance/activation-state.json: ${errorMessage(restoreError)}`);
153
+ }
154
+ }
155
+ else {
156
+ await removeIfExists(targetPath, rollbackFailures);
157
+ }
158
+ }
159
+ if (backupWritten) {
160
+ await removeIfExists(backupPath, rollbackFailures);
161
+ }
162
+ throw new ActivationStateTransactionError(`Unable to write governance/activation-state.json transactionally: ${errorMessage(error)}`, rollbackFailures);
163
+ }
164
+ }
165
+ //# sourceMappingURL=activation-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activation-state.js","sourceRoot":"","sources":["../../src/governance-activation/activation-state.ts"],"names":[],"mappings":"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"}