@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,390 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cleo docs modernize --store` (T14118): modernize the docs already in the
|
|
3
|
+
* store, not a folder.
|
|
4
|
+
*
|
|
5
|
+
* Plan, per stored doc:
|
|
6
|
+
*
|
|
7
|
+
* - **Kind.** Untyped rows, and rows the legacy `docs import` typed `spec`
|
|
8
|
+
* wholesale (owned by the `__project__` sentinel), are re-classified with
|
|
9
|
+
* the tree-mode rules over the slug and body; a rule below the floor is
|
|
10
|
+
* judged by System One (`docs.modernize.classify`), up to
|
|
11
|
+
* {@link MODERNIZE_STORE_JUDGE_LIMIT} asks per run.
|
|
12
|
+
* - **Slug.** A slug that breaks the T14107 naming rule gets the stable
|
|
13
|
+
* slug; the old slug stays resolvable as an alias (`renameDocSlug`). Task
|
|
14
|
+
* ids it named become task refs on the doc.
|
|
15
|
+
* - **ADR numbers.** When several ADRs share a number, the earliest keeps it
|
|
16
|
+
* and each later one is renumbered past the highest number in use.
|
|
17
|
+
*
|
|
18
|
+
* Apply runs the plan with a receipt (`rekind`, `reslug`, `link-task` ops)
|
|
19
|
+
* and one graph rebuild; rollback walks the receipt backwards.
|
|
20
|
+
*
|
|
21
|
+
* @task T14118
|
|
22
|
+
* @epic T14106
|
|
23
|
+
*/
|
|
24
|
+
import { randomUUID } from 'node:crypto';
|
|
25
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
26
|
+
import { join } from 'node:path';
|
|
27
|
+
import { DocKindRegistry } from '@cleocode/contracts/docs-taxonomy.js';
|
|
28
|
+
import { createAttachmentStore } from '../../store/attachment-store.js';
|
|
29
|
+
import { writeFileAtomic } from '../../tools/fs.js';
|
|
30
|
+
import { assembleAdrSlug, findHighestAdrNumber } from '../adr-allocator.js';
|
|
31
|
+
import { docNameViolation } from '../doc-name-rule.js';
|
|
32
|
+
import { IMPORT_OWNER_TYPE, IMPORT_PROJECT_OWNER_ID } from '../import/attachment-store-accessor.js';
|
|
33
|
+
import { journalPath, modernizeReceiptPath, StepJournal } from './apply.js';
|
|
34
|
+
import { judgeDocKind, resolveModernizeJudgeSettings } from './judge.js';
|
|
35
|
+
import { ownerIdsFromPath } from './plan.js';
|
|
36
|
+
import { classifyDocByRules, MODERNIZE_CLASSIFY_FLOOR, stableSlugFor } from './rules.js';
|
|
37
|
+
/** System One asks per store run; past it the rule acts and the row says so. */
|
|
38
|
+
export const MODERNIZE_STORE_JUDGE_LIMIT = 200;
|
|
39
|
+
/** Actor recorded on adopted docs and task refs. */
|
|
40
|
+
const ACTOR = 'cleo docs modernize';
|
|
41
|
+
/** Every stored doc once, with all of its owners. */
|
|
42
|
+
async function listStoredDocs(projectRoot) {
|
|
43
|
+
const rows = await createAttachmentStore().listAllInProject(projectRoot);
|
|
44
|
+
const byId = new Map();
|
|
45
|
+
for (const r of rows) {
|
|
46
|
+
const prev = byId.get(r.metadata.id);
|
|
47
|
+
byId.set(r.metadata.id, {
|
|
48
|
+
id: r.metadata.id,
|
|
49
|
+
sha256: r.metadata.sha256,
|
|
50
|
+
slug: r.slug,
|
|
51
|
+
kind: r.type,
|
|
52
|
+
createdAt: r.metadata.createdAt,
|
|
53
|
+
owners: [...(prev?.owners ?? []), r.ownerId],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return [...byId.values()];
|
|
57
|
+
}
|
|
58
|
+
/** Whether a row's kind should be re-derived. */
|
|
59
|
+
function needsKind(doc, kinds) {
|
|
60
|
+
if (doc.kind === null || !kinds.has(doc.kind))
|
|
61
|
+
return true;
|
|
62
|
+
return doc.kind === 'spec' && doc.owners.every((o) => o === IMPORT_PROJECT_OWNER_ID);
|
|
63
|
+
}
|
|
64
|
+
/** Milliseconds since the epoch for an ISO or SQLite (`YYYY-MM-DD HH:MM:SS`) timestamp. */
|
|
65
|
+
function toMs(stamp) {
|
|
66
|
+
if (!stamp)
|
|
67
|
+
return Number.POSITIVE_INFINITY;
|
|
68
|
+
const iso = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}/.test(stamp) ? `${stamp.replace(' ', 'T')}Z` : stamp;
|
|
69
|
+
const ms = Date.parse(iso);
|
|
70
|
+
return Number.isNaN(ms) ? Number.POSITIVE_INFINITY : ms;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* When a doc was first written. The registry row's `created_at` is NOT that:
|
|
74
|
+
* every `docs update` moves the slug onto a new row stamped at the update.
|
|
75
|
+
* The birth is the earliest of the row, the doc's conduit history (identity
|
|
76
|
+
* row and every version, which sync) and the rows the local versioning audit
|
|
77
|
+
* names as earlier versions of the slug.
|
|
78
|
+
*/
|
|
79
|
+
async function docBirthMs(projectRoot, doc) {
|
|
80
|
+
const stamps = [toMs(doc.createdAt)];
|
|
81
|
+
if (doc.slug) {
|
|
82
|
+
const { findConduitAttachmentByUid, listConduitAttachmentVersions, resolveConduitDocUid } = await import('../../store/conduit-doc-history.js');
|
|
83
|
+
const uid = await resolveConduitDocUid(projectRoot, doc.slug);
|
|
84
|
+
if (uid) {
|
|
85
|
+
stamps.push(toMs((await findConduitAttachmentByUid(projectRoot, uid))?.createdAt));
|
|
86
|
+
for (const v of await listConduitAttachmentVersions(projectRoot, uid))
|
|
87
|
+
stamps.push(toMs(v.createdAt));
|
|
88
|
+
}
|
|
89
|
+
const store = createAttachmentStore();
|
|
90
|
+
for (const sha of await previousShasFromAudit(projectRoot, doc.slug)) {
|
|
91
|
+
stamps.push(toMs((await store.getMetadata(sha, projectRoot))?.createdAt));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return Math.min(...stamps);
|
|
95
|
+
}
|
|
96
|
+
/** Content hashes the local docs-versioning audit records as earlier versions of `slug`. */
|
|
97
|
+
async function previousShasFromAudit(projectRoot, slug) {
|
|
98
|
+
const { DOCS_VERSIONING_AUDIT_FILE } = await import('../docs-update.js');
|
|
99
|
+
const path = join(projectRoot, DOCS_VERSIONING_AUDIT_FILE);
|
|
100
|
+
if (!existsSync(path))
|
|
101
|
+
return [];
|
|
102
|
+
const out = [];
|
|
103
|
+
for (const line of readFileSync(path, 'utf-8').split('\n')) {
|
|
104
|
+
if (!line.includes(`"slug":${JSON.stringify(slug)}`))
|
|
105
|
+
continue;
|
|
106
|
+
try {
|
|
107
|
+
const entry = JSON.parse(line);
|
|
108
|
+
if (typeof entry !== 'object' || entry === null || !('revisions' in entry))
|
|
109
|
+
continue;
|
|
110
|
+
const revisions = Array.isArray(entry.revisions) ? entry.revisions : [];
|
|
111
|
+
for (const r of revisions) {
|
|
112
|
+
if (typeof r === 'object' &&
|
|
113
|
+
r !== null &&
|
|
114
|
+
'previousSha256' in r &&
|
|
115
|
+
typeof r.previousSha256 === 'string') {
|
|
116
|
+
out.push(r.previousSha256);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// A torn audit line says nothing about the birth.
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
/** The number of an `adr-NNN-…` slug, or null. */
|
|
127
|
+
function adrNumber(slug) {
|
|
128
|
+
const m = slug ? /^adr-(\d+)(?:-|$)/.exec(slug) : null;
|
|
129
|
+
return m?.[1] ? Number(m[1]) : null;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Plan a store-mode modernize run.
|
|
133
|
+
*
|
|
134
|
+
* @param options - Project root and System One overrides.
|
|
135
|
+
* @returns A plan with `mode: 'store'` and one `storeRows` entry per doc that changes.
|
|
136
|
+
*/
|
|
137
|
+
export async function planDocsStoreModernize(options) {
|
|
138
|
+
const { projectRoot } = options;
|
|
139
|
+
const kinds = DocKindRegistry.load(projectRoot).list();
|
|
140
|
+
const kindIds = new Set(kinds.map((k) => k.kind));
|
|
141
|
+
const settings = await resolveModernizeJudgeSettings(projectRoot, options.decide, options.mode);
|
|
142
|
+
const store = createAttachmentStore();
|
|
143
|
+
const docs = await listStoredDocs(projectRoot);
|
|
144
|
+
const taken = new Set(docs.map((d) => d.slug).filter((s) => s !== null));
|
|
145
|
+
let asks = 0;
|
|
146
|
+
const out = [];
|
|
147
|
+
const read = async (sha) => (await store.get(sha, projectRoot))?.bytes.toString('utf-8') ?? '';
|
|
148
|
+
for (const doc of docs) {
|
|
149
|
+
const reasons = [];
|
|
150
|
+
const judgments = [];
|
|
151
|
+
const slugBroken = doc.slug !== null && docNameViolation(doc.slug, doc.kind ?? undefined) !== null;
|
|
152
|
+
const kindStale = needsKind(doc, kindIds);
|
|
153
|
+
if (!slugBroken && !kindStale)
|
|
154
|
+
continue;
|
|
155
|
+
const content = await read(doc.sha256);
|
|
156
|
+
const pathHint = `${doc.slug ?? doc.id}.md`;
|
|
157
|
+
let newKind = doc.kind ?? 'note';
|
|
158
|
+
if (kindStale) {
|
|
159
|
+
const rule = classifyDocByRules(pathHint, content, kinds);
|
|
160
|
+
newKind = rule.kind;
|
|
161
|
+
reasons.push(`kind ${rule.kind}: ${rule.reason}`);
|
|
162
|
+
if (rule.confidence < MODERNIZE_CLASSIFY_FLOOR) {
|
|
163
|
+
if (asks < MODERNIZE_STORE_JUDGE_LIMIT) {
|
|
164
|
+
asks += 1;
|
|
165
|
+
const j = await judgeDocKind({
|
|
166
|
+
path: pathHint,
|
|
167
|
+
title: doc.slug ?? '',
|
|
168
|
+
content,
|
|
169
|
+
ruleKind: rule.kind,
|
|
170
|
+
ruleConfidence: rule.confidence,
|
|
171
|
+
kinds,
|
|
172
|
+
}, settings);
|
|
173
|
+
judgments.push(j);
|
|
174
|
+
newKind = j.acted;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
reasons.push('System One ask limit reached for this run; the rule acts');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
let newSlug = doc.slug;
|
|
182
|
+
if (doc.slug !== null && slugBroken) {
|
|
183
|
+
let candidate = stableSlugFor(pathHint, content, newKind);
|
|
184
|
+
if (candidate !== doc.slug && taken.has(candidate)) {
|
|
185
|
+
let n = 2;
|
|
186
|
+
while (taken.has(`${candidate}-${n}`))
|
|
187
|
+
n += 1;
|
|
188
|
+
candidate = `${candidate}-${n}`;
|
|
189
|
+
}
|
|
190
|
+
if (candidate !== doc.slug) {
|
|
191
|
+
taken.add(candidate);
|
|
192
|
+
newSlug = candidate;
|
|
193
|
+
reasons.push(`slug ${candidate}: task, session and date tokens dropped; ${doc.slug} stays as an alias`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (newSlug === doc.slug && newKind === doc.kind)
|
|
197
|
+
continue;
|
|
198
|
+
out.push({
|
|
199
|
+
attachmentId: doc.id,
|
|
200
|
+
sha256: doc.sha256,
|
|
201
|
+
slug: doc.slug,
|
|
202
|
+
newSlug,
|
|
203
|
+
kind: doc.kind,
|
|
204
|
+
newKind,
|
|
205
|
+
ownerTasks: doc.slug ? ownerIdsFromPath(doc.slug).filter((id) => id.startsWith('T')) : [],
|
|
206
|
+
reasons,
|
|
207
|
+
judgments,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
// ADR number collisions: earliest keeps the number, later ones move past the highest.
|
|
211
|
+
const planned = new Map(out.map((r) => [r.attachmentId, r]));
|
|
212
|
+
const byNumber = new Map();
|
|
213
|
+
for (const doc of docs) {
|
|
214
|
+
const slug = planned.get(doc.id)?.newSlug ?? doc.slug;
|
|
215
|
+
const kind = planned.get(doc.id)?.newKind ?? doc.kind;
|
|
216
|
+
const n = kind === 'adr' ? adrNumber(slug) : null;
|
|
217
|
+
if (n === null)
|
|
218
|
+
continue;
|
|
219
|
+
byNumber.set(n, [...(byNumber.get(n) ?? []), doc]);
|
|
220
|
+
}
|
|
221
|
+
let next = (await findHighestAdrNumber(projectRoot)) + 1;
|
|
222
|
+
for (const [n, group] of [...byNumber].sort((a, b) => a[0] - b[0])) {
|
|
223
|
+
if (group.length < 2)
|
|
224
|
+
continue;
|
|
225
|
+
const births = new Map();
|
|
226
|
+
for (const doc of group)
|
|
227
|
+
births.set(doc.id, await docBirthMs(projectRoot, doc));
|
|
228
|
+
const [, ...later] = [...group].sort((a, b) => (births.get(a.id) ?? 0) - (births.get(b.id) ?? 0) || a.id.localeCompare(b.id));
|
|
229
|
+
for (const doc of later) {
|
|
230
|
+
const row = planned.get(doc.id);
|
|
231
|
+
const current = row?.newSlug ?? doc.slug ?? '';
|
|
232
|
+
const title = current.replace(/^adr-\d+-?/, '') || 'decision';
|
|
233
|
+
const renumbered = assembleAdrSlug(next, title);
|
|
234
|
+
next += 1;
|
|
235
|
+
taken.add(renumbered);
|
|
236
|
+
const reason = `ADR ${String(n).padStart(3, '0')} is shared; an earlier ADR keeps it, this one becomes ${renumbered}`;
|
|
237
|
+
if (row) {
|
|
238
|
+
const updated = { ...row, newSlug: renumbered, reasons: [...row.reasons, reason] };
|
|
239
|
+
out[out.indexOf(row)] = updated;
|
|
240
|
+
planned.set(doc.id, updated);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
const added = {
|
|
244
|
+
attachmentId: doc.id,
|
|
245
|
+
sha256: doc.sha256,
|
|
246
|
+
slug: doc.slug,
|
|
247
|
+
newSlug: renumbered,
|
|
248
|
+
kind: doc.kind,
|
|
249
|
+
newKind: doc.kind ?? 'adr',
|
|
250
|
+
ownerTasks: [],
|
|
251
|
+
reasons: [reason],
|
|
252
|
+
judgments: [],
|
|
253
|
+
};
|
|
254
|
+
out.push(added);
|
|
255
|
+
planned.set(doc.id, added);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
out.sort((a, b) => (a.slug ?? a.attachmentId).localeCompare(b.slug ?? b.attachmentId));
|
|
260
|
+
return {
|
|
261
|
+
root: projectRoot,
|
|
262
|
+
generatedAt: (options.now?.() ?? new Date()).toISOString(),
|
|
263
|
+
rows: [],
|
|
264
|
+
counts: { keep: 0, rename: 0, 'merge-into': 0, delete: 0 },
|
|
265
|
+
mode: 'store',
|
|
266
|
+
storeRows: out,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Apply a store-mode plan with a receipt.
|
|
271
|
+
*
|
|
272
|
+
* @param plan - A `mode: 'store'` plan.
|
|
273
|
+
* @param projectRoot - Project root.
|
|
274
|
+
* @param now - Clock (tests).
|
|
275
|
+
* @returns The receipt.
|
|
276
|
+
*/
|
|
277
|
+
export async function applyDocsStoreModernize(plan, projectRoot, now = () => new Date()) {
|
|
278
|
+
const started = now();
|
|
279
|
+
const t0 = performance.now();
|
|
280
|
+
const stamp = started.toISOString().replace(/[-:.]/g, '').replace('T', '-').slice(0, 15);
|
|
281
|
+
// A random tail: two store runs in the same second must not share a receipt.
|
|
282
|
+
const runId = `dm-${stamp}-store-${randomUUID().slice(0, 8)}`;
|
|
283
|
+
const journal = new StepJournal(journalPath(projectRoot, runId));
|
|
284
|
+
const receipt = (edgeCount, durationMs) => ({
|
|
285
|
+
runId,
|
|
286
|
+
root: projectRoot,
|
|
287
|
+
appliedAt: started.toISOString(),
|
|
288
|
+
planSha256: '',
|
|
289
|
+
ops: journal.list(),
|
|
290
|
+
edgeCount,
|
|
291
|
+
rolledBackAt: null,
|
|
292
|
+
blobs: [],
|
|
293
|
+
moves: [],
|
|
294
|
+
deleted: [],
|
|
295
|
+
...(durationMs !== undefined ? { durationMs } : {}),
|
|
296
|
+
});
|
|
297
|
+
const save = async (edgeCount = 0, durationMs) => {
|
|
298
|
+
await writeFileAtomic({
|
|
299
|
+
path: modernizeReceiptPath(projectRoot, runId),
|
|
300
|
+
content: `${JSON.stringify(receipt(edgeCount, durationMs), null, 2)}\n`,
|
|
301
|
+
});
|
|
302
|
+
};
|
|
303
|
+
await save();
|
|
304
|
+
const { renameDocSlug, setDocKind, getDocKind } = await import('../slug-rename.js');
|
|
305
|
+
const store = createAttachmentStore();
|
|
306
|
+
const { rebuildDocsWikilinks } = await import('../wikilinks.js');
|
|
307
|
+
let edgeCount = 0;
|
|
308
|
+
try {
|
|
309
|
+
for (const row of plan.storeRows ?? []) {
|
|
310
|
+
if (row.newKind !== row.kind) {
|
|
311
|
+
const i = journal.begin({
|
|
312
|
+
op: 'rekind',
|
|
313
|
+
attachmentId: row.attachmentId,
|
|
314
|
+
prior: { kind: await getDocKind(projectRoot, row.attachmentId) },
|
|
315
|
+
});
|
|
316
|
+
await setDocKind(projectRoot, row.attachmentId, row.newKind);
|
|
317
|
+
journal.done(i);
|
|
318
|
+
}
|
|
319
|
+
if (row.slug && row.newSlug && row.newSlug !== row.slug) {
|
|
320
|
+
const i = journal.begin({
|
|
321
|
+
op: 'reslug',
|
|
322
|
+
attachmentId: row.attachmentId,
|
|
323
|
+
slug: row.slug,
|
|
324
|
+
target: row.newSlug,
|
|
325
|
+
});
|
|
326
|
+
await renameDocSlug(projectRoot, {
|
|
327
|
+
oldSlug: row.slug,
|
|
328
|
+
newSlug: row.newSlug,
|
|
329
|
+
reason: 'modernize',
|
|
330
|
+
authorAgentId: ACTOR,
|
|
331
|
+
});
|
|
332
|
+
journal.done(i);
|
|
333
|
+
}
|
|
334
|
+
for (const task of row.ownerTasks) {
|
|
335
|
+
const refs = await store.listRefs(row.attachmentId, projectRoot);
|
|
336
|
+
if (refs.some((r) => r.ownerType === IMPORT_OWNER_TYPE && r.ownerId === task))
|
|
337
|
+
continue;
|
|
338
|
+
const i = journal.begin({ op: 'link-task', attachmentId: row.attachmentId, ownerId: task });
|
|
339
|
+
await store.ref(row.attachmentId, IMPORT_OWNER_TYPE, task, ACTOR, projectRoot);
|
|
340
|
+
journal.done(i);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
finally {
|
|
345
|
+
({ edgeCount } = await rebuildDocsWikilinks({ projectRoot }));
|
|
346
|
+
await save(edgeCount, Math.round(performance.now() - t0));
|
|
347
|
+
}
|
|
348
|
+
return receipt(edgeCount, Math.round(performance.now() - t0));
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Reverse one store-mode op (called by the shared rollback walk).
|
|
352
|
+
*
|
|
353
|
+
* @param projectRoot - Project root.
|
|
354
|
+
* @param op - A `rekind`, `reslug` or `link-task` op.
|
|
355
|
+
* @returns Whether the op was a store-mode op.
|
|
356
|
+
*/
|
|
357
|
+
export async function reverseStoreOp(projectRoot, op) {
|
|
358
|
+
const { renameDocSlug, setDocKind } = await import('../slug-rename.js');
|
|
359
|
+
switch (op.op) {
|
|
360
|
+
case 'rekind':
|
|
361
|
+
if (op.attachmentId)
|
|
362
|
+
await setDocKind(projectRoot, op.attachmentId, op.prior?.kind ?? null);
|
|
363
|
+
return true;
|
|
364
|
+
case 'reslug': {
|
|
365
|
+
const store = createAttachmentStore();
|
|
366
|
+
// A pending rename that never happened has nothing to undo.
|
|
367
|
+
const renamed = op.target ? await store.findBySlug(op.target, projectRoot) : null;
|
|
368
|
+
if (op.slug && op.target && renamed) {
|
|
369
|
+
await renameDocSlug(projectRoot, {
|
|
370
|
+
oldSlug: op.target,
|
|
371
|
+
newSlug: op.slug,
|
|
372
|
+
reason: 'modernize-rollback',
|
|
373
|
+
authorAgentId: ACTOR,
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
return true;
|
|
377
|
+
}
|
|
378
|
+
case 'link-task': {
|
|
379
|
+
const store = createAttachmentStore();
|
|
380
|
+
const refs = op.attachmentId ? await store.listRefs(op.attachmentId, projectRoot) : [];
|
|
381
|
+
if (op.attachmentId && op.ownerId && refs.some((r) => r.ownerId === op.ownerId)) {
|
|
382
|
+
await store.deref(op.attachmentId, IMPORT_OWNER_TYPE, op.ownerId, projectRoot);
|
|
383
|
+
}
|
|
384
|
+
return true;
|
|
385
|
+
}
|
|
386
|
+
default:
|
|
387
|
+
return false;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/docs/modernize/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
* coalesces onto one row (gate 37 declaration in
|
|
16
16
|
* `row-identity-registry.ts`).
|
|
17
17
|
* - {@link upsertDocsPublication} refreshes `last_blob_sha` /
|
|
18
|
-
* `published_at` on conflict (latest-publish-wins)
|
|
19
|
-
*
|
|
18
|
+
* `published_at` on conflict (latest-publish-wins). The only DELETE is
|
|
19
|
+
* {@link deleteDocsPublication}, used by the `cleo docs doctor` ledger
|
|
20
|
+
* prune (T14117) under its backup gate.
|
|
20
21
|
* - {@link readDocsPublications} carries a one-time, idempotent migration
|
|
21
22
|
* shim: when the store table is empty and the legacy
|
|
22
23
|
* `.cleo/docs-publications.json` still holds entries, they are seeded
|
|
@@ -64,4 +65,17 @@ export declare function readDocsPublications(projectRoot: string): Promise<DocsP
|
|
|
64
65
|
* @returns Distinct `last_blob_sha` values across all publications.
|
|
65
66
|
*/
|
|
66
67
|
export declare function readDocsPublicationSha256Set(projectRoot: string): Promise<Set<string>>;
|
|
68
|
+
/**
|
|
69
|
+
* Delete one publication row by its natural (ownerId, blobName, publishedPath)
|
|
70
|
+
* key.
|
|
71
|
+
*
|
|
72
|
+
* Only the `cleo docs doctor` ledger prune (T14117) calls this, after its
|
|
73
|
+
* backup gate passed and after it appended the full row to its audit log, so
|
|
74
|
+
* a pruned row can be re-inserted with {@link upsertDocsPublication}.
|
|
75
|
+
*
|
|
76
|
+
* @param projectRoot - Absolute path to the CLEO project root.
|
|
77
|
+
* @param key - The natural key of the row to delete.
|
|
78
|
+
* @task T14117
|
|
79
|
+
*/
|
|
80
|
+
export declare function deleteDocsPublication(projectRoot: string, key: Pick<DocsPublicationRecord, 'ownerId' | 'blobName' | 'publishedPath'>): Promise<void>;
|
|
67
81
|
//# sourceMappingURL=publications-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publications-store.d.ts","sourceRoot":"","sources":["../../src/docs/publications-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"publications-store.d.ts","sourceRoot":"","sources":["../../src/docs/publications-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAQH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAgF3D;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA0ChG;AAED;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAO5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
* coalesces onto one row (gate 37 declaration in
|
|
16
16
|
* `row-identity-registry.ts`).
|
|
17
17
|
* - {@link upsertDocsPublication} refreshes `last_blob_sha` /
|
|
18
|
-
* `published_at` on conflict (latest-publish-wins)
|
|
19
|
-
*
|
|
18
|
+
* `published_at` on conflict (latest-publish-wins). The only DELETE is
|
|
19
|
+
* {@link deleteDocsPublication}, used by the `cleo docs doctor` ledger
|
|
20
|
+
* prune (T14117) under its backup gate.
|
|
20
21
|
* - {@link readDocsPublications} carries a one-time, idempotent migration
|
|
21
22
|
* shim: when the store table is empty and the legacy
|
|
22
23
|
* `.cleo/docs-publications.json` still holds entries, they are seeded
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
*/
|
|
31
32
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
32
33
|
import { join } from 'node:path';
|
|
34
|
+
import { and, eq } from 'drizzle-orm';
|
|
33
35
|
import { naturalRowUid } from '../store/row-identity.js';
|
|
34
36
|
import { docsPublications } from '../store/schema/cleo-project/docs.js';
|
|
35
37
|
import { getDb } from '../store/sqlite.js';
|
|
@@ -190,4 +192,23 @@ export async function readDocsPublicationSha256Set(projectRoot) {
|
|
|
190
192
|
.all();
|
|
191
193
|
return new Set(rows.map((r) => r.lastBlobSha).filter((sha) => /^[0-9a-f]{64}$/i.test(sha)));
|
|
192
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Delete one publication row by its natural (ownerId, blobName, publishedPath)
|
|
197
|
+
* key.
|
|
198
|
+
*
|
|
199
|
+
* Only the `cleo docs doctor` ledger prune (T14117) calls this, after its
|
|
200
|
+
* backup gate passed and after it appended the full row to its audit log, so
|
|
201
|
+
* a pruned row can be re-inserted with {@link upsertDocsPublication}.
|
|
202
|
+
*
|
|
203
|
+
* @param projectRoot - Absolute path to the CLEO project root.
|
|
204
|
+
* @param key - The natural key of the row to delete.
|
|
205
|
+
* @task T14117
|
|
206
|
+
*/
|
|
207
|
+
export async function deleteDocsPublication(projectRoot, key) {
|
|
208
|
+
const db = await getDb(projectRoot);
|
|
209
|
+
await db
|
|
210
|
+
.delete(docsPublications)
|
|
211
|
+
.where(and(eq(docsPublications.ownerId, key.ownerId), eq(docsPublications.blobName, key.blobName), eq(docsPublications.publishedPath, key.publishedPath)))
|
|
212
|
+
.run();
|
|
213
|
+
}
|
|
193
214
|
//# sourceMappingURL=publications-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publications-store.js","sourceRoot":"","sources":["../../src/docs/publications-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"publications-store.js","sourceRoot":"","sources":["../../src/docs/publications-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-pr.d.ts","sourceRoot":"","sources":["../../src/docs/publish-pr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"publish-pr.d.ts","sourceRoot":"","sources":["../../src/docs/publish-pr.ts"],"names":[],"mappings":"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"}
|
package/dist/docs/publish-pr.js
CHANGED
|
@@ -25,6 +25,7 @@ import { join } from 'node:path';
|
|
|
25
25
|
import { promisify } from 'node:util';
|
|
26
26
|
import { BUILTIN_DOC_KIND_VALUES, DocKindRegistry } from '@cleocode/contracts/docs-taxonomy.js';
|
|
27
27
|
import { addTransientWorktree, removeTransientWorktree } from '@cleocode/worktree';
|
|
28
|
+
import { discoveryEnv } from '../git/work-tree.js';
|
|
28
29
|
const execFileAsync = promisify(execFile);
|
|
29
30
|
// ─── Slug validation (mirror dispatch/docs.ts SLUG_PATTERN) ──────────────────
|
|
30
31
|
/** Kebab-case slug pattern, identical to the docs domain validator. */
|
|
@@ -158,7 +159,8 @@ export function execMsg(e) {
|
|
|
158
159
|
}
|
|
159
160
|
/** Default subprocess runner — shells out via `execFile`. */
|
|
160
161
|
export async function defaultRun(bin, args, cwd) {
|
|
161
|
-
|
|
162
|
+
// T14189: git acts on `cwd`'s repository, never an inherited hook index or GIT_DIR.
|
|
163
|
+
const opts = { cwd, env: discoveryEnv(), maxBuffer: 8 * 1024 * 1024 };
|
|
162
164
|
const { stdout, stderr } = await execFileAsync(bin, [...args], opts);
|
|
163
165
|
return {
|
|
164
166
|
stdout: typeof stdout === 'string' ? stdout : stdout.toString('utf-8'),
|
|
@@ -579,6 +581,15 @@ export async function publishDocsAsPr(opts) {
|
|
|
579
581
|
: resolved.type && projectKnownTypes.has(resolved.type)
|
|
580
582
|
? resolved.type
|
|
581
583
|
: 'note';
|
|
584
|
+
// T14107 (D11210): a store-only kind (session handoffs) is never published.
|
|
585
|
+
const kindMeta = (projectRoot ? loadRegistrySafely(projectRoot) : DocKindRegistry.builtinOnly()).get(type);
|
|
586
|
+
if (kindMeta?.storeOnly) {
|
|
587
|
+
// @sync-invariant none:input-shape a store-only kind is refused before any publish step; nothing is written
|
|
588
|
+
return {
|
|
589
|
+
success: false,
|
|
590
|
+
error: publishPrError('E_DOC_STORE_ONLY', `${type} docs live in the CLEO doc store only and are never published to the repository`, `Read it with cleo docs fetch ${slug}; publish a durable doc (guide, concept, reference, …) instead.`),
|
|
591
|
+
};
|
|
592
|
+
}
|
|
582
593
|
const publishDir = publishDirForType(type, projectRoot);
|
|
583
594
|
const branch = branchForSlug(slug);
|
|
584
595
|
// 4. Pre-flight gh auth so we fail early before any side effects.
|