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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"full-kb-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/full-kb-quality.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"full-kb-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/full-kb-quality.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAatC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAWjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASpD,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAmgBF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,GAClD,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA0D7B;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,OAAO,GAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAM/C;AA2ID,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAkCvC"}
|
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { parseEntityFromList, parseListOfLists, parseTriples, } from "../../prolog/codec.js";
|
|
3
|
+
import { normalizeEntityId, parseAtomList, parseEntityFromList, parseListOfLists, parseTriples, } from "../../prolog/codec.js";
|
|
4
4
|
import { runOperationJsonQuery, toPrologAtom, toPrologList, } from "../operations/prolog-json.js";
|
|
5
|
+
import { PROOF_RECEIPT_MAX_AGE_SECONDS } from "../proof-receipt.js";
|
|
6
|
+
import relationshipSchema from "../schemas/relationship.js";
|
|
5
7
|
import { analyzeTelemetryAcceptance, createTelemetryAcceptanceDiagnostics, parseTelemetryUsageLog, } from "../telemetry-acceptance.js";
|
|
6
|
-
import { VERIFICATION_RECEIPT_MAX_AGE_SECONDS } from "../verification-receipt.js";
|
|
7
8
|
import { createCoverageDepthQualityDiagnostics } from "./coverage-depth-quality.js";
|
|
8
9
|
import { createRequirementQualityDiagnostics } from "./requirement-quality.js";
|
|
9
10
|
import { createSymbolQualityDiagnostics } from "./symbol-quality.js";
|
|
10
|
-
const RELATIONSHIP_TYPES =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"verified_by",
|
|
15
|
-
"validates",
|
|
16
|
-
"implements",
|
|
17
|
-
"covered_by",
|
|
18
|
-
"constrained_by",
|
|
19
|
-
"constrains",
|
|
20
|
-
"requires_property",
|
|
21
|
-
"requires_predicate",
|
|
22
|
-
"guards",
|
|
23
|
-
"publishes",
|
|
24
|
-
"consumes",
|
|
25
|
-
"supersedes",
|
|
26
|
-
"relates_to",
|
|
27
|
-
];
|
|
11
|
+
const RELATIONSHIP_TYPES = relationshipSchema.properties.type.enum;
|
|
12
|
+
const ENTITY_BATCH_SIZE = 32;
|
|
13
|
+
const PROLOG_OUTPUT_CAPACITY_MARKER = "Query exceeded bounded Prolog output capacity (ENOBUFS)";
|
|
14
|
+
const ENTITY_IDS_QUERY = "findall(Id, kb_entity(Id, _, _), Ids)";
|
|
28
15
|
function stringField(entity, key) {
|
|
29
16
|
const value = entity[key];
|
|
30
17
|
return typeof value === "string" ? value : "";
|
|
@@ -43,6 +30,16 @@ function optionalStringArrayField(entity, key) {
|
|
|
43
30
|
return undefined;
|
|
44
31
|
return value.map((item) => String(item));
|
|
45
32
|
}
|
|
33
|
+
function optionalBooleanField(entity, key) {
|
|
34
|
+
const value = entity[key];
|
|
35
|
+
return typeof value === "boolean" ? value : undefined;
|
|
36
|
+
}
|
|
37
|
+
function optionalObjectField(entity, key) {
|
|
38
|
+
const value = entity[key];
|
|
39
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
40
|
+
? value
|
|
41
|
+
: undefined;
|
|
42
|
+
}
|
|
46
43
|
function toExtractedEntity(entity) {
|
|
47
44
|
const extracted = {
|
|
48
45
|
id: stringField(entity, "id"),
|
|
@@ -74,6 +71,27 @@ function toExtractedEntity(entity) {
|
|
|
74
71
|
const logicClaims = optionalStringArrayField(entity, "logic_claims");
|
|
75
72
|
if (logicClaims !== undefined)
|
|
76
73
|
extracted.logic_claims = logicClaims;
|
|
74
|
+
const semanticClauses = optionalStringArrayField(entity, "semantic_clauses");
|
|
75
|
+
if (semanticClauses !== undefined)
|
|
76
|
+
extracted.semantic_clauses = semanticClauses;
|
|
77
|
+
const semanticInventoryVersion = optionalStringField(entity, "semantic_inventory_version");
|
|
78
|
+
if (semanticInventoryVersion === "kibi.semantic-inventory.v1") {
|
|
79
|
+
extracted.semantic_inventory_version = semanticInventoryVersion;
|
|
80
|
+
}
|
|
81
|
+
const semanticSourceField = optionalStringField(entity, "semantic_source_field");
|
|
82
|
+
if (semanticSourceField === "semantic_text" ||
|
|
83
|
+
semanticSourceField === "text_ref" ||
|
|
84
|
+
semanticSourceField === "title") {
|
|
85
|
+
extracted.semantic_source_field = semanticSourceField;
|
|
86
|
+
}
|
|
87
|
+
const semanticSourceHash = optionalStringField(entity, "semantic_source_hash");
|
|
88
|
+
if (semanticSourceHash !== undefined) {
|
|
89
|
+
extracted.semantic_source_hash = semanticSourceHash;
|
|
90
|
+
}
|
|
91
|
+
const semanticInventory = entity.semantic_inventory;
|
|
92
|
+
if (Array.isArray(semanticInventory)) {
|
|
93
|
+
extracted.semantic_inventory = semanticInventory;
|
|
94
|
+
}
|
|
77
95
|
const granularityReason = optionalStringField(entity, "granularity_reason");
|
|
78
96
|
if (granularityReason !== undefined) {
|
|
79
97
|
extracted.granularity_reason = granularityReason;
|
|
@@ -90,6 +108,23 @@ function toExtractedEntity(entity) {
|
|
|
90
108
|
verificationScope === "end_to_end") {
|
|
91
109
|
extracted.verification_scope = verificationScope;
|
|
92
110
|
}
|
|
111
|
+
const verificationPerspective = optionalStringField(entity, "verification_perspective");
|
|
112
|
+
if (verificationPerspective === "internal" ||
|
|
113
|
+
verificationPerspective === "consumer") {
|
|
114
|
+
extracted.verification_perspective = verificationPerspective;
|
|
115
|
+
}
|
|
116
|
+
const proofContract = optionalObjectField(entity, "proof_contract");
|
|
117
|
+
if (proofContract !== undefined) {
|
|
118
|
+
extracted.proof_contract = proofContract;
|
|
119
|
+
}
|
|
120
|
+
const proofBindings = entity.proof_bindings;
|
|
121
|
+
if (Array.isArray(proofBindings)) {
|
|
122
|
+
extracted.proof_bindings = proofBindings;
|
|
123
|
+
}
|
|
124
|
+
const proofReceipts = entity.proof_receipts;
|
|
125
|
+
if (Array.isArray(proofReceipts)) {
|
|
126
|
+
extracted.proof_receipts = proofReceipts;
|
|
127
|
+
}
|
|
93
128
|
const sourceLine = optionalNumberField(entity, "sourceLine");
|
|
94
129
|
if (sourceLine !== undefined)
|
|
95
130
|
extracted.sourceLine = sourceLine;
|
|
@@ -108,25 +143,80 @@ function toExtractedEntity(entity) {
|
|
|
108
143
|
factKind === "observation" ||
|
|
109
144
|
factKind === "meta" ||
|
|
110
145
|
factKind === "predicate_schema" ||
|
|
111
|
-
factKind === "predicate"
|
|
146
|
+
factKind === "predicate" ||
|
|
147
|
+
factKind === "rule_schema" ||
|
|
148
|
+
factKind === "rule") {
|
|
112
149
|
extracted.fact_kind = factKind;
|
|
113
150
|
}
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
151
|
+
for (const field of [
|
|
152
|
+
"subject_key",
|
|
153
|
+
"property_key",
|
|
154
|
+
"value_string",
|
|
155
|
+
"unit",
|
|
156
|
+
"scope",
|
|
157
|
+
"valid_from",
|
|
158
|
+
"valid_to",
|
|
159
|
+
"canonical_key",
|
|
160
|
+
"claim_key",
|
|
161
|
+
"claim_text",
|
|
162
|
+
"predicate_name",
|
|
163
|
+
"predicate_namespace",
|
|
164
|
+
"rule_hash",
|
|
165
|
+
"rule_schema_id",
|
|
166
|
+
"rule_name",
|
|
167
|
+
"semantic_key",
|
|
168
|
+
]) {
|
|
169
|
+
const value = optionalStringField(entity, field);
|
|
170
|
+
if (value !== undefined)
|
|
171
|
+
extracted[field] = value;
|
|
126
172
|
}
|
|
173
|
+
const operator = optionalStringField(entity, "operator");
|
|
174
|
+
if (operator === "eq" ||
|
|
175
|
+
operator === "neq" ||
|
|
176
|
+
operator === "lt" ||
|
|
177
|
+
operator === "lte" ||
|
|
178
|
+
operator === "gt" ||
|
|
179
|
+
operator === "gte") {
|
|
180
|
+
extracted.operator = operator;
|
|
181
|
+
}
|
|
182
|
+
const valueType = optionalStringField(entity, "value_type");
|
|
183
|
+
if (valueType === "string" ||
|
|
184
|
+
valueType === "int" ||
|
|
185
|
+
valueType === "number" ||
|
|
186
|
+
valueType === "bool") {
|
|
187
|
+
extracted.value_type = valueType;
|
|
188
|
+
}
|
|
189
|
+
const polarity = optionalStringField(entity, "polarity");
|
|
190
|
+
if (polarity === "require" ||
|
|
191
|
+
polarity === "forbid" ||
|
|
192
|
+
polarity === "assert" ||
|
|
193
|
+
polarity === "deny") {
|
|
194
|
+
extracted.polarity = polarity;
|
|
195
|
+
}
|
|
196
|
+
const valueInt = optionalNumberField(entity, "value_int");
|
|
197
|
+
if (valueInt !== undefined)
|
|
198
|
+
extracted.value_int = valueInt;
|
|
199
|
+
const valueNumber = optionalNumberField(entity, "value_number");
|
|
200
|
+
if (valueNumber !== undefined)
|
|
201
|
+
extracted.value_number = valueNumber;
|
|
127
202
|
const predicateArity = optionalNumberField(entity, "predicate_arity");
|
|
128
203
|
if (predicateArity !== undefined)
|
|
129
204
|
extracted.predicate_arity = predicateArity;
|
|
205
|
+
const claimSpanStart = optionalNumberField(entity, "claim_span_start");
|
|
206
|
+
if (claimSpanStart !== undefined)
|
|
207
|
+
extracted.claim_span_start = claimSpanStart;
|
|
208
|
+
const claimSpanEnd = optionalNumberField(entity, "claim_span_end");
|
|
209
|
+
if (claimSpanEnd !== undefined)
|
|
210
|
+
extracted.claim_span_end = claimSpanEnd;
|
|
211
|
+
const valueBool = optionalBooleanField(entity, "value_bool");
|
|
212
|
+
if (valueBool !== undefined)
|
|
213
|
+
extracted.value_bool = valueBool;
|
|
214
|
+
const closedWorld = optionalBooleanField(entity, "closed_world");
|
|
215
|
+
if (closedWorld !== undefined)
|
|
216
|
+
extracted.closed_world = closedWorld;
|
|
217
|
+
const ruleIr = optionalObjectField(entity, "rule_ir");
|
|
218
|
+
if (ruleIr !== undefined)
|
|
219
|
+
extracted.rule_ir = ruleIr;
|
|
130
220
|
for (const field of [
|
|
131
221
|
"argument_names",
|
|
132
222
|
"argument_types",
|
|
@@ -145,18 +235,200 @@ function sourceFileFor(entity) {
|
|
|
145
235
|
return (optionalStringField(entity, "sourceFile") ??
|
|
146
236
|
optionalStringField(entity, "source_file"));
|
|
147
237
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
238
|
+
class BoundedEntityProjectionError extends Error {
|
|
239
|
+
constructor(message) {
|
|
240
|
+
super(message);
|
|
241
|
+
this.name = "BoundedEntityProjectionError";
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function isOutputCapacityError(error) {
|
|
245
|
+
return error?.includes(PROLOG_OUTPUT_CAPACITY_MARKER) === true;
|
|
246
|
+
}
|
|
247
|
+
function parseAuthoritativeEntityIds(raw) {
|
|
248
|
+
const trimmed = raw.trim();
|
|
249
|
+
if (trimmed !== "[]" &&
|
|
250
|
+
(!trimmed.startsWith("[") || !trimmed.endsWith("]"))) {
|
|
251
|
+
throw new Error("Full KB entity ID enumeration returned malformed data");
|
|
252
|
+
}
|
|
253
|
+
const ids = parseAtomList(trimmed);
|
|
254
|
+
if (ids.some((id) => id.length === 0)) {
|
|
255
|
+
throw new Error("Full KB entity ID enumeration returned an empty ID");
|
|
256
|
+
}
|
|
257
|
+
return ids;
|
|
258
|
+
}
|
|
259
|
+
function validateEntityBatch(requestedIds, entities) {
|
|
260
|
+
const requested = new Set();
|
|
261
|
+
for (const id of requestedIds) {
|
|
262
|
+
const normalizedId = normalizeEntityId(id);
|
|
263
|
+
if (normalizedId.length === 0 || requested.has(normalizedId)) {
|
|
264
|
+
throw new Error("Full KB bounded entity projection returned duplicate or empty requested IDs");
|
|
265
|
+
}
|
|
266
|
+
requested.add(normalizedId);
|
|
267
|
+
}
|
|
268
|
+
const returned = new Map();
|
|
269
|
+
for (const entity of entities) {
|
|
270
|
+
const id = stringField(entity, "id");
|
|
271
|
+
const type = stringField(entity, "type");
|
|
272
|
+
const normalizedId = normalizeEntityId(id);
|
|
273
|
+
if (normalizedId.length === 0 || type.length === 0) {
|
|
274
|
+
throw new Error("Full KB bounded entity projection returned a malformed entity row");
|
|
275
|
+
}
|
|
276
|
+
if (!requested.has(normalizedId) || returned.has(normalizedId)) {
|
|
277
|
+
throw new Error(`Full KB bounded entity projection returned an unexpected entity ID: ${normalizedId}`);
|
|
278
|
+
}
|
|
279
|
+
returned.set(normalizedId, entity);
|
|
280
|
+
}
|
|
281
|
+
const missing = [...requested.keys()].filter((id) => !returned.has(id));
|
|
282
|
+
if (missing.length > 0) {
|
|
283
|
+
throw new Error(`Full KB bounded entity projection returned an incomplete page; missing ${missing.join(", ")}`);
|
|
284
|
+
}
|
|
285
|
+
return [...requested.keys()].map((id) => returned.get(id));
|
|
286
|
+
}
|
|
287
|
+
function validateIndexedEntityPage(entities, seenIds) {
|
|
288
|
+
const pageIds = new Set();
|
|
289
|
+
for (const entity of entities) {
|
|
290
|
+
const id = normalizeEntityId(stringField(entity, "id"));
|
|
291
|
+
const type = stringField(entity, "type");
|
|
292
|
+
if (id.length === 0 || type.length === 0) {
|
|
293
|
+
throw new Error("Full KB paginated entity projection returned a malformed entity row");
|
|
294
|
+
}
|
|
295
|
+
if (pageIds.has(id) || seenIds.has(id)) {
|
|
296
|
+
throw new Error(`Full KB paginated entity projection returned duplicate entity ID: ${id}`);
|
|
297
|
+
}
|
|
298
|
+
pageIds.add(id);
|
|
299
|
+
}
|
|
300
|
+
return [...entities];
|
|
301
|
+
}
|
|
302
|
+
function isOutputCapacityException(error) {
|
|
303
|
+
return isOutputCapacityError(error instanceof Error ? error.message : String(error));
|
|
304
|
+
}
|
|
305
|
+
async function loadIndexedEntityProjection(queryEntities) {
|
|
306
|
+
const entities = [];
|
|
307
|
+
const seenIds = new Set();
|
|
308
|
+
let offset = 0;
|
|
309
|
+
let pageSize = ENTITY_BATCH_SIZE;
|
|
310
|
+
let totalCount;
|
|
311
|
+
while (totalCount === undefined || offset < totalCount) {
|
|
312
|
+
let page;
|
|
313
|
+
try {
|
|
314
|
+
page = await queryEntities({ limit: pageSize, offset });
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
if (!isOutputCapacityException(error) || pageSize === 1) {
|
|
318
|
+
throw error;
|
|
319
|
+
}
|
|
320
|
+
pageSize = Math.ceil(pageSize / 2);
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
if (!Number.isInteger(page.count) ||
|
|
324
|
+
page.count < 0 ||
|
|
325
|
+
(totalCount !== undefined && page.count !== totalCount)) {
|
|
326
|
+
throw new Error("Full KB paginated entity projection returned an inconsistent count");
|
|
327
|
+
}
|
|
328
|
+
totalCount ??= page.count;
|
|
329
|
+
if (page.entities.length > pageSize) {
|
|
330
|
+
throw new Error("Full KB paginated entity projection returned an oversized page");
|
|
331
|
+
}
|
|
332
|
+
const pageEntities = validateIndexedEntityPage(page.entities, seenIds);
|
|
333
|
+
if (offset + pageEntities.length > totalCount) {
|
|
334
|
+
throw new Error("Full KB paginated entity projection returned more rows than its count");
|
|
335
|
+
}
|
|
336
|
+
if (pageEntities.length === 0 && offset < totalCount) {
|
|
337
|
+
throw new Error("Full KB paginated entity projection returned an incomplete page");
|
|
338
|
+
}
|
|
339
|
+
for (const entity of pageEntities) {
|
|
340
|
+
seenIds.add(normalizeEntityId(stringField(entity, "id")));
|
|
341
|
+
}
|
|
342
|
+
entities.push(...pageEntities);
|
|
343
|
+
offset += pageEntities.length;
|
|
344
|
+
if (offset < totalCount && pageEntities.length < pageSize) {
|
|
345
|
+
throw new Error("Full KB paginated entity projection returned an incomplete page");
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (entities.length !== totalCount) {
|
|
349
|
+
throw new Error("Full KB paginated entity projection returned an incomplete result");
|
|
350
|
+
}
|
|
351
|
+
return entities;
|
|
352
|
+
}
|
|
353
|
+
async function loadEntityBatch(prolog, ids) {
|
|
354
|
+
const idTerms = ids.map((id) => toPrologAtom(id)).join(",");
|
|
355
|
+
const result = await prolog.query(`findall([Id,Type,Props], (member(Id, [${idTerms}]), kb_entity(Id, Type, Props)), Results)`);
|
|
356
|
+
if (!result.success) {
|
|
357
|
+
const message = result.error ?? "Unknown error";
|
|
358
|
+
if (isOutputCapacityError(result.error)) {
|
|
359
|
+
throw new BoundedEntityProjectionError(message);
|
|
360
|
+
}
|
|
361
|
+
throw new Error(`Full KB bounded entity projection query failed: ${message}`);
|
|
362
|
+
}
|
|
363
|
+
const rawRows = result.bindings.Results;
|
|
364
|
+
if (rawRows === undefined) {
|
|
365
|
+
throw new Error("Full KB bounded entity projection query returned no Results binding");
|
|
366
|
+
}
|
|
367
|
+
return validateEntityBatch(ids, parseListOfLists(rawRows).map(parseEntityFromList));
|
|
368
|
+
}
|
|
369
|
+
async function loadEntityBatchAdaptively(prolog, ids) {
|
|
370
|
+
try {
|
|
371
|
+
return await loadEntityBatch(prolog, ids);
|
|
372
|
+
}
|
|
373
|
+
catch (error) {
|
|
374
|
+
if (!(error instanceof BoundedEntityProjectionError))
|
|
375
|
+
throw error;
|
|
376
|
+
if (ids.length === 1) {
|
|
377
|
+
throw new Error(`Full KB entity projection failed for ${ids[0]}: ${error.message}`);
|
|
378
|
+
}
|
|
379
|
+
const midpoint = Math.ceil(ids.length / 2);
|
|
380
|
+
const left = await loadEntityBatchAdaptively(prolog, ids.slice(0, midpoint));
|
|
381
|
+
const right = await loadEntityBatchAdaptively(prolog, ids.slice(midpoint));
|
|
382
|
+
return [...left, ...right];
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
async function loadBoundedEntityProjection(prolog) {
|
|
386
|
+
const idsResult = await prolog.query(ENTITY_IDS_QUERY);
|
|
387
|
+
if (!idsResult.success) {
|
|
388
|
+
throw new Error(`Full KB entity ID enumeration query failed: ${idsResult.error ?? "Unknown error"}`);
|
|
389
|
+
}
|
|
390
|
+
const rawIds = idsResult.bindings.Ids;
|
|
391
|
+
if (rawIds === undefined) {
|
|
392
|
+
throw new Error("Full KB entity ID enumeration query returned no Ids binding");
|
|
393
|
+
}
|
|
394
|
+
const ids = parseAuthoritativeEntityIds(rawIds);
|
|
395
|
+
const entities = [];
|
|
396
|
+
for (let offset = 0; offset < ids.length; offset += ENTITY_BATCH_SIZE) {
|
|
397
|
+
entities.push(...(await loadEntityBatchAdaptively(prolog, ids.slice(offset, offset + ENTITY_BATCH_SIZE))));
|
|
398
|
+
}
|
|
399
|
+
return entities;
|
|
400
|
+
}
|
|
401
|
+
export async function loadKbExtractionResults(prolog) {
|
|
402
|
+
let entities;
|
|
403
|
+
if (prolog.queryEntities !== undefined) {
|
|
404
|
+
entities = await loadIndexedEntityProjection(prolog.queryEntities.bind(prolog));
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
const entityResult = await prolog.query("findall([Id,Type,Props], kb_entity(Id, Type, Props), Results)");
|
|
408
|
+
if (entityResult.success) {
|
|
409
|
+
entities = entityResult.bindings.Results
|
|
410
|
+
? parseListOfLists(entityResult.bindings.Results).map(parseEntityFromList)
|
|
411
|
+
: [];
|
|
412
|
+
}
|
|
413
|
+
else if (isOutputCapacityError(entityResult.error)) {
|
|
414
|
+
entities = await loadBoundedEntityProjection(prolog);
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
throw new Error(`Full KB entity projection query failed: ${entityResult.error ?? "Unknown error"}`);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
153
420
|
const relationships = new Map();
|
|
154
421
|
for (const relationshipType of RELATIONSHIP_TYPES) {
|
|
155
422
|
const relResult = await prolog.query(`findall([From,To,'${relationshipType}'], kb_relationship(${relationshipType}, From, To), Rels)`);
|
|
423
|
+
if (!relResult.success) {
|
|
424
|
+
throw new Error(`Full KB relationship projection query failed for ${relationshipType}: ${relResult.error ?? "Unknown error"}`);
|
|
425
|
+
}
|
|
156
426
|
const rows = relResult.bindings.Rels
|
|
157
427
|
? parseTriples(relResult.bindings.Rels)
|
|
158
428
|
: [];
|
|
159
|
-
for (const [
|
|
429
|
+
for (const [rawFrom, rawTo, type] of rows) {
|
|
430
|
+
const from = normalizeEntityId(rawFrom);
|
|
431
|
+
const to = normalizeEntityId(rawTo);
|
|
160
432
|
const current = relationships.get(from) ?? [];
|
|
161
433
|
current.push({ from, to, type });
|
|
162
434
|
relationships.set(from, current);
|
|
@@ -174,30 +446,29 @@ async function loadKbExtractionResults(prolog) {
|
|
|
174
446
|
return result;
|
|
175
447
|
});
|
|
176
448
|
}
|
|
177
|
-
function
|
|
178
|
-
return Array.isArray(value) ? value.map(String) : undefined;
|
|
179
|
-
}
|
|
180
|
-
function proofStage(row) {
|
|
181
|
-
const stages = row.proofStages;
|
|
182
|
-
if (!stages || typeof stages !== "object" || Array.isArray(stages)) {
|
|
183
|
-
return undefined;
|
|
184
|
-
}
|
|
185
|
-
const passingE2e = stages.passingE2e;
|
|
449
|
+
export function passingE2eStage(passingE2e) {
|
|
186
450
|
return passingE2e &&
|
|
187
451
|
typeof passingE2e === "object" &&
|
|
188
452
|
!Array.isArray(passingE2e)
|
|
189
453
|
? passingE2e
|
|
190
454
|
: undefined;
|
|
191
455
|
}
|
|
192
|
-
|
|
193
|
-
|
|
456
|
+
function stringArrayField(value) {
|
|
457
|
+
return Array.isArray(value) ? value.map(String) : undefined;
|
|
458
|
+
}
|
|
459
|
+
async function loadCoverageProofEvidence(prolog, requirementCount, proofSnapshot, checkedAt) {
|
|
460
|
+
if (proofSnapshot === undefined ||
|
|
194
461
|
checkedAt === undefined ||
|
|
195
462
|
requirementCount === 0) {
|
|
196
463
|
return new Map();
|
|
197
464
|
}
|
|
198
465
|
let payload;
|
|
199
466
|
try {
|
|
200
|
-
|
|
467
|
+
// W1 push-down: the slim evidence projection returns only the fields the
|
|
468
|
+
// quality diagnostics consume, keeping the response far below the output
|
|
469
|
+
// capacity limit on large KBs (the full coverage report rows were the
|
|
470
|
+
// original ENOBUFS offender).
|
|
471
|
+
payload = await runOperationJsonQuery(prolog, "discovery.pl", `discovery:coverage_evidence_json(${toPrologList([])}, ${toPrologAtom(proofSnapshot)}, ${toPrologAtom(checkedAt)}, ${PROOF_RECEIPT_MAX_AGE_SECONDS}, JsonString)`, "Quality diagnostic coverage evidence");
|
|
201
472
|
}
|
|
202
473
|
catch {
|
|
203
474
|
// Quality diagnostics must fail closed when the optional proof readback is
|
|
@@ -209,23 +480,17 @@ async function loadCoverageProofEvidence(prolog, requirementCount, verificationS
|
|
|
209
480
|
const id = typeof row.id === "string" ? row.id : undefined;
|
|
210
481
|
if (id === undefined)
|
|
211
482
|
continue;
|
|
212
|
-
const
|
|
213
|
-
const proofGaps = stringArrayField(row.proofGaps);
|
|
214
|
-
const passingE2eTests = stringArrayField(passingE2e?.tests);
|
|
483
|
+
const passingE2eTests = stringArrayField(row.passingE2eTests) ?? [];
|
|
215
484
|
evidence.set(id, {
|
|
216
485
|
...(typeof row.proofStatus === "string"
|
|
217
486
|
? { proofStatus: row.proofStatus }
|
|
218
487
|
: {}),
|
|
219
|
-
...(typeof
|
|
220
|
-
? { passingE2eStatus:
|
|
488
|
+
...(typeof row.passingE2eStatus === "string"
|
|
489
|
+
? { passingE2eStatus: row.passingE2eStatus }
|
|
221
490
|
: {}),
|
|
222
|
-
|
|
223
|
-
...(
|
|
224
|
-
? {
|
|
225
|
-
receiptGapCodes: proofGaps.filter((gap) => gap.includes("verification_receipt") ||
|
|
226
|
-
gap.includes("verification_contract") ||
|
|
227
|
-
gap.includes("verification_snapshot")),
|
|
228
|
-
}
|
|
491
|
+
passingE2eTests,
|
|
492
|
+
...(Array.isArray(row.receiptGapCodes)
|
|
493
|
+
? { receiptGapCodes: row.receiptGapCodes.map(String) }
|
|
229
494
|
: {}),
|
|
230
495
|
});
|
|
231
496
|
}
|
|
@@ -283,7 +548,7 @@ export async function collectFullKbQualityDiagnostics(options) {
|
|
|
283
548
|
loadKbExtractionResults(options.prolog),
|
|
284
549
|
collectTelemetryDiagnostics(options.workspaceRoot, options.now ?? new Date()),
|
|
285
550
|
]);
|
|
286
|
-
const proofEvidence = await loadCoverageProofEvidence(options.prolog, manifestResults.filter((result) => result.entity.type === "req").length, options.
|
|
551
|
+
const proofEvidence = await loadCoverageProofEvidence(options.prolog, manifestResults.filter((result) => result.entity.type === "req").length, options.proofSnapshot, options.checkedAt);
|
|
287
552
|
const coverageDepthDiagnostics = createCoverageDepthQualityDiagnostics(manifestResults, proofEvidence);
|
|
288
553
|
const diagnostics = [
|
|
289
554
|
...telemetryDiagnostics,
|