@msn-control/liftoff 0.10.1 → 0.10.3

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 (39) hide show
  1. package/DEVELOPER.md +8 -1
  2. package/README.md +11 -0
  3. package/dist/artifact-lifecycle.d.ts +18 -1
  4. package/dist/artifact-lifecycle.js +34 -3
  5. package/dist/artifact-lifecycle.js.map +1 -1
  6. package/dist/commands.js +100 -8
  7. package/dist/commands.js.map +1 -1
  8. package/dist/file-system.js +64 -31
  9. package/dist/file-system.js.map +1 -1
  10. package/dist/governance-activation/commands.js +127 -7
  11. package/dist/governance-activation/commands.js.map +1 -1
  12. package/dist/governance-activation/readiness.d.ts +1 -0
  13. package/dist/governance-activation/readiness.js +74 -11
  14. package/dist/governance-activation/readiness.js.map +1 -1
  15. package/dist/governance-activation/seed-lifecycle.d.ts +18 -0
  16. package/dist/governance-activation/seed-lifecycle.js +111 -4
  17. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  18. package/dist/governance-activation/transitions.d.ts +1 -0
  19. package/dist/governance-activation/transitions.js +25 -3
  20. package/dist/governance-activation/transitions.js.map +1 -1
  21. package/dist/power-apps-templates.js +1 -1
  22. package/dist/power-apps-templates.js.map +1 -1
  23. package/dist/reconcile.d.ts +1 -1
  24. package/dist/reconcile.js +42 -0
  25. package/dist/reconcile.js.map +1 -1
  26. package/dist/repository-governance.d.ts +0 -4
  27. package/dist/repository-governance.js +19 -55
  28. package/dist/repository-governance.js.map +1 -1
  29. package/dist/templates.js +28 -6
  30. package/dist/templates.js.map +1 -1
  31. package/docs/cli-reference.md +10 -8
  32. package/docs/configuration-and-manifests.md +3 -2
  33. package/docs/existing-repositories.md +2 -2
  34. package/docs/project-structure.md +4 -6
  35. package/docs/repository-governance.md +16 -9
  36. package/docs/safety-and-consent.md +6 -5
  37. package/docs/troubleshooting.md +3 -2
  38. package/docs/workloads.md +2 -2
  39. package/package.json +1 -1
@@ -3,7 +3,7 @@ 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, managedCoreLogicalNames, legacyProvisioningGroup } from './artifact-lifecycle.js';
6
+ import { isManagedCoreLogicalName, isRetiredManagedCoreArtifactIdentity, isRetiredManagedCoreLogicalName, isUnknownRetiredManagedCoreAliasLogicalName, managedCoreLogicalNames, legacyProvisioningGroup } from './artifact-lifecycle.js';
7
7
  import { governanceArtifactPaths, governancePolicyVersion } from './repository-governance.js';
8
8
  import { currentActivationIdentity } from './governance-activation/graph.js';
9
9
  import { validateActivationIdentity } from './governance-activation/validators.js';
@@ -238,10 +238,17 @@ export async function loadManifest(projectRoot) {
238
238
  else {
239
239
  const normalizedArtifacts = normalizeManifestManagedArtifacts(raw.artifacts, 'Manifest.artifacts');
240
240
  const artifacts = normalizedArtifacts.filter((artifact) => !LEGACY_NON_PROVENANCE_LOGICAL_NAMES.has(artifact.logicalName));
241
+ for (const artifact of artifacts) {
242
+ if (isUnknownRetiredManagedCoreAliasLogicalName(artifact.logicalName)) {
243
+ throw new FileSystemError(`Manifest artifact ${artifact.logicalName} is an unknown retired managed-core alias logical name.`);
244
+ }
245
+ }
241
246
  filteredLegacySeedOwnership = artifacts.length !== normalizedArtifacts.length;
242
- managedArtifacts = artifacts.filter((artifact) => isManagedCoreLogicalName(artifact.logicalName));
247
+ managedArtifacts = artifacts.filter((artifact) => isManagedCoreLogicalName(artifact.logicalName) ||
248
+ isRetiredManagedCoreLogicalName(artifact.logicalName));
243
249
  projectArtifacts = artifacts
244
- .filter((artifact) => !isManagedCoreLogicalName(artifact.logicalName))
250
+ .filter((artifact) => !isManagedCoreLogicalName(artifact.logicalName) &&
251
+ !isRetiredManagedCoreLogicalName(artifact.logicalName))
245
252
  .map((artifact) => ({
246
253
  logicalName: artifact.logicalName,
247
254
  category: artifact.category,
@@ -758,14 +765,30 @@ function normalizeProjectProvisioningGroup(value, scope) {
758
765
  }
759
766
  function validateV6AndV7ArtifactAuthority(managedArtifacts, projectArtifacts) {
760
767
  for (const artifact of managedArtifacts) {
761
- if (!isManagedCoreLogicalName(artifact.logicalName)) {
762
- throw new FileSystemError(`Manifest managed artifact ${artifact.logicalName} is not an explicit managed-core logical name.`);
768
+ if (isManagedCoreLogicalName(artifact.logicalName)) {
769
+ continue;
763
770
  }
771
+ if (isRetiredManagedCoreLogicalName(artifact.logicalName)) {
772
+ if (!isRetiredManagedCoreArtifactIdentity(artifact.logicalName, artifact.category, artifact.pathParts)) {
773
+ throw new FileSystemError(`Retired managed-core artifact ${artifact.logicalName} has invalid identity.`);
774
+ }
775
+ continue;
776
+ }
777
+ if (isUnknownRetiredManagedCoreAliasLogicalName(artifact.logicalName)) {
778
+ throw new FileSystemError(`Manifest managed artifact ${artifact.logicalName} is an unknown retired managed-core alias logical name.`);
779
+ }
780
+ throw new FileSystemError(`Manifest managed artifact ${artifact.logicalName} is not an explicit managed-core logical name.`);
764
781
  }
765
782
  for (const artifact of projectArtifacts) {
766
783
  if (isManagedCoreLogicalName(artifact.logicalName)) {
767
784
  throw new FileSystemError(`Manifest project artifact ${artifact.logicalName} cannot contain a managed-core logical name.`);
768
785
  }
786
+ if (isRetiredManagedCoreLogicalName(artifact.logicalName)) {
787
+ throw new FileSystemError(`Manifest project artifact ${artifact.logicalName} cannot contain a retired managed-core logical name.`);
788
+ }
789
+ if (isUnknownRetiredManagedCoreAliasLogicalName(artifact.logicalName)) {
790
+ throw new FileSystemError(`Manifest project artifact ${artifact.logicalName} cannot contain an unknown retired managed-core alias logical name.`);
791
+ }
769
792
  }
770
793
  }
771
794
  function validateManifestArtifactUniqueness(managedArtifacts, projectArtifacts) {
@@ -800,14 +823,6 @@ const governanceLogicalPaths = new Map([
800
823
  [
801
824
  'liftoff-setup-claude',
802
825
  governanceArtifactPaths.setup.claude
803
- ],
804
- [
805
- 'repository-governance-copilot-launcher',
806
- governanceArtifactPaths.alias['github-copilot']
807
- ],
808
- [
809
- 'repository-governance-claude-launcher',
810
- governanceArtifactPaths.alias.claude
811
826
  ]
812
827
  ]);
813
828
  function validateGovernanceArtifactIdentity(manifest) {
@@ -815,11 +830,17 @@ function validateGovernanceArtifactIdentity(manifest) {
815
830
  throw new FileSystemError('governance/activation-baseline.json is user-owned and cannot be a Liftoff manifest artifact.');
816
831
  }
817
832
  const governanceArtifacts = manifest.managedArtifacts.filter((artifact) => governanceLogicalPaths.has(artifact.logicalName));
833
+ const retiredGovernanceArtifacts = manifest.managedArtifacts.filter((artifact) => isRetiredManagedCoreLogicalName(artifact.logicalName));
834
+ for (const artifact of retiredGovernanceArtifacts) {
835
+ if (!isRetiredManagedCoreArtifactIdentity(artifact.logicalName, artifact.category, artifact.pathParts)) {
836
+ throw new FileSystemError(`Retired managed-core artifact ${artifact.logicalName} has invalid identity.`);
837
+ }
838
+ }
818
839
  if (manifest.governance.profile === 'unspecified') {
819
840
  return;
820
841
  }
821
842
  if (manifest.governance.profile === 'none') {
822
- if (governanceArtifacts.length > 0) {
843
+ if (governanceArtifacts.length > 0 || retiredGovernanceArtifacts.length > 0) {
823
844
  throw new FileSystemError('Disabled manifest governance cannot own governance handoff artifacts.');
824
845
  }
825
846
  return;
@@ -833,10 +854,7 @@ function validateGovernanceArtifactIdentity(manifest) {
833
854
  'repository-governance-credential-policy-schema',
834
855
  ...manifest.project.agents.map((agent) => agent === 'github-copilot'
835
856
  ? 'liftoff-setup-copilot'
836
- : 'liftoff-setup-claude'),
837
- ...manifest.project.agents.map((agent) => agent === 'github-copilot'
838
- ? 'repository-governance-copilot-launcher'
839
- : 'repository-governance-claude-launcher')
857
+ : 'liftoff-setup-claude')
840
858
  ];
841
859
  const missing = [];
842
860
  for (const logicalName of required) {
@@ -857,12 +875,14 @@ function validateGovernanceArtifactIdentity(manifest) {
857
875
  if (manifest.governance.state === 'handoff-generated' && missing.length > 0) {
858
876
  throw new FileSystemError(`Enabled manifest governance is missing artifact ${missing[0]}.`);
859
877
  }
860
- if (manifest.governance.state === 'handoff-partial' && missing.length === 0) {
861
- throw new FileSystemError('Manifest governance state handoff-partial requires at least one applicable artifact to remain outside Liftoff ownership.');
878
+ if (manifest.governance.state === 'handoff-partial' &&
879
+ missing.length === 0 &&
880
+ retiredGovernanceArtifacts.length === 0) {
881
+ throw new FileSystemError('Manifest governance state handoff-partial requires at least one applicable artifact to remain outside Liftoff ownership or one protected retired alias to remain tracked.');
862
882
  }
863
883
  for (const artifact of governanceArtifacts) {
864
884
  if (!required.includes(artifact.logicalName)) {
865
- throw new FileSystemError(`Manifest governance contains inapplicable launcher ${artifact.logicalName}.`);
885
+ throw new FileSystemError(`Manifest governance contains inapplicable setup integration ${artifact.logicalName}.`);
866
886
  }
867
887
  }
868
888
  }
@@ -876,6 +896,15 @@ export async function validateGeneratedProject(projectRoot) {
876
896
  }
877
897
  const issues = [];
878
898
  for (const artifact of manifest.managedArtifacts) {
899
+ if (isRetiredManagedCoreLogicalName(artifact.logicalName)) {
900
+ try {
901
+ await resolveProjectPath(projectRoot, artifact.pathParts);
902
+ }
903
+ catch (error) {
904
+ issues.push(`Unsafe retired managed-core path for ${artifact.logicalName} at ${artifact.pathParts.join('/')}: ${errorMessage(error)}`);
905
+ }
906
+ continue;
907
+ }
879
908
  try {
880
909
  const targetPath = await resolveProjectPath(projectRoot, artifact.pathParts);
881
910
  const bytes = await readFile(targetPath);
@@ -903,21 +932,25 @@ export async function validateGeneratedProject(projectRoot) {
903
932
  issues.push(`Missing artifact ${compatibilityArtifact.logicalName} at ${compatibilityArtifact.pathParts.join('/')}`);
904
933
  }
905
934
  else {
906
- const expectedInventory = manifest.managedArtifacts.map((artifact) => ({
935
+ const hasRetiredManagedArtifacts = manifest.managedArtifacts.some((artifact) => isRetiredManagedCoreLogicalName(artifact.logicalName));
936
+ const currentManagedArtifacts = manifest.managedArtifacts.filter((artifact) => !isRetiredManagedCoreLogicalName(artifact.logicalName));
937
+ const expectedInventory = currentManagedArtifacts.map((artifact) => ({
907
938
  logicalName: artifact.logicalName,
908
939
  pathParts: artifact.pathParts,
909
940
  lifecycle: 'managed-core',
910
941
  contentHashAuthority: 'liftoff.manifest.json managedArtifacts[].contentHash'
911
942
  }));
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
- });
943
+ validateGovernanceCompatibilityMetadata(JSON.parse(bytes.toString('utf8')), hasRetiredManagedArtifacts
944
+ ? undefined
945
+ : manifest.governance.state === 'handoff-generated'
946
+ ? {
947
+ logicalNameAllowlist: managedCoreLogicalNames,
948
+ pathAllowlist: currentManagedArtifacts.map((artifact) => artifact.pathParts),
949
+ inventory: expectedInventory
950
+ }
951
+ : {
952
+ logicalNameAllowlist: managedCoreLogicalNames
953
+ });
921
954
  }
922
955
  }
923
956
  catch (error) {
@@ -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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"}
@@ -13,6 +13,7 @@ import { governanceActivationPolicyVersion } from './identity.js';
13
13
  import { calculatePhaseReadiness } from './readiness.js';
14
14
  import { projectOpenSpecTaskCheckboxes } from './task-projection.js';
15
15
  import { inspectGovernanceSourceOfTruth } from './source-of-truth.js';
16
+ import { inspectArchivedSeedIntegrity } from './seed-lifecycle.js';
16
17
  import { executeApplyNext, previewApplyNext } from './transitions.js';
17
18
  import { phaseIds } from './types.js';
18
19
  import { validateApprovalEnvelope, validateEvidenceHeader, validateLiveReadbackProof, validateManagedPhaseGraph, validateCredentialPolicy } from './validators.js';
@@ -33,6 +34,17 @@ const terminalEvidenceStates = new Set([
33
34
  'retained',
34
35
  'disposed'
35
36
  ]);
37
+ const successfulSetupStates = new Set([
38
+ 'approved',
39
+ 'verified',
40
+ 'inapplicable',
41
+ 'retained',
42
+ 'disposed'
43
+ ]);
44
+ const terminalPhaseStates = new Set([
45
+ ...successfulSetupStates,
46
+ 'failed'
47
+ ]);
36
48
  function errorMessage(error) {
37
49
  return error instanceof Error ? error.message : String(error);
38
50
  }
@@ -387,6 +399,7 @@ async function inspectGovernance(projectRoot) {
387
399
  state,
388
400
  evidence
389
401
  });
402
+ const archivedSeedIntegrity = await inspectArchivedSeedIntegrity(projectRoot, manifest);
390
403
  const now = new Date();
391
404
  const credential = await inspectCredentialPolicy(projectRoot, state);
392
405
  const contexts = buildEvidenceContexts(graph.graph, state, now);
@@ -397,6 +410,9 @@ async function inspectGovernance(projectRoot) {
397
410
  approvals,
398
411
  evidence,
399
412
  transitionContexts: contexts,
413
+ phaseBlockers: archivedSeedIntegrity.status === 'invalid'
414
+ ? { 'seed-archived': archivedSeedIntegrity.issues }
415
+ : undefined,
400
416
  now
401
417
  });
402
418
  return {
@@ -412,7 +428,8 @@ async function inspectGovernance(projectRoot) {
412
428
  evidenceFreshness,
413
429
  readiness,
414
430
  sourceOfTruth,
415
- credential
431
+ credential,
432
+ archivedSeedIntegrity
416
433
  };
417
434
  }
418
435
  async function assertPolicyIdentity(projectRoot, manifest) {
@@ -669,6 +686,32 @@ function validateStateEvidence(inspection) {
669
686
  }
670
687
  return { id: 'state-evidence', status: issues.length === 0 ? 'passed' : 'failed', issues };
671
688
  }
689
+ function validatePhaseTerminalStates(inspection) {
690
+ const issues = [];
691
+ for (const phase of inspection.graph.graph.phases) {
692
+ const allowed = phase.terminalStates;
693
+ const stored = inspection.state.phases[phase.id].state;
694
+ const selected = selectLatestPhaseEvidence(inspection.evidence.filter((record) => record.header.phaseId === phase.id), inspection.contexts[phase.id]).selected;
695
+ if (selected && !allowed.includes(selected.header.result)) {
696
+ issues.push(`Evidence ${selected.evidenceId} reports ${selected.header.result}, ` +
697
+ `which is not an allowed terminal state for ${phase.id}.`);
698
+ }
699
+ if (terminalPhaseStates.has(stored) && !allowed.includes(stored)) {
700
+ issues.push(`Phase ${phase.id} is stored as ${stored}, which is not an allowed terminal state.`);
701
+ }
702
+ const calculated = inspection.readiness.phases[phase.id].state;
703
+ if (calculated !== 'identity-incompatible' &&
704
+ terminalPhaseStates.has(calculated) &&
705
+ !allowed.includes(calculated)) {
706
+ issues.push(`Phase ${phase.id} resolves to ${calculated}, which is not an allowed terminal state.`);
707
+ }
708
+ }
709
+ return {
710
+ id: 'phase-terminal-state',
711
+ status: issues.length === 0 ? 'passed' : 'failed',
712
+ issues
713
+ };
714
+ }
672
715
  function validateEvidenceFreshnessCheck(inspection) {
673
716
  const issues = phaseIds.flatMap((phaseId) => {
674
717
  const freshness = inspection.evidenceFreshness[phaseId];
@@ -678,6 +721,20 @@ function validateEvidenceFreshnessCheck(inspection) {
678
721
  });
679
722
  return { id: 'evidence-freshness', status: issues.length === 0 ? 'passed' : 'failed', issues };
680
723
  }
724
+ function archivedSeedIntegrityCheck(inspection) {
725
+ if (inspection.archivedSeedIntegrity.status === 'invalid') {
726
+ return {
727
+ id: 'archived-seed-integrity',
728
+ status: 'failed',
729
+ issues: inspection.archivedSeedIntegrity.issues
730
+ };
731
+ }
732
+ return {
733
+ id: 'archived-seed-integrity',
734
+ status: inspection.archivedSeedIntegrity.status === 'valid' ? 'passed' : 'skipped',
735
+ issues: []
736
+ };
737
+ }
681
738
  function validateReadinessCheck(inspection) {
682
739
  if (inspection.readiness.identityCompatible) {
683
740
  return { id: 'readiness', status: 'passed', issues: [] };
@@ -822,22 +879,69 @@ async function verifyChecks(inspection) {
822
879
  },
823
880
  activeChangeIdentityCheck(inspection),
824
881
  activeSourceOfTruthCheck(inspection),
882
+ archivedSeedIntegrityCheck(inspection),
825
883
  validateEvidenceFreshnessCheck(inspection),
826
884
  validateStateEvidence(inspection),
885
+ validatePhaseTerminalStates(inspection),
827
886
  credentialPolicyCheck(inspection),
828
887
  liveReadbackCheck(inspection),
829
888
  await activeTaskProjectionCheck(inspection),
830
889
  validateReadinessCheck(inspection)
831
890
  ];
832
891
  }
892
+ function setupCompletion(inspection) {
893
+ if (inspection.stateSource === 'not-started') {
894
+ return {
895
+ status: 'not-started',
896
+ complete: false,
897
+ summary: `Verification is consistent, but setup has not started. Next ready phase: ${inspection.readiness.nextReadyPhase ?? 'none'}.`
898
+ };
899
+ }
900
+ const terminal = inspection.readiness.phases['bootstrap-state-disposed'].state;
901
+ const everyPhaseComplete = inspection.graph.graph.phases.every((phase) => {
902
+ const phaseId = phase.id;
903
+ const state = inspection.readiness.phases[phaseId].state;
904
+ return state !== 'identity-incompatible' &&
905
+ successfulSetupStates.has(state) &&
906
+ phase.terminalStates.includes(state);
907
+ });
908
+ if (everyPhaseComplete && (terminal === 'disposed' || terminal === 'inapplicable')) {
909
+ return {
910
+ status: 'complete',
911
+ complete: true,
912
+ summary: 'Verification is consistent and deterministic setup is complete.'
913
+ };
914
+ }
915
+ return {
916
+ status: 'in-progress',
917
+ complete: false,
918
+ summary: inspection.readiness.nextReadyPhase
919
+ ? `Verification is consistent, but setup is incomplete. Next ready phase: ${inspection.readiness.nextReadyPhase}.`
920
+ : 'Verification is consistent, but setup is incomplete and currently blocked.'
921
+ };
922
+ }
833
923
  async function verifyJson(inspection) {
834
924
  const checks = await verifyChecks(inspection);
925
+ const consistent = checks.every((check) => check.status !== 'failed');
926
+ const completion = setupCompletion(inspection);
927
+ const summary = consistent
928
+ ? completion.summary
929
+ : 'Verification found inconsistent governance state; setup is not complete.';
930
+ const setupStatus = consistent || completion.status === 'not-started'
931
+ ? completion.status
932
+ : 'in-progress';
835
933
  return {
836
934
  schemaVersion: 1,
837
935
  command: 'governance verify',
838
936
  projectRoot: inspection.projectRoot,
839
937
  readOnly: true,
840
- ok: checks.every((check) => check.status !== 'failed'),
938
+ ok: consistent,
939
+ consistent,
940
+ verificationStatus: consistent ? 'consistent' : 'inconsistent',
941
+ complete: consistent && completion.complete,
942
+ setupStatus,
943
+ stateSource: inspection.stateSource,
944
+ summary,
841
945
  activationIdentity: inspection.state.identity,
842
946
  graphHash: inspection.graph.hash,
843
947
  activeChange: inspection.state.activeChange,
@@ -850,6 +954,7 @@ async function renderVerifyHuman(inspection, presentation) {
850
954
  const result = await verifyJson(inspection);
851
955
  const checks = result.checks;
852
956
  presentation.commandIdentity('governance verify', 'Read-only activation verification');
957
+ presentation.status(result.complete ? 'success' : result.consistent ? 'pending' : 'error', 'setup-completion', result.summary);
853
958
  for (const check of checks) {
854
959
  presentation.status(check.status === 'failed' ? 'error' : check.status === 'skipped' ? 'info' : 'success', check.id, check.issues[0]);
855
960
  }
@@ -862,6 +967,16 @@ function renderInspectionFailure(subcommand, projectRoot, error, presentation, j
862
967
  projectRoot,
863
968
  readOnly: true,
864
969
  ok: false,
970
+ ...(subcommand === 'verify'
971
+ ? {
972
+ consistent: false,
973
+ verificationStatus: 'inconsistent',
974
+ complete: false,
975
+ setupStatus: 'indeterminate',
976
+ stateSource: 'unavailable',
977
+ summary: 'Verification could not inspect governance state; setup completion is indeterminate.'
978
+ }
979
+ : {}),
865
980
  checks: [{
866
981
  id: 'inspection',
867
982
  status: 'failed',
@@ -992,12 +1107,17 @@ export async function governanceCommand(parsed, context) {
992
1107
  return 0;
993
1108
  }
994
1109
  if (subcommand === 'verify') {
995
- if (jsonMode) {
996
- const result = await verifyJson(inspection);
997
- json(presentation, result);
998
- return result.ok === true ? 0 : 1;
1110
+ try {
1111
+ if (jsonMode) {
1112
+ const result = await verifyJson(inspection);
1113
+ json(presentation, result);
1114
+ return result.ok === true ? 0 : 1;
1115
+ }
1116
+ return await renderVerifyHuman(inspection, presentation);
1117
+ }
1118
+ catch (error) {
1119
+ return renderInspectionFailure(subcommand, projectRoot, error, presentation, jsonMode);
999
1120
  }
1000
- return await renderVerifyHuman(inspection, presentation);
1001
1121
  }
1002
1122
  const execute = readBooleanFlag(parsed.flags, 'execute') ?? false;
1003
1123
  const transitionInput = transitionInspection(inspection);