kibi-cli 1.0.1 → 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.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 +103 -0
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -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.d.ts +14 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +190 -44
- 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 +48 -22
- package/dist/commands/engine.d.ts +12 -0
- package/dist/commands/engine.d.ts.map +1 -1
- package/dist/commands/engine.js +40 -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 +38 -5
- 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-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.js +1 -1
- 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 +1 -1
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +53 -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 +25 -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 +14 -76
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +197 -30
- 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 +5 -3
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +41 -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-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 +1 -0
- package/dist/intent-search.d.ts.map +1 -1
- package/dist/intent-search.js +7 -3
- 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 +53 -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 +3 -1
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +52 -19
- 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 +2 -2
- 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 +2 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -1
- package/dist/operations/planning/compile-intent.js +70 -14
- 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 +46 -26
- 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/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/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 +3 -3
- 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/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 +447 -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 +3 -7
- 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 +31 -22
- 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 +9 -9
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +17 -14
- 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/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 +5 -0
- 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 +34 -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/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 +19 -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/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 +118 -3
- package/dist/public/operations/types.d.ts +1 -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 +41 -12
- package/dist/public/skills/kibi-usage/resources/operation-access.md +1 -1
- package/dist/public/skills/kibi-usage/resources/proof.md +105 -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 +20 -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 +282 -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 +14 -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 +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 +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 +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 +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 +8 -11
- package/src/public/diagnostic-usage.ts +6 -6
- package/src/public/distribution-parity.ts +17 -10
- 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 +3 -7
- package/src/public/operations/contracts.ts +38 -22
- package/src/public/operations/discovery-entities.ts +7 -0
- package/src/public/operations/discovery-executors.ts +26 -23
- 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/repair-plan.ts +60 -23
- package/src/public/operations/result-envelope.ts +15 -10
- package/src/public/operations/runtime-types.ts +5 -0
- package/src/public/operations/specs/check-rules.generated.ts +37 -0
- package/src/public/operations/specs/check.ts +12 -21
- 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/symbol-repair-plan.ts +163 -3
- package/src/public/operations/types.ts +1 -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 +41 -12
- package/src/public/skills/kibi-usage/resources/operation-access.md +1 -1
- package/src/public/skills/kibi-usage/resources/proof.md +105 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +6 -6
- package/src/public/symbol-granularity.generated.ts +41 -0
- package/src/public/symbol-granularity.ts +35 -60
- 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
|
@@ -3,6 +3,9 @@ import { cp, mkdir, rm, writeFile } from "node:fs/promises";
|
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { isCliTraceOrDebugEnabled } from "../env.js";
|
|
6
|
+
export function skipNonIntegerFactNumber(field, value) {
|
|
7
|
+
return field === "value_int" && !Number.isInteger(value);
|
|
8
|
+
}
|
|
6
9
|
import { PrologProcess } from "../prolog.js";
|
|
7
10
|
import { toPrologAtom, toPrologString } from "../prolog/codec.js";
|
|
8
11
|
const prologByTempDir = new Map();
|
|
@@ -113,7 +116,7 @@ function serializeTypedFactFields(entity) {
|
|
|
113
116
|
for (const field of FACT_NUMBER_FIELDS) {
|
|
114
117
|
const value = getEntityField(entity, field);
|
|
115
118
|
if (value !== undefined && value !== null && typeof value === "number") {
|
|
116
|
-
if (field
|
|
119
|
+
if (skipNonIntegerFactNumber(field, value)) {
|
|
117
120
|
continue;
|
|
118
121
|
}
|
|
119
122
|
fields.push(`${field}=${value}`);
|
|
@@ -202,8 +205,14 @@ function buildEntityAssertionGoal(entity, sourceFile) {
|
|
|
202
205
|
if (entity.verification_perspective !== undefined) {
|
|
203
206
|
props.push(`verification_perspective=${toPrologAtom(entity.verification_perspective)}`);
|
|
204
207
|
}
|
|
205
|
-
if (entity.
|
|
206
|
-
props.push(`
|
|
208
|
+
if (entity.proof_contract !== undefined) {
|
|
209
|
+
props.push(`proof_contract=${toPrologString(JSON.stringify(entity.proof_contract))}`);
|
|
210
|
+
}
|
|
211
|
+
if (entity.proof_bindings !== undefined) {
|
|
212
|
+
props.push(`proof_bindings=${toPrologString(JSON.stringify(entity.proof_bindings))}`);
|
|
213
|
+
}
|
|
214
|
+
if (entity.proof_receipts !== undefined) {
|
|
215
|
+
props.push(`proof_receipts=${toPrologString(JSON.stringify(entity.proof_receipts))}`);
|
|
207
216
|
}
|
|
208
217
|
}
|
|
209
218
|
return `kb_assert_entity_no_audit(${entity.type}, [${props.join(", ")}])`;
|
|
@@ -283,7 +292,7 @@ export async function createTempKb(baseKbPath) {
|
|
|
283
292
|
trace(`copying base KB ${baseKbPath} -> ${kbPath}`);
|
|
284
293
|
await cp(baseKbPath, kbPath, { recursive: true });
|
|
285
294
|
await writeFile(overlayPath, "", "utf8");
|
|
286
|
-
const prolog = _createProlog({ timeout: 120000 });
|
|
295
|
+
const prolog = _createProlog({ timeout: 120000, oneShot: false });
|
|
287
296
|
await prolog.start();
|
|
288
297
|
prologByTempDir.set(tempDir, prolog);
|
|
289
298
|
// ctx includes prolog so callers can use it directly
|
package/dist/types/entities.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ProofBinding, ProofContract } from "../public/proof-protocol.js";
|
|
2
|
+
import type { ProofReceipt } from "../public/proof-receipt.js";
|
|
2
3
|
export interface BaseEntity {
|
|
3
4
|
id: string;
|
|
4
5
|
title: string;
|
|
@@ -45,8 +46,9 @@ export interface FactFields {
|
|
|
45
46
|
export interface TestVerificationFields {
|
|
46
47
|
verification_scope?: "unit" | "integration" | "end_to_end";
|
|
47
48
|
verification_perspective?: "internal" | "consumer";
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
proof_contract?: ProofContract;
|
|
50
|
+
proof_bindings?: readonly ProofBinding[];
|
|
51
|
+
proof_receipts?: readonly ProofReceipt[];
|
|
50
52
|
}
|
|
51
53
|
export type Requirement = BaseEntity & {
|
|
52
54
|
type: "req";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/types/entities.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/types/entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export type BranchResolutionError = {
|
|
|
6
6
|
code: BranchErrorCode;
|
|
7
7
|
};
|
|
8
8
|
export type BranchResolutionResult = BranchResolutionSuccess | BranchResolutionError;
|
|
9
|
+
export declare function unreadableMigrationJournalError(journalName: string): BranchResolutionError;
|
|
9
10
|
export type BranchAttachment = {
|
|
10
11
|
gitBranch: string;
|
|
11
12
|
kbBranch: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/branch-resolver.ts"],"names":[],"mappings":"AAsCA,MAAM,MAAM,uBAAuB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,sBAAsB,GAC9B,uBAAuB,GACvB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,mBAAmB,GAAG,eAAe,CAAC;IACtD,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,sBAAsB,GACtB,6BAA6B,GAC7B,eAAe,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,oBAAoB,EAAE,QAAQ,CAAC;IACvD,YAAY,EAAE,cAAc,oBAAoB,EAAE,YAAY,CAAC;CAChE;AAOD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAChC,IAAI,CAIN;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,GAAE,MAAsB,GACpC,sBAAsB,CAoHxB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,GAAE,MAAsB,GACpC,gBAAgB,GAAG,qBAAqB,
|
|
1
|
+
{"version":3,"file":"branch-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/branch-resolver.ts"],"names":[],"mappings":"AAsCA,MAAM,MAAM,uBAAuB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,sBAAsB,GAC9B,uBAAuB,GACvB,qBAAqB,CAAC;AAE1B,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,MAAM,GAClB,qBAAqB,CAKvB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,mBAAmB,GAAG,eAAe,CAAC;IACtD,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,sBAAsB,GACtB,6BAA6B,GAC7B,eAAe,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,oBAAoB,EAAE,QAAQ,CAAC;IACvD,YAAY,EAAE,cAAc,oBAAoB,EAAE,YAAY,CAAC;CAChE;AAOD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAChC,IAAI,CAIN;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,GAAE,MAAsB,GACpC,sBAAsB,CAoHxB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,GAAE,MAAsB,GACpC,gBAAgB,GAAG,qBAAqB,CAiE1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,aAAa,GAAE,MAAsB,GAAG,OAAO,CAgB7E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,GACZ,MAAM,CAuBR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkDvD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,IAAI,CAUN;AA6BD;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAMtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAsB,EAC3B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA+BtD"}
|
|
@@ -20,6 +20,12 @@ import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSyn
|
|
|
20
20
|
import * as path from "node:path";
|
|
21
21
|
import { getBranchOverride } from "../env.js";
|
|
22
22
|
import { branchStoreManifestMatches, branchStorePath, legacyBranchStorePath, } from "./branch-store-locator.js";
|
|
23
|
+
export function unreadableMigrationJournalError(journalName) {
|
|
24
|
+
return {
|
|
25
|
+
error: `Unreadable branch migration journal '${journalName}' blocks attachment; recover it explicitly before continuing.`,
|
|
26
|
+
code: "MIGRATION_RECOVERY_REQUIRED",
|
|
27
|
+
};
|
|
28
|
+
}
|
|
23
29
|
const defaultDeps = {
|
|
24
30
|
execSync: rawExecSync,
|
|
25
31
|
execFileSync: rawExecFileSync,
|
|
@@ -185,10 +191,7 @@ export function resolveBranchAttachment(workspaceRoot = process.cwd()) {
|
|
|
185
191
|
}
|
|
186
192
|
}
|
|
187
193
|
catch {
|
|
188
|
-
return
|
|
189
|
-
error: `Unreadable branch migration journal '${journalName}' blocks attachment; recover it explicitly before continuing.`,
|
|
190
|
-
code: "MIGRATION_RECOVERY_REQUIRED",
|
|
191
|
-
};
|
|
194
|
+
return unreadableMigrationJournalError(journalName);
|
|
192
195
|
}
|
|
193
196
|
}
|
|
194
197
|
}
|
|
@@ -11,5 +11,11 @@ export type BranchStoreInspection = Readonly<{
|
|
|
11
11
|
* attaches Prolog, so callers can still explain a broken branch store.
|
|
12
12
|
*/
|
|
13
13
|
export declare function inspectBranchStore(workspaceRoot: string, branch: string): BranchStoreInspection;
|
|
14
|
+
/**
|
|
15
|
+
* Surface a stale branch-store lock journal: the recorded holder is
|
|
16
|
+
* provably dead (crashed engine, killed prove run). The next attach will
|
|
17
|
+
* auto-heal; the reason exists so operators see the state before it bites.
|
|
18
|
+
*/
|
|
19
|
+
export declare function storeLockJournalReason(storePath: string): Record<string, unknown> | null;
|
|
14
20
|
export declare function branchStoreReason(inspection: BranchStoreInspection): Record<string, unknown> | null;
|
|
15
21
|
//# sourceMappingURL=branch-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-store.d.ts","sourceRoot":"","sources":["../../src/utils/branch-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branch-store.d.ts","sourceRoot":"","sources":["../../src/utils/branch-store.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,qBAAqB,CA0GvB;AAED;;;;GAIG;AAEH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAiBhC;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,qBAAqB,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWhC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
6
6
|
import * as path from "node:path";
|
|
7
|
+
import { classifyStoreLockHolder, readStoreLockOwner, } from "../prolog/store-lock.js";
|
|
7
8
|
import { branchStoreManifestMatches, branchStorePath, legacyBranchStorePath, } from "./branch-store-locator.js";
|
|
8
9
|
/**
|
|
9
10
|
* Performs only filesystem checks. It deliberately never starts the engine or
|
|
@@ -115,6 +116,32 @@ export function inspectBranchStore(workspaceRoot, branch) {
|
|
|
115
116
|
};
|
|
116
117
|
}
|
|
117
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Surface a stale branch-store lock journal: the recorded holder is
|
|
121
|
+
* provably dead (crashed engine, killed prove run). The next attach will
|
|
122
|
+
* auto-heal; the reason exists so operators see the state before it bites.
|
|
123
|
+
*/
|
|
124
|
+
// implements REQ-core-journaled-engine-persistence
|
|
125
|
+
export function storeLockJournalReason(storePath) {
|
|
126
|
+
const journal = readStoreLockOwner(storePath);
|
|
127
|
+
if (journal === null)
|
|
128
|
+
return null;
|
|
129
|
+
const owner = journal.owner;
|
|
130
|
+
// Same boot-id-aware classification as the janitor and the attach
|
|
131
|
+
// takeover, so all three surfaces reach the same verdict on a journal.
|
|
132
|
+
if (classifyStoreLockHolder(owner) !== "dead")
|
|
133
|
+
return null;
|
|
134
|
+
return {
|
|
135
|
+
code: "store_lock_stale",
|
|
136
|
+
path: journal.journalPath,
|
|
137
|
+
entityIds: [],
|
|
138
|
+
detail: `Branch store lock journal records holder pid ${owner.pid} for ${owner.workspaceRoot ?? "unknown"}, which is no longer running.`,
|
|
139
|
+
remediation: {
|
|
140
|
+
command_argv: ["kibi", "engine", "janitor", "--apply"],
|
|
141
|
+
applyRequired: false,
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
}
|
|
118
145
|
export function branchStoreReason(inspection) {
|
|
119
146
|
if (inspection.state === "healthy")
|
|
120
147
|
return null;
|
package/dist/utils/kb-paths.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare const KB_PATHS: {
|
|
|
29
29
|
readonly relationships: ".kb/relationships";
|
|
30
30
|
};
|
|
31
31
|
/** Derived runtime trees. Authored knowledge and relationship shards stay writable. */
|
|
32
|
-
export declare const DERIVED_KB_PREFIXES: readonly [".kb/branches", ".kb/recovery", ".kb/
|
|
32
|
+
export declare const DERIVED_KB_PREFIXES: readonly [".kb/branches", ".kb/recovery", ".kb/proof/runs", ".kb/briefs", ".kb/migrations"];
|
|
33
33
|
export type KbEntityPaths = Readonly<{
|
|
34
34
|
requirements: string;
|
|
35
35
|
scenarios: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb-paths.d.ts","sourceRoot":"","sources":["../../src/utils/kb-paths.ts"],"names":[],"mappings":"AAkBA;;;;;;;GAOG;AAEH,eAAO,MAAM,OAAO,QAAQ,CAAC;AAE7B,uEAAuE;AACvE,eAAO,MAAM,YAAY,oFAQf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAQxE,CAAC;AAMF,eAAO,MAAM,QAAQ;IACnB,6DAA6D;;;;;;;;;;;;;;CAcrD,CAAC;AAEX,uFAAuF;AACvF,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"kb-paths.d.ts","sourceRoot":"","sources":["../../src/utils/kb-paths.ts"],"names":[],"mappings":"AAkBA;;;;;;;GAOG;AAEH,eAAO,MAAM,OAAO,QAAQ,CAAC;AAE7B,uEAAuE;AACvE,eAAO,MAAM,YAAY,oFAQf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAQxE,CAAC;AAMF,eAAO,MAAM,QAAQ;IACnB,6DAA6D;;;;;;;;;;;;;;CAcrD,CAAC;AAEX,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,6FAMtB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,sBAAsB,EAAE,aASpC,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,EAAE,aASzC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAKlE;AAED,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAO7E;AAED,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAKvE;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAKnE;AAMD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAKjE"}
|
package/dist/utils/kb-paths.js
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Central registry of KB check rules.
|
|
3
|
-
*
|
|
4
|
-
* Kibi — not the repository — owns each rule's enforcement class. Projects
|
|
5
|
-
* can no longer disable canonical checks. `--rules` remains an
|
|
6
|
-
* invocation-time diagnostic selector only and never persists policy.
|
|
7
|
-
*/
|
|
8
1
|
export type RuleEnforcementClass =
|
|
9
2
|
/**
|
|
10
3
|
* Canonical blocking correctness checks. Always evaluated by
|
|
@@ -39,10 +32,7 @@ export interface Violation {
|
|
|
39
32
|
/** Exact source-bound proof evidence, when the check can produce it. */
|
|
40
33
|
evidence?: Readonly<Record<string, unknown>>;
|
|
41
34
|
}
|
|
42
|
-
/**
|
|
43
|
-
* All known check rules.
|
|
44
|
-
* When adding a new rule, add it here.
|
|
45
|
-
*/
|
|
35
|
+
/** All known check rules, generated from the shared registry JSON. */
|
|
46
36
|
export declare const RULES: readonly RuleDefinition[];
|
|
47
37
|
/**
|
|
48
38
|
* Set of all rule names for quick lookups.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-registry.d.ts","sourceRoot":"","sources":["../../src/utils/rule-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rule-registry.d.ts","sourceRoot":"","sources":["../../src/utils/rule-registry.ts"],"names":[],"mappings":"AAgCA,MAAM,MAAM,oBAAoB;AAC9B;;;;GAIG;AACD,WAAW;AACb;;;GAGG;GACD,UAAU;AACZ;;;GAGG;GACD,WAAW,CAAC;AAEhB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACnE;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC9C;AAED,sEAAsE;AACtE,eAAO,MAAM,KAAK,EAAE,SAAS,cAAc,EAAoB,CAAC;AAIhE;;GAEG;AACH,eAAO,MAAM,UAAU,aAAoC,CAAC;AAE5D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,GACX,oBAAoB,GAAG,SAAS,CAElC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,oBAAoB,GACrC,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,CAAC,CAM7C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC,CAM/C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;GAQG;AAEH,wBAAgB,iBAAiB,CAC/B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GACjC,GAAG,CAAC,MAAM,CAAC,CAOb;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5D"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export declare const GENERATED_RULES: readonly [{
|
|
2
|
+
readonly name: "must-priority-coverage";
|
|
3
|
+
readonly description: "Every must-priority requirement must have a scenario and a test";
|
|
4
|
+
readonly enforcementClass: "canonical";
|
|
5
|
+
readonly category: "coverage";
|
|
6
|
+
}, {
|
|
7
|
+
readonly name: "symbol-coverage";
|
|
8
|
+
readonly description: "Production symbols need qualifying coverage via covered_by plus a canonical requirement/scenario test path";
|
|
9
|
+
readonly enforcementClass: "canonical";
|
|
10
|
+
readonly category: "coverage";
|
|
11
|
+
}, {
|
|
12
|
+
readonly name: "symbol-traceability";
|
|
13
|
+
readonly description: "Production symbols must directly implement requirements for ownership; covered_by is coverage only and executable_for is test identity only";
|
|
14
|
+
readonly enforcementClass: "canonical";
|
|
15
|
+
readonly category: "traceability";
|
|
16
|
+
}, {
|
|
17
|
+
readonly name: "no-dangling-refs";
|
|
18
|
+
readonly description: "All relationship targets must exist in the KB";
|
|
19
|
+
readonly enforcementClass: "canonical";
|
|
20
|
+
readonly category: "integrity";
|
|
21
|
+
}, {
|
|
22
|
+
readonly name: "source-relationship-parity";
|
|
23
|
+
readonly description: "Authored Markdown and relationship-shard edges must exactly match the compiled KB";
|
|
24
|
+
readonly enforcementClass: "canonical";
|
|
25
|
+
readonly category: "integrity";
|
|
26
|
+
}, {
|
|
27
|
+
readonly name: "no-cycles";
|
|
28
|
+
readonly description: "No circular dependency chains in requirements";
|
|
29
|
+
readonly enforcementClass: "canonical";
|
|
30
|
+
readonly category: "integrity";
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "required-fields";
|
|
33
|
+
readonly description: "All entities must have required fields";
|
|
34
|
+
readonly enforcementClass: "canonical";
|
|
35
|
+
readonly category: "integrity";
|
|
36
|
+
}, {
|
|
37
|
+
readonly name: "deprecated-adr-no-successor";
|
|
38
|
+
readonly description: "Deprecated ADRs must have a successor ADR that supersedes them";
|
|
39
|
+
readonly enforcementClass: "canonical";
|
|
40
|
+
readonly category: "lifecycle";
|
|
41
|
+
}, {
|
|
42
|
+
readonly name: "domain-contradictions";
|
|
43
|
+
readonly description: "Detect contradictions between requirements constraining the same fact";
|
|
44
|
+
readonly enforcementClass: "canonical";
|
|
45
|
+
readonly category: "integrity";
|
|
46
|
+
}, {
|
|
47
|
+
readonly name: "logic-coverage";
|
|
48
|
+
readonly description: "Require every explicitly declared atomic requirement claim to be grounded by a linked strict-property or predicate fact";
|
|
49
|
+
readonly enforcementClass: "canonical";
|
|
50
|
+
readonly category: "integrity";
|
|
51
|
+
}, {
|
|
52
|
+
readonly name: "rule-safety";
|
|
53
|
+
readonly description: "Stored Logic IR rules use only the typed, bounded, stratified vocabulary";
|
|
54
|
+
readonly enforcementClass: "canonical";
|
|
55
|
+
readonly category: "integrity";
|
|
56
|
+
}, {
|
|
57
|
+
readonly name: "rule-verifiability";
|
|
58
|
+
readonly description: "Requirement rule links resolve to safe rules and registered rule schemas";
|
|
59
|
+
readonly enforcementClass: "canonical";
|
|
60
|
+
readonly category: "integrity";
|
|
61
|
+
}, {
|
|
62
|
+
readonly name: "query-plan-safety";
|
|
63
|
+
readonly description: "Detect Prolog validation clauses that place negation before generator calls";
|
|
64
|
+
readonly enforcementClass: "canonical";
|
|
65
|
+
readonly category: "integrity";
|
|
66
|
+
}, {
|
|
67
|
+
readonly name: "req-status-vocabulary";
|
|
68
|
+
readonly description: "Requirement statuses must use the canonical vocabulary (open, in_progress, closed; legacy: active, approved); ADR statuses such as accepted silently fall out of the proof ladder";
|
|
69
|
+
readonly enforcementClass: "canonical";
|
|
70
|
+
readonly category: "lifecycle";
|
|
71
|
+
}, {
|
|
72
|
+
readonly name: "strict-fact-shape";
|
|
73
|
+
readonly description: "Detect malformed strict facts (facts with fact_kind that are missing required fields)";
|
|
74
|
+
readonly enforcementClass: "advisory";
|
|
75
|
+
readonly category: "integrity";
|
|
76
|
+
}, {
|
|
77
|
+
readonly name: "strict-req-fact-pairing";
|
|
78
|
+
readonly description: "Detect requirements with incomplete strict subject/property fact pairing for contradiction-safe semantics";
|
|
79
|
+
readonly enforcementClass: "advisory";
|
|
80
|
+
readonly category: "integrity";
|
|
81
|
+
}, {
|
|
82
|
+
readonly name: "predicate-verifiability";
|
|
83
|
+
readonly description: "Detect requires_predicate links that do not target ground fact_kind: predicate facts";
|
|
84
|
+
readonly enforcementClass: "advisory";
|
|
85
|
+
readonly category: "integrity";
|
|
86
|
+
}, {
|
|
87
|
+
readonly name: "strict-readiness";
|
|
88
|
+
readonly description: "Report strict contradiction-readiness levels for requirements that are still prose-only or otherwise not contradiction-ready";
|
|
89
|
+
readonly enforcementClass: "migration";
|
|
90
|
+
readonly category: "integrity";
|
|
91
|
+
}, {
|
|
92
|
+
readonly name: "semantic-completeness";
|
|
93
|
+
readonly description: "Every inventoried assertive proposition is modeled or explicitly classified";
|
|
94
|
+
readonly enforcementClass: "migration";
|
|
95
|
+
readonly category: "integrity";
|
|
96
|
+
}];
|
|
97
|
+
//# sourceMappingURL=rule-registry.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-registry.generated.d.ts","sourceRoot":"","sources":["../../src/utils/rule-registry.generated.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmIlB,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Kibi — repo-local, per-branch, queryable long-term memory for software projects
|
|
3
|
+
* Copyright (C) 2026 Piotr Franczyk
|
|
4
|
+
*
|
|
5
|
+
* This file is generated by scripts/generate-rule-registry.mjs from
|
|
6
|
+
* packages/core/schema/rule-registry.json. Do not edit it directly; edit the
|
|
7
|
+
* JSON source and regenerate.
|
|
8
|
+
*/
|
|
9
|
+
// implements REQ-006
|
|
10
|
+
export const GENERATED_RULES = [
|
|
11
|
+
{
|
|
12
|
+
name: "must-priority-coverage",
|
|
13
|
+
description: "Every must-priority requirement must have a scenario and a test",
|
|
14
|
+
enforcementClass: "canonical",
|
|
15
|
+
category: "coverage",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "symbol-coverage",
|
|
19
|
+
description: "Production symbols need qualifying coverage via covered_by plus a canonical requirement/scenario test path",
|
|
20
|
+
enforcementClass: "canonical",
|
|
21
|
+
category: "coverage",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "symbol-traceability",
|
|
25
|
+
description: "Production symbols must directly implement requirements for ownership; covered_by is coverage only and executable_for is test identity only",
|
|
26
|
+
enforcementClass: "canonical",
|
|
27
|
+
category: "traceability",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "no-dangling-refs",
|
|
31
|
+
description: "All relationship targets must exist in the KB",
|
|
32
|
+
enforcementClass: "canonical",
|
|
33
|
+
category: "integrity",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "source-relationship-parity",
|
|
37
|
+
description: "Authored Markdown and relationship-shard edges must exactly match the compiled KB",
|
|
38
|
+
enforcementClass: "canonical",
|
|
39
|
+
category: "integrity",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "no-cycles",
|
|
43
|
+
description: "No circular dependency chains in requirements",
|
|
44
|
+
enforcementClass: "canonical",
|
|
45
|
+
category: "integrity",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "required-fields",
|
|
49
|
+
description: "All entities must have required fields",
|
|
50
|
+
enforcementClass: "canonical",
|
|
51
|
+
category: "integrity",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "deprecated-adr-no-successor",
|
|
55
|
+
description: "Deprecated ADRs must have a successor ADR that supersedes them",
|
|
56
|
+
enforcementClass: "canonical",
|
|
57
|
+
category: "lifecycle",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "domain-contradictions",
|
|
61
|
+
description: "Detect contradictions between requirements constraining the same fact",
|
|
62
|
+
enforcementClass: "canonical",
|
|
63
|
+
category: "integrity",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "logic-coverage",
|
|
67
|
+
description: "Require every explicitly declared atomic requirement claim to be grounded by a linked strict-property or predicate fact",
|
|
68
|
+
enforcementClass: "canonical",
|
|
69
|
+
category: "integrity",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "rule-safety",
|
|
73
|
+
description: "Stored Logic IR rules use only the typed, bounded, stratified vocabulary",
|
|
74
|
+
enforcementClass: "canonical",
|
|
75
|
+
category: "integrity",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "rule-verifiability",
|
|
79
|
+
description: "Requirement rule links resolve to safe rules and registered rule schemas",
|
|
80
|
+
enforcementClass: "canonical",
|
|
81
|
+
category: "integrity",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: "query-plan-safety",
|
|
85
|
+
description: "Detect Prolog validation clauses that place negation before generator calls",
|
|
86
|
+
enforcementClass: "canonical",
|
|
87
|
+
category: "integrity",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: "req-status-vocabulary",
|
|
91
|
+
description: "Requirement statuses must use the canonical vocabulary (open, in_progress, closed; legacy: active, approved); ADR statuses such as accepted silently fall out of the proof ladder",
|
|
92
|
+
enforcementClass: "canonical",
|
|
93
|
+
category: "lifecycle",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: "strict-fact-shape",
|
|
97
|
+
description: "Detect malformed strict facts (facts with fact_kind that are missing required fields)",
|
|
98
|
+
enforcementClass: "advisory",
|
|
99
|
+
category: "integrity",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: "strict-req-fact-pairing",
|
|
103
|
+
description: "Detect requirements with incomplete strict subject/property fact pairing for contradiction-safe semantics",
|
|
104
|
+
enforcementClass: "advisory",
|
|
105
|
+
category: "integrity",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: "predicate-verifiability",
|
|
109
|
+
description: "Detect requires_predicate links that do not target ground fact_kind: predicate facts",
|
|
110
|
+
enforcementClass: "advisory",
|
|
111
|
+
category: "integrity",
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: "strict-readiness",
|
|
115
|
+
description: "Report strict contradiction-readiness levels for requirements that are still prose-only or otherwise not contradiction-ready",
|
|
116
|
+
enforcementClass: "migration",
|
|
117
|
+
category: "integrity",
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: "semantic-completeness",
|
|
121
|
+
description: "Every inventoried assertive proposition is modeled or explicitly classified",
|
|
122
|
+
enforcementClass: "migration",
|
|
123
|
+
category: "integrity",
|
|
124
|
+
},
|
|
125
|
+
];
|
|
@@ -16,120 +16,19 @@
|
|
|
16
16
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
19
|
+
* Central registry of KB check rules.
|
|
20
|
+
*
|
|
21
|
+
* Kibi — not the repository — owns each rule's enforcement class. Projects
|
|
22
|
+
* can no longer disable canonical checks. `--rules` remains an
|
|
23
|
+
* invocation-time diagnostic selector only and never persists policy.
|
|
24
|
+
*
|
|
25
|
+
* RULES itself is generated from packages/core/schema/rule-registry.json by
|
|
26
|
+
* scripts/generate-rule-registry.mjs; that JSON is the single editing point
|
|
27
|
+
* shared with the kb_check input enum and the Prolog rule_registry facts.
|
|
21
28
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
name: "must-priority-coverage",
|
|
26
|
-
description: "Every must-priority requirement must have a scenario and a test",
|
|
27
|
-
enforcementClass: "canonical",
|
|
28
|
-
category: "coverage",
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: "symbol-coverage",
|
|
32
|
-
description: "Production symbols need qualifying coverage via covered_by plus a canonical requirement/scenario test path",
|
|
33
|
-
enforcementClass: "canonical",
|
|
34
|
-
category: "coverage",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "symbol-traceability",
|
|
38
|
-
description: "Production symbols must directly implement requirements for ownership; covered_by is coverage only and executable_for is test identity only",
|
|
39
|
-
enforcementClass: "canonical",
|
|
40
|
-
category: "traceability",
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: "no-dangling-refs",
|
|
44
|
-
description: "All relationship targets must exist in the KB",
|
|
45
|
-
enforcementClass: "canonical",
|
|
46
|
-
category: "integrity",
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "source-relationship-parity",
|
|
50
|
-
description: "Authored Markdown and relationship-shard edges must exactly match the compiled KB",
|
|
51
|
-
enforcementClass: "canonical",
|
|
52
|
-
category: "integrity",
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: "no-cycles",
|
|
56
|
-
description: "No circular dependency chains in requirements",
|
|
57
|
-
enforcementClass: "canonical",
|
|
58
|
-
category: "integrity",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: "required-fields",
|
|
62
|
-
description: "All entities must have required fields",
|
|
63
|
-
enforcementClass: "canonical",
|
|
64
|
-
category: "integrity",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
name: "deprecated-adr-no-successor",
|
|
68
|
-
description: "Deprecated ADRs must have a successor ADR that supersedes them",
|
|
69
|
-
enforcementClass: "canonical",
|
|
70
|
-
category: "lifecycle",
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: "domain-contradictions",
|
|
74
|
-
description: "Detect contradictions between requirements constraining the same fact",
|
|
75
|
-
enforcementClass: "canonical",
|
|
76
|
-
category: "integrity",
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: "logic-coverage",
|
|
80
|
-
description: "Require every explicitly declared atomic requirement claim to be grounded by a linked strict-property or predicate fact",
|
|
81
|
-
enforcementClass: "canonical",
|
|
82
|
-
category: "integrity",
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: "rule-safety",
|
|
86
|
-
description: "Stored Logic IR rules use only the typed, bounded, stratified vocabulary",
|
|
87
|
-
enforcementClass: "canonical",
|
|
88
|
-
category: "integrity",
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
name: "rule-verifiability",
|
|
92
|
-
description: "Requirement rule links resolve to safe rules and registered rule schemas",
|
|
93
|
-
enforcementClass: "canonical",
|
|
94
|
-
category: "integrity",
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: "query-plan-safety",
|
|
98
|
-
description: "Detect Prolog validation clauses that place negation before generator calls",
|
|
99
|
-
enforcementClass: "canonical",
|
|
100
|
-
category: "integrity",
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: "strict-fact-shape",
|
|
104
|
-
description: "Detect malformed strict facts (facts with fact_kind that are missing required fields)",
|
|
105
|
-
enforcementClass: "advisory",
|
|
106
|
-
category: "integrity",
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: "strict-req-fact-pairing",
|
|
110
|
-
description: "Detect requirements with incomplete strict subject/property fact pairing for contradiction-safe semantics",
|
|
111
|
-
enforcementClass: "advisory",
|
|
112
|
-
category: "integrity",
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: "predicate-verifiability",
|
|
116
|
-
description: "Detect requires_predicate links that do not target ground fact_kind: predicate facts",
|
|
117
|
-
enforcementClass: "advisory",
|
|
118
|
-
category: "integrity",
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
name: "strict-readiness",
|
|
122
|
-
description: "Report strict contradiction-readiness levels for requirements that are still prose-only or otherwise not contradiction-ready",
|
|
123
|
-
enforcementClass: "migration",
|
|
124
|
-
category: "integrity",
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
name: "semantic-completeness",
|
|
128
|
-
description: "Every inventoried assertive proposition is modeled or explicitly classified",
|
|
129
|
-
enforcementClass: "migration",
|
|
130
|
-
category: "integrity",
|
|
131
|
-
},
|
|
132
|
-
];
|
|
29
|
+
import { GENERATED_RULES } from "./rule-registry.generated.js";
|
|
30
|
+
/** All known check rules, generated from the shared registry JSON. */
|
|
31
|
+
export const RULES = GENERATED_RULES;
|
|
133
32
|
const RULES_BY_NAME = new Map(RULES.map((rule) => [rule.name, rule]));
|
|
134
33
|
/**
|
|
135
34
|
* Set of all rule names for quick lookups.
|
|
@@ -56,5 +56,6 @@ export declare function normalizePropertyKey(value: string): string;
|
|
|
56
56
|
export declare function buildStableRequirementIds(claim: SemanticClaim): StableRequirementIds;
|
|
57
57
|
export declare function buildStrictWriteSet(input: StrictModelInput): StrictWriteSet;
|
|
58
58
|
export declare function modelRequirementClaims(inputs: ReadonlyArray<StrictModelInput>): StrictWriteSet[];
|
|
59
|
+
export declare function normalizeTextRef(provenance: string | undefined, source: string): string;
|
|
59
60
|
export {};
|
|
60
61
|
//# sourceMappingURL=strict-modeling.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strict-modeling.d.ts","sourceRoot":"","sources":["../../src/utils/strict-modeling.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7D,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,gBAAgB,GAAG,OAAO,CAC7B,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,UAAU,CAC3D,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,UAAU,CACzB,KAAK,SAAS,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,EAC7C,WAAW,SAAS,gBAAgB,GAAG,gBAAgB;IAEvD,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,gBAAgB,EAChB,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CACjD,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,yBAAyB;IACjC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,yBAAyB,GAAG,mBAAmB,CAAC;AAE7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBzD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe1D;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,GACnB,oBAAoB,CAwBtB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAsH3E;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACtC,cAAc,EAAE,CAkBlB"}
|
|
1
|
+
{"version":3,"file":"strict-modeling.d.ts","sourceRoot":"","sources":["../../src/utils/strict-modeling.ts"],"names":[],"mappings":"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"}
|
|
@@ -232,7 +232,7 @@ function normalizeStatement(statement) {
|
|
|
232
232
|
}
|
|
233
233
|
return normalized;
|
|
234
234
|
}
|
|
235
|
-
function normalizeTextRef(provenance, source) {
|
|
235
|
+
export function normalizeTextRef(provenance, source) {
|
|
236
236
|
const value = provenance?.trim() || source.trim();
|
|
237
237
|
if (!value) {
|
|
238
238
|
throw new Error("Strict modeling requires claim provenance or source");
|