kibi-cli 0.19.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-errors.d.ts +3 -1
- package/dist/cli-errors.d.ts.map +1 -1
- package/dist/cli-errors.js +4 -1
- package/dist/cli-json-command.d.ts +1 -0
- package/dist/cli-json-command.d.ts.map +1 -1
- package/dist/cli-json-command.js +13 -4
- package/dist/cli-operation-loader.d.ts.map +1 -1
- package/dist/cli-operation-loader.js +53 -20
- package/dist/cli-operation-metadata.d.ts +21 -8
- package/dist/cli-operation-metadata.d.ts.map +1 -1
- package/dist/cli-operation-metadata.js +27 -10
- package/dist/cli-protocol.d.ts.map +1 -1
- package/dist/cli-protocol.js +38 -8
- package/dist/cli-register-foundation.d.ts.map +1 -1
- package/dist/cli-register-foundation.js +14 -2
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +33 -4
- package/dist/cli-register-proof.d.ts +3 -0
- package/dist/cli-register-proof.d.ts.map +1 -0
- package/dist/cli-register-proof.js +103 -0
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +11 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -8
- package/dist/commands/aggregated-checks.d.ts +1 -2
- package/dist/commands/aggregated-checks.d.ts.map +1 -1
- package/dist/commands/aggregated-checks.js +14 -9
- package/dist/commands/branch.d.ts +37 -0
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +375 -40
- package/dist/commands/check.d.ts +14 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +209 -110
- package/dist/commands/coverage.d.ts +1 -0
- package/dist/commands/coverage.d.ts.map +1 -1
- package/dist/commands/coverage.js +6 -0
- package/dist/commands/discovery-shared.d.ts.map +1 -1
- package/dist/commands/discovery-shared.js +10 -19
- package/dist/commands/doctor.d.ts +26 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +291 -30
- package/dist/commands/engine.d.ts +12 -0
- package/dist/commands/engine.d.ts.map +1 -1
- package/dist/commands/engine.js +50 -7
- package/dist/commands/gc.d.ts +5 -2
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +140 -71
- package/dist/commands/github-init.d.ts +57 -0
- package/dist/commands/github-init.d.ts.map +1 -0
- package/dist/commands/github-init.js +314 -0
- package/dist/commands/init-helpers.d.ts +1 -1
- package/dist/commands/init-helpers.d.ts.map +1 -1
- package/dist/commands/init-helpers.js +109 -28
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +79 -24
- package/dist/commands/legacy-storage-migration.d.ts +54 -0
- package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
- package/dist/commands/legacy-storage-migration.js +277 -0
- package/dist/commands/migrate.d.ts +11 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +249 -96
- package/dist/commands/proof-migrate-legacy.d.ts +7 -0
- package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
- package/dist/commands/proof-migrate-legacy.js +45 -0
- package/dist/commands/proof-prune.d.ts +8 -0
- package/dist/commands/proof-prune.d.ts.map +1 -0
- package/dist/commands/proof-prune.js +53 -0
- package/dist/commands/prove.d.ts +37 -0
- package/dist/commands/prove.d.ts.map +1 -0
- package/dist/commands/prove.js +470 -0
- package/dist/commands/report.d.ts +24 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +191 -0
- package/dist/commands/sync/cache.d.ts +16 -3
- package/dist/commands/sync/cache.d.ts.map +1 -1
- package/dist/commands/sync/cache.js +111 -4
- package/dist/commands/sync/discovery.d.ts +26 -2
- package/dist/commands/sync/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +204 -15
- package/dist/commands/sync/extraction.d.ts +8 -1
- package/dist/commands/sync/extraction.d.ts.map +1 -1
- package/dist/commands/sync/extraction.js +38 -4
- package/dist/commands/sync/manifest.d.ts +9 -6
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +195 -60
- package/dist/commands/sync/persistence.d.ts +4 -1
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +26 -12
- package/dist/commands/sync/staging.d.ts +1 -0
- package/dist/commands/sync/staging.d.ts.map +1 -1
- package/dist/commands/sync/staging.js +5 -2
- package/dist/commands/sync/untracked-targets.d.ts +24 -0
- package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
- package/dist/commands/sync/untracked-targets.js +108 -0
- package/dist/commands/sync.d.ts +17 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +375 -106
- package/dist/diagnostics.d.ts +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/engine-daemon.d.ts +3 -1
- package/dist/engine-daemon.d.ts.map +1 -1
- package/dist/engine-daemon.js +49 -20
- package/dist/engine.d.ts +34 -3
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +578 -42
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +5 -6
- package/dist/extractors/manifest.d.ts +13 -1
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +97 -10
- package/dist/extractors/markdown.d.ts +5 -2
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +47 -12
- package/dist/extractors/playwright-cases.d.ts +24 -0
- package/dist/extractors/playwright-cases.d.ts.map +1 -0
- package/dist/extractors/playwright-cases.js +126 -0
- package/dist/extractors/relationships.d.ts +6 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +2 -1
- package/dist/extractors/symbol-coordinates.d.ts +81 -3
- package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
- package/dist/extractors/symbol-coordinates.js +389 -51
- package/dist/extractors/symbols-coordinator.js +11 -1
- package/dist/extractors/symbols-ts.d.ts +1 -0
- package/dist/extractors/symbols-ts.d.ts.map +1 -1
- package/dist/extractors/symbols-ts.js +142 -67
- package/dist/intent-search.d.ts +61 -0
- package/dist/intent-search.d.ts.map +1 -0
- package/dist/intent-search.js +437 -0
- package/dist/logic/ir.d.ts +1 -0
- package/dist/logic/ir.d.ts.map +1 -1
- package/dist/logic/ir.js +1 -1
- package/dist/operations/bootstrap/activation.d.ts +5 -0
- package/dist/operations/bootstrap/activation.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/activation.js +58 -33
- package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
- package/dist/operations/bootstrap/candidates.d.ts +4 -0
- package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
- package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
- package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
- package/dist/operations/bootstrap/generate.d.ts +9 -0
- package/dist/operations/bootstrap/generate.d.ts.map +1 -0
- package/dist/operations/bootstrap/generate.js +207 -0
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
- package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +3 -2
- package/dist/operations/bootstrap/guidance.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/guidance.js +3 -1
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
- package/dist/operations/bootstrap/presentation.d.ts +15 -0
- package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
- package/dist/operations/bootstrap/presentation.js +177 -0
- package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
- package/dist/operations/bootstrap/types.d.ts.map +1 -0
- package/dist/operations/bootstrap/types.js +25 -0
- package/dist/operations/modeling/model-requirement.d.ts +5 -0
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
- package/dist/operations/modeling/model-requirement.js +57 -63
- package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
- package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-applicability.js +375 -0
- package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
- package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-applyplan.js +100 -3
- package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
- package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-bindings.js +122 -0
- package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-2.js +18 -2
- package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-3.js +17 -1
- package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-4.js +155 -0
- package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
- package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-catalog-5.js +291 -0
- package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog.js +4 -0
- package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference-1.js +8 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
- package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference.js +4 -0
- package/dist/operations/modeling/predicate-loader.d.ts +1 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-loader.js +11 -3
- package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
- package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-ranker.js +159 -24
- package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-score-3.js +6 -0
- package/dist/operations/modeling/predicate-types.d.ts +35 -1
- package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
- package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
- package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
- package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-utils.js +2 -0
- package/dist/operations/modeling/suggest-predicates.d.ts +4 -2
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +203 -32
- package/dist/operations/mutation/contradictions.d.ts +2 -1
- package/dist/operations/mutation/contradictions.d.ts.map +1 -1
- package/dist/operations/mutation/contradictions.js +26 -5
- package/dist/operations/mutation/delete.d.ts +3 -0
- package/dist/operations/mutation/delete.d.ts.map +1 -1
- package/dist/operations/mutation/delete.js +483 -19
- package/dist/operations/mutation/entity-projection.d.ts +11 -0
- package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
- package/dist/operations/mutation/entity-projection.js +14 -0
- package/dist/operations/mutation/relationships.d.ts +11 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +77 -5
- package/dist/operations/mutation/saga.d.ts +51 -0
- package/dist/operations/mutation/saga.d.ts.map +1 -0
- package/dist/operations/mutation/saga.js +67 -0
- package/dist/operations/mutation/serialization.d.ts.map +1 -1
- package/dist/operations/mutation/serialization.js +3 -1
- package/dist/operations/mutation/source-authoring.d.ts +65 -0
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
- package/dist/operations/mutation/source-authoring.js +576 -0
- package/dist/operations/mutation/strict-fact.d.ts +1 -0
- package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
- package/dist/operations/mutation/strict-fact.js +8 -5
- package/dist/operations/mutation/symbol-compiler-lock.d.ts +54 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
- package/dist/operations/mutation/symbol-compiler-lock.js +337 -0
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-granularity.js +35 -4
- package/dist/operations/mutation/symbol-refresh.d.ts +19 -1
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +227 -63
- package/dist/operations/mutation/types.d.ts +57 -1
- package/dist/operations/mutation/types.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.d.ts +18 -2
- package/dist/operations/mutation/upsert.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.js +403 -32
- package/dist/operations/mutation/validate-upsert.js +2 -2
- package/dist/operations/mutation/validation.d.ts.map +1 -1
- package/dist/operations/mutation/validation.js +47 -4
- package/dist/operations/mutation/warnings.d.ts +1 -0
- package/dist/operations/mutation/warnings.d.ts.map +1 -1
- package/dist/operations/mutation/warnings.js +7 -5
- package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
- package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
- package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
- package/dist/operations/planning/apply-plan.d.ts +19 -0
- package/dist/operations/planning/apply-plan.d.ts.map +1 -0
- package/dist/operations/planning/apply-plan.js +1514 -0
- package/dist/operations/planning/compile-intent.d.ts +108 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -0
- package/dist/operations/planning/compile-intent.js +618 -0
- package/dist/operations/proof/ingest-proof.d.ts +34 -0
- package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
- package/dist/operations/proof/ingest-proof.js +307 -0
- package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
- package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
- package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
- package/dist/operations/proof/prune-receipts.d.ts +35 -0
- package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
- package/dist/operations/proof/prune-receipts.js +91 -0
- package/dist/operations/proof/receipt-document.d.ts +29 -0
- package/dist/operations/proof/receipt-document.d.ts.map +1 -0
- package/dist/operations/proof/receipt-document.js +117 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analyze-prose.js +52 -28
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +35 -9
- package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
- package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
- package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
- package/dist/operations/semantic-advisor/types.d.ts +13 -5
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
- package/dist/prolog/codec.d.ts +13 -1
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +269 -153
- package/dist/prolog/error-terms.d.ts +47 -0
- package/dist/prolog/error-terms.d.ts.map +1 -0
- package/dist/prolog/error-terms.js +334 -0
- package/dist/prolog/janitor.d.ts +50 -0
- package/dist/prolog/janitor.d.ts.map +1 -0
- package/dist/prolog/janitor.js +154 -0
- package/dist/prolog/store-lock.d.ts +45 -0
- package/dist/prolog/store-lock.d.ts.map +1 -0
- package/dist/prolog/store-lock.js +195 -0
- package/dist/prolog.d.ts +7 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +82 -25
- package/dist/proof/evaluate.d.ts +27 -0
- package/dist/proof/evaluate.d.ts.map +1 -0
- package/dist/proof/evaluate.js +151 -0
- package/dist/proof/inspect.d.ts +12 -0
- package/dist/proof/inspect.d.ts.map +1 -0
- package/dist/proof/inspect.js +236 -0
- package/dist/proof/integrations.d.ts +35 -0
- package/dist/proof/integrations.d.ts.map +1 -0
- package/dist/proof/integrations.js +123 -0
- package/dist/proof/producers/junit-adapter.d.ts +26 -0
- package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
- package/dist/proof/producers/junit-adapter.js +186 -0
- package/dist/proof/producers/playwright-case-id.d.ts +8 -0
- package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
- package/dist/proof/producers/playwright-case-id.js +25 -0
- package/dist/proof/producers/playwright-reporter.d.ts +27 -0
- package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
- package/dist/proof/producers/playwright-reporter.js +138 -0
- package/dist/proof/producers/tap-adapter.d.ts +10 -0
- package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
- package/dist/proof/producers/tap-adapter.js +200 -0
- package/dist/proof/receipt-outcome.d.ts +2 -0
- package/dist/proof/receipt-outcome.d.ts.map +1 -0
- package/dist/proof/receipt-outcome.js +1 -0
- package/dist/public/branch-resolver.d.ts +1 -0
- package/dist/public/branch-resolver.d.ts.map +1 -1
- package/dist/public/branch-resolver.js +1 -0
- package/dist/public/check-types.d.ts +2 -2
- package/dist/public/check-types.d.ts.map +1 -1
- package/dist/public/check-types.js +16 -16
- package/dist/public/diagnostic-usage.d.ts.map +1 -1
- package/dist/public/diagnostic-usage.js +74 -6
- package/dist/public/distribution-parity.d.ts +7 -1
- package/dist/public/distribution-parity.d.ts.map +1 -1
- package/dist/public/distribution-parity.js +15 -9
- package/dist/public/ignore-policy.d.ts.map +1 -1
- package/dist/public/ignore-policy.js +16 -4
- package/dist/public/impact/coverage-depth-quality.d.ts +7 -1
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
- package/dist/public/impact/coverage-depth-quality.js +22 -4
- package/dist/public/impact/diagnostics.d.ts.map +1 -1
- package/dist/public/impact/diagnostics.js +2 -2
- package/dist/public/impact/diff-meaning.d.ts +1 -0
- package/dist/public/impact/diff-meaning.d.ts.map +1 -1
- package/dist/public/impact/diff-meaning.js +5 -2
- package/dist/public/impact/full-kb-quality.d.ts +7 -2
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +364 -39
- package/dist/public/impact/manifest.d.ts.map +1 -1
- package/dist/public/impact/manifest.js +2 -5
- package/dist/public/operational-artifacts.d.ts.map +1 -1
- package/dist/public/operational-artifacts.js +7 -1
- package/dist/public/operations/catalog.d.ts +900 -34
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +130 -6
- package/dist/public/operations/check-executor.d.ts +2 -2
- package/dist/public/operations/check-executor.d.ts.map +1 -1
- package/dist/public/operations/check-executor.js +68 -13
- package/dist/public/operations/check-format-shared.d.ts +3 -0
- package/dist/public/operations/check-format-shared.d.ts.map +1 -1
- package/dist/public/operations/check-format-shared.js +3 -0
- package/dist/public/operations/check-helpers.d.ts +27 -2
- package/dist/public/operations/check-helpers.d.ts.map +1 -1
- package/dist/public/operations/check-helpers.js +62 -26
- package/dist/public/operations/contracts.d.ts +18 -0
- package/dist/public/operations/contracts.d.ts.map +1 -0
- package/dist/public/operations/contracts.js +334 -0
- package/dist/public/operations/discovery-entities.d.ts +3 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +4 -0
- package/dist/public/operations/discovery-executors.d.ts +43 -7
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +216 -13
- package/dist/public/operations/index.d.ts +9 -4
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +8 -3
- package/dist/public/operations/migration-plan.d.ts +102 -0
- package/dist/public/operations/migration-plan.d.ts.map +1 -0
- package/dist/public/operations/migration-plan.js +539 -0
- package/dist/public/operations/node-ports.d.ts.map +1 -1
- package/dist/public/operations/node-ports.js +71 -11
- package/dist/public/operations/prolog-json.d.ts +14 -0
- package/dist/public/operations/prolog-json.d.ts.map +1 -1
- package/dist/public/operations/prolog-json.js +44 -5
- package/dist/public/operations/repair-plan.d.ts +3 -3
- package/dist/public/operations/repair-plan.d.ts.map +1 -1
- package/dist/public/operations/repair-plan.js +49 -18
- package/dist/public/operations/result-envelope.d.ts +14 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -0
- package/dist/public/operations/result-envelope.js +106 -0
- package/dist/public/operations/runtime-types.d.ts +102 -7
- package/dist/public/operations/runtime-types.d.ts.map +1 -1
- package/dist/public/operations/source-relationship-parity.d.ts +13 -0
- package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
- package/dist/public/operations/source-relationship-parity.js +162 -0
- package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
- package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
- package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
- package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
- package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
- package/dist/public/operations/specs/check-rules.generated.js +34 -0
- package/dist/public/operations/specs/check.d.ts +9 -4
- package/dist/public/operations/specs/check.d.ts.map +1 -1
- package/dist/public/operations/specs/check.js +10 -21
- package/dist/public/operations/specs/discovery.d.ts +87 -3
- package/dist/public/operations/specs/discovery.d.ts.map +1 -1
- package/dist/public/operations/specs/discovery.js +53 -3
- package/dist/public/operations/specs/modeling.d.ts +3 -3
- package/dist/public/operations/specs/modeling.js +3 -3
- package/dist/public/operations/specs/mutation-schemas.d.ts +251 -14
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +16 -6
- package/dist/public/operations/specs/mutation.d.ts +42 -2
- package/dist/public/operations/specs/mutation.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation.js +26 -2
- package/dist/public/operations/specs/planning.d.ts +279 -0
- package/dist/public/operations/specs/planning.d.ts.map +1 -0
- package/dist/public/operations/specs/planning.js +197 -0
- package/dist/public/operations/specs/proof.d.ts +212 -0
- package/dist/public/operations/specs/proof.d.ts.map +1 -0
- package/dist/public/operations/specs/proof.js +30 -0
- package/dist/public/operations/specs/reporting.d.ts +23 -1
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +156 -11
- package/dist/public/operations/specs/upsert.d.ts +265 -14
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/specs/upsert.js +9 -0
- package/dist/public/operations/symbol-repair-plan.d.ts +22 -0
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
- package/dist/public/operations/symbol-repair-plan.js +238 -0
- package/dist/public/operations/types.d.ts +52 -1
- package/dist/public/operations/types.d.ts.map +1 -1
- package/dist/public/proof-fingerprint.d.ts +54 -0
- package/dist/public/proof-fingerprint.d.ts.map +1 -0
- package/dist/public/proof-fingerprint.js +141 -0
- package/dist/public/proof-protocol.d.ts +354 -0
- package/dist/public/proof-protocol.d.ts.map +1 -0
- package/dist/public/proof-protocol.js +454 -0
- package/dist/public/proof-receipt.d.ts +279 -0
- package/dist/public/proof-receipt.d.ts.map +1 -0
- package/dist/public/proof-receipt.js +377 -0
- package/dist/public/schemas/entity.d.ts.map +1 -1
- package/dist/public/schemas/entity.js +22 -6
- package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/dist/public/skills/kibi-freshness/SKILL.md +39 -9
- package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
- package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/dist/public/skills/kibi-usage/SKILL.md +136 -231
- package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/dist/public/skills/kibi-usage/resources/proof.md +105 -0
- package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +57 -4
- package/dist/public/symbol-granularity.d.ts +3 -14
- package/dist/public/symbol-granularity.d.ts.map +1 -1
- package/dist/public/symbol-granularity.generated.d.ts +16 -0
- package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
- package/dist/public/symbol-granularity.generated.js +20 -0
- package/dist/public/symbol-granularity.js +6 -46
- package/dist/public/telemetry-acceptance.d.ts +3 -70
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +11 -2
- package/dist/public/telemetry-remediation.js +1 -1
- package/dist/relationships/shards.d.ts +16 -0
- package/dist/relationships/shards.d.ts.map +1 -1
- package/dist/relationships/shards.js +87 -2
- package/dist/report/brand.d.ts +19 -0
- package/dist/report/brand.d.ts.map +1 -0
- package/dist/report/brand.js +112 -0
- package/dist/report/html-report.css +282 -0
- package/dist/report/html-report.d.ts +21 -0
- package/dist/report/html-report.d.ts.map +1 -0
- package/dist/report/html-report.js +700 -0
- package/dist/report/relative-time.d.ts +4 -0
- package/dist/report/relative-time.d.ts.map +1 -0
- package/dist/report/relative-time.js +46 -0
- package/dist/report/report-view.d.ts +17 -0
- package/dist/report/report-view.d.ts.map +1 -0
- package/dist/report/report-view.js +33 -0
- package/dist/report/repository.d.ts +35 -0
- package/dist/report/repository.d.ts.map +1 -0
- package/dist/report/repository.js +151 -0
- package/dist/runtime/cli-runtime.d.ts +2 -0
- package/dist/runtime/cli-runtime.d.ts.map +1 -1
- package/dist/runtime/cli-runtime.js +90 -23
- package/dist/schemas/entity.schema.json +1254 -239
- package/dist/search-ranking.d.ts +1 -0
- package/dist/search-ranking.d.ts.map +1 -1
- package/dist/search-ranking.js +3 -0
- package/dist/traceability/evidence-model.d.ts +30 -2
- package/dist/traceability/evidence-model.d.ts.map +1 -1
- package/dist/traceability/evidence-model.js +2 -2
- package/dist/traceability/git-staged.d.ts +20 -0
- package/dist/traceability/git-staged.d.ts.map +1 -1
- package/dist/traceability/git-staged.js +156 -37
- package/dist/traceability/markdown-validate.d.ts.map +1 -1
- package/dist/traceability/markdown-validate.js +12 -7
- package/dist/traceability/staged-diagnostics.d.ts +7 -0
- package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
- package/dist/traceability/staged-diagnostics.js +78 -7
- package/dist/traceability/staged-file-coverage.d.ts +33 -0
- package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
- package/dist/traceability/staged-file-coverage.js +284 -0
- package/dist/traceability/staged-impact-contract.d.ts +3 -3
- package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
- package/dist/traceability/staged-impact-contract.js +12 -40
- package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
- package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
- package/dist/traceability/staged-symbols-manifest.js +142 -26
- package/dist/traceability/symbol-extract.d.ts +5 -0
- package/dist/traceability/symbol-extract.d.ts.map +1 -1
- package/dist/traceability/symbol-extract.js +1 -1
- package/dist/traceability/temp-kb.d.ts +2 -0
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +14 -2
- package/dist/types/entities.d.ts +5 -0
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +25 -10
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +124 -38
- package/dist/utils/branch-store-locator.d.ts +23 -0
- package/dist/utils/branch-store-locator.d.ts.map +1 -0
- package/dist/utils/branch-store-locator.js +90 -0
- package/dist/utils/branch-store.d.ts +21 -0
- package/dist/utils/branch-store.d.ts.map +1 -0
- package/dist/utils/branch-store.js +157 -0
- package/dist/utils/config.d.ts +39 -37
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +107 -119
- package/dist/utils/kb-manifest.d.ts +35 -0
- package/dist/utils/kb-manifest.d.ts.map +1 -0
- package/dist/utils/kb-manifest.js +154 -0
- package/dist/utils/kb-paths.d.ts +54 -0
- package/dist/utils/kb-paths.d.ts.map +1 -0
- package/dist/utils/kb-paths.js +125 -0
- package/dist/utils/manifest-paths.d.ts +4 -4
- package/dist/utils/manifest-paths.d.ts.map +1 -1
- package/dist/utils/manifest-paths.js +8 -56
- package/dist/utils/rule-registry.d.ts +42 -24
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.generated.d.ts +97 -0
- package/dist/utils/rule-registry.generated.d.ts.map +1 -0
- package/dist/utils/rule-registry.generated.js +125 -0
- package/dist/utils/rule-registry.js +52 -148
- package/dist/utils/schema-version.d.ts +5 -5
- package/dist/utils/schema-version.d.ts.map +1 -1
- package/dist/utils/schema-version.js +26 -6
- package/dist/utils/strict-modeling.d.ts +1 -4
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +8 -9
- package/package.json +47 -11
- package/schema/config.json +2 -2
- package/schema/manifest.json +26 -0
- package/src/public/branch-resolver.ts +1 -0
- package/src/public/check-types.ts +22 -19
- package/src/public/diagnostic-usage.ts +84 -6
- package/src/public/distribution-parity.ts +17 -9
- package/src/public/ignore-policy.ts +16 -10
- package/src/public/impact/coverage-depth-quality.ts +37 -1
- package/src/public/impact/diagnostics.ts +2 -1
- package/src/public/impact/diff-meaning.ts +11 -4
- package/src/public/impact/full-kb-quality.ts +545 -41
- package/src/public/impact/manifest.ts +2 -4
- package/src/public/operational-artifacts.ts +9 -1
- package/src/public/operations/catalog.ts +153 -10
- package/src/public/operations/check-executor.ts +98 -15
- package/src/public/operations/check-format-shared.ts +6 -0
- package/src/public/operations/check-helpers.ts +74 -35
- package/src/public/operations/contracts.ts +382 -0
- package/src/public/operations/discovery-entities.ts +7 -0
- package/src/public/operations/discovery-executors.ts +315 -25
- package/src/public/operations/index.ts +9 -4
- package/src/public/operations/migration-plan.ts +747 -0
- package/src/public/operations/node-ports.ts +87 -13
- package/src/public/operations/prolog-json.ts +60 -5
- package/src/public/operations/repair-plan.ts +60 -22
- package/src/public/operations/result-envelope.ts +141 -0
- package/src/public/operations/runtime-types.ts +96 -5
- package/src/public/operations/source-relationship-parity.ts +226 -0
- package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
- package/src/public/operations/specs/check-rules.generated.ts +37 -0
- package/src/public/operations/specs/check.ts +14 -22
- package/src/public/operations/specs/discovery.ts +57 -3
- package/src/public/operations/specs/modeling.ts +3 -3
- package/src/public/operations/specs/mutation-schemas.ts +24 -6
- package/src/public/operations/specs/mutation.ts +27 -2
- package/src/public/operations/specs/planning.ts +241 -0
- package/src/public/operations/specs/proof.ts +43 -0
- package/src/public/operations/specs/reporting.ts +193 -12
- package/src/public/operations/specs/upsert.ts +10 -0
- package/src/public/operations/symbol-repair-plan.ts +324 -0
- package/src/public/operations/types.ts +62 -1
- package/src/public/proof-fingerprint.ts +216 -0
- package/src/public/proof-protocol-types.d.ts +96 -0
- package/src/public/proof-protocol.ts +589 -0
- package/src/public/proof-receipt.ts +499 -0
- package/src/public/schemas/entity.ts +27 -6
- package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/src/public/skills/kibi-freshness/SKILL.md +39 -9
- package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/src/public/skills/kibi-traceability/SKILL.md +47 -47
- package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/src/public/skills/kibi-usage/SKILL.md +136 -231
- package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/src/public/skills/kibi-usage/resources/proof.md +105 -0
- package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +57 -4
- package/src/public/symbol-granularity.generated.ts +41 -0
- package/src/public/symbol-granularity.ts +35 -59
- package/src/public/telemetry-acceptance-types.d.ts +98 -0
- package/src/public/telemetry-acceptance.ts +30 -93
- package/src/public/telemetry-remediation.ts +1 -1
- package/src/schemas/entity.schema.json +1254 -239
- package/templates/github/kibi-badge.yml +86 -0
- package/templates/github/kibi-report.yml +84 -0
- package/dist/operations/autopilot/activation.d.ts +0 -4
- package/dist/operations/autopilot/activation.d.ts.map +0 -1
- package/dist/operations/autopilot/candidates.d.ts +0 -4
- package/dist/operations/autopilot/discovery.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.d.ts +0 -8
- package/dist/operations/autopilot/generate.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.js +0 -112
- package/dist/operations/autopilot/guidance.d.ts.map +0 -1
- package/dist/operations/autopilot/presentation.d.ts +0 -13
- package/dist/operations/autopilot/presentation.d.ts.map +0 -1
- package/dist/operations/autopilot/presentation.js +0 -91
- package/dist/operations/autopilot/types.d.ts.map +0 -1
- package/dist/operations/autopilot/types.js +0 -8
- package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
- package/dist/public/skills/init-kibi/SKILL.md +0 -62
- package/dist/public/verification-receipt.d.ts +0 -75
- package/dist/public/verification-receipt.d.ts.map +0 -1
- package/dist/public/verification-receipt.js +0 -129
- package/src/public/skills/init-kibi/SKILL.md +0 -62
- package/src/public/verification-receipt.ts +0 -170
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
package/dist/commands/migrate.js
CHANGED
|
@@ -19,10 +19,49 @@ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from
|
|
|
19
19
|
import * as path from "node:path";
|
|
20
20
|
import { load as parseYAML } from "js-yaml";
|
|
21
21
|
import { extractSymbolsFromStagedFile } from "../traceability/symbol-extract.js";
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
22
|
+
import { resolveBranchAttachment } from "../utils/branch-resolver.js";
|
|
23
|
+
import { defaultKbManifest, readKbManifest, readKbManifestStatus, writeKbManifest, } from "../utils/kb-manifest.js";
|
|
24
|
+
import { CANONICAL_ENTITY_PATHS } from "../utils/kb-paths.js";
|
|
24
25
|
import { LATEST_KB_SCHEMA_VERSION, getSchemaVersionStatus, normalizeSchemaVersion, } from "../utils/schema-version.js";
|
|
26
|
+
import { updateGitIgnore } from "./init-helpers.js";
|
|
27
|
+
import { applyLegacyStorageMigration, planLegacyStorageMigration, } from "./legacy-storage-migration.js";
|
|
25
28
|
const MIGRATION_AUDIT_VERSION = 1;
|
|
29
|
+
const SCHEMA_MIGRATION_STEPS = [
|
|
30
|
+
{
|
|
31
|
+
id: "config-canonical-v1",
|
|
32
|
+
from: 0,
|
|
33
|
+
to: 1,
|
|
34
|
+
description: "Preserve legacy configuration while recording canonical schema metadata.",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "symbol-granularity-v2",
|
|
38
|
+
from: 1,
|
|
39
|
+
to: 2,
|
|
40
|
+
description: "Mark provable coarse traceability links as legacy-link.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "compatibility-v3",
|
|
44
|
+
from: 2,
|
|
45
|
+
to: 3,
|
|
46
|
+
description: "Record an audited compatibility no-op for schema v3.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "semantic-backfill-v4",
|
|
50
|
+
from: 3,
|
|
51
|
+
to: 4,
|
|
52
|
+
description: "Mark semantic-advisor backfill as pending without inventing claims.",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "canonical-storage-v5",
|
|
56
|
+
from: 4,
|
|
57
|
+
to: 5,
|
|
58
|
+
description: "Move Kibi knowledge into the canonical .kb/ namespace and retire .kb/config.json.",
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
function migrationStepsFor(fromVersion) {
|
|
62
|
+
const start = Math.max(0, fromVersion ?? 0);
|
|
63
|
+
return SCHEMA_MIGRATION_STEPS.filter((step) => step.from >= start);
|
|
64
|
+
}
|
|
26
65
|
function printWarning(message) {
|
|
27
66
|
console.log(`Warning: ${message}`);
|
|
28
67
|
}
|
|
@@ -31,59 +70,24 @@ function toRelativePath(cwd, filePath) {
|
|
|
31
70
|
return relativePath.length > 0 ? relativePath : path.basename(filePath);
|
|
32
71
|
}
|
|
33
72
|
function resolveMigrationBranch(cwd) {
|
|
34
|
-
const result =
|
|
73
|
+
const result = resolveBranchAttachment(cwd);
|
|
35
74
|
if ("error" in result) {
|
|
36
75
|
const isNonGitContext = result.code === "NOT_A_GIT_REPO" || result.code === "GIT_NOT_AVAILABLE";
|
|
37
76
|
if (isNonGitContext) {
|
|
38
77
|
return {
|
|
39
|
-
|
|
40
|
-
warnings: [
|
|
41
|
-
"Not in a git repository; using 'main' for migration audit metadata.",
|
|
42
|
-
],
|
|
78
|
+
error: "Not in a git repository; set KIBI_BRANCH explicitly for migration audit metadata.",
|
|
43
79
|
};
|
|
44
80
|
}
|
|
45
81
|
return {
|
|
46
82
|
error: `Failed to resolve active branch: ${result.error}`,
|
|
47
83
|
};
|
|
48
84
|
}
|
|
49
|
-
|
|
50
|
-
branch: result.branch,
|
|
51
|
-
warnings: [],
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function loadRawConfigDocument(cwd) {
|
|
55
|
-
const kbDir = path.join(cwd, ".kb");
|
|
56
|
-
const configPath = path.join(kbDir, "config.json");
|
|
57
|
-
if (!existsSync(kbDir)) {
|
|
58
|
-
return {
|
|
59
|
-
error: "Missing .kb/ directory. Run 'kibi init' before 'kibi migrate'.",
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
if (!existsSync(configPath)) {
|
|
63
|
-
return {
|
|
64
|
-
error: "Missing .kb/config.json. Run 'kibi init' to create a baseline config before migrating.",
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
const parsed = JSON.parse(readFileSync(configPath, "utf8"));
|
|
69
|
-
if (parsed === null ||
|
|
70
|
-
Array.isArray(parsed) ||
|
|
71
|
-
typeof parsed !== "object") {
|
|
72
|
-
return {
|
|
73
|
-
error: ".kb/config.json must contain a JSON object. Fix the file and retry 'kibi migrate'.",
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
config: parsed,
|
|
78
|
-
configPath,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
85
|
+
if (result.migrationRequired) {
|
|
83
86
|
return {
|
|
84
|
-
error: `
|
|
87
|
+
error: `Legacy branch attachment for '${result.gitBranch}' requires 'kibi branch migrate --from ${result.kbBranch} --to ${result.gitBranch} --apply' before schema migration.`,
|
|
85
88
|
};
|
|
86
89
|
}
|
|
90
|
+
return { branch: result.kbBranch, warnings: [] };
|
|
87
91
|
}
|
|
88
92
|
function writeJsonAtomically(filePath, value) {
|
|
89
93
|
writeTextAtomically(filePath, `${JSON.stringify(value, null, 2)}\n`);
|
|
@@ -94,7 +98,7 @@ function writeTextAtomically(filePath, content) {
|
|
|
94
98
|
writeFileSync(tempPath, content, "utf8");
|
|
95
99
|
renameSync(tempPath, filePath);
|
|
96
100
|
}
|
|
97
|
-
function formatSchemaVersion(rawSchemaVersion, normalized) {
|
|
101
|
+
export function formatSchemaVersion(rawSchemaVersion, normalized) {
|
|
98
102
|
if (normalized === null) {
|
|
99
103
|
if (rawSchemaVersion === undefined) {
|
|
100
104
|
return "missing";
|
|
@@ -107,7 +111,7 @@ function buildMigrationAuditRecord(args) {
|
|
|
107
111
|
return {
|
|
108
112
|
auditVersion: MIGRATION_AUDIT_VERSION,
|
|
109
113
|
branch: args.branch,
|
|
110
|
-
|
|
114
|
+
manifestPath: args.manifestPath,
|
|
111
115
|
fromVersion: args.fromVersion,
|
|
112
116
|
migratedAt: args.migratedAt,
|
|
113
117
|
semanticAdvisorBackfill: args.semanticAdvisorBackfill,
|
|
@@ -115,6 +119,7 @@ function buildMigrationAuditRecord(args) {
|
|
|
115
119
|
symbolGranularityLegacyLinks: args.symbolGranularityLegacyLinks,
|
|
116
120
|
toVersion: LATEST_KB_SCHEMA_VERSION,
|
|
117
121
|
warning: args.warning,
|
|
122
|
+
steps: args.steps,
|
|
118
123
|
};
|
|
119
124
|
}
|
|
120
125
|
function normalizeSemanticAdvisorBackfill(value) {
|
|
@@ -203,13 +208,8 @@ function addLegacyReasonsToManifestText(content, symbolIds) {
|
|
|
203
208
|
return output.join("\n");
|
|
204
209
|
}
|
|
205
210
|
function migrateSymbolGranularity(options) {
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
return { count: 0, manifestPath: null };
|
|
209
|
-
}
|
|
210
|
-
const manifestPath = path.isAbsolute(configuredSymbolsPath)
|
|
211
|
-
? configuredSymbolsPath
|
|
212
|
-
: path.join(options.cwd, configuredSymbolsPath);
|
|
211
|
+
const manifestPath = options.manifestPath ??
|
|
212
|
+
path.join(options.cwd, CANONICAL_ENTITY_PATHS.symbols);
|
|
213
213
|
if (!existsSync(manifestPath)) {
|
|
214
214
|
return { count: 0, manifestPath };
|
|
215
215
|
}
|
|
@@ -261,102 +261,255 @@ function migrateSymbolGranularity(options) {
|
|
|
261
261
|
}
|
|
262
262
|
return { count, manifestPath };
|
|
263
263
|
}
|
|
264
|
+
export function warnMigrationRequiredWithoutYes() {
|
|
265
|
+
printWarning("Migration required for this repository.");
|
|
266
|
+
console.log("No changes applied.");
|
|
267
|
+
console.log("Use --dry-run to preview or --yes to apply the migration.");
|
|
268
|
+
return { exitCode: 0 };
|
|
269
|
+
}
|
|
264
270
|
// implements REQ-003
|
|
265
271
|
export async function migrateCommand(options = {}) {
|
|
266
|
-
|
|
272
|
+
if (options.applySafe === true ||
|
|
273
|
+
options.format === "json" ||
|
|
274
|
+
(options.yes !== true && options.dryRun !== true)) {
|
|
275
|
+
return migratePlanCommand(options);
|
|
276
|
+
}
|
|
277
|
+
const cwd = path.resolve(options.workspaceRoot ?? process.cwd());
|
|
267
278
|
const branchResult = resolveMigrationBranch(cwd);
|
|
268
279
|
if ("error" in branchResult) {
|
|
269
280
|
console.error(branchResult.error);
|
|
270
281
|
return { exitCode: 1 };
|
|
271
282
|
}
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
283
|
+
const manifestStatus = readKbManifestStatus(cwd);
|
|
284
|
+
const storagePlan = planLegacyStorageMigration(cwd);
|
|
285
|
+
// Baseline for fresh workspaces driven by the internal plan executor.
|
|
286
|
+
if (options.initializeMissingConfig === true &&
|
|
287
|
+
manifestStatus.state === "missing") {
|
|
288
|
+
writeKbManifest(cwd, defaultKbManifest());
|
|
289
|
+
}
|
|
290
|
+
if (manifestStatus.state === "missing" &&
|
|
291
|
+
storagePlan.moves.length === 0 &&
|
|
292
|
+
storagePlan.legacyConfig === "absent") {
|
|
293
|
+
console.error("Missing .kb/ lifecycle state. Run 'kibi init' to create the canonical layout before migrating.");
|
|
275
294
|
return { exitCode: 1 };
|
|
276
295
|
}
|
|
277
296
|
const { branch, warnings: branchWarnings } = branchResult;
|
|
278
|
-
const
|
|
279
|
-
const
|
|
280
|
-
const
|
|
281
|
-
const
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
const
|
|
286
|
-
|
|
297
|
+
const currentManifest = readKbManifest(cwd);
|
|
298
|
+
const legacySchemaVersion = normalizeSchemaVersion(storagePlan.schemaVersion);
|
|
299
|
+
const currentVersion = currentManifest?.schemaVersion ?? legacySchemaVersion;
|
|
300
|
+
const normalizedVersion = normalizeSchemaVersion(currentVersion);
|
|
301
|
+
const configStatus = getSchemaVersionStatus(normalizedVersion === null
|
|
302
|
+
? undefined
|
|
303
|
+
: { schemaVersion: normalizedVersion });
|
|
304
|
+
const needsStorageMigration = storagePlan.moves.length > 0 || storagePlan.legacyConfig !== "absent";
|
|
305
|
+
const needsSchemaUpgrade = configStatus.needsMigration || normalizedVersion === null;
|
|
306
|
+
const migrationWarning = manifestStatus.state === "invalid" || manifestStatus.state === "future"
|
|
307
|
+
? manifestStatus.warning
|
|
287
308
|
: configStatus.warning;
|
|
288
309
|
const warnings = [
|
|
289
310
|
...branchWarnings,
|
|
290
311
|
...(migrationWarning ? [migrationWarning] : []),
|
|
291
312
|
];
|
|
292
313
|
const auditPath = path.join(cwd, ".kb", "migrations", `${branch}.json`);
|
|
293
|
-
const configPathRelative = toRelativePath(cwd, configPath);
|
|
294
|
-
const auditPathRelative = toRelativePath(cwd, auditPath);
|
|
295
314
|
for (const warning of warnings) {
|
|
296
315
|
printWarning(warning);
|
|
297
316
|
}
|
|
317
|
+
if (storagePlan.blockers.length > 0) {
|
|
318
|
+
for (const blocker of storagePlan.blockers) {
|
|
319
|
+
console.error(`Blocked: ${blocker}`);
|
|
320
|
+
}
|
|
321
|
+
return { exitCode: 1 };
|
|
322
|
+
}
|
|
298
323
|
if (configStatus.currentVersion !== null &&
|
|
299
324
|
configStatus.currentVersion > configStatus.latestVersion) {
|
|
300
325
|
console.error(`Unsupported schemaVersion ${configStatus.currentVersion}. Upgrade kibi-cli before migrating this KB.`);
|
|
301
326
|
return { exitCode: 1 };
|
|
302
327
|
}
|
|
303
|
-
if (!
|
|
304
|
-
console.log(`No migration needed:
|
|
328
|
+
if (!needsStorageMigration && !needsSchemaUpgrade) {
|
|
329
|
+
console.log(`No migration needed: the KB is already at schemaVersion ${LATEST_KB_SCHEMA_VERSION} on the canonical .kb/ layout.`);
|
|
305
330
|
if (existsSync(auditPath)) {
|
|
306
|
-
console.log(`Existing migration audit metadata: ${
|
|
331
|
+
console.log(`Existing migration audit metadata: ${toRelativePath(cwd, auditPath)}`);
|
|
332
|
+
}
|
|
333
|
+
if (options.yes === true) {
|
|
334
|
+
updateGitIgnore(cwd);
|
|
307
335
|
}
|
|
308
336
|
return { exitCode: 0 };
|
|
309
337
|
}
|
|
310
|
-
const fromVersionLabel = formatSchemaVersion(
|
|
311
|
-
const
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
dryRun: options.dryRun || !options.yes,
|
|
315
|
-
});
|
|
316
|
-
const semanticAdvisorBackfill = normalizeSemanticAdvisorBackfill(config.semanticAdvisorBackfill) ??
|
|
317
|
-
"pending";
|
|
338
|
+
const fromVersionLabel = formatSchemaVersion(currentVersion, normalizedVersion);
|
|
339
|
+
const migrationSteps = migrationStepsFor(configStatus.currentVersion);
|
|
340
|
+
const symbolGranularityStep = migrationSteps.some((step) => step.id === "symbol-granularity-v2");
|
|
341
|
+
const semanticBackfillStep = migrationSteps.some((step) => step.id === "semantic-backfill-v4");
|
|
318
342
|
if (options.dryRun) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
343
|
+
if (storagePlan.moves.length > 0) {
|
|
344
|
+
console.log(`dry run: would move ${storagePlan.moves.length} legacy knowledge file(s) into .kb/:`);
|
|
345
|
+
for (const move of storagePlan.moves) {
|
|
346
|
+
console.log(` ${move.from} -> ${move.to}`);
|
|
347
|
+
}
|
|
323
348
|
}
|
|
324
|
-
if (
|
|
325
|
-
console.log(
|
|
349
|
+
if (storagePlan.legacyConfig !== "absent") {
|
|
350
|
+
console.log("dry run: would retire legacy .kb/config.json after moving knowledge into .kb/.");
|
|
326
351
|
}
|
|
352
|
+
console.log(`dry run: would set schemaVersion from ${fromVersionLabel} to ${LATEST_KB_SCHEMA_VERSION} in .kb/manifest.json.`);
|
|
353
|
+
if (symbolGranularityStep) {
|
|
354
|
+
const symbolsSource = storagePlan.moves.find((move) => move.to === CANONICAL_ENTITY_PATHS.symbols)?.from ?? CANONICAL_ENTITY_PATHS.symbols;
|
|
355
|
+
const preview = migrateSymbolGranularity({
|
|
356
|
+
cwd,
|
|
357
|
+
dryRun: true,
|
|
358
|
+
manifestPath: path.join(cwd, symbolsSource),
|
|
359
|
+
});
|
|
360
|
+
if (preview.count > 0) {
|
|
361
|
+
console.log(`dry run: would mark ${preview.count} legacy coarse symbol link(s) as legacy-link.`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
console.log(`dry run: would write migration audit metadata to ${toRelativePath(cwd, auditPath)}.`);
|
|
327
365
|
console.log("Re-run with --yes to apply these changes.");
|
|
328
366
|
return { exitCode: 0 };
|
|
329
367
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
368
|
+
// One-way storage cutover first: files must reach the canonical layout
|
|
369
|
+
// before the manifest records the new schema generation.
|
|
370
|
+
if (needsStorageMigration) {
|
|
371
|
+
const storageResult = applyLegacyStorageMigration(cwd, storagePlan);
|
|
372
|
+
if (storageResult.movedFiles.length > 0) {
|
|
373
|
+
console.log(`Moved ${storageResult.movedFiles.length} knowledge file(s) into the canonical .kb/ layout.`);
|
|
374
|
+
}
|
|
375
|
+
if (storageResult.retiredLegacyConfig) {
|
|
376
|
+
console.log("Retired legacy .kb/config.json.");
|
|
377
|
+
}
|
|
335
378
|
}
|
|
336
|
-
const
|
|
337
|
-
|
|
379
|
+
const symbolGranularityMigration = migrateSymbolGranularity({
|
|
380
|
+
cwd,
|
|
381
|
+
dryRun: !symbolGranularityStep || options.dryRun || !options.yes,
|
|
382
|
+
});
|
|
383
|
+
const semanticAdvisorBackfill = normalizeSemanticAdvisorBackfill(readKbManifest(cwd)?.semanticAdvisorBackfill) ??
|
|
384
|
+
normalizeSemanticAdvisorBackfill(storagePlan.semanticAdvisorBackfill) ??
|
|
385
|
+
(semanticBackfillStep || needsStorageMigration
|
|
386
|
+
? "pending"
|
|
387
|
+
: "not_applicable");
|
|
388
|
+
const existingManifest = readKbManifest(cwd) ?? defaultKbManifest();
|
|
389
|
+
writeKbManifest(cwd, {
|
|
390
|
+
...existingManifest,
|
|
338
391
|
schemaVersion: LATEST_KB_SCHEMA_VERSION,
|
|
339
392
|
semanticAdvisorBackfill,
|
|
340
|
-
};
|
|
393
|
+
});
|
|
341
394
|
const migratedAt = new Date().toISOString();
|
|
342
|
-
writeJsonAtomically(configPath, nextConfig);
|
|
343
395
|
writeJsonAtomically(auditPath, buildMigrationAuditRecord({
|
|
344
396
|
branch,
|
|
345
|
-
|
|
397
|
+
manifestPath: KB_MANIFEST_RELATIVE,
|
|
346
398
|
fromVersion: configStatus.currentVersion,
|
|
347
399
|
migratedAt,
|
|
348
400
|
semanticAdvisorBackfill,
|
|
349
401
|
symbolGranularityLegacyLinks: symbolGranularityMigration.count,
|
|
350
402
|
warning: migrationWarning,
|
|
403
|
+
steps: migrationSteps.map((step) => step.id),
|
|
351
404
|
}));
|
|
352
|
-
console.log(`Migrated
|
|
405
|
+
console.log(`Migrated the KB to schemaVersion ${LATEST_KB_SCHEMA_VERSION} on the canonical .kb/ layout (was ${fromVersionLabel}).`);
|
|
353
406
|
if (symbolGranularityMigration.count > 0) {
|
|
354
407
|
console.log(`Marked ${symbolGranularityMigration.count} existing coarse symbol link(s) as legacy-link.`);
|
|
355
408
|
}
|
|
356
409
|
if (semanticAdvisorBackfill === "pending") {
|
|
357
|
-
console.log(`Marked semantic advisor backfill as pending in ${
|
|
410
|
+
console.log(`Marked semantic advisor backfill as pending in ${KB_MANIFEST_RELATIVE}.`);
|
|
358
411
|
}
|
|
359
|
-
console.log(`Wrote migration audit metadata to ${
|
|
412
|
+
console.log(`Wrote migration audit metadata to ${toRelativePath(cwd, auditPath)}.`);
|
|
360
413
|
console.log("Migration complete. Future 'kibi migrate' runs will be a no-op.");
|
|
414
|
+
updateGitIgnore(cwd);
|
|
415
|
+
return { exitCode: 0 };
|
|
416
|
+
}
|
|
417
|
+
const KB_MANIFEST_RELATIVE = ".kb/manifest.json";
|
|
418
|
+
async function buildWorkspaceMigrationPlan(workspaceRoot = process.cwd()) {
|
|
419
|
+
const [{ createCliRuntime }, { executeOperation }, { statusSpec }, { checkSpec }, { coverageSpec }, { mergeMigrationPlans },] = await Promise.all([
|
|
420
|
+
import("../runtime/cli-runtime.js"),
|
|
421
|
+
import("../public/operations/runtime-types.js"),
|
|
422
|
+
import("../public/operations/specs/discovery.js"),
|
|
423
|
+
import("../public/operations/specs/check.js"),
|
|
424
|
+
import("../public/operations/specs/reporting.js"),
|
|
425
|
+
import("../public/operations/migration-plan.js"),
|
|
426
|
+
]);
|
|
427
|
+
const runtime = createCliRuntime({ workspaceRoot });
|
|
428
|
+
const statusResult = await executeOperation(runtime, statusSpec, {});
|
|
429
|
+
const status = statusResult.structuredContent;
|
|
430
|
+
const plans = [];
|
|
431
|
+
if (status?.migrationPlan !== undefined)
|
|
432
|
+
plans.push(status.migrationPlan);
|
|
433
|
+
const storeHealthy = status?.branchStore?.state === "healthy";
|
|
434
|
+
const schemaCurrent = status?.schemaStatus?.needsMigration !== true;
|
|
435
|
+
if (storeHealthy &&
|
|
436
|
+
schemaCurrent &&
|
|
437
|
+
status?.branchAttachment?.kind === "exact") {
|
|
438
|
+
const checkResult = await executeOperation(runtime, checkSpec, {});
|
|
439
|
+
if (checkResult.structuredContent?.migrationPlan !== undefined) {
|
|
440
|
+
plans.push(checkResult.structuredContent.migrationPlan);
|
|
441
|
+
}
|
|
442
|
+
const coverageInputs = [
|
|
443
|
+
{ by: "req", limit: 10_000, offset: 0 },
|
|
444
|
+
{ by: "symbol", limit: 10_000, offset: 0 },
|
|
445
|
+
];
|
|
446
|
+
for (const input of coverageInputs) {
|
|
447
|
+
const coverageResult = await executeOperation(runtime, coverageSpec, input);
|
|
448
|
+
if (coverageResult.structuredContent?.migrationPlan !== undefined) {
|
|
449
|
+
plans.push(coverageResult.structuredContent.migrationPlan);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
if (plans.length === 0) {
|
|
454
|
+
const { buildMigrationPlan } = await import("../public/operations/migration-plan.js");
|
|
455
|
+
return buildMigrationPlan({
|
|
456
|
+
evaluatedDomains: ["package", "branch", "storage", "schema"],
|
|
457
|
+
incompleteDomains: ["status"],
|
|
458
|
+
diagnostics: [
|
|
459
|
+
"Unable to assemble downstream migration domains from the current workspace state.",
|
|
460
|
+
],
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
return mergeMigrationPlans(plans);
|
|
464
|
+
}
|
|
465
|
+
async function migratePlanCommand(options) {
|
|
466
|
+
const workspaceRoot = path.resolve(options.workspaceRoot ?? process.cwd());
|
|
467
|
+
const plan = await buildWorkspaceMigrationPlan(workspaceRoot);
|
|
468
|
+
if (options.applySafe === true) {
|
|
469
|
+
if (!options.approvedPlanHash) {
|
|
470
|
+
console.error("--apply-safe requires --approved-plan-hash <sha256>.");
|
|
471
|
+
return { exitCode: 2 };
|
|
472
|
+
}
|
|
473
|
+
if (options.approvedPlanHash !== plan.planHash) {
|
|
474
|
+
console.error("Migration plan changed; regenerate the plan and approve its current hash.");
|
|
475
|
+
return { exitCode: 2 };
|
|
476
|
+
}
|
|
477
|
+
const approvedActionIds = options.approvedActionIds && options.approvedActionIds.length > 0
|
|
478
|
+
? options.approvedActionIds
|
|
479
|
+
: plan.actions
|
|
480
|
+
.filter((action) => action.state === "ready" && action.autoApplicable)
|
|
481
|
+
.map((action) => action.id);
|
|
482
|
+
if (approvedActionIds.length === 0) {
|
|
483
|
+
console.log("No approved automatic migration actions are ready.");
|
|
484
|
+
return { exitCode: 0 };
|
|
485
|
+
}
|
|
486
|
+
const [{ createCliRuntime }, { executeOperation }, { applyPlanSpec }] = await Promise.all([
|
|
487
|
+
import("../runtime/cli-runtime.js"),
|
|
488
|
+
import("../public/operations/runtime-types.js"),
|
|
489
|
+
import("../public/operations/specs/planning.js"),
|
|
490
|
+
]);
|
|
491
|
+
const result = await executeOperation(createCliRuntime({ workspaceRoot }), applyPlanSpec, { plan, approvedPlanHash: options.approvedPlanHash, approvedActionIds });
|
|
492
|
+
if (options.format === "json") {
|
|
493
|
+
console.log(JSON.stringify(result, null, 2));
|
|
494
|
+
}
|
|
495
|
+
else {
|
|
496
|
+
console.log(result.content[0]?.text ?? "Migration applied.");
|
|
497
|
+
console.log(JSON.stringify(result.structuredContent, null, 2));
|
|
498
|
+
}
|
|
499
|
+
return {
|
|
500
|
+
exitCode: result.structuredContent?.outcome === "applied" ? 0 : 1,
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
if (options.format === "json") {
|
|
504
|
+
console.log(JSON.stringify(plan, null, 2));
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
console.log(`Migration plan ${plan.planHash}`);
|
|
508
|
+
console.log(`Status: ${plan.status}; actions: ${plan.summary.actionCount}; automatic-ready: ${plan.actions.filter((action) => action.state === "ready" && action.autoApplicable).length}`);
|
|
509
|
+
for (const action of plan.actions) {
|
|
510
|
+
console.log(`- ${action.state} ${action.safety} ${action.code}: ${action.id}`);
|
|
511
|
+
}
|
|
512
|
+
console.log("Use --format json for structured actions, or --apply-safe with the approved plan hash.");
|
|
513
|
+
}
|
|
361
514
|
return { exitCode: 0 };
|
|
362
515
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-migrate-legacy.d.ts","sourceRoot":"","sources":["../../src/commands/proof-migrate-legacy.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAE/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAGH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAqC/B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Kibi — repo-local, per-branch, queryable long-term memory for software projects
|
|
3
|
+
Copyright (C) 2026 Piotr Franczyk
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify
|
|
6
|
+
it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
(at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU Affero General Public License for more details.
|
|
14
|
+
|
|
15
|
+
You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { executeMigrateLegacyReceipts } from "../operations/proof/migrate-legacy-receipts.js";
|
|
19
|
+
import { createCliRuntime } from "../runtime/cli-runtime.js";
|
|
20
|
+
// implements REQ-kibi-proof-evidence-protocol
|
|
21
|
+
export async function proofMigrateLegacyCommand(options) {
|
|
22
|
+
const runtime = createCliRuntime();
|
|
23
|
+
const context = await runtime.open({
|
|
24
|
+
name: "kibi_proof_migrate_legacy",
|
|
25
|
+
effects: ["kb-mutate", "workspace-write"],
|
|
26
|
+
requiresProlog: true,
|
|
27
|
+
execute: async () => undefined,
|
|
28
|
+
}, {});
|
|
29
|
+
let completed = false;
|
|
30
|
+
try {
|
|
31
|
+
const result = await executeMigrateLegacyReceipts(options.test === undefined ? {} : { testId: options.test }, context);
|
|
32
|
+
process.stdout.write(`${result.content[0]?.text ?? ""}\n`);
|
|
33
|
+
for (const row of result.structuredContent.tests) {
|
|
34
|
+
process.stdout.write(` ${row.testId}: legacy verification_receipts removed\n`);
|
|
35
|
+
}
|
|
36
|
+
completed = true;
|
|
37
|
+
await runtime.afterSuccess({ name: "kibi_proof_migrate_legacy" }, context);
|
|
38
|
+
return { exitCode: 0 };
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
await runtime.close(context, completed
|
|
42
|
+
? { status: "success", result: 0 }
|
|
43
|
+
: { status: "error", error: 1 });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-prune.d.ts","sourceRoot":"","sources":["../../src/commands/proof-prune.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IAEvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAGH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAC3E,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CA0CD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Kibi — repo-local, per-branch, queryable long-term memory for software projects
|
|
3
|
+
Copyright (C) 2026 Piotr Franczyk
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify
|
|
6
|
+
it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
(at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU Affero General Public License for more details.
|
|
14
|
+
|
|
15
|
+
You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { executePruneReceipts } from "../operations/proof/prune-receipts.js";
|
|
19
|
+
import { createCliRuntime } from "../runtime/cli-runtime.js";
|
|
20
|
+
// implements REQ-kibi-proof-evidence-protocol
|
|
21
|
+
export async function proofPruneCommand(options) {
|
|
22
|
+
const keepRaw = options.keep ?? "1";
|
|
23
|
+
const keep = Number.parseInt(keepRaw, 10);
|
|
24
|
+
if (!Number.isSafeInteger(keep) || keep < 1 || keep > 50) {
|
|
25
|
+
throw new Error("proof prune: --keep must be an integer between 1 and 50");
|
|
26
|
+
}
|
|
27
|
+
const runtime = createCliRuntime();
|
|
28
|
+
const context = await runtime.open({
|
|
29
|
+
name: "kibi_proof_prune",
|
|
30
|
+
effects: ["kb-mutate", "workspace-write"],
|
|
31
|
+
requiresProlog: true,
|
|
32
|
+
execute: async () => undefined,
|
|
33
|
+
}, {});
|
|
34
|
+
let completed = false;
|
|
35
|
+
try {
|
|
36
|
+
const result = await executePruneReceipts({
|
|
37
|
+
keep,
|
|
38
|
+
...(options.test === undefined ? {} : { testId: options.test }),
|
|
39
|
+
}, context);
|
|
40
|
+
process.stdout.write(`${result.content[0]?.text ?? ""}\n`);
|
|
41
|
+
for (const row of result.structuredContent.tests) {
|
|
42
|
+
process.stdout.write(` ${row.testId}: ${row.before} -> ${row.after} receipt(s)\n`);
|
|
43
|
+
}
|
|
44
|
+
completed = true;
|
|
45
|
+
await runtime.afterSuccess({ name: "kibi_proof_prune" }, context);
|
|
46
|
+
return { exitCode: 0 };
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
await runtime.close(context, completed
|
|
50
|
+
? { status: "success", result: 0 }
|
|
51
|
+
: { status: "error", error: 1 });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { executeIngestProof } from "../operations/proof/ingest-proof.js";
|
|
2
|
+
import type { ProofIntegration } from "../proof/integrations.js";
|
|
3
|
+
import type { OperationRuntime } from "../public/operations/runtime-types.js";
|
|
4
|
+
import { readWorkspaceSnapshot } from "../public/operations/workspace-snapshot.js";
|
|
5
|
+
export type ProveCommandOptions = Readonly<{
|
|
6
|
+
testId?: string;
|
|
7
|
+
requirement?: string;
|
|
8
|
+
integration?: string;
|
|
9
|
+
integrationExcept?: string;
|
|
10
|
+
all?: boolean;
|
|
11
|
+
workspaceRoot?: string;
|
|
12
|
+
}>;
|
|
13
|
+
export type ProveCommandDependencies = Readonly<{
|
|
14
|
+
runtime?: OperationRuntime;
|
|
15
|
+
ingestProof?: typeof executeIngestProof;
|
|
16
|
+
}>;
|
|
17
|
+
type SelectedTest = Record<string, unknown>;
|
|
18
|
+
/**
|
|
19
|
+
* Describe which paths moved when a proof snapshot refusal fires, so
|
|
20
|
+
* consumers can see what kibi thinks changed instead of diffing by hand.
|
|
21
|
+
* Snapshot-relevant changes come first (receipt-only and ignored edits do
|
|
22
|
+
* not affect the hash), and the list is capped to keep the error readable.
|
|
23
|
+
*/
|
|
24
|
+
export declare function describeWorkspaceDrift(snapshot: Awaited<ReturnType<typeof readWorkspaceSnapshot>>): string;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a comma-separated integration selector ("a", "a,b,c") into a set of
|
|
27
|
+
* trimmed, non-empty ids. Empty selectors yield an empty set; blank items
|
|
28
|
+
* fail fast instead of silently narrowing the selection.
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseIntegrationSelector(value: string | undefined, flagName: string): Set<string>;
|
|
31
|
+
export declare function testId(test: SelectedTest): string;
|
|
32
|
+
export declare function commandEnvironment(integration: ProofIntegration, commandArgv: readonly string[], snapshot: string, workspaceRoot: string, testIds: readonly string[], outputPath: string): NodeJS.ProcessEnv;
|
|
33
|
+
export declare function proveCommand(options: ProveCommandOptions, deps?: ProveCommandDependencies): Promise<{
|
|
34
|
+
exitCode: number;
|
|
35
|
+
}>;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=prove.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prove.d.ts","sourceRoot":"","sources":["../../src/commands/prove.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AASjE,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAYnF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,CAAC;AAGH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;CACzC,CAAC,CAAC;AAEH,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C;;;;;GAKG;AAEH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,GAC1D,MAAM,CAiBR;AAED;;;;GAIG;AAEH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,MAAM,GACf,GAAG,CAAC,MAAM,CAAC,CAUb;AAQD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEjD;AAkCD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,gBAAgB,EAC7B,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,UAAU,CAWnB;AA4KD,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE,wBAA6B,GAClC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgL/B"}
|