kibi-cli 1.0.1 → 2.1.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.js +3 -3
- package/dist/cli-operation-metadata.d.ts +4 -3
- package/dist/cli-operation-metadata.d.ts.map +1 -1
- package/dist/cli-operation-metadata.js +7 -5
- package/dist/cli-protocol.js +1 -1
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +7 -0
- 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 +127 -0
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +7 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -10
- package/dist/commands/branch.d.ts +1 -0
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +8 -4
- package/dist/commands/check-generated.d.ts +7 -0
- package/dist/commands/check-generated.d.ts.map +1 -0
- package/dist/commands/check-generated.js +192 -0
- package/dist/commands/check.d.ts +14 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +193 -46
- 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/doctor.d.ts +22 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +170 -23
- package/dist/commands/engine.d.ts +12 -0
- package/dist/commands/engine.d.ts.map +1 -1
- package/dist/commands/engine.js +42 -0
- package/dist/commands/github-init.d.ts +1 -0
- package/dist/commands/github-init.d.ts.map +1 -1
- package/dist/commands/github-init.js +9 -5
- package/dist/commands/init-helpers.d.ts.map +1 -1
- package/dist/commands/init-helpers.js +49 -10
- package/dist/commands/migrate.d.ts +4 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +7 -7
- package/dist/commands/proof-explain.d.ts +10 -0
- package/dist/commands/proof-explain.d.ts.map +1 -0
- package/dist/commands/proof-explain.js +45 -0
- package/dist/commands/proof-impact.d.ts +7 -0
- package/dist/commands/proof-impact.d.ts.map +1 -0
- package/dist/commands/proof-impact.js +39 -0
- 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.map +1 -1
- package/dist/commands/report.js +18 -3
- package/dist/commands/sync/discovery.d.ts +3 -0
- package/dist/commands/sync/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +36 -28
- package/dist/commands/sync/manifest.d.ts +2 -1
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +55 -21
- 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 +31 -14
- 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 +11 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +74 -30
- 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 +17 -77
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +331 -91
- package/dist/env/bootstrap.d.ts +84 -0
- package/dist/env/bootstrap.d.ts.map +1 -0
- package/dist/env/bootstrap.js +310 -0
- package/dist/extractors/manifest.d.ts +5 -0
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +46 -1
- package/dist/extractors/markdown.d.ts +7 -3
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +60 -24
- package/dist/extractors/playwright-cases.js +1 -1
- package/dist/extractors/relationships.d.ts +6 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +1 -1
- package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
- package/dist/extractors/symbols-coordinator.d.ts +8 -0
- package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
- package/dist/extractors/symbols-coordinator.js +40 -0
- package/dist/extractors/symbols-ts.d.ts +9 -19
- package/dist/extractors/symbols-ts.d.ts.map +1 -1
- package/dist/extractors/symbols-ts.js +34 -429
- package/dist/intent-search.d.ts +1 -0
- package/dist/intent-search.d.ts.map +1 -1
- package/dist/intent-search.js +11 -8
- 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 +2 -1
- package/dist/operations/bootstrap/activation.d.ts.map +1 -1
- package/dist/operations/bootstrap/activation.js +11 -3
- package/dist/operations/bootstrap/generate.d.ts +2 -1
- package/dist/operations/bootstrap/generate.d.ts.map +1 -1
- package/dist/operations/bootstrap/generate.js +6 -3
- package/dist/operations/bootstrap/guidance.d.ts +1 -0
- package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
- package/dist/operations/bootstrap/guidance.js +1 -1
- 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 -46
- package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-applicability.js +103 -4
- 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-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-loader.d.ts +1 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-loader.js +4 -3
- package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-ranker.js +4 -1
- package/dist/operations/modeling/predicate-types.d.ts +1 -1
- package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
- 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/suggest-predicates.d.ts +4 -2
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +82 -22
- 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 +100 -32
- package/dist/operations/mutation/relationships.d.ts +1 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +6 -4
- 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 -2
- package/dist/operations/mutation/source-authoring.d.ts +5 -1
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
- package/dist/operations/mutation/source-authoring.js +79 -46
- 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 +5 -2
- package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-compiler-lock.js +65 -2
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-granularity.js +11 -89
- package/dist/operations/mutation/symbol-refresh.d.ts +1 -0
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +10 -8
- 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 +86 -54
- 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 +46 -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 +8 -106
- package/dist/operations/planning/apply-plan.d.ts.map +1 -1
- package/dist/operations/planning/apply-plan.js +113 -36
- package/dist/operations/planning/compile-intent.d.ts +51 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -1
- package/dist/operations/planning/compile-intent.js +133 -17
- package/dist/operations/proof/baseline-diff.d.ts +41 -0
- package/dist/operations/proof/baseline-diff.d.ts.map +1 -0
- package/dist/operations/proof/baseline-diff.js +153 -0
- package/dist/operations/proof/explain.d.ts +75 -0
- package/dist/operations/proof/explain.d.ts.map +1 -0
- package/dist/operations/proof/explain.js +294 -0
- package/dist/operations/proof/impact.d.ts +45 -0
- package/dist/operations/proof/impact.d.ts.map +1 -0
- package/dist/operations/proof/impact.js +118 -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 +348 -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 +92 -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/analysis-receipt.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analysis-receipt.js +3 -9
- 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 +64 -93
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +20 -7
- package/dist/operations/semantic-advisor/plugin-orchestration.d.ts +63 -0
- package/dist/operations/semantic-advisor/plugin-orchestration.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/plugin-orchestration.js +489 -0
- package/dist/operations/semantic-advisor/predicate-rules-core.d.ts +15 -2
- package/dist/operations/semantic-advisor/predicate-rules-core.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-core.js +7 -140
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +11 -12
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-launcher.js +6 -94
- package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts +16 -0
- package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-policy.js +7 -150
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts +9 -0
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.js +7 -102
- package/dist/operations/semantic-advisor/predicate-rules-product.d.ts +13 -0
- package/dist/operations/semantic-advisor/predicate-rules-product.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-product.js +7 -133
- 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 +1 -0
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
- package/dist/plugins/compose-ontology-packs.d.ts +51 -0
- package/dist/plugins/compose-ontology-packs.d.ts.map +1 -0
- package/dist/plugins/compose-ontology-packs.js +257 -0
- package/dist/plugins/compose-semantic-classifier.d.ts +42 -0
- package/dist/plugins/compose-semantic-classifier.d.ts.map +1 -0
- package/dist/plugins/compose-semantic-classifier.js +211 -0
- package/dist/plugins/external-allowlist.d.ts +10 -0
- package/dist/plugins/external-allowlist.d.ts.map +1 -0
- package/dist/plugins/external-allowlist.js +16 -0
- package/dist/plugins/index.d.ts +9 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +33 -0
- package/dist/plugins/load-plugin.d.ts +19 -0
- package/dist/plugins/load-plugin.d.ts.map +1 -0
- package/dist/plugins/load-plugin.js +59 -0
- package/dist/plugins/project-config.d.ts +28 -0
- package/dist/plugins/project-config.d.ts.map +1 -0
- package/dist/plugins/project-config.js +90 -0
- package/dist/plugins/registry.d.ts +93 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +338 -0
- package/dist/plugins/resolve-package.d.ts +47 -0
- package/dist/plugins/resolve-package.d.ts.map +1 -0
- package/dist/plugins/resolve-package.js +262 -0
- package/dist/plugins/source-analysis-service.d.ts +44 -0
- package/dist/plugins/source-analysis-service.d.ts.map +1 -0
- package/dist/plugins/source-analysis-service.js +232 -0
- package/dist/prolog/codec.d.ts +13 -1
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +269 -154
- 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 +55 -17
- 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/{public → proof/producers}/playwright-case-id.d.ts +1 -1
- package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
- package/dist/{public → proof/producers}/playwright-case-id.js +1 -1
- 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/diagnostic-usage.js +6 -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 -10
- package/dist/public/extractors/symbols-coordinator.d.ts +1 -1
- package/dist/public/extractors/symbols-coordinator.d.ts.map +1 -1
- package/dist/public/extractors/symbols-coordinator.js +1 -1
- package/dist/public/impact/analyzer.d.ts +1 -1
- package/dist/public/impact/analyzer.d.ts.map +1 -1
- package/dist/public/impact/analyzer.js +6 -4
- package/dist/public/impact/coverage-depth-quality.d.ts +1 -0
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
- package/dist/public/impact/coverage-depth-quality.js +1 -1
- 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 +5 -2
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +329 -64
- package/dist/public/operations/catalog.d.ts +450 -196
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +6 -4
- package/dist/public/operations/check-executor.d.ts.map +1 -1
- package/dist/public/operations/check-executor.js +4 -8
- package/dist/public/operations/check-helpers.d.ts +1 -1
- package/dist/public/operations/check-helpers.d.ts.map +1 -1
- package/dist/public/operations/check-helpers.js +1 -1
- package/dist/public/operations/contracts.d.ts +7 -0
- package/dist/public/operations/contracts.d.ts.map +1 -1
- package/dist/public/operations/contracts.js +66 -34
- package/dist/public/operations/discovery-entities.d.ts +15 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +38 -0
- package/dist/public/operations/discovery-executors.d.ts +9 -9
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +39 -31
- package/dist/public/operations/index.d.ts +1 -1
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +1 -1
- package/dist/public/operations/migration-plan.d.ts +4 -3
- package/dist/public/operations/migration-plan.d.ts.map +1 -1
- package/dist/public/operations/migration-plan.js +23 -21
- package/dist/public/operations/node-ports.js +6 -6
- package/dist/public/operations/prolog-json.d.ts +1 -1
- package/dist/public/operations/prolog-json.d.ts.map +1 -1
- package/dist/public/operations/prolog-json.js +7 -7
- 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 -19
- package/dist/public/operations/result-envelope.d.ts +1 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -1
- package/dist/public/operations/result-envelope.js +12 -10
- package/dist/public/operations/runtime-types.d.ts +21 -1
- package/dist/public/operations/runtime-types.d.ts.map +1 -1
- 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 +35 -0
- package/dist/public/operations/specs/check.d.ts +7 -2
- package/dist/public/operations/specs/check.d.ts.map +1 -1
- package/dist/public/operations/specs/check.js +8 -20
- package/dist/public/operations/specs/discovery.d.ts +3 -0
- package/dist/public/operations/specs/discovery.d.ts.map +1 -1
- package/dist/public/operations/specs/discovery.js +3 -0
- package/dist/public/operations/specs/mutation-schemas.d.ts +257 -163
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +15 -7
- package/dist/public/operations/specs/planning.d.ts +9 -0
- package/dist/public/operations/specs/planning.d.ts.map +1 -1
- package/dist/public/operations/specs/planning.js +6 -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 +20 -0
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +112 -12
- package/dist/public/operations/specs/semantic.d.ts +1 -1
- package/dist/public/operations/specs/semantic.d.ts.map +1 -1
- package/dist/public/operations/specs/semantic.js +54 -4
- package/dist/public/operations/specs/upsert.d.ts +257 -163
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
- package/dist/public/operations/symbol-repair-plan.js +121 -4
- package/dist/public/operations/types.d.ts +6 -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 +21 -7
- package/dist/public/skills/kibi-freshness/SKILL.md +1 -1
- package/dist/public/skills/kibi-usage/SKILL.md +44 -12
- package/dist/public/skills/kibi-usage/resources/operation-access.md +1 -1
- package/dist/public/skills/kibi-usage/resources/proof.md +150 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +6 -6
- 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 +53 -0
- package/dist/public/symbol-granularity.js +6 -47
- package/dist/public/telemetry-acceptance.d.ts +3 -77
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +4 -2
- package/dist/public/telemetry-remediation.js +1 -1
- package/dist/report/html-report.css +1240 -0
- package/dist/report/html-report.d.ts +4 -2
- package/dist/report/html-report.d.ts.map +1 -1
- package/dist/report/html-report.js +37 -300
- 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 +32 -7
- package/dist/schemas/entity.schema.json +355 -215
- 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 +28 -0
- package/dist/traceability/evidence-model.d.ts.map +1 -1
- 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 +145 -1
- 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.js +4 -4
- 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 +138 -27
- package/dist/traceability/symbol-extract.d.ts +24 -2
- package/dist/traceability/symbol-extract.d.ts.map +1 -1
- package/dist/traceability/symbol-extract.js +64 -208
- 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 +13 -4
- package/dist/types/entities.d.ts +5 -3
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +1 -0
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +7 -4
- package/dist/utils/branch-store.d.ts +6 -0
- package/dist/utils/branch-store.d.ts.map +1 -1
- package/dist/utils/branch-store.js +27 -0
- package/dist/utils/kb-paths.d.ts +1 -1
- package/dist/utils/kb-paths.d.ts.map +1 -1
- package/dist/utils/kb-paths.js +1 -1
- package/dist/utils/rule-registry.d.ts +1 -11
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.generated.d.ts +102 -0
- package/dist/utils/rule-registry.generated.d.ts.map +1 -0
- package/dist/utils/rule-registry.generated.js +131 -0
- package/dist/utils/rule-registry.js +12 -113
- package/dist/utils/strict-modeling.d.ts +1 -0
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +1 -1
- package/package.json +20 -20
- package/src/public/diagnostic-usage.ts +6 -6
- package/src/public/distribution-parity.ts +17 -10
- package/src/public/extractors/symbols-coordinator.ts +1 -0
- package/src/public/impact/analyzer.ts +15 -12
- package/src/public/impact/coverage-depth-quality.ts +1 -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 +463 -72
- package/src/public/operations/catalog.ts +10 -4
- package/src/public/operations/check-executor.ts +4 -8
- package/src/public/operations/check-helpers.ts +2 -2
- package/src/public/operations/contracts.ts +78 -34
- package/src/public/operations/discovery-entities.ts +53 -0
- package/src/public/operations/discovery-executors.ts +64 -48
- package/src/public/operations/index.ts +1 -1
- package/src/public/operations/migration-plan.ts +32 -25
- package/src/public/operations/node-ports.ts +6 -6
- package/src/public/operations/prolog-json.ts +13 -5
- package/src/public/operations/repair-plan.ts +60 -23
- package/src/public/operations/result-envelope.ts +15 -10
- package/src/public/operations/runtime-types.ts +26 -2
- package/src/public/operations/specs/check-rules.generated.ts +38 -0
- package/src/public/operations/specs/check.ts +12 -21
- package/src/public/operations/specs/discovery.ts +3 -0
- package/src/public/operations/specs/mutation-schemas.ts +22 -9
- package/src/public/operations/specs/planning.ts +7 -0
- package/src/public/operations/specs/proof.ts +43 -0
- package/src/public/operations/specs/reporting.ts +140 -13
- package/src/public/operations/specs/semantic.ts +79 -17
- package/src/public/operations/symbol-repair-plan.ts +166 -7
- package/src/public/operations/types.ts +6 -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 +26 -10
- package/src/public/skills/kibi-freshness/SKILL.md +1 -1
- package/src/public/skills/kibi-usage/SKILL.md +44 -12
- package/src/public/skills/kibi-usage/resources/operation-access.md +1 -1
- package/src/public/skills/kibi-usage/resources/proof.md +150 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +6 -6
- package/src/public/symbol-granularity.generated.ts +74 -0
- package/src/public/symbol-granularity.ts +34 -59
- package/src/public/telemetry-acceptance-types.d.ts +98 -0
- package/src/public/telemetry-acceptance.ts +22 -100
- package/src/public/telemetry-remediation.ts +1 -1
- package/src/schemas/entity.schema.json +355 -215
- package/dist/cli-register-verification.d.ts +0 -3
- package/dist/cli-register-verification.d.ts.map +0 -1
- package/dist/cli-register-verification.js +0 -16
- package/dist/commands/verify.d.ts +0 -10
- package/dist/commands/verify.d.ts.map +0 -1
- package/dist/commands/verify.js +0 -126
- package/dist/operations/verification/ingest-verification.d.ts +0 -29
- package/dist/operations/verification/ingest-verification.d.ts.map +0 -1
- package/dist/operations/verification/ingest-verification.js +0 -192
- package/dist/public/operations/specs/verification.d.ts +0 -78
- package/dist/public/operations/specs/verification.d.ts.map +0 -1
- package/dist/public/operations/specs/verification.js +0 -62
- package/dist/public/playwright-case-id.d.ts.map +0 -1
- package/dist/public/verification-receipt.d.ts +0 -242
- package/dist/public/verification-receipt.d.ts.map +0 -1
- package/dist/public/verification-receipt.js +0 -296
- package/dist/verification/playwright-reporter.d.ts +0 -21
- package/dist/verification/playwright-reporter.d.ts.map +0 -1
- package/dist/verification/playwright-reporter.js +0 -114
- package/src/public/operations/specs/verification.ts +0 -78
- package/src/public/playwright-case-id.ts +0 -35
- package/src/public/verification-receipt.ts +0 -412
package/dist/commands/doctor.js
CHANGED
|
@@ -20,9 +20,22 @@ import { existsSync, readFileSync, statSync } from "node:fs";
|
|
|
20
20
|
import { createRequire } from "node:module";
|
|
21
21
|
import * as path from "node:path";
|
|
22
22
|
import { fileURLToPath } from "node:url";
|
|
23
|
+
import { bootstrapKibiEnvironment, secretSourceFromBootstrap, } from "../env/bootstrap.js";
|
|
24
|
+
import { describeConfiguredCapabilityPlugins, readProjectKibiConfig, } from "../plugins/project-config.js";
|
|
23
25
|
import { buildMigrationPlan, migrationAction, } from "../public/operations/migration-plan.js";
|
|
24
26
|
import { readKbManifestStatus } from "../utils/kb-manifest.js";
|
|
25
27
|
import { planLegacyStorageMigration } from "./legacy-storage-migration.js";
|
|
28
|
+
/**
|
|
29
|
+
* First-party plugin diagnostics known without importing the package.
|
|
30
|
+
* Generic third-party plugins report package/capability/mode/declared only.
|
|
31
|
+
*/
|
|
32
|
+
// implements REQ-kibi-env-bootstrap, REQ-capability-plugin-configuration-v1
|
|
33
|
+
const FIRST_PARTY_PLUGIN_SECRETS = {
|
|
34
|
+
"kibi-plugin-jev": ["TYPESAFE_API_KEY"],
|
|
35
|
+
};
|
|
36
|
+
/** Static Jev defaults — must stay aligned with kibi-plugin-jev (no import). */
|
|
37
|
+
const JEV_DEFAULT_MODEL = "jev-latest";
|
|
38
|
+
const JEV_MAX_TIMEOUT_MS = 120_000;
|
|
26
39
|
// implements REQ-003
|
|
27
40
|
export async function doctorCommand(options = {}) {
|
|
28
41
|
const checks = [
|
|
@@ -58,8 +71,15 @@ export async function doctorCommand(options = {}) {
|
|
|
58
71
|
name: "post-rewrite hook",
|
|
59
72
|
check: checkPostRewriteHook,
|
|
60
73
|
},
|
|
74
|
+
{
|
|
75
|
+
name: "Capability plugins",
|
|
76
|
+
check: checkCapabilityPlugins,
|
|
77
|
+
},
|
|
61
78
|
];
|
|
62
|
-
const results =
|
|
79
|
+
const results = [];
|
|
80
|
+
for (const { name, check } of checks) {
|
|
81
|
+
results.push({ name, ...(await check()) });
|
|
82
|
+
}
|
|
63
83
|
const allPassed = results.every((result) => result.passed);
|
|
64
84
|
const runtime = await runtimeProvenance();
|
|
65
85
|
const packageActions = await packageMigrationActions(runtime);
|
|
@@ -97,7 +117,16 @@ export async function doctorCommand(options = {}) {
|
|
|
97
117
|
console.log("Some checks failed. Please address the issues above.");
|
|
98
118
|
return { exitCode: 1 };
|
|
99
119
|
}
|
|
100
|
-
async function
|
|
120
|
+
export async function detectExecuteApplyPlanExport(load = () => import("../public/operations/index.js")) {
|
|
121
|
+
try {
|
|
122
|
+
const operations = await load();
|
|
123
|
+
return typeof operations.executeApplyPlan === "function";
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export async function packageMigrationActions(runtime) {
|
|
101
130
|
const actions = [];
|
|
102
131
|
const versions = ["cliVersion", "coreVersion", "mcpVersion"].filter((key) => runtime[key] === "unresolved" || runtime[key] === "unknown");
|
|
103
132
|
if (versions.length > 0) {
|
|
@@ -175,15 +204,7 @@ async function runtimeProvenance() {
|
|
|
175
204
|
}
|
|
176
205
|
const core = resolveInstalledPackageInfo("kibi-core");
|
|
177
206
|
const mcp = resolveInstalledPackageInfo("kibi-mcp");
|
|
178
|
-
|
|
179
|
-
try {
|
|
180
|
-
const operations = await import("../public/operations/index.js");
|
|
181
|
-
executeApplyPlanExported =
|
|
182
|
-
typeof operations.executeApplyPlan === "function";
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
executeApplyPlanExported = false;
|
|
186
|
-
}
|
|
207
|
+
const executeApplyPlanExported = await detectExecuteApplyPlanExport();
|
|
187
208
|
return {
|
|
188
209
|
cliVersion: typeof cli.version === "string" ? cli.version : "unknown",
|
|
189
210
|
coreVersion: core.version,
|
|
@@ -226,9 +247,13 @@ function packageInfoFromManifest(manifestPath) {
|
|
|
226
247
|
: undefined,
|
|
227
248
|
};
|
|
228
249
|
}
|
|
229
|
-
function
|
|
250
|
+
export function nextAncestorDirectory(current) {
|
|
251
|
+
const parent = path.dirname(current);
|
|
252
|
+
return parent === current ? undefined : parent;
|
|
253
|
+
}
|
|
254
|
+
export function nearestNamedPackageManifest(startDir, name) {
|
|
230
255
|
let current = startDir;
|
|
231
|
-
while (
|
|
256
|
+
while (current !== undefined) {
|
|
232
257
|
const candidate = path.join(current, "package.json");
|
|
233
258
|
try {
|
|
234
259
|
const metadata = JSON.parse(readFileSync(candidate, "utf8"));
|
|
@@ -238,11 +263,9 @@ function nearestNamedPackageManifest(startDir, name) {
|
|
|
238
263
|
catch {
|
|
239
264
|
// Keep walking; an unrelated or absent manifest is not a match.
|
|
240
265
|
}
|
|
241
|
-
|
|
242
|
-
if (parent === current)
|
|
243
|
-
return undefined;
|
|
244
|
-
current = parent;
|
|
266
|
+
current = nextAncestorDirectory(current);
|
|
245
267
|
}
|
|
268
|
+
return undefined;
|
|
246
269
|
}
|
|
247
270
|
function resolveInstalledPackageInfo(name) {
|
|
248
271
|
const require = createRequire(import.meta.url);
|
|
@@ -326,6 +349,107 @@ function checkSWIProlog() {
|
|
|
326
349
|
};
|
|
327
350
|
}
|
|
328
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Read-only view of package.json plugin activation.
|
|
354
|
+
* Does not import or execute plugin packages (no loadPluginPackage / dynamic import).
|
|
355
|
+
*/
|
|
356
|
+
// implements REQ-capability-plugin-configuration-v1, REQ-kibi-env-bootstrap
|
|
357
|
+
function checkCapabilityPlugins() {
|
|
358
|
+
try {
|
|
359
|
+
const bootstrap = bootstrapKibiEnvironment();
|
|
360
|
+
const workspaceRoot = bootstrap.workspaceRoot;
|
|
361
|
+
const rows = describeConfiguredCapabilityPlugins(workspaceRoot);
|
|
362
|
+
if (rows.length === 0) {
|
|
363
|
+
return {
|
|
364
|
+
passed: true,
|
|
365
|
+
message: "None configured; builtin providers only",
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
const parts = rows.map((row) => `${row.package} ${row.capability} ${row.mode} declared=${row.declared ? "yes" : "no"}`);
|
|
369
|
+
if (rows.some((row) => !row.declared)) {
|
|
370
|
+
return {
|
|
371
|
+
passed: false,
|
|
372
|
+
message: parts.join("; "),
|
|
373
|
+
remediation: "Add the configured plugin package to dependencies, devDependencies, or optionalDependencies, or remove the kibi.plugins activation entry.",
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
const config = readProjectKibiConfig(workspaceRoot);
|
|
377
|
+
const packages = [
|
|
378
|
+
...new Set((config.plugins ?? []).map((plugin) => plugin.package)),
|
|
379
|
+
];
|
|
380
|
+
const missingSecrets = [];
|
|
381
|
+
const legacySecrets = [];
|
|
382
|
+
for (const packageName of packages) {
|
|
383
|
+
const secrets = FIRST_PARTY_PLUGIN_SECRETS[packageName] ?? [];
|
|
384
|
+
for (const secret of secrets) {
|
|
385
|
+
const source = formatSecretSourcePart(secret, bootstrap);
|
|
386
|
+
parts.push(`${secret}=${source}`);
|
|
387
|
+
if (source === "missing")
|
|
388
|
+
missingSecrets.push(secret);
|
|
389
|
+
if (source === "legacy_env")
|
|
390
|
+
legacySecrets.push(secret);
|
|
391
|
+
}
|
|
392
|
+
if (packageName === "kibi-plugin-jev") {
|
|
393
|
+
parts.push(...formatJevStaticConfigParts());
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
const message = parts.join("; ");
|
|
397
|
+
if (missingSecrets.length > 0) {
|
|
398
|
+
const jevMissing = missingSecrets.includes("TYPESAFE_API_KEY");
|
|
399
|
+
return {
|
|
400
|
+
passed: false,
|
|
401
|
+
message,
|
|
402
|
+
remediation: jevMissing
|
|
403
|
+
? "Set `TYPESAFE_API_KEY` in `~/.config/kibi/env` (user-wide) or `<workspace>/.env.kibi` (project override), then restart long-running Kibi MCP/host processes."
|
|
404
|
+
: `Set missing plugin secret(s) (${missingSecrets.join(", ")}) in ~/.config/kibi/env or <workspace>/.env.kibi, then restart long-running Kibi MCP/host processes.`,
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
if (legacySecrets.length > 0) {
|
|
408
|
+
return {
|
|
409
|
+
passed: true,
|
|
410
|
+
message,
|
|
411
|
+
remediation: `Migrate ${legacySecrets.join(", ")} from legacy \`.env\` to \`~/.config/kibi/env\` or \`<workspace>/.env.kibi\`, then restart long-running Kibi MCP/host processes.`,
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
return {
|
|
415
|
+
passed: true,
|
|
416
|
+
message,
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
421
|
+
return {
|
|
422
|
+
passed: false,
|
|
423
|
+
message,
|
|
424
|
+
remediation: "Fix package.json kibi.plugins, then restart long-running Kibi MCP or client processes.",
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
function formatSecretSourcePart(secret, bootstrap) {
|
|
429
|
+
return secretSourceFromBootstrap(secret, bootstrap);
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Static first-party Jev diagnostics — mirrors plugin resolve helpers without importing.
|
|
433
|
+
*/
|
|
434
|
+
// implements REQ-kibi-env-bootstrap, REQ-capability-plugin-configuration-v1
|
|
435
|
+
function formatJevStaticConfigParts(env = process.env) {
|
|
436
|
+
const model = env.KIBI_JEV_MODEL?.trim() || JEV_DEFAULT_MODEL;
|
|
437
|
+
const raw = env.KIBI_JEV_TIMEOUT_MS;
|
|
438
|
+
if (raw === undefined || raw.trim() === "") {
|
|
439
|
+
return [`jev.model=${model}`, "jev.timeoutMs=default"];
|
|
440
|
+
}
|
|
441
|
+
const trimmed = raw.trim();
|
|
442
|
+
if (!/^[1-9]\d*$/.test(trimmed)) {
|
|
443
|
+
return [`jev.model=${model}`, "jev.timeoutMs=invalid"];
|
|
444
|
+
}
|
|
445
|
+
const timeoutMs = Number(trimmed);
|
|
446
|
+
if (!Number.isSafeInteger(timeoutMs) ||
|
|
447
|
+
timeoutMs < 1 ||
|
|
448
|
+
timeoutMs > JEV_MAX_TIMEOUT_MS) {
|
|
449
|
+
return [`jev.model=${model}`, "jev.timeoutMs=invalid"];
|
|
450
|
+
}
|
|
451
|
+
return [`jev.model=${model}`, `jev.timeoutMs=${String(timeoutMs)}`];
|
|
452
|
+
}
|
|
329
453
|
function checkKbDirectory() {
|
|
330
454
|
const kbDir = path.join(process.cwd(), ".kb");
|
|
331
455
|
if (!existsSync(kbDir)) {
|
|
@@ -468,8 +592,13 @@ function checkPreCommitHook() {
|
|
|
468
592
|
const preCommitExecutable = (preCommitStats.mode & 0o111) !== 0;
|
|
469
593
|
// Read hook content to determine whether it's using the new staged check
|
|
470
594
|
const content = readFileSync(preCommitPath, "utf-8");
|
|
471
|
-
|
|
472
|
-
|
|
595
|
+
// Current templates resolve the kibi binary into KIBI_BIN before invoking
|
|
596
|
+
// it (git hooks do not get node_modules/.bin on PATH); legacy templates
|
|
597
|
+
// invoked bare `kibi`.
|
|
598
|
+
const resolvesKibi = content.includes("KIBI_BIN=");
|
|
599
|
+
const usesKibi = resolvesKibi || content.includes("kibi check");
|
|
600
|
+
const usesStaged = content.includes('"$KIBI_BIN" check --staged') ||
|
|
601
|
+
content.includes("kibi check --staged");
|
|
473
602
|
if (!usesKibi) {
|
|
474
603
|
// Fail if hook doesn't invoke kibi at all
|
|
475
604
|
return {
|
|
@@ -480,15 +609,24 @@ function checkPreCommitHook() {
|
|
|
480
609
|
}
|
|
481
610
|
if (preCommitExecutable) {
|
|
482
611
|
if (usesStaged) {
|
|
612
|
+
if (!resolvesKibi) {
|
|
613
|
+
// Functional template that invokes bare `kibi`: it fails whenever
|
|
614
|
+
// kibi is installed only as a project dependency.
|
|
615
|
+
return {
|
|
616
|
+
passed: true,
|
|
617
|
+
message: "Installed and executable (legacy template without kibi CLI resolution — run 'kibi init' to regenerate so hooks work with local installs)",
|
|
618
|
+
remediation: "Run: kibi init to update git hooks to the latest template",
|
|
619
|
+
};
|
|
620
|
+
}
|
|
483
621
|
return {
|
|
484
622
|
passed: true,
|
|
485
|
-
message: "Installed and executable (uses 'kibi check --staged')",
|
|
623
|
+
message: "Installed and executable (resolves kibi CLI; uses 'kibi check --staged')",
|
|
486
624
|
};
|
|
487
625
|
}
|
|
488
626
|
// Warn but pass if using legacy kibi check without --staged
|
|
489
627
|
return {
|
|
490
628
|
passed: true,
|
|
491
|
-
message: "Installed and executable (uses legacy 'kibi check' — consider running 'kibi init' to update hooks to use '--staged')",
|
|
629
|
+
message: "Installed and executable (uses legacy 'kibi check' — consider running 'kibi init' to update hooks to use '--staged' with CLI resolution)",
|
|
492
630
|
remediation: "Run: kibi init to update git hooks to the latest template",
|
|
493
631
|
};
|
|
494
632
|
}
|
|
@@ -529,9 +667,11 @@ function checkPostRewriteHook() {
|
|
|
529
667
|
try {
|
|
530
668
|
const postRewriteStats = statSync(postRewritePath);
|
|
531
669
|
const postRewriteExecutable = (postRewriteStats.mode & 0o111) !== 0;
|
|
532
|
-
// Read hook content to verify it invokes kibi
|
|
670
|
+
// Read hook content to verify it invokes kibi. Current templates invoke
|
|
671
|
+
// the resolved KIBI_BIN; legacy templates invoked bare `kibi sync`.
|
|
533
672
|
const content = readFileSync(postRewritePath, "utf-8");
|
|
534
|
-
const usesKibi = content.includes("kibi sync");
|
|
673
|
+
const usesKibi = content.includes('"$KIBI_BIN" sync') || content.includes("kibi sync");
|
|
674
|
+
const resolvesKibi = content.includes("KIBI_BIN=");
|
|
535
675
|
if (!usesKibi) {
|
|
536
676
|
return {
|
|
537
677
|
passed: false,
|
|
@@ -540,6 +680,13 @@ function checkPostRewriteHook() {
|
|
|
540
680
|
};
|
|
541
681
|
}
|
|
542
682
|
if (postRewriteExecutable) {
|
|
683
|
+
if (!resolvesKibi) {
|
|
684
|
+
return {
|
|
685
|
+
passed: true,
|
|
686
|
+
message: "Installed and executable (legacy template without kibi CLI resolution — run 'kibi init' to regenerate so hooks work with local installs)",
|
|
687
|
+
remediation: "Run: kibi init to update git hooks to the latest template",
|
|
688
|
+
};
|
|
689
|
+
}
|
|
543
690
|
return {
|
|
544
691
|
passed: true,
|
|
545
692
|
message: "Installed and executable",
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
export declare function engineStatusCommand(): Promise<void>;
|
|
2
2
|
export declare function engineStopCommand(): Promise<void>;
|
|
3
3
|
export declare function storageStatusCommand(): Promise<void>;
|
|
4
|
+
export interface EngineJanitorOptions {
|
|
5
|
+
readonly all?: boolean;
|
|
6
|
+
readonly apply?: boolean;
|
|
7
|
+
readonly format?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Classify and (optionally) clean stale engine daemons and branch-store
|
|
11
|
+
* locks: crashed engines leave ownership journals behind, worktree removals
|
|
12
|
+
* strand live daemons, dead daemons leave sockets. Report-only by default;
|
|
13
|
+
`--apply` executes the clean actions.
|
|
14
|
+
*/
|
|
15
|
+
export declare function engineJanitorCommand(options: EngineJanitorOptions): Promise<void>;
|
|
4
16
|
export declare function storageCompactCommand(): Promise<void>;
|
|
5
17
|
export declare function storageExportCommand(options: {
|
|
6
18
|
output: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/commands/engine.ts"],"names":[],"mappings":"AAkCA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB3D;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/commands/engine.ts"],"names":[],"mappings":"AAkCA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AAEH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB3D;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
|
package/dist/commands/engine.js
CHANGED
|
@@ -69,6 +69,48 @@ export async function engineStopCommand() {
|
|
|
69
69
|
export async function storageStatusCommand() {
|
|
70
70
|
await engineStatusCommand();
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Classify and (optionally) clean stale engine daemons and branch-store
|
|
74
|
+
* locks: crashed engines leave ownership journals behind, worktree removals
|
|
75
|
+
* strand live daemons, dead daemons leave sockets. Report-only by default;
|
|
76
|
+
`--apply` executes the clean actions.
|
|
77
|
+
*/
|
|
78
|
+
// implements REQ-core-journaled-engine-persistence
|
|
79
|
+
export async function engineJanitorCommand(options) {
|
|
80
|
+
const { runtimeDirectory } = await import("../engine.js");
|
|
81
|
+
const { runJanitor } = await import("../prolog/janitor.js");
|
|
82
|
+
const findings = runJanitor({
|
|
83
|
+
workspaceRoot: workspaceRoot(),
|
|
84
|
+
runtimeDirectory: runtimeDirectory(),
|
|
85
|
+
all: options.all === true,
|
|
86
|
+
apply: options.apply === true,
|
|
87
|
+
});
|
|
88
|
+
const cleanable = findings.filter((f) => f.action !== "keep").length;
|
|
89
|
+
const cleaned = options.apply === true ? cleanable : 0;
|
|
90
|
+
if (options.format === "json") {
|
|
91
|
+
console.log(JSON.stringify({ findings, cleaned, cleanable, total: findings.length }));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (findings.length === 0) {
|
|
95
|
+
console.log("No engine or lock artifacts found.");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
for (const finding of findings) {
|
|
99
|
+
const holder = "pid" in finding && finding.pid !== undefined
|
|
100
|
+
? ` pid=${finding.pid}`
|
|
101
|
+
: "";
|
|
102
|
+
const workspace = finding.kind === "store-lock" && finding.workspaceRoot !== undefined
|
|
103
|
+
? ` workspace=${finding.workspaceRoot}`
|
|
104
|
+
: "";
|
|
105
|
+
const scope = finding.kind === "store-lock"
|
|
106
|
+
? `store ${finding.storePath}`
|
|
107
|
+
: `socket ${finding.socketPath}`;
|
|
108
|
+
console.log(`[${finding.action}] ${scope}${holder}${workspace} holder=${finding.holderState}`);
|
|
109
|
+
}
|
|
110
|
+
console.log(options.apply === true
|
|
111
|
+
? `${findings.length} finding(s), ${cleaned} cleaned`
|
|
112
|
+
: `${findings.length} finding(s), ${cleanable} cleanable (report only; re-run with --apply)`);
|
|
113
|
+
}
|
|
72
114
|
export async function storageCompactCommand() {
|
|
73
115
|
const root = workspaceRoot();
|
|
74
116
|
const attachment = resolveBranchAttachment(root);
|
|
@@ -53,4 +53,5 @@ export declare function resolveGitHubRepo(remotes: readonly GitRemote[]): GitHub
|
|
|
53
53
|
export declare function writeGitHubWorkflow(cwd: string, kind: GitHubWorkflowKind, template: string): WorkflowWriteStatus;
|
|
54
54
|
export declare function ensureKibiReportGitIgnore(cwd: string): GitIgnoreWriteStatus;
|
|
55
55
|
export declare function scaffoldGitHubIntegration(options: GitHubScaffoldOptions, deps?: GitHubInitDeps): GitHubScaffoldResult;
|
|
56
|
+
export declare function skipBlankLines(lines: readonly string[], start: number): number;
|
|
56
57
|
//# sourceMappingURL=github-init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-init.d.ts","sourceRoot":"","sources":["../../src/commands/github-init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-init.d.ts","sourceRoot":"","sources":["../../src/commands/github-init.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,8BAA8B,sCACN,CAAC;AACtC,eAAO,MAAM,6BAA6B,qCAAqC,CAAC;AAChF,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,cAAc,4BAA4B,CAAC;AACxD,eAAO,MAAM,oBAAoB,gGAC8D,CAAC;AAChG,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAM7C,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AACvE,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,WAAW,GACX,SAAS,GACT,sBAAsB,CAAC;AAC3B,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAC3C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,oBAAoB,CAAC;IAChC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;CAC9B,CAAC,CAAC;AAGH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,kBAAkB,GACvB,MAAM,CAER;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAS3E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CA+BrE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAUjE;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAER;AAED,wBAAgB,oBAAoB,IAAI,eAAe,CAKtD;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAMnE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQhE;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,MAAM,CAuBR;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAiBvD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,SAAS,EAAE,GAC5B,UAAU,GAAG,SAAS,CASxB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,MAAM,GACf,mBAAmB,CAcrB;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAa3E;AAGD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,qBAAqB,EAC9B,IAAI,GAAE,cAAmB,GACxB,oBAAoB,CAsDtB;AAsDD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,GACZ,MAAM,CAMR"}
|
|
@@ -50,7 +50,7 @@ export function parseGitHubRemote(url) {
|
|
|
50
50
|
return undefined;
|
|
51
51
|
}
|
|
52
52
|
const patterns = [
|
|
53
|
-
/^https?:\/\/(?:www\.)?github\.com\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/i,
|
|
53
|
+
/^https?:\/\/(?:[^/@]+@)?(?:www\.)?github\.com\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/i,
|
|
54
54
|
/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?\/?$/i,
|
|
55
55
|
/^ssh:\/\/(?:git@)?github\.com(?::\d+)?\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/i,
|
|
56
56
|
/^git:\/\/github\.com\/([^/]+)\/([^/]+?)(?:\.git)?\/?$/i,
|
|
@@ -264,6 +264,13 @@ function normalizeNewlines(value) {
|
|
|
264
264
|
const unix = value.replace(/\r\n/g, "\n");
|
|
265
265
|
return unix.endsWith("\n") ? unix : `${unix}\n`;
|
|
266
266
|
}
|
|
267
|
+
export function skipBlankLines(lines, start) {
|
|
268
|
+
let peek = start;
|
|
269
|
+
while (peek < lines.length && (lines[peek] ?? "").trim() === "") {
|
|
270
|
+
peek += 1;
|
|
271
|
+
}
|
|
272
|
+
return peek;
|
|
273
|
+
}
|
|
267
274
|
function findBadgeClusterEnd(lines, start) {
|
|
268
275
|
let index = start;
|
|
269
276
|
while (index < lines.length && (lines[index] ?? "").trim() === "") {
|
|
@@ -279,10 +286,7 @@ function findBadgeClusterEnd(lines, start) {
|
|
|
279
286
|
continue;
|
|
280
287
|
}
|
|
281
288
|
if (line.trim() === "") {
|
|
282
|
-
|
|
283
|
-
while (peek < lines.length && (lines[peek] ?? "").trim() === "") {
|
|
284
|
-
peek += 1;
|
|
285
|
-
}
|
|
289
|
+
const peek = skipBlankLines(lines, index + 1);
|
|
286
290
|
if (peek < lines.length && BADGE_OR_IMAGE_LINE.test(lines[peek] ?? "")) {
|
|
287
291
|
index = peek;
|
|
288
292
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/init-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/init-helpers.ts"],"names":[],"mappings":"AAuIA,wBAAsB,gBAAgB,CACpC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GACpB,IAAI,CAUN;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGtD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA6BjD;AAkDD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAU3D;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAYf;AASD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAkCnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAiBpD"}
|
|
@@ -23,6 +23,31 @@ import { ensureBranchStoreManifest } from "../utils/branch-store-locator.js";
|
|
|
23
23
|
import { defaultKbManifest, writeKbManifest } from "../utils/kb-manifest.js";
|
|
24
24
|
import { ENTITY_LANES, KB_PATHS } from "../utils/kb-paths.js";
|
|
25
25
|
import { SYMBOLS_MANIFEST_COMMENT_BLOCK } from "./sync/manifest.js";
|
|
26
|
+
// Git executes hooks with the caller's PATH, which does not include
|
|
27
|
+
// node_modules/.bin, so a locally installed kibi CLI would not resolve.
|
|
28
|
+
// Each hook resolves the binary up front: PATH first (global installs),
|
|
29
|
+
// then a walk up from the repository root (git runs hooks from the top of
|
|
30
|
+
// the working tree) for local npm/bun dependencies.
|
|
31
|
+
const KIBI_BIN_RESOLVER = `KIBI_BIN="$(command -v kibi 2>/dev/null || true)"
|
|
32
|
+
if [ -z "$KIBI_BIN" ]; then
|
|
33
|
+
kibi_dir="$PWD"
|
|
34
|
+
while [ -n "$kibi_dir" ] && [ "$kibi_dir" != "/" ]; do
|
|
35
|
+
if [ -x "$kibi_dir/node_modules/.bin/kibi" ]; then
|
|
36
|
+
KIBI_BIN="$kibi_dir/node_modules/.bin/kibi"
|
|
37
|
+
break
|
|
38
|
+
fi
|
|
39
|
+
kibi_parent="\${kibi_dir%/*}"
|
|
40
|
+
if [ -z "$kibi_parent" ]; then
|
|
41
|
+
kibi_parent="/"
|
|
42
|
+
fi
|
|
43
|
+
kibi_dir="$kibi_parent"
|
|
44
|
+
done
|
|
45
|
+
fi
|
|
46
|
+
if [ -z "$KIBI_BIN" ]; then
|
|
47
|
+
echo "kibi: cannot locate the kibi CLI (checked PATH and node_modules/.bin)." >&2
|
|
48
|
+
echo "Install kibi globally or as a project dependency, then re-run 'kibi init'." >&2
|
|
49
|
+
exit 1
|
|
50
|
+
fi`;
|
|
26
51
|
const POST_CHECKOUT_HOOK = `#!/bin/sh
|
|
27
52
|
# post-checkout hook for kibi
|
|
28
53
|
# Parameters: old_ref new_ref branch_flag
|
|
@@ -36,11 +61,17 @@ old_ref=$1
|
|
|
36
61
|
new_ref=$2
|
|
37
62
|
branch_flag=$3
|
|
38
63
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
64
|
+
# File checkouts never refresh the KB; skip binary resolution so sandboxed
|
|
65
|
+
# test workspaces without an installed kibi CLI can restore tracked files.
|
|
66
|
+
if [ "$branch_flag" != "1" ]; then
|
|
67
|
+
exit 0
|
|
43
68
|
fi
|
|
69
|
+
|
|
70
|
+
${KIBI_BIN_RESOLVER}
|
|
71
|
+
|
|
72
|
+
# Branch stores are derived from the checked-out tracked sources. Never copy
|
|
73
|
+
# the old branch's compiled store during checkout.
|
|
74
|
+
"$KIBI_BIN" sync
|
|
44
75
|
`;
|
|
45
76
|
const POST_MERGE_HOOK = `#!/bin/sh
|
|
46
77
|
# post-merge hook for kibi
|
|
@@ -49,7 +80,9 @@ const POST_MERGE_HOOK = `#!/bin/sh
|
|
|
49
80
|
# Uses default non-coordinate-writing sync to avoid writing
|
|
50
81
|
# committed symbol artifacts during automatic hook execution.
|
|
51
82
|
|
|
52
|
-
|
|
83
|
+
${KIBI_BIN_RESOLVER}
|
|
84
|
+
|
|
85
|
+
"$KIBI_BIN" sync
|
|
53
86
|
`;
|
|
54
87
|
const POST_REWRITE_HOOK = `#!/bin/sh
|
|
55
88
|
# post-rewrite hook for kibi
|
|
@@ -60,8 +93,10 @@ const POST_REWRITE_HOOK = `#!/bin/sh
|
|
|
60
93
|
|
|
61
94
|
rewrite_type=$1
|
|
62
95
|
|
|
96
|
+
${KIBI_BIN_RESOLVER}
|
|
97
|
+
|
|
63
98
|
if [ "$rewrite_type" = "rebase" ]; then
|
|
64
|
-
|
|
99
|
+
"$KIBI_BIN" sync
|
|
65
100
|
fi
|
|
66
101
|
`;
|
|
67
102
|
const PRE_COMMIT_HOOK = `#!/bin/sh
|
|
@@ -71,12 +106,15 @@ const PRE_COMMIT_HOOK = `#!/bin/sh
|
|
|
71
106
|
# Behavior-changing source edits require staged Kibi impact evidence
|
|
72
107
|
# (KB entity docs under .kb/, authored symbols metadata, or refreshed
|
|
73
108
|
# symbol coordinates). Test-only and docs-only edits are exempt.
|
|
74
|
-
#
|
|
75
|
-
#
|
|
109
|
+
# Generated manifests are checked against the exact staged snapshot before
|
|
110
|
+
# traceability validation. The check never stages files on the user's behalf.
|
|
76
111
|
|
|
77
112
|
set -e
|
|
78
113
|
|
|
79
|
-
|
|
114
|
+
${KIBI_BIN_RESOLVER}
|
|
115
|
+
|
|
116
|
+
"$KIBI_BIN" check-generated --staged --changed-only
|
|
117
|
+
"$KIBI_BIN" check --staged
|
|
80
118
|
`;
|
|
81
119
|
export async function getCurrentBranch(cwd = process.cwd()) {
|
|
82
120
|
const result = resolveActiveBranch(cwd);
|
|
@@ -131,10 +169,11 @@ export function updateGitIgnore(cwd) {
|
|
|
131
169
|
const CANONICAL_DERIVED_GITIGNORE_ENTRIES = [
|
|
132
170
|
".kb/branches/",
|
|
133
171
|
".kb/recovery/",
|
|
134
|
-
".kb/
|
|
172
|
+
".kb/proof/runs/",
|
|
135
173
|
".kb/briefs/",
|
|
136
174
|
".kb/migrations/",
|
|
137
175
|
".kb/usage.log",
|
|
176
|
+
".env.kibi",
|
|
138
177
|
];
|
|
139
178
|
/**
|
|
140
179
|
* Pre-canonical Kibi init wrote a blanket `.kb/` fence and then
|
|
@@ -9,6 +9,10 @@ interface MigrateOptions {
|
|
|
9
9
|
/** Internal migration-plan executor: create only the canonical baseline manifest. */
|
|
10
10
|
initializeMissingConfig?: boolean;
|
|
11
11
|
}
|
|
12
|
+
export declare function formatSchemaVersion(rawSchemaVersion: unknown, normalized: number | null): string;
|
|
13
|
+
export declare function warnMigrationRequiredWithoutYes(): {
|
|
14
|
+
exitCode: number;
|
|
15
|
+
};
|
|
12
16
|
export declare function migrateCommand(options?: MigrateOptions): Promise<{
|
|
13
17
|
exitCode: number;
|
|
14
18
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAgDA,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAgDA,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AA0ID,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,CAUR;AAoND,wBAAgB,+BAA+B,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAKtE;AAGD,wBAAsB,cAAc,CAClC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgO/B"}
|
package/dist/commands/migrate.js
CHANGED
|
@@ -98,7 +98,7 @@ function writeTextAtomically(filePath, content) {
|
|
|
98
98
|
writeFileSync(tempPath, content, "utf8");
|
|
99
99
|
renameSync(tempPath, filePath);
|
|
100
100
|
}
|
|
101
|
-
function formatSchemaVersion(rawSchemaVersion, normalized) {
|
|
101
|
+
export function formatSchemaVersion(rawSchemaVersion, normalized) {
|
|
102
102
|
if (normalized === null) {
|
|
103
103
|
if (rawSchemaVersion === undefined) {
|
|
104
104
|
return "missing";
|
|
@@ -261,6 +261,12 @@ 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 ||
|
|
@@ -359,12 +365,6 @@ export async function migrateCommand(options = {}) {
|
|
|
359
365
|
console.log("Re-run with --yes to apply these changes.");
|
|
360
366
|
return { exitCode: 0 };
|
|
361
367
|
}
|
|
362
|
-
if (!options.yes) {
|
|
363
|
-
printWarning("Migration required for this repository.");
|
|
364
|
-
console.log("No changes applied.");
|
|
365
|
-
console.log("Use --dry-run to preview or --yes to apply the migration.");
|
|
366
|
-
return { exitCode: 0 };
|
|
367
|
-
}
|
|
368
368
|
// One-way storage cutover first: files must reach the canonical layout
|
|
369
369
|
// before the manifest records the new schema generation.
|
|
370
370
|
if (needsStorageMigration) {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type ProofExplainOptions = Readonly<{
|
|
2
|
+
id?: string;
|
|
3
|
+
requirement?: string;
|
|
4
|
+
symbol?: string;
|
|
5
|
+
json?: boolean;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function proofExplainCommand(options: ProofExplainOptions): Promise<{
|
|
8
|
+
exitCode: number;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=proof-explain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-explain.d.ts","sourceRoot":"","sources":["../../src/commands/proof-explain.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAGH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAuC/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
|
+
import { classifyExplainTarget, executeProofExplain, renderProofExplain, } from "../operations/proof/explain.js";
|
|
11
|
+
import { createCliRuntime } from "../runtime/cli-runtime.js";
|
|
12
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
13
|
+
export async function proofExplainCommand(options) {
|
|
14
|
+
const target = classifyExplainTarget(options.id, {
|
|
15
|
+
...(options.requirement === undefined
|
|
16
|
+
? {}
|
|
17
|
+
: { requirement: options.requirement }),
|
|
18
|
+
...(options.symbol === undefined ? {} : { symbol: options.symbol }),
|
|
19
|
+
});
|
|
20
|
+
const runtime = createCliRuntime();
|
|
21
|
+
const context = await runtime.open({
|
|
22
|
+
name: "kibi_proof_explain",
|
|
23
|
+
effects: [],
|
|
24
|
+
requiresProlog: true,
|
|
25
|
+
execute: async () => undefined,
|
|
26
|
+
}, {});
|
|
27
|
+
let completed = false;
|
|
28
|
+
try {
|
|
29
|
+
const { view } = await executeProofExplain(target, context);
|
|
30
|
+
if (options.json) {
|
|
31
|
+
process.stdout.write(`${JSON.stringify(view, null, 2)}\n`);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
process.stdout.write(renderProofExplain(view));
|
|
35
|
+
}
|
|
36
|
+
completed = true;
|
|
37
|
+
await runtime.afterSuccess({ name: "kibi_proof_explain" }, 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-impact.d.ts","sourceRoot":"","sources":["../../src/commands/proof-impact.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAGH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B/B"}
|