@cleocode/core 2026.10.27 → 2026.11.1-canary.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.
- package/README.md +2 -0
- package/binaries/README.md +30 -10
- package/dist/.source-stamp.json +4 -0
- package/dist/audit/reconstruct.d.ts.map +1 -1
- package/dist/audit/reconstruct.js +3 -13
- package/dist/audit/reconstruct.js.map +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/nexus-cloud.d.ts.map +1 -1
- package/dist/cloud/nexus-cloud.js +3 -3
- package/dist/cloud/nexus-cloud.js.map +1 -1
- package/dist/cloud/nexus-device.d.ts +1 -1
- package/dist/cloud/nexus-link.d.ts +18 -2
- package/dist/cloud/nexus-link.d.ts.map +1 -1
- package/dist/cloud/nexus-link.js +26 -6
- package/dist/cloud/nexus-link.js.map +1 -1
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +3 -9
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/decide/sites/registry.d.ts +40 -0
- package/dist/decide/sites/registry.d.ts.map +1 -1
- package/dist/decide/sites/registry.js +38 -0
- package/dist/decide/sites/registry.js.map +1 -1
- package/dist/docs/adr-allocator.d.ts +3 -3
- package/dist/docs/adr-allocator.d.ts.map +1 -1
- package/dist/docs/adr-allocator.js +8 -5
- package/dist/docs/adr-allocator.js.map +1 -1
- package/dist/docs/blob-consolidation.d.ts.map +1 -1
- package/dist/docs/blob-consolidation.js +3 -2
- package/dist/docs/blob-consolidation.js.map +1 -1
- package/dist/docs/derive-links.d.ts +12 -0
- package/dist/docs/derive-links.d.ts.map +1 -1
- package/dist/docs/derive-links.js +19 -0
- package/dist/docs/derive-links.js.map +1 -1
- package/dist/docs/doc-name-rule.d.ts +105 -0
- package/dist/docs/doc-name-rule.d.ts.map +1 -0
- package/dist/docs/doc-name-rule.js +212 -0
- package/dist/docs/doc-name-rule.js.map +1 -0
- package/dist/docs/docs-inconsistency-detector.d.ts.map +1 -1
- package/dist/docs/docs-inconsistency-detector.js +4 -3
- package/dist/docs/docs-inconsistency-detector.js.map +1 -1
- package/dist/docs/docs-ops.d.ts +27 -5
- package/dist/docs/docs-ops.d.ts.map +1 -1
- package/dist/docs/docs-ops.js +149 -17
- package/dist/docs/docs-ops.js.map +1 -1
- package/dist/docs/docs-read-model.d.ts +45 -15
- package/dist/docs/docs-read-model.d.ts.map +1 -1
- package/dist/docs/docs-read-model.js +22 -102
- package/dist/docs/docs-read-model.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +8 -2
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/doctor.d.ts +71 -4
- package/dist/docs/doctor.d.ts.map +1 -1
- package/dist/docs/doctor.js +324 -23
- package/dist/docs/doctor.js.map +1 -1
- package/dist/docs/duplicate-check.d.ts +138 -0
- package/dist/docs/duplicate-check.d.ts.map +1 -0
- package/dist/docs/duplicate-check.js +286 -0
- package/dist/docs/duplicate-check.js.map +1 -0
- package/dist/docs/fetch-result.d.ts.map +1 -1
- package/dist/docs/fetch-result.js +27 -0
- package/dist/docs/fetch-result.js.map +1 -1
- package/dist/docs/import/scanner.d.ts +2 -0
- package/dist/docs/import/scanner.d.ts.map +1 -1
- package/dist/docs/import/scanner.js +3 -1
- package/dist/docs/import/scanner.js.map +1 -1
- package/dist/docs/lineage.d.ts +66 -0
- package/dist/docs/lineage.d.ts.map +1 -0
- package/dist/docs/lineage.js +190 -0
- package/dist/docs/lineage.js.map +1 -0
- package/dist/docs/modernize/apply.d.ts +139 -0
- package/dist/docs/modernize/apply.d.ts.map +1 -0
- package/dist/docs/modernize/apply.js +760 -0
- package/dist/docs/modernize/apply.js.map +1 -0
- package/dist/docs/modernize/guard.d.ts +92 -0
- package/dist/docs/modernize/guard.d.ts.map +1 -0
- package/dist/docs/modernize/guard.js +214 -0
- package/dist/docs/modernize/guard.js.map +1 -0
- package/dist/docs/modernize/index.d.ts +68 -0
- package/dist/docs/modernize/index.d.ts.map +1 -0
- package/dist/docs/modernize/index.js +97 -0
- package/dist/docs/modernize/index.js.map +1 -0
- package/dist/docs/modernize/judge.d.ts +85 -0
- package/dist/docs/modernize/judge.d.ts.map +1 -0
- package/dist/docs/modernize/judge.js +186 -0
- package/dist/docs/modernize/judge.js.map +1 -0
- package/dist/docs/modernize/plan.d.ts +77 -0
- package/dist/docs/modernize/plan.d.ts.map +1 -0
- package/dist/docs/modernize/plan.js +510 -0
- package/dist/docs/modernize/plan.js.map +1 -0
- package/dist/docs/modernize/restore.d.ts +41 -0
- package/dist/docs/modernize/restore.d.ts.map +1 -0
- package/dist/docs/modernize/restore.js +103 -0
- package/dist/docs/modernize/restore.js.map +1 -0
- package/dist/docs/modernize/rules.d.ts +197 -0
- package/dist/docs/modernize/rules.d.ts.map +1 -0
- package/dist/docs/modernize/rules.js +510 -0
- package/dist/docs/modernize/rules.js.map +1 -0
- package/dist/docs/modernize/store.d.ts +64 -0
- package/dist/docs/modernize/store.d.ts.map +1 -0
- package/dist/docs/modernize/store.js +390 -0
- package/dist/docs/modernize/store.js.map +1 -0
- package/dist/docs/publications-store.d.ts +16 -2
- package/dist/docs/publications-store.d.ts.map +1 -1
- package/dist/docs/publications-store.js +23 -2
- package/dist/docs/publications-store.js.map +1 -1
- package/dist/docs/publish-pr.d.ts.map +1 -1
- package/dist/docs/publish-pr.js +12 -1
- package/dist/docs/publish-pr.js.map +1 -1
- package/dist/docs/rot.d.ts +94 -0
- package/dist/docs/rot.d.ts.map +1 -0
- package/dist/docs/rot.js +298 -0
- package/dist/docs/rot.js.map +1 -0
- package/dist/docs/similarity-check.d.ts +2 -0
- package/dist/docs/similarity-check.d.ts.map +1 -1
- package/dist/docs/similarity-check.js +6 -49
- package/dist/docs/similarity-check.js.map +1 -1
- package/dist/docs/slug-rename.d.ts +84 -0
- package/dist/docs/slug-rename.d.ts.map +1 -0
- package/dist/docs/slug-rename.js +166 -0
- package/dist/docs/slug-rename.js.map +1 -0
- package/dist/docs/slug-similarity.d.ts +24 -0
- package/dist/docs/slug-similarity.d.ts.map +1 -0
- package/dist/docs/slug-similarity.js +63 -0
- package/dist/docs/slug-similarity.js.map +1 -0
- package/dist/docs/wikilinks.d.ts +20 -4
- package/dist/docs/wikilinks.d.ts.map +1 -1
- package/dist/docs/wikilinks.js +52 -7
- package/dist/docs/wikilinks.js.map +1 -1
- package/dist/docs/writer-registry.d.ts.map +1 -1
- package/dist/docs/writer-registry.js +33 -0
- package/dist/docs/writer-registry.js.map +1 -1
- package/dist/doctor/type-matrix-repair.d.ts +194 -0
- package/dist/doctor/type-matrix-repair.d.ts.map +1 -0
- package/dist/doctor/type-matrix-repair.js +662 -0
- package/dist/doctor/type-matrix-repair.js.map +1 -0
- package/dist/gateway-client/generated/index.d.ts +2 -2
- package/dist/gateway-client/generated/index.d.ts.map +1 -1
- package/dist/gateway-client/generated/index.js +1 -1
- package/dist/gateway-client/generated/index.js.map +1 -1
- package/dist/gateway-client/generated/namespaces.gen.d.ts +5 -0
- package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -1
- package/dist/gateway-client/generated/namespaces.gen.js +6 -1
- package/dist/gateway-client/generated/namespaces.gen.js.map +1 -1
- package/dist/gateway-client/generated/sdk.gen.d.ts +21 -1
- package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -1
- package/dist/gateway-client/generated/sdk.gen.js +55 -0
- package/dist/gateway-client/generated/sdk.gen.js.map +1 -1
- package/dist/gateway-client/generated/types.gen.d.ts +222 -0
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
- package/dist/gc/gc-subsystem.d.ts +4 -0
- package/dist/gc/gc-subsystem.d.ts.map +1 -1
- package/dist/gc/gc-subsystem.js +16 -0
- package/dist/gc/gc-subsystem.js.map +1 -1
- package/dist/git/work-tree.d.ts +48 -0
- package/dist/git/work-tree.d.ts.map +1 -1
- package/dist/git/work-tree.js +63 -1
- package/dist/git/work-tree.js.map +1 -1
- package/dist/hooks/handlers/session-hooks.d.ts +5 -4
- package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/session-hooks.js +5 -21
- package/dist/hooks/handlers/session-hooks.js.map +1 -1
- package/dist/internal.d.ts +5 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +5 -1
- package/dist/internal.js.map +1 -1
- package/dist/memory/brain-doctor.d.ts.map +1 -1
- package/dist/memory/brain-doctor.js +6 -1
- package/dist/memory/brain-doctor.js.map +1 -1
- package/dist/memory/engine-compat.d.ts.map +1 -1
- package/dist/memory/engine-compat.js +6 -0
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/nexus/analyze-orchestrator.d.ts +24 -0
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +43 -5
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/user-profile.d.ts +2 -1
- package/dist/nexus/user-profile.d.ts.map +1 -1
- package/dist/nexus/user-profile.js +13 -5
- package/dist/nexus/user-profile.js.map +1 -1
- package/dist/orchestrate/admission.d.ts +8 -0
- package/dist/orchestrate/admission.d.ts.map +1 -1
- package/dist/orchestrate/admission.js +3 -1
- package/dist/orchestrate/admission.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +15 -4
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +43 -2
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/index.d.ts +6 -0
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +3 -0
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +3 -1
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/paths.d.ts +43 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +51 -1
- package/dist/paths.js.map +1 -1
- package/dist/project-lifecycle.d.ts.map +1 -1
- package/dist/project-lifecycle.js +31 -0
- package/dist/project-lifecycle.js.map +1 -1
- package/dist/release/authorization.d.ts +156 -0
- package/dist/release/authorization.d.ts.map +1 -0
- package/dist/release/authorization.js +460 -0
- package/dist/release/authorization.js.map +1 -0
- package/dist/release/ci-evidence.d.ts +55 -4
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +251 -22
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/release/ci-run-evidence.d.ts +107 -0
- package/dist/release/ci-run-evidence.d.ts.map +1 -0
- package/dist/release/ci-run-evidence.js +234 -0
- package/dist/release/ci-run-evidence.js.map +1 -0
- package/dist/release/cut.d.ts +231 -0
- package/dist/release/cut.d.ts.map +1 -0
- package/dist/release/cut.js +775 -0
- package/dist/release/cut.js.map +1 -0
- package/dist/release/deploy-evidence.d.ts +173 -0
- package/dist/release/deploy-evidence.d.ts.map +1 -0
- package/dist/release/deploy-evidence.js +381 -0
- package/dist/release/deploy-evidence.js.map +1 -0
- package/dist/release/engine-ops.d.ts.map +1 -1
- package/dist/release/engine-ops.js +10 -4
- package/dist/release/engine-ops.js.map +1 -1
- package/dist/release/index.d.ts +3 -0
- package/dist/release/index.d.ts.map +1 -1
- package/dist/release/index.js +2 -0
- package/dist/release/index.js.map +1 -1
- package/dist/release/invariants/archive-reason-invariant.d.ts.map +1 -1
- package/dist/release/invariants/archive-reason-invariant.js +4 -1
- package/dist/release/invariants/archive-reason-invariant.js.map +1 -1
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +2 -6
- package/dist/release/open.js.map +1 -1
- package/dist/release/plan.d.ts +34 -2
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +30 -6
- package/dist/release/plan.js.map +1 -1
- package/dist/release/preflight-skip.d.ts +4 -19
- package/dist/release/preflight-skip.d.ts.map +1 -1
- package/dist/release/preflight-skip.js +5 -110
- package/dist/release/preflight-skip.js.map +1 -1
- package/dist/release/reconcile-latest.d.ts +29 -0
- package/dist/release/reconcile-latest.d.ts.map +1 -0
- package/dist/release/reconcile-latest.js +71 -0
- package/dist/release/reconcile-latest.js.map +1 -0
- package/dist/release/reconcile.d.ts +3 -1
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +18 -6
- package/dist/release/reconcile.js.map +1 -1
- package/dist/release/release-published.d.ts +27 -0
- package/dist/release/release-published.d.ts.map +1 -0
- package/dist/release/release-published.js +35 -0
- package/dist/release/release-published.js.map +1 -0
- package/dist/release/tty-confirm.d.ts +23 -0
- package/dist/release/tty-confirm.d.ts.map +1 -0
- package/dist/release/tty-confirm.js +50 -0
- package/dist/release/tty-confirm.js.map +1 -0
- package/dist/remote/index.js +1 -1
- package/dist/remote/index.js.map +1 -1
- package/dist/resources/admission-ledger.d.ts +103 -1
- package/dist/resources/admission-ledger.d.ts.map +1 -1
- package/dist/resources/admission-ledger.js +200 -17
- package/dist/resources/admission-ledger.js.map +1 -1
- package/dist/resources/agent-lease.d.ts +82 -0
- package/dist/resources/agent-lease.d.ts.map +1 -0
- package/dist/resources/agent-lease.js +167 -0
- package/dist/resources/agent-lease.js.map +1 -0
- package/dist/resources/governor.d.ts +27 -1
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +88 -4
- package/dist/resources/governor.js.map +1 -1
- package/dist/resources/hook-footprint.d.ts +13 -1
- package/dist/resources/hook-footprint.d.ts.map +1 -1
- package/dist/resources/hook-footprint.js +33 -7
- package/dist/resources/hook-footprint.js.map +1 -1
- package/dist/resources/run-governed.d.ts +25 -0
- package/dist/resources/run-governed.d.ts.map +1 -1
- package/dist/resources/run-governed.js +44 -3
- package/dist/resources/run-governed.js.map +1 -1
- package/dist/sagas/reconcile.d.ts.map +1 -1
- package/dist/sagas/reconcile.js +11 -0
- package/dist/sagas/reconcile.js.map +1 -1
- package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
- package/dist/scaffold/ensure-dirs.js +8 -6
- package/dist/scaffold/ensure-dirs.js.map +1 -1
- package/dist/security/override-cap-setting.d.ts +132 -0
- package/dist/security/override-cap-setting.d.ts.map +1 -1
- package/dist/security/override-cap-setting.js +88 -10
- package/dist/security/override-cap-setting.js.map +1 -1
- package/dist/security/owner-override-authority.d.ts.map +1 -1
- package/dist/security/owner-override-authority.js +5 -1
- package/dist/security/owner-override-authority.js.map +1 -1
- package/dist/selfimprove/draft-pr.d.ts.map +1 -1
- package/dist/selfimprove/draft-pr.js +4 -1
- package/dist/selfimprove/draft-pr.js.map +1 -1
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +4 -16
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +6 -0
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +34 -0
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/session-end-snapshot-entry.js +2 -2
- package/dist/sessions/session-end-snapshot-entry.js.map +1 -1
- package/dist/sessions/session-end-snapshot.js +4 -4
- package/dist/sessions/session-end-snapshot.js.map +1 -1
- package/dist/skills/injection/token.d.ts.map +1 -1
- package/dist/skills/injection/token.js +3 -6
- package/dist/skills/injection/token.js.map +1 -1
- package/dist/skills/orchestrator/spawn.d.ts.map +1 -1
- package/dist/skills/orchestrator/spawn.js +3 -4
- package/dist/skills/orchestrator/spawn.js.map +1 -1
- package/dist/skills/propose-patch.d.ts.map +1 -1
- package/dist/skills/propose-patch.js +4 -1
- package/dist/skills/propose-patch.js.map +1 -1
- package/dist/spawn/branch-integration.d.ts.map +1 -1
- package/dist/spawn/branch-integration.js +5 -2
- package/dist/spawn/branch-integration.js.map +1 -1
- package/dist/store/attachment-repair.d.ts.map +1 -1
- package/dist/store/attachment-repair.js +5 -4
- package/dist/store/attachment-repair.js.map +1 -1
- package/dist/store/attachment-store.d.ts +6 -0
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +19 -2
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/blob-ops.d.ts +1 -1
- package/dist/store/blob-ops.d.ts.map +1 -1
- package/dist/store/blob-ops.js +7 -3
- package/dist/store/blob-ops.js.map +1 -1
- package/dist/store/conduit-doc-history.d.ts +15 -1
- package/dist/store/conduit-doc-history.d.ts.map +1 -1
- package/dist/store/conduit-doc-history.js +16 -10
- package/dist/store/conduit-doc-history.js.map +1 -1
- package/dist/store/db-helpers.d.ts +29 -0
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +89 -1
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/decision-adr-links.d.ts.map +1 -1
- package/dist/store/decision-adr-links.js +5 -2
- package/dist/store/decision-adr-links.js.map +1 -1
- package/dist/store/git-checkpoint.d.ts +11 -1
- package/dist/store/git-checkpoint.d.ts.map +1 -1
- package/dist/store/git-checkpoint.js +14 -3
- package/dist/store/git-checkpoint.js.map +1 -1
- package/dist/store/llmtxt-blob-adapter.d.ts.map +1 -1
- package/dist/store/llmtxt-blob-adapter.js +4 -1
- package/dist/store/llmtxt-blob-adapter.js.map +1 -1
- package/dist/store/schema/attachments.d.ts +7 -5
- package/dist/store/schema/attachments.d.ts.map +1 -1
- package/dist/store/schema/attachments.js +5 -2
- package/dist/store/schema/attachments.js.map +1 -1
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +6 -0
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sqlite-backup.d.ts +6 -1
- package/dist/store/sqlite-backup.d.ts.map +1 -1
- package/dist/store/sqlite-backup.js +9 -5
- package/dist/store/sqlite-backup.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +63 -36
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/system/backup.d.ts +29 -0
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +240 -37
- package/dist/system/backup.js.map +1 -1
- package/dist/system/dependencies.d.ts +22 -0
- package/dist/system/dependencies.d.ts.map +1 -1
- package/dist/system/dependencies.js +49 -2
- package/dist/system/dependencies.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +23 -1
- package/dist/system/health.js.map +1 -1
- package/dist/task-work/claims.d.ts.map +1 -1
- package/dist/task-work/claims.js +14 -0
- package/dist/task-work/claims.js.map +1 -1
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +22 -0
- package/dist/task-work/index.js.map +1 -1
- package/dist/tasks/ac-coverage-gate.d.ts +27 -0
- package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
- package/dist/tasks/ac-coverage-gate.js +63 -28
- package/dist/tasks/ac-coverage-gate.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +26 -30
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +27 -50
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/affected-scope.d.ts +13 -3
- package/dist/tasks/affected-scope.d.ts.map +1 -1
- package/dist/tasks/affected-scope.js +29 -11
- package/dist/tasks/affected-scope.js.map +1 -1
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +39 -20
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/command-gate-cmd.d.ts +33 -0
- package/dist/tasks/command-gate-cmd.d.ts.map +1 -0
- package/dist/tasks/command-gate-cmd.js +45 -0
- package/dist/tasks/command-gate-cmd.js.map +1 -0
- package/dist/tasks/complete-ci.d.ts +9 -0
- package/dist/tasks/complete-ci.d.ts.map +1 -1
- package/dist/tasks/complete-ci.js +21 -4
- package/dist/tasks/complete-ci.js.map +1 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +14 -0
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/component-pr.d.ts +37 -0
- package/dist/tasks/component-pr.d.ts.map +1 -1
- package/dist/tasks/component-pr.js +106 -14
- package/dist/tasks/component-pr.js.map +1 -1
- package/dist/tasks/done-plan.d.ts +14 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +125 -15
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +4 -0
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/engine-converters.d.ts.map +1 -1
- package/dist/tasks/engine-converters.js +2 -0
- package/dist/tasks/engine-converters.js.map +1 -1
- package/dist/tasks/evidence-tree.d.ts +28 -1
- package/dist/tasks/evidence-tree.d.ts.map +1 -1
- package/dist/tasks/evidence-tree.js +66 -2
- package/dist/tasks/evidence-tree.js.map +1 -1
- package/dist/tasks/evidence.d.ts +39 -27
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +382 -188
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-notes.d.ts +17 -0
- package/dist/tasks/gate-notes.d.ts.map +1 -1
- package/dist/tasks/gate-notes.js.map +1 -1
- package/dist/tasks/gate-preview.d.ts +7 -1
- package/dist/tasks/gate-preview.d.ts.map +1 -1
- package/dist/tasks/gate-preview.js +30 -4
- package/dist/tasks/gate-preview.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts +42 -0
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +234 -94
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/manifest-scope.d.ts +115 -0
- package/dist/tasks/manifest-scope.d.ts.map +1 -0
- package/dist/tasks/manifest-scope.js +352 -0
- package/dist/tasks/manifest-scope.js.map +1 -0
- package/dist/tasks/merge-close.d.ts +376 -0
- package/dist/tasks/merge-close.d.ts.map +1 -0
- package/dist/tasks/merge-close.js +1497 -0
- package/dist/tasks/merge-close.js.map +1 -0
- package/dist/tasks/qa-run-binding.d.ts +5 -0
- package/dist/tasks/qa-run-binding.d.ts.map +1 -1
- package/dist/tasks/qa-run-binding.js +6 -1
- package/dist/tasks/qa-run-binding.js.map +1 -1
- package/dist/tasks/req.d.ts.map +1 -1
- package/dist/tasks/req.js +29 -1
- package/dist/tasks/req.js.map +1 -1
- package/dist/tasks/review-verdict.d.ts +159 -0
- package/dist/tasks/review-verdict.d.ts.map +1 -0
- package/dist/tasks/review-verdict.js +442 -0
- package/dist/tasks/review-verdict.js.map +1 -0
- package/dist/tasks/task-reparent.d.ts.map +1 -1
- package/dist/tasks/task-reparent.js +22 -3
- package/dist/tasks/task-reparent.js.map +1 -1
- package/dist/tasks/test-report-counts.d.ts +274 -0
- package/dist/tasks/test-report-counts.d.ts.map +1 -0
- package/dist/tasks/test-report-counts.js +746 -0
- package/dist/tasks/test-report-counts.js.map +1 -0
- package/dist/tasks/test-run-binding.d.ts +20 -45
- package/dist/tasks/test-run-binding.d.ts.map +1 -1
- package/dist/tasks/test-run-binding.js +34 -119
- package/dist/tasks/test-run-binding.js.map +1 -1
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +42 -0
- package/dist/tasks/update.js.map +1 -1
- package/dist/tasks/verification-policy.d.ts +12 -0
- package/dist/tasks/verification-policy.d.ts.map +1 -1
- package/dist/tasks/verification-policy.js +13 -0
- package/dist/tasks/verification-policy.js.map +1 -1
- package/dist/tasks/workspace-resolution.d.ts +225 -0
- package/dist/tasks/workspace-resolution.d.ts.map +1 -0
- package/dist/tasks/workspace-resolution.js +497 -0
- package/dist/tasks/workspace-resolution.js.map +1 -0
- package/dist/validation/doctor/checks.d.ts +20 -0
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +112 -0
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +37 -3
- package/dist/validation/engine-ops.js.map +1 -1
- package/dist/validation/validate-ops.d.ts +4 -0
- package/dist/validation/validate-ops.d.ts.map +1 -1
- package/dist/validation/validate-ops.js +79 -2
- package/dist/validation/validate-ops.js.map +1 -1
- package/dist/worktree/list.d.ts +4 -21
- package/dist/worktree/list.d.ts.map +1 -1
- package/dist/worktree/list.js +14 -44
- package/dist/worktree/list.js.map +1 -1
- package/dist/worktree/merged-cleanup.d.ts +63 -0
- package/dist/worktree/merged-cleanup.d.ts.map +1 -0
- package/dist/worktree/merged-cleanup.js +571 -0
- package/dist/worktree/merged-cleanup.js.map +1 -0
- package/dist/worktree/prune.d.ts +64 -2
- package/dist/worktree/prune.d.ts.map +1 -1
- package/dist/worktree/prune.js +151 -6
- package/dist/worktree/prune.js.map +1 -1
- package/dist/worktree/sentinel-index.d.ts +14 -0
- package/dist/worktree/sentinel-index.d.ts.map +1 -1
- package/dist/worktree/sentinel-index.js +17 -0
- package/dist/worktree/sentinel-index.js.map +1 -1
- package/dist/worktree/worktree-adopt.d.ts +1 -13
- package/dist/worktree/worktree-adopt.d.ts.map +1 -1
- package/dist/worktree/worktree-adopt.js +2 -17
- package/dist/worktree/worktree-adopt.js.map +1 -1
- package/package.json +12 -12
- package/schemas/project-context.schema.json +33 -0
- package/templates/CLEO-INJECTION.md +6 -16
- package/templates/CLEO-REFERENCE.md +27 -4
- package/templates/git-hooks/legacy-hashes.json +2 -1
- package/templates/git-hooks/pre-commit +43 -11
- package/templates/workflows/release-prepare.yml.tmpl +9 -88
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a test run in a checkout tests that checkout's own workspace
|
|
3
|
+
* packages (T14097).
|
|
4
|
+
*
|
|
5
|
+
* A worktree whose `node_modules` is a symlink to another checkout's resolves
|
|
6
|
+
* `@scope/pkg` to THAT checkout's `packages/pkg/dist`, built from other source.
|
|
7
|
+
* Its tests then exercise code that is not the tree under test, and a
|
|
8
|
+
* `test-run:` receipt would bind to it. Observed: `done-plan.test.ts` in an
|
|
9
|
+
* evidence worktree at main gave 51 false failures (`isCleoProvisionedWorktree
|
|
10
|
+
* is not a function`) because `@cleocode/worktree` loaded the root checkout's
|
|
11
|
+
* older build.
|
|
12
|
+
*
|
|
13
|
+
* Two findings, of different strength:
|
|
14
|
+
*
|
|
15
|
+
* - **Foreign resolution** — a workspace dependency whose real path is not this
|
|
16
|
+
* checkout's package directory and whose committed source differs from this
|
|
17
|
+
* checkout's (or either side has uncommitted changes). Precise; test runs and
|
|
18
|
+
* receipts refuse it. A provisioned worktree that shares the root checkout's
|
|
19
|
+
* `node_modules` while both hold the same clean source for that package is
|
|
20
|
+
* only warned about (`borrowed`): the build it loads is of identical source.
|
|
21
|
+
* - **Stale dist** — a package whose build stamp records a hash of other
|
|
22
|
+
* source than its tracked `src/` holds now. The build writes the stamp
|
|
23
|
+
* ({@link writeSourceStamps}); file mtimes are no evidence, since a checkout
|
|
24
|
+
* or branch switch rewrites them without changing content. A dist without a
|
|
25
|
+
* stamp, or rebuilt after its stamp, cannot be judged and is not reported.
|
|
26
|
+
* Test runs and receipts refuse it (T14123).
|
|
27
|
+
*
|
|
28
|
+
* @module tasks/workspace-resolution
|
|
29
|
+
* @task T14097
|
|
30
|
+
* @task T14123
|
|
31
|
+
*/
|
|
32
|
+
import { execFileSync } from 'node:child_process';
|
|
33
|
+
import { createHash } from 'node:crypto';
|
|
34
|
+
import { existsSync, readdirSync, readFileSync, realpathSync, statSync, writeFileSync, } from 'node:fs';
|
|
35
|
+
import { isAbsolute, join, relative, resolve } from 'node:path';
|
|
36
|
+
import { ExitCode } from '@cleocode/contracts/exit-codes.js';
|
|
37
|
+
import { CleoError } from '../errors.js';
|
|
38
|
+
import { discoveryEnv } from '../git/work-tree.js';
|
|
39
|
+
import { inPackageDir, listWorkspacePackages, TEST_FILE } from './affected-packages.js';
|
|
40
|
+
/** File name of the build stamp inside a package's `dist/`. */
|
|
41
|
+
export const SOURCE_STAMP_FILE = '.source-stamp.json';
|
|
42
|
+
/** Real path, or null when it does not exist. */
|
|
43
|
+
function real(path) {
|
|
44
|
+
try {
|
|
45
|
+
return realpathSync(path);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Newest mtime of any file under `dir` (recursively), or -1 when it holds none. */
|
|
52
|
+
function newestMtime(dir) {
|
|
53
|
+
let newest = -1;
|
|
54
|
+
const walk = (d) => {
|
|
55
|
+
let entries;
|
|
56
|
+
try {
|
|
57
|
+
entries = readdirSync(d, { withFileTypes: true });
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
for (const e of entries) {
|
|
63
|
+
if (e.name === 'node_modules' || e.name === SOURCE_STAMP_FILE)
|
|
64
|
+
continue;
|
|
65
|
+
const p = join(d, e.name);
|
|
66
|
+
if (e.isDirectory())
|
|
67
|
+
walk(p);
|
|
68
|
+
else if (e.isFile())
|
|
69
|
+
newest = Math.max(newest, statSync(p).mtimeMs);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
walk(dir);
|
|
73
|
+
return newest;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The committed tree of a package directory, or null when it has uncommitted
|
|
77
|
+
* changes or git cannot tell (then it is never taken as identical).
|
|
78
|
+
*/
|
|
79
|
+
function cleanTreeOf(dir) {
|
|
80
|
+
const checkout = checkoutRootOf(dir);
|
|
81
|
+
if (checkout === null)
|
|
82
|
+
return null;
|
|
83
|
+
const rel = relative(checkout, dir).split('\\').join('/');
|
|
84
|
+
if (rel === '' || rel.startsWith('..'))
|
|
85
|
+
return null;
|
|
86
|
+
const git = (args) => {
|
|
87
|
+
try {
|
|
88
|
+
return execFileSync('git', args, {
|
|
89
|
+
cwd: checkout,
|
|
90
|
+
encoding: 'utf-8',
|
|
91
|
+
env: discoveryEnv(),
|
|
92
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
93
|
+
}).trim();
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const status = git(['status', '--porcelain', '--', rel]);
|
|
100
|
+
if (status === null || status !== '')
|
|
101
|
+
return null;
|
|
102
|
+
return git(['rev-parse', `HEAD:${rel}`]);
|
|
103
|
+
}
|
|
104
|
+
/** Whether two package directories hold the same committed, clean source. */
|
|
105
|
+
function sameSource(a, b) {
|
|
106
|
+
const left = cleanTreeOf(a);
|
|
107
|
+
return left !== null && left === cleanTreeOf(b);
|
|
108
|
+
}
|
|
109
|
+
/** Tracked non-test files under each `<dir>/src`, keyed by dir. */
|
|
110
|
+
function trackedSources(root, dirs) {
|
|
111
|
+
const out = new Map(dirs.map((d) => [d, []]));
|
|
112
|
+
if (dirs.length === 0)
|
|
113
|
+
return out;
|
|
114
|
+
let listed;
|
|
115
|
+
try {
|
|
116
|
+
listed = execFileSync('git', ['ls-files', '-z', '--', ...dirs.map((d) => `${d}/src`)], {
|
|
117
|
+
cwd: root,
|
|
118
|
+
encoding: 'utf-8',
|
|
119
|
+
env: discoveryEnv(),
|
|
120
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
121
|
+
maxBuffer: 64 * 1024 * 1024,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
for (const file of listed.split('\0')) {
|
|
128
|
+
if (file === '' || TEST_FILE.test(file) || file.includes('/__tests__/'))
|
|
129
|
+
continue;
|
|
130
|
+
const dir = dirs.find((d) => file.startsWith(`${d}/src/`));
|
|
131
|
+
if (dir !== undefined)
|
|
132
|
+
out.get(dir)?.push(file);
|
|
133
|
+
}
|
|
134
|
+
return out;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Content hash of source files: each file's path and the sha256 of its bytes,
|
|
138
|
+
* in path order. Identical source gives the same hash in any checkout, at any
|
|
139
|
+
* mtime.
|
|
140
|
+
*
|
|
141
|
+
* @param root - The checkout root the paths are relative to.
|
|
142
|
+
* @param files - Source files, relative to `root`.
|
|
143
|
+
* @returns The hex sha256.
|
|
144
|
+
* @task T14097
|
|
145
|
+
*/
|
|
146
|
+
export function sourceHash(root, files) {
|
|
147
|
+
const hash = createHash('sha256');
|
|
148
|
+
for (const file of [...files].sort()) {
|
|
149
|
+
let bytes;
|
|
150
|
+
try {
|
|
151
|
+
bytes = readFileSync(join(root, file));
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
hash.update(`${file}\0${createHash('sha256').update(bytes).digest('hex')}\0`);
|
|
157
|
+
}
|
|
158
|
+
return hash.digest('hex');
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* The build stamp in `distDir` and when it was written, or null when it is
|
|
162
|
+
* missing, unreadable or of another schema (an older stamp is not judged).
|
|
163
|
+
*/
|
|
164
|
+
function readSourceStamp(distDir) {
|
|
165
|
+
const path = join(distDir, SOURCE_STAMP_FILE);
|
|
166
|
+
let stamp;
|
|
167
|
+
let writtenMs;
|
|
168
|
+
try {
|
|
169
|
+
stamp = JSON.parse(readFileSync(path, 'utf-8'));
|
|
170
|
+
writtenMs = statSync(path).mtimeMs;
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
return stamp?.schema === 2 && typeof stamp.sourceHash === 'string'
|
|
176
|
+
? { stamp: { schema: 2, sourceHash: stamp.sourceHash }, writtenMs }
|
|
177
|
+
: null;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Stamp every built workspace package of a checkout with the hash of the
|
|
181
|
+
* source its `dist/` was built from. The root build runs it last, so
|
|
182
|
+
* {@link checkWorkspaceResolution} can tell a build of other source from one
|
|
183
|
+
* whose source a checkout merely touched.
|
|
184
|
+
*
|
|
185
|
+
* @param root - The checkout root.
|
|
186
|
+
* @returns The package directories stamped.
|
|
187
|
+
* @task T14097
|
|
188
|
+
*/
|
|
189
|
+
export function writeSourceStamps(root) {
|
|
190
|
+
const built = listWorkspacePackages(root).filter((p) => p.dir !== '' && existsSync(join(root, p.dir, 'dist')));
|
|
191
|
+
const sources = trackedSources(root, built.map((p) => p.dir));
|
|
192
|
+
const stamped = [];
|
|
193
|
+
for (const p of built) {
|
|
194
|
+
const dist = join(root, p.dir, 'dist');
|
|
195
|
+
const stamp = {
|
|
196
|
+
schema: 2,
|
|
197
|
+
sourceHash: sourceHash(root, sources.get(p.dir) ?? []),
|
|
198
|
+
};
|
|
199
|
+
writeFileSync(join(dist, SOURCE_STAMP_FILE), `${JSON.stringify(stamp, null, 2)}\n`);
|
|
200
|
+
stamped.push(p.dir);
|
|
201
|
+
}
|
|
202
|
+
return stamped;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check how a checkout's workspace packages resolve their workspace
|
|
206
|
+
* dependencies, the way Node looks them up: the importer's own
|
|
207
|
+
* `node_modules`, then the root's. A real path outside this checkout's copy
|
|
208
|
+
* of the dependency is foreign. Of the dependencies that resolve in-tree,
|
|
209
|
+
* those whose build stamp records other source than their tracked `src/` holds
|
|
210
|
+
* are stale.
|
|
211
|
+
*
|
|
212
|
+
* A checkout that declares no workspace has nothing to check; a dependency
|
|
213
|
+
* that resolves nowhere is left to the runner, which reports it itself.
|
|
214
|
+
*
|
|
215
|
+
* @param root - The checkout root (its git top level).
|
|
216
|
+
* @param scope - Package names whose dependency closure is checked; all packages when omitted or empty.
|
|
217
|
+
* @returns The foreign resolutions and stale builds found.
|
|
218
|
+
* @task T14097
|
|
219
|
+
*/
|
|
220
|
+
export function checkWorkspaceResolution(root, scope) {
|
|
221
|
+
const packages = listWorkspacePackages(root).filter((p) => p.dir !== '');
|
|
222
|
+
const byName = new Map(packages.map((p) => [p.name, p]));
|
|
223
|
+
const importers = scope === undefined || scope.length === 0
|
|
224
|
+
? packages
|
|
225
|
+
: packages.filter((p) => scope.includes(p.name));
|
|
226
|
+
// The dependency closure of the importers: every package a test there loads.
|
|
227
|
+
const closure = new Set();
|
|
228
|
+
const pending = importers.map((p) => p.name);
|
|
229
|
+
while (pending.length > 0) {
|
|
230
|
+
const name = pending.pop();
|
|
231
|
+
if (closure.has(name))
|
|
232
|
+
continue;
|
|
233
|
+
closure.add(name);
|
|
234
|
+
for (const dep of byName.get(name)?.deps ?? [])
|
|
235
|
+
pending.push(dep);
|
|
236
|
+
}
|
|
237
|
+
const foreign = [];
|
|
238
|
+
const borrowed = [];
|
|
239
|
+
const inTree = new Set();
|
|
240
|
+
for (const name of closure) {
|
|
241
|
+
const importer = byName.get(name);
|
|
242
|
+
if (importer === undefined)
|
|
243
|
+
continue;
|
|
244
|
+
for (const dep of importer.deps) {
|
|
245
|
+
const own = byName.get(dep);
|
|
246
|
+
if (own === undefined)
|
|
247
|
+
continue;
|
|
248
|
+
const expected = real(join(root, own.dir));
|
|
249
|
+
const resolved = real(join(root, importer.dir, 'node_modules', dep)) ??
|
|
250
|
+
real(join(root, 'node_modules', dep));
|
|
251
|
+
if (expected === null || resolved === null)
|
|
252
|
+
continue;
|
|
253
|
+
const entry = { importer: name, dependency: dep, resolved, expected };
|
|
254
|
+
if (resolved === expected)
|
|
255
|
+
inTree.add(dep);
|
|
256
|
+
else if (sameSource(expected, resolved))
|
|
257
|
+
borrowed.push(entry);
|
|
258
|
+
else
|
|
259
|
+
foreign.push(entry);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
const candidates = [...inTree]
|
|
263
|
+
.map((n) => byName.get(n))
|
|
264
|
+
.filter((p) => p !== undefined)
|
|
265
|
+
.filter((p) => existsSync(join(root, p.dir, 'dist')));
|
|
266
|
+
const sources = trackedSources(root, candidates.map((p) => p.dir));
|
|
267
|
+
const staleDist = [];
|
|
268
|
+
const unstamped = [];
|
|
269
|
+
for (const p of candidates) {
|
|
270
|
+
const read = readSourceStamp(join(root, p.dir, 'dist'));
|
|
271
|
+
// No stamp: nothing proves the build matches its source, so it is warned about.
|
|
272
|
+
if (read === null) {
|
|
273
|
+
unstamped.push({ package: p.name, dir: p.dir });
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
// A rebuild since the stamp was written: nothing proves the build old.
|
|
277
|
+
if (newestMtime(join(root, p.dir, 'dist')) > read.writtenMs)
|
|
278
|
+
continue;
|
|
279
|
+
if (sourceHash(root, sources.get(p.dir) ?? []) !== read.stamp.sourceHash)
|
|
280
|
+
staleDist.push({ package: p.name, dir: p.dir });
|
|
281
|
+
}
|
|
282
|
+
return { root, foreign, borrowed, staleDist, unstamped };
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* The workspace packages a test command names through its test-file
|
|
286
|
+
* arguments, so a run of one file checks only what that file loads. Empty
|
|
287
|
+
* when it names none (the whole workspace is then checked).
|
|
288
|
+
*
|
|
289
|
+
* @param root - The checkout root.
|
|
290
|
+
* @param cwd - The directory the command runs in.
|
|
291
|
+
* @param argv - The command and its arguments.
|
|
292
|
+
* @returns Names of the packages owning the named test files.
|
|
293
|
+
* @task T14097
|
|
294
|
+
*/
|
|
295
|
+
export function packagesNamedByTestArgs(root, cwd, argv) {
|
|
296
|
+
const packages = listWorkspacePackages(root)
|
|
297
|
+
.filter((p) => p.dir !== '')
|
|
298
|
+
.sort((a, b) => b.dir.length - a.dir.length);
|
|
299
|
+
const named = new Set();
|
|
300
|
+
for (const arg of argv) {
|
|
301
|
+
if (!TEST_FILE.test(arg))
|
|
302
|
+
continue;
|
|
303
|
+
const rel = relative(root, isAbsolute(arg) ? arg : resolve(cwd, arg))
|
|
304
|
+
.split('\\')
|
|
305
|
+
.join('/');
|
|
306
|
+
const owner = packages.find((p) => inPackageDir(rel, p.dir));
|
|
307
|
+
if (owner !== undefined)
|
|
308
|
+
named.add(owner.name);
|
|
309
|
+
}
|
|
310
|
+
return [...named];
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* The git top level of `dir`, or null outside a checkout.
|
|
314
|
+
*
|
|
315
|
+
* @param dir - Any directory.
|
|
316
|
+
* @returns The checkout root, or null.
|
|
317
|
+
*/
|
|
318
|
+
export function checkoutRootOf(dir) {
|
|
319
|
+
try {
|
|
320
|
+
return (execFileSync('git', ['rev-parse', '--show-toplevel'], {
|
|
321
|
+
cwd: dir,
|
|
322
|
+
encoding: 'utf-8',
|
|
323
|
+
env: discoveryEnv(),
|
|
324
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
325
|
+
}).trim() || null);
|
|
326
|
+
}
|
|
327
|
+
catch {
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* {@link checkWorkspaceResolution} for a test command run in `cwd`: the
|
|
333
|
+
* checkout around it, scoped to the packages its test-file arguments name.
|
|
334
|
+
*
|
|
335
|
+
* @param cwd - The directory the command runs in.
|
|
336
|
+
* @param argv - The command and its arguments.
|
|
337
|
+
* @returns The report, or null outside a checkout.
|
|
338
|
+
* @task T14097
|
|
339
|
+
*/
|
|
340
|
+
export function workspaceResolutionForTestRun(cwd, argv) {
|
|
341
|
+
const root = checkoutRootOf(cwd);
|
|
342
|
+
return root === null
|
|
343
|
+
? null
|
|
344
|
+
: checkWorkspaceResolution(root, packagesNamedByTestArgs(root, cwd, argv));
|
|
345
|
+
}
|
|
346
|
+
/** The remedy for a foreign resolution, in this checkout. */
|
|
347
|
+
function remedy(report) {
|
|
348
|
+
const deps = [...new Set(report.foreign.map((f) => f.dependency))];
|
|
349
|
+
return (`Give this checkout its own install and build: in ${report.root}, remove a symlinked ` +
|
|
350
|
+
'node_modules, run `pnpm install --frozen-lockfile`, then build what the tests import ' +
|
|
351
|
+
`(\`pnpm ${deps.map((d) => `--filter "${d}..."`).join(' ')} run build\`).`);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* One sentence naming the foreign resolutions, or null when there are none.
|
|
355
|
+
*
|
|
356
|
+
* @param report - A {@link checkWorkspaceResolution} result.
|
|
357
|
+
* @returns The refusal reason, with its remedy.
|
|
358
|
+
* @task T14097
|
|
359
|
+
*/
|
|
360
|
+
export function foreignResolutionReason(report) {
|
|
361
|
+
if (report.foreign.length === 0)
|
|
362
|
+
return null;
|
|
363
|
+
const shown = report.foreign
|
|
364
|
+
.slice(0, 3)
|
|
365
|
+
.map((f) => `${f.dependency} (imported by ${f.importer}) resolves to ${f.resolved}, not ${f.expected}`)
|
|
366
|
+
.join('; ');
|
|
367
|
+
const more = report.foreign.length > 3 ? `; … (${report.foreign.length} in all)` : '';
|
|
368
|
+
return (`Workspace packages resolve outside this checkout, so its tests would run another ` +
|
|
369
|
+
`checkout's build: ${shown}${more}. ${remedy(report)}`);
|
|
370
|
+
}
|
|
371
|
+
/** The rebuild command for stale builds. */
|
|
372
|
+
function staleRemedy(report) {
|
|
373
|
+
return `Rebuild them: \`pnpm ${report.staleDist.map((s) => `--filter "${s.package}"`).join(' ')} run build\`.`;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* One sentence naming the packages whose dist was built from other source,
|
|
377
|
+
* or null when there are none (T14123).
|
|
378
|
+
*
|
|
379
|
+
* @param report - A {@link checkWorkspaceResolution} result.
|
|
380
|
+
* @returns The refusal reason, with the rebuild command.
|
|
381
|
+
* @task T14123
|
|
382
|
+
*/
|
|
383
|
+
export function staleDistReason(report) {
|
|
384
|
+
if (report.staleDist.length === 0)
|
|
385
|
+
return null;
|
|
386
|
+
const shown = report.staleDist
|
|
387
|
+
.slice(0, 3)
|
|
388
|
+
.map((s) => s.package)
|
|
389
|
+
.join(', ');
|
|
390
|
+
const more = report.staleDist.length > 3 ? `, … (${report.staleDist.length} in all)` : '';
|
|
391
|
+
return (`The dist of ${shown}${more} was built from other source than ${report.staleDist.length === 1 ? 'it holds' : 'they hold'} ` +
|
|
392
|
+
`now, so tests importing ${report.staleDist.length === 1 ? 'it' : 'them'} would run that build. ${staleRemedy(report)}`);
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* The warning for a borrowed build (identical source in another checkout),
|
|
396
|
+
* or null when there is none.
|
|
397
|
+
*
|
|
398
|
+
* @param report - A {@link checkWorkspaceResolution} result.
|
|
399
|
+
* @returns The warning text.
|
|
400
|
+
* @task T14097
|
|
401
|
+
*/
|
|
402
|
+
export function borrowedBuildWarning(report) {
|
|
403
|
+
if (report.borrowed.length === 0)
|
|
404
|
+
return null;
|
|
405
|
+
return `${[...new Set(report.borrowed.map((b) => b.dependency))].join(', ')} resolve${report.borrowed.length === 1 ? 's' : ''} to another checkout (${report.borrowed[0]?.resolved}) whose source is identical; its build is used.`;
|
|
406
|
+
}
|
|
407
|
+
/** The fix for unstamped builds: the root build stamps every package. */
|
|
408
|
+
export const UNSTAMPED_DIST_FIX = 'Run the root build (`pnpm run build`), which stamps every package.';
|
|
409
|
+
/**
|
|
410
|
+
* One summary line for built packages with no stamp, or null when every
|
|
411
|
+
* built package is stamped (T14123). Nothing proves such a dist matches its
|
|
412
|
+
* source, so the run proceeds with this warning.
|
|
413
|
+
*
|
|
414
|
+
* @param report - A {@link checkWorkspaceResolution} result.
|
|
415
|
+
* @returns The warning text, with its fix.
|
|
416
|
+
* @task T14123
|
|
417
|
+
*/
|
|
418
|
+
export function unstampedDistWarning(report) {
|
|
419
|
+
if (report.unstamped.length === 0)
|
|
420
|
+
return null;
|
|
421
|
+
const shown = report.unstamped
|
|
422
|
+
.slice(0, 3)
|
|
423
|
+
.map((s) => s.package)
|
|
424
|
+
.join(', ');
|
|
425
|
+
const more = report.unstamped.length > 3 ? `, … (${report.unstamped.length} in all)` : '';
|
|
426
|
+
return `No build stamp for ${shown}${more}, so nothing shows ${report.unstamped.length === 1 ? 'its' : 'their'} dist matches the source. ${UNSTAMPED_DIST_FIX}`;
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* The refusal for a test run in this checkout, foreign resolution first, or
|
|
430
|
+
* null when the run may proceed.
|
|
431
|
+
*
|
|
432
|
+
* @param report - A {@link checkWorkspaceResolution} result.
|
|
433
|
+
* @returns The error to throw or report.
|
|
434
|
+
* @task T14123
|
|
435
|
+
*/
|
|
436
|
+
export function workspaceResolutionError(report) {
|
|
437
|
+
// @sync-invariant none:input-shape a test run against another checkout's build is refused before anything is written
|
|
438
|
+
if (report.foreign.length > 0)
|
|
439
|
+
return new ForeignWorkspaceResolutionError(report);
|
|
440
|
+
// @sync-invariant none:input-shape a test run against a dist built from other source is refused before anything is written
|
|
441
|
+
if (report.staleDist.length > 0)
|
|
442
|
+
return new StaleDistError(report);
|
|
443
|
+
return null;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* `cleo run --class test` refused: a workspace package resolves into another
|
|
447
|
+
* checkout (T14097).
|
|
448
|
+
*
|
|
449
|
+
* @task T14097
|
|
450
|
+
*/
|
|
451
|
+
export class ForeignWorkspaceResolutionError extends CleoError {
|
|
452
|
+
/** Stable machine-readable error code. */
|
|
453
|
+
codeName = 'E_WORKSPACE_FOREIGN_CHECKOUT';
|
|
454
|
+
/**
|
|
455
|
+
* @param report - The check that found foreign resolutions.
|
|
456
|
+
*/
|
|
457
|
+
constructor(report) {
|
|
458
|
+
super(ExitCode.CONFIG_ERROR, foreignResolutionReason(report) ?? 'foreign resolution', {
|
|
459
|
+
fix: remedy(report),
|
|
460
|
+
details: {
|
|
461
|
+
field: 'node_modules',
|
|
462
|
+
expected: `workspace packages resolved inside ${report.root}`,
|
|
463
|
+
actual: report.foreign.map((f) => `${f.dependency} -> ${f.resolved}`).join(', '),
|
|
464
|
+
root: report.root,
|
|
465
|
+
foreign: report.foreign,
|
|
466
|
+
},
|
|
467
|
+
});
|
|
468
|
+
this.name = 'ForeignWorkspaceResolutionError';
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* `cleo run --class test` or a test-run receipt refused: a workspace package's
|
|
473
|
+
* dist was built from other source than it holds (T14123).
|
|
474
|
+
*
|
|
475
|
+
* @task T14123
|
|
476
|
+
*/
|
|
477
|
+
export class StaleDistError extends CleoError {
|
|
478
|
+
/** Stable machine-readable error code. */
|
|
479
|
+
codeName = 'E_WORKSPACE_STALE_DIST';
|
|
480
|
+
/**
|
|
481
|
+
* @param report - The check that found stale builds.
|
|
482
|
+
*/
|
|
483
|
+
constructor(report) {
|
|
484
|
+
super(ExitCode.CONFIG_ERROR, staleDistReason(report) ?? 'stale dist', {
|
|
485
|
+
fix: staleRemedy(report),
|
|
486
|
+
details: {
|
|
487
|
+
field: 'dist',
|
|
488
|
+
expected: `dist built from the source ${report.root} holds`,
|
|
489
|
+
actual: report.staleDist.map((s) => `${s.package} (${s.dir}/dist)`).join(', '),
|
|
490
|
+
root: report.root,
|
|
491
|
+
staleDist: report.staleDist,
|
|
492
|
+
},
|
|
493
|
+
});
|
|
494
|
+
this.name = 'StaleDistError';
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
//# sourceMappingURL=workspace-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-resolution.js","sourceRoot":"","sources":["../../src/tasks/workspace-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAEL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAmCxF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAoBtD,iDAAiD;AACjD,SAAS,IAAI,CAAC,IAAY;IACxB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,CAAS,EAAQ,EAAE;QAC/B,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;gBAAE,SAAS;YACxE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;iBACxB,IAAI,CAAC,CAAC,MAAM,EAAE;gBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,GAAG,GAAG,CAAC,IAAuB,EAAiB,EAAE;QACrD,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBAC/B,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAE,OAAO;gBACjB,GAAG,EAAE,YAAY,EAAE;gBACnB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACpC,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,mEAAmE;AACnE,SAAS,cAAc,CAAC,IAAY,EAAE,IAAuB;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAmB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAClC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;YACrF,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,YAAY,EAAE;YACnB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,IAAI,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,SAAS;QAClF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAwB;IAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC9C,IAAI,KAAkC,CAAC;IACvC,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAChD,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;QAChE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE;QACnE,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAC7D,CAAC;IACF,MAAM,OAAO,GAAG,cAAc,CAC5B,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACxB,CAAC;IACF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAgB;YACzB,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACvD,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAY,EACZ,KAAyB;IAEzB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GACb,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACvC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAY,CAAC;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI;gBAAE,SAAS;YACrD,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACtE,IAAI,QAAQ,KAAK,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACtC,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBACzD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACzB,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,cAAc,CAC5B,IAAI,EACJ,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAC7B,CAAC;IACF,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,gFAAgF;QAChF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QACD,uEAAuE;QACvE,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS;YAAE,SAAS;QACtE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU;YACtE,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,GAAW,EACX,IAAuB;IAEvB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC;SACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;SAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aAClE,KAAK,CAAC,IAAI,CAAC;aACX,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,OAAO,CACL,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;YACpD,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,YAAY,EAAE;YACnB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,GAAW,EACX,IAAuB;IAEvB,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,KAAK,IAAI;QAClB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,6DAA6D;AAC7D,SAAS,MAAM,CAAC,MAAiC;IAC/C,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,CACL,oDAAoD,MAAM,CAAC,IAAI,uBAAuB;QACtF,uFAAuF;QACvF,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAC3E,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAiC;IACvE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO;SACzB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,UAAU,iBAAiB,CAAC,CAAC,QAAQ,iBAAiB,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,QAAQ,EAAE,CAC7F;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,OAAO,CACL,mFAAmF;QACnF,qBAAqB,KAAK,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CACvD,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,SAAS,WAAW,CAAC,MAAiC;IACpD,OAAO,wBAAwB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;AACjH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiC;IAC/D,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS;SAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACrB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,OAAO,CACL,eAAe,KAAK,GAAG,IAAI,qCAAqC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAAG;QAC3H,2BAA2B,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,0BAA0B,WAAW,CAAC,MAAM,CAAC,EAAE,CACxH,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiC;IACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,yBAAyB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,iDAAiD,CAAC;AACtO,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oEAAoE,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiC;IACpE,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS;SAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACrB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,OAAO,sBAAsB,KAAK,GAAG,IAAI,sBAAsB,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,6BAA6B,kBAAkB,EAAE,CAAC;AAClK,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAiC;IAEjC,qHAAqH;IACrH,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAClF,2HAA2H;IAC3H,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,+BAAgC,SAAQ,SAAS;IAC5D,0CAA0C;IACjC,QAAQ,GAAG,8BAA8B,CAAC;IAEnD;;OAEG;IACH,YAAY,MAAiC;QAC3C,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC,MAAM,CAAC,IAAI,oBAAoB,EAAE;YACpF,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,sCAAsC,MAAM,CAAC,IAAI,EAAE;gBAC7D,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChF,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,0CAA0C;IACjC,QAAQ,GAAG,wBAAwB,CAAC;IAE7C;;OAEG;IACH,YAAY,MAAiC;QAC3C,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE;YACpE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE;gBACP,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,8BAA8B,MAAM,CAAC,IAAI,QAAQ;gBAC3D,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9E,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -41,6 +41,26 @@ export declare function checkCleoGitignore(projectRoot?: string): CheckResult;
|
|
|
41
41
|
* @task T4700
|
|
42
42
|
*/
|
|
43
43
|
export declare function checkVitalFilesTracked(projectRoot?: string): CheckResult;
|
|
44
|
+
/**
|
|
45
|
+
* Staged paths that carry CLEO runtime state, at ANY path: the rule the managed
|
|
46
|
+
* pre-commit hook (`templates/git-hooks/pre-commit` §3) enforces. A database
|
|
47
|
+
* by name; `project-info.json` whose staged content names a `"projectId"`; a
|
|
48
|
+
* `config.json` at `.cleo/config.json` or byte-identical to it.
|
|
49
|
+
*
|
|
50
|
+
* @param root - Repository root.
|
|
51
|
+
* @returns The offending staged paths, or `null` when git cannot be read.
|
|
52
|
+
* @task T14189
|
|
53
|
+
*/
|
|
54
|
+
export declare function stagedCleoStatePaths(root: string): string[] | null;
|
|
55
|
+
/**
|
|
56
|
+
* Check that the index stages no CLEO runtime state (T14189): databases,
|
|
57
|
+
* project identity or a copy of `.cleo/config.json`, at any path.
|
|
58
|
+
*
|
|
59
|
+
* @param projectRoot - Project root (defaults to the resolved root).
|
|
60
|
+
* @returns The check result, naming the paths and the `git reset` that unstages them.
|
|
61
|
+
* @task T14189
|
|
62
|
+
*/
|
|
63
|
+
export declare function checkStagedCleoState(projectRoot?: string): CheckResult;
|
|
44
64
|
/**
|
|
45
65
|
* Check that core CLEO files are not being ignored by .gitignore.
|
|
46
66
|
* Uses `git check-ignore` to detect files that would be excluded by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../../src/validation/doctor/checks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../../src/validation/doctor/checks.ts"],"names":[],"mappings":"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"}
|