kibi-cli 0.18.1 → 1.0.1
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-json-command.d.ts +1 -2
- package/dist/cli-json-command.d.ts.map +1 -1
- package/dist/cli-json-command.js +2 -34
- package/dist/cli-operation-loader.d.ts +3 -0
- package/dist/cli-operation-loader.d.ts.map +1 -0
- package/dist/cli-operation-loader.js +91 -0
- package/dist/cli-operation-metadata.d.ts +94 -0
- package/dist/cli-operation-metadata.d.ts.map +1 -0
- package/dist/cli-operation-metadata.js +121 -0
- package/dist/cli-protocol.d.ts +1 -1
- package/dist/cli-protocol.d.ts.map +1 -1
- package/dist/cli-protocol.js +42 -11
- package/dist/cli-register-foundation.d.ts.map +1 -1
- package/dist/cli-register-foundation.js +28 -19
- package/dist/cli-register-json.d.ts +3 -0
- package/dist/cli-register-json.d.ts.map +1 -0
- package/dist/cli-register-json.js +35 -0
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +60 -13
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +23 -14
- package/dist/cli-register-skills.d.ts.map +1 -1
- package/dist/cli-register-skills.js +8 -6
- package/dist/cli-register-verification.d.ts +3 -0
- package/dist/cli-register-verification.d.ts.map +1 -0
- package/dist/cli-register-verification.js +16 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/commands/aggregated-checks.d.ts +1 -2
- package/dist/commands/aggregated-checks.d.ts.map +1 -1
- package/dist/commands/aggregated-checks.js +14 -9
- package/dist/commands/branch.d.ts +36 -0
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +371 -40
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +48 -77
- package/dist/commands/coverage.js +1 -1
- package/dist/commands/discovery-shared.d.ts +2 -1
- package/dist/commands/discovery-shared.d.ts.map +1 -1
- package/dist/commands/discovery-shared.js +38 -25
- package/dist/commands/doctor.d.ts +4 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +259 -24
- package/dist/commands/engine.d.ts +8 -0
- package/dist/commands/engine.d.ts.map +1 -0
- package/dist/commands/engine.js +103 -0
- package/dist/commands/gaps.js +1 -1
- package/dist/commands/gc.d.ts +5 -2
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +140 -71
- package/dist/commands/github-init.d.ts +56 -0
- package/dist/commands/github-init.d.ts.map +1 -0
- package/dist/commands/github-init.js +310 -0
- package/dist/commands/graph.js +1 -1
- package/dist/commands/init-helpers.d.ts +1 -1
- package/dist/commands/init-helpers.d.ts.map +1 -1
- package/dist/commands/init-helpers.js +73 -25
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +79 -24
- package/dist/commands/legacy-storage-migration.d.ts +54 -0
- package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
- package/dist/commands/legacy-storage-migration.js +277 -0
- package/dist/commands/migrate.d.ts +7 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +244 -91
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +3 -1
- package/dist/commands/report.d.ts +24 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +191 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +3 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -1
- package/dist/commands/sync/cache.d.ts +26 -3
- package/dist/commands/sync/cache.d.ts.map +1 -1
- package/dist/commands/sync/cache.js +141 -5
- package/dist/commands/sync/discovery.d.ts +23 -2
- package/dist/commands/sync/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +196 -15
- package/dist/commands/sync/extraction.d.ts +8 -1
- package/dist/commands/sync/extraction.d.ts.map +1 -1
- package/dist/commands/sync/extraction.js +38 -4
- package/dist/commands/sync/manifest.d.ts +8 -5
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +142 -39
- package/dist/commands/sync/persistence.d.ts +10 -1
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +223 -44
- package/dist/commands/sync/staging.d.ts +10 -1
- package/dist/commands/sync/staging.d.ts.map +1 -1
- package/dist/commands/sync/staging.js +84 -1
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +710 -48
- package/dist/commands/verify.d.ts +10 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +126 -0
- package/dist/diagnostics.d.ts +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/engine-daemon.d.ts +3 -0
- package/dist/engine-daemon.d.ts.map +1 -0
- package/dist/engine-daemon.js +34 -0
- package/dist/engine.d.ts +156 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1625 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +5 -6
- package/dist/extractors/manifest.d.ts +8 -1
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +51 -9
- package/dist/extractors/markdown.d.ts +2 -1
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +21 -3
- package/dist/extractors/playwright-cases.d.ts +24 -0
- package/dist/extractors/playwright-cases.d.ts.map +1 -0
- package/dist/extractors/playwright-cases.js +126 -0
- package/dist/extractors/relationships.d.ts +2 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +16 -17
- package/dist/extractors/symbol-coordinates.d.ts +81 -3
- package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
- package/dist/extractors/symbol-coordinates.js +389 -51
- package/dist/extractors/symbols-coordinator.js +11 -1
- package/dist/intent-search.d.ts +60 -0
- package/dist/intent-search.d.ts.map +1 -0
- package/dist/intent-search.js +433 -0
- package/dist/operations/bootstrap/activation.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/activation.js +48 -31
- package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
- package/dist/operations/bootstrap/candidates.d.ts +4 -0
- package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
- package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
- package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
- package/dist/operations/bootstrap/generate.d.ts +8 -0
- package/dist/operations/bootstrap/generate.d.ts.map +1 -0
- package/dist/operations/bootstrap/generate.js +204 -0
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
- package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/guidance.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/guidance.js +2 -0
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
- package/dist/operations/bootstrap/presentation.d.ts +15 -0
- package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
- package/dist/operations/bootstrap/presentation.js +177 -0
- package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
- package/dist/operations/bootstrap/types.d.ts.map +1 -0
- package/dist/operations/bootstrap/types.js +25 -0
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
- package/dist/operations/modeling/model-requirement.js +4 -17
- package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
- package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-applicability.js +276 -0
- package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
- package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-applyplan.js +100 -3
- package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
- package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-bindings.js +122 -0
- package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-4.js +155 -0
- package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference-1.js +8 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
- package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference.js +4 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-loader.js +7 -0
- package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
- package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-ranker.js +156 -24
- package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-score-3.js +6 -0
- package/dist/operations/modeling/predicate-types.d.ts +34 -0
- package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
- package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-utils.js +2 -0
- package/dist/operations/modeling/suggest-predicates.d.ts +1 -1
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +170 -32
- package/dist/operations/mutation/delete.d.ts.map +1 -1
- package/dist/operations/mutation/delete.js +415 -19
- package/dist/operations/mutation/entity-projection.d.ts +11 -0
- package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
- package/dist/operations/mutation/entity-projection.js +14 -0
- package/dist/operations/mutation/relationships.d.ts +10 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +71 -1
- package/dist/operations/mutation/serialization.d.ts.map +1 -1
- package/dist/operations/mutation/serialization.js +1 -0
- package/dist/operations/mutation/source-authoring.d.ts +61 -0
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
- package/dist/operations/mutation/source-authoring.js +543 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts +51 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
- package/dist/operations/mutation/symbol-compiler-lock.js +274 -0
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-granularity.js +34 -3
- package/dist/operations/mutation/symbol-refresh.d.ts +18 -1
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +225 -63
- package/dist/operations/mutation/types.d.ts +57 -1
- package/dist/operations/mutation/types.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.js +363 -24
- package/dist/operations/mutation/validation.d.ts.map +1 -1
- package/dist/operations/mutation/validation.js +1 -0
- package/dist/operations/planning/apply-plan.d.ts +117 -0
- package/dist/operations/planning/apply-plan.d.ts.map +1 -0
- package/dist/operations/planning/apply-plan.js +1437 -0
- package/dist/operations/planning/compile-intent.d.ts +106 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -0
- package/dist/operations/planning/compile-intent.js +562 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analyze-prose.js +6 -2
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +15 -2
- package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
- package/dist/operations/semantic-advisor/types.d.ts +13 -5
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
- package/dist/operations/verification/ingest-verification.d.ts +29 -0
- package/dist/operations/verification/ingest-verification.d.ts.map +1 -0
- package/dist/operations/verification/ingest-verification.js +192 -0
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +2 -1
- package/dist/prolog.d.ts +8 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +66 -16
- package/dist/public/branch-resolver.d.ts +1 -0
- package/dist/public/branch-resolver.d.ts.map +1 -1
- package/dist/public/branch-resolver.js +1 -0
- package/dist/public/check-types.d.ts +2 -2
- package/dist/public/check-types.d.ts.map +1 -1
- package/dist/public/check-types.js +16 -16
- package/dist/public/diagnostic-usage.d.ts.map +1 -1
- package/dist/public/diagnostic-usage.js +69 -1
- package/dist/public/distribution-parity.d.ts +1 -1
- package/dist/public/distribution-parity.d.ts.map +1 -1
- package/dist/public/distribution-parity.js +1 -0
- package/dist/public/ignore-policy.d.ts.map +1 -1
- package/dist/public/ignore-policy.js +16 -4
- package/dist/public/impact/coverage-depth-quality.d.ts +6 -1
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
- package/dist/public/impact/coverage-depth-quality.js +21 -3
- package/dist/public/impact/full-kb-quality.d.ts +4 -2
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +61 -1
- package/dist/public/impact/manifest.d.ts.map +1 -1
- package/dist/public/impact/manifest.js +2 -5
- package/dist/public/operational-artifacts.d.ts.map +1 -1
- package/dist/public/operational-artifacts.js +7 -1
- package/dist/public/operations/catalog.d.ts +682 -67
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +126 -4
- package/dist/public/operations/check-executor.d.ts +2 -2
- package/dist/public/operations/check-executor.d.ts.map +1 -1
- package/dist/public/operations/check-executor.js +72 -13
- package/dist/public/operations/check-format-shared.d.ts +3 -0
- package/dist/public/operations/check-format-shared.d.ts.map +1 -1
- package/dist/public/operations/check-format-shared.js +3 -0
- package/dist/public/operations/check-helpers.d.ts +27 -2
- package/dist/public/operations/check-helpers.d.ts.map +1 -1
- package/dist/public/operations/check-helpers.js +62 -26
- package/dist/public/operations/contracts.d.ts +11 -0
- package/dist/public/operations/contracts.d.ts.map +1 -0
- package/dist/public/operations/contracts.js +325 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +3 -2
- package/dist/public/operations/discovery-executors.d.ts +37 -1
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +246 -9
- package/dist/public/operations/index.d.ts +9 -4
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +8 -3
- package/dist/public/operations/migration-plan.d.ts +101 -0
- package/dist/public/operations/migration-plan.d.ts.map +1 -0
- package/dist/public/operations/migration-plan.js +537 -0
- package/dist/public/operations/node-ports.d.ts.map +1 -1
- package/dist/public/operations/node-ports.js +68 -8
- package/dist/public/operations/prolog-json.d.ts +14 -0
- package/dist/public/operations/prolog-json.d.ts.map +1 -1
- package/dist/public/operations/prolog-json.js +55 -6
- package/dist/public/operations/repair-plan.d.ts.map +1 -1
- package/dist/public/operations/repair-plan.js +1 -0
- package/dist/public/operations/result-envelope.d.ts +13 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -0
- package/dist/public/operations/result-envelope.js +104 -0
- package/dist/public/operations/runtime-types.d.ts +126 -5
- package/dist/public/operations/runtime-types.d.ts.map +1 -1
- package/dist/public/operations/source-relationship-parity.d.ts +13 -0
- package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
- package/dist/public/operations/source-relationship-parity.js +162 -0
- package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
- package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
- package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
- package/dist/public/operations/specs/check.d.ts +4 -4
- package/dist/public/operations/specs/check.d.ts.map +1 -1
- package/dist/public/operations/specs/check.js +4 -3
- package/dist/public/operations/specs/discovery.d.ts +87 -3
- package/dist/public/operations/specs/discovery.d.ts.map +1 -1
- package/dist/public/operations/specs/discovery.js +53 -3
- package/dist/public/operations/specs/modeling.d.ts +3 -3
- package/dist/public/operations/specs/modeling.js +3 -3
- package/dist/public/operations/specs/mutation-schemas.d.ts +190 -47
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +3 -1
- package/dist/public/operations/specs/mutation.d.ts +42 -2
- package/dist/public/operations/specs/mutation.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation.js +26 -2
- package/dist/public/operations/specs/planning.d.ts +270 -0
- package/dist/public/operations/specs/planning.d.ts.map +1 -0
- package/dist/public/operations/specs/planning.js +191 -0
- package/dist/public/operations/specs/reporting.d.ts +4 -1
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +46 -1
- package/dist/public/operations/specs/upsert.d.ts +204 -47
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/specs/upsert.js +9 -0
- package/dist/public/operations/specs/verification.d.ts +78 -0
- package/dist/public/operations/specs/verification.d.ts.map +1 -0
- package/dist/public/operations/specs/verification.js +62 -0
- package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
- package/dist/public/operations/symbol-repair-plan.js +123 -0
- package/dist/public/operations/types.d.ts +52 -1
- package/dist/public/operations/types.d.ts.map +1 -1
- package/dist/public/playwright-case-id.d.ts +8 -0
- package/dist/public/playwright-case-id.d.ts.map +1 -0
- package/dist/public/playwright-case-id.js +25 -0
- package/dist/public/schemas/entity.d.ts.map +1 -1
- package/dist/public/schemas/entity.js +4 -2
- package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/dist/public/skills/kibi-freshness/SKILL.md +40 -10
- package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
- package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/dist/public/skills/kibi-usage/SKILL.md +115 -239
- package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +56 -3
- package/dist/public/symbol-granularity.d.ts +1 -1
- package/dist/public/symbol-granularity.d.ts.map +1 -1
- package/dist/public/symbol-granularity.js +1 -0
- package/dist/public/telemetry-acceptance.d.ts +7 -0
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +8 -1
- package/dist/public/telemetry-remediation.js +1 -1
- package/dist/public/verification-receipt.d.ts +206 -39
- package/dist/public/verification-receipt.d.ts.map +1 -1
- package/dist/public/verification-receipt.js +171 -4
- package/dist/relationships/shards.d.ts +16 -0
- package/dist/relationships/shards.d.ts.map +1 -1
- package/dist/relationships/shards.js +87 -2
- package/dist/report/brand.d.ts +19 -0
- package/dist/report/brand.d.ts.map +1 -0
- package/dist/report/brand.js +112 -0
- package/dist/report/html-report.d.ts +19 -0
- package/dist/report/html-report.d.ts.map +1 -0
- package/dist/report/html-report.js +963 -0
- package/dist/report/relative-time.d.ts +4 -0
- package/dist/report/relative-time.d.ts.map +1 -0
- package/dist/report/relative-time.js +46 -0
- package/dist/report/report-view.d.ts +17 -0
- package/dist/report/report-view.d.ts.map +1 -0
- package/dist/report/report-view.js +33 -0
- package/dist/report/repository.d.ts +35 -0
- package/dist/report/repository.d.ts.map +1 -0
- package/dist/report/repository.js +151 -0
- package/dist/runtime/cli-runtime.d.ts.map +1 -1
- package/dist/runtime/cli-runtime.js +98 -42
- package/dist/schemas/entity.schema.json +1148 -273
- package/dist/traceability/evidence-model.d.ts +2 -2
- package/dist/traceability/evidence-model.d.ts.map +1 -1
- package/dist/traceability/evidence-model.js +2 -2
- package/dist/traceability/git-staged.d.ts.map +1 -1
- package/dist/traceability/git-staged.js +15 -40
- package/dist/traceability/markdown-validate.d.ts.map +1 -1
- package/dist/traceability/markdown-validate.js +12 -7
- package/dist/traceability/staged-impact-contract.d.ts +3 -3
- package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
- package/dist/traceability/staged-impact-contract.js +10 -38
- package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
- package/dist/traceability/staged-symbols-manifest.js +8 -3
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +3 -0
- package/dist/types/entities.d.ts +3 -0
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +24 -10
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +121 -38
- package/dist/utils/branch-store-locator.d.ts +23 -0
- package/dist/utils/branch-store-locator.d.ts.map +1 -0
- package/dist/utils/branch-store-locator.js +90 -0
- package/dist/utils/branch-store.d.ts +15 -0
- package/dist/utils/branch-store.d.ts.map +1 -0
- package/dist/utils/branch-store.js +130 -0
- package/dist/utils/config.d.ts +39 -37
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +107 -119
- package/dist/utils/kb-manifest.d.ts +35 -0
- package/dist/utils/kb-manifest.d.ts.map +1 -0
- package/dist/utils/kb-manifest.js +154 -0
- package/dist/utils/kb-paths.d.ts +54 -0
- package/dist/utils/kb-paths.d.ts.map +1 -0
- package/dist/utils/kb-paths.js +125 -0
- package/dist/utils/manifest-paths.d.ts +4 -4
- package/dist/utils/manifest-paths.d.ts.map +1 -1
- package/dist/utils/manifest-paths.js +8 -56
- package/dist/utils/rule-registry.d.ts +48 -20
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.js +82 -77
- package/dist/utils/schema-version.d.ts +5 -5
- package/dist/utils/schema-version.d.ts.map +1 -1
- package/dist/utils/schema-version.js +26 -6
- package/dist/utils/strict-modeling.d.ts +0 -4
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +7 -8
- package/dist/verification/playwright-reporter.d.ts +21 -0
- package/dist/verification/playwright-reporter.d.ts.map +1 -0
- package/dist/verification/playwright-reporter.js +114 -0
- package/package.json +51 -8
- package/schema/config.json +2 -2
- package/schema/manifest.json +26 -0
- package/src/public/branch-resolver.ts +1 -0
- package/src/public/check-types.ts +22 -19
- package/src/public/diagnostic-usage.ts +79 -1
- package/src/public/distribution-parity.ts +1 -0
- package/src/public/ignore-policy.ts +16 -10
- package/src/public/impact/coverage-depth-quality.ts +36 -0
- package/src/public/impact/full-kb-quality.ts +118 -5
- package/src/public/impact/manifest.ts +2 -4
- package/src/public/operational-artifacts.ts +9 -1
- package/src/public/operations/catalog.ts +146 -9
- package/src/public/operations/check-executor.ts +102 -15
- package/src/public/operations/check-format-shared.ts +6 -0
- package/src/public/operations/check-helpers.ts +74 -35
- package/src/public/operations/contracts.ts +366 -0
- package/src/public/operations/discovery-entities.ts +3 -2
- package/src/public/operations/discovery-executors.ts +343 -15
- package/src/public/operations/index.ts +9 -4
- package/src/public/operations/migration-plan.ts +740 -0
- package/src/public/operations/node-ports.ts +84 -10
- package/src/public/operations/prolog-json.ts +73 -6
- package/src/public/operations/repair-plan.ts +1 -0
- package/src/public/operations/result-envelope.ts +136 -0
- package/src/public/operations/runtime-types.ts +130 -5
- package/src/public/operations/source-relationship-parity.ts +226 -0
- package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
- package/src/public/operations/specs/check.ts +4 -3
- package/src/public/operations/specs/discovery.ts +57 -3
- package/src/public/operations/specs/modeling.ts +3 -3
- package/src/public/operations/specs/mutation-schemas.ts +6 -1
- package/src/public/operations/specs/mutation.ts +27 -2
- package/src/public/operations/specs/planning.ts +234 -0
- package/src/public/operations/specs/reporting.ts +55 -1
- package/src/public/operations/specs/upsert.ts +10 -0
- package/src/public/operations/specs/verification.ts +78 -0
- package/src/public/operations/symbol-repair-plan.ts +164 -0
- package/src/public/operations/types.ts +62 -1
- package/src/public/playwright-case-id.ts +35 -0
- package/src/public/schemas/entity.ts +7 -2
- package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/src/public/skills/kibi-freshness/SKILL.md +40 -10
- package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/src/public/skills/kibi-traceability/SKILL.md +47 -47
- package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/src/public/skills/kibi-usage/SKILL.md +115 -239
- package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +56 -3
- package/src/public/symbol-granularity.ts +1 -0
- package/src/public/telemetry-acceptance.ts +16 -1
- package/src/public/telemetry-remediation.ts +1 -1
- package/src/public/verification-receipt.ts +248 -6
- package/src/schemas/entity.schema.json +1148 -273
- package/templates/github/kibi-badge.yml +86 -0
- package/templates/github/kibi-report.yml +84 -0
- package/dist/operations/autopilot/activation.d.ts.map +0 -1
- package/dist/operations/autopilot/candidates.d.ts +0 -4
- package/dist/operations/autopilot/discovery.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.d.ts +0 -8
- package/dist/operations/autopilot/generate.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.js +0 -112
- package/dist/operations/autopilot/presentation.d.ts +0 -13
- package/dist/operations/autopilot/presentation.d.ts.map +0 -1
- package/dist/operations/autopilot/presentation.js +0 -91
- package/dist/operations/autopilot/types.d.ts.map +0 -1
- package/dist/operations/autopilot/types.js +0 -8
- package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
- package/dist/public/skills/init-kibi/SKILL.md +0 -62
- package/src/public/skills/init-kibi/SKILL.md +0 -62
- /package/dist/operations/{autopilot → bootstrap}/activation.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
package/dist/prolog.js
CHANGED
|
@@ -91,12 +91,16 @@ export class PrologProcess {
|
|
|
91
91
|
interactiveQueryTail = Promise.resolve();
|
|
92
92
|
terminationPromise = null;
|
|
93
93
|
oneShotProcesses = new Set();
|
|
94
|
-
useOneShotMode
|
|
94
|
+
useOneShotMode;
|
|
95
95
|
attachedKbPath = null;
|
|
96
96
|
onProcessExit = null;
|
|
97
97
|
constructor(options = {}) {
|
|
98
98
|
this.swiplPath = options.swiplPath || "swipl";
|
|
99
99
|
this.timeout = options.timeout || 30000;
|
|
100
|
+
this.useOneShotMode =
|
|
101
|
+
options.oneShot ??
|
|
102
|
+
(process.env.NODE_ENV === "test" &&
|
|
103
|
+
typeof globalThis.Bun !== "undefined");
|
|
100
104
|
}
|
|
101
105
|
async start() {
|
|
102
106
|
if (!existsSync(this.swiplPath) && this.swiplPath !== "swipl") {
|
|
@@ -189,10 +193,21 @@ export class PrologProcess {
|
|
|
189
193
|
return oneShotResult;
|
|
190
194
|
}
|
|
191
195
|
if (!isSingleGoal) {
|
|
192
|
-
|
|
196
|
+
// A batch is one logical write. Wrapping it here keeps RDF mutations
|
|
197
|
+
// atomic in the long-lived process; persistence is appended by the
|
|
198
|
+
// interactive wrapper once the transaction succeeds.
|
|
199
|
+
const batchGoal = `rdf_transaction((${goal.map((item) => this.normalizeGoal(item)).join(", ")}))`;
|
|
193
200
|
return this.query(batchGoal);
|
|
194
201
|
}
|
|
195
202
|
if (!this.isProcessUsable()) {
|
|
203
|
+
// Keep the low-level PrologPort useful for isolated callers that only
|
|
204
|
+
// need a single read (and for legacy unit fixtures). Normal CLI/MCP
|
|
205
|
+
// runtimes provide an EngineClient, while explicitly attached callers
|
|
206
|
+
// call start() and stay interactive; this fallback never participates
|
|
207
|
+
// in the engine-backed workflow.
|
|
208
|
+
if (this.process === null) {
|
|
209
|
+
return this.execOneShot(goal, this.attachedKbPath);
|
|
210
|
+
}
|
|
196
211
|
throw new Error("Prolog process not started");
|
|
197
212
|
}
|
|
198
213
|
const runInteractiveQuery = async () => {
|
|
@@ -200,9 +215,15 @@ export class PrologProcess {
|
|
|
200
215
|
const debug = isPrologDebugEnabled();
|
|
201
216
|
const normalizedGoal = this.normalizeGoal(goal);
|
|
202
217
|
const goalLabel = this.goalLabel(normalizedGoal);
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
218
|
+
const shouldPersist = this.isMutatingGoal(normalizedGoal) &&
|
|
219
|
+
!normalizedGoal.includes("kb_save") &&
|
|
220
|
+
!normalizedGoal.includes("kb_commit_upsert");
|
|
221
|
+
const goalWithPersistence = shouldPersist
|
|
222
|
+
? `(${normalizedGoal}, kb_save)`
|
|
223
|
+
: normalizedGoal;
|
|
224
|
+
const wrappedGoal = /^once\s*\(/.test(goalWithPersistence)
|
|
225
|
+
? `catch(${goalWithPersistence}, _E, (print_message(error, _E), fail))`
|
|
226
|
+
: `catch(once((${goalWithPersistence})), _E, (print_message(error, _E), fail))`;
|
|
206
227
|
const start = Date.now();
|
|
207
228
|
if (debug) {
|
|
208
229
|
console.error(`[prolog debug] start query: ${goalLabel}`);
|
|
@@ -321,14 +342,26 @@ export class PrologProcess {
|
|
|
321
342
|
releaseQuery();
|
|
322
343
|
}
|
|
323
344
|
}
|
|
345
|
+
/** Execute a group of goals as one transaction and one durable save. */
|
|
346
|
+
async queryBatch(goals) {
|
|
347
|
+
return this.query([...goals]);
|
|
348
|
+
}
|
|
324
349
|
invalidateCache() {
|
|
325
350
|
this.cache.clear();
|
|
326
351
|
}
|
|
327
352
|
isCacheableGoal(goal) {
|
|
328
353
|
const trimmed = goal.trim();
|
|
354
|
+
if (trimmed.startsWith("rdf_transaction(") ||
|
|
355
|
+
this.isMutatingGoal(trimmed)) {
|
|
356
|
+
return false;
|
|
357
|
+
}
|
|
329
358
|
return !(trimmed.startsWith("kb_attach(") ||
|
|
330
359
|
trimmed.startsWith("kb_detach") ||
|
|
331
360
|
trimmed.startsWith("kb_save") ||
|
|
361
|
+
trimmed.startsWith("kb_storage_status") ||
|
|
362
|
+
trimmed.startsWith("kb_storage_compact") ||
|
|
363
|
+
trimmed.startsWith("kb_storage_export") ||
|
|
364
|
+
trimmed.startsWith("status:") ||
|
|
332
365
|
trimmed.startsWith("kb_commit_upsert(") ||
|
|
333
366
|
trimmed.startsWith("kb_assert_") ||
|
|
334
367
|
trimmed.startsWith("kb_delete_") ||
|
|
@@ -336,9 +369,7 @@ export class PrologProcess {
|
|
|
336
369
|
}
|
|
337
370
|
// implements REQ-009
|
|
338
371
|
isMutatingGoal(goal) {
|
|
339
|
-
return (
|
|
340
|
-
goal.includes("kb_delete_") ||
|
|
341
|
-
goal.includes("kb_retract_"));
|
|
372
|
+
return /(?:kb_(?:assert|delete|retract|commit|save|log)_|\bkb_save\b|\brdf_(?:assert|retract))/u.test(goal);
|
|
342
373
|
}
|
|
343
374
|
// implements REQ-009
|
|
344
375
|
isExplicitSaveGoal(goal) {
|
|
@@ -658,16 +689,35 @@ export class PrologProcess {
|
|
|
658
689
|
}
|
|
659
690
|
extractBindings(output) {
|
|
660
691
|
const bindings = {};
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
if (
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
692
|
+
let variableName;
|
|
693
|
+
let valueLines = [];
|
|
694
|
+
const flush = () => {
|
|
695
|
+
if (variableName === undefined)
|
|
696
|
+
return;
|
|
697
|
+
bindings[variableName] = valueLines
|
|
698
|
+
.join("\n")
|
|
699
|
+
.trim()
|
|
700
|
+
.replace(/\.$/, "")
|
|
701
|
+
.replace(/,$/, "");
|
|
702
|
+
variableName = undefined;
|
|
703
|
+
valueLines = [];
|
|
704
|
+
};
|
|
705
|
+
// Prolog may print a quoted string over multiple physical lines when the
|
|
706
|
+
// long-lived session's answer formatting is configured for readable JSON.
|
|
707
|
+
// Parse assignment records as blocks instead of dropping every continuation
|
|
708
|
+
// line after the first one (which previously reduced JsonString to "{").
|
|
709
|
+
for (const line of output.split("\n")) {
|
|
710
|
+
const match = line.match(/^([A-Z_][A-Za-z0-9_]*)\s*=\s*(.*)$/);
|
|
711
|
+
if (match?.[1] !== undefined && match[2] !== undefined) {
|
|
712
|
+
flush();
|
|
713
|
+
variableName = match[1];
|
|
714
|
+
valueLines = [match[2]];
|
|
715
|
+
continue;
|
|
669
716
|
}
|
|
717
|
+
if (variableName !== undefined)
|
|
718
|
+
valueLines.push(line);
|
|
670
719
|
}
|
|
720
|
+
flush();
|
|
671
721
|
return bindings;
|
|
672
722
|
}
|
|
673
723
|
// implements REQ-core-prolog-process-management
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-resolver.d.ts","sourceRoot":"","sources":["../../src/public/branch-resolver.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"branch-resolver.d.ts","sourceRoot":"","sources":["../../src/public/branch-resolver.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Public re-export barrel for shared check types and MCP-consumed modeling helpers.
|
|
3
3
|
* Import from "kibi-cli/public/check-types" in MCP or external consumers.
|
|
4
4
|
*/
|
|
5
|
-
export type {
|
|
5
|
+
export type { RuleDefinition, RuleEnforcementClass, Violation, } from "../utils/rule-registry.js";
|
|
6
6
|
export type { SemanticClaim, StableRequirementIds, StrictModelInput, StrictWriteSet, } from "../utils/strict-modeling.js";
|
|
7
|
-
export {
|
|
7
|
+
export { RULE_NAMES, RULES, getCanonicalRules, getDefaultRules, getEffectiveRules, getRuleDefinition, getRuleEnforcementClass, isCanonicalRule, ruleRunsByDefault, validateRuleName, } from "../utils/rule-registry.js";
|
|
8
8
|
export { buildStableRequirementIds, buildStrictWriteSet, modelRequirementClaims, normalizePropertyKey, normalizeSubjectKey, } from "../utils/strict-modeling.js";
|
|
9
9
|
//# sourceMappingURL=check-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-types.d.ts","sourceRoot":"","sources":["../../src/public/check-types.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,YAAY,EACV,
|
|
1
|
+
{"version":3,"file":"check-types.d.ts","sourceRoot":"","sources":["../../src/public/check-types.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,SAAS,GACV,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Kibi — repo-local, per-branch, queryable long-term memory for software projects
|
|
3
|
-
Copyright (C) 2026 Piotr Franczyk
|
|
4
|
-
|
|
5
|
-
This program is free software: you can redistribute it and/or modify
|
|
6
|
-
it under the terms of the GNU Affero General Public License as published by
|
|
7
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
8
|
-
(at your option) any later version.
|
|
9
|
-
|
|
10
|
-
This program is distributed in the hope that it will be useful,
|
|
11
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
GNU Affero General Public License for more details.
|
|
14
|
-
|
|
15
|
-
You should have received a copy of the GNU Affero General Public License
|
|
16
|
-
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
2
|
+
* Kibi — repo-local, per-branch, queryable long-term memory for software projects
|
|
3
|
+
* Copyright (C) 2026 Piotr Franczyk
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
export {
|
|
18
|
+
export { RULE_NAMES, RULES, getCanonicalRules, getDefaultRules, getEffectiveRules, getRuleDefinition, getRuleEnforcementClass, isCanonicalRule, ruleRunsByDefault, validateRuleName, } from "../utils/rule-registry.js";
|
|
19
19
|
export { buildStableRequirementIds, buildStrictWriteSet, modelRequirementClaims, normalizePropertyKey, normalizeSubjectKey, } from "../utils/strict-modeling.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-usage.d.ts","sourceRoot":"","sources":["../../src/public/diagnostic-usage.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"diagnostic-usage.d.ts","sourceRoot":"","sources":["../../src/public/diagnostic-usage.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAiCD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,MAAM,CAIR;AAkHD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EACnD,MAAM,EAAE,OAAO,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2EzB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAgC1E"}
|
|
@@ -7,7 +7,14 @@ function isRecord(value) {
|
|
|
7
7
|
function resultRecord(result) {
|
|
8
8
|
if (!isRecord(result))
|
|
9
9
|
return undefined;
|
|
10
|
-
|
|
10
|
+
if (isRecord(result.structuredContent))
|
|
11
|
+
return result.structuredContent;
|
|
12
|
+
// CLI JSON operations return the same versioned KibiResult envelope as MCP
|
|
13
|
+
// structuredContent. Unwrap its data before deriving operation-specific
|
|
14
|
+
// telemetry fields (coverage/proof fields in particular).
|
|
15
|
+
if (result.kibiProtocol === 1 && isRecord(result.data))
|
|
16
|
+
return result.data;
|
|
17
|
+
return result;
|
|
11
18
|
}
|
|
12
19
|
function stringArray(value) {
|
|
13
20
|
return Array.isArray(value)
|
|
@@ -56,8 +63,46 @@ const RECEIPT_GAP_CODES = new Set([
|
|
|
56
63
|
"stale_verification_receipt",
|
|
57
64
|
"failed_verification_receipt",
|
|
58
65
|
"invalid_verification_receipt",
|
|
66
|
+
"verification_contract_mismatch",
|
|
59
67
|
"verification_snapshot_unavailable",
|
|
60
68
|
]);
|
|
69
|
+
const MAX_COVERAGE_RECEIPT_GAPS = 50;
|
|
70
|
+
function coverageReceiptGapDetails(rows) {
|
|
71
|
+
const details = rows
|
|
72
|
+
.flatMap((row) => {
|
|
73
|
+
const codes = [...new Set(stringArray(row.proofGaps))]
|
|
74
|
+
.filter((code) => RECEIPT_GAP_CODES.has(code))
|
|
75
|
+
.sort();
|
|
76
|
+
if (codes.length === 0)
|
|
77
|
+
return [];
|
|
78
|
+
const stages = isRecord(row.proofStages) ? row.proofStages : undefined;
|
|
79
|
+
const passingE2e = isRecord(stages?.passingE2e)
|
|
80
|
+
? stages.passingE2e
|
|
81
|
+
: undefined;
|
|
82
|
+
const testIds = [
|
|
83
|
+
"missingReceiptTests",
|
|
84
|
+
"staleReceiptTests",
|
|
85
|
+
"failedReceiptTests",
|
|
86
|
+
"invalidReceiptTests",
|
|
87
|
+
"contractMismatchReceiptTests",
|
|
88
|
+
"snapshotUnavailableTests",
|
|
89
|
+
].flatMap((key) => stringArray(passingE2e?.[key]));
|
|
90
|
+
const requirementId = typeof row.id === "string" ? row.id : "unknown";
|
|
91
|
+
return [
|
|
92
|
+
{
|
|
93
|
+
requirementId,
|
|
94
|
+
testIds: [...new Set(testIds)].sort(),
|
|
95
|
+
codes,
|
|
96
|
+
},
|
|
97
|
+
];
|
|
98
|
+
})
|
|
99
|
+
.sort((left, right) => left.requirementId.localeCompare(right.requirementId));
|
|
100
|
+
return {
|
|
101
|
+
details: details.slice(0, MAX_COVERAGE_RECEIPT_GAPS),
|
|
102
|
+
total: details.length,
|
|
103
|
+
truncated: details.length > MAX_COVERAGE_RECEIPT_GAPS,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
61
106
|
function appendCoverageFields(fields, args, result) {
|
|
62
107
|
const rows = Array.isArray(result.rows) ? result.rows.filter(isRecord) : [];
|
|
63
108
|
const summary = isRecord(result.summary) ? result.summary : {};
|
|
@@ -73,6 +118,10 @@ function appendCoverageFields(fields, args, result) {
|
|
|
73
118
|
fields.coverage_proof_gap_count = gapCodes.length;
|
|
74
119
|
fields.coverage_gap_codes = [...new Set(gapCodes)].sort();
|
|
75
120
|
fields.coverage_receipt_gap_count = gapCodes.filter((code) => RECEIPT_GAP_CODES.has(code)).length;
|
|
121
|
+
const receiptGaps = coverageReceiptGapDetails(rows);
|
|
122
|
+
fields.coverage_receipt_gaps = receiptGaps.details;
|
|
123
|
+
fields.coverage_receipt_gap_total = receiptGaps.total;
|
|
124
|
+
fields.coverage_receipt_gaps_truncated = receiptGaps.truncated;
|
|
76
125
|
if (typeof scope?.complete === "boolean") {
|
|
77
126
|
fields.coverage_scope_complete = scope.complete;
|
|
78
127
|
}
|
|
@@ -93,6 +142,25 @@ export function deriveDiagnosticUsageFields(tool, args, telemetry, result) {
|
|
|
93
142
|
}
|
|
94
143
|
}
|
|
95
144
|
const structured = resultRecord(result);
|
|
145
|
+
const envelope = isRecord(structured) && structured.kibiProtocol === 1
|
|
146
|
+
? structured
|
|
147
|
+
: undefined;
|
|
148
|
+
if (envelope) {
|
|
149
|
+
fields.protocol_version = envelope.kibiProtocol;
|
|
150
|
+
fields.result_version =
|
|
151
|
+
typeof envelope.resultVersion === "string"
|
|
152
|
+
? envelope.resultVersion
|
|
153
|
+
: null;
|
|
154
|
+
fields.result_status =
|
|
155
|
+
typeof envelope.status === "string" ? envelope.status : null;
|
|
156
|
+
fields.effect_failures = Array.isArray(envelope.effects)
|
|
157
|
+
? envelope.effects.filter((effect) => isRecord(effect) && effect.status === "failed")
|
|
158
|
+
: [];
|
|
159
|
+
fields.followed_next_actions = Array.isArray(telemetry?.followed_next_actions)
|
|
160
|
+
? telemetry.followed_next_actions
|
|
161
|
+
: [];
|
|
162
|
+
fields.unsafe_original_retry = telemetry?.unsafe_original_retry === true;
|
|
163
|
+
}
|
|
96
164
|
if (tool === "kb_query" || tool === "kb_search") {
|
|
97
165
|
const resultCount = Number(structured?.count ?? 0);
|
|
98
166
|
fields.result_count = resultCount;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const DISTRIBUTION_PARITY_VERSION: "kibi.distribution-parity.v1";
|
|
2
|
-
export declare const REQUIREMENT_COMPILER_CAPABILITIES: readonly ["semantic_inventory", "contradiction_witnesses", "conservative_proof", "repair_plan", "verification_receipts", "telemetry_acceptance"];
|
|
2
|
+
export declare const REQUIREMENT_COMPILER_CAPABILITIES: readonly ["semantic_inventory", "contradiction_witnesses", "conservative_proof", "repair_plan", "verification_receipts", "verification_contract", "telemetry_acceptance"];
|
|
3
3
|
export type RequirementCompilerCapability = (typeof REQUIREMENT_COMPILER_CAPABILITIES)[number];
|
|
4
4
|
export type DistributionRuntimeKind = "source_checkout" | "packed_artifact" | "project_resolved";
|
|
5
5
|
export type DistributionSurface = "cli" | "mcp";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution-parity.d.ts","sourceRoot":"","sources":["../../src/public/distribution-parity.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,2BAA2B,EACtC,6BAAsC,CAAC;AAEzC,eAAO,MAAM,iCAAiC,
|
|
1
|
+
{"version":3,"file":"distribution-parity.d.ts","sourceRoot":"","sources":["../../src/public/distribution-parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore-policy.d.ts","sourceRoot":"","sources":["../../src/public/ignore-policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ignore-policy.d.ts","sourceRoot":"","sources":["../../src/public/ignore-policy.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,sBAAsB,IAAI,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE;AAoBD,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,CAiN1E"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { existsSync, readFileSync, readdirSync
|
|
1
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import ignore from "ignore";
|
|
4
|
+
import { DERIVED_KB_PREFIXES } from "../utils/kb-paths.js";
|
|
4
5
|
const HARD_DENYLIST = [
|
|
5
|
-
".kb",
|
|
6
6
|
".git",
|
|
7
7
|
"node_modules",
|
|
8
8
|
"vendor",
|
|
@@ -10,6 +10,8 @@ const HARD_DENYLIST = [
|
|
|
10
10
|
".sisyphus",
|
|
11
11
|
".opencode",
|
|
12
12
|
];
|
|
13
|
+
/** Derived .kb/ runtime trees. Authored knowledge lanes stay visible. */
|
|
14
|
+
const HARD_DENY_KB_PREFIXES = DERIVED_KB_PREFIXES;
|
|
13
15
|
function readIgnoreFileLines(filePath) {
|
|
14
16
|
if (!existsSync(filePath))
|
|
15
17
|
return [];
|
|
@@ -27,7 +29,7 @@ function readIgnoreFileLines(filePath) {
|
|
|
27
29
|
function toPosix(p) {
|
|
28
30
|
return p.split(path.sep).join("/");
|
|
29
31
|
}
|
|
30
|
-
// implements REQ-
|
|
32
|
+
// implements REQ-cli-canonical-runtime
|
|
31
33
|
export function createRepoIgnorePolicy(workspaceRoot) {
|
|
32
34
|
const root = path.resolve(workspaceRoot);
|
|
33
35
|
// Load root .gitignore
|
|
@@ -53,7 +55,8 @@ export function createRepoIgnorePolicy(workspaceRoot) {
|
|
|
53
55
|
// avoid descending into common heavy or control directories
|
|
54
56
|
if (HARD_DENYLIST.includes(name))
|
|
55
57
|
continue;
|
|
56
|
-
|
|
58
|
+
if (name === ".kb")
|
|
59
|
+
continue;
|
|
57
60
|
if (name === ".git")
|
|
58
61
|
continue;
|
|
59
62
|
walk(abs);
|
|
@@ -94,6 +97,11 @@ export function createRepoIgnorePolicy(workspaceRoot) {
|
|
|
94
97
|
}
|
|
95
98
|
function matchesHardDeny(relPosix) {
|
|
96
99
|
const segments = relPosix.split("/").filter(Boolean);
|
|
100
|
+
for (const prefix of HARD_DENY_KB_PREFIXES) {
|
|
101
|
+
if (relPosix === prefix || relPosix.startsWith(`${prefix}/`)) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
97
105
|
for (const deny of HARD_DENYLIST) {
|
|
98
106
|
if (segments.includes(deny))
|
|
99
107
|
return true;
|
|
@@ -160,6 +168,10 @@ export function createRepoIgnorePolicy(workspaceRoot) {
|
|
|
160
168
|
globs.push(`**/${d}/**`);
|
|
161
169
|
globs.push(`**/${d}`);
|
|
162
170
|
}
|
|
171
|
+
for (const prefix of HARD_DENY_KB_PREFIXES) {
|
|
172
|
+
globs.push(`**/${prefix}/**`);
|
|
173
|
+
globs.push(`**/${prefix}`);
|
|
174
|
+
}
|
|
163
175
|
// Root .gitignore patterns (convert to simple globs)
|
|
164
176
|
for (const p of rootGitPatterns) {
|
|
165
177
|
if (!p || p.startsWith("#") || p.startsWith("!"))
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { ExtractionResult } from "../../extractors/markdown.js";
|
|
2
2
|
import type { QualityDiagnostic } from "./types.js";
|
|
3
|
-
export declare function createCoverageDepthQualityDiagnostics(manifestResults: readonly ExtractionResult[]
|
|
3
|
+
export declare function createCoverageDepthQualityDiagnostics(manifestResults: readonly ExtractionResult[], proofByRequirement?: ReadonlyMap<string, Readonly<{
|
|
4
|
+
readonly proofStatus?: string;
|
|
5
|
+
readonly passingE2eStatus?: string;
|
|
6
|
+
readonly passingE2eTests?: readonly string[];
|
|
7
|
+
readonly receiptGapCodes?: readonly string[];
|
|
8
|
+
}>>): readonly QualityDiagnostic[];
|
|
4
9
|
//# sourceMappingURL=coverage-depth-quality.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-depth-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/coverage-depth-quality.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"coverage-depth-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/coverage-depth-quality.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAkRpD,wBAAgB,qCAAqC,CACnD,eAAe,EAAE,SAAS,gBAAgB,EAAE,EAC5C,kBAAkB,GAAE,WAAW,CAC7B,MAAM,EACN,QAAQ,CAAC;IACP,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C,CAAC,CACS,GACZ,SAAS,iBAAiB,EAAE,CAc9B"}
|
|
@@ -80,10 +80,16 @@ function coverageDepthSuggestion(coverageDepth) {
|
|
|
80
80
|
}
|
|
81
81
|
return "Add or link passing tests, preferably end-to-end or scenario-backed when this behavior warrants e2e confidence.";
|
|
82
82
|
}
|
|
83
|
-
function createDiagnostic(coverage) {
|
|
83
|
+
function createDiagnostic(coverage, proofEvidence) {
|
|
84
84
|
const coverageDepth = classifyCoverageDepth(coverage);
|
|
85
85
|
if (!isReviewableCoverageDepth(coverageDepth))
|
|
86
86
|
return undefined;
|
|
87
|
+
// Structural coverage and conservative proof are separate lanes. A current
|
|
88
|
+
// scenario-backed E2E receipt is strong execution evidence even when the
|
|
89
|
+
// requirement remains unresolved for ontology, symbol, or coordinate gaps.
|
|
90
|
+
// Do not emit a contradictory weak-depth review in that case.
|
|
91
|
+
if (proofEvidence?.passingE2eStatus === "passed")
|
|
92
|
+
return undefined;
|
|
87
93
|
const allTests = uniqueEntities([
|
|
88
94
|
...coverage.directTests,
|
|
89
95
|
...coverage.scenarioTests,
|
|
@@ -107,6 +113,18 @@ function createDiagnostic(coverage) {
|
|
|
107
113
|
scenarioTests: coverage.scenarioTests.map((test) => test.id),
|
|
108
114
|
testStatuses: uniqueStrings(allTests.map((test) => test.status)),
|
|
109
115
|
verificationScopes: uniqueStrings(allTests.map(testScope)),
|
|
116
|
+
...(proofEvidence?.proofStatus !== undefined
|
|
117
|
+
? { proofStatus: proofEvidence.proofStatus }
|
|
118
|
+
: {}),
|
|
119
|
+
...(proofEvidence?.passingE2eStatus !== undefined
|
|
120
|
+
? { passingE2eStatus: proofEvidence.passingE2eStatus }
|
|
121
|
+
: {}),
|
|
122
|
+
...(proofEvidence?.passingE2eTests !== undefined
|
|
123
|
+
? { passingE2eTests: [...proofEvidence.passingE2eTests] }
|
|
124
|
+
: {}),
|
|
125
|
+
...(proofEvidence?.receiptGapCodes !== undefined
|
|
126
|
+
? { receiptGapCodes: [...proofEvidence.receiptGapCodes] }
|
|
127
|
+
: {}),
|
|
110
128
|
},
|
|
111
129
|
};
|
|
112
130
|
}
|
|
@@ -167,12 +185,12 @@ function coverageForRequirement(result, manifestResults, entities) {
|
|
|
167
185
|
scenarioTests,
|
|
168
186
|
};
|
|
169
187
|
}
|
|
170
|
-
export function createCoverageDepthQualityDiagnostics(manifestResults) {
|
|
188
|
+
export function createCoverageDepthQualityDiagnostics(manifestResults, proofByRequirement = new Map()) {
|
|
171
189
|
const entities = entitiesById(manifestResults);
|
|
172
190
|
return manifestResults
|
|
173
191
|
.filter((result) => result.entity.type === "req")
|
|
174
192
|
.flatMap((result) => {
|
|
175
|
-
const diagnostic = createDiagnostic(coverageForRequirement(result, manifestResults, entities));
|
|
193
|
+
const diagnostic = createDiagnostic(coverageForRequirement(result, manifestResults, entities), proofByRequirement.get(result.entity.id));
|
|
176
194
|
return diagnostic === undefined ? [] : [diagnostic];
|
|
177
195
|
})
|
|
178
196
|
.toSorted((left, right) => (left.entityId ?? "").localeCompare(right.entityId ?? ""));
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PrologPort } from "../operations/runtime-types.js";
|
|
2
2
|
import type { QualityDiagnostic } from "./types.js";
|
|
3
3
|
type FullKbQualityDiagnosticsOptions = {
|
|
4
|
-
readonly prolog: Pick<
|
|
4
|
+
readonly prolog: Pick<PrologPort, "query">;
|
|
5
5
|
readonly hardViolationEntityIds?: ReadonlySet<string>;
|
|
6
6
|
readonly maxDiagnostics?: number;
|
|
7
7
|
readonly workspaceRoot?: string;
|
|
8
8
|
readonly now?: Date;
|
|
9
|
+
readonly verificationSnapshot?: string;
|
|
10
|
+
readonly checkedAt?: string;
|
|
9
11
|
};
|
|
10
12
|
export declare function collectFullKbQualityDiagnostics(options: FullKbQualityDiagnosticsOptions): Promise<readonly QualityDiagnostic[]>;
|
|
11
13
|
export {};
|
|
@@ -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":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAUjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAqBpD,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,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,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAoUF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAkCvC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { parseEntityFromList, parseListOfLists, parseTriples, } from "../../prolog/codec.js";
|
|
4
|
+
import { runOperationJsonQuery, toPrologAtom, toPrologList, } from "../operations/prolog-json.js";
|
|
4
5
|
import { analyzeTelemetryAcceptance, createTelemetryAcceptanceDiagnostics, parseTelemetryUsageLog, } from "../telemetry-acceptance.js";
|
|
6
|
+
import { VERIFICATION_RECEIPT_MAX_AGE_SECONDS } from "../verification-receipt.js";
|
|
5
7
|
import { createCoverageDepthQualityDiagnostics } from "./coverage-depth-quality.js";
|
|
6
8
|
import { createRequirementQualityDiagnostics } from "./requirement-quality.js";
|
|
7
9
|
import { createSymbolQualityDiagnostics } from "./symbol-quality.js";
|
|
@@ -172,6 +174,63 @@ async function loadKbExtractionResults(prolog) {
|
|
|
172
174
|
return result;
|
|
173
175
|
});
|
|
174
176
|
}
|
|
177
|
+
function stringArrayField(value) {
|
|
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;
|
|
186
|
+
return passingE2e &&
|
|
187
|
+
typeof passingE2e === "object" &&
|
|
188
|
+
!Array.isArray(passingE2e)
|
|
189
|
+
? passingE2e
|
|
190
|
+
: undefined;
|
|
191
|
+
}
|
|
192
|
+
async function loadCoverageProofEvidence(prolog, requirementCount, verificationSnapshot, checkedAt) {
|
|
193
|
+
if (verificationSnapshot === undefined ||
|
|
194
|
+
checkedAt === undefined ||
|
|
195
|
+
requirementCount === 0) {
|
|
196
|
+
return new Map();
|
|
197
|
+
}
|
|
198
|
+
let payload;
|
|
199
|
+
try {
|
|
200
|
+
payload = await runOperationJsonQuery(prolog, "discovery.pl", `discovery:coverage_report_json('req', ${toPrologList([])}, true, true, ${requirementCount}, 0, ${toPrologAtom(verificationSnapshot)}, ${toPrologAtom(checkedAt)}, ${VERIFICATION_RECEIPT_MAX_AGE_SECONDS}, JsonString)`, "Quality diagnostic coverage evidence");
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// Quality diagnostics must fail closed when the optional proof readback is
|
|
204
|
+
// unavailable; a failed advisory query must not make kb_check fail.
|
|
205
|
+
return new Map();
|
|
206
|
+
}
|
|
207
|
+
const evidence = new Map();
|
|
208
|
+
for (const row of payload.rows ?? []) {
|
|
209
|
+
const id = typeof row.id === "string" ? row.id : undefined;
|
|
210
|
+
if (id === undefined)
|
|
211
|
+
continue;
|
|
212
|
+
const passingE2e = proofStage(row);
|
|
213
|
+
const proofGaps = stringArrayField(row.proofGaps);
|
|
214
|
+
const passingE2eTests = stringArrayField(passingE2e?.tests);
|
|
215
|
+
evidence.set(id, {
|
|
216
|
+
...(typeof row.proofStatus === "string"
|
|
217
|
+
? { proofStatus: row.proofStatus }
|
|
218
|
+
: {}),
|
|
219
|
+
...(typeof passingE2e?.status === "string"
|
|
220
|
+
? { passingE2eStatus: passingE2e.status }
|
|
221
|
+
: {}),
|
|
222
|
+
...(passingE2eTests !== undefined ? { passingE2eTests } : {}),
|
|
223
|
+
...(proofGaps !== undefined
|
|
224
|
+
? {
|
|
225
|
+
receiptGapCodes: proofGaps.filter((gap) => gap.includes("verification_receipt") ||
|
|
226
|
+
gap.includes("verification_contract") ||
|
|
227
|
+
gap.includes("verification_snapshot")),
|
|
228
|
+
}
|
|
229
|
+
: {}),
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
return evidence;
|
|
233
|
+
}
|
|
175
234
|
function capDiagnostics(diagnostics, maxDiagnostics) {
|
|
176
235
|
return maxDiagnostics !== undefined && maxDiagnostics >= 0
|
|
177
236
|
? diagnostics.slice(0, maxDiagnostics)
|
|
@@ -224,7 +283,8 @@ export async function collectFullKbQualityDiagnostics(options) {
|
|
|
224
283
|
loadKbExtractionResults(options.prolog),
|
|
225
284
|
collectTelemetryDiagnostics(options.workspaceRoot, options.now ?? new Date()),
|
|
226
285
|
]);
|
|
227
|
-
const
|
|
286
|
+
const proofEvidence = await loadCoverageProofEvidence(options.prolog, manifestResults.filter((result) => result.entity.type === "req").length, options.verificationSnapshot, options.checkedAt);
|
|
287
|
+
const coverageDepthDiagnostics = createCoverageDepthQualityDiagnostics(manifestResults, proofEvidence);
|
|
228
288
|
const diagnostics = [
|
|
229
289
|
...telemetryDiagnostics,
|
|
230
290
|
...createRequirementQualityDiagnostics({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/public/impact/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAc3E,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,GACpB,SAAS,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/public/impact/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAc3E,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,GACpB,SAAS,gBAAgB,EAAE,CAkB7B;AAED,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,SAAS,gBAAgB,EAAE,GAC3C,cAAc,CAYhB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import { extractFromManifest } from "../../extractors/manifest.js";
|
|
4
|
-
import {
|
|
4
|
+
import { CANONICAL_ENTITY_PATHS } from "../../utils/kb-paths.js";
|
|
5
5
|
import { isTraceabilityRelationshipType } from "../symbol-granularity.js";
|
|
6
6
|
import { normalizeSourceFile } from "./source-changes.js";
|
|
7
7
|
function toTraceabilityRelationships(relationships) {
|
|
@@ -10,10 +10,7 @@ function toTraceabilityRelationships(relationships) {
|
|
|
10
10
|
.map((relationship) => ({ type: relationship.type, to: relationship.to }));
|
|
11
11
|
}
|
|
12
12
|
export function readImpactManifestResults(workspaceRoot) {
|
|
13
|
-
const
|
|
14
|
-
const symbolsPath = config.paths.symbols;
|
|
15
|
-
if (!symbolsPath)
|
|
16
|
-
return [];
|
|
13
|
+
const symbolsPath = CANONICAL_ENTITY_PATHS.symbols;
|
|
17
14
|
const absolutePath = path.isAbsolute(symbolsPath)
|
|
18
15
|
? symbolsPath
|
|
19
16
|
: path.resolve(workspaceRoot, symbolsPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operational-artifacts.d.ts","sourceRoot":"","sources":["../../src/public/operational-artifacts.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"operational-artifacts.d.ts","sourceRoot":"","sources":["../../src/public/operational-artifacts.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAanE"}
|