@msn-control/liftoff 0.11.2 → 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.
- package/DEVELOPER.md +26 -24
- package/README.md +18 -18
- package/assets/governance/single-maintainer-gitflow/activation-v2-graph.json +1583 -0
- package/dist/adapters/credentials/github-enrollment.d.ts +51 -0
- package/dist/adapters/credentials/github-enrollment.js +226 -0
- package/dist/adapters/credentials/github-enrollment.js.map +1 -0
- package/dist/adapters/credentials/protected-input.d.ts +7 -0
- package/dist/adapters/credentials/protected-input.js +68 -0
- package/dist/adapters/credentials/protected-input.js.map +1 -0
- package/dist/adapters/filesystem/executables.d.ts +2 -0
- package/dist/adapters/filesystem/executables.js +70 -0
- package/dist/adapters/filesystem/executables.js.map +1 -0
- package/dist/adapters/filesystem/update-previews.d.ts +9 -0
- package/dist/adapters/filesystem/update-previews.js +45 -2
- package/dist/adapters/filesystem/update-previews.js.map +1 -1
- package/dist/adapters/filesystem/workstation-attempts.d.ts +13 -0
- package/dist/adapters/filesystem/workstation-attempts.js +78 -0
- package/dist/adapters/filesystem/workstation-attempts.js.map +1 -0
- package/dist/adapters/github/activation-rest.d.ts +40 -0
- package/dist/adapters/github/activation-rest.js +272 -0
- package/dist/adapters/github/activation-rest.js.map +1 -0
- package/dist/adapters/process/shell-command.d.ts +1 -0
- package/dist/adapters/process/shell-command.js +5 -2
- package/dist/adapters/process/shell-command.js.map +1 -1
- package/dist/adapters/state/azure-blob.d.ts +43 -0
- package/dist/adapters/state/azure-blob.js +335 -0
- package/dist/adapters/state/azure-blob.js.map +1 -0
- package/dist/adapters/state/darwin-capabilities.d.ts +33 -0
- package/dist/adapters/state/darwin-capabilities.js +146 -0
- package/dist/adapters/state/darwin-capabilities.js.map +1 -0
- package/dist/adapters/state/darwin-native-host.d.ts +32 -0
- package/dist/adapters/state/darwin-native-host.js +294 -0
- package/dist/adapters/state/darwin-native-host.js.map +1 -0
- package/dist/adapters/state/darwin-profile.d.ts +6 -0
- package/dist/adapters/state/darwin-profile.js +56 -0
- package/dist/adapters/state/darwin-profile.js.map +1 -0
- package/dist/adapters/state/darwin-system-program.d.ts +1 -0
- package/dist/adapters/state/darwin-system-program.js +94 -0
- package/dist/adapters/state/darwin-system-program.js.map +1 -0
- package/dist/adapters/state/local-qualification.d.ts +16 -0
- package/dist/adapters/state/local-qualification.js +299 -0
- package/dist/adapters/state/local-qualification.js.map +1 -0
- package/dist/adapters/state/local.d.ts +25 -0
- package/dist/adapters/state/local.js +145 -0
- package/dist/adapters/state/local.js.map +1 -0
- package/dist/adapters/state/native-command.d.ts +21 -0
- package/dist/adapters/state/native-command.js +82 -0
- package/dist/adapters/state/native-command.js.map +1 -0
- package/dist/adapters/state/native-files.d.ts +2 -0
- package/dist/adapters/state/native-files.js +47 -0
- package/dist/adapters/state/native-files.js.map +1 -0
- package/dist/adapters/state/native-system.d.ts +38 -0
- package/dist/adapters/state/native-system.js +86 -0
- package/dist/adapters/state/native-system.js.map +1 -0
- package/dist/adapters/state/opentofu.d.ts +35 -0
- package/dist/adapters/state/opentofu.js +350 -0
- package/dist/adapters/state/opentofu.js.map +1 -0
- package/dist/adapters/state/owned-process.d.ts +43 -0
- package/dist/adapters/state/owned-process.js +252 -0
- package/dist/adapters/state/owned-process.js.map +1 -0
- package/dist/adapters/state/posix-lock-program.d.ts +1 -0
- package/dist/adapters/state/posix-lock-program.js +185 -0
- package/dist/adapters/state/posix-lock-program.js.map +1 -0
- package/dist/adapters/state/posix-native-lock.d.ts +15 -0
- package/dist/adapters/state/posix-native-lock.js +145 -0
- package/dist/adapters/state/posix-native-lock.js.map +1 -0
- package/dist/adapters/state/protected-workspace.d.ts +57 -0
- package/dist/adapters/state/protected-workspace.js +412 -0
- package/dist/adapters/state/protected-workspace.js.map +1 -0
- package/dist/application/context.d.ts +3 -0
- package/dist/application/diagnose/doctor.d.ts +5 -0
- package/dist/application/diagnose/doctor.js +21 -5
- package/dist/application/diagnose/doctor.js.map +1 -1
- package/dist/application/diagnose/generated-project.js +2 -7
- package/dist/application/diagnose/generated-project.js.map +1 -1
- package/dist/application/initialize/fixture.js +8 -1
- package/dist/application/initialize/fixture.js.map +1 -1
- package/dist/application/initialize/use-case.js +70 -36
- package/dist/application/initialize/use-case.js.map +1 -1
- package/dist/application/project/manifest.js +5 -4
- package/dist/application/project/manifest.js.map +1 -1
- package/dist/application/state-migration/execution.d.ts +32 -0
- package/dist/application/state-migration/execution.js +440 -0
- package/dist/application/state-migration/execution.js.map +1 -0
- package/dist/application/state-migration/index.d.ts +22 -0
- package/dist/application/state-migration/index.js +17 -0
- package/dist/application/state-migration/index.js.map +1 -0
- package/dist/application/state-migration/lifecycle.d.ts +3 -0
- package/dist/application/state-migration/lifecycle.js +149 -0
- package/dist/application/state-migration/lifecycle.js.map +1 -0
- package/dist/application/state-migration/planning.d.ts +7 -0
- package/dist/application/state-migration/planning.js +150 -0
- package/dist/application/state-migration/planning.js.map +1 -0
- package/dist/application/state-migration/recovery.d.ts +5 -0
- package/dist/application/state-migration/recovery.js +145 -0
- package/dist/application/state-migration/recovery.js.map +1 -0
- package/dist/application/state-migration/runtime.d.ts +32 -0
- package/dist/application/state-migration/runtime.js +188 -0
- package/dist/application/state-migration/runtime.js.map +1 -0
- package/dist/application/state-migration/service.d.ts +2 -0
- package/dist/application/state-migration/service.js +20 -0
- package/dist/application/state-migration/service.js.map +1 -0
- package/dist/application/update/command-guidance.d.ts +19 -2
- package/dist/application/update/command-guidance.js +20 -6
- package/dist/application/update/command-guidance.js.map +1 -1
- package/dist/application/update/guidance-context.d.ts +2 -0
- package/dist/application/update/guidance-context.js +35 -0
- package/dist/application/update/guidance-context.js.map +1 -0
- package/dist/application/update/inspection.d.ts +21 -4
- package/dist/application/update/inspection.js +88 -29
- package/dist/application/update/inspection.js.map +1 -1
- package/dist/application/update/migration-runtime.js +25 -13
- package/dist/application/update/migration-runtime.js.map +1 -1
- package/dist/application/update/output.d.ts +4 -1
- package/dist/application/update/output.js +14 -4
- package/dist/application/update/output.js.map +1 -1
- package/dist/application/update/preview.d.ts +10 -1
- package/dist/application/update/preview.js +26 -4
- package/dist/application/update/preview.js.map +1 -1
- package/dist/application/update/revalidation-plan.d.ts +1 -0
- package/dist/application/update/revalidation-plan.js +27 -15
- package/dist/application/update/revalidation-plan.js.map +1 -1
- package/dist/application/update/revalidation.d.ts +4 -1
- package/dist/application/update/revalidation.js +64 -23
- package/dist/application/update/revalidation.js.map +1 -1
- package/dist/application/update/use-case.js +50 -29
- package/dist/application/update/use-case.js.map +1 -1
- package/dist/cli/args/definitions.js +11 -3
- package/dist/cli/args/definitions.js.map +1 -1
- package/dist/cli/args/parser.js +29 -3
- package/dist/cli/args/parser.js.map +1 -1
- package/dist/domain/governance/activation/approvals.d.ts +264 -7
- package/dist/domain/governance/activation/approvals.js +166 -23
- package/dist/domain/governance/activation/approvals.js.map +1 -1
- package/dist/domain/governance/activation/capabilities.js +5 -2
- package/dist/domain/governance/activation/capabilities.js.map +1 -1
- package/dist/domain/governance/activation/evidence.d.ts +2 -1
- package/dist/domain/governance/activation/evidence.js +64 -11
- package/dist/domain/governance/activation/evidence.js.map +1 -1
- package/dist/domain/governance/activation/graph.d.ts +11 -384
- package/dist/domain/governance/activation/graph.js +424 -379
- package/dist/domain/governance/activation/graph.js.map +1 -1
- package/dist/domain/governance/activation/inputs.d.ts +3 -1
- package/dist/domain/governance/activation/inputs.js +47 -6
- package/dist/domain/governance/activation/inputs.js.map +1 -1
- package/dist/domain/governance/activation/operations.d.ts +4 -1
- package/dist/domain/governance/activation/operations.js +110 -22
- package/dist/domain/governance/activation/operations.js.map +1 -1
- package/dist/domain/governance/activation/readiness.d.ts +10 -0
- package/dist/domain/governance/activation/readiness.js +77 -38
- package/dist/domain/governance/activation/readiness.js.map +1 -1
- package/dist/domain/governance/activation/types.d.ts +151 -9
- package/dist/domain/governance/activation/types.js +23 -1
- package/dist/domain/governance/activation/types.js.map +1 -1
- package/dist/domain/governance/activation/validators.d.ts +4 -1
- package/dist/domain/governance/activation/validators.js +419 -26
- package/dist/domain/governance/activation/validators.js.map +1 -1
- package/dist/domain/governance/policy/identity.d.ts +55 -13
- package/dist/domain/governance/policy/identity.js +28 -8
- package/dist/domain/governance/policy/identity.js.map +1 -1
- package/dist/domain/project/artifact-lifecycle.d.ts +2 -1
- package/dist/domain/project/artifact-lifecycle.js +7 -1
- package/dist/domain/project/artifact-lifecycle.js.map +1 -1
- package/dist/domain/project/catalog.d.ts +50 -1
- package/dist/domain/project/catalog.js +104 -4
- package/dist/domain/project/catalog.js.map +1 -1
- package/dist/domain/project/contracts.d.ts +9 -1
- package/dist/domain/project/infrastructure-layout.d.ts +1 -1
- package/dist/domain/project/infrastructure-layout.js +3 -1
- package/dist/domain/project/infrastructure-layout.js.map +1 -1
- package/dist/domain/project/manifest/governance.d.ts +1 -1
- package/dist/domain/project/manifest/governance.js +9 -10
- package/dist/domain/project/manifest/governance.js.map +1 -1
- package/dist/domain/project/planning.js +4 -5
- package/dist/domain/project/planning.js.map +1 -1
- package/dist/domain/repair/stateful-bounded.d.ts +1 -0
- package/dist/domain/repair/stateful-bounded.js +37 -0
- package/dist/domain/repair/stateful-bounded.js.map +1 -0
- package/dist/domain/repair/stateful-invariants.d.ts +28 -0
- package/dist/domain/repair/stateful-invariants.js +278 -0
- package/dist/domain/repair/stateful-invariants.js.map +1 -0
- package/dist/domain/repair/stateful.d.ts +690 -0
- package/dist/domain/repair/stateful.js +26 -0
- package/dist/domain/repair/stateful.js.map +1 -0
- package/dist/domain/workstation/constraints.d.ts +1 -0
- package/dist/domain/workstation/constraints.js.map +1 -1
- package/dist/domain/workstation/contracts.d.ts +42 -0
- package/dist/domain/workstation/contracts.js +2 -0
- package/dist/domain/workstation/contracts.js.map +1 -0
- package/dist/domain/workstation/executables.d.ts +19 -0
- package/dist/domain/workstation/executables.js +68 -0
- package/dist/domain/workstation/executables.js.map +1 -0
- package/dist/domain/workstation/versions.d.ts +8 -0
- package/dist/domain/workstation/versions.js +145 -0
- package/dist/domain/workstation/versions.js.map +1 -0
- package/dist/framework-adapters.d.ts +2 -0
- package/dist/framework-adapters.js +148 -22
- package/dist/framework-adapters.js.map +1 -1
- package/dist/framework-validation.d.ts +6 -0
- package/dist/framework-validation.js +89 -24
- package/dist/framework-validation.js.map +1 -1
- package/dist/generators/common/base.js +57 -17
- package/dist/generators/common/base.js.map +1 -1
- package/dist/governance-activation/activation-state.js +39 -7
- package/dist/governance-activation/activation-state.js.map +1 -1
- package/dist/governance-activation/authority-records.d.ts +4 -0
- package/dist/governance-activation/authority-records.js +24 -0
- package/dist/governance-activation/authority-records.js.map +1 -0
- package/dist/governance-activation/commands.d.ts +9 -1
- package/dist/governance-activation/commands.js +392 -97
- package/dist/governance-activation/commands.js.map +1 -1
- package/dist/governance-activation/compatibility.d.ts +11 -8
- package/dist/governance-activation/compatibility.js +37 -23
- package/dist/governance-activation/compatibility.js.map +1 -1
- package/dist/governance-activation/doctor.js +40 -16
- package/dist/governance-activation/doctor.js.map +1 -1
- package/dist/governance-activation/github-config.d.ts +17 -0
- package/dist/governance-activation/github-config.js +88 -0
- package/dist/governance-activation/github-config.js.map +1 -0
- package/dist/governance-activation/github-discovery.d.ts +18 -0
- package/dist/governance-activation/github-discovery.js +229 -0
- package/dist/governance-activation/github-discovery.js.map +1 -0
- package/dist/governance-activation/github-ports.d.ts +12 -0
- package/dist/governance-activation/github-ports.js +4 -0
- package/dist/governance-activation/github-ports.js.map +1 -0
- package/dist/governance-activation/github-publication.d.ts +3 -0
- package/dist/governance-activation/github-publication.js +190 -0
- package/dist/governance-activation/github-publication.js.map +1 -0
- package/dist/governance-activation/historical-common.d.ts +98 -0
- package/dist/governance-activation/historical-common.js +269 -0
- package/dist/governance-activation/historical-common.js.map +1 -0
- package/dist/governance-activation/historical-credential-policy.d.ts +3 -0
- package/dist/governance-activation/historical-credential-policy.js +91 -0
- package/dist/governance-activation/historical-credential-policy.js.map +1 -0
- package/dist/governance-activation/historical-inputs.d.ts +6 -0
- package/dist/governance-activation/historical-inputs.js +57 -0
- package/dist/governance-activation/historical-inputs.js.map +1 -0
- package/dist/governance-activation/historical-safety.d.ts +9 -0
- package/dist/governance-activation/historical-safety.js +102 -0
- package/dist/governance-activation/historical-safety.js.map +1 -0
- package/dist/governance-activation/historical-source-metadata.d.ts +31 -0
- package/dist/governance-activation/historical-source-metadata.js +55 -0
- package/dist/governance-activation/historical-source-metadata.js.map +1 -0
- package/dist/governance-activation/historical-state.d.ts +12 -50
- package/dist/governance-activation/historical-state.js +195 -308
- package/dist/governance-activation/historical-state.js.map +1 -1
- package/dist/governance-activation/historical-v1-auxiliary.d.ts +1 -0
- package/dist/governance-activation/historical-v1-auxiliary.js +43 -0
- package/dist/governance-activation/historical-v1-auxiliary.js.map +1 -0
- package/dist/governance-activation/historical-v1-phase-contracts.d.ts +31 -0
- package/dist/governance-activation/historical-v1-phase-contracts.js +46 -0
- package/dist/governance-activation/historical-v1-phase-contracts.js.map +1 -0
- package/dist/governance-activation/historical-v2.d.ts +53 -0
- package/dist/governance-activation/historical-v2.js +313 -0
- package/dist/governance-activation/historical-v2.js.map +1 -0
- package/dist/governance-activation/history-contracts.d.ts +21 -12
- package/dist/governance-activation/history-contracts.js +99 -27
- package/dist/governance-activation/history-contracts.js.map +1 -1
- package/dist/governance-activation/inputs.d.ts +8 -2
- package/dist/governance-activation/inputs.js +41 -6
- package/dist/governance-activation/inputs.js.map +1 -1
- package/dist/governance-activation/migration-history.d.ts +43 -5
- package/dist/governance-activation/migration-history.js +231 -50
- package/dist/governance-activation/migration-history.js.map +1 -1
- package/dist/governance-activation/migration.d.ts +7 -4
- package/dist/governance-activation/migration.js +53 -252
- package/dist/governance-activation/migration.js.map +1 -1
- package/dist/governance-activation/phase-azure.d.ts +3 -0
- package/dist/governance-activation/phase-azure.js +205 -0
- package/dist/governance-activation/phase-azure.js.map +1 -0
- package/dist/governance-activation/phase-bootstrap-state.js +3 -0
- package/dist/governance-activation/phase-bootstrap-state.js.map +1 -1
- package/dist/governance-activation/phase-github.d.ts +3 -0
- package/dist/governance-activation/phase-github.js +192 -0
- package/dist/governance-activation/phase-github.js.map +1 -0
- package/dist/governance-activation/phase-governance.js +8 -2
- package/dist/governance-activation/phase-governance.js.map +1 -1
- package/dist/governance-activation/public-plans.d.ts +36 -0
- package/dist/governance-activation/public-plans.js +100 -0
- package/dist/governance-activation/public-plans.js.map +1 -0
- package/dist/governance-activation/read-only.d.ts +3 -1
- package/dist/governance-activation/read-only.js +7 -3
- package/dist/governance-activation/read-only.js.map +1 -1
- package/dist/governance-activation/reconciliation.js +10 -0
- package/dist/governance-activation/reconciliation.js.map +1 -1
- package/dist/governance-activation/seed-lifecycle.js +14 -25
- package/dist/governance-activation/seed-lifecycle.js.map +1 -1
- package/dist/governance-activation/source-of-truth.d.ts +21 -5
- package/dist/governance-activation/source-of-truth.js +102 -13
- package/dist/governance-activation/source-of-truth.js.map +1 -1
- package/dist/governance-activation/task-projection.d.ts +4 -1
- package/dist/governance-activation/task-projection.js +32 -3
- package/dist/governance-activation/task-projection.js.map +1 -1
- package/dist/governance-activation/task-writes.d.ts +42 -0
- package/dist/governance-activation/task-writes.js +250 -0
- package/dist/governance-activation/task-writes.js.map +1 -0
- package/dist/governance-activation/transition-files.d.ts +12 -0
- package/dist/governance-activation/transition-files.js +109 -0
- package/dist/governance-activation/transition-files.js.map +1 -0
- package/dist/governance-activation/transition-planning.d.ts +3 -1
- package/dist/governance-activation/transition-planning.js +158 -20
- package/dist/governance-activation/transition-planning.js.map +1 -1
- package/dist/governance-activation/transition-ports.d.ts +31 -3
- package/dist/governance-activation/transition-records.d.ts +11 -1
- package/dist/governance-activation/transition-records.js +52 -6
- package/dist/governance-activation/transition-records.js.map +1 -1
- package/dist/governance-activation/transitions.d.ts +5 -0
- package/dist/governance-activation/transitions.js +271 -37
- package/dist/governance-activation/transitions.js.map +1 -1
- package/dist/governance-assessment/engine.js +22 -15
- package/dist/governance-assessment/engine.js.map +1 -1
- package/dist/governance-assessment/project.d.ts +2 -0
- package/dist/governance-assessment/project.js +2 -1
- package/dist/governance-assessment/project.js.map +1 -1
- package/dist/interactive.d.ts +0 -1
- package/dist/interactive.js +3 -22
- package/dist/interactive.js.map +1 -1
- package/dist/openspec-profile.d.ts +2 -1
- package/dist/openspec-profile.js +11 -41
- package/dist/openspec-profile.js.map +1 -1
- package/dist/repository-governance.d.ts +10 -5
- package/dist/repository-governance.js +178 -92
- package/dist/repository-governance.js.map +1 -1
- package/dist/telemetry/contract.d.ts +1 -1
- package/dist/telemetry/contract.js +3 -0
- package/dist/telemetry/contract.js.map +1 -1
- package/dist/workstation-catalog.d.ts +13 -1
- package/dist/workstation-catalog.js +122 -0
- package/dist/workstation-catalog.js.map +1 -1
- package/dist/workstation.d.ts +69 -14
- package/dist/workstation.js +600 -215
- package/dist/workstation.js.map +1 -1
- package/docs/cli-reference.md +94 -23
- package/docs/configuration-and-manifests.md +11 -10
- package/docs/prerequisites.md +93 -18
- package/docs/repository-governance.md +68 -40
- package/docs/spec-workflows-and-agents.md +132 -13
- package/docs/troubleshooting.md +28 -0
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { lstat, readFile } from 'node:fs/promises';
|
|
1
|
+
import { lstat, readFile, readdir } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { getFrameworkDefinition } from './application/project/catalog.js';
|
|
3
|
+
import { getCodingAgent, getFrameworkDefinition } from './application/project/catalog.js';
|
|
4
|
+
import { SPEC_KIT_AGENT_SURFACES, SPEC_KIT_WORKFLOW_IDS } from './domain/project/catalog.js';
|
|
5
|
+
import { validateArtifactPathParts } from './domain/project/paths.js';
|
|
4
6
|
import { OPEN_SPEC_COPILOT_CLOUD_PATHS, openSpecIntegrationPaths } from './openspec-profile.js';
|
|
5
7
|
function errorCode(error) {
|
|
6
8
|
return typeof error === 'object' && error !== null && 'code' in error &&
|
|
@@ -8,15 +10,29 @@ function errorCode(error) {
|
|
|
8
10
|
? error.code
|
|
9
11
|
: undefined;
|
|
10
12
|
}
|
|
11
|
-
async function
|
|
13
|
+
export async function frameworkMarkerIssue(root, pathParts) {
|
|
12
14
|
const display = pathParts.join('/');
|
|
13
15
|
try {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
validateArtifactPathParts(pathParts, 'Framework marker');
|
|
17
|
+
let parent = root;
|
|
18
|
+
for (const [index, part] of pathParts.entries()) {
|
|
19
|
+
const names = (await readdir(parent)).filter((name) => name.toLowerCase() === part.toLowerCase());
|
|
20
|
+
if (names.some((name) => name !== part)) {
|
|
21
|
+
return `Framework marker has a case collision: ${display}`;
|
|
22
|
+
}
|
|
23
|
+
const current = path.join(parent, part);
|
|
24
|
+
const details = await lstat(current);
|
|
25
|
+
if (details.isSymbolicLink()) {
|
|
26
|
+
return `Framework marker is a forbidden symlink: ${display}`;
|
|
27
|
+
}
|
|
28
|
+
const isLast = index === pathParts.length - 1;
|
|
29
|
+
if (isLast ? !details.isFile() : !details.isDirectory()) {
|
|
30
|
+
return `Framework marker is not a regular file or has a non-directory parent: ${display}`;
|
|
31
|
+
}
|
|
32
|
+
if (isLast && details.size === 0) {
|
|
33
|
+
return `Framework marker is empty: ${display}`;
|
|
34
|
+
}
|
|
35
|
+
parent = current;
|
|
20
36
|
}
|
|
21
37
|
return undefined;
|
|
22
38
|
}
|
|
@@ -27,23 +43,43 @@ async function markerIssue(root, pathParts) {
|
|
|
27
43
|
return `Unable to inspect framework marker ${display}: ${error instanceof Error ? error.message : String(error)}`;
|
|
28
44
|
}
|
|
29
45
|
}
|
|
46
|
+
export function specKitIntegrationPaths(agent) {
|
|
47
|
+
const surface = SPEC_KIT_AGENT_SURFACES[agent];
|
|
48
|
+
return SPEC_KIT_WORKFLOW_IDS.map((workflow) => [
|
|
49
|
+
...surface.skillsRoot, `speckit-${workflow}`, 'SKILL.md'
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
export function frameworkIntegrationPaths(workflow, agent) {
|
|
53
|
+
return workflow === 'openspec' ? openSpecIntegrationPaths(agent) : specKitIntegrationPaths(agent);
|
|
54
|
+
}
|
|
55
|
+
export const OPEN_SPEC_CODEX_TARGET_PATH = ['.agents', 'skills', '.openspec-target'];
|
|
56
|
+
export const SPEC_KIT_CODEX_CONFIG_PATH = ['.codex', 'config.toml'];
|
|
57
|
+
export function frameworkOutputPaths(selection) {
|
|
58
|
+
const definition = getFrameworkDefinition(selection.workflow);
|
|
59
|
+
return [
|
|
60
|
+
...definition.baseMarkers,
|
|
61
|
+
...selection.agents.flatMap((agent) => frameworkIntegrationPaths(selection.workflow, agent)),
|
|
62
|
+
...(selection.agents.includes('codex')
|
|
63
|
+
? [[...(selection.workflow === 'openspec' ? OPEN_SPEC_CODEX_TARGET_PATH : SPEC_KIT_CODEX_CONFIG_PATH)]]
|
|
64
|
+
: [])
|
|
65
|
+
];
|
|
66
|
+
}
|
|
30
67
|
async function unexpectedMarkerIssue(root, pathParts) {
|
|
31
68
|
const display = pathParts.join('/');
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
if (errorCode(error) === 'ENOENT') {
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
return `Unable to inspect framework marker ${display}: ${error instanceof Error ? error.message : String(error)}`;
|
|
69
|
+
const issue = await frameworkMarkerIssue(root, pathParts);
|
|
70
|
+
if (issue?.startsWith('Missing framework marker:')) {
|
|
71
|
+
return undefined;
|
|
41
72
|
}
|
|
73
|
+
return issue ?? `Unexpected framework marker: ${display}`;
|
|
42
74
|
}
|
|
43
75
|
async function validateSpecKitState(root, selection) {
|
|
44
76
|
const issues = [];
|
|
45
77
|
let parsed;
|
|
46
78
|
try {
|
|
79
|
+
const unsafe = await frameworkMarkerIssue(root, ['.specify', 'integration.json']);
|
|
80
|
+
if (unsafe) {
|
|
81
|
+
return [unsafe];
|
|
82
|
+
}
|
|
47
83
|
parsed = JSON.parse(await readFile(path.join(root, '.specify', 'integration.json'), 'utf8'));
|
|
48
84
|
}
|
|
49
85
|
catch (error) {
|
|
@@ -53,8 +89,14 @@ async function validateSpecKitState(root, selection) {
|
|
|
53
89
|
return ['Spec Kit integration state must be a JSON object.'];
|
|
54
90
|
}
|
|
55
91
|
const state = parsed;
|
|
56
|
-
const expectedDefault = selection.defaultAgent
|
|
92
|
+
const expectedDefault = selection.defaultAgent
|
|
93
|
+
? getCodingAgent(selection.defaultAgent)?.integrationIds['spec-kit']
|
|
94
|
+
: undefined;
|
|
57
95
|
const defaultIntegration = state.default_integration ?? state.integration;
|
|
96
|
+
if (state.default_integration !== undefined && state.integration !== undefined &&
|
|
97
|
+
state.default_integration !== state.integration) {
|
|
98
|
+
issues.push('Spec Kit integration and default_integration disagree.');
|
|
99
|
+
}
|
|
58
100
|
if (defaultIntegration !== expectedDefault) {
|
|
59
101
|
issues.push(`Spec Kit default integration is ${JSON.stringify(defaultIntegration)}; expected ${JSON.stringify(expectedDefault)}.`);
|
|
60
102
|
}
|
|
@@ -63,7 +105,7 @@ async function validateSpecKitState(root, selection) {
|
|
|
63
105
|
issues.push('Spec Kit installed_integrations must be a string array.');
|
|
64
106
|
return issues;
|
|
65
107
|
}
|
|
66
|
-
const expected = selection.agents.map((agent) => agent
|
|
108
|
+
const expected = selection.agents.map((agent) => getCodingAgent(agent).integrationIds['spec-kit']);
|
|
67
109
|
for (const integration of expected) {
|
|
68
110
|
if (!installed.includes(integration)) {
|
|
69
111
|
issues.push(`Spec Kit integration state does not include selected integration ${integration}.`);
|
|
@@ -73,12 +115,35 @@ async function validateSpecKitState(root, selection) {
|
|
|
73
115
|
}
|
|
74
116
|
export async function validateFrameworkInstallation(root, selection) {
|
|
75
117
|
const definition = getFrameworkDefinition(selection.workflow);
|
|
118
|
+
if (selection.agents.length === 0 ||
|
|
119
|
+
new Set(selection.agents).size !== selection.agents.length ||
|
|
120
|
+
selection.agents.some((agent) => getCodingAgent(agent)?.id !== agent)) {
|
|
121
|
+
return ['Framework selection requires nonempty, unique canonical coding-agent IDs.'];
|
|
122
|
+
}
|
|
123
|
+
if (selection.defaultAgent && !selection.agents.includes(selection.defaultAgent)) {
|
|
124
|
+
return ['Framework default agent must be one of the selected agents.'];
|
|
125
|
+
}
|
|
126
|
+
if (selection.workflow === 'openspec' && selection.defaultAgent) {
|
|
127
|
+
return ['OpenSpec framework state cannot record a default agent.'];
|
|
128
|
+
}
|
|
76
129
|
const markers = [
|
|
77
130
|
...definition.baseMarkers,
|
|
78
|
-
...selection.agents.flatMap((agent) => definition.agentMarkers[agent])
|
|
131
|
+
...selection.agents.flatMap((agent) => agent === 'codex' ? frameworkIntegrationPaths(selection.workflow, agent) : definition.agentMarkers[agent])
|
|
79
132
|
];
|
|
80
|
-
const issues = (await Promise.all(markers.map((marker) =>
|
|
133
|
+
const issues = (await Promise.all(markers.map((marker) => frameworkMarkerIssue(root, marker))))
|
|
81
134
|
.filter((issue) => issue !== undefined);
|
|
135
|
+
if (selection.workflow === 'openspec' && selection.agents.includes('codex')) {
|
|
136
|
+
const targetIssue = await frameworkMarkerIssue(root, OPEN_SPEC_CODEX_TARGET_PATH);
|
|
137
|
+
if (!targetIssue) {
|
|
138
|
+
const target = await readFile(path.join(root, ...OPEN_SPEC_CODEX_TARGET_PATH), 'utf8');
|
|
139
|
+
if (target.trim() !== 'codex') {
|
|
140
|
+
issues.push('OpenSpec shared skills target does not identify the selected Codex integration.');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else if (!targetIssue.startsWith('Missing framework marker:')) {
|
|
144
|
+
issues.push(targetIssue);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
82
147
|
if (selection.workflow === 'spec-kit' && !selection.defaultAgent) {
|
|
83
148
|
issues.push('Spec Kit framework state is missing its default agent.');
|
|
84
149
|
}
|
|
@@ -93,9 +158,9 @@ export async function validateFrameworkInitialization(root, selection, copilotCl
|
|
|
93
158
|
return issues;
|
|
94
159
|
}
|
|
95
160
|
const integrationMarkers = selection.agents.flatMap((agent) => openSpecIntegrationPaths(agent));
|
|
96
|
-
const integrationIssues = (await Promise.all(integrationMarkers.map((marker) =>
|
|
161
|
+
const integrationIssues = (await Promise.all(integrationMarkers.map((marker) => frameworkMarkerIssue(root, marker)))).filter((issue) => issue !== undefined);
|
|
97
162
|
const cloudIssues = copilotCloud
|
|
98
|
-
? (await Promise.all(OPEN_SPEC_COPILOT_CLOUD_PATHS.map((marker) =>
|
|
163
|
+
? (await Promise.all(OPEN_SPEC_COPILOT_CLOUD_PATHS.map((marker) => frameworkMarkerIssue(root, marker)))).filter((issue) => issue !== undefined)
|
|
99
164
|
: (await Promise.all(OPEN_SPEC_COPILOT_CLOUD_PATHS.map((marker) => unexpectedMarkerIssue(root, marker)))).filter((issue) => issue !== undefined);
|
|
100
165
|
return [...new Set([...issues, ...integrationIssues, ...cloudIssues])];
|
|
101
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-validation.js","sourceRoot":"","sources":["../src/framework-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"framework-validation.js","sourceRoot":"","sources":["../src/framework-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@ import { OPEN_SPEC_DELIVERY } from '../../openspec-profile.js';
|
|
|
7
7
|
import { OPEN_SPEC_PROFILE } from '../../openspec-profile.js';
|
|
8
8
|
import { OPEN_SPEC_WORKFLOW_IDS } from '../../openspec-profile.js';
|
|
9
9
|
import { renderBackendDockerfile } from '../containers/images.js';
|
|
10
|
-
import { renderGovernanceAssessmentGuide } from '../../repository-governance.js';
|
|
10
|
+
import { governanceInvocationGuide, renderGovernanceAssessmentGuide } from '../../repository-governance.js';
|
|
11
|
+
import { activationContractVersion } from '../../governance-activation/identity.js';
|
|
11
12
|
import { renderStandardDockerfile } from '../containers/images.js';
|
|
12
13
|
import { renderStandardEnv } from '../standard/configuration.js';
|
|
13
14
|
import { renderDockerignore } from '../containers/context.js';
|
|
@@ -96,15 +97,34 @@ export function renderDeterministicSetupGuide(plan) {
|
|
|
96
97
|
const frontend = plan.includeFrontend
|
|
97
98
|
? '- Frontend build: `npm run build` from `frontend/` after `npm ci`.'
|
|
98
99
|
: '- Frontend build: inapplicable because no frontend was generated.';
|
|
100
|
+
const hasSlashAgents = plan.agents.some((agent) => agent.id === 'github-copilot' || agent.id === 'claude');
|
|
101
|
+
const setupInvocation = hasSlashAgents ? '`/liftoff-setup`' : '`$liftoff-setup`';
|
|
99
102
|
const governance = plan.governanceProfile.id === 'none'
|
|
100
|
-
?
|
|
101
|
-
: plan.
|
|
102
|
-
?
|
|
103
|
-
:
|
|
103
|
+
? `Repository governance is disabled, so there is no ${setupInvocation} integration (native ${hasSlashAgents ? '`liftoff-setup`' : '`$liftoff-setup`'} integration), managed phase graph, or post-init governance activation path.`
|
|
104
|
+
: plan.agents.length === 0
|
|
105
|
+
? `${governanceInvocationGuide(plan)} This legacy handoff does not initialize the framework or install coding-agent integrations. Review \`.liftoff/governance/README.md\` and the CLI's local diagnostics for separately approved adoption requirements.`
|
|
106
|
+
: plan.specWorkflow.id === 'openspec'
|
|
107
|
+
? `Run ${setupInvocation} from a selected agent (${governanceInvocationGuide(plan)}). It verifies, syncs, and archives the generated OpenSpec bootstrap seed, then guides the requested activation through independent approval gates. Commit and push require separate approvals.`
|
|
108
|
+
: `Run ${setupInvocation} from a selected agent (${governanceInvocationGuide(plan)}). It verifies the real \`specs/000-liftoff-bootstrap\` bundle and official Spec Kit markers, runs applicable checks, and only then finalizes the local bootstrap projection and receipt. Local finalization creates no branch or external archive; the requested activation journey follows through independent approvals.`;
|
|
104
109
|
return `## Deterministic Setup
|
|
105
110
|
|
|
106
111
|
${governance}
|
|
107
112
|
|
|
113
|
+
${plan.governanceProfile.id === 'none' ? '' : `Setup begins with \`liftoff governance status --scope local --json\`.
|
|
114
|
+
Local-ready is a milestone, not proof of deployment. Unless you request local-only
|
|
115
|
+
operation or decline later authority, setup presents the activation plan and
|
|
116
|
+
continues through approved repair/migration, publication, deployment, qualification,
|
|
117
|
+
and live enforcement verification. Prefer the CLI's supported \`nextActions\`,
|
|
118
|
+
including their executable, argument array, working directory, scope, and required
|
|
119
|
+
approval. Never fabricate approval/state JSON or provide secrets in chat.
|
|
120
|
+
Keep explicit local scope: unscoped governance defaults to activation.
|
|
121
|
+
Planning saves a disclosed external preview, not approval; apply-next without
|
|
122
|
+
\`--execute\` is strictly read-only. Requested \`--inputs <public-json-file>\`
|
|
123
|
+
must follow the CLI's public schema and contain no credentials.
|
|
124
|
+
Consistent incomplete verification exits 2; it is not a failed or completed journey.
|
|
125
|
+
Future retention/disposal remains separate lifecycle work.
|
|
126
|
+
|
|
127
|
+
`}
|
|
108
128
|
The local baseline contains only applicable checks:
|
|
109
129
|
|
|
110
130
|
- \`liftoff validate\`
|
|
@@ -146,10 +166,10 @@ export function renderAdvisoryReadinessGuide(plan) {
|
|
|
146
166
|
}).join('\n');
|
|
147
167
|
}
|
|
148
168
|
export function renderSpecWorkflowGuide(plan) {
|
|
149
|
-
const agents = plan.agents.map((agent) => `${agent.label}${plan.defaultAgent?.id === agent.id ? ' (default integration)' : ''}`).join(', ');
|
|
169
|
+
const agents = plan.agents.map((agent) => `${agent.label}${plan.defaultAgent?.id === agent.id ? ' (default integration)' : ''}`).join(', ') || 'Not recorded; legacy framework adoption requires separate review';
|
|
150
170
|
const ownership = plan.specWorkflow.id === 'openspec'
|
|
151
171
|
? 'OpenSpec workflow skills, commands, configuration, and optional cloud-agent files'
|
|
152
|
-
: 'Spec Kit core files, integration state, and the selected
|
|
172
|
+
: 'Spec Kit core files, integration state, and the selected native skill integrations';
|
|
153
173
|
const openSpecDetails = plan.specWorkflow.id === 'openspec'
|
|
154
174
|
? [
|
|
155
175
|
`- OpenSpec profile: ${OPEN_SPEC_PROFILE}; delivery: ${OPEN_SPEC_DELIVERY}; workflows: ${OPEN_SPEC_WORKFLOW_IDS.join(', ')}`,
|
|
@@ -163,6 +183,9 @@ export function renderSpecWorkflowGuide(plan) {
|
|
|
163
183
|
- Workflow: ${plan.specWorkflow.label} ${plan.framework.version}
|
|
164
184
|
- AI coding agents: ${agents}
|
|
165
185
|
${openSpecDetails ? `${openSpecDetails}\n` : ''}
|
|
186
|
+
${plan.agents.some((agent) => agent.id === 'codex')
|
|
187
|
+
? `- OpenAI Codex: project-local \`.agents/skills\`; invoke \`${plan.specWorkflow.id === 'openspec' ? '$openspec-propose' : '$speckit-specify'}\` or select a skill with \`/skills\`. No deprecated global custom prompts or Copilot/Claude command files are required.\n`
|
|
188
|
+
: ''}
|
|
166
189
|
- Framework ownership: the official initializer owns ${ownership}. Liftoff validates these files but excludes framework-owned output and one-time seed content from managed-core hashes.
|
|
167
190
|
- Deferred tools: advisory workstation checks may be deferred. Liftoff never claims they are installed and never installs them without \`--install-tools\`.
|
|
168
191
|
|
|
@@ -178,6 +201,12 @@ liftoff doctor
|
|
|
178
201
|
\`\`\`
|
|
179
202
|
|
|
180
203
|
For an existing OpenSpec project, change workflow delivery with \`openspec config profile\` and refresh framework-owned files with \`openspec update\`. Plain \`liftoff update\` does not regenerate OpenSpec integrations.
|
|
204
|
+
For an additive agent change, preview \`liftoff repair --check --add-agents codex\`
|
|
205
|
+
instead of reinitializing the application. Existing selections and the Spec Kit
|
|
206
|
+
default remain unchanged unless an explicit reviewed default change is requested.
|
|
207
|
+
Machine installation, dependency installation, and global-profile configuration
|
|
208
|
+
remain independently authorized. Compatible official preview coding agents are
|
|
209
|
+
usable with notices; tested runtime and framework pins still apply.
|
|
181
210
|
`;
|
|
182
211
|
}
|
|
183
212
|
export function renderGeneratedConfigurationGuide(plan) {
|
|
@@ -237,28 +266,36 @@ Configure only the integrations you use:
|
|
|
237
266
|
export function renderGeneratedUpdateGuide(plan) {
|
|
238
267
|
const governance = plan.governanceProfile.id === 'none'
|
|
239
268
|
? 'Repository governance is disabled for this project, so Liftoff does not generate setup integrations, a managed phase graph, credential-policy schema, or post-init setup command.'
|
|
240
|
-
:
|
|
269
|
+
: plan.agents.length === 0
|
|
270
|
+
? `${governanceInvocationGuide(plan)} Managed-core maintenance does not initialize a legacy framework or install native integrations. Use the CLI's local diagnostics and \`.liftoff/governance/README.md\` to review supported adoption requirements.`
|
|
271
|
+
: `Initialization generates deterministic setup artifacts only. Review \`.liftoff/governance/README.md\`, then use native setup (${governanceInvocationGuide(plan)}) for local readiness and the requested separately approved activation journey. Live enforcement requires actual verification and explicit approval; it is never inferred from generated files.`;
|
|
241
272
|
return `## Safe Liftoff Updates
|
|
242
273
|
|
|
243
274
|
\`liftoff upgrade\` replaces a supported global Liftoff CLI installation; it does not inspect or modify this project. Check and apply CLI replacement separately with \`liftoff upgrade --check\` and \`liftoff upgrade\`.
|
|
244
275
|
|
|
245
276
|
${governance}
|
|
246
277
|
|
|
247
|
-
\`liftoff update\` maintains explicit Liftoff core files, currently the repository-governance policy, context, guide, phase graph, compatibility metadata, credential-policy schema, and selected-agent
|
|
278
|
+
\`liftoff update\` maintains explicit Liftoff core files, currently the repository-governance policy, context, guide, phase graph, compatibility metadata, credential-policy schema, and selected-agent native \`liftoff-setup\` and \`liftoff-governance-assess\` integrations. Start with \`liftoff update --check\` for the human compatibility and migration preview. Check changes no project bytes and discloses a preview receipt stored outside the repository; this receipt is not approval. Plain update requires the matching preview and explicit approval. Automation can use \`liftoff update --check --json\` and approve the exact effective fingerprint with \`liftoff update --approve-plan <fingerprint> --json\`.
|
|
248
279
|
|
|
249
280
|
Application source, tests, dependencies and locks, schemas, containers, environment files, documentation, and infrastructure become project-owned after generation. No update mode, including \`--force\`, can restore or replace them. Enabling a previously absent frontend or environment in \`liftoff.config.json\` may provision that component once at absent destinations; a collision blocks the whole component and cannot be forced.
|
|
250
281
|
|
|
251
282
|
Project template modernization is a separately reviewed production change and is not performed by ordinary update or by the existing non-Liftoff \`migrate\` command. Managed-core conflicts are skipped by default; after reviewing every listed core path, \`liftoff update --force\` may replace only those core conflicts. Managed-core orphans remain on disk, and update never installs dependencies. A failed transaction is rolled back, but Liftoff retains no backup after a successful core overwrite.
|
|
252
283
|
|
|
253
|
-
Activation migration is a separate explicitly approved write set. A supported v1 source retains original state, evidence, plans, approvals, and source metadata in \`governance/history\` before a linked
|
|
284
|
+
Activation migration is a separate explicitly approved write set. A supported v1/v2 source retains original state, evidence, plans, approvals, and source metadata in \`governance/history\` before a linked v${activationContractVersion} successor is created. History never becomes managed core or current execution proof. Revalidation uses only the finite reviewed local operations and stops before provider access, publication, or independent authority gates. Failure after migration commits leaves v${activationContractVersion} blocked and resumable; repair the named cause, run check again, and approve the remaining work. History is not automatically committed, pushed, or removed with preview receipts. Force never bypasses preview, approval, compatibility, or ownership checks.
|
|
285
|
+
|
|
286
|
+
Project repair is a separate scope: use \`liftoff repair --check\` for its exact
|
|
287
|
+
project-bound preview, or \`liftoff repair --check --add-agents codex\` for additive
|
|
288
|
+
integration work. Apply only the current reviewed fingerprint. Sensitive-state
|
|
289
|
+
inspection, backend migration, credentials, resources, and recovery retain
|
|
290
|
+
independent authorities. Do not reinitialize the project or hand-edit provenance.
|
|
254
291
|
|
|
255
292
|
Update JSON uses schema 3. Exit 0 means clean state or completion of the approved scope, 2 means differences or committed migration with incomplete revalidation, and 1 means a rejected or failed operation. Local migration completion does not establish live governance.
|
|
256
293
|
|
|
257
294
|
Liftoff rejects malformed, traversal, absolute, drive-qualified, UNC, separator-containing, or symlink-escaping manifest paths before artifact access. If the manifest is unsafe or malformed, restore \`liftoff.manifest.json\` from version control or regenerate the project with a matching Liftoff version; do not hand-edit unsafe paths. Run \`liftoff <command> --help\` for command-specific syntax because unknown flags, subcommands, values, and extra arguments fail before any write.
|
|
258
295
|
|
|
259
296
|
${plan.governanceProfile.id === 'none'
|
|
260
|
-
? 'No
|
|
261
|
-
: renderGovernanceAssessmentGuide()}
|
|
297
|
+
? 'No native `liftoff-governance-assess` integration is generated while governance is disabled.'
|
|
298
|
+
: renderGovernanceAssessmentGuide(plan)}
|
|
262
299
|
`;
|
|
263
300
|
}
|
|
264
301
|
export function renderRootInfrastructureGuide(plan) {
|
|
@@ -267,10 +304,11 @@ export function renderRootInfrastructureGuide(plan) {
|
|
|
267
304
|
? ''
|
|
268
305
|
: `These commands are reference material, not the next setup action. Do not run this
|
|
269
306
|
sequence until the separately approved \`application-foundation\` governance phase
|
|
270
|
-
authorizes the exact infrastructure mutation.
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
blocker; do not bypass it by running
|
|
307
|
+
authorizes the exact infrastructure mutation. ${plan.agents.length === 0
|
|
308
|
+
? `${governanceInvocationGuide(plan)} Use the CLI's local diagnostics to review the legacy framework boundary, not these deployment commands.`
|
|
309
|
+
: `Use native setup\n(${governanceInvocationGuide(plan)}) and its supported next actions.`}
|
|
310
|
+
An unavailable production adapter remains a blocker; do not bypass it by running
|
|
311
|
+
the reference commands directly.
|
|
274
312
|
|
|
275
313
|
`;
|
|
276
314
|
return `## Infrastructure
|
|
@@ -282,7 +320,9 @@ tofu plan -var-file=${environment}.tfvars
|
|
|
282
320
|
tofu apply -var-file=${environment}.tfvars
|
|
283
321
|
\`\`\`
|
|
284
322
|
|
|
285
|
-
|
|
323
|
+
${plan.governanceProfile.id === 'none'
|
|
324
|
+
? 'The first apply uses a public bootstrap image. Follow `infrastructure/opentofu/azure/README.md` to build the generated backend in ACR and apply its image.'
|
|
325
|
+
: 'Approved activation requires the real source-bound immutable application artifact before deployment. A public bootstrap image or an accepted deployment request never proves application readiness.'}
|
|
286
326
|
`;
|
|
287
327
|
}
|
|
288
328
|
export function renderRootReadme(plan) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/generators/common/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/generators/common/base.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAC5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAG7E,MAAM,UAAU,gBAAgB,CAC9B,GAAgB,EAChB,eAA4B,EAC5B,IAAoB,EAAE,OAAyB;IAE/C,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAC7E,GAAG,CAAC,mBAAmB,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC7E,eAAe,CAAC,gBAAgB,EAAE,SAAS,EAAE,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;QACnF,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;QACxB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;QACpE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;KAC7C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACb,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC;SACzE,UAAU,CAAC,YAAY,EAAE,aAAa,CAAC;SACvC,UAAU,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;SAClD,UAAU,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;SAClD,UAAU,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACxD,GAAG,CACD,oBAAoB,EACpB,SAAS,EACT,CAAC,YAAY,CAAC,EACd,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CACvG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAoB;IAChE,IAAI,eAAuB,CAAC;IAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC;YACjE,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,EAAE,CAAC;QACP,eAAe,GAAG,kDAAkD,MAAM;2DACnB,CAAC;IAC1D,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC;QAC/C,eAAe,GAAG;;;SAGb,CAAC;IACR,CAAC;SAAM,CAAC;QACN,eAAe,GAAG;;cAER,CAAC;IACb,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;;;;;;;;;;CAUjD,CAAC,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;gBAKlE,kBAAkB,CAAC,IAAI,CAAC;;CAEvC,CAAC,CAAC,CAAC,EAAE,CAAC;IACL,OAAO;;;;;EAKP,eAAe;;;EAGf,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAoB;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB;QAChF,CAAC,CAAC,8DAA8D;QAChE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc;YACnC,CAAC,CAAC,+DAA+D;YACjE,CAAC,CAAC,iCAAiC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe;QACnC,CAAC,CAAC,oEAAoE;QACtE,CAAC,CAAC,mEAAmE,CAAC;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,gBAAgB,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAC3G,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACjF,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,MAAM;QACrD,CAAC,CAAC,qDAAqD,eAAe,wBAAwB,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,8EAA8E;QACnO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,sNAAsN;YAC1P,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,UAAU;gBACnC,CAAC,CAAC,OAAO,eAAe,2BAA2B,yBAAyB,CAAC,IAAI,CAAC,iMAAiM;gBACnR,CAAC,CAAC,OAAO,eAAe,2BAA2B,yBAAyB,CAAC,IAAI,CAAC,6TAA6T,CAAC;IACtZ,OAAO;;EAEP,UAAU;;EAEV,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;;;;CAc7C;;;;mBAIkB,OAAO;EACxB,QAAQ;;;EAGR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,uDAAuD,EAAE,2DAA2D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAChK,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,2GAA2G;;;;;;;CAOnL,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAoB;IAC/D,MAAM,QAAQ,GAA+B;QAC3C,QAAQ;QACR,UAAU;QACV,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;IACF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACzB,MAAM,WAAW,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1C,MAAM,QAAQ,GAAG;YACf,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,UAAU,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,EAAE,KAAK,QAAQ;YAC5B,CAAC,CAAC,iEAAiE;YACnE,CAAC,CAAC,EAAE,KAAK,WAAW;gBAClB,CAAC,CAAC,qEAAqE;gBACvE,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,KAAK,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAoB;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvC,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,CACtF,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kEAAkE,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,UAAU;QACnD,CAAC,CAAC,mFAAmF;QACrF,CAAC,CAAC,oFAAoF,CAAC;IACzF,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,UAAU;QACzD,CAAC,CAAC;YACE,uBAAuB,iBAAiB,eAAe,kBAAkB,gBAAgB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5H,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,gBAAgB,CAAC;gBAC5D,CAAC,CAAC,CAAC,kGAAkG,CAAC;gBACtG,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;cAEK,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO;sBACzC,MAAM;EAC1B,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,EAAE;EAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC;QACjD,CAAC,CAAC,8DAA8D,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,4HAA4H;QAC1Q,CAAC,CAAC,EAAE;uDACiD,SAAS;;;;;EAK9D,4BAA4B,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;CAgBnC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAAoB;IACpE,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe;QAChD,CAAC,CAAC,wGAAwG;QAC1G,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB;QACtF,CAAC,CAAC,qFAAqF;QACvF,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc;YACnC,CAAC,CAAC,4CAA4C;YAC9C,CAAC,CAAC,kCAAkC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC;IAClF,MAAM,QAAQ,GAAG,sDAAsD,EAAE,CAAC,CAAC,CAAC,wFAAwF,CAAC,CAAC,CAAC,EAAE;EACzK,EAAE;QACF,CAAC,CAAC,kJAAkJ;QACpJ,CAAC,CAAC,mHAAmH;+HACQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;;EAEnJ,EAAE;QACF,CAAC,CAAC,oFAAoF;QACtF,CAAC,CAAC,2KAA2K;EAC7K,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,4JAA4J,CAAC,CAAC,CAAC,EAAE;;;;;EAKvO,EAAE,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE;EAChE,aAAa;;;EAGb,MAAM,CAAC,CAAC,CAAC,yHAAyH,CAAC,CAAC,CAAC,EAAE;mHACtB,qBAAqB,CAAC,IAAI,CAAC;;;CAG7I,CAAC;IACA,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO;;EAET,QAAQ;uOAC6N,qBAAqB;CAC3P,CAAC;IACA,CAAC;IACD,OAAO;;EAEP,QAAQ;;;;;;;sMAO4L,qBAAqB;;CAE1N,CAAC;AACF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAiB;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,MAAM;QACrD,CAAC,CAAC,mLAAmL;QACrL,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,mNAAmN;YACvP,CAAC,CAAC,iIAAiI,yBAAyB,CAAC,IAAI,CAAC,iMAAiM,CAAC;IACxW,OAAO;;;;EAIP,UAAU;;;;;;;;gNAQoM,yBAAyB,4QAA4Q,yBAAyB;;;;;;;;;;;;EAY5gB,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,MAAM;QACpC,CAAC,CAAC,8FAA8F;QAChG,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC;CACxC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAoB;IAChE,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,MAAM;QACzD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;gDAE0C,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACtE,CAAC,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,0GAA0G;YAC9I,CAAC,CAAC,sBAAsB,yBAAyB,CAAC,IAAI,CAAC,mCAAmC;;;;CAI3F,CAAC;IACA,OAAO;;EAEP,cAAc;gDACgC,WAAW;;sBAErC,WAAW;uBACV,WAAW;;;EAGhC,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,MAAM;QACpC,CAAC,CAAC,4JAA4J;QAC9J,CAAC,CAAC,qMAAqM;CACxM,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,KAAK,IAAI,CAAC,WAAW;;;;;;;SAOvB,IAAI,CAAC,QAAQ,CAAC,KAAK;sBACN,IAAI,CAAC,QAAQ,CAAC,eAAe;;WAExC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI;;;;;EAKjD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE;EAC/D,6BAA6B,CAAC,IAAI,CAAC;;;;;;;;;EASnC,iCAAiC,CAAC,IAAI,CAAC;EACvC,6BAA6B,CAAC,IAAI,CAAC;EACnC,0BAA0B,CAAC,IAAI,CAAC;EAChC,6BAA6B,CAAC,IAAI,CAAC;EACnC,uBAAuB,CAAC,IAAI,CAAC;CAC9B,CAAC;IACA,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,6EAA6E,kBAAkB,CAAC,IAAI,CAAC;CAC3J,CAAC,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;0DAGK,kBAAkB,CAAC,IAAI,CAAC;CACjF,CAAC,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;;;;;;CAMnD,CAAC,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,KAAK,IAAI,CAAC,WAAW;;;;;;;aAOjB,OAAO,CAAC,KAAK;sBACJ,OAAO,CAAC,cAAc;0BAClB,OAAO,CAAC,WAAW;WAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI;;gDAEH,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,CAAC,EAAE;;;;EAI7I,kBAAkB;EAClB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;EAS/D,6BAA6B,CAAC,IAAI,CAAC;;;;;;;;;;EAUnC,iCAAiC,CAAC,IAAI,CAAC;EACvC,6BAA6B,CAAC,IAAI,CAAC;EACnC,0BAA0B,CAAC,IAAI,CAAC;EAChC,6BAA6B,CAAC,IAAI,CAAC;EACnC,uBAAuB,CAAC,IAAI,CAAC;EAC7B,gBAAgB;EAChB,cAAc;CACf,CAAC;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO;;;;;;;;;;;CAWR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO;WACE,IAAI,CAAC,eAAe;gBACf,OAAO,CAAC,EAAE;iBACT,IAAI,CAAC,QAAQ,CAAC,EAAE;eAClB,IAAI,CAAC,MAAM,CAAC,IAAI;oEACqC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;;;yBAIlF,kCAAkC;;;;;;;;;;;;;CAa1D,CAAC;AACF,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { chmod, mkdir, open, rename, stat, unlink, writeFile } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { canonicalJson, sha256Hex } from '../domain/governance/activation/canonical-json.js';
|
|
4
|
+
import { canonicalJson, isRecord, sha256Hex } from '../domain/governance/activation/canonical-json.js';
|
|
5
5
|
import { readProjectFile } from '../adapters/filesystem/project-files.js';
|
|
6
6
|
import { resolveProjectPath } from '../adapters/filesystem/project-paths.js';
|
|
7
7
|
import { validateArtifactPathParts } from '../domain/project/paths.js';
|
|
8
|
-
import { validateUserActivationState } from '../domain/governance/activation/validators.js';
|
|
8
|
+
import { validateUserActivationState, validateEvidenceHeader } from '../domain/governance/activation/validators.js';
|
|
9
9
|
import { withProjectMutationLock } from '../adapters/filesystem/project-lock.js';
|
|
10
10
|
import { isHistoricalActivationIdentity } from '../domain/governance/policy/identity.js';
|
|
11
|
-
import { inspectActivationMigrationHistory } from './migration-history.js';
|
|
11
|
+
import { activeActivationRecordsWithoutState, inspectActivationMigrationHistory } from './migration-history.js';
|
|
12
|
+
import { validateReadableHistoricalActivationState } from './historical-state.js';
|
|
13
|
+
import { parseHistoryJson } from './history-contracts.js';
|
|
12
14
|
export class ActivationStateFileError extends Error {
|
|
13
15
|
constructor(message) {
|
|
14
16
|
super(message);
|
|
@@ -43,21 +45,51 @@ export function activationStateContentHash(content) {
|
|
|
43
45
|
export async function loadActivationState(projectRoot) {
|
|
44
46
|
const bytes = await readProjectFile(projectRoot, activationStatePathParts());
|
|
45
47
|
if (bytes === undefined) {
|
|
48
|
+
const orphaned = await activeActivationRecordsWithoutState(projectRoot);
|
|
49
|
+
if (orphaned.length > 0) {
|
|
50
|
+
for (const parts of orphaned) {
|
|
51
|
+
if (parts[1] === 'evidence') {
|
|
52
|
+
const raw = await readProjectFile(projectRoot, parts);
|
|
53
|
+
if (raw) {
|
|
54
|
+
try {
|
|
55
|
+
const parsed = JSON.parse(raw.toString('utf8'));
|
|
56
|
+
if (parsed && typeof parsed === 'object') {
|
|
57
|
+
if ('header' in parsed && parsed.header)
|
|
58
|
+
validateEvidenceHeader(parsed.header);
|
|
59
|
+
else if ('extra' in parsed)
|
|
60
|
+
throw new Error('schema validation failed');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
throw new ActivationStateFileError(`Invalid ${parts.join('/')}: ${errorMessage(err)}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
throw new ActivationStateFileError(`governance/activation-state.json is missing while active execution records remain: ${orphaned.map((parts) => parts.join('/')).join(', ')}.`);
|
|
70
|
+
}
|
|
46
71
|
await inspectActivationMigrationHistory(projectRoot);
|
|
47
72
|
return undefined;
|
|
48
73
|
}
|
|
49
74
|
const content = bytes.toString('utf8');
|
|
50
75
|
let parsed;
|
|
51
76
|
try {
|
|
52
|
-
parsed =
|
|
77
|
+
parsed = parseHistoryJson(bytes, 'governance/activation-state.json');
|
|
53
78
|
}
|
|
54
79
|
catch (error) {
|
|
55
80
|
throw new ActivationStateFileError(`Unable to parse governance/activation-state.json: ${errorMessage(error)}`);
|
|
56
81
|
}
|
|
57
82
|
let state;
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
|
|
83
|
+
if (isRecord(parsed) && isHistoricalActivationIdentity(parsed.identity)) {
|
|
84
|
+
try {
|
|
85
|
+
validateReadableHistoricalActivationState(parsed);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw new ActivationStateFileError(`Invalid historical governance/activation-state.json: ${errorMessage(error)}. Historical activation state is diagnostic-only.`);
|
|
89
|
+
}
|
|
90
|
+
throw new ActivationStateFileError(`Historical activation v${parsed.identity.activationContractVersion} state is diagnostic-only. ` +
|
|
91
|
+
'Run liftoff update --check to inspect its declared history-preserving v3 successor; original state, evidence, and approvals remain untouched until explicit approval. ' +
|
|
92
|
+
'Do not reset, delete, relabel, or hand-edit activation history. This is not OpenTofu-state migration.');
|
|
61
93
|
}
|
|
62
94
|
try {
|
|
63
95
|
state = validateUserActivationState(parsed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activation-state.js","sourceRoot":"","sources":["../../src/governance-activation/activation-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,KAAK,EACL,KAAK,EACL,IAAI,EAEJ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,SAAS,EACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"activation-state.js","sourceRoot":"","sources":["../../src/governance-activation/activation-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type UpdatePreviewOptions } from '../adapters/filesystem/update-previews.js';
|
|
2
|
+
import type { ApprovalEnvelope } from '../domain/governance/activation/types.js';
|
|
3
|
+
export declare function assertGovernanceApprovalIssued(projectRoot: string, envelope: ApprovalEnvelope, storage?: UpdatePreviewOptions): Promise<void>;
|
|
4
|
+
export declare function writeGovernanceApprovalAuthority(projectRoot: string, fingerprint: string, envelope: ApprovalEnvelope, storage?: UpdatePreviewOptions): Promise<void>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { realpath } from 'node:fs/promises';
|
|
2
|
+
import { createScopedUserLocalRecordStore } from '../adapters/filesystem/update-previews.js';
|
|
3
|
+
import { canonicalSha256, isRecord } from '../domain/governance/activation/canonical-json.js';
|
|
4
|
+
import { canonicalApprovalEnvelopeHash } from '../domain/governance/activation/approvals.js';
|
|
5
|
+
export async function assertGovernanceApprovalIssued(projectRoot, envelope, storage) {
|
|
6
|
+
const hash = canonicalApprovalEnvelopeHash(envelope);
|
|
7
|
+
const record = await createScopedUserLocalRecordStore(projectRoot, 'governance-approval', storage).read(hash);
|
|
8
|
+
if (!record || !isRecord(record.value) || record.value.kind !== 'liftoff-governance-approval' ||
|
|
9
|
+
record.value.schemaVersion !== 1 || record.value.projectRoot !== record.projectRoot ||
|
|
10
|
+
record.value.envelopeHash !== hash || !Object.hasOwn(record.value, 'envelope') ||
|
|
11
|
+
canonicalSha256(record.value.envelope) !== canonicalSha256(envelope)) {
|
|
12
|
+
throw new Error(`Approval ${envelope.id} has no project-bound authority issued by governance approve; imported files are not permission.`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export async function writeGovernanceApprovalAuthority(projectRoot, fingerprint, envelope, storage) {
|
|
16
|
+
if (!/^[a-f0-9]{64}$/u.test(fingerprint))
|
|
17
|
+
throw new Error('Approval authority requires the exact governance preview fingerprint.');
|
|
18
|
+
const envelopeHash = canonicalApprovalEnvelopeHash(envelope);
|
|
19
|
+
await createScopedUserLocalRecordStore(projectRoot, 'governance-approval', storage).write(envelopeHash, {
|
|
20
|
+
schemaVersion: 1, kind: 'liftoff-governance-approval', projectRoot: await realpath(projectRoot),
|
|
21
|
+
fingerprint, envelopeHash, envelope
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=authority-records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority-records.js","sourceRoot":"","sources":["../../src/governance-activation/authority-records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gCAAgC,EAA6B,MAAM,2CAA2C,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAG7F,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,WAAmB,EACnB,QAA0B,EAC1B,OAA8B;IAE9B,MAAM,IAAI,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,gCAAgC,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9G,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,6BAA6B;QAC3F,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;QACnF,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;QAC9E,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,EAAE,kGAAkG,CAAC,CAAC;IAC7I,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,WAAmB,EACnB,WAAmB,EACnB,QAA0B,EAC1B,OAA8B;IAE9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACnI,MAAM,YAAY,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,gCAAgC,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE;QACtG,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC;QAC/F,WAAW,EAAE,YAAY,EAAE,QAAQ;KACpC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -2,12 +2,20 @@ import type { PresentationSession } from '../terminal.js';
|
|
|
2
2
|
import type { ParsedArgs } from '../domain/project/contracts.js';
|
|
3
3
|
import type { CommandRunner } from '../process-runner.js';
|
|
4
4
|
import { type GovernanceTransitionInspection } from './transitions.js';
|
|
5
|
+
import type { PhaseId } from '../domain/governance/activation/types.js';
|
|
6
|
+
import { type GovernanceScope, type ActivationConfiguration } from '../domain/governance/activation/types.js';
|
|
5
7
|
interface GovernanceCommandContext {
|
|
6
8
|
cwd: string;
|
|
7
9
|
presentation: PresentationSession;
|
|
8
10
|
runner?: CommandRunner;
|
|
9
11
|
}
|
|
10
|
-
|
|
12
|
+
interface GovernanceInspectionOptions {
|
|
13
|
+
scope?: GovernanceScope;
|
|
14
|
+
command?: string;
|
|
15
|
+
activationInputs?: ActivationConfiguration;
|
|
16
|
+
recoverPhase?: PhaseId;
|
|
17
|
+
}
|
|
18
|
+
export declare function inspectGovernanceTransition(projectRoot: string, options?: GovernanceInspectionOptions & {
|
|
11
19
|
runner?: CommandRunner;
|
|
12
20
|
now?: Date;
|
|
13
21
|
}): Promise<GovernanceTransitionInspection>;
|