kibi-cli 0.14.0 → 0.17.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/bin/kibi +3 -1
- package/dist/cli-command.d.ts +5 -0
- package/dist/cli-command.d.ts.map +1 -0
- package/dist/cli-command.js +9 -0
- package/dist/cli-errors.d.ts +13 -0
- package/dist/cli-errors.d.ts.map +1 -0
- package/dist/cli-errors.js +26 -0
- package/dist/cli-input.d.ts +6 -0
- package/dist/cli-input.d.ts.map +1 -0
- package/dist/cli-input.js +54 -0
- package/dist/cli-json-command.d.ts +14 -0
- package/dist/cli-json-command.d.ts.map +1 -0
- package/dist/cli-json-command.js +96 -0
- package/dist/cli-protocol.d.ts +12 -0
- package/dist/cli-protocol.d.ts.map +1 -0
- package/dist/cli-protocol.js +37 -0
- package/dist/cli-register-foundation.d.ts +3 -0
- package/dist/cli-register-foundation.d.ts.map +1 -0
- package/dist/cli-register-foundation.js +90 -0
- package/dist/cli-register-maintenance.d.ts +3 -0
- package/dist/cli-register-maintenance.d.ts.map +1 -0
- package/dist/cli-register-maintenance.js +36 -0
- package/dist/cli-register-reporting.d.ts +3 -0
- package/dist/cli-register-reporting.d.ts.map +1 -0
- package/dist/cli-register-reporting.js +101 -0
- package/dist/cli-register-skills.d.ts +3 -0
- package/dist/cli-register-skills.d.ts.map +1 -0
- package/dist/cli-register-skills.js +71 -0
- package/dist/cli-validate.d.ts +18 -0
- package/dist/cli-validate.d.ts.map +1 -0
- package/dist/cli-validate.js +45 -0
- package/dist/cli.d.ts +4 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +48 -211
- package/dist/commands/aggregated-checks.d.ts +1 -1
- package/dist/commands/aggregated-checks.d.ts.map +1 -1
- package/dist/commands/aggregated-checks.js +28 -34
- package/dist/commands/check.d.ts +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +53 -95
- package/dist/commands/coverage.d.ts.map +1 -1
- package/dist/commands/coverage.js +12 -17
- 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 +6 -18
- package/dist/commands/gaps.d.ts.map +1 -1
- package/dist/commands/gaps.js +15 -19
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +15 -21
- package/dist/commands/query.d.ts +7 -7
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +98 -204
- package/dist/commands/search.d.ts +4 -4
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +14 -27
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +6 -7
- package/dist/commands/sync/manifest.d.ts +13 -2
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +31 -22
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +39 -1
- package/dist/extractors/markdown.d.ts +22 -2
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +50 -1
- package/dist/extractors/symbols-ts.d.ts.map +1 -1
- package/dist/extractors/symbols-ts.js +11 -1
- package/dist/logic/ir.d.ts +112 -0
- package/dist/logic/ir.d.ts.map +1 -0
- package/dist/logic/ir.js +729 -0
- package/dist/operations/autopilot/activation.d.ts +4 -0
- package/dist/operations/autopilot/activation.d.ts.map +1 -0
- package/dist/operations/autopilot/activation.js +130 -0
- package/dist/operations/autopilot/candidate-helpers.d.ts +13 -0
- package/dist/operations/autopilot/candidate-helpers.d.ts.map +1 -0
- package/dist/operations/autopilot/candidate-helpers.js +55 -0
- package/dist/operations/autopilot/candidates.d.ts +4 -0
- package/dist/operations/autopilot/candidates.d.ts.map +1 -0
- package/dist/operations/autopilot/candidates.js +114 -0
- package/dist/operations/autopilot/discovery-evidence.d.ts +10 -0
- package/dist/operations/autopilot/discovery-evidence.d.ts.map +1 -0
- package/dist/operations/autopilot/discovery-evidence.js +158 -0
- package/dist/operations/autopilot/discovery.d.ts +4 -0
- package/dist/operations/autopilot/discovery.d.ts.map +1 -0
- package/dist/operations/autopilot/discovery.js +100 -0
- package/dist/operations/autopilot/generate.d.ts +8 -0
- package/dist/operations/autopilot/generate.d.ts.map +1 -0
- package/dist/operations/autopilot/generate.js +112 -0
- package/dist/operations/autopilot/guidance-actions.d.ts +3 -0
- package/dist/operations/autopilot/guidance-actions.d.ts.map +1 -0
- package/dist/operations/autopilot/guidance-actions.js +79 -0
- package/dist/operations/autopilot/guidance.d.ts +14 -0
- package/dist/operations/autopilot/guidance.d.ts.map +1 -0
- package/dist/operations/autopilot/guidance.js +124 -0
- package/dist/operations/autopilot/markdown-candidates.d.ts +7 -0
- package/dist/operations/autopilot/markdown-candidates.d.ts.map +1 -0
- package/dist/operations/autopilot/markdown-candidates.js +134 -0
- package/dist/operations/autopilot/presentation.d.ts +13 -0
- package/dist/operations/autopilot/presentation.d.ts.map +1 -0
- package/dist/operations/autopilot/presentation.js +91 -0
- package/dist/operations/autopilot/requirement-claims.d.ts +3 -0
- package/dist/operations/autopilot/requirement-claims.d.ts.map +1 -0
- package/dist/operations/autopilot/requirement-claims.js +48 -0
- package/dist/operations/autopilot/types.d.ts +117 -0
- package/dist/operations/autopilot/types.d.ts.map +1 -0
- package/dist/operations/autopilot/types.js +8 -0
- package/dist/operations/modeling/logic-modeling.d.ts +22 -0
- package/dist/operations/modeling/logic-modeling.d.ts.map +1 -0
- package/dist/operations/modeling/logic-modeling.js +111 -0
- package/dist/operations/modeling/model-requirement.d.ts +10 -0
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -0
- package/dist/operations/modeling/model-requirement.js +164 -0
- package/dist/operations/modeling/predicate-applyplan.d.ts +6 -0
- package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-applyplan.js +117 -0
- package/dist/operations/modeling/predicate-catalog-1.d.ts +3 -0
- package/dist/operations/modeling/predicate-catalog-1.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-catalog-1.js +200 -0
- package/dist/operations/modeling/predicate-catalog-2.d.ts +3 -0
- package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-catalog-2.js +197 -0
- package/dist/operations/modeling/predicate-catalog-3.d.ts +3 -0
- package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-catalog-3.js +193 -0
- package/dist/operations/modeling/predicate-catalog-4.d.ts +3 -0
- package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-catalog-4.js +149 -0
- package/dist/operations/modeling/predicate-catalog.d.ts +5 -0
- package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-catalog.js +29 -0
- package/dist/operations/modeling/predicate-inference-1.d.ts +16 -0
- package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference-1.js +161 -0
- package/dist/operations/modeling/predicate-inference-2.d.ts +19 -0
- package/dist/operations/modeling/predicate-inference-2.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference-2.js +169 -0
- package/dist/operations/modeling/predicate-inference-3.d.ts +15 -0
- package/dist/operations/modeling/predicate-inference-3.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference-3.js +163 -0
- package/dist/operations/modeling/predicate-inference.d.ts +5 -0
- package/dist/operations/modeling/predicate-inference.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference.js +163 -0
- package/dist/operations/modeling/predicate-loader.d.ts +10 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-loader.js +94 -0
- package/dist/operations/modeling/predicate-ranker.d.ts +3 -0
- package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-ranker.js +62 -0
- package/dist/operations/modeling/predicate-score-1.d.ts +3 -0
- package/dist/operations/modeling/predicate-score-1.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-score-1.js +121 -0
- package/dist/operations/modeling/predicate-score-2.d.ts +3 -0
- package/dist/operations/modeling/predicate-score-2.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-score-2.js +122 -0
- package/dist/operations/modeling/predicate-score-3.d.ts +3 -0
- package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-score-3.js +54 -0
- package/dist/operations/modeling/predicate-types.d.ts +64 -0
- package/dist/operations/modeling/predicate-types.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-types.js +1 -0
- package/dist/operations/modeling/predicate-usage-hints-1.d.ts +3 -0
- package/dist/operations/modeling/predicate-usage-hints-1.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-usage-hints-1.js +211 -0
- package/dist/operations/modeling/predicate-usage-hints-2.d.ts +3 -0
- package/dist/operations/modeling/predicate-usage-hints-2.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-usage-hints-2.js +209 -0
- package/dist/operations/modeling/predicate-usage-hints-3.d.ts +3 -0
- package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-usage-hints-3.js +45 -0
- package/dist/operations/modeling/predicate-utils.d.ts +23 -0
- package/dist/operations/modeling/predicate-utils.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-utils.js +187 -0
- package/dist/operations/modeling/requirement-applyplan.d.ts +4 -0
- package/dist/operations/modeling/requirement-applyplan.d.ts.map +1 -0
- package/dist/operations/modeling/requirement-applyplan.js +44 -0
- package/dist/operations/modeling/requirement-heuristics.d.ts +4 -0
- package/dist/operations/modeling/requirement-heuristics.d.ts.map +1 -0
- package/dist/operations/modeling/requirement-heuristics.js +114 -0
- package/dist/operations/modeling/requirement-modeler.d.ts +8 -0
- package/dist/operations/modeling/requirement-modeler.d.ts.map +1 -0
- package/dist/operations/modeling/requirement-modeler.js +70 -0
- package/dist/operations/modeling/requirement-types.d.ts +61 -0
- package/dist/operations/modeling/requirement-types.d.ts.map +1 -0
- package/dist/operations/modeling/requirement-types.js +1 -0
- package/dist/operations/modeling/requirement-utils.d.ts +10 -0
- package/dist/operations/modeling/requirement-utils.d.ts.map +1 -0
- package/dist/operations/modeling/requirement-utils.js +65 -0
- package/dist/operations/modeling/suggest-predicates.d.ts +6 -0
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -0
- package/dist/operations/modeling/suggest-predicates.js +64 -0
- package/dist/operations/mutation/audit.d.ts +6 -0
- package/dist/operations/mutation/audit.d.ts.map +1 -0
- package/dist/operations/mutation/audit.js +22 -0
- package/dist/operations/mutation/contradictions.d.ts +10 -0
- package/dist/operations/mutation/contradictions.d.ts.map +1 -0
- package/dist/operations/mutation/contradictions.js +40 -0
- package/dist/operations/mutation/delete.d.ts +5 -0
- package/dist/operations/mutation/delete.d.ts.map +1 -0
- package/dist/operations/mutation/delete.js +67 -0
- package/dist/operations/mutation/relationships.d.ts +17 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -0
- package/dist/operations/mutation/relationships.js +142 -0
- package/dist/operations/mutation/save.d.ts +4 -0
- package/dist/operations/mutation/save.d.ts.map +1 -0
- package/dist/operations/mutation/save.js +14 -0
- package/dist/operations/mutation/serialization.d.ts +5 -0
- package/dist/operations/mutation/serialization.d.ts.map +1 -0
- package/dist/operations/mutation/serialization.js +88 -0
- package/dist/operations/mutation/strict-fact.d.ts +4 -0
- package/dist/operations/mutation/strict-fact.d.ts.map +1 -0
- package/dist/operations/mutation/strict-fact.js +132 -0
- package/dist/operations/mutation/symbol-granularity.d.ts +4 -0
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -0
- package/dist/operations/mutation/symbol-granularity.js +109 -0
- package/dist/operations/mutation/symbol-refresh.d.ts +10 -0
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -0
- package/dist/operations/mutation/symbol-refresh.js +105 -0
- package/dist/operations/mutation/types.d.ts +43 -0
- package/dist/operations/mutation/types.d.ts.map +1 -0
- package/dist/operations/mutation/types.js +1 -0
- package/dist/operations/mutation/upsert.d.ts +5 -0
- package/dist/operations/mutation/upsert.d.ts.map +1 -0
- package/dist/operations/mutation/upsert.js +103 -0
- package/dist/operations/mutation/validate-upsert.d.ts +5 -0
- package/dist/operations/mutation/validate-upsert.d.ts.map +1 -0
- package/dist/operations/mutation/validate-upsert.js +50 -0
- package/dist/operations/mutation/validation.d.ts +5 -0
- package/dist/operations/mutation/validation.d.ts.map +1 -0
- package/dist/operations/mutation/validation.js +107 -0
- package/dist/operations/mutation/warnings.d.ts +4 -0
- package/dist/operations/mutation/warnings.d.ts.map +1 -0
- package/dist/operations/mutation/warnings.js +17 -0
- package/dist/operations/semantic-advisor/analysis-receipt.d.ts +5 -0
- package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/analysis-receipt.js +120 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts +5 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/analyze-prose.js +693 -0
- package/dist/operations/semantic-advisor/clauses.d.ts +10 -0
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/clauses.js +43 -0
- package/dist/operations/semantic-advisor/observation-plan.d.ts +3 -0
- package/dist/operations/semantic-advisor/observation-plan.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/observation-plan.js +31 -0
- package/dist/operations/semantic-advisor/predicate-rule.d.ts +14 -0
- package/dist/operations/semantic-advisor/predicate-rule.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rule.js +22 -0
- package/dist/operations/semantic-advisor/predicate-rules-core.d.ts +79 -0
- package/dist/operations/semantic-advisor/predicate-rules-core.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-core.js +140 -0
- package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts +83 -0
- package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-policy.js +150 -0
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts +48 -0
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.js +102 -0
- package/dist/operations/semantic-advisor/predicate-rules-product.d.ts +71 -0
- package/dist/operations/semantic-advisor/predicate-rules-product.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-product.js +133 -0
- package/dist/operations/semantic-advisor/prose-coverage-evaluator.d.ts +29 -0
- package/dist/operations/semantic-advisor/prose-coverage-evaluator.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/prose-coverage-evaluator.js +54 -0
- package/dist/operations/semantic-advisor/shared.d.ts +19 -0
- package/dist/operations/semantic-advisor/shared.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/shared.js +209 -0
- package/dist/operations/semantic-advisor/strict-count-rules.d.ts +4 -0
- package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/strict-count-rules.js +62 -0
- package/dist/operations/semantic-advisor/strict-rules.d.ts +4 -0
- package/dist/operations/semantic-advisor/strict-rules.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/strict-rules.js +106 -0
- package/dist/operations/semantic-advisor/types.d.ts +195 -0
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/types.js +1 -0
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +20 -3
- package/dist/prolog.d.ts +5 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +89 -32
- package/dist/public/impact/diagnostics.d.ts.map +1 -1
- package/dist/public/impact/diagnostics.js +8 -4
- package/dist/public/impact/full-kb-quality.d.ts +1 -1
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +34 -1
- package/dist/public/impact/requirement-quality.d.ts.map +1 -1
- package/dist/public/impact/requirement-quality.js +6 -23
- package/dist/public/operations/catalog.d.ts +986 -0
- package/dist/public/operations/catalog.d.ts.map +1 -0
- package/dist/public/operations/catalog.js +42 -0
- package/dist/public/operations/check-executor.d.ts +21 -0
- package/dist/public/operations/check-executor.d.ts.map +1 -0
- package/dist/public/operations/check-executor.js +111 -0
- package/dist/public/operations/check-format-shared.d.ts +36 -0
- package/dist/public/operations/check-format-shared.d.ts.map +1 -0
- package/dist/public/operations/check-format-shared.js +107 -0
- package/dist/public/operations/check-helpers.d.ts +10 -0
- package/dist/public/operations/check-helpers.d.ts.map +1 -0
- package/dist/public/operations/check-helpers.js +107 -0
- package/dist/public/operations/discovery-entities.d.ts +14 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -0
- package/dist/public/operations/discovery-entities.js +91 -0
- package/dist/public/operations/discovery-executors.d.ts +39 -0
- package/dist/public/operations/discovery-executors.d.ts.map +1 -0
- package/dist/public/operations/discovery-executors.js +101 -0
- package/dist/public/operations/index.d.ts +21 -0
- package/dist/public/operations/index.d.ts.map +1 -0
- package/dist/public/operations/index.js +19 -0
- package/dist/public/operations/node-ports.d.ts +15 -0
- package/dist/public/operations/node-ports.d.ts.map +1 -0
- package/dist/public/operations/node-ports.js +57 -0
- package/dist/public/operations/prolog-json.d.ts +5 -0
- package/dist/public/operations/prolog-json.d.ts.map +1 -0
- package/dist/public/operations/prolog-json.js +44 -0
- package/dist/public/operations/runtime-types.d.ts +69 -0
- package/dist/public/operations/runtime-types.d.ts.map +1 -0
- package/dist/public/operations/runtime-types.js +17 -0
- package/dist/public/operations/specs/autopilot.d.ts +82 -0
- package/dist/public/operations/specs/autopilot.d.ts.map +1 -0
- package/dist/public/operations/specs/autopilot.js +72 -0
- package/dist/public/operations/specs/check.d.ts +51 -0
- package/dist/public/operations/specs/check.d.ts.map +1 -0
- package/dist/public/operations/specs/check.js +65 -0
- package/dist/public/operations/specs/discovery.d.ts +94 -0
- package/dist/public/operations/specs/discovery.d.ts.map +1 -0
- package/dist/public/operations/specs/discovery.js +98 -0
- package/dist/public/operations/specs/modeling.d.ts +142 -0
- package/dist/public/operations/specs/modeling.d.ts.map +1 -0
- package/dist/public/operations/specs/modeling.js +133 -0
- package/dist/public/operations/specs/mutation-schemas.d.ts +268 -0
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -0
- package/dist/public/operations/specs/mutation-schemas.js +294 -0
- package/dist/public/operations/specs/mutation.d.ts +56 -0
- package/dist/public/operations/specs/mutation.d.ts.map +1 -0
- package/dist/public/operations/specs/mutation.js +44 -0
- package/dist/public/operations/specs/reporting.d.ts +185 -0
- package/dist/public/operations/specs/reporting.d.ts.map +1 -0
- package/dist/public/operations/specs/reporting.js +158 -0
- package/dist/public/operations/specs/semantic.d.ts +81 -0
- package/dist/public/operations/specs/semantic.d.ts.map +1 -0
- package/dist/public/operations/specs/semantic.js +137 -0
- package/dist/public/operations/specs/skills.d.ts +70 -0
- package/dist/public/operations/specs/skills.d.ts.map +1 -0
- package/dist/public/operations/specs/skills.js +107 -0
- package/dist/public/operations/specs/sparql.d.ts +39 -0
- package/dist/public/operations/specs/sparql.d.ts.map +1 -0
- package/dist/public/operations/specs/sparql.js +121 -0
- package/dist/public/operations/specs/upsert.d.ts +291 -0
- package/dist/public/operations/specs/upsert.d.ts.map +1 -0
- package/dist/public/operations/specs/upsert.js +27 -0
- package/dist/public/operations/types.d.ts +24 -0
- package/dist/public/operations/types.d.ts.map +1 -0
- package/dist/public/operations/types.js +1 -0
- package/dist/public/schemas/entity.d.ts.map +1 -1
- package/dist/public/schemas/entity.js +317 -0
- package/dist/public/schemas/relationship.d.ts.map +1 -1
- package/dist/public/schemas/relationship.js +1 -0
- package/dist/public/skill-system/errors.d.ts +19 -0
- package/dist/public/skill-system/errors.d.ts.map +1 -0
- package/dist/public/skill-system/errors.js +36 -0
- package/dist/public/skill-system/loader.d.ts +9 -0
- package/dist/public/skill-system/loader.d.ts.map +1 -0
- package/dist/public/skill-system/loader.js +76 -0
- package/dist/public/skill-system/paths.d.ts +6 -0
- package/dist/public/skill-system/paths.d.ts.map +1 -0
- package/dist/public/skill-system/paths.js +25 -0
- package/dist/public/skill-system/types.d.ts +15 -0
- package/dist/public/skill-system/types.d.ts.map +1 -0
- package/dist/public/skill-system/types.js +1 -0
- package/dist/public/skill-system/validation.d.ts +10 -0
- package/dist/public/skill-system/validation.d.ts.map +1 -0
- package/dist/public/skill-system/validation.js +119 -0
- package/dist/public/skills/init-kibi/SKILL.md +62 -0
- package/dist/public/skills/kibi-freshness/SKILL.md +44 -0
- package/dist/public/skills/kibi-traceability/SKILL.md +54 -0
- package/dist/public/skills/kibi-usage/SKILL.md +145 -99
- package/dist/public/skills/kibi-usage/resources/fact-lanes.md +112 -0
- package/dist/public/skills/kibi-usage/resources/logic-ir.md +43 -0
- package/dist/public/skills/kibi-usage/resources/operation-access.md +44 -0
- package/dist/public/skills/kibi-usage/resources/ui-requirements.md +96 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +41 -3
- package/dist/public/skills.d.ts +4 -41
- package/dist/public/skills.d.ts.map +1 -1
- package/dist/public/skills.js +3 -270
- package/dist/public/symbol-granularity.d.ts +9 -0
- package/dist/public/symbol-granularity.d.ts.map +1 -1
- package/dist/public/symbol-granularity.js +16 -0
- package/dist/runtime/cli-runtime.d.ts +3 -0
- package/dist/runtime/cli-runtime.d.ts.map +1 -0
- package/dist/runtime/cli-runtime.js +96 -0
- package/dist/schemas/entity.schema.json +329 -3
- package/dist/traceability/staged-diagnostics.d.ts +2 -2
- package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
- package/dist/traceability/staged-diagnostics.js +17 -10
- package/dist/traceability/staged-impact-contract.js +1 -1
- package/dist/traceability/staged-symbols-manifest.d.ts +1 -0
- package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
- package/dist/traceability/staged-symbols-manifest.js +53 -24
- package/dist/traceability/symbol-extract.d.ts.map +1 -1
- package/dist/traceability/symbol-extract.js +17 -1
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +47 -1
- package/dist/types/entities.d.ts +3 -0
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/types/relationships.d.ts +1 -1
- package/dist/types/relationships.d.ts.map +1 -1
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.js +24 -0
- package/dist/utils/schema-version.d.ts +1 -1
- package/dist/utils/schema-version.js +1 -1
- package/package.json +60 -2
- package/src/public/impact/diagnostics.ts +18 -11
- package/src/public/impact/full-kb-quality.ts +30 -3
- package/src/public/impact/requirement-quality.ts +6 -26
- package/src/public/operations/catalog.ts +60 -0
- package/src/public/operations/check-executor.ts +185 -0
- package/src/public/operations/check-format-shared.ts +178 -0
- package/src/public/operations/check-helpers.ts +141 -0
- package/src/public/operations/discovery-entities.ts +122 -0
- package/src/public/operations/discovery-executors.ts +176 -0
- package/src/public/operations/index.ts +20 -0
- package/src/public/operations/node-ports.ts +78 -0
- package/src/public/operations/prolog-json.ts +71 -0
- package/src/public/operations/runtime-types.ts +106 -0
- package/src/public/operations/specs/autopilot.ts +98 -0
- package/src/public/operations/specs/check.ts +75 -0
- package/src/public/operations/specs/discovery.ts +126 -0
- package/src/public/operations/specs/modeling.ts +174 -0
- package/src/public/operations/specs/mutation-schemas.ts +326 -0
- package/src/public/operations/specs/mutation.ts +58 -0
- package/src/public/operations/specs/reporting.ts +249 -0
- package/src/public/operations/specs/semantic.ts +174 -0
- package/src/public/operations/specs/skills.ts +142 -0
- package/src/public/operations/specs/sparql.ts +149 -0
- package/src/public/operations/specs/upsert.ts +40 -0
- package/src/public/operations/types.ts +57 -0
- package/src/public/schemas/entity.ts +324 -1
- package/src/public/schemas/relationship.ts +1 -0
- package/src/public/skill-system/errors.ts +38 -0
- package/src/public/skill-system/loader.ts +108 -0
- package/src/public/skill-system/paths.ts +27 -0
- package/src/public/skill-system/types.ts +14 -0
- package/src/public/skill-system/validation.ts +175 -0
- package/src/public/skills/init-kibi/SKILL.md +62 -0
- package/src/public/skills/kibi-freshness/SKILL.md +44 -0
- package/src/public/skills/kibi-traceability/SKILL.md +54 -0
- package/src/public/skills/kibi-usage/SKILL.md +145 -99
- package/src/public/skills/kibi-usage/resources/fact-lanes.md +112 -0
- package/src/public/skills/kibi-usage/resources/logic-ir.md +43 -0
- package/src/public/skills/kibi-usage/resources/operation-access.md +44 -0
- package/src/public/skills/kibi-usage/resources/ui-requirements.md +96 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +41 -3
- package/src/public/skills.ts +18 -427
- package/src/public/symbol-granularity.ts +25 -0
- package/src/schemas/entity.schema.json +329 -3
- package/src/schemas/relationship.schema.json +1 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { Project, ScriptKind } from "ts-morph";
|
|
2
|
+
import { Project, Scope, ScriptKind } from "ts-morph";
|
|
3
3
|
import { readManifestWithCoordinateOverlay } from "../extractors/manifest.js";
|
|
4
4
|
import { inferSymbolRole, } from "../public/symbol-granularity.js";
|
|
5
5
|
const TRACEABILITY_RELATIONSHIP_TYPES = new Set([
|
|
@@ -241,6 +241,8 @@ stagedFile, manifestLookup) {
|
|
|
241
241
|
? cls.getMethods()
|
|
242
242
|
: []) {
|
|
243
243
|
try {
|
|
244
|
+
if (isPrivateClassMember(method))
|
|
245
|
+
continue;
|
|
244
246
|
const name = formatMethodSymbolName(cls.getName(), method.getName());
|
|
245
247
|
const start = method.getNameNode()?.getStart() ?? method.getStart();
|
|
246
248
|
const end = method.getEnd();
|
|
@@ -259,6 +261,8 @@ stagedFile, manifestLookup) {
|
|
|
259
261
|
? cls.getProperties()
|
|
260
262
|
: []) {
|
|
261
263
|
try {
|
|
264
|
+
if (isPrivateClassMember(property))
|
|
265
|
+
continue;
|
|
262
266
|
const name = formatMethodSymbolName(cls.getName(), property.getName());
|
|
263
267
|
const start = property.getNameNode()?.getStart() ?? property.getStart();
|
|
264
268
|
const end = property.getEnd();
|
|
@@ -282,6 +286,8 @@ stagedFile, manifestLookup) {
|
|
|
282
286
|
: []),
|
|
283
287
|
]) {
|
|
284
288
|
try {
|
|
289
|
+
if (isPrivateClassMember(accessor))
|
|
290
|
+
continue;
|
|
285
291
|
const name = formatMethodSymbolName(cls.getName(), accessor.getName());
|
|
286
292
|
const start = accessor.getNameNode()?.getStart() ?? accessor.getStart();
|
|
287
293
|
const end = accessor.getEnd();
|
|
@@ -373,6 +379,16 @@ stagedFile, manifestLookup) {
|
|
|
373
379
|
}
|
|
374
380
|
return results;
|
|
375
381
|
}
|
|
382
|
+
function isPrivateClassMember(member) {
|
|
383
|
+
const name = typeof member.getName === "function" ? member.getName() : "";
|
|
384
|
+
if (name.startsWith("#")) {
|
|
385
|
+
return true;
|
|
386
|
+
}
|
|
387
|
+
if (typeof member.getScope === "function") {
|
|
388
|
+
return member.getScope() === Scope.Private;
|
|
389
|
+
}
|
|
390
|
+
return false;
|
|
391
|
+
}
|
|
376
392
|
function formatMethodSymbolName(className, methodName) {
|
|
377
393
|
return className ? `${className}.${methodName}` : methodName;
|
|
378
394
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temp-kb.d.ts","sourceRoot":"","sources":["../../src/traceability/temp-kb.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,aAAa,GACpD,IAAI,CAEN;
|
|
1
|
+
{"version":3,"file":"temp-kb.d.ts","sourceRoot":"","sources":["../../src/traceability/temp-kb.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,aAAa,GACpD,IAAI,CAEN;AAuMD,iBAAe,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/D;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6C7E;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAkBrE;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BlE"}
|
|
@@ -50,9 +50,31 @@ const FACT_STRING_FIELDS = new Set([
|
|
|
50
50
|
"valid_from",
|
|
51
51
|
"valid_to",
|
|
52
52
|
"canonical_key",
|
|
53
|
+
"claim_key",
|
|
54
|
+
"claim_text",
|
|
55
|
+
"predicate_name",
|
|
56
|
+
"predicate_namespace",
|
|
57
|
+
"rule_hash",
|
|
58
|
+
"rule_schema_id",
|
|
59
|
+
"rule_name",
|
|
60
|
+
"semantic_key",
|
|
61
|
+
]);
|
|
62
|
+
const FACT_NUMBER_FIELDS = new Set([
|
|
63
|
+
"value_int",
|
|
64
|
+
"value_number",
|
|
65
|
+
"predicate_arity",
|
|
66
|
+
"claim_span_start",
|
|
67
|
+
"claim_span_end",
|
|
53
68
|
]);
|
|
54
|
-
const FACT_NUMBER_FIELDS = new Set(["value_int", "value_number"]);
|
|
55
69
|
const FACT_BOOLEAN_FIELDS = new Set(["value_bool", "closed_world"]);
|
|
70
|
+
const FACT_STRING_ARRAY_FIELDS = new Set([
|
|
71
|
+
"argument_names",
|
|
72
|
+
"argument_types",
|
|
73
|
+
"argument_descriptions",
|
|
74
|
+
"aliases",
|
|
75
|
+
"examples",
|
|
76
|
+
"predicate_args",
|
|
77
|
+
]);
|
|
56
78
|
function isTraceEnabled() {
|
|
57
79
|
return isCliTraceOrDebugEnabled();
|
|
58
80
|
}
|
|
@@ -78,6 +100,10 @@ function serializeTypedFactFields(entity) {
|
|
|
78
100
|
fields.push(`${field}=${toPrologString(String(value))}`);
|
|
79
101
|
}
|
|
80
102
|
}
|
|
103
|
+
const ruleIr = getEntityField(entity, "rule_ir");
|
|
104
|
+
if (ruleIr !== undefined && ruleIr !== null) {
|
|
105
|
+
fields.push(`rule_ir=${toPrologString(JSON.stringify(ruleIr))}`);
|
|
106
|
+
}
|
|
81
107
|
for (const field of FACT_ATOM_FIELDS) {
|
|
82
108
|
const value = getEntityField(entity, field);
|
|
83
109
|
if (value !== undefined && value !== null) {
|
|
@@ -99,6 +125,12 @@ function serializeTypedFactFields(entity) {
|
|
|
99
125
|
fields.push(`${field}=${value}`);
|
|
100
126
|
}
|
|
101
127
|
}
|
|
128
|
+
for (const field of FACT_STRING_ARRAY_FIELDS) {
|
|
129
|
+
const value = getEntityField(entity, field);
|
|
130
|
+
if (Array.isArray(value)) {
|
|
131
|
+
fields.push(`${field}=[${value.map((item) => toPrologString(String(item))).join(",")}]`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
102
134
|
return fields;
|
|
103
135
|
}
|
|
104
136
|
function buildEntityAssertionGoal(entity) {
|
|
@@ -121,9 +153,23 @@ function buildEntityAssertionGoal(entity) {
|
|
|
121
153
|
props.push(`severity=${toPrologAtom(entity.severity)}`);
|
|
122
154
|
if (entity.text_ref)
|
|
123
155
|
props.push(`text_ref=${toPrologString(entity.text_ref)}`);
|
|
156
|
+
if (entity.type === "req" && entity.logic_claims) {
|
|
157
|
+
props.push(`logic_claims=[${entity.logic_claims.map(toPrologAtom).join(",")}]`);
|
|
158
|
+
}
|
|
159
|
+
if (entity.type === "req" && entity.semantic_inventory) {
|
|
160
|
+
props.push(`semantic_inventory=${toPrologString(JSON.stringify(entity.semantic_inventory))}`);
|
|
161
|
+
}
|
|
124
162
|
if (entity.type === "fact") {
|
|
125
163
|
props.push(...serializeTypedFactFields(entity));
|
|
126
164
|
}
|
|
165
|
+
if (entity.type === "test") {
|
|
166
|
+
if (entity.verification_scope !== undefined) {
|
|
167
|
+
props.push(`verification_scope=${toPrologAtom(entity.verification_scope)}`);
|
|
168
|
+
}
|
|
169
|
+
if (entity.verification_perspective !== undefined) {
|
|
170
|
+
props.push(`verification_perspective=${toPrologAtom(entity.verification_perspective)}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
127
173
|
return `kb_assert_entity_no_audit(${entity.type}, [${props.join(", ")}])`;
|
|
128
174
|
}
|
|
129
175
|
function buildRelationshipAssertionGoal(relationship) {
|
package/dist/types/entities.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export interface FactFields {
|
|
|
29
29
|
valid_from?: string;
|
|
30
30
|
valid_to?: string;
|
|
31
31
|
canonical_key?: string;
|
|
32
|
+
claim_key?: string;
|
|
33
|
+
claim_text?: string;
|
|
32
34
|
predicate_name?: string;
|
|
33
35
|
predicate_namespace?: string;
|
|
34
36
|
predicate_arity?: number;
|
|
@@ -45,6 +47,7 @@ export interface TestVerificationFields {
|
|
|
45
47
|
}
|
|
46
48
|
export type Requirement = BaseEntity & {
|
|
47
49
|
type: "req";
|
|
50
|
+
logic_claims?: string[];
|
|
48
51
|
};
|
|
49
52
|
export type Scenario = BaseEntity & {
|
|
50
53
|
type: "scenario";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/types/entities.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EACN,SAAS,GACT,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,kBAAkB,GAClB,WAAW,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IACtD,UAAU,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IAC3D,wBAAwB,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACpD;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG;
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/types/entities.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EACN,SAAS,GACT,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,kBAAkB,GAClB,WAAW,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IACtD,UAAU,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IAC3D,wBAAwB,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACpD;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG;IACrC,IAAI,EAAE,KAAK,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAChF,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAC/C,MAAM,MAAM,IAAI,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACjD,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AACrD,MAAM,MAAM,IAAI,GAAG,UAAU,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,MAAM,GACd,WAAW,GACX,QAAQ,GACR,UAAU,GACV,GAAG,GACH,IAAI,GACJ,KAAK,GACL,MAAM,GACN,IAAI,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export interface BaseRelationship {
|
|
2
|
-
type: "depends_on" | "specified_by" | "verified_by" | "validates" | "implements" | "covered_by" | "executable_for" | "constrained_by" | "constrains" | "requires_property" | "requires_predicate" | "guards" | "publishes" | "consumes" | "supersedes" | "relates_to";
|
|
2
|
+
type: "depends_on" | "specified_by" | "verified_by" | "validates" | "implements" | "covered_by" | "executable_for" | "constrained_by" | "constrains" | "requires_property" | "requires_predicate" | "requires_rule" | "guards" | "publishes" | "consumes" | "supersedes" | "relates_to";
|
|
3
3
|
from: string;
|
|
4
4
|
to: string;
|
|
5
5
|
created_at?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/types/relationships.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EACA,YAAY,GACZ,cAAc,GACd,aAAa,GACb,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,GACpB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,YAAY,GACZ,YAAY,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAe,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/types/relationships.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EACA,YAAY,GACZ,cAAc,GACd,aAAa,GACb,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,QAAQ,GACR,WAAW,GACX,UAAU,GACV,YAAY,GACZ,YAAY,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-registry.d.ts","sourceRoot":"","sources":["../../src/utils/rule-registry.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACnE;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,kBAAkB,EAAE,yBAAyB,CAAC;CAC/C;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"rule-registry.d.ts","sourceRoot":"","sources":["../../src/utils/rule-registry.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACnE;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,kBAAkB,EAAE,yBAAyB,CAAC;CAC/C;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,cAAc,EAsHjC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,aAAoC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAKnC,CAAC;AAEF;;;;;GAKG;AAEH,wBAAgB,iBAAiB,CAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,CAAC,CAsBb;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,YAAY,CAWd"}
|
|
@@ -93,6 +93,30 @@ export const RULES = [
|
|
|
93
93
|
defaultEnabled: false,
|
|
94
94
|
category: "integrity",
|
|
95
95
|
},
|
|
96
|
+
{
|
|
97
|
+
name: "logic-coverage",
|
|
98
|
+
description: "Require every explicitly declared atomic requirement claim to be grounded by a linked strict-property or predicate fact",
|
|
99
|
+
defaultEnabled: true,
|
|
100
|
+
category: "integrity",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "rule-safety",
|
|
104
|
+
description: "Stored Logic IR rules use only the typed, bounded, stratified vocabulary",
|
|
105
|
+
defaultEnabled: true,
|
|
106
|
+
category: "integrity",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: "rule-verifiability",
|
|
110
|
+
description: "Requirement rule links resolve to safe rules and registered rule schemas",
|
|
111
|
+
defaultEnabled: true,
|
|
112
|
+
category: "integrity",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "semantic-completeness",
|
|
116
|
+
description: "Every inventoried assertive proposition is modeled or explicitly classified",
|
|
117
|
+
defaultEnabled: false,
|
|
118
|
+
category: "integrity",
|
|
119
|
+
},
|
|
96
120
|
{
|
|
97
121
|
name: "query-plan-safety",
|
|
98
122
|
description: "Detect Prolog validation clauses that place negation before generator calls",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { KbConfig } from "./config.js";
|
|
2
|
-
export declare const LATEST_KB_SCHEMA_VERSION =
|
|
2
|
+
export declare const LATEST_KB_SCHEMA_VERSION = 4;
|
|
3
3
|
export interface SchemaVersionStatus {
|
|
4
4
|
status: "missing" | "invalid" | "older" | "current" | "newer";
|
|
5
5
|
currentVersion: number | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kibi-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Kibi CLI for knowledge base management",
|
|
6
6
|
"engines": {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"files": ["dist", "bin", "schema", "src/schemas", "src/public"],
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "tsc -p tsconfig.json && mkdir -p dist/public/skills && cp -r src/public/skills/. dist/public/skills/",
|
|
17
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
17
18
|
"prepack": "npm run build"
|
|
18
19
|
},
|
|
19
20
|
"exports": {
|
|
@@ -29,6 +30,22 @@
|
|
|
29
30
|
"types": "./dist/prolog/codec.d.ts",
|
|
30
31
|
"default": "./dist/prolog/codec.js"
|
|
31
32
|
},
|
|
33
|
+
"./operations/runtime-types": {
|
|
34
|
+
"types": "./dist/public/operations/runtime-types.d.ts",
|
|
35
|
+
"default": "./dist/public/operations/runtime-types.js"
|
|
36
|
+
},
|
|
37
|
+
"./operations/semantic-advisor/analyze-prose": {
|
|
38
|
+
"types": "./dist/operations/semantic-advisor/analyze-prose.d.ts",
|
|
39
|
+
"default": "./dist/operations/semantic-advisor/analyze-prose.js"
|
|
40
|
+
},
|
|
41
|
+
"./operations/semantic-advisor/prose-coverage-evaluator": {
|
|
42
|
+
"types": "./dist/operations/semantic-advisor/prose-coverage-evaluator.d.ts",
|
|
43
|
+
"default": "./dist/operations/semantic-advisor/prose-coverage-evaluator.js"
|
|
44
|
+
},
|
|
45
|
+
"./operations/semantic-advisor/types": {
|
|
46
|
+
"types": "./dist/operations/semantic-advisor/types.d.ts",
|
|
47
|
+
"default": "./dist/operations/semantic-advisor/types.js"
|
|
48
|
+
},
|
|
32
49
|
"./extractors/symbols-coordinator": {
|
|
33
50
|
"types": "./dist/public/extractors/symbols-coordinator.d.ts",
|
|
34
51
|
"default": "./dist/public/extractors/symbols-coordinator.js"
|
|
@@ -89,6 +106,47 @@
|
|
|
89
106
|
"types": "./dist/public/skills.d.ts",
|
|
90
107
|
"default": "./dist/public/skills.js"
|
|
91
108
|
},
|
|
109
|
+
"./operations": "./dist/public/operations/index.js",
|
|
110
|
+
"./logic/ir": {
|
|
111
|
+
"types": "./dist/logic/ir.d.ts",
|
|
112
|
+
"default": "./dist/logic/ir.js"
|
|
113
|
+
},
|
|
114
|
+
"./operations/mutation/relationships": {
|
|
115
|
+
"types": "./dist/operations/mutation/relationships.d.ts",
|
|
116
|
+
"default": "./dist/operations/mutation/relationships.js"
|
|
117
|
+
},
|
|
118
|
+
"./operations/mutation/symbol-refresh": {
|
|
119
|
+
"types": "./dist/operations/mutation/symbol-refresh.d.ts",
|
|
120
|
+
"default": "./dist/operations/mutation/symbol-refresh.js"
|
|
121
|
+
},
|
|
122
|
+
"./operations/mutation/types": {
|
|
123
|
+
"types": "./dist/operations/mutation/types.d.ts",
|
|
124
|
+
"default": "./dist/operations/mutation/types.js"
|
|
125
|
+
},
|
|
126
|
+
"./operations/mutation/delete": {
|
|
127
|
+
"types": "./dist/operations/mutation/delete.d.ts",
|
|
128
|
+
"default": "./dist/operations/mutation/delete.js"
|
|
129
|
+
},
|
|
130
|
+
"./operations/mutation/upsert": {
|
|
131
|
+
"types": "./dist/operations/mutation/upsert.d.ts",
|
|
132
|
+
"default": "./dist/operations/mutation/upsert.js"
|
|
133
|
+
},
|
|
134
|
+
"./operations/mutation/validate-upsert": {
|
|
135
|
+
"types": "./dist/operations/mutation/validate-upsert.d.ts",
|
|
136
|
+
"default": "./dist/operations/mutation/validate-upsert.js"
|
|
137
|
+
},
|
|
138
|
+
"./operations/mutation/validation": {
|
|
139
|
+
"types": "./dist/operations/mutation/validation.d.ts",
|
|
140
|
+
"default": "./dist/operations/mutation/validation.js"
|
|
141
|
+
},
|
|
142
|
+
"./operations/modeling/model-requirement": {
|
|
143
|
+
"types": "./dist/operations/modeling/model-requirement.d.ts",
|
|
144
|
+
"default": "./dist/operations/modeling/model-requirement.js"
|
|
145
|
+
},
|
|
146
|
+
"./operations/modeling/suggest-predicates": {
|
|
147
|
+
"types": "./dist/operations/modeling/suggest-predicates.d.ts",
|
|
148
|
+
"default": "./dist/operations/modeling/suggest-predicates.js"
|
|
149
|
+
},
|
|
92
150
|
"./ignore-policy": {
|
|
93
151
|
"types": "./dist/public/ignore-policy.d.ts",
|
|
94
152
|
"import": "./dist/public/ignore-policy.js",
|
|
@@ -103,7 +161,7 @@
|
|
|
103
161
|
"fast-glob": "^3.2.12",
|
|
104
162
|
"gray-matter": "^4.0.3",
|
|
105
163
|
"js-yaml": "^4.1.0",
|
|
106
|
-
"kibi-core": "^0.
|
|
164
|
+
"kibi-core": "^0.8.0",
|
|
107
165
|
"ts-morph": "^23.0.0",
|
|
108
166
|
"ignore": "^5.3.0"
|
|
109
167
|
},
|
|
@@ -69,15 +69,22 @@ function readSourceSymbols(
|
|
|
69
69
|
function getGranularSymbolsForSourceFile(
|
|
70
70
|
sourceFile: string,
|
|
71
71
|
options: SymbolGranularityDiagnosticsOptions,
|
|
72
|
-
):
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
)
|
|
72
|
+
): {
|
|
73
|
+
readonly candidateSymbols: readonly ExtractedSymbol[];
|
|
74
|
+
readonly sourceSymbols: readonly ExtractedSymbol[];
|
|
75
|
+
} {
|
|
76
|
+
const sourceSymbols = readSourceSymbols(
|
|
77
|
+
sourceFile,
|
|
78
|
+
options.sourceContentByFile,
|
|
79
|
+
options.workspaceRoot ?? process.cwd(),
|
|
80
80
|
);
|
|
81
|
+
const changedSymbols = options.symbolsByFile.get(sourceFile);
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
candidateSymbols: changedSymbols ?? sourceSymbols,
|
|
85
|
+
sourceSymbols:
|
|
86
|
+
sourceSymbols.length > 0 ? sourceSymbols : (changedSymbols ?? []),
|
|
87
|
+
};
|
|
81
88
|
}
|
|
82
89
|
|
|
83
90
|
function formatRelationshipTargets(symbol: ExtractedSymbol): string {
|
|
@@ -116,12 +123,12 @@ export function createSymbolGranularityDiagnostics(
|
|
|
116
123
|
if (!hasTraceabilityRelationship(result)) continue;
|
|
117
124
|
if (hasValidGranularityReason(result)) continue;
|
|
118
125
|
|
|
119
|
-
const
|
|
126
|
+
const { candidateSymbols, sourceSymbols } = getGranularSymbolsForSourceFile(
|
|
120
127
|
result.sourceFile,
|
|
121
128
|
options,
|
|
122
129
|
);
|
|
123
|
-
const narrowerSymbols =
|
|
124
|
-
isNarrowerSymbol(result.entity.title, symbol,
|
|
130
|
+
const narrowerSymbols = candidateSymbols.filter((symbol) =>
|
|
131
|
+
isNarrowerSymbol(result.entity.title, symbol, sourceSymbols),
|
|
125
132
|
);
|
|
126
133
|
if (narrowerSymbols.length === 0) continue;
|
|
127
134
|
|
|
@@ -33,7 +33,7 @@ const RELATIONSHIP_TYPES = [
|
|
|
33
33
|
] as const;
|
|
34
34
|
|
|
35
35
|
type FullKbQualityDiagnosticsOptions = {
|
|
36
|
-
readonly prolog: PrologProcess
|
|
36
|
+
readonly prolog: Pick<PrologProcess, "query">;
|
|
37
37
|
readonly hardViolationEntityIds?: ReadonlySet<string>;
|
|
38
38
|
readonly maxDiagnostics?: number;
|
|
39
39
|
};
|
|
@@ -88,6 +88,8 @@ function toExtractedEntity(entity: Record<string, unknown>): ExtractedEntity {
|
|
|
88
88
|
if (severity !== undefined) extracted.severity = severity;
|
|
89
89
|
const textRef = optionalStringField(entity, "text_ref");
|
|
90
90
|
if (textRef !== undefined) extracted.text_ref = textRef;
|
|
91
|
+
const logicClaims = optionalStringArrayField(entity, "logic_claims");
|
|
92
|
+
if (logicClaims !== undefined) extracted.logic_claims = logicClaims;
|
|
91
93
|
const granularityReason = optionalStringField(entity, "granularity_reason");
|
|
92
94
|
if (granularityReason !== undefined) {
|
|
93
95
|
extracted.granularity_reason = granularityReason;
|
|
@@ -118,10 +120,35 @@ function toExtractedEntity(entity: Record<string, unknown>): ExtractedEntity {
|
|
|
118
120
|
factKind === "subject" ||
|
|
119
121
|
factKind === "property_value" ||
|
|
120
122
|
factKind === "observation" ||
|
|
121
|
-
factKind === "meta"
|
|
123
|
+
factKind === "meta" ||
|
|
124
|
+
factKind === "predicate_schema" ||
|
|
125
|
+
factKind === "predicate"
|
|
122
126
|
) {
|
|
123
127
|
extracted.fact_kind = factKind;
|
|
124
128
|
}
|
|
129
|
+
const claimKey = optionalStringField(entity, "claim_key");
|
|
130
|
+
if (claimKey !== undefined) extracted.claim_key = claimKey;
|
|
131
|
+
const claimText = optionalStringField(entity, "claim_text");
|
|
132
|
+
if (claimText !== undefined) extracted.claim_text = claimText;
|
|
133
|
+
const predicateName = optionalStringField(entity, "predicate_name");
|
|
134
|
+
if (predicateName !== undefined) extracted.predicate_name = predicateName;
|
|
135
|
+
const predicateNamespace = optionalStringField(entity, "predicate_namespace");
|
|
136
|
+
if (predicateNamespace !== undefined) {
|
|
137
|
+
extracted.predicate_namespace = predicateNamespace;
|
|
138
|
+
}
|
|
139
|
+
const predicateArity = optionalNumberField(entity, "predicate_arity");
|
|
140
|
+
if (predicateArity !== undefined) extracted.predicate_arity = predicateArity;
|
|
141
|
+
for (const field of [
|
|
142
|
+
"argument_names",
|
|
143
|
+
"argument_types",
|
|
144
|
+
"argument_descriptions",
|
|
145
|
+
"aliases",
|
|
146
|
+
"examples",
|
|
147
|
+
"predicate_args",
|
|
148
|
+
] as const) {
|
|
149
|
+
const values = optionalStringArrayField(entity, field);
|
|
150
|
+
if (values !== undefined) extracted[field] = values;
|
|
151
|
+
}
|
|
125
152
|
return extracted;
|
|
126
153
|
}
|
|
127
154
|
|
|
@@ -133,7 +160,7 @@ function sourceFileFor(entity: Record<string, unknown>): string | undefined {
|
|
|
133
160
|
}
|
|
134
161
|
|
|
135
162
|
async function loadKbExtractionResults(
|
|
136
|
-
prolog: PrologProcess,
|
|
163
|
+
prolog: Pick<PrologProcess, "query">,
|
|
137
164
|
): Promise<ExtractionResult[]> {
|
|
138
165
|
const entityResult = await prolog.query(
|
|
139
166
|
"findall([Id,Type,Props], kb_entity(Id, Type, Props), Results)",
|
|
@@ -29,17 +29,6 @@ const BROAD_REQUIREMENT_THRESHOLDS = {
|
|
|
29
29
|
dependentRequirements: 5,
|
|
30
30
|
} as const;
|
|
31
31
|
|
|
32
|
-
const NORMATIVE_INDICATOR_PATTERNS: readonly [string, RegExp][] = [
|
|
33
|
-
["must", /\bmust\b/i],
|
|
34
|
-
["only", /\bonly\b/i],
|
|
35
|
-
["never", /\bnever\b/i],
|
|
36
|
-
["limit", /\blimits?\b/i],
|
|
37
|
-
["minimum", /\bminimum\b/i],
|
|
38
|
-
["maximum", /\bmaximum\b/i],
|
|
39
|
-
["at least", /\bat\s+least\b/i],
|
|
40
|
-
["at most", /\bat\s+most\b/i],
|
|
41
|
-
];
|
|
42
|
-
|
|
43
32
|
type RequirementFanout = {
|
|
44
33
|
readonly implementingSymbolIds: readonly string[];
|
|
45
34
|
readonly scenarioIds: readonly string[];
|
|
@@ -232,26 +221,18 @@ function strictRelationshipTypes(result: ExtractionResult): readonly string[] {
|
|
|
232
221
|
);
|
|
233
222
|
}
|
|
234
223
|
|
|
235
|
-
function
|
|
236
|
-
return NORMATIVE_INDICATOR_PATTERNS.filter((entry) =>
|
|
237
|
-
entry[1].test(text),
|
|
238
|
-
).map((entry) => entry[0]);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
function createStrictFactModelingDiagnostics(
|
|
224
|
+
function createLogicalCoverageDiagnostics(
|
|
242
225
|
options: RequirementQualityDiagnosticsOptions,
|
|
243
226
|
): readonly KibiImpactDiagnostic[] {
|
|
244
227
|
return options.manifestResults.flatMap((result) => {
|
|
245
228
|
if (!isCurrentRequirement(result)) return [];
|
|
246
229
|
if (options.hardViolationEntityIds?.has(result.entity.id)) return [];
|
|
247
230
|
const relationshipTypes = strictRelationshipTypes(result);
|
|
248
|
-
if (
|
|
249
|
-
const indicators = matchedNormativeIndicators(result.entity.title);
|
|
250
|
-
if (indicators.length === 0) return [];
|
|
231
|
+
if ((result.entity.logic_claims?.length ?? 0) > 0) return [];
|
|
251
232
|
|
|
252
233
|
return [
|
|
253
234
|
{
|
|
254
|
-
id: "
|
|
235
|
+
id: "logical_coverage_review",
|
|
255
236
|
severity: "review",
|
|
256
237
|
blocking: false,
|
|
257
238
|
category: "fact",
|
|
@@ -259,11 +240,10 @@ function createStrictFactModelingDiagnostics(
|
|
|
259
240
|
source: result.entity.source,
|
|
260
241
|
files: [result.entity.source],
|
|
261
242
|
docs: ["docs/modeling-cheatsheet.md", "docs/error-reference.md"],
|
|
262
|
-
message: `
|
|
243
|
+
message: `Current requirement ${result.entity.id} has no atomic logic_claims manifest, so prose and existing fact links cannot prove complete logical coverage.`,
|
|
263
244
|
suggestion:
|
|
264
|
-
"
|
|
245
|
+
"Call kb_semantic_advisor with the complete requirement prose and atomic clauses, ground each returned claim key through kb_model_requirement or kb_suggest_predicates, and persist all keys in logic_claims.",
|
|
265
246
|
evidence: {
|
|
266
|
-
matchedIndicators: indicators,
|
|
267
247
|
strictRelationshipTypes: relationshipTypes,
|
|
268
248
|
},
|
|
269
249
|
},
|
|
@@ -277,6 +257,6 @@ export function createRequirementQualityDiagnostics(
|
|
|
277
257
|
return [
|
|
278
258
|
...createBroadRequirementDiagnostics(options.manifestResults),
|
|
279
259
|
...createRequirementStatusDiagnostics(options.manifestResults),
|
|
280
|
-
...
|
|
260
|
+
...createLogicalCoverageDiagnostics(options),
|
|
281
261
|
];
|
|
282
262
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { autopilotGenerateSpec } from "./specs/autopilot.js";
|
|
2
|
+
import { checkSpec } from "./specs/check.js";
|
|
3
|
+
import { querySpec, searchSpec, statusSpec } from "./specs/discovery.js";
|
|
4
|
+
import {
|
|
5
|
+
modelRequirementSpec,
|
|
6
|
+
suggestPredicatesSpec,
|
|
7
|
+
} from "./specs/modeling.js";
|
|
8
|
+
import {
|
|
9
|
+
deleteSpec,
|
|
10
|
+
upsertSpec,
|
|
11
|
+
validateUpsertSpec,
|
|
12
|
+
} from "./specs/mutation.js";
|
|
13
|
+
import { coverageSpec, findGapsSpec, graphSpec } from "./specs/reporting.js";
|
|
14
|
+
import { semanticAdvisorSpec } from "./specs/semantic.js";
|
|
15
|
+
import {
|
|
16
|
+
skillsListSpec,
|
|
17
|
+
skillsLoadSpec,
|
|
18
|
+
skillsReadSpec,
|
|
19
|
+
} from "./specs/skills.js";
|
|
20
|
+
import { sparqlRemoteSpec } from "./specs/sparql.js";
|
|
21
|
+
import type { OperationName, OperationSpec } from "./types.js";
|
|
22
|
+
|
|
23
|
+
export const OPERATION_CATALOG = [
|
|
24
|
+
skillsListSpec,
|
|
25
|
+
skillsLoadSpec,
|
|
26
|
+
skillsReadSpec,
|
|
27
|
+
querySpec,
|
|
28
|
+
searchSpec,
|
|
29
|
+
statusSpec,
|
|
30
|
+
findGapsSpec,
|
|
31
|
+
coverageSpec,
|
|
32
|
+
graphSpec,
|
|
33
|
+
semanticAdvisorSpec,
|
|
34
|
+
modelRequirementSpec,
|
|
35
|
+
suggestPredicatesSpec,
|
|
36
|
+
autopilotGenerateSpec,
|
|
37
|
+
validateUpsertSpec,
|
|
38
|
+
upsertSpec,
|
|
39
|
+
deleteSpec,
|
|
40
|
+
checkSpec,
|
|
41
|
+
sparqlRemoteSpec,
|
|
42
|
+
] as const satisfies readonly OperationSpec[];
|
|
43
|
+
|
|
44
|
+
const SPECS_BY_NAME: ReadonlyMap<OperationName, OperationSpec> = new Map(
|
|
45
|
+
OPERATION_CATALOG.map((spec) => [spec.name, spec]),
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
// implements REQ-kibi-operation-interface-parity
|
|
49
|
+
export function getSpec(name: OperationName): OperationSpec {
|
|
50
|
+
const spec = SPECS_BY_NAME.get(name);
|
|
51
|
+
if (!spec) {
|
|
52
|
+
throw new RangeError(`Unknown Kibi operation: ${name}`);
|
|
53
|
+
}
|
|
54
|
+
return spec;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// implements REQ-kibi-operation-interface-parity
|
|
58
|
+
export function listSpecs(): readonly OperationSpec[] {
|
|
59
|
+
return OPERATION_CATALOG;
|
|
60
|
+
}
|