kibi-cli 0.12.8 → 0.16.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/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 -210
- 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 +2 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +145 -152
- package/dist/commands/coverage.d.ts.map +1 -1
- package/dist/commands/coverage.js +12 -17
- package/dist/commands/discovery-shared.d.ts +3 -1
- package/dist/commands/discovery-shared.d.ts.map +1 -1
- package/dist/commands/discovery-shared.js +8 -209
- package/dist/commands/discovery-table.d.ts +3 -0
- package/dist/commands/discovery-table.d.ts.map +1 -0
- package/dist/commands/discovery-table.js +204 -0
- 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/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +8 -1
- package/dist/commands/sync/extraction.d.ts +6 -1
- package/dist/commands/sync/extraction.d.ts.map +1 -1
- package/dist/commands/sync/extraction.js +7 -3
- package/dist/commands/sync/manifest.d.ts +1 -1
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +9 -17
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +51 -2
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +18 -0
- package/dist/extractors/markdown.d.ts +20 -2
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +38 -1
- package/dist/extractors/symbols-coordinator.d.ts +1 -1
- package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
- package/dist/extractors/symbols-ts.d.ts.map +1 -1
- package/dist/extractors/symbols-ts.js +73 -1
- 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/model-requirement.d.ts +10 -0
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -0
- package/dist/operations/modeling/model-requirement.js +108 -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 +104 -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 +148 -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 +88 -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 +24 -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 +61 -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 +49 -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 +134 -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 +85 -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 +67 -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 +112 -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 +271 -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 +19 -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 +18 -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 +135 -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 +9 -2
- package/dist/prolog.d.ts +5 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +82 -30
- package/dist/public/impact/analyzer.d.ts +3 -0
- package/dist/public/impact/analyzer.d.ts.map +1 -0
- package/dist/public/impact/analyzer.js +54 -0
- package/dist/public/impact/coverage-depth-quality.d.ts +4 -0
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -0
- package/dist/public/impact/coverage-depth-quality.js +179 -0
- package/dist/public/impact/diagnostics.d.ts +7 -0
- package/dist/public/impact/diagnostics.d.ts.map +1 -0
- package/dist/public/impact/diagnostics.js +126 -0
- package/dist/public/impact/diff-meaning.d.ts +2 -0
- package/dist/public/impact/diff-meaning.d.ts.map +1 -0
- package/dist/public/impact/diff-meaning.js +101 -0
- package/dist/public/impact/full-kb-quality.d.ts +10 -0
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -0
- package/dist/public/impact/full-kb-quality.js +191 -0
- package/dist/public/impact/manifest.d.ts +5 -0
- package/dist/public/impact/manifest.d.ts.map +1 -0
- package/dist/public/impact/manifest.js +43 -0
- package/dist/public/impact/requirement-quality.d.ts +4 -0
- package/dist/public/impact/requirement-quality.d.ts.map +1 -0
- package/dist/public/impact/requirement-quality.js +199 -0
- package/dist/public/impact/source-changes.d.ts +5 -0
- package/dist/public/impact/source-changes.d.ts.map +1 -0
- package/dist/public/impact/source-changes.js +129 -0
- package/dist/public/impact/summaries.d.ts +6 -0
- package/dist/public/impact/summaries.d.ts.map +1 -0
- package/dist/public/impact/summaries.js +68 -0
- package/dist/public/impact/symbol-quality-model.d.ts +21 -0
- package/dist/public/impact/symbol-quality-model.d.ts.map +1 -0
- package/dist/public/impact/symbol-quality-model.js +116 -0
- package/dist/public/impact/symbol-quality.d.ts +4 -0
- package/dist/public/impact/symbol-quality.d.ts.map +1 -0
- package/dist/public/impact/symbol-quality.js +159 -0
- package/dist/public/impact/types.d.ts +79 -0
- package/dist/public/impact/types.d.ts.map +1 -0
- package/dist/public/impact/types.js +1 -0
- package/dist/public/impact-diagnostics.d.ts +7 -0
- package/dist/public/impact-diagnostics.d.ts.map +1 -0
- package/dist/public/impact-diagnostics.js +5 -0
- package/dist/public/operations/catalog.d.ts +907 -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 +20 -0
- package/dist/public/operations/index.d.ts.map +1 -0
- package/dist/public/operations/index.js +18 -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 +62 -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 +126 -0
- package/dist/public/operations/specs/modeling.d.ts.map +1 -0
- package/dist/public/operations/specs/modeling.js +117 -0
- package/dist/public/operations/specs/mutation-schemas.d.ts +233 -0
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -0
- package/dist/public/operations/specs/mutation-schemas.js +267 -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 +53 -0
- package/dist/public/operations/specs/semantic.d.ts.map +1 -0
- package/dist/public/operations/specs/semantic.js +105 -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 +256 -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 +48 -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 +123 -95
- package/dist/public/skills/kibi-usage/resources/fact-lanes.md +107 -5
- package/dist/public/skills/kibi-usage/resources/operation-access.md +44 -0
- package/dist/public/skills/kibi-usage/resources/relationship-directions.md +30 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +40 -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 +1 -1
- package/dist/public/symbol-granularity.d.ts.map +1 -1
- package/dist/public/symbol-granularity.js +2 -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 +23 -0
- package/dist/traceability/evidence-model.d.ts +1 -1
- package/dist/traceability/evidence-model.d.ts.map +1 -1
- package/dist/traceability/evidence-model.js +1 -1
- package/dist/traceability/staged-diagnostics.d.ts +6 -6
- package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
- package/dist/traceability/staged-diagnostics.js +12 -6
- 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 +60 -27
- package/dist/traceability/symbol-extract.d.ts.map +1 -1
- package/dist/traceability/symbol-extract.js +58 -1
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +34 -1
- package/dist/types/entities.d.ts +8 -1
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/prolog-query-plan-safety.d.ts +8 -0
- package/dist/utils/prolog-query-plan-safety.d.ts.map +1 -0
- package/dist/utils/prolog-query-plan-safety.js +47 -0
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.js +18 -0
- package/package.json +60 -2
- package/schema/entities.pl +4 -0
- package/src/public/impact/analyzer.ts +90 -0
- package/src/public/impact/coverage-depth-quality.ts +268 -0
- package/src/public/impact/diagnostics.ts +199 -0
- package/src/public/impact/diff-meaning.ts +121 -0
- package/src/public/impact/full-kb-quality.ts +230 -0
- package/src/public/impact/manifest.ts +57 -0
- package/src/public/impact/requirement-quality.ts +262 -0
- package/src/public/impact/source-changes.ts +180 -0
- package/src/public/impact/summaries.ts +100 -0
- package/src/public/impact/symbol-quality-model.ts +171 -0
- package/src/public/impact/symbol-quality.ts +207 -0
- package/src/public/impact/types.ts +99 -0
- package/src/public/impact-diagnostics.ts +22 -0
- 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 +19 -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 +72 -0
- package/src/public/operations/specs/discovery.ts +126 -0
- package/src/public/operations/specs/modeling.ts +154 -0
- package/src/public/operations/specs/mutation-schemas.ts +296 -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 +135 -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 +50 -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 +123 -95
- package/src/public/skills/kibi-usage/resources/fact-lanes.md +107 -5
- package/src/public/skills/kibi-usage/resources/operation-access.md +44 -0
- package/src/public/skills/kibi-usage/resources/relationship-directions.md +30 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +40 -3
- package/src/public/skills.ts +18 -427
- package/src/public/symbol-granularity.ts +4 -0
- package/src/schemas/entity.schema.json +23 -0
|
@@ -97,9 +97,17 @@ function normalizeRelationships(relationships) {
|
|
|
97
97
|
})
|
|
98
98
|
.sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right)));
|
|
99
99
|
}
|
|
100
|
-
function normalizeManifestSymbolsForSourceFile(records, sourceFile) {
|
|
100
|
+
function normalizeManifestSymbolsForSourceFile(records, sourceFile, expectedTitles) {
|
|
101
101
|
return records
|
|
102
102
|
.filter((record) => {
|
|
103
|
+
const title = typeof record.title === "string" ? record.title : null;
|
|
104
|
+
const isDocumentedModuleSymbol = typeof record.granularity_reason === "string" &&
|
|
105
|
+
record.granularity_reason.length > 0;
|
|
106
|
+
if (title !== null &&
|
|
107
|
+
isDocumentedModuleSymbol &&
|
|
108
|
+
!expectedTitles.has(title)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
103
111
|
const recordSource = typeof record.sourceFile === "string"
|
|
104
112
|
? record.sourceFile
|
|
105
113
|
: typeof record.source === "string"
|
|
@@ -143,9 +151,31 @@ function normalizeAuthoredManifestSymbolsForSourceFile(records, sourceFile) {
|
|
|
143
151
|
priority: typeof record.priority === "string" ? record.priority : null,
|
|
144
152
|
severity: typeof record.severity === "string" ? record.severity : null,
|
|
145
153
|
textRef: typeof record.text_ref === "string" ? record.text_ref : null,
|
|
154
|
+
granularityReason: typeof record.granularity_reason === "string"
|
|
155
|
+
? record.granularity_reason
|
|
156
|
+
: null,
|
|
146
157
|
}))
|
|
147
158
|
.sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right)));
|
|
148
159
|
}
|
|
160
|
+
function getAuthoredSymbolComparisonKey(symbol) {
|
|
161
|
+
return symbol.id ?? `${symbol.sourceFile}:${symbol.title}`;
|
|
162
|
+
}
|
|
163
|
+
function getChangedAuthoredEntityIds(headSymbols, stagedSymbols) {
|
|
164
|
+
const headSignatures = new Map(headSymbols.map((symbol) => [
|
|
165
|
+
getAuthoredSymbolComparisonKey(symbol),
|
|
166
|
+
JSON.stringify(symbol),
|
|
167
|
+
]));
|
|
168
|
+
const changedIds = stagedSymbols.flatMap((symbol) => {
|
|
169
|
+
if (symbol.id === null)
|
|
170
|
+
return [];
|
|
171
|
+
const stagedSignature = JSON.stringify(symbol);
|
|
172
|
+
return headSignatures.get(getAuthoredSymbolComparisonKey(symbol)) ===
|
|
173
|
+
stagedSignature
|
|
174
|
+
? []
|
|
175
|
+
: [symbol.id];
|
|
176
|
+
});
|
|
177
|
+
return uniqueSorted(changedIds);
|
|
178
|
+
}
|
|
149
179
|
function normalizeExpectedSymbolsForStagedFile(stagedFile) {
|
|
150
180
|
const analysis = analyzeSourceText(stagedFile.path, stagedFile.content ?? "");
|
|
151
181
|
return analysis.symbols
|
|
@@ -205,7 +235,8 @@ export function assessStagedSymbolsManifest(options) {
|
|
|
205
235
|
const freshPaths = new Set();
|
|
206
236
|
for (const sourceFile of sourceFiles) {
|
|
207
237
|
const expectedSymbols = normalizeExpectedSymbolsForStagedFile(sourceFile);
|
|
208
|
-
const
|
|
238
|
+
const expectedTitles = new Set(expectedSymbols.map((symbol) => symbol.title));
|
|
239
|
+
const baselineSymbols = normalizeManifestSymbolsForSourceFile(baselineMergedRecords, sourceFile.path, expectedTitles);
|
|
209
240
|
if (signaturesEqual(expectedSymbols, baselineSymbols)) {
|
|
210
241
|
continue;
|
|
211
242
|
}
|
|
@@ -213,7 +244,7 @@ export function assessStagedSymbolsManifest(options) {
|
|
|
213
244
|
if (!stagedCoordinatesFile || stagedCoordinateArtifact === null) {
|
|
214
245
|
continue;
|
|
215
246
|
}
|
|
216
|
-
const stagedSymbols = normalizeManifestSymbolsForSourceFile(stagedMergedRecords, sourceFile.path);
|
|
247
|
+
const stagedSymbols = normalizeManifestSymbolsForSourceFile(stagedMergedRecords, sourceFile.path, expectedTitles);
|
|
217
248
|
if (signaturesEqual(expectedSymbols, stagedSymbols)) {
|
|
218
249
|
freshPaths.add(sourceFile.path);
|
|
219
250
|
}
|
|
@@ -234,42 +265,44 @@ export function assessStagedSymbolsManifest(options) {
|
|
|
234
265
|
}
|
|
235
266
|
return { state: "stale", sourcePaths, path: paths.coordinatesPath };
|
|
236
267
|
}
|
|
237
|
-
function getEntityIdsForSourceFile(records, sourceFile) {
|
|
238
|
-
return records
|
|
239
|
-
.filter((record) => {
|
|
240
|
-
const recordSource = typeof record.sourceFile === "string"
|
|
241
|
-
? record.sourceFile
|
|
242
|
-
: typeof record.source === "string"
|
|
243
|
-
? record.source
|
|
244
|
-
: null;
|
|
245
|
-
return recordSource === sourceFile && typeof record.id === "string";
|
|
246
|
-
})
|
|
247
|
-
.map((record) => record.id)
|
|
248
|
-
.sort();
|
|
249
|
-
}
|
|
250
268
|
export function collectStagedAuthoredSymbolsManifestEvidence(options) {
|
|
251
269
|
const { sourceFiles, stagedFiles } = options;
|
|
252
270
|
const paths = resolveRelativeManifestPaths();
|
|
253
271
|
const stagedManifestFile = stagedFiles.find((file) => file.path === paths.symbolsPath);
|
|
254
272
|
if (!stagedManifestFile) {
|
|
255
|
-
return { path: paths.symbolsPath, entries: [] };
|
|
273
|
+
return { path: paths.symbolsPath, entries: [], changedEntityIds: [] };
|
|
256
274
|
}
|
|
257
275
|
const headManifestRecords = parseManifestRecords(readHeadFileContent(paths.symbolsPath), paths.symbolsPath) ?? [];
|
|
258
276
|
const stagedManifestRecords = parseManifestRecords(stagedManifestFile.content, paths.symbolsPath);
|
|
259
277
|
if (stagedManifestRecords === null) {
|
|
260
|
-
return { path: paths.symbolsPath, entries: [] };
|
|
278
|
+
return { path: paths.symbolsPath, entries: [], changedEntityIds: [] };
|
|
261
279
|
}
|
|
280
|
+
const sourcePaths = uniqueSorted([...headManifestRecords, ...stagedManifestRecords].flatMap((record) => {
|
|
281
|
+
const sourceFile = typeof record.sourceFile === "string"
|
|
282
|
+
? record.sourceFile
|
|
283
|
+
: typeof record.source === "string"
|
|
284
|
+
? record.source
|
|
285
|
+
: null;
|
|
286
|
+
return sourceFile === null ? [] : [sourceFile];
|
|
287
|
+
}));
|
|
288
|
+
const changedEntityIdsBySourcePath = new Map(sourcePaths.map((sourcePath) => {
|
|
289
|
+
const headSymbols = normalizeAuthoredManifestSymbolsForSourceFile(headManifestRecords, sourcePath);
|
|
290
|
+
const stagedSymbols = normalizeAuthoredManifestSymbolsForSourceFile(stagedManifestRecords, sourcePath);
|
|
291
|
+
return [
|
|
292
|
+
sourcePath,
|
|
293
|
+
getChangedAuthoredEntityIds(headSymbols, stagedSymbols),
|
|
294
|
+
];
|
|
295
|
+
}));
|
|
262
296
|
const entries = [];
|
|
263
297
|
for (const sourceFile of sourceFiles) {
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
if (signaturesEqual(headSymbols, stagedSymbols)) {
|
|
298
|
+
const entityIds = changedEntityIdsBySourcePath.get(sourceFile.path) ?? [];
|
|
299
|
+
if (entityIds.length === 0)
|
|
267
300
|
continue;
|
|
268
|
-
}
|
|
269
|
-
entries.push({
|
|
270
|
-
sourcePath: sourceFile.path,
|
|
271
|
-
entityIds: getEntityIdsForSourceFile(stagedManifestRecords, sourceFile.path),
|
|
272
|
-
});
|
|
301
|
+
entries.push({ sourcePath: sourceFile.path, entityIds });
|
|
273
302
|
}
|
|
274
|
-
return {
|
|
303
|
+
return {
|
|
304
|
+
path: paths.symbolsPath,
|
|
305
|
+
entries,
|
|
306
|
+
changedEntityIds: uniqueSorted(Array.from(changedEntityIdsBySourcePath.values()).flat()),
|
|
307
|
+
};
|
|
275
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-extract.d.ts","sourceRoot":"","sources":["../../src/traceability/symbol-extract.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7D,KAAK,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAU7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG5E;AAmOD,wBAAgB,4BAA4B,CAE1C,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,cAAc,GAC9B,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"symbol-extract.d.ts","sourceRoot":"","sources":["../../src/traceability/symbol-extract.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7D,KAAK,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAU7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG5E;AAmOD,wBAAgB,4BAA4B,CAE1C,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,cAAc,GAC9B,eAAe,EAAE,CA2SnB"}
|
|
@@ -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();
|
|
@@ -255,6 +257,51 @@ stagedFile, manifestLookup) {
|
|
|
255
257
|
void stagedFile.path;
|
|
256
258
|
}
|
|
257
259
|
}
|
|
260
|
+
for (const property of typeof cls.getProperties === "function"
|
|
261
|
+
? cls.getProperties()
|
|
262
|
+
: []) {
|
|
263
|
+
try {
|
|
264
|
+
if (isPrivateClassMember(property))
|
|
265
|
+
continue;
|
|
266
|
+
const name = formatMethodSymbolName(cls.getName(), property.getName());
|
|
267
|
+
const start = property.getNameNode()?.getStart() ?? property.getStart();
|
|
268
|
+
const end = property.getEnd();
|
|
269
|
+
const span = getSpan(start, end);
|
|
270
|
+
const reqLinks = parseReqDirectives(`${property.getFullText()}\n${property
|
|
271
|
+
.getJsDocs()
|
|
272
|
+
.map((d) => d.getFullText())
|
|
273
|
+
.join("\n")}`);
|
|
274
|
+
results.push(buildSymbolResult(stagedFile, name, "property", span, reqLinks, manifestLookup));
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
void stagedFile.path;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
for (const accessor of [
|
|
281
|
+
...(typeof cls.getGetAccessors === "function"
|
|
282
|
+
? cls.getGetAccessors()
|
|
283
|
+
: []),
|
|
284
|
+
...(typeof cls.getSetAccessors === "function"
|
|
285
|
+
? cls.getSetAccessors()
|
|
286
|
+
: []),
|
|
287
|
+
]) {
|
|
288
|
+
try {
|
|
289
|
+
if (isPrivateClassMember(accessor))
|
|
290
|
+
continue;
|
|
291
|
+
const name = formatMethodSymbolName(cls.getName(), accessor.getName());
|
|
292
|
+
const start = accessor.getNameNode()?.getStart() ?? accessor.getStart();
|
|
293
|
+
const end = accessor.getEnd();
|
|
294
|
+
const span = getSpan(start, end);
|
|
295
|
+
const reqLinks = parseReqDirectives(`${accessor.getFullText()}\n${accessor
|
|
296
|
+
.getJsDocs()
|
|
297
|
+
.map((d) => d.getFullText())
|
|
298
|
+
.join("\n")}`);
|
|
299
|
+
results.push(buildSymbolResult(stagedFile, name, "accessor", span, reqLinks, manifestLookup));
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
void stagedFile.path;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
258
305
|
}
|
|
259
306
|
// Enums
|
|
260
307
|
for (const en of sf.getEnums()) {
|
|
@@ -332,6 +379,16 @@ stagedFile, manifestLookup) {
|
|
|
332
379
|
}
|
|
333
380
|
return results;
|
|
334
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
|
+
}
|
|
335
392
|
function formatMethodSymbolName(className, methodName) {
|
|
336
393
|
return className ? `${className}.${methodName}` : methodName;
|
|
337
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;AAuLD,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,25 @@ 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
|
+
]);
|
|
58
|
+
const FACT_NUMBER_FIELDS = new Set([
|
|
59
|
+
"value_int",
|
|
60
|
+
"value_number",
|
|
61
|
+
"predicate_arity",
|
|
53
62
|
]);
|
|
54
|
-
const FACT_NUMBER_FIELDS = new Set(["value_int", "value_number"]);
|
|
55
63
|
const FACT_BOOLEAN_FIELDS = new Set(["value_bool", "closed_world"]);
|
|
64
|
+
const FACT_STRING_ARRAY_FIELDS = new Set([
|
|
65
|
+
"argument_names",
|
|
66
|
+
"argument_types",
|
|
67
|
+
"argument_descriptions",
|
|
68
|
+
"aliases",
|
|
69
|
+
"examples",
|
|
70
|
+
"predicate_args",
|
|
71
|
+
]);
|
|
56
72
|
function isTraceEnabled() {
|
|
57
73
|
return isCliTraceOrDebugEnabled();
|
|
58
74
|
}
|
|
@@ -99,6 +115,12 @@ function serializeTypedFactFields(entity) {
|
|
|
99
115
|
fields.push(`${field}=${value}`);
|
|
100
116
|
}
|
|
101
117
|
}
|
|
118
|
+
for (const field of FACT_STRING_ARRAY_FIELDS) {
|
|
119
|
+
const value = getEntityField(entity, field);
|
|
120
|
+
if (Array.isArray(value)) {
|
|
121
|
+
fields.push(`${field}=[${value.map((item) => toPrologString(String(item))).join(",")}]`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
102
124
|
return fields;
|
|
103
125
|
}
|
|
104
126
|
function buildEntityAssertionGoal(entity) {
|
|
@@ -121,9 +143,20 @@ function buildEntityAssertionGoal(entity) {
|
|
|
121
143
|
props.push(`severity=${toPrologAtom(entity.severity)}`);
|
|
122
144
|
if (entity.text_ref)
|
|
123
145
|
props.push(`text_ref=${toPrologString(entity.text_ref)}`);
|
|
146
|
+
if (entity.type === "req" && entity.logic_claims) {
|
|
147
|
+
props.push(`logic_claims=[${entity.logic_claims.map(toPrologAtom).join(",")}]`);
|
|
148
|
+
}
|
|
124
149
|
if (entity.type === "fact") {
|
|
125
150
|
props.push(...serializeTypedFactFields(entity));
|
|
126
151
|
}
|
|
152
|
+
if (entity.type === "test") {
|
|
153
|
+
if (entity.verification_scope !== undefined) {
|
|
154
|
+
props.push(`verification_scope=${toPrologAtom(entity.verification_scope)}`);
|
|
155
|
+
}
|
|
156
|
+
if (entity.verification_perspective !== undefined) {
|
|
157
|
+
props.push(`verification_perspective=${toPrologAtom(entity.verification_perspective)}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
127
160
|
return `kb_assert_entity_no_audit(${entity.type}, [${props.join(", ")}])`;
|
|
128
161
|
}
|
|
129
162
|
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;
|
|
@@ -39,13 +41,18 @@ export interface FactFields {
|
|
|
39
41
|
examples?: string[];
|
|
40
42
|
predicate_args?: string[];
|
|
41
43
|
}
|
|
44
|
+
export interface TestVerificationFields {
|
|
45
|
+
verification_scope?: "unit" | "integration" | "end_to_end";
|
|
46
|
+
verification_perspective?: "internal" | "consumer";
|
|
47
|
+
}
|
|
42
48
|
export type Requirement = BaseEntity & {
|
|
43
49
|
type: "req";
|
|
50
|
+
logic_claims?: string[];
|
|
44
51
|
};
|
|
45
52
|
export type Scenario = BaseEntity & {
|
|
46
53
|
type: "scenario";
|
|
47
54
|
};
|
|
48
|
-
export type TestEntity = BaseEntity & {
|
|
55
|
+
export type TestEntity = BaseEntity & TestVerificationFields & {
|
|
49
56
|
type: "test";
|
|
50
57
|
};
|
|
51
58
|
export type ADR = BaseEntity & {
|
|
@@ -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,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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface PrologQueryPlanSafetyViolation {
|
|
2
|
+
readonly predicate: string;
|
|
3
|
+
readonly line: number;
|
|
4
|
+
readonly description: string;
|
|
5
|
+
readonly suggestion: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function analyzePrologQueryPlanSafety(source: string): PrologQueryPlanSafetyViolation[];
|
|
8
|
+
//# sourceMappingURL=prolog-query-plan-safety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prolog-query-plan-safety.d.ts","sourceRoot":"","sources":["../../src/utils/prolog-query-plan-safety.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAMD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb,8BAA8B,EAAE,CAyBlC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const GENERATOR_PATTERN = /\b(?:kb_entity|kb_relationship|member|memberchk|findall|setof|bagof)\s*\(/;
|
|
2
|
+
const NEGATION_PATTERN = /\\\+\s*/;
|
|
3
|
+
export function analyzePrologQueryPlanSafety(source) {
|
|
4
|
+
const lines = source.split(/\r?\n/);
|
|
5
|
+
const violations = [];
|
|
6
|
+
let clauseStart = 0;
|
|
7
|
+
let predicate = "unknown";
|
|
8
|
+
let clauseLines = [];
|
|
9
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
10
|
+
const line = lines[index] ?? "";
|
|
11
|
+
if (clauseLines.length === 0 && line.trim().length === 0) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
if (clauseLines.length === 0) {
|
|
15
|
+
clauseStart = index + 1;
|
|
16
|
+
predicate = predicateNameFrom(line) ?? "unknown";
|
|
17
|
+
}
|
|
18
|
+
clauseLines.push(line);
|
|
19
|
+
if (line.trim().endsWith(".")) {
|
|
20
|
+
const violation = analyzeClause(predicate, clauseStart, clauseLines);
|
|
21
|
+
if (violation)
|
|
22
|
+
violations.push(violation);
|
|
23
|
+
clauseLines = [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return violations;
|
|
27
|
+
}
|
|
28
|
+
function predicateNameFrom(line) {
|
|
29
|
+
const match = line.match(/^\s*([a-z][a-zA-Z0-9_]*)\s*\(/);
|
|
30
|
+
return match?.[1] ?? null;
|
|
31
|
+
}
|
|
32
|
+
function analyzeClause(predicate, startLine, lines) {
|
|
33
|
+
const negationIndex = lines.findIndex((line) => NEGATION_PATTERN.test(line));
|
|
34
|
+
if (negationIndex < 0)
|
|
35
|
+
return null;
|
|
36
|
+
const hasLaterGenerator = lines
|
|
37
|
+
.slice(negationIndex + 1)
|
|
38
|
+
.some((line) => GENERATOR_PATTERN.test(line));
|
|
39
|
+
if (!hasLaterGenerator)
|
|
40
|
+
return null;
|
|
41
|
+
return {
|
|
42
|
+
predicate,
|
|
43
|
+
line: startLine + negationIndex,
|
|
44
|
+
description: "Negation appears before later generator calls in the same clause.",
|
|
45
|
+
suggestion: "Move kb_entity/kb_relationship/member/findall generators before \\+/1 so variables are bound before negation.",
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -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,EAiGjC,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"}
|
|
@@ -87,6 +87,24 @@ export const RULES = [
|
|
|
87
87
|
defaultEnabled: false,
|
|
88
88
|
category: "integrity",
|
|
89
89
|
},
|
|
90
|
+
{
|
|
91
|
+
name: "predicate-verifiability",
|
|
92
|
+
description: "Detect requires_predicate links that do not target ground fact_kind: predicate facts",
|
|
93
|
+
defaultEnabled: false,
|
|
94
|
+
category: "integrity",
|
|
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: "query-plan-safety",
|
|
104
|
+
description: "Detect Prolog validation clauses that place negation before generator calls",
|
|
105
|
+
defaultEnabled: true,
|
|
106
|
+
category: "integrity",
|
|
107
|
+
},
|
|
90
108
|
];
|
|
91
109
|
/**
|
|
92
110
|
* Set of all rule names for quick lookups.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kibi-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.1",
|
|
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"
|
|
@@ -69,6 +86,10 @@
|
|
|
69
86
|
"types": "./dist/public/check-types.d.ts",
|
|
70
87
|
"default": "./dist/public/check-types.js"
|
|
71
88
|
},
|
|
89
|
+
"./public/impact-diagnostics": {
|
|
90
|
+
"types": "./dist/public/impact-diagnostics.d.ts",
|
|
91
|
+
"default": "./dist/public/impact-diagnostics.js"
|
|
92
|
+
},
|
|
72
93
|
"./public/symbol-granularity": {
|
|
73
94
|
"types": "./dist/public/symbol-granularity.d.ts",
|
|
74
95
|
"default": "./dist/public/symbol-granularity.js"
|
|
@@ -85,6 +106,43 @@
|
|
|
85
106
|
"types": "./dist/public/skills.d.ts",
|
|
86
107
|
"default": "./dist/public/skills.js"
|
|
87
108
|
},
|
|
109
|
+
"./operations": "./dist/public/operations/index.js",
|
|
110
|
+
"./operations/mutation/relationships": {
|
|
111
|
+
"types": "./dist/operations/mutation/relationships.d.ts",
|
|
112
|
+
"default": "./dist/operations/mutation/relationships.js"
|
|
113
|
+
},
|
|
114
|
+
"./operations/mutation/symbol-refresh": {
|
|
115
|
+
"types": "./dist/operations/mutation/symbol-refresh.d.ts",
|
|
116
|
+
"default": "./dist/operations/mutation/symbol-refresh.js"
|
|
117
|
+
},
|
|
118
|
+
"./operations/mutation/types": {
|
|
119
|
+
"types": "./dist/operations/mutation/types.d.ts",
|
|
120
|
+
"default": "./dist/operations/mutation/types.js"
|
|
121
|
+
},
|
|
122
|
+
"./operations/mutation/delete": {
|
|
123
|
+
"types": "./dist/operations/mutation/delete.d.ts",
|
|
124
|
+
"default": "./dist/operations/mutation/delete.js"
|
|
125
|
+
},
|
|
126
|
+
"./operations/mutation/upsert": {
|
|
127
|
+
"types": "./dist/operations/mutation/upsert.d.ts",
|
|
128
|
+
"default": "./dist/operations/mutation/upsert.js"
|
|
129
|
+
},
|
|
130
|
+
"./operations/mutation/validate-upsert": {
|
|
131
|
+
"types": "./dist/operations/mutation/validate-upsert.d.ts",
|
|
132
|
+
"default": "./dist/operations/mutation/validate-upsert.js"
|
|
133
|
+
},
|
|
134
|
+
"./operations/mutation/validation": {
|
|
135
|
+
"types": "./dist/operations/mutation/validation.d.ts",
|
|
136
|
+
"default": "./dist/operations/mutation/validation.js"
|
|
137
|
+
},
|
|
138
|
+
"./operations/modeling/model-requirement": {
|
|
139
|
+
"types": "./dist/operations/modeling/model-requirement.d.ts",
|
|
140
|
+
"default": "./dist/operations/modeling/model-requirement.js"
|
|
141
|
+
},
|
|
142
|
+
"./operations/modeling/suggest-predicates": {
|
|
143
|
+
"types": "./dist/operations/modeling/suggest-predicates.d.ts",
|
|
144
|
+
"default": "./dist/operations/modeling/suggest-predicates.js"
|
|
145
|
+
},
|
|
88
146
|
"./ignore-policy": {
|
|
89
147
|
"types": "./dist/public/ignore-policy.d.ts",
|
|
90
148
|
"import": "./dist/public/ignore-policy.js",
|
|
@@ -99,7 +157,7 @@
|
|
|
99
157
|
"fast-glob": "^3.2.12",
|
|
100
158
|
"gray-matter": "^4.0.3",
|
|
101
159
|
"js-yaml": "^4.1.0",
|
|
102
|
-
"kibi-core": "^0.
|
|
160
|
+
"kibi-core": "^0.7.1",
|
|
103
161
|
"ts-morph": "^23.0.0",
|
|
104
162
|
"ignore": "^5.3.0"
|
|
105
163
|
},
|
package/schema/entities.pl
CHANGED
|
@@ -48,6 +48,10 @@ entity_property(fact, valid_from, datetime).
|
|
|
48
48
|
entity_property(fact, valid_to, datetime).
|
|
49
49
|
entity_property(fact, canonical_key, string).
|
|
50
50
|
|
|
51
|
+
% Typed symbol metadata fields - only valid for symbol entities
|
|
52
|
+
entity_property(symbol, symbol_role, atom).
|
|
53
|
+
entity_property(symbol, granularity_reason, atom).
|
|
54
|
+
|
|
51
55
|
% Required properties for all entity types
|
|
52
56
|
required_property(Type, id) :- entity_type(Type).
|
|
53
57
|
required_property(Type, title) :- entity_type(Type).
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import type { ExtractedSymbol } from "../../traceability/symbol-extract.js";
|
|
3
|
+
import { extractSymbolsFromStagedFile } from "../../traceability/symbol-extract.js";
|
|
4
|
+
import {
|
|
5
|
+
createSemanticReviewDiagnostics,
|
|
6
|
+
createSymbolGranularityDiagnostics,
|
|
7
|
+
} from "./diagnostics.js";
|
|
8
|
+
import {
|
|
9
|
+
createImpactManifestLookup,
|
|
10
|
+
readImpactManifestResults,
|
|
11
|
+
} from "./manifest.js";
|
|
12
|
+
import { collectSourceChanges, uniqueSorted } from "./source-changes.js";
|
|
13
|
+
import {
|
|
14
|
+
buildNextActions,
|
|
15
|
+
collectLinkedEntities,
|
|
16
|
+
formatExtractedSymbols,
|
|
17
|
+
} from "./summaries.js";
|
|
18
|
+
import { createSymbolQualityDiagnostics } from "./symbol-quality.js";
|
|
19
|
+
import type {
|
|
20
|
+
ChangedFileImpactOptions,
|
|
21
|
+
ChangedFileImpactResult,
|
|
22
|
+
} from "./types.js";
|
|
23
|
+
|
|
24
|
+
export function analyzeChangedFileImpact(
|
|
25
|
+
options: ChangedFileImpactOptions,
|
|
26
|
+
): ChangedFileImpactResult {
|
|
27
|
+
const workspaceRoot = path.resolve(options.workspaceRoot);
|
|
28
|
+
const sourceChanges = collectSourceChanges({ ...options, workspaceRoot });
|
|
29
|
+
const sourceFiles = uniqueSorted(sourceChanges.map((change) => change.file));
|
|
30
|
+
const manifestResults = readImpactManifestResults(workspaceRoot);
|
|
31
|
+
const manifestLookup = createImpactManifestLookup(manifestResults);
|
|
32
|
+
const symbolsByFile = new Map<string, ExtractedSymbol[]>();
|
|
33
|
+
const sourceContentByFile = new Map<string, string>();
|
|
34
|
+
|
|
35
|
+
for (const change of sourceChanges) {
|
|
36
|
+
sourceContentByFile.set(change.file, change.content);
|
|
37
|
+
symbolsByFile.set(
|
|
38
|
+
change.file,
|
|
39
|
+
extractSymbolsFromStagedFile(
|
|
40
|
+
{
|
|
41
|
+
path: change.file,
|
|
42
|
+
status: change.status,
|
|
43
|
+
hunkRanges: [...change.hunkRanges],
|
|
44
|
+
content: change.content,
|
|
45
|
+
},
|
|
46
|
+
manifestLookup,
|
|
47
|
+
).filter((symbol) => symbol.hunkRanges.length > 0),
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const activeSourceFiles = new Set(sourceFiles);
|
|
52
|
+
const activeManifestResults = manifestResults.filter(
|
|
53
|
+
(result) =>
|
|
54
|
+
result.sourceFile !== undefined &&
|
|
55
|
+
activeSourceFiles.has(result.sourceFile),
|
|
56
|
+
);
|
|
57
|
+
const impactDiagnostics =
|
|
58
|
+
options.includeImpactDiagnostics === false
|
|
59
|
+
? []
|
|
60
|
+
: [
|
|
61
|
+
...createSymbolGranularityDiagnostics({
|
|
62
|
+
manifestResults: activeManifestResults,
|
|
63
|
+
symbolsByFile,
|
|
64
|
+
sourceContentByFile,
|
|
65
|
+
workspaceRoot,
|
|
66
|
+
}),
|
|
67
|
+
...createSymbolQualityDiagnostics({
|
|
68
|
+
manifestResults: activeManifestResults,
|
|
69
|
+
symbolsByFile,
|
|
70
|
+
}),
|
|
71
|
+
...createSemanticReviewDiagnostics({ symbolsByFile }),
|
|
72
|
+
];
|
|
73
|
+
const maxDiagnostics = options.maxDiagnostics;
|
|
74
|
+
const cappedDiagnostics =
|
|
75
|
+
maxDiagnostics !== undefined && maxDiagnostics >= 0
|
|
76
|
+
? impactDiagnostics.slice(0, maxDiagnostics)
|
|
77
|
+
: impactDiagnostics;
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
impactDiagnostics: cappedDiagnostics,
|
|
81
|
+
sourceFiles,
|
|
82
|
+
extractedSymbols: formatExtractedSymbols(symbolsByFile),
|
|
83
|
+
linkedEntities: collectLinkedEntities(
|
|
84
|
+
symbolsByFile,
|
|
85
|
+
manifestResults,
|
|
86
|
+
activeSourceFiles,
|
|
87
|
+
),
|
|
88
|
+
nextActions: buildNextActions(sourceFiles),
|
|
89
|
+
};
|
|
90
|
+
}
|