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
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
validateUpsertSpec,
|
|
17
17
|
} from "./specs/mutation.js";
|
|
18
18
|
import { applyPlanSpec, compileIntentSpec } from "./specs/planning.js";
|
|
19
|
+
import { ingestProofSpec } from "./specs/proof.js";
|
|
19
20
|
import { coverageSpec, findGapsSpec, graphSpec } from "./specs/reporting.js";
|
|
20
21
|
import { semanticAdvisorSpec } from "./specs/semantic.js";
|
|
21
22
|
import {
|
|
@@ -24,7 +25,6 @@ import {
|
|
|
24
25
|
skillsReadSpec,
|
|
25
26
|
} from "./specs/skills.js";
|
|
26
27
|
import { sparqlRemoteSpec } from "./specs/sparql.js";
|
|
27
|
-
import { ingestVerificationSpec } from "./specs/verification.js";
|
|
28
28
|
import type {
|
|
29
29
|
OperationName,
|
|
30
30
|
OperationSpec,
|
|
@@ -52,7 +52,7 @@ export const OPERATION_CATALOG = [
|
|
|
52
52
|
sparqlRemoteSpec,
|
|
53
53
|
compileIntentSpec,
|
|
54
54
|
applyPlanSpec,
|
|
55
|
-
|
|
55
|
+
ingestProofSpec,
|
|
56
56
|
] as const satisfies readonly OperationSpec[];
|
|
57
57
|
|
|
58
58
|
function envelopeSchema(
|
|
@@ -183,14 +183,20 @@ const SPECS_BY_NAME: ReadonlyMap<OperationName, ResolvedOperationSpec> =
|
|
|
183
183
|
);
|
|
184
184
|
|
|
185
185
|
// implements REQ-kibi-operation-interface-parity
|
|
186
|
-
export function
|
|
187
|
-
|
|
186
|
+
export function requireKnownSpec(
|
|
187
|
+
spec: ResolvedOperationSpec | undefined,
|
|
188
|
+
name: OperationName,
|
|
189
|
+
): ResolvedOperationSpec {
|
|
188
190
|
if (!spec) {
|
|
189
191
|
throw new RangeError(`Unknown Kibi operation: ${name}`);
|
|
190
192
|
}
|
|
191
193
|
return spec;
|
|
192
194
|
}
|
|
193
195
|
|
|
196
|
+
export function getSpec(name: OperationName): ResolvedOperationSpec {
|
|
197
|
+
return requireKnownSpec(SPECS_BY_NAME.get(name), name);
|
|
198
|
+
}
|
|
199
|
+
|
|
194
200
|
// implements REQ-kibi-operation-interface-parity
|
|
195
201
|
export function listSpecs(): readonly ResolvedOperationSpec[] {
|
|
196
202
|
return OPERATION_CATALOG.map(withContractDefaults);
|
|
@@ -127,7 +127,7 @@ export async function executeCheck(
|
|
|
127
127
|
const workspaceRoot = args.workspaceRoot ?? context.workspaceRoot;
|
|
128
128
|
const prolog = requireProlog(context);
|
|
129
129
|
const snapshotEvidence = await readWorkspaceSnapshot(context);
|
|
130
|
-
const
|
|
130
|
+
const proofSnapshot = snapshotEvidence.available
|
|
131
131
|
? snapshotEvidence.snapshot.hash
|
|
132
132
|
: undefined;
|
|
133
133
|
const checkedAt = context.clock().toISOString();
|
|
@@ -135,7 +135,7 @@ export async function executeCheck(
|
|
|
135
135
|
// version. `args.rules` is an invocation-time diagnostic selector only.
|
|
136
136
|
const rulesAllowlist = resolveCheckRules(args);
|
|
137
137
|
const hasExplicitRules = args.rules !== undefined;
|
|
138
|
-
const impactResult = analyzeKbCheckImpact(workspaceRoot, args);
|
|
138
|
+
const impactResult = await analyzeKbCheckImpact(workspaceRoot, args);
|
|
139
139
|
const impactQualityDiagnostics = qualityDiagnosticsFromImpact(impactResult);
|
|
140
140
|
const maxDiagnosticsOption =
|
|
141
141
|
args.maxDiagnostics !== undefined
|
|
@@ -152,9 +152,7 @@ export async function executeCheck(
|
|
|
152
152
|
: await collectFullKbQualityDiagnostics({
|
|
153
153
|
prolog,
|
|
154
154
|
workspaceRoot,
|
|
155
|
-
...(
|
|
156
|
-
? { verificationSnapshot }
|
|
157
|
-
: {}),
|
|
155
|
+
...(proofSnapshot !== undefined ? { proofSnapshot } : {}),
|
|
158
156
|
checkedAt,
|
|
159
157
|
now: context.clock(),
|
|
160
158
|
...maxDiagnosticsOption,
|
|
@@ -229,9 +227,7 @@ export async function executeCheck(
|
|
|
229
227
|
prolog,
|
|
230
228
|
hardViolationEntityIds: new Set(violations.map((v) => v.entityId)),
|
|
231
229
|
workspaceRoot,
|
|
232
|
-
...(
|
|
233
|
-
? { verificationSnapshot }
|
|
234
|
-
: {}),
|
|
230
|
+
...(proofSnapshot !== undefined ? { proofSnapshot } : {}),
|
|
235
231
|
checkedAt,
|
|
236
232
|
now: context.clock(),
|
|
237
233
|
...maxDiagnosticsOption,
|
|
@@ -144,10 +144,10 @@ export function hasImpactOptions(args: CheckInput): boolean {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
// implements REQ-mcp-tool-check
|
|
147
|
-
export function analyzeKbCheckImpact(
|
|
147
|
+
export async function analyzeKbCheckImpact(
|
|
148
148
|
workspaceRoot: string,
|
|
149
149
|
args: CheckInput,
|
|
150
|
-
): ChangedFileImpactResult | undefined {
|
|
150
|
+
): Promise<ChangedFileImpactResult | undefined> {
|
|
151
151
|
if (!hasImpactOptions(args)) {
|
|
152
152
|
return undefined;
|
|
153
153
|
}
|
|
@@ -33,6 +33,25 @@ function objectData(
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
/**
|
|
37
|
+
* kibi.job.v1 receipt returned by async-mode operations (kb_check with
|
|
38
|
+
* `async: true`) instead of the synchronous payload. Agents poll
|
|
39
|
+
* kb_job_status with the jobId. Declared as a union member of the operation
|
|
40
|
+
* data contract so hosts validating tool output against the declared schema
|
|
41
|
+
* accept the receipt without weakening the synchronous payload contract.
|
|
42
|
+
*/
|
|
43
|
+
const jobReceiptData: OperationJsonSchema = objectData(
|
|
44
|
+
{
|
|
45
|
+
kibiProtocol: { const: 1 },
|
|
46
|
+
jobVersion: { const: "kibi.job.v1" },
|
|
47
|
+
jobId: { type: "string" },
|
|
48
|
+
tool: { type: "string" },
|
|
49
|
+
status: { type: "string" },
|
|
50
|
+
pollWith: { const: "kb_job_status" },
|
|
51
|
+
},
|
|
52
|
+
["kibiProtocol", "jobVersion", "jobId", "tool", "status", "pollWith"],
|
|
53
|
+
);
|
|
54
|
+
|
|
36
55
|
const stringValue: OperationJsonSchema = { type: "string" };
|
|
37
56
|
const integerValue: OperationJsonSchema = { type: "integer" };
|
|
38
57
|
const numberValue: OperationJsonSchema = { type: "number" };
|
|
@@ -45,7 +64,9 @@ const stringArray: OperationJsonSchema = {
|
|
|
45
64
|
/** Preserve JSON Schema's nullable scalar/object representation in every
|
|
46
65
|
* generated consumer contract. Using a `type` union keeps the catalog
|
|
47
66
|
* readable and lets the MCP bridge round-trip the same wire schema. */
|
|
48
|
-
function
|
|
67
|
+
export function nullableJsonSchema(
|
|
68
|
+
schema: OperationJsonSchema,
|
|
69
|
+
): OperationJsonSchema {
|
|
49
70
|
const type = schema.type;
|
|
50
71
|
if (typeof type === "string") {
|
|
51
72
|
return { ...schema, type: [type, "null"] };
|
|
@@ -86,19 +107,23 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
|
|
|
86
107
|
syncState: stringValue,
|
|
87
108
|
kbPath: stringValue,
|
|
88
109
|
lastSyncSource: stringValue,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
110
|
+
attachedPath: stringValue,
|
|
111
|
+
attachedGeneration: stringValue,
|
|
112
|
+
attachedDev: integerValue,
|
|
113
|
+
attachedIno: integerValue,
|
|
114
|
+
proofSnapshot: stringValue,
|
|
115
|
+
proofSnapshotAvailable: booleanValue,
|
|
116
|
+
proofSnapshotDirty: booleanValue,
|
|
117
|
+
proofSnapshotFileCount: integerValue,
|
|
118
|
+
proofSnapshotVersion: stringValue,
|
|
119
|
+
proofSnapshotError: stringValue,
|
|
95
120
|
staleReasons: recordArray,
|
|
96
121
|
staleReasonCount: integerValue,
|
|
97
122
|
staleReasonsTruncated: booleanValue,
|
|
98
123
|
branchAttachment: recordValue,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
124
|
+
proofSnapshotChanges: recordArray,
|
|
125
|
+
proofSnapshotChangeCount: integerValue,
|
|
126
|
+
proofSnapshotChangesTruncated: booleanValue,
|
|
102
127
|
branchStore: recordValue,
|
|
103
128
|
engineStatus: recordValue,
|
|
104
129
|
schemaStatus: recordValue,
|
|
@@ -129,6 +154,7 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
|
|
|
129
154
|
kb_semantic_advisor: objectData({
|
|
130
155
|
receipt: recordValue,
|
|
131
156
|
warnings: stringArray,
|
|
157
|
+
capabilityPlugins: recordValue,
|
|
132
158
|
}),
|
|
133
159
|
kb_model_requirement: objectData({
|
|
134
160
|
statement: stringValue,
|
|
@@ -204,8 +230,8 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
|
|
|
204
230
|
valid: booleanValue,
|
|
205
231
|
errors: valueArray,
|
|
206
232
|
warnings: valueArray,
|
|
207
|
-
semanticAdvisor:
|
|
208
|
-
normalizedPreview:
|
|
233
|
+
semanticAdvisor: nullableJsonSchema(recordValue),
|
|
234
|
+
normalizedPreview: nullableJsonSchema(recordValue),
|
|
209
235
|
}),
|
|
210
236
|
kb_upsert: objectData({
|
|
211
237
|
created: integerValue,
|
|
@@ -234,18 +260,25 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
|
|
|
234
260
|
effectFailures: recordArray,
|
|
235
261
|
nextActions: recordArray,
|
|
236
262
|
}),
|
|
237
|
-
kb_check:
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
263
|
+
kb_check: {
|
|
264
|
+
description:
|
|
265
|
+
"Synchronous check payload, or a kibi.job.v1 receipt when async:true detached the check into a background job (poll kb_job_status with the jobId).",
|
|
266
|
+
anyOf: [
|
|
267
|
+
objectData({
|
|
268
|
+
violations: valueArray,
|
|
269
|
+
count: integerValue,
|
|
270
|
+
diagnostics: recordArray,
|
|
271
|
+
qualityDiagnostics: recordArray,
|
|
272
|
+
impactDiagnostics: recordArray,
|
|
273
|
+
sourceFiles: stringArray,
|
|
274
|
+
extractedSymbols: recordArray,
|
|
275
|
+
linkedEntities: recordArray,
|
|
276
|
+
nextActions: valueArray,
|
|
277
|
+
migrationPlan: recordValue,
|
|
278
|
+
}),
|
|
279
|
+
jobReceiptData,
|
|
280
|
+
],
|
|
281
|
+
},
|
|
249
282
|
kb_compile_intent: objectData({
|
|
250
283
|
version: stringValue,
|
|
251
284
|
planHash: stringValue,
|
|
@@ -259,6 +292,7 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
|
|
|
259
292
|
steps: valueArray,
|
|
260
293
|
sourceWrites: recordArray,
|
|
261
294
|
diagnostics: stringArray,
|
|
295
|
+
capabilityPlugins: recordValue,
|
|
262
296
|
}),
|
|
263
297
|
kb_apply_plan: objectData({
|
|
264
298
|
version: stringValue,
|
|
@@ -280,12 +314,14 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
|
|
|
280
314
|
effectFailures: recordArray,
|
|
281
315
|
nextActions: recordArray,
|
|
282
316
|
}),
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
317
|
+
kb_ingest_proof: objectData({
|
|
318
|
+
artifactDigest: stringValue,
|
|
319
|
+
environmentHash: stringValue,
|
|
320
|
+
integration: stringValue,
|
|
321
|
+
passed: integerValue,
|
|
322
|
+
failed: integerValue,
|
|
323
|
+
unchanged: integerValue,
|
|
324
|
+
results: recordArray,
|
|
289
325
|
status: stringValue,
|
|
290
326
|
effectFailures: recordArray,
|
|
291
327
|
nextActions: recordArray,
|
|
@@ -333,11 +369,21 @@ const EFFECT_OVERRIDES: Readonly<
|
|
|
333
369
|
"kb-write": { destructive: true, retrySafety: "unsafe" },
|
|
334
370
|
"workspace-write": { destructive: true, retrySafety: "unsafe" },
|
|
335
371
|
},
|
|
336
|
-
|
|
372
|
+
kb_ingest_proof: {
|
|
337
373
|
"kb-write": { destructive: true, retrySafety: "unsafe" },
|
|
338
374
|
},
|
|
339
375
|
};
|
|
340
376
|
|
|
377
|
+
export function assertUniqueEffectKinds(
|
|
378
|
+
operation: string,
|
|
379
|
+
declarations: readonly { readonly kind: string }[],
|
|
380
|
+
expectedSize: number,
|
|
381
|
+
): void {
|
|
382
|
+
if (new Set(declarations.map(({ kind }) => kind)).size !== expectedSize) {
|
|
383
|
+
throw new Error(`Duplicate effect contract for ${operation}`);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
341
387
|
export function declaredEffects(
|
|
342
388
|
operation: OperationName,
|
|
343
389
|
effects: readonly OperationEffect[],
|
|
@@ -359,8 +405,6 @@ export function declaredEffects(
|
|
|
359
405
|
openWorld: override.openWorld === true,
|
|
360
406
|
};
|
|
361
407
|
});
|
|
362
|
-
|
|
363
|
-
throw new Error(`Duplicate effect contract for ${operation}`);
|
|
364
|
-
}
|
|
408
|
+
assertUniqueEffectKinds(operation, declarations, expected.size);
|
|
365
409
|
return declarations;
|
|
366
410
|
}
|
|
@@ -11,6 +11,9 @@ export type EntityQueryInput = {
|
|
|
11
11
|
readonly id?: string;
|
|
12
12
|
readonly tags?: readonly string[];
|
|
13
13
|
readonly sourceFile?: string;
|
|
14
|
+
/** Page size for index-backed queries; bounds each query's output. */
|
|
15
|
+
readonly limit?: number;
|
|
16
|
+
readonly offset?: number;
|
|
14
17
|
};
|
|
15
18
|
|
|
16
19
|
export const VALID_ENTITY_TYPES = [
|
|
@@ -63,6 +66,10 @@ export function buildEntityGoal(input: EntityQueryInput): string {
|
|
|
63
66
|
}
|
|
64
67
|
if (type) {
|
|
65
68
|
const safeType = escapeAtomContent(type);
|
|
69
|
+
if (input.limit !== undefined) {
|
|
70
|
+
const offset = input.offset ?? 0;
|
|
71
|
+
return `kb_query_entities('${safeType}', none, [], none, ${input.limit}, ${offset}, Results, Count)`;
|
|
72
|
+
}
|
|
66
73
|
return `findall([Id,'${safeType}',Props], kb_entity(Id, '${safeType}', Props), Results)`;
|
|
67
74
|
}
|
|
68
75
|
return "findall([Id,Type,Props], kb_entity(Id, Type, Props), Results)";
|
|
@@ -109,6 +116,52 @@ export function paginateResults<T>(
|
|
|
109
116
|
return results.slice(offset, offset + limit);
|
|
110
117
|
}
|
|
111
118
|
|
|
119
|
+
/**
|
|
120
|
+
* Page size for index-backed search candidate fetches. Each page is one
|
|
121
|
+
* Prolog query, so a fixed page size substantially bounds each response and
|
|
122
|
+
* fixes the observed large-KB output overflow; it is a practical bound, not
|
|
123
|
+
* a byte-size guarantee for arbitrarily large individual entity payloads.
|
|
124
|
+
*/
|
|
125
|
+
// implements REQ-kibi-operation-interface-parity, REQ-mcp-search-discovery
|
|
126
|
+
export const SEARCH_CANDIDATE_PAGE_SIZE = 500;
|
|
127
|
+
|
|
128
|
+
// implements REQ-kibi-operation-interface-parity, REQ-mcp-search-discovery
|
|
129
|
+
export async function loadSearchCandidates(
|
|
130
|
+
prolog: Pick<PrologPort, "searchEntities">,
|
|
131
|
+
input: {
|
|
132
|
+
readonly query: string;
|
|
133
|
+
readonly type?: string;
|
|
134
|
+
readonly maxCandidates?: number;
|
|
135
|
+
},
|
|
136
|
+
signal?: AbortSignal,
|
|
137
|
+
): Promise<Record<string, unknown>[]> {
|
|
138
|
+
const maxCandidates = input.maxCandidates ?? Number.POSITIVE_INFINITY;
|
|
139
|
+
const candidates: Record<string, unknown>[] = [];
|
|
140
|
+
let offset = 0;
|
|
141
|
+
let total = Number.POSITIVE_INFINITY;
|
|
142
|
+
while (offset < total && candidates.length < maxCandidates) {
|
|
143
|
+
// Call through the port property, never via a detached local: EngineClient
|
|
144
|
+
// searchEntities depends on `this` (this.command), and the PrologPort
|
|
145
|
+
// contract does not promise a pre-bound method.
|
|
146
|
+
const page = await prolog.searchEntities?.(
|
|
147
|
+
{
|
|
148
|
+
query: input.query,
|
|
149
|
+
...(input.type !== undefined ? { type: input.type } : {}),
|
|
150
|
+
limit: SEARCH_CANDIDATE_PAGE_SIZE,
|
|
151
|
+
offset,
|
|
152
|
+
},
|
|
153
|
+
signal,
|
|
154
|
+
);
|
|
155
|
+
if (!page || page.entities.length === 0) break;
|
|
156
|
+
candidates.push(...page.entities);
|
|
157
|
+
total = page.count;
|
|
158
|
+
offset += page.entities.length;
|
|
159
|
+
}
|
|
160
|
+
return Number.isFinite(maxCandidates)
|
|
161
|
+
? candidates.slice(0, maxCandidates)
|
|
162
|
+
: candidates;
|
|
163
|
+
}
|
|
164
|
+
|
|
112
165
|
// implements REQ-002
|
|
113
166
|
export function dedupeEntities(
|
|
114
167
|
entities: readonly Record<string, unknown>[],
|
|
@@ -15,9 +15,11 @@ import {
|
|
|
15
15
|
type BranchStoreInspection,
|
|
16
16
|
branchStoreReason,
|
|
17
17
|
inspectBranchStore,
|
|
18
|
+
storeLockJournalReason,
|
|
18
19
|
} from "../../utils/branch-store.js";
|
|
19
20
|
import {
|
|
20
21
|
loadEntities,
|
|
22
|
+
loadSearchCandidates,
|
|
21
23
|
paginateResults,
|
|
22
24
|
validateEntityType,
|
|
23
25
|
} from "./discovery-entities.js";
|
|
@@ -76,12 +78,12 @@ export type StatusPayload = {
|
|
|
76
78
|
readonly syncState: string;
|
|
77
79
|
readonly kbPath?: string;
|
|
78
80
|
readonly lastSyncSource?: string;
|
|
79
|
-
readonly
|
|
80
|
-
readonly
|
|
81
|
-
readonly
|
|
82
|
-
readonly
|
|
83
|
-
readonly
|
|
84
|
-
readonly
|
|
81
|
+
readonly proofSnapshot?: string;
|
|
82
|
+
readonly proofSnapshotAvailable?: boolean;
|
|
83
|
+
readonly proofSnapshotDirty?: boolean;
|
|
84
|
+
readonly proofSnapshotFileCount?: number;
|
|
85
|
+
readonly proofSnapshotVersion?: string;
|
|
86
|
+
readonly proofSnapshotError?: string;
|
|
85
87
|
readonly staleReasons?: readonly Record<string, unknown>[];
|
|
86
88
|
readonly staleReasonCount?: number;
|
|
87
89
|
readonly staleReasonsTruncated?: boolean;
|
|
@@ -91,9 +93,9 @@ export type StatusPayload = {
|
|
|
91
93
|
readonly kind: "exact" | "explicit_override" | "legacy_compat";
|
|
92
94
|
readonly migrationRequired: boolean;
|
|
93
95
|
};
|
|
94
|
-
readonly
|
|
95
|
-
readonly
|
|
96
|
-
readonly
|
|
96
|
+
readonly proofSnapshotChanges?: readonly Record<string, unknown>[];
|
|
97
|
+
readonly proofSnapshotChangeCount?: number;
|
|
98
|
+
readonly proofSnapshotChangesTruncated?: boolean;
|
|
97
99
|
readonly branchStore?: BranchStoreInspection;
|
|
98
100
|
readonly engineStatus?: {
|
|
99
101
|
readonly state: "healthy" | "unavailable";
|
|
@@ -139,15 +141,19 @@ export async function executeQuery(
|
|
|
139
141
|
const { type, id, tags, sourceFile, limit = 100, offset = 0 } = input;
|
|
140
142
|
try {
|
|
141
143
|
const prolog = requireProlog(context);
|
|
144
|
+
const signal = context.signal;
|
|
142
145
|
const indexedPage = prolog.queryEntities
|
|
143
|
-
? await prolog.queryEntities(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
? await prolog.queryEntities(
|
|
147
|
+
{
|
|
148
|
+
...(type !== undefined ? { type } : {}),
|
|
149
|
+
...(id !== undefined ? { id } : {}),
|
|
150
|
+
...(tags !== undefined ? { tags } : {}),
|
|
151
|
+
...(sourceFile !== undefined ? { sourceFile } : {}),
|
|
152
|
+
limit,
|
|
153
|
+
offset,
|
|
154
|
+
},
|
|
155
|
+
signal,
|
|
156
|
+
)
|
|
151
157
|
: null;
|
|
152
158
|
if (indexedPage !== null) {
|
|
153
159
|
const paginated = indexedPage.entities;
|
|
@@ -259,15 +265,17 @@ export async function executeSearch(
|
|
|
259
265
|
};
|
|
260
266
|
}
|
|
261
267
|
const indexedCandidates = prolog.searchEntities
|
|
262
|
-
? await
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
+
? await loadSearchCandidates(
|
|
269
|
+
prolog,
|
|
270
|
+
{
|
|
271
|
+
query: trimmedQuery,
|
|
272
|
+
...(type !== undefined ? { type } : {}),
|
|
273
|
+
},
|
|
274
|
+
context.signal,
|
|
275
|
+
)
|
|
268
276
|
: null;
|
|
269
277
|
const entities = indexedCandidates
|
|
270
|
-
? [...indexedCandidates
|
|
278
|
+
? [...indexedCandidates]
|
|
271
279
|
: await loadEntities(prolog, {
|
|
272
280
|
...(type !== undefined ? { type } : {}),
|
|
273
281
|
});
|
|
@@ -334,21 +342,27 @@ export async function executeStatus(
|
|
|
334
342
|
};
|
|
335
343
|
} else
|
|
336
344
|
try {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
345
|
+
// Prefer an injected or session-backed engine so MCP status shares the
|
|
346
|
+
// same client as discovery tools. Only spawn an owned fallback when no
|
|
347
|
+
// host session is available (CLI status without a live runtime port).
|
|
348
|
+
let prolog = context.prolog;
|
|
349
|
+
if (!prolog && context.ensureProlog) {
|
|
350
|
+
prolog = await context.ensureProlog();
|
|
351
|
+
}
|
|
352
|
+
if (!prolog) {
|
|
353
|
+
ownedEngine = new EngineClient({
|
|
354
|
+
workspaceRoot: context.workspaceRoot,
|
|
355
|
+
branch: attachment.kbBranch,
|
|
356
|
+
timeout: 15_000,
|
|
357
|
+
});
|
|
358
|
+
prolog = ownedEngine;
|
|
359
|
+
}
|
|
347
360
|
payload = await runOperationJsonQuery<StatusPayload>(
|
|
348
361
|
prolog,
|
|
349
362
|
"status.pl",
|
|
350
363
|
"status:kb_status_json(JsonString)",
|
|
351
364
|
"Status execution",
|
|
365
|
+
context.signal,
|
|
352
366
|
);
|
|
353
367
|
if (!isStatusPayload(payload)) {
|
|
354
368
|
throw new Error("Status execution query returned an invalid payload");
|
|
@@ -385,6 +399,7 @@ export async function executeStatus(
|
|
|
385
399
|
const snapshotEvidence = await readWorkspaceSnapshot(context);
|
|
386
400
|
const existingReasons = payload.staleReasons ?? [];
|
|
387
401
|
const storeReason = branchStoreReason(store);
|
|
402
|
+
const lockReason = storeLockJournalReason(store.path);
|
|
388
403
|
const engineReason = engineStatus
|
|
389
404
|
? {
|
|
390
405
|
code: engineStatus.errorCode ?? "engine_status_unavailable",
|
|
@@ -402,6 +417,7 @@ export async function executeStatus(
|
|
|
402
417
|
const staleReasons = [
|
|
403
418
|
...existingReasons,
|
|
404
419
|
...(storeReason ? [storeReason] : []),
|
|
420
|
+
...(lockReason ? [lockReason] : []),
|
|
405
421
|
...(engineReason ? [engineReason] : []),
|
|
406
422
|
].sort((left, right) =>
|
|
407
423
|
String(left.path ?? "").localeCompare(String(right.path ?? "")),
|
|
@@ -414,23 +430,22 @@ export async function executeStatus(
|
|
|
414
430
|
staleReasons,
|
|
415
431
|
staleReasonCount: staleReasons.length,
|
|
416
432
|
staleReasonsTruncated: false,
|
|
417
|
-
|
|
433
|
+
proofSnapshot: snapshotEvidence.available
|
|
418
434
|
? snapshotEvidence.snapshot.hash
|
|
419
435
|
: "unknown",
|
|
420
|
-
|
|
436
|
+
proofSnapshotAvailable: snapshotEvidence.available,
|
|
421
437
|
...(snapshotEvidence.available
|
|
422
438
|
? {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
verificationSnapshotChangeCount:
|
|
439
|
+
proofSnapshotDirty: snapshotEvidence.snapshot.dirty,
|
|
440
|
+
proofSnapshotFileCount: snapshotEvidence.snapshot.fileCount,
|
|
441
|
+
proofSnapshotVersion: snapshotEvidence.snapshot.version,
|
|
442
|
+
proofSnapshotChanges: snapshotEvidence.snapshot.changes ?? [],
|
|
443
|
+
proofSnapshotChangeCount:
|
|
429
444
|
snapshotEvidence.snapshot.changeCount ?? 0,
|
|
430
|
-
|
|
445
|
+
proofSnapshotChangesTruncated:
|
|
431
446
|
snapshotEvidence.snapshot.changesTruncated ?? false,
|
|
432
447
|
}
|
|
433
|
-
: {
|
|
448
|
+
: { proofSnapshotError: snapshotEvidence.error }),
|
|
434
449
|
};
|
|
435
450
|
const schemaStatus = readMigrationConfigStatus(context.workspaceRoot);
|
|
436
451
|
const migrationPlan = buildActionsFromStatus({
|
|
@@ -438,9 +453,9 @@ export async function executeStatus(
|
|
|
438
453
|
branchAttachment: attachment,
|
|
439
454
|
branchStore: store,
|
|
440
455
|
staleReasons,
|
|
441
|
-
|
|
456
|
+
proofSnapshotAvailable: snapshotEvidence.available,
|
|
442
457
|
...(snapshotEvidence.available
|
|
443
|
-
? {
|
|
458
|
+
? { proofSnapshotDirty: snapshotEvidence.snapshot.dirty }
|
|
444
459
|
: {}),
|
|
445
460
|
kbSnapshotId: payload.snapshotId,
|
|
446
461
|
workspaceSnapshot: snapshotEvidence.available
|
|
@@ -448,7 +463,7 @@ export async function executeStatus(
|
|
|
448
463
|
: null,
|
|
449
464
|
configStatus: schemaStatus,
|
|
450
465
|
});
|
|
451
|
-
const
|
|
466
|
+
const listed = context.fs?.glob
|
|
452
467
|
? await context.fs.glob(
|
|
453
468
|
[
|
|
454
469
|
".kb/requirements/**/*.md",
|
|
@@ -463,6 +478,7 @@ export async function executeStatus(
|
|
|
463
478
|
{ cwd: context.workspaceRoot },
|
|
464
479
|
)
|
|
465
480
|
: [];
|
|
481
|
+
const bootstrapSourceFiles = Array.isArray(listed) ? listed : [];
|
|
466
482
|
const bootstrapActivation = await classifyActivation(
|
|
467
483
|
context,
|
|
468
484
|
bootstrapSourceFiles,
|
|
@@ -514,7 +530,7 @@ export async function executeStatus(
|
|
|
514
530
|
content: [
|
|
515
531
|
{
|
|
516
532
|
type: "text",
|
|
517
|
-
text: `Branch ${payload.branch} is ${payload.syncState} (snapshot ${payload.snapshotId}, dirty=${payload.dirty},
|
|
533
|
+
text: `Branch ${payload.branch} is ${payload.syncState} (snapshot ${payload.snapshotId}, dirty=${payload.dirty}, proofSnapshot=${enrichedPayload.proofSnapshot})`,
|
|
518
534
|
},
|
|
519
535
|
],
|
|
520
536
|
structuredContent: statusWithPlan,
|
|
@@ -13,7 +13,7 @@ export * from "./specs/check.js";
|
|
|
13
13
|
export * from "./specs/discovery.js";
|
|
14
14
|
export * from "./specs/modeling.js";
|
|
15
15
|
export * from "./specs/planning.js";
|
|
16
|
-
export * from "./specs/
|
|
16
|
+
export * from "./specs/proof.js";
|
|
17
17
|
export * from "./specs/mutation.js";
|
|
18
18
|
export * from "./specs/reporting.js";
|
|
19
19
|
export * from "./specs/semantic.js";
|