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
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { semanticClaimKey } from "./clauses.js";
|
|
3
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
4
|
+
export function isRecord(value) {
|
|
5
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
8
|
+
export function stringValue(value) {
|
|
9
|
+
return typeof value === "string" ? value.trim() : "";
|
|
10
|
+
}
|
|
11
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
12
|
+
export function canonicalize(value) {
|
|
13
|
+
if (Array.isArray(value))
|
|
14
|
+
return `[${value.map(canonicalize).join(",")}]`;
|
|
15
|
+
if (isRecord(value)) {
|
|
16
|
+
return `{${Object.keys(value)
|
|
17
|
+
.sort()
|
|
18
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalize(value[key])}`)
|
|
19
|
+
.join(",")}}`;
|
|
20
|
+
}
|
|
21
|
+
return JSON.stringify(value);
|
|
22
|
+
}
|
|
23
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
24
|
+
export function payloadHash(payload) {
|
|
25
|
+
const stable = Object.fromEntries(Object.entries(payload).filter(([key]) => !key.startsWith("_")));
|
|
26
|
+
return createHash("sha256").update(canonicalize(stable)).digest("hex");
|
|
27
|
+
}
|
|
28
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
29
|
+
export function shortHash(value) {
|
|
30
|
+
return createHash("sha256").update(value).digest("hex").slice(0, 12);
|
|
31
|
+
}
|
|
32
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
33
|
+
export function propertiesOf(payload) {
|
|
34
|
+
return isRecord(payload.properties) ? payload.properties : {};
|
|
35
|
+
}
|
|
36
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
37
|
+
export function statementOf(payload) {
|
|
38
|
+
const properties = propertiesOf(payload);
|
|
39
|
+
return stringValue(properties.text_ref) || stringValue(properties.title);
|
|
40
|
+
}
|
|
41
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
42
|
+
export function sourceOf(payload) {
|
|
43
|
+
return (stringValue(propertiesOf(payload).source) || "mcp://kibi/semantic-advisor");
|
|
44
|
+
}
|
|
45
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
46
|
+
export function normalizeKey(value) {
|
|
47
|
+
return value
|
|
48
|
+
.trim()
|
|
49
|
+
.toLowerCase()
|
|
50
|
+
.replace(/['’]/g, "")
|
|
51
|
+
.replace(/[^a-z0-9]+/g, "_")
|
|
52
|
+
.replace(/^_+|_+$/g, "");
|
|
53
|
+
}
|
|
54
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
55
|
+
export function normalizePredicateToken(value) {
|
|
56
|
+
return value
|
|
57
|
+
.trim()
|
|
58
|
+
.replace(/\b(?:a|an|the)\b\s*/gi, "")
|
|
59
|
+
.replace(/['’]/g, "")
|
|
60
|
+
.replace(/\s+/g, "_")
|
|
61
|
+
.replace(/[^A-Za-z0-9_-]+/g, "_")
|
|
62
|
+
.replace(/^_+|_+$/g, "");
|
|
63
|
+
}
|
|
64
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
65
|
+
export function singularize(value) {
|
|
66
|
+
if (["status", "results"].includes(value))
|
|
67
|
+
return value;
|
|
68
|
+
return value.endsWith("s") && value.length > 3 ? value.slice(0, -1) : value;
|
|
69
|
+
}
|
|
70
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
71
|
+
export function normalizeSubjectKey(value) {
|
|
72
|
+
return normalizeKey(value).split("_").map(singularize).join(".");
|
|
73
|
+
}
|
|
74
|
+
export function relationship(from, to, type) {
|
|
75
|
+
return { type, from, to };
|
|
76
|
+
}
|
|
77
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
78
|
+
export function strictSuggestion(payload, evidence, claim, rationale, confidence = 0.9) {
|
|
79
|
+
const claimText = statementOf(payload);
|
|
80
|
+
const reqId = stringValue(payload.id) || `REQ-SEMANTIC-${shortHash(claim.subject_key)}`;
|
|
81
|
+
const subjectId = `FACT-SUBJECT-${shortHash(claim.subject_key)}`;
|
|
82
|
+
const propertyId = `FACT-PROP-${shortHash(`${claim.subject_key}.${claim.property_key}.${claim.operator}.${canonicalize(claim)}`)}`;
|
|
83
|
+
const source = sourceOf(payload);
|
|
84
|
+
const value = claim.value_string ??
|
|
85
|
+
claim.value_int ??
|
|
86
|
+
claim.value_number ??
|
|
87
|
+
claim.value_bool;
|
|
88
|
+
const propertyFields = {
|
|
89
|
+
...(claim.value_string !== undefined
|
|
90
|
+
? { value_string: claim.value_string }
|
|
91
|
+
: {}),
|
|
92
|
+
...(claim.value_int !== undefined ? { value_int: claim.value_int } : {}),
|
|
93
|
+
...(claim.value_number !== undefined
|
|
94
|
+
? { value_number: claim.value_number }
|
|
95
|
+
: {}),
|
|
96
|
+
...(claim.value_bool !== undefined ? { value_bool: claim.value_bool } : {}),
|
|
97
|
+
...(claim.unit ? { unit: claim.unit } : {}),
|
|
98
|
+
};
|
|
99
|
+
return {
|
|
100
|
+
kind: "strict_property",
|
|
101
|
+
claim_key: semanticClaimKey(claimText),
|
|
102
|
+
claim_text: claimText,
|
|
103
|
+
confidence,
|
|
104
|
+
evidence,
|
|
105
|
+
rationale,
|
|
106
|
+
suggested_next_tool: "kb_model_requirement",
|
|
107
|
+
claim,
|
|
108
|
+
rejected_alternatives: ["predicate", "observation_review"],
|
|
109
|
+
applyPlan: [
|
|
110
|
+
{
|
|
111
|
+
type: "fact",
|
|
112
|
+
id: subjectId,
|
|
113
|
+
properties: {
|
|
114
|
+
title: `${claim.subject_key} subject`,
|
|
115
|
+
status: "active",
|
|
116
|
+
source,
|
|
117
|
+
fact_kind: "subject",
|
|
118
|
+
subject_key: claim.subject_key,
|
|
119
|
+
canonical_key: claim.subject_key,
|
|
120
|
+
tags: ["lane:strict", "semantic-advisor-suggestion"],
|
|
121
|
+
},
|
|
122
|
+
relationships: [],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: "fact",
|
|
126
|
+
id: propertyId,
|
|
127
|
+
properties: {
|
|
128
|
+
title: `${claim.subject_key} ${claim.property_key}`,
|
|
129
|
+
status: "active",
|
|
130
|
+
source,
|
|
131
|
+
fact_kind: "property_value",
|
|
132
|
+
subject_key: claim.subject_key,
|
|
133
|
+
property_key: claim.property_key,
|
|
134
|
+
operator: claim.operator,
|
|
135
|
+
value_type: claim.value_type,
|
|
136
|
+
...propertyFields,
|
|
137
|
+
canonical_key: `${claim.subject_key}.${claim.property_key}.${claim.operator}.${value}`,
|
|
138
|
+
tags: ["lane:strict", "semantic-advisor-suggestion"],
|
|
139
|
+
},
|
|
140
|
+
relationships: [],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: "req",
|
|
144
|
+
id: reqId,
|
|
145
|
+
properties: {
|
|
146
|
+
title: stringValue(propertiesOf(payload).title) ||
|
|
147
|
+
"Semantic advisor requirement suggestion",
|
|
148
|
+
status: "open",
|
|
149
|
+
source,
|
|
150
|
+
text_ref: statementOf(payload),
|
|
151
|
+
tags: ["semantic-advisor-suggestion"],
|
|
152
|
+
},
|
|
153
|
+
relationships: [
|
|
154
|
+
relationship(reqId, subjectId, "constrains"),
|
|
155
|
+
relationship(reqId, propertyId, "requires_property"),
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
162
|
+
export function predicateSuggestion(payload, evidence, name, args, rationale, polarity = "assert") {
|
|
163
|
+
const claimText = statementOf(payload);
|
|
164
|
+
const canonicalKey = `${name}(${args.join(",")})`;
|
|
165
|
+
const predicate = {
|
|
166
|
+
predicate_name: name,
|
|
167
|
+
predicate_args: args,
|
|
168
|
+
canonical_key: canonicalKey,
|
|
169
|
+
polarity,
|
|
170
|
+
};
|
|
171
|
+
const factId = `FACT-PRED-${shortHash(canonicalKey)}`;
|
|
172
|
+
const reqId = stringValue(payload.id);
|
|
173
|
+
return {
|
|
174
|
+
kind: "predicate",
|
|
175
|
+
claim_key: semanticClaimKey(claimText),
|
|
176
|
+
claim_text: claimText,
|
|
177
|
+
confidence: 0.84,
|
|
178
|
+
evidence,
|
|
179
|
+
rationale,
|
|
180
|
+
suggested_next_tool: "kb_suggest_predicates",
|
|
181
|
+
predicate,
|
|
182
|
+
rejected_alternatives: ["strict_property"],
|
|
183
|
+
applyPlan: [
|
|
184
|
+
{
|
|
185
|
+
type: "fact",
|
|
186
|
+
id: factId,
|
|
187
|
+
properties: {
|
|
188
|
+
title: `${name} suggestion`,
|
|
189
|
+
status: "active",
|
|
190
|
+
source: sourceOf(payload),
|
|
191
|
+
fact_kind: "predicate",
|
|
192
|
+
predicate_name: name,
|
|
193
|
+
predicate_args: args,
|
|
194
|
+
canonical_key: canonicalKey,
|
|
195
|
+
polarity,
|
|
196
|
+
tags: ["lane:ontology", "semantic-advisor-suggestion"],
|
|
197
|
+
},
|
|
198
|
+
relationships: [],
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
relationshipPlan: reqId
|
|
202
|
+
? {
|
|
203
|
+
applyAfter: factId,
|
|
204
|
+
requiresExistingReq: reqId,
|
|
205
|
+
relationship: relationship(reqId, factId, "requires_predicate"),
|
|
206
|
+
}
|
|
207
|
+
: null,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Payload } from "./shared.js";
|
|
2
|
+
import type { SemanticModelingSuggestion } from "./types.js";
|
|
3
|
+
export declare function detectCountStrictSuggestion(payload: Payload, statement: string): SemanticModelingSuggestion | null;
|
|
4
|
+
//# sourceMappingURL=strict-count-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strict-count-rules.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/strict-count-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAKb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAuB7D,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,0BAA0B,GAAG,IAAI,CA4DnC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { normalizeKey, normalizeSubjectKey, singularize, strictSuggestion, } from "./shared.js";
|
|
2
|
+
const NUMBER_WORDS = new Map([
|
|
3
|
+
["zero", 0],
|
|
4
|
+
["one", 1],
|
|
5
|
+
["two", 2],
|
|
6
|
+
["three", 3],
|
|
7
|
+
["four", 4],
|
|
8
|
+
["five", 5],
|
|
9
|
+
["six", 6],
|
|
10
|
+
["seven", 7],
|
|
11
|
+
["eight", 8],
|
|
12
|
+
["nine", 9],
|
|
13
|
+
["ten", 10],
|
|
14
|
+
]);
|
|
15
|
+
function numberToken(value) {
|
|
16
|
+
return /^\d+$/.test(value)
|
|
17
|
+
? Number(value)
|
|
18
|
+
: (NUMBER_WORDS.get(value.toLowerCase()) ?? null);
|
|
19
|
+
}
|
|
20
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
21
|
+
export function detectCountStrictSuggestion(payload, statement) {
|
|
22
|
+
const cardinality = statement.match(/\b(?<operator>at\s+most|at\s+least|exactly|no\s+more\s+than|up\s+to)\s+(?<value>\d+|zero|one|two|three|four|five|six|seven|eight|nine|ten)\s+(?<resource>[a-z][a-z\s_-]*?)\.?$/i);
|
|
23
|
+
if (cardinality?.groups?.operator &&
|
|
24
|
+
cardinality.groups.value &&
|
|
25
|
+
cardinality.groups.resource) {
|
|
26
|
+
const value = numberToken(cardinality.groups.value);
|
|
27
|
+
if (value !== null) {
|
|
28
|
+
const normalized = normalizeKey(cardinality.groups.resource);
|
|
29
|
+
const tail = singularize(normalized.split("_").at(-1) ?? normalized);
|
|
30
|
+
const operator = /at\s+least/i.test(cardinality.groups.operator)
|
|
31
|
+
? "gte"
|
|
32
|
+
: /exactly/i.test(cardinality.groups.operator)
|
|
33
|
+
? "eq"
|
|
34
|
+
: "lte";
|
|
35
|
+
return strictSuggestion(payload, `${cardinality.groups.operator} ${cardinality.groups.value}`, {
|
|
36
|
+
subject_key: tail === "session" ? "user.session" : normalized.replace(/_/g, "."),
|
|
37
|
+
property_key: normalized.includes("active_session")
|
|
38
|
+
? "active_count"
|
|
39
|
+
: "count",
|
|
40
|
+
operator,
|
|
41
|
+
value_type: "int",
|
|
42
|
+
value_int: value,
|
|
43
|
+
}, "Bounded cardinality is a strict numeric property and should be modeled explicitly.", 0.9);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const capped = statement.match(/^(?<subject>.+?)\s+cap(?:s|ped)?\s+at\s+(?:(?<property>[a-z][a-z\s_-]*?)\s+)?(?<value>\d+|zero|one|two|three|four|five|six|seven|eight|nine|ten)\.?$/i);
|
|
47
|
+
if (capped?.groups?.subject && capped.groups.value) {
|
|
48
|
+
const value = numberToken(capped.groups.value);
|
|
49
|
+
if (value !== null) {
|
|
50
|
+
return strictSuggestion(payload, `cap at ${capped.groups.value}`, {
|
|
51
|
+
subject_key: normalizeSubjectKey(capped.groups.subject),
|
|
52
|
+
property_key: capped.groups.property
|
|
53
|
+
? `${normalizeKey(capped.groups.property)}_cap`
|
|
54
|
+
: "count",
|
|
55
|
+
operator: "lte",
|
|
56
|
+
value_type: "int",
|
|
57
|
+
value_int: value,
|
|
58
|
+
}, "Cap-at prose is an upper-bound strict property and should be modeled explicitly.", 0.9);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Payload } from "./shared.js";
|
|
2
|
+
import type { SemanticModelingSuggestion } from "./types.js";
|
|
3
|
+
export declare function detectStrictSuggestion(payload: Payload, statement: string): SemanticModelingSuggestion | null;
|
|
4
|
+
//# sourceMappingURL=strict-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strict-rules.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/strict-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,YAAY,CAAC;AAcpB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,0BAA0B,GAAG,IAAI,CA8KnC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { normalizeSubjectKey, strictSuggestion, } from "./shared.js";
|
|
2
|
+
import { detectCountStrictSuggestion } from "./strict-count-rules.js";
|
|
3
|
+
function suggestion(payload, match, claim, rationale, confidence, evidence = match[0]) {
|
|
4
|
+
return strictSuggestion(payload, evidence, claim, rationale, confidence);
|
|
5
|
+
}
|
|
6
|
+
// implements REQ-mcp-semantic-advisor-preflight
|
|
7
|
+
export function detectStrictSuggestion(payload, statement) {
|
|
8
|
+
const expiry = statement.match(/^(?<subject>.+?)\s+expir(?:e|es)\s+after\s+(?<value>\d+)\s+(?<unit>days?|months?|years?|hours?|minutes?)\.?$/i);
|
|
9
|
+
if (expiry?.groups?.subject && expiry.groups.value && expiry.groups.unit) {
|
|
10
|
+
const unit = expiry.groups.unit.toLowerCase().replace(/s?$/, "s");
|
|
11
|
+
return suggestion(payload, expiry, {
|
|
12
|
+
subject_key: normalizeSubjectKey(expiry.groups.subject),
|
|
13
|
+
property_key: `expiry_${unit}`,
|
|
14
|
+
operator: "eq",
|
|
15
|
+
value_type: "int",
|
|
16
|
+
value_int: Number(expiry.groups.value),
|
|
17
|
+
unit,
|
|
18
|
+
}, "Expiry duration is a scalar strict property and should be explicit.", 0.88, `expire after ${expiry.groups.value} ${expiry.groups.unit}`);
|
|
19
|
+
}
|
|
20
|
+
const comparative = statement.match(/^(?<subject>.+?)\s+(?:must|shall|should)\s+be\s+(?<operator>less\s+than|greater\s+than|below|above|minimum|maximum|at\s+least|at\s+most)\s+(?<value>\d+)\.?$/i);
|
|
21
|
+
if (comparative?.groups?.subject &&
|
|
22
|
+
comparative.groups.operator &&
|
|
23
|
+
comparative.groups.value) {
|
|
24
|
+
const operatorText = comparative.groups.operator.toLowerCase();
|
|
25
|
+
const operator = /less|below/.test(operatorText)
|
|
26
|
+
? "lt"
|
|
27
|
+
: /greater|above/.test(operatorText)
|
|
28
|
+
? "gt"
|
|
29
|
+
: /minimum|least/.test(operatorText)
|
|
30
|
+
? "gte"
|
|
31
|
+
: "lte";
|
|
32
|
+
return suggestion(payload, comparative, {
|
|
33
|
+
subject_key: normalizeSubjectKey(comparative.groups.subject),
|
|
34
|
+
property_key: "value",
|
|
35
|
+
operator,
|
|
36
|
+
value_type: "int",
|
|
37
|
+
value_int: Number(comparative.groups.value),
|
|
38
|
+
}, "Comparative numeric prose is a strict property constraint.", 0.86, `${comparative.groups.operator} ${comparative.groups.value}`);
|
|
39
|
+
}
|
|
40
|
+
const precision = statement.match(/^.+?\s+(?:must|shall|should)\s+normalize\s+into\s+canonical\s+integer\s+decisecond\s+(?<subject>[a-z][a-z0-9_-]*)\s+values?\.?$/i);
|
|
41
|
+
if (precision?.groups?.subject) {
|
|
42
|
+
return suggestion(payload, precision, {
|
|
43
|
+
subject_key: normalizeSubjectKey(precision.groups.subject),
|
|
44
|
+
property_key: "slot_precision",
|
|
45
|
+
operator: "eq",
|
|
46
|
+
value_type: "string",
|
|
47
|
+
value_string: "decisecond",
|
|
48
|
+
}, "Canonical decisecond slot prose is a strict precision property.", 0.9);
|
|
49
|
+
}
|
|
50
|
+
const threshold = statement.match(/^(?<subject>.+?)\s+(?:must|shall|should)\s+return\s+within\s+(?<value>\d+)\s+(?<unit>ms|milliseconds?|s|sec|secs|seconds?)\.?$/i);
|
|
51
|
+
if (threshold?.groups?.subject &&
|
|
52
|
+
threshold.groups.value &&
|
|
53
|
+
threshold.groups.unit) {
|
|
54
|
+
const unit = threshold.groups.unit.toLowerCase().startsWith("m")
|
|
55
|
+
? "ms"
|
|
56
|
+
: "seconds";
|
|
57
|
+
return suggestion(payload, threshold, {
|
|
58
|
+
subject_key: normalizeSubjectKey(threshold.groups.subject),
|
|
59
|
+
property_key: unit === "ms" ? "latency_ms" : "latency_seconds",
|
|
60
|
+
operator: "lte",
|
|
61
|
+
value_type: "int",
|
|
62
|
+
value_int: Number(threshold.groups.value),
|
|
63
|
+
unit,
|
|
64
|
+
}, "Response-time thresholds are bounded numeric properties and should be modeled explicitly.", 0.88, `within ${threshold.groups.value} ${threshold.groups.unit}`);
|
|
65
|
+
}
|
|
66
|
+
const booleanState = statement.match(/^(?<subject>.+?)\s+(?:must|shall|should)\s+be\s+(?<state>enabled|disabled)\.?$/i);
|
|
67
|
+
if (booleanState?.groups?.subject && booleanState.groups.state) {
|
|
68
|
+
return suggestion(payload, booleanState, {
|
|
69
|
+
subject_key: normalizeSubjectKey(booleanState.groups.subject),
|
|
70
|
+
property_key: "enabled",
|
|
71
|
+
operator: "eq",
|
|
72
|
+
value_type: "bool",
|
|
73
|
+
value_bool: booleanState.groups.state.toLowerCase() === "enabled",
|
|
74
|
+
}, "Enabled/disabled requirements are boolean properties and can participate in strict checks.", 0.88, `be ${booleanState.groups.state}`);
|
|
75
|
+
}
|
|
76
|
+
const retention = statement.match(/^(?<subject>.+?)\s+(?:must|shall|should)\s+be\s+retained\s+for\s+(?<value>\d+)\s+(?<unit>days?|months?|years?)\.?$/i);
|
|
77
|
+
if (retention?.groups?.subject &&
|
|
78
|
+
retention.groups.value &&
|
|
79
|
+
retention.groups.unit) {
|
|
80
|
+
const unit = retention.groups.unit.toLowerCase().replace(/s$/, "s");
|
|
81
|
+
return suggestion(payload, retention, {
|
|
82
|
+
subject_key: normalizeSubjectKey(retention.groups.subject),
|
|
83
|
+
property_key: `retention_${unit}`,
|
|
84
|
+
operator: "eq",
|
|
85
|
+
value_type: "int",
|
|
86
|
+
value_int: Number(retention.groups.value),
|
|
87
|
+
unit,
|
|
88
|
+
}, "Retention duration is a scalar strict property and can participate in contradiction checks.", 0.92, `retained for ${retention.groups.value} ${retention.groups.unit}`);
|
|
89
|
+
}
|
|
90
|
+
const enumSet = statement.match(/^(?<subject>.+?)\s+(?:must|shall|should)\s+be\s+one\s+of\s+(?<values>.+?)\.?$/i);
|
|
91
|
+
if (enumSet?.groups?.subject && enumSet.groups.values) {
|
|
92
|
+
const values = enumSet.groups.values
|
|
93
|
+
.split(/,|\bor\b/i)
|
|
94
|
+
.map((value) => value.trim())
|
|
95
|
+
.filter(Boolean);
|
|
96
|
+
if (values.length > 1)
|
|
97
|
+
return suggestion(payload, enumSet, {
|
|
98
|
+
subject_key: normalizeSubjectKey(enumSet.groups.subject),
|
|
99
|
+
property_key: "allowed_values",
|
|
100
|
+
operator: "eq",
|
|
101
|
+
value_type: "string",
|
|
102
|
+
value_string: values.join("|"),
|
|
103
|
+
}, "Allowed enum sets are explicit property values and should not remain prose-only.", 0.86, `one of ${enumSet.groups.values}`);
|
|
104
|
+
}
|
|
105
|
+
return detectCountStrictSuggestion(payload, statement);
|
|
106
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import type { LogicRuleIR } from "../../logic/ir.js";
|
|
2
|
+
export type SemanticAdvisorLane = "strict_property" | "predicate" | "rule" | "observation_review" | "none";
|
|
3
|
+
export type SemanticAdvisorReadiness = "modeled" | "needs_modeling" | "not_applicable";
|
|
4
|
+
export type SemanticLogicCoverageStatus = "complete" | "partial" | "unverified" | "not_applicable";
|
|
5
|
+
export type SemanticPropositionRole = "normative" | "definition" | "descriptive" | "condition" | "exception" | "rationale" | "example" | "subjective";
|
|
6
|
+
export type SemanticPropositionStatus = "modeled" | "ambiguous" | "ontology_gap" | "nonlogical" | "missing";
|
|
7
|
+
export interface SemanticPropositionSpan {
|
|
8
|
+
readonly start: number;
|
|
9
|
+
readonly end: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SemanticProposition {
|
|
12
|
+
readonly claim_key: string;
|
|
13
|
+
readonly claim_text: string;
|
|
14
|
+
readonly role: SemanticPropositionRole;
|
|
15
|
+
readonly status: SemanticPropositionStatus;
|
|
16
|
+
readonly span: SemanticPropositionSpan;
|
|
17
|
+
readonly payload_hash?: string;
|
|
18
|
+
readonly semantic_key?: string;
|
|
19
|
+
readonly reason?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface SemanticInterpretationInput {
|
|
22
|
+
readonly claim_key: string;
|
|
23
|
+
readonly claim_text: string;
|
|
24
|
+
readonly ir: LogicRuleIR;
|
|
25
|
+
readonly confidence?: number;
|
|
26
|
+
readonly span?: SemanticPropositionSpan;
|
|
27
|
+
}
|
|
28
|
+
export interface SemanticInterpretationResult {
|
|
29
|
+
readonly claim_key: string;
|
|
30
|
+
readonly semantic_key?: string;
|
|
31
|
+
/** Canonical, schema-validated IR for inspection; never executable source. */
|
|
32
|
+
readonly normalized_ir?: LogicRuleIR;
|
|
33
|
+
readonly valid: boolean;
|
|
34
|
+
readonly confidence: number;
|
|
35
|
+
readonly errors: readonly string[];
|
|
36
|
+
readonly warnings: readonly string[];
|
|
37
|
+
readonly rendered_prolog?: string;
|
|
38
|
+
}
|
|
39
|
+
export type SemanticShadowCueKind = "modal" | "polarity" | "passive_voice" | "nominalization" | "conditional" | "causal" | "prerequisite" | "exception" | "temporal" | "quantifier" | "numeric" | "negation_scope" | "directionality";
|
|
40
|
+
export interface SemanticShadowCue {
|
|
41
|
+
readonly kind: SemanticShadowCueKind;
|
|
42
|
+
readonly evidence: string;
|
|
43
|
+
readonly represented: boolean;
|
|
44
|
+
}
|
|
45
|
+
export type SemanticSignalKind = "normative_modal" | "numeric_cardinality" | "numeric_threshold" | "conditional" | "permission" | "state_or_default";
|
|
46
|
+
export interface SemanticSignal {
|
|
47
|
+
readonly kind: SemanticSignalKind;
|
|
48
|
+
readonly evidence: string;
|
|
49
|
+
readonly candidate_lane: SemanticAdvisorLane;
|
|
50
|
+
readonly confidence: number;
|
|
51
|
+
}
|
|
52
|
+
export interface SemanticAmbiguityWitness {
|
|
53
|
+
readonly signal_kind: SemanticSignalKind;
|
|
54
|
+
readonly evidence: string;
|
|
55
|
+
readonly interpretations: readonly string[];
|
|
56
|
+
readonly message: string;
|
|
57
|
+
}
|
|
58
|
+
export interface SemanticStrictPropertyClaim {
|
|
59
|
+
readonly subject_key: string;
|
|
60
|
+
readonly property_key: string;
|
|
61
|
+
readonly operator: "eq" | "neq" | "lt" | "lte" | "gt" | "gte";
|
|
62
|
+
readonly value_type: "string" | "int" | "number" | "bool";
|
|
63
|
+
readonly value_string?: string;
|
|
64
|
+
readonly value_int?: number;
|
|
65
|
+
readonly value_number?: number;
|
|
66
|
+
readonly value_bool?: boolean;
|
|
67
|
+
readonly unit?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface SemanticPredicateClaim {
|
|
70
|
+
readonly predicate_name: string;
|
|
71
|
+
readonly predicate_args: readonly string[];
|
|
72
|
+
readonly canonical_key: string;
|
|
73
|
+
readonly polarity: "assert" | "deny";
|
|
74
|
+
}
|
|
75
|
+
export type SemanticModelingSuggestion = {
|
|
76
|
+
readonly kind: "strict_property";
|
|
77
|
+
readonly claim_key: string;
|
|
78
|
+
readonly claim_text: string;
|
|
79
|
+
readonly confidence: number;
|
|
80
|
+
readonly evidence: string;
|
|
81
|
+
readonly rationale: string;
|
|
82
|
+
readonly suggested_next_tool: "kb_model_requirement";
|
|
83
|
+
readonly claim: SemanticStrictPropertyClaim;
|
|
84
|
+
readonly rejected_alternatives: readonly string[];
|
|
85
|
+
readonly applyPlan: readonly Readonly<Record<string, unknown>>[];
|
|
86
|
+
} | {
|
|
87
|
+
readonly kind: "predicate";
|
|
88
|
+
readonly claim_key: string;
|
|
89
|
+
readonly claim_text: string;
|
|
90
|
+
readonly confidence: number;
|
|
91
|
+
readonly evidence: string;
|
|
92
|
+
readonly rationale: string;
|
|
93
|
+
readonly suggested_next_tool: "kb_suggest_predicates";
|
|
94
|
+
readonly predicate: SemanticPredicateClaim;
|
|
95
|
+
readonly rejected_alternatives: readonly string[];
|
|
96
|
+
readonly applyPlan: readonly Readonly<Record<string, unknown>>[];
|
|
97
|
+
readonly relationshipPlan: Readonly<Record<string, unknown>> | null;
|
|
98
|
+
} | {
|
|
99
|
+
readonly kind: "rule";
|
|
100
|
+
readonly claim_key: string;
|
|
101
|
+
readonly claim_text: string;
|
|
102
|
+
readonly confidence: number;
|
|
103
|
+
readonly evidence: string;
|
|
104
|
+
readonly rationale: string;
|
|
105
|
+
readonly suggested_next_tool: "kb_model_requirement";
|
|
106
|
+
readonly rule: LogicRuleIR;
|
|
107
|
+
readonly semantic_key: string;
|
|
108
|
+
readonly rendered_prolog: string;
|
|
109
|
+
readonly rejected_alternatives: readonly string[];
|
|
110
|
+
readonly applyPlan: readonly Readonly<Record<string, unknown>>[];
|
|
111
|
+
readonly relationshipPlan: Readonly<Record<string, unknown>> | null;
|
|
112
|
+
} | {
|
|
113
|
+
readonly kind: "ambiguity_observation";
|
|
114
|
+
readonly claim_key: string;
|
|
115
|
+
readonly claim_text: string;
|
|
116
|
+
readonly confidence: number;
|
|
117
|
+
readonly evidence: string;
|
|
118
|
+
readonly rationale: string;
|
|
119
|
+
readonly ambiguity: readonly string[];
|
|
120
|
+
readonly suggested_next_tool: "kb_model_requirement" | "kb_suggest_predicates";
|
|
121
|
+
readonly applyPlan: readonly Readonly<Record<string, unknown>>[];
|
|
122
|
+
} | {
|
|
123
|
+
readonly kind: "ontology_gap";
|
|
124
|
+
readonly claim_key: string;
|
|
125
|
+
readonly claim_text: string;
|
|
126
|
+
readonly confidence: number;
|
|
127
|
+
readonly evidence: string;
|
|
128
|
+
readonly rationale: string;
|
|
129
|
+
readonly suggested_next_tool: "kb_suggest_predicates";
|
|
130
|
+
readonly recommendedPredicateSchema: {
|
|
131
|
+
readonly predicate_name: string;
|
|
132
|
+
readonly argument_names: readonly string[];
|
|
133
|
+
readonly argument_types: readonly string[];
|
|
134
|
+
} | null;
|
|
135
|
+
readonly applyPlan: readonly Readonly<Record<string, unknown>>[];
|
|
136
|
+
};
|
|
137
|
+
export interface SemanticAdvisorReceipt {
|
|
138
|
+
readonly version: string;
|
|
139
|
+
readonly payload_hash: string;
|
|
140
|
+
readonly logic_readiness: SemanticAdvisorReadiness;
|
|
141
|
+
readonly candidate_lane: SemanticAdvisorLane;
|
|
142
|
+
readonly signals: readonly SemanticSignal[];
|
|
143
|
+
readonly ambiguity_witnesses: readonly SemanticAmbiguityWitness[];
|
|
144
|
+
readonly propositions: readonly SemanticProposition[];
|
|
145
|
+
readonly interpretations: readonly SemanticInterpretationResult[];
|
|
146
|
+
readonly shadow_analysis: readonly SemanticShadowCue[];
|
|
147
|
+
readonly suggestions: readonly SemanticModelingSuggestion[];
|
|
148
|
+
readonly clauses: readonly {
|
|
149
|
+
readonly claim_key: string;
|
|
150
|
+
readonly text: string;
|
|
151
|
+
readonly index: number;
|
|
152
|
+
readonly normative: boolean;
|
|
153
|
+
readonly source: "detected" | "supplied";
|
|
154
|
+
readonly suggestion_indexes: readonly number[];
|
|
155
|
+
}[];
|
|
156
|
+
readonly logic_coverage: {
|
|
157
|
+
readonly status: SemanticLogicCoverageStatus;
|
|
158
|
+
readonly expected_claim_keys: readonly string[];
|
|
159
|
+
readonly declared_claim_keys: readonly string[];
|
|
160
|
+
readonly missing_claim_keys: readonly string[];
|
|
161
|
+
readonly unresolved_claim_keys: readonly string[];
|
|
162
|
+
};
|
|
163
|
+
readonly suggested_next_tools: readonly string[];
|
|
164
|
+
readonly summary: string;
|
|
165
|
+
}
|
|
166
|
+
export interface SemanticAdvisorInput {
|
|
167
|
+
readonly payload: Readonly<Record<string, unknown>>;
|
|
168
|
+
readonly clauses?: readonly string[];
|
|
169
|
+
readonly interpretations?: readonly SemanticInterpretationInput[];
|
|
170
|
+
}
|
|
171
|
+
export interface SemanticAdvisorAnalysisResult {
|
|
172
|
+
readonly receipt: SemanticAdvisorReceipt;
|
|
173
|
+
readonly warnings: readonly string[];
|
|
174
|
+
}
|
|
175
|
+
export interface SemanticAdvisorArgs {
|
|
176
|
+
readonly text: string;
|
|
177
|
+
readonly clauses?: readonly string[];
|
|
178
|
+
readonly type?: string;
|
|
179
|
+
readonly id?: string;
|
|
180
|
+
readonly title?: string;
|
|
181
|
+
readonly source?: string;
|
|
182
|
+
readonly status?: string;
|
|
183
|
+
readonly interpretations?: readonly SemanticInterpretationInput[];
|
|
184
|
+
}
|
|
185
|
+
export interface SemanticAdvisorOperationResult {
|
|
186
|
+
readonly content: readonly {
|
|
187
|
+
readonly type: "text";
|
|
188
|
+
readonly text: string;
|
|
189
|
+
}[];
|
|
190
|
+
readonly structuredContent: {
|
|
191
|
+
readonly receipt: SemanticAdvisorReceipt;
|
|
192
|
+
readonly warnings: readonly string[];
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/prolog/codec.ts"],"names":[],"mappings":"AAUA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CA8C5D;AAED,wBAAgB,sBAAsB,CAEpC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqB3E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/prolog/codec.ts"],"names":[],"mappings":"AAUA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CA8C5D;AAED,wBAAgB,sBAAsB,CAEpC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqB3E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgD3E;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA8F5D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAoD7E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAGtE;AAqBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAenD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBlE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAoBzE;AAuDD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CA6DjE"}
|
package/dist/prolog/codec.js
CHANGED
|
@@ -138,7 +138,7 @@ export function parseEntityFromList(data) {
|
|
|
138
138
|
return { ...props, id: normalizeEntityId(stripOuterQuotes(id)), type };
|
|
139
139
|
}
|
|
140
140
|
export function parsePropertyList(propsStr) {
|
|
141
|
-
// implements REQ-009
|
|
141
|
+
// implements REQ-009, REQ-skillopt-logical-evidence-fidelity
|
|
142
142
|
const props = {};
|
|
143
143
|
let cleaned = propsStr.trim();
|
|
144
144
|
if (cleaned.startsWith("[")) {
|
|
@@ -157,8 +157,25 @@ export function parsePropertyList(propsStr) {
|
|
|
157
157
|
if (key === "..." || value === "..." || value === "...|...") {
|
|
158
158
|
continue;
|
|
159
159
|
}
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
let parsed = parsePrologValue(value);
|
|
161
|
+
if ((key === "rule_ir" || key === "semantic_inventory") &&
|
|
162
|
+
typeof parsed === "string") {
|
|
163
|
+
try {
|
|
164
|
+
parsed = JSON.parse(parsed);
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
// Keep malformed structured fields as strings so the schema validator
|
|
168
|
+
// can report the precise payload problem instead of losing evidence.
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (!Object.hasOwn(props, key)) {
|
|
172
|
+
props[key] = parsed;
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
const existing = props[key];
|
|
176
|
+
props[key] = Array.isArray(existing)
|
|
177
|
+
? [...existing, parsed]
|
|
178
|
+
: [existing, parsed];
|
|
162
179
|
}
|
|
163
180
|
return props;
|
|
164
181
|
}
|