kibi-cli 0.18.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-json-command.d.ts +1 -2
- package/dist/cli-json-command.d.ts.map +1 -1
- package/dist/cli-json-command.js +2 -34
- package/dist/cli-operation-loader.d.ts +3 -0
- package/dist/cli-operation-loader.d.ts.map +1 -0
- package/dist/cli-operation-loader.js +91 -0
- package/dist/cli-operation-metadata.d.ts +94 -0
- package/dist/cli-operation-metadata.d.ts.map +1 -0
- package/dist/cli-operation-metadata.js +121 -0
- package/dist/cli-protocol.d.ts +1 -1
- package/dist/cli-protocol.d.ts.map +1 -1
- package/dist/cli-protocol.js +42 -11
- package/dist/cli-register-foundation.d.ts.map +1 -1
- package/dist/cli-register-foundation.js +28 -19
- package/dist/cli-register-json.d.ts +3 -0
- package/dist/cli-register-json.d.ts.map +1 -0
- package/dist/cli-register-json.js +35 -0
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +60 -13
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +23 -14
- package/dist/cli-register-skills.d.ts.map +1 -1
- package/dist/cli-register-skills.js +8 -6
- package/dist/cli-register-verification.d.ts +3 -0
- package/dist/cli-register-verification.d.ts.map +1 -0
- package/dist/cli-register-verification.js +16 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/commands/aggregated-checks.d.ts +1 -2
- package/dist/commands/aggregated-checks.d.ts.map +1 -1
- package/dist/commands/aggregated-checks.js +14 -9
- package/dist/commands/branch.d.ts +36 -0
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +371 -40
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +48 -77
- package/dist/commands/coverage.js +1 -1
- package/dist/commands/discovery-shared.d.ts +2 -1
- package/dist/commands/discovery-shared.d.ts.map +1 -1
- package/dist/commands/discovery-shared.js +38 -25
- package/dist/commands/doctor.d.ts +4 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +259 -24
- package/dist/commands/engine.d.ts +8 -0
- package/dist/commands/engine.d.ts.map +1 -0
- package/dist/commands/engine.js +103 -0
- package/dist/commands/gaps.js +1 -1
- package/dist/commands/gc.d.ts +5 -2
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +140 -71
- package/dist/commands/github-init.d.ts +56 -0
- package/dist/commands/github-init.d.ts.map +1 -0
- package/dist/commands/github-init.js +310 -0
- package/dist/commands/graph.js +1 -1
- package/dist/commands/init-helpers.d.ts +1 -1
- package/dist/commands/init-helpers.d.ts.map +1 -1
- package/dist/commands/init-helpers.js +73 -25
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +79 -24
- package/dist/commands/legacy-storage-migration.d.ts +54 -0
- package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
- package/dist/commands/legacy-storage-migration.js +277 -0
- package/dist/commands/migrate.d.ts +7 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +244 -91
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +3 -1
- package/dist/commands/report.d.ts +24 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +191 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +3 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -1
- package/dist/commands/sync/cache.d.ts +26 -3
- package/dist/commands/sync/cache.d.ts.map +1 -1
- package/dist/commands/sync/cache.js +141 -5
- package/dist/commands/sync/discovery.d.ts +23 -2
- package/dist/commands/sync/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +196 -15
- package/dist/commands/sync/extraction.d.ts +8 -1
- package/dist/commands/sync/extraction.d.ts.map +1 -1
- package/dist/commands/sync/extraction.js +38 -4
- package/dist/commands/sync/manifest.d.ts +8 -5
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +142 -39
- package/dist/commands/sync/persistence.d.ts +10 -1
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +223 -44
- package/dist/commands/sync/staging.d.ts +10 -1
- package/dist/commands/sync/staging.d.ts.map +1 -1
- package/dist/commands/sync/staging.js +84 -1
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +710 -48
- package/dist/commands/verify.d.ts +10 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +126 -0
- package/dist/diagnostics.d.ts +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/engine-daemon.d.ts +3 -0
- package/dist/engine-daemon.d.ts.map +1 -0
- package/dist/engine-daemon.js +34 -0
- package/dist/engine.d.ts +156 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1625 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +5 -6
- package/dist/extractors/manifest.d.ts +8 -1
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +51 -9
- package/dist/extractors/markdown.d.ts +2 -1
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +21 -3
- package/dist/extractors/playwright-cases.d.ts +24 -0
- package/dist/extractors/playwright-cases.d.ts.map +1 -0
- package/dist/extractors/playwright-cases.js +126 -0
- package/dist/extractors/relationships.d.ts +2 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +16 -17
- package/dist/extractors/symbol-coordinates.d.ts +81 -3
- package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
- package/dist/extractors/symbol-coordinates.js +389 -51
- package/dist/extractors/symbols-coordinator.js +11 -1
- package/dist/intent-search.d.ts +60 -0
- package/dist/intent-search.d.ts.map +1 -0
- package/dist/intent-search.js +433 -0
- package/dist/operations/bootstrap/activation.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/activation.js +48 -31
- package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
- package/dist/operations/bootstrap/candidates.d.ts +4 -0
- package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
- package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
- package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
- package/dist/operations/bootstrap/generate.d.ts +8 -0
- package/dist/operations/bootstrap/generate.d.ts.map +1 -0
- package/dist/operations/bootstrap/generate.js +204 -0
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
- package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/guidance.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/guidance.js +2 -0
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
- package/dist/operations/bootstrap/presentation.d.ts +15 -0
- package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
- package/dist/operations/bootstrap/presentation.js +177 -0
- package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
- package/dist/operations/bootstrap/types.d.ts.map +1 -0
- package/dist/operations/bootstrap/types.js +25 -0
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
- package/dist/operations/modeling/model-requirement.js +4 -17
- package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
- package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-applicability.js +276 -0
- package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
- package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-applyplan.js +100 -3
- package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
- package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-bindings.js +122 -0
- package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-4.js +155 -0
- package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference-1.js +8 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
- package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference.js +4 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-loader.js +7 -0
- package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
- package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-ranker.js +156 -24
- package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-score-3.js +6 -0
- package/dist/operations/modeling/predicate-types.d.ts +34 -0
- package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
- package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-utils.js +2 -0
- package/dist/operations/modeling/suggest-predicates.d.ts +1 -1
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +170 -32
- package/dist/operations/mutation/delete.d.ts.map +1 -1
- package/dist/operations/mutation/delete.js +415 -19
- package/dist/operations/mutation/entity-projection.d.ts +11 -0
- package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
- package/dist/operations/mutation/entity-projection.js +14 -0
- package/dist/operations/mutation/relationships.d.ts +10 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +71 -1
- package/dist/operations/mutation/serialization.d.ts.map +1 -1
- package/dist/operations/mutation/serialization.js +1 -0
- package/dist/operations/mutation/source-authoring.d.ts +61 -0
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
- package/dist/operations/mutation/source-authoring.js +543 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts +51 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
- package/dist/operations/mutation/symbol-compiler-lock.js +274 -0
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-granularity.js +34 -3
- package/dist/operations/mutation/symbol-refresh.d.ts +18 -1
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +225 -63
- package/dist/operations/mutation/types.d.ts +57 -1
- package/dist/operations/mutation/types.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.js +363 -24
- package/dist/operations/mutation/validation.d.ts.map +1 -1
- package/dist/operations/mutation/validation.js +1 -0
- package/dist/operations/planning/apply-plan.d.ts +117 -0
- package/dist/operations/planning/apply-plan.d.ts.map +1 -0
- package/dist/operations/planning/apply-plan.js +1437 -0
- package/dist/operations/planning/compile-intent.d.ts +106 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -0
- package/dist/operations/planning/compile-intent.js +562 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analyze-prose.js +6 -2
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +15 -2
- package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
- package/dist/operations/semantic-advisor/types.d.ts +13 -5
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
- package/dist/operations/verification/ingest-verification.d.ts +29 -0
- package/dist/operations/verification/ingest-verification.d.ts.map +1 -0
- package/dist/operations/verification/ingest-verification.js +192 -0
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +2 -1
- package/dist/prolog.d.ts +8 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +66 -16
- package/dist/public/branch-resolver.d.ts +1 -0
- package/dist/public/branch-resolver.d.ts.map +1 -1
- package/dist/public/branch-resolver.js +1 -0
- package/dist/public/check-types.d.ts +2 -2
- package/dist/public/check-types.d.ts.map +1 -1
- package/dist/public/check-types.js +16 -16
- package/dist/public/diagnostic-usage.d.ts.map +1 -1
- package/dist/public/diagnostic-usage.js +69 -1
- package/dist/public/distribution-parity.d.ts +1 -1
- package/dist/public/distribution-parity.d.ts.map +1 -1
- package/dist/public/distribution-parity.js +1 -0
- package/dist/public/ignore-policy.d.ts.map +1 -1
- package/dist/public/ignore-policy.js +16 -4
- package/dist/public/impact/coverage-depth-quality.d.ts +6 -1
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
- package/dist/public/impact/coverage-depth-quality.js +21 -3
- package/dist/public/impact/full-kb-quality.d.ts +4 -2
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +61 -1
- package/dist/public/impact/manifest.d.ts.map +1 -1
- package/dist/public/impact/manifest.js +2 -5
- package/dist/public/operational-artifacts.d.ts.map +1 -1
- package/dist/public/operational-artifacts.js +7 -1
- package/dist/public/operations/catalog.d.ts +682 -67
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +126 -4
- package/dist/public/operations/check-executor.d.ts +2 -2
- package/dist/public/operations/check-executor.d.ts.map +1 -1
- package/dist/public/operations/check-executor.js +72 -13
- package/dist/public/operations/check-format-shared.d.ts +3 -0
- package/dist/public/operations/check-format-shared.d.ts.map +1 -1
- package/dist/public/operations/check-format-shared.js +3 -0
- package/dist/public/operations/check-helpers.d.ts +27 -2
- package/dist/public/operations/check-helpers.d.ts.map +1 -1
- package/dist/public/operations/check-helpers.js +62 -26
- package/dist/public/operations/contracts.d.ts +11 -0
- package/dist/public/operations/contracts.d.ts.map +1 -0
- package/dist/public/operations/contracts.js +325 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +3 -2
- package/dist/public/operations/discovery-executors.d.ts +37 -1
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +246 -9
- package/dist/public/operations/index.d.ts +9 -4
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +8 -3
- package/dist/public/operations/migration-plan.d.ts +101 -0
- package/dist/public/operations/migration-plan.d.ts.map +1 -0
- package/dist/public/operations/migration-plan.js +537 -0
- package/dist/public/operations/node-ports.d.ts.map +1 -1
- package/dist/public/operations/node-ports.js +68 -8
- package/dist/public/operations/prolog-json.d.ts +14 -0
- package/dist/public/operations/prolog-json.d.ts.map +1 -1
- package/dist/public/operations/prolog-json.js +55 -6
- package/dist/public/operations/repair-plan.d.ts.map +1 -1
- package/dist/public/operations/repair-plan.js +1 -0
- package/dist/public/operations/result-envelope.d.ts +13 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -0
- package/dist/public/operations/result-envelope.js +104 -0
- package/dist/public/operations/runtime-types.d.ts +126 -5
- package/dist/public/operations/runtime-types.d.ts.map +1 -1
- package/dist/public/operations/source-relationship-parity.d.ts +13 -0
- package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
- package/dist/public/operations/source-relationship-parity.js +162 -0
- package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
- package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
- package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
- package/dist/public/operations/specs/check.d.ts +4 -4
- package/dist/public/operations/specs/check.d.ts.map +1 -1
- package/dist/public/operations/specs/check.js +4 -3
- package/dist/public/operations/specs/discovery.d.ts +87 -3
- package/dist/public/operations/specs/discovery.d.ts.map +1 -1
- package/dist/public/operations/specs/discovery.js +53 -3
- package/dist/public/operations/specs/modeling.d.ts +3 -3
- package/dist/public/operations/specs/modeling.js +3 -3
- package/dist/public/operations/specs/mutation-schemas.d.ts +190 -47
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +3 -1
- package/dist/public/operations/specs/mutation.d.ts +42 -2
- package/dist/public/operations/specs/mutation.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation.js +26 -2
- package/dist/public/operations/specs/planning.d.ts +270 -0
- package/dist/public/operations/specs/planning.d.ts.map +1 -0
- package/dist/public/operations/specs/planning.js +191 -0
- package/dist/public/operations/specs/reporting.d.ts +4 -1
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +46 -1
- package/dist/public/operations/specs/upsert.d.ts +204 -47
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/specs/upsert.js +9 -0
- package/dist/public/operations/specs/verification.d.ts +78 -0
- package/dist/public/operations/specs/verification.d.ts.map +1 -0
- package/dist/public/operations/specs/verification.js +62 -0
- package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
- package/dist/public/operations/symbol-repair-plan.js +123 -0
- package/dist/public/operations/types.d.ts +52 -1
- package/dist/public/operations/types.d.ts.map +1 -1
- package/dist/public/playwright-case-id.d.ts +8 -0
- package/dist/public/playwright-case-id.d.ts.map +1 -0
- package/dist/public/playwright-case-id.js +25 -0
- package/dist/public/schemas/entity.d.ts.map +1 -1
- package/dist/public/schemas/entity.js +4 -2
- package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/dist/public/skills/kibi-freshness/SKILL.md +40 -10
- package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
- package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/dist/public/skills/kibi-usage/SKILL.md +115 -239
- package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +56 -3
- package/dist/public/symbol-granularity.d.ts +1 -1
- package/dist/public/symbol-granularity.d.ts.map +1 -1
- package/dist/public/symbol-granularity.js +1 -0
- package/dist/public/telemetry-acceptance.d.ts +7 -0
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +8 -1
- package/dist/public/telemetry-remediation.js +1 -1
- package/dist/public/verification-receipt.d.ts +206 -39
- package/dist/public/verification-receipt.d.ts.map +1 -1
- package/dist/public/verification-receipt.js +171 -4
- package/dist/relationships/shards.d.ts +16 -0
- package/dist/relationships/shards.d.ts.map +1 -1
- package/dist/relationships/shards.js +87 -2
- package/dist/report/brand.d.ts +19 -0
- package/dist/report/brand.d.ts.map +1 -0
- package/dist/report/brand.js +112 -0
- package/dist/report/html-report.d.ts +19 -0
- package/dist/report/html-report.d.ts.map +1 -0
- package/dist/report/html-report.js +963 -0
- package/dist/report/relative-time.d.ts +4 -0
- package/dist/report/relative-time.d.ts.map +1 -0
- package/dist/report/relative-time.js +46 -0
- package/dist/report/report-view.d.ts +17 -0
- package/dist/report/report-view.d.ts.map +1 -0
- package/dist/report/report-view.js +33 -0
- package/dist/report/repository.d.ts +35 -0
- package/dist/report/repository.d.ts.map +1 -0
- package/dist/report/repository.js +151 -0
- package/dist/runtime/cli-runtime.d.ts.map +1 -1
- package/dist/runtime/cli-runtime.js +98 -42
- package/dist/schemas/entity.schema.json +1148 -273
- package/dist/traceability/evidence-model.d.ts +2 -2
- package/dist/traceability/evidence-model.d.ts.map +1 -1
- package/dist/traceability/evidence-model.js +2 -2
- package/dist/traceability/git-staged.d.ts.map +1 -1
- package/dist/traceability/git-staged.js +15 -40
- package/dist/traceability/markdown-validate.d.ts.map +1 -1
- package/dist/traceability/markdown-validate.js +12 -7
- package/dist/traceability/staged-impact-contract.d.ts +3 -3
- package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
- package/dist/traceability/staged-impact-contract.js +10 -38
- package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
- package/dist/traceability/staged-symbols-manifest.js +8 -3
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +3 -0
- package/dist/types/entities.d.ts +3 -0
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +24 -10
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +121 -38
- package/dist/utils/branch-store-locator.d.ts +23 -0
- package/dist/utils/branch-store-locator.d.ts.map +1 -0
- package/dist/utils/branch-store-locator.js +90 -0
- package/dist/utils/branch-store.d.ts +15 -0
- package/dist/utils/branch-store.d.ts.map +1 -0
- package/dist/utils/branch-store.js +130 -0
- package/dist/utils/config.d.ts +39 -37
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +107 -119
- package/dist/utils/kb-manifest.d.ts +35 -0
- package/dist/utils/kb-manifest.d.ts.map +1 -0
- package/dist/utils/kb-manifest.js +154 -0
- package/dist/utils/kb-paths.d.ts +54 -0
- package/dist/utils/kb-paths.d.ts.map +1 -0
- package/dist/utils/kb-paths.js +125 -0
- package/dist/utils/manifest-paths.d.ts +4 -4
- package/dist/utils/manifest-paths.d.ts.map +1 -1
- package/dist/utils/manifest-paths.js +8 -56
- package/dist/utils/rule-registry.d.ts +48 -20
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.js +82 -77
- package/dist/utils/schema-version.d.ts +5 -5
- package/dist/utils/schema-version.d.ts.map +1 -1
- package/dist/utils/schema-version.js +26 -6
- package/dist/utils/strict-modeling.d.ts +0 -4
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +7 -8
- package/dist/verification/playwright-reporter.d.ts +21 -0
- package/dist/verification/playwright-reporter.d.ts.map +1 -0
- package/dist/verification/playwright-reporter.js +114 -0
- package/package.json +51 -8
- package/schema/config.json +2 -2
- package/schema/manifest.json +26 -0
- package/src/public/branch-resolver.ts +1 -0
- package/src/public/check-types.ts +22 -19
- package/src/public/diagnostic-usage.ts +79 -1
- package/src/public/distribution-parity.ts +1 -0
- package/src/public/ignore-policy.ts +16 -10
- package/src/public/impact/coverage-depth-quality.ts +36 -0
- package/src/public/impact/full-kb-quality.ts +118 -5
- package/src/public/impact/manifest.ts +2 -4
- package/src/public/operational-artifacts.ts +9 -1
- package/src/public/operations/catalog.ts +146 -9
- package/src/public/operations/check-executor.ts +102 -15
- package/src/public/operations/check-format-shared.ts +6 -0
- package/src/public/operations/check-helpers.ts +74 -35
- package/src/public/operations/contracts.ts +366 -0
- package/src/public/operations/discovery-entities.ts +3 -2
- package/src/public/operations/discovery-executors.ts +343 -15
- package/src/public/operations/index.ts +9 -4
- package/src/public/operations/migration-plan.ts +740 -0
- package/src/public/operations/node-ports.ts +84 -10
- package/src/public/operations/prolog-json.ts +73 -6
- package/src/public/operations/repair-plan.ts +1 -0
- package/src/public/operations/result-envelope.ts +136 -0
- package/src/public/operations/runtime-types.ts +130 -5
- package/src/public/operations/source-relationship-parity.ts +226 -0
- package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
- package/src/public/operations/specs/check.ts +4 -3
- package/src/public/operations/specs/discovery.ts +57 -3
- package/src/public/operations/specs/modeling.ts +3 -3
- package/src/public/operations/specs/mutation-schemas.ts +6 -1
- package/src/public/operations/specs/mutation.ts +27 -2
- package/src/public/operations/specs/planning.ts +234 -0
- package/src/public/operations/specs/reporting.ts +55 -1
- package/src/public/operations/specs/upsert.ts +10 -0
- package/src/public/operations/specs/verification.ts +78 -0
- package/src/public/operations/symbol-repair-plan.ts +164 -0
- package/src/public/operations/types.ts +62 -1
- package/src/public/playwright-case-id.ts +35 -0
- package/src/public/schemas/entity.ts +7 -2
- package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/src/public/skills/kibi-freshness/SKILL.md +40 -10
- package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/src/public/skills/kibi-traceability/SKILL.md +47 -47
- package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/src/public/skills/kibi-usage/SKILL.md +115 -239
- package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +56 -3
- package/src/public/symbol-granularity.ts +1 -0
- package/src/public/telemetry-acceptance.ts +16 -1
- package/src/public/telemetry-remediation.ts +1 -1
- package/src/public/verification-receipt.ts +248 -6
- package/src/schemas/entity.schema.json +1148 -273
- package/templates/github/kibi-badge.yml +86 -0
- package/templates/github/kibi-report.yml +84 -0
- package/dist/operations/autopilot/activation.d.ts.map +0 -1
- package/dist/operations/autopilot/candidates.d.ts +0 -4
- package/dist/operations/autopilot/discovery.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.d.ts +0 -8
- package/dist/operations/autopilot/generate.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.js +0 -112
- package/dist/operations/autopilot/presentation.d.ts +0 -13
- package/dist/operations/autopilot/presentation.d.ts.map +0 -1
- package/dist/operations/autopilot/presentation.js +0 -91
- package/dist/operations/autopilot/types.d.ts.map +0 -1
- package/dist/operations/autopilot/types.js +0 -8
- package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
- package/dist/public/skills/init-kibi/SKILL.md +0 -62
- package/src/public/skills/init-kibi/SKILL.md +0 -62
- /package/dist/operations/{autopilot → bootstrap}/activation.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { usageHintsForSchema, } from "./predicate-ranker.js";
|
|
2
|
+
export const MIN_APPLICABILITY_SCORE = 0.62;
|
|
3
|
+
export const STRONG_APPLICABILITY_SCORE = 0.8;
|
|
4
|
+
export const WEAK_CANDIDATE_MARGIN = 0.06;
|
|
5
|
+
const NORMATIVE_OR_VALIDITY_PATTERN = /\b(?:must|shall|should|required|requires?|may\s+only|only\s+.+?\s+(?:may|can)|must\s+not|shall\s+not|cannot|can't|allowed|denied|forbidden|prohibited|invalid|unresolved|reject(?:s|ed|ion)?|fail(?:s|ed|ure)?\s+(?:clearly|explicitly|with)|defaults?\s+to|states?\s+are|owned\s+by|initializes?\s+after|before|unless|when|if|(?:exception|exempt)\s+(?:to|from|when|if|unless))\b/i;
|
|
6
|
+
function expressesNormativeOrValidityIntent(text) {
|
|
7
|
+
return /^\s*no\b/i.test(text) || NORMATIVE_OR_VALIDITY_PATTERN.test(text);
|
|
8
|
+
}
|
|
9
|
+
const INTENT_RULES = {
|
|
10
|
+
state: {
|
|
11
|
+
allOf: [
|
|
12
|
+
[/\bstate\b|\bmode\b/i],
|
|
13
|
+
[/\benter|\bidle\b|\bactive\b|\bdraft\b|\bedit\b/i],
|
|
14
|
+
],
|
|
15
|
+
prohibited: [/states?\s+are|one\s+of|transitions?\s+from/i],
|
|
16
|
+
},
|
|
17
|
+
retention_policy: {
|
|
18
|
+
allOf: [
|
|
19
|
+
[/retain|retention/i],
|
|
20
|
+
[/exist|duration|days?|months?|years?|weeks?|hours?/i],
|
|
21
|
+
],
|
|
22
|
+
prohibited: [/rate\s+limit|session\s+expir|latency|timeout/i],
|
|
23
|
+
},
|
|
24
|
+
offline_behavior_rule: {
|
|
25
|
+
allOf: [[/offline/i], [/non[- ]blocking|resilien|synchron|gameplay/i]],
|
|
26
|
+
},
|
|
27
|
+
dependency_resolution_policy: {
|
|
28
|
+
allOf: [
|
|
29
|
+
[/dependenc|package|module|plugin|mcp/i],
|
|
30
|
+
[/resolv|locat|load|execut|acquir/i],
|
|
31
|
+
[
|
|
32
|
+
/consumer[- ]local|project[- ]local|plugin[- ]local|consumer[- ]scoped|workspace\s+(?:scope|semantics)|global(?:\s+fallback|\s+installation|\s+runtime)?|without\s+(?:downloading|installing)|no\s+(?:download|global\s+fallback)|must\s+not\s+(?:download|install)|acquisition\s+(?:policy|restriction)/i,
|
|
33
|
+
],
|
|
34
|
+
],
|
|
35
|
+
prohibited: [
|
|
36
|
+
/ordered|first\s+then|deterministic\s+order|resolution\s+order|child\s+process|invalid|ambiguous|missing|actionable|failure/i,
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
ordered_resolution_strategy: {
|
|
40
|
+
allOf: [
|
|
41
|
+
[/resolv|lookup|candidate|source|dependency/i],
|
|
42
|
+
[/ordered|first|then|priority|candidates?|workspace|cwd/i],
|
|
43
|
+
],
|
|
44
|
+
prohibited: [/invalid|ambiguous|placeholder|child\s+process|spawn/i],
|
|
45
|
+
},
|
|
46
|
+
resolution_failure_policy: {
|
|
47
|
+
allOf: [
|
|
48
|
+
[/invalid|ambiguous|placeholder|root|usable|reject|fail|error/i],
|
|
49
|
+
[/resolv|input|condition|clear|outcome|fail/i],
|
|
50
|
+
],
|
|
51
|
+
prohibited: [/child\s+process|spawn|stdio|package-manager.*exception/i],
|
|
52
|
+
},
|
|
53
|
+
process_delegation_contract: {
|
|
54
|
+
allOf: [
|
|
55
|
+
[
|
|
56
|
+
/child\s+process|spawn|executable|cwd|working\s+directory|environment|env|stdio|terminat|exit/i,
|
|
57
|
+
],
|
|
58
|
+
[/launcher|delegate|delegat|process|command|spawn/i],
|
|
59
|
+
],
|
|
60
|
+
prohibited: [
|
|
61
|
+
/dependency\s+resolution|invalid\s+placeholder|ambiguous\s+root/i,
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
failure_behavior: {
|
|
65
|
+
allOf: [
|
|
66
|
+
[
|
|
67
|
+
/failure|fail|missing(?:\s+\S+){0,4}\s+dependenc|missing\s+(?:project[- ]local\s+)?(?:kibi[- ]mcp|package|module)|dependenc\w*\s+(?:is\s+)?missing|unavailable|exception|error\s+(?:behavior|outcome|handling)/i,
|
|
68
|
+
],
|
|
69
|
+
[/report|outcome|actionable|clear|return|surface|throw/i],
|
|
70
|
+
],
|
|
71
|
+
prohibited: [
|
|
72
|
+
/invalid\s+placeholder|ambiguous\s+root|ordered\s+source|child\s+process/i,
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
exception_rule: {
|
|
76
|
+
// Package-manager wording can provide context for an exception, but it
|
|
77
|
+
// is not itself an exception claim. Require an explicit exception
|
|
78
|
+
// relationship so descriptive documentation cannot select this rule.
|
|
79
|
+
anyOf: [
|
|
80
|
+
/\bunless\b/i,
|
|
81
|
+
/\bexcept\s+(?:when|if|for|that)\b/i,
|
|
82
|
+
/\b(?:is|are|remains?|constitutes?)\s+(?:the\s+)?(?:only\s+)?exception\s+to\b/i,
|
|
83
|
+
/\b(?:is|are|remains?)\s+exempt\s+(?:from|unless|when|if)\b/i,
|
|
84
|
+
],
|
|
85
|
+
prohibited: [/child\s+process|stdio|ordered\s+source/i],
|
|
86
|
+
},
|
|
87
|
+
permission_rule: {
|
|
88
|
+
allOf: [
|
|
89
|
+
[/only|may|can|allowed|denied|forbidden|must\s+not|cannot/i],
|
|
90
|
+
[/delete|export|access|read|write|update|remove|manage|permission/i],
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
resource_constraint: {
|
|
94
|
+
allOf: [
|
|
95
|
+
[
|
|
96
|
+
/latency|timeout|throughput|quota|memory|cpu|size|resource|response\s+time|upload|download|payload|attachment|file/i,
|
|
97
|
+
],
|
|
98
|
+
[
|
|
99
|
+
/at\s+most|at\s+least|not\s+exceed|maximum|minimum|under|below|above|within|limit|bounded|enforced|\b\d+(?:\.\d+)?\s*(?:ms|milliseconds?|s|seconds?|mb|gb|%)?\b/i,
|
|
100
|
+
],
|
|
101
|
+
],
|
|
102
|
+
prohibited: [
|
|
103
|
+
/only|allowed|denied|forbidden|permission|authorize|must\s+not\s+(?:delete|export|access|write|update|remove|manage)/i,
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
uniqueness_constraint: {
|
|
107
|
+
allOf: [[/at\s+most\s+one|unique|uniqueness/i], [/\bper\b|scope|within/i]],
|
|
108
|
+
prohibited: [/rate\s+limit|per\s+(?:second|minute|hour|day|window)/i],
|
|
109
|
+
},
|
|
110
|
+
state_membership: {
|
|
111
|
+
allOf: [
|
|
112
|
+
[/states?\s+are|terminal\s+states?|allowed\s+states?|one\s+of/i],
|
|
113
|
+
[/\bstate|ready|anonymous|terminal|allowed|enumerated/i],
|
|
114
|
+
],
|
|
115
|
+
prohibited: [/transitions?\s+from/i],
|
|
116
|
+
},
|
|
117
|
+
conditional_behavior: {
|
|
118
|
+
allOf: [
|
|
119
|
+
[/^\s*(?:if|when)\b|\b(?:if|when)\b/i],
|
|
120
|
+
[/\bmust\b|\bshall\b|\bshould\b|\bbecomes?\b|\bthen\b/i],
|
|
121
|
+
],
|
|
122
|
+
anyOf: [
|
|
123
|
+
/^when\s+.+?,\s*(?:the\s+)?.+?\s+(?:must|shall|should)\s+/i,
|
|
124
|
+
/^if\s+.+?,\s*(?:it|they|the\s+.+?)\s+(?:becomes?|must|shall|should)\b/i,
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
rate_limit: {
|
|
128
|
+
allOf: [
|
|
129
|
+
[/rate|frequency|repeated|requests?|actions?|operations?/i],
|
|
130
|
+
[
|
|
131
|
+
/per\s+(?:second|minute|hour|day|window)|every\s+\w+|time\s+window|window/i,
|
|
132
|
+
],
|
|
133
|
+
],
|
|
134
|
+
prohibited: [/upload|download|payload|attachment|file\s+size/i],
|
|
135
|
+
},
|
|
136
|
+
data_residency_rule: {
|
|
137
|
+
allOf: [
|
|
138
|
+
[/stored|processed|kept/i],
|
|
139
|
+
[/region|jurisdiction|country|zone|area/i],
|
|
140
|
+
],
|
|
141
|
+
prohibited: [/redis|cache|memory|bucket|database\s+instance/i],
|
|
142
|
+
},
|
|
143
|
+
coding_standard_rule: {
|
|
144
|
+
allOf: [
|
|
145
|
+
[/use|avoid/i],
|
|
146
|
+
[/api|apis|code|framework|hook|pattern|signal|schema|type|computed/i],
|
|
147
|
+
],
|
|
148
|
+
prohibited: [/user|admin|access|permission|mfa|customer/i],
|
|
149
|
+
},
|
|
150
|
+
release_gate_rule: {
|
|
151
|
+
allOf: [
|
|
152
|
+
[/release|deploy|testflight|app\s+store|distribution|build/i],
|
|
153
|
+
[/pass|gate|before|configuration/i],
|
|
154
|
+
],
|
|
155
|
+
prohibited: [/checkout|payment|fraud|workflow|capture/i],
|
|
156
|
+
},
|
|
157
|
+
security_configuration_rule: {
|
|
158
|
+
allOf: [
|
|
159
|
+
[/security|database|deployment|function|rpc|search_path|trigger/i],
|
|
160
|
+
[/explicit|configuration|setting/i],
|
|
161
|
+
],
|
|
162
|
+
prohibited: [/display\s+label|ui|profile\s+field/i],
|
|
163
|
+
},
|
|
164
|
+
absence_requirement: {
|
|
165
|
+
anyOf: [/\bno\b|absent|removed|not\s+exist|must\s+not\s+exist/i],
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
function round(value) {
|
|
169
|
+
return Math.round(Math.max(0, Math.min(0.98, value)) * 100) / 100;
|
|
170
|
+
}
|
|
171
|
+
function countHintCues(text, values, minimumCoverage = 0) {
|
|
172
|
+
if (!values)
|
|
173
|
+
return 0;
|
|
174
|
+
const lower = text.toLowerCase();
|
|
175
|
+
return values.reduce((count, value) => {
|
|
176
|
+
const cues = (value.toLowerCase().match(/[a-z0-9]+/g) ?? []).filter((cue) => cue.length > 3 &&
|
|
177
|
+
!["when", "this", "that", "with", "from", "use"].includes(cue));
|
|
178
|
+
if (cues.length === 0)
|
|
179
|
+
return count;
|
|
180
|
+
const matched = cues.filter((cue) => lower.includes(cue)).length;
|
|
181
|
+
// A single generic word from a do_not_use_when sentence is not negative
|
|
182
|
+
// evidence. Require an exact phrase or at least two meaningful cues.
|
|
183
|
+
const phrase = value
|
|
184
|
+
.toLowerCase()
|
|
185
|
+
.replace(/^do\s+not\s+use\s+(?:when|for)\s+/, "")
|
|
186
|
+
.replace(/^use\s+(?:when|for)\s+/, "")
|
|
187
|
+
.replace(/[^a-z0-9]+/g, " ")
|
|
188
|
+
.trim();
|
|
189
|
+
const exactPhrase = phrase.length > 0 && lower.includes(phrase);
|
|
190
|
+
const requiredMatches = minimumCoverage > 0
|
|
191
|
+
? Math.max(2, Math.ceil(cues.length * minimumCoverage))
|
|
192
|
+
: Math.min(2, cues.length);
|
|
193
|
+
return count + (exactPhrase || matched >= requiredMatches ? 1 : 0);
|
|
194
|
+
}, 0);
|
|
195
|
+
}
|
|
196
|
+
function specificityEvidence(schema, text) {
|
|
197
|
+
const values = [
|
|
198
|
+
schema.predicate_name,
|
|
199
|
+
...(schema.aliases ?? []),
|
|
200
|
+
...(schema.paraphrase_templates ?? []),
|
|
201
|
+
...schema.keywords,
|
|
202
|
+
];
|
|
203
|
+
const lower = text.toLowerCase();
|
|
204
|
+
const hits = values.reduce((count, value) => {
|
|
205
|
+
const cues = value.toLowerCase().match(/[a-z0-9]+/g) ?? [];
|
|
206
|
+
return (count +
|
|
207
|
+
(cues.some((cue) => cue.length > 3 && lower.includes(cue)) ? 1 : 0));
|
|
208
|
+
}, 0);
|
|
209
|
+
return Math.min(1, hits / Math.max(3, values.length / 2));
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Evaluate semantic fit after retrieval and before argument binding. The
|
|
213
|
+
* function deliberately does not inspect argument values: complete-looking
|
|
214
|
+
* terms cannot make a semantically unrelated schema eligible.
|
|
215
|
+
*/
|
|
216
|
+
export function evaluateSemanticApplicability(ranked, text) {
|
|
217
|
+
const schema = ranked.schema;
|
|
218
|
+
const rule = INTENT_RULES[schema.predicate_name];
|
|
219
|
+
const usageHints = usageHintsForSchema(schema);
|
|
220
|
+
const positiveHints = countHintCues(text, usageHints?.use_when);
|
|
221
|
+
const negativeHints = countHintCues(text, usageHints?.do_not_use_when, 0.6);
|
|
222
|
+
const specific = specificityEvidence(schema, text);
|
|
223
|
+
const reasons = [];
|
|
224
|
+
if (!expressesNormativeOrValidityIntent(text)) {
|
|
225
|
+
reasons.push("prose does not express normative or validity intent");
|
|
226
|
+
}
|
|
227
|
+
let positive = specific + positiveHints * 0.16;
|
|
228
|
+
let negative = negativeHints * 0.2 + ranked.components.negative_evidence * 0.45;
|
|
229
|
+
if (ranked.components.exact_pattern >= 0.9) {
|
|
230
|
+
// Exact structural scorers are reviewed semantic patterns, not mere token
|
|
231
|
+
// overlap. They may satisfy the baseline intent evidence unless an
|
|
232
|
+
// explicit contradictory cue below rejects them.
|
|
233
|
+
positive += 0.38;
|
|
234
|
+
}
|
|
235
|
+
if (rule?.allOf) {
|
|
236
|
+
for (const group of rule.allOf) {
|
|
237
|
+
if (group.some((pattern) => pattern.test(text)))
|
|
238
|
+
positive += 0.22;
|
|
239
|
+
else
|
|
240
|
+
reasons.push(`required semantic cue absent for ${schema.predicate_name}`);
|
|
241
|
+
}
|
|
242
|
+
// A declared intent rule that satisfies every cue group is meaningful
|
|
243
|
+
// semantic evidence even when lexical retrieval was weak (for example,
|
|
244
|
+
// "timeout must not exceed 30 seconds" versus a short schema keyword
|
|
245
|
+
// list). Give that complete match a bounded applicability lift.
|
|
246
|
+
if (rule.allOf.every((group) => group.some((pattern) => pattern.test(text))))
|
|
247
|
+
positive += 0.2;
|
|
248
|
+
}
|
|
249
|
+
if (rule?.anyOf && !rule.anyOf.some((pattern) => pattern.test(text))) {
|
|
250
|
+
reasons.push(`intent cues do not describe ${schema.predicate_name}`);
|
|
251
|
+
}
|
|
252
|
+
else if (rule?.anyOf) {
|
|
253
|
+
positive += 0.26;
|
|
254
|
+
}
|
|
255
|
+
const prohibited = [...(rule?.prohibited ?? [])].filter((pattern) => pattern.test(text));
|
|
256
|
+
if (prohibited.length > 0) {
|
|
257
|
+
negative += prohibited.length * 0.35;
|
|
258
|
+
reasons.push(`prohibited or contradictory cue: ${prohibited
|
|
259
|
+
.map((pattern) => pattern.source)
|
|
260
|
+
.join(", ")}`);
|
|
261
|
+
}
|
|
262
|
+
if (negativeHints > 0) {
|
|
263
|
+
reasons.push("usage guidance says this schema is not for the supplied intent");
|
|
264
|
+
}
|
|
265
|
+
const score = round(ranked.score * 0.42 +
|
|
266
|
+
Math.min(1, positive) * 0.58 -
|
|
267
|
+
Math.min(1, negative) * 0.46);
|
|
268
|
+
if (score < MIN_APPLICABILITY_SCORE) {
|
|
269
|
+
reasons.push(`applicability score ${score.toFixed(2)} is below conservative threshold ${MIN_APPLICABILITY_SCORE.toFixed(2)}`);
|
|
270
|
+
}
|
|
271
|
+
return {
|
|
272
|
+
eligible: reasons.length === 0 && score >= MIN_APPLICABILITY_SCORE,
|
|
273
|
+
reasons: Array.from(new Set(reasons)),
|
|
274
|
+
applicabilityScore: score,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import type { PredicateSchemaCandidate, PredicateSuggestion, SuggestPredicatesArgs } from "./predicate-types.js";
|
|
2
|
-
export declare function buildSuggestion(schema: PredicateSchemaCandidate, text: string, subject: string, score: number, argumentBindings?: Readonly<Record<string, string>>, polarityHint?: "assert" | "deny"
|
|
1
|
+
import type { PredicateSchemaCandidate, PredicateScoreComponents, PredicateSuggestion, RecommendedPredicateSchema, SuggestPredicatesArgs } from "./predicate-types.js";
|
|
2
|
+
export declare function buildSuggestion(schema: PredicateSchemaCandidate, text: string, subject: string, score: number, argumentBindings?: Readonly<Record<string, string>>, polarityHint?: "assert" | "deny", diagnostics?: {
|
|
3
|
+
eligibility?: "eligible" | "rejected";
|
|
4
|
+
rejectionReasons?: readonly string[];
|
|
5
|
+
applicabilityScore?: number;
|
|
6
|
+
scoreComponents?: PredicateScoreComponents;
|
|
7
|
+
explicitSubject?: boolean;
|
|
8
|
+
}): PredicateSuggestion;
|
|
3
9
|
export declare function buildPredicateApplyPlan(suggestion: PredicateSuggestion, args: SuggestPredicatesArgs): Array<Record<string, unknown>>;
|
|
4
10
|
export declare function buildRelationshipPlan(factId: string | undefined, requirementId: string | undefined, claimText?: string, existingLogicClaims?: readonly string[]): Record<string, unknown> | null;
|
|
5
11
|
export declare function buildGapApplyPlan(text: string, args: SuggestPredicatesArgs): Array<Record<string, unknown>>;
|
|
12
|
+
/**
|
|
13
|
+
* Build a review-only schema draft when retrieval found no eligible schema.
|
|
14
|
+
* The draft is deterministic and intentionally contains no apply plan.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildPredicateSchemaDraft(text: string, subject: string): RecommendedPredicateSchema;
|
|
6
17
|
//# sourceMappingURL=predicate-applyplan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicate-applyplan.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-applyplan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"predicate-applyplan.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-applyplan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,eAAe,CAC7B,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,gBAAgB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACvD,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,EAChC,WAAW,CAAC,EAAE;IACZ,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,mBAAmB,CA6ErB;AAGD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE,qBAAqB,GAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAqChC;AAGD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,GAAE,SAAS,MAAM,EAAO,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAwBhC;AAGD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,qBAAqB,GAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+BhC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,0BAA0B,CAoE5B"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import { semanticClaimKey } from "../semantic-advisor/clauses.js";
|
|
2
|
+
import { exactLauncherPredicateArgs } from "../semantic-advisor/predicate-rules-launcher.js";
|
|
3
|
+
import { aggregateBindingProvenance, bindingCanBeApplied, classifyBinding, isGenericPlaceholder, } from "./predicate-bindings.js";
|
|
2
4
|
import { inferArgs } from "./predicate-inference.js";
|
|
3
5
|
import { schemaForCandidate } from "./predicate-loader.js";
|
|
4
6
|
import { hashId } from "./predicate-utils.js";
|
|
5
7
|
// implements REQ-mcp-suggest-predicates
|
|
6
|
-
export function buildSuggestion(schema, text, subject, score, argumentBindings = {}, polarityHint) {
|
|
8
|
+
export function buildSuggestion(schema, text, subject, score, argumentBindings = {}, polarityHint, diagnostics) {
|
|
7
9
|
const inferredArgs = inferArgs(schema, text, subject);
|
|
10
|
+
const canonicalLauncherArgs = exactLauncherPredicateArgs(schema.predicate_name, text);
|
|
8
11
|
const predicateArgs = schema.argument_names.map((name, index) => {
|
|
9
12
|
const exactBinding = argumentBindings[name];
|
|
10
13
|
return typeof exactBinding === "string" && exactBinding.trim().length > 0
|
|
11
14
|
? exactBinding.trim()
|
|
12
15
|
: (inferredArgs[index] ?? "unknown");
|
|
13
16
|
});
|
|
14
|
-
const
|
|
17
|
+
const bindingProvenanceByArgument = Object.fromEntries(schema.argument_names.map((name, index) => [
|
|
18
|
+
name,
|
|
19
|
+
classifyBinding(predicateArgs[index] ?? "unknown", text, (typeof argumentBindings[name] === "string" &&
|
|
20
|
+
argumentBindings[name].trim().length > 0) ||
|
|
21
|
+
(diagnostics?.explicitSubject === true && index === 0), canonicalLauncherArgs?.[index] === predicateArgs[index] &&
|
|
22
|
+
!(index === 0 &&
|
|
23
|
+
predicateArgs[index] === "launcher" &&
|
|
24
|
+
diagnostics?.explicitSubject !== true &&
|
|
25
|
+
typeof argumentBindings[name] !== "string")),
|
|
26
|
+
]));
|
|
27
|
+
const bindingProvenance = aggregateBindingProvenance(Object.values(bindingProvenanceByArgument));
|
|
28
|
+
const unboundArguments = schema.argument_names.filter((name) => !bindingCanBeApplied(bindingProvenanceByArgument[name] ?? "placeholder"));
|
|
15
29
|
const canonicalKey = `${schema.predicate_name}(${predicateArgs.join(",")})`;
|
|
16
30
|
// Permission-style inference carries the deontic decision as its final
|
|
17
31
|
// argument. Preserve that polarity in the typed suggestion instead of
|
|
@@ -29,6 +43,21 @@ export function buildSuggestion(schema, text, subject, score, argumentBindings =
|
|
|
29
43
|
polarity,
|
|
30
44
|
binding_status: unboundArguments.length === 0 ? "complete" : "incomplete",
|
|
31
45
|
unbound_arguments: unboundArguments,
|
|
46
|
+
binding_provenance: bindingProvenance,
|
|
47
|
+
binding_provenance_by_argument: bindingProvenanceByArgument,
|
|
48
|
+
eligibility: diagnostics?.eligibility ?? "eligible",
|
|
49
|
+
rejection_reasons: [...(diagnostics?.rejectionReasons ?? [])],
|
|
50
|
+
applicability_score: diagnostics?.applicabilityScore ?? score,
|
|
51
|
+
score_components: diagnostics?.scoreComponents ?? {
|
|
52
|
+
exact_pattern: score,
|
|
53
|
+
keyword_hits: 0,
|
|
54
|
+
descriptor_overlap: 0,
|
|
55
|
+
usage_match: 0,
|
|
56
|
+
negative_evidence: 0,
|
|
57
|
+
broad_token_penalty: 0,
|
|
58
|
+
specificity_bonus: 0,
|
|
59
|
+
total: score,
|
|
60
|
+
},
|
|
32
61
|
score,
|
|
33
62
|
rationale: `Matched ${schema.predicate_name} because the prose overlaps with ${schema.tags.join(", ")} cues.`,
|
|
34
63
|
schema: schemaForCandidate(schema),
|
|
@@ -36,7 +65,8 @@ export function buildSuggestion(schema, text, subject, score, argumentBindings =
|
|
|
36
65
|
}
|
|
37
66
|
// implements REQ-mcp-suggest-predicates
|
|
38
67
|
export function buildPredicateApplyPlan(suggestion, args) {
|
|
39
|
-
if (suggestion.binding_status !== "complete"
|
|
68
|
+
if (suggestion.binding_status !== "complete" ||
|
|
69
|
+
suggestion.eligibility !== "eligible")
|
|
40
70
|
return [];
|
|
41
71
|
const claimKey = semanticClaimKey(args.text);
|
|
42
72
|
const factId = hashId("FACT-PRED", [
|
|
@@ -127,3 +157,70 @@ export function buildGapApplyPlan(text, args) {
|
|
|
127
157
|
},
|
|
128
158
|
];
|
|
129
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Build a review-only schema draft when retrieval found no eligible schema.
|
|
162
|
+
* The draft is deterministic and intentionally contains no apply plan.
|
|
163
|
+
*/
|
|
164
|
+
export function buildPredicateSchemaDraft(text, subject) {
|
|
165
|
+
const lower = text.toLowerCase();
|
|
166
|
+
const words = lower.match(/[a-z][a-z0-9-]{3,}/g) ?? [];
|
|
167
|
+
const ignored = new Set([
|
|
168
|
+
"must",
|
|
169
|
+
"shall",
|
|
170
|
+
"should",
|
|
171
|
+
"when",
|
|
172
|
+
"where",
|
|
173
|
+
"that",
|
|
174
|
+
"with",
|
|
175
|
+
"from",
|
|
176
|
+
"into",
|
|
177
|
+
"only",
|
|
178
|
+
"this",
|
|
179
|
+
"there",
|
|
180
|
+
"their",
|
|
181
|
+
"required",
|
|
182
|
+
"requires",
|
|
183
|
+
]);
|
|
184
|
+
const terms = Array.from(new Set(words.filter((word) => !ignored.has(word)))).slice(0, 3);
|
|
185
|
+
const predicateName = `${terms.length > 0 ? terms.join("_") : "domain"}_policy`;
|
|
186
|
+
const outcomeLike = /invalid|fail|reject|error|forbid|prohibit|must not|cannot/i.test(text);
|
|
187
|
+
const argumentNames = outcomeLike
|
|
188
|
+
? ["subject", "condition", "required_outcome"]
|
|
189
|
+
: /when|if|unless/i.test(text)
|
|
190
|
+
? ["subject", "condition", "behavior"]
|
|
191
|
+
: ["subject", "claim"];
|
|
192
|
+
const argumentTypes = outcomeLike
|
|
193
|
+
? ["entity", "condition", "outcome"]
|
|
194
|
+
: argumentNames.length === 3
|
|
195
|
+
? ["entity", "condition", "behavior"]
|
|
196
|
+
: ["entity", "claim"];
|
|
197
|
+
const candidateBindings = {};
|
|
198
|
+
if (!isGenericPlaceholder(subject))
|
|
199
|
+
candidateBindings.subject = subject;
|
|
200
|
+
const unresolvedBindings = argumentNames.filter((name) => {
|
|
201
|
+
if (name === "subject")
|
|
202
|
+
return !Object.hasOwn(candidateBindings, "subject");
|
|
203
|
+
const candidate = name === "condition"
|
|
204
|
+
? lower.match(/(?:when|if|unless)\s+(.+?)(?:,|\s+then\s+|\s+must\s+)/i)?.[1]
|
|
205
|
+
: lower.match(/(?:must|shall|should)\s+(.+?)(?:\.|$)/i)?.[1];
|
|
206
|
+
if (candidate) {
|
|
207
|
+
candidateBindings[name] = candidate
|
|
208
|
+
.replace(/[^a-z0-9_. -]/g, "")
|
|
209
|
+
.trim()
|
|
210
|
+
.replace(/\s+/g, "_");
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
return true;
|
|
214
|
+
});
|
|
215
|
+
return {
|
|
216
|
+
predicate_name: predicateName,
|
|
217
|
+
title: `${predicateName} review draft`,
|
|
218
|
+
description: `Review-only schema draft derived from the unresolved proposition: ${text.trim()}`,
|
|
219
|
+
argument_names: argumentNames,
|
|
220
|
+
argument_types: argumentTypes,
|
|
221
|
+
candidate_bindings: candidateBindings,
|
|
222
|
+
unresolved_bindings: unresolvedBindings,
|
|
223
|
+
rationale: "No available predicate schema passed semantic applicability. Review the proposed signature and promote it to a reusable predicate_schema before grounding the claim.",
|
|
224
|
+
reuse_scope: "Domain-general schema for propositions with the same subject, condition, and required outcome pattern.",
|
|
225
|
+
};
|
|
226
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BindingProvenance } from "./predicate-types.js";
|
|
2
|
+
export declare function isGenericPlaceholder(value: string): boolean;
|
|
3
|
+
export declare function classifyBinding(value: string, text: string, explicit: boolean, canonical?: boolean): BindingProvenance;
|
|
4
|
+
export declare function aggregateBindingProvenance(values: readonly BindingProvenance[]): BindingProvenance;
|
|
5
|
+
export declare function bindingCanBeApplied(value: BindingProvenance): boolean;
|
|
6
|
+
//# sourceMappingURL=predicate-bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicate-bindings.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAkG9D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAW3D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,SAAS,UAAQ,GAChB,iBAAiB,CAYnB;AASD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,iBAAiB,EAAE,GACnC,iBAAiB,CAQnB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAErE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const PLACEHOLDER_VALUES = new Set([
|
|
2
|
+
"unknown",
|
|
3
|
+
"requirement.subject",
|
|
4
|
+
"domain_event",
|
|
5
|
+
"true",
|
|
6
|
+
"false",
|
|
7
|
+
"subject",
|
|
8
|
+
"component",
|
|
9
|
+
"condition",
|
|
10
|
+
"behavior",
|
|
11
|
+
"action",
|
|
12
|
+
"target",
|
|
13
|
+
"resource",
|
|
14
|
+
"scope",
|
|
15
|
+
"property",
|
|
16
|
+
"value",
|
|
17
|
+
"owner",
|
|
18
|
+
"actor",
|
|
19
|
+
"trigger",
|
|
20
|
+
"unspecified_trigger",
|
|
21
|
+
"unit",
|
|
22
|
+
"policy",
|
|
23
|
+
"outcome",
|
|
24
|
+
"failure_condition",
|
|
25
|
+
"required_outcome",
|
|
26
|
+
"ordered_sources",
|
|
27
|
+
"executable_policy",
|
|
28
|
+
"cwd_policy",
|
|
29
|
+
"environment_policy",
|
|
30
|
+
"stdio_policy",
|
|
31
|
+
"termination_policy",
|
|
32
|
+
"normal_behavior",
|
|
33
|
+
]);
|
|
34
|
+
const DERIVED_CUE_ALIASES = {
|
|
35
|
+
navigation: ["navigate", "navigates", "navigation"],
|
|
36
|
+
draft: ["draft", "drafts"],
|
|
37
|
+
active_annotation: ["annotation", "active"],
|
|
38
|
+
editor: ["editor"],
|
|
39
|
+
editor_annotation: ["editor", "annotation"],
|
|
40
|
+
consumer_local: ["consumer-local", "consumer local", "project-local"],
|
|
41
|
+
no_download: ["no download", "without downloading", "not download"],
|
|
42
|
+
no_global_fallback: ["no global fallback", "without global fallback"],
|
|
43
|
+
package_manager_exception: ["package-manager", "package manager"],
|
|
44
|
+
missing_candidate: ["missing", "unusable", "candidate"],
|
|
45
|
+
cwd_unusable: ["cwd", "working directory", "current directory"],
|
|
46
|
+
invalid_input: ["invalid", "unresolved", "placeholder"],
|
|
47
|
+
invalid_placeholder: ["invalid placeholder", "unresolved placeholder"],
|
|
48
|
+
ambiguous_root: ["ambiguous", "usable root", "roots"],
|
|
49
|
+
clear_error: ["clear error", "fail clearly", "actionable error"],
|
|
50
|
+
resolved_executable: ["executable", "command", "binary", "bin"],
|
|
51
|
+
consumer_cwd: ["cwd", "working directory", "consumer"],
|
|
52
|
+
inherited_environment: ["environment", "env"],
|
|
53
|
+
consumer_workspace_environment: [
|
|
54
|
+
"environment",
|
|
55
|
+
"env",
|
|
56
|
+
"kibi_workspace",
|
|
57
|
+
"workspace",
|
|
58
|
+
],
|
|
59
|
+
inherited_stdio: ["stdio", "stdin", "stdout", "stderr", "pipe"],
|
|
60
|
+
propagate_termination: ["terminate", "termination", "exit", "signal"],
|
|
61
|
+
missing_dependency: [
|
|
62
|
+
"missing dependency",
|
|
63
|
+
"missing kibi-mcp",
|
|
64
|
+
"missing project-local",
|
|
65
|
+
"project-local kibi-mcp",
|
|
66
|
+
"missing module",
|
|
67
|
+
],
|
|
68
|
+
actionable_error: ["actionable", "clear error", "report", "error"],
|
|
69
|
+
exception: ["exception", "except", "package-manager", "package manager"],
|
|
70
|
+
};
|
|
71
|
+
function textContainsValue(text, value) {
|
|
72
|
+
const lower = text.toLowerCase();
|
|
73
|
+
if (value.includes("|")) {
|
|
74
|
+
const parts = value.split("|").filter(Boolean);
|
|
75
|
+
return (parts.length > 0 && parts.every((part) => textContainsValue(text, part)));
|
|
76
|
+
}
|
|
77
|
+
const normalized = value.toLowerCase().replace(/[_.-]+/g, " ");
|
|
78
|
+
const normalizedText = lower.replace(/[_.-]+/g, " ");
|
|
79
|
+
if (normalized.length > 2 && normalizedText.includes(normalized))
|
|
80
|
+
return true;
|
|
81
|
+
if (value.toLowerCase() === "missing_dependency" &&
|
|
82
|
+
/missing(?:\s+\S+){0,4}\s+dependenc/i.test(normalizedText))
|
|
83
|
+
return true;
|
|
84
|
+
const aliases = DERIVED_CUE_ALIASES[value.toLowerCase().replace(/\./g, "_")];
|
|
85
|
+
return (aliases?.some((alias) => normalizedText.includes(alias.toLowerCase().replace(/[_.-]+/g, " "))) ?? false);
|
|
86
|
+
}
|
|
87
|
+
export function isGenericPlaceholder(value) {
|
|
88
|
+
const normalized = value.trim().toLowerCase();
|
|
89
|
+
return (PLACEHOLDER_VALUES.has(normalized) ||
|
|
90
|
+
normalized === "unknown" ||
|
|
91
|
+
normalized.startsWith("requirement.") ||
|
|
92
|
+
(normalized.endsWith("_policy") &&
|
|
93
|
+
["executable", "cwd", "environment", "stdio", "termination"].some((kind) => normalized.startsWith(kind))));
|
|
94
|
+
}
|
|
95
|
+
export function classifyBinding(value, text, explicit, canonical = false) {
|
|
96
|
+
const normalized = value.trim();
|
|
97
|
+
if (canonical && !isGenericPlaceholder(normalized))
|
|
98
|
+
return "extracted";
|
|
99
|
+
if (explicit &&
|
|
100
|
+
(!isGenericPlaceholder(normalized) ||
|
|
101
|
+
["true", "false"].includes(normalized.toLowerCase())))
|
|
102
|
+
return "explicit";
|
|
103
|
+
if (!normalized || isGenericPlaceholder(normalized))
|
|
104
|
+
return "placeholder";
|
|
105
|
+
if (textContainsValue(text, normalized))
|
|
106
|
+
return "extracted";
|
|
107
|
+
return "inferred";
|
|
108
|
+
}
|
|
109
|
+
const PROVENANCE_ORDER = [
|
|
110
|
+
"explicit",
|
|
111
|
+
"extracted",
|
|
112
|
+
"inferred",
|
|
113
|
+
"placeholder",
|
|
114
|
+
];
|
|
115
|
+
export function aggregateBindingProvenance(values) {
|
|
116
|
+
return values.reduce((worst, value) => PROVENANCE_ORDER.indexOf(value) > PROVENANCE_ORDER.indexOf(worst)
|
|
117
|
+
? value
|
|
118
|
+
: worst, "explicit");
|
|
119
|
+
}
|
|
120
|
+
export function bindingCanBeApplied(value) {
|
|
121
|
+
return value === "explicit" || value === "extracted";
|
|
122
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicate-catalog-4.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-catalog-4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"predicate-catalog-4.d.ts","sourceRoot":"","sources":["../../../src/operations/modeling/predicate-catalog-4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,EAoTzD,CAAC"}
|