kibi-cli 0.19.0 → 2.0.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/dist/cli-errors.d.ts +3 -1
- package/dist/cli-errors.d.ts.map +1 -1
- package/dist/cli-errors.js +4 -1
- package/dist/cli-json-command.d.ts +1 -0
- package/dist/cli-json-command.d.ts.map +1 -1
- package/dist/cli-json-command.js +13 -4
- package/dist/cli-operation-loader.d.ts.map +1 -1
- package/dist/cli-operation-loader.js +53 -20
- package/dist/cli-operation-metadata.d.ts +21 -8
- package/dist/cli-operation-metadata.d.ts.map +1 -1
- package/dist/cli-operation-metadata.js +27 -10
- package/dist/cli-protocol.d.ts.map +1 -1
- package/dist/cli-protocol.js +38 -8
- package/dist/cli-register-foundation.d.ts.map +1 -1
- package/dist/cli-register-foundation.js +14 -2
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +33 -4
- package/dist/cli-register-proof.d.ts +3 -0
- package/dist/cli-register-proof.d.ts.map +1 -0
- package/dist/cli-register-proof.js +103 -0
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +11 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -8
- 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 +37 -0
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +375 -40
- package/dist/commands/check.d.ts +14 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +209 -110
- package/dist/commands/coverage.d.ts +1 -0
- package/dist/commands/coverage.d.ts.map +1 -1
- package/dist/commands/coverage.js +6 -0
- package/dist/commands/discovery-shared.d.ts.map +1 -1
- package/dist/commands/discovery-shared.js +10 -19
- package/dist/commands/doctor.d.ts +26 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +291 -30
- package/dist/commands/engine.d.ts +12 -0
- package/dist/commands/engine.d.ts.map +1 -1
- package/dist/commands/engine.js +50 -7
- 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 +57 -0
- package/dist/commands/github-init.d.ts.map +1 -0
- package/dist/commands/github-init.js +314 -0
- 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 +109 -28
- 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 +11 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +249 -96
- package/dist/commands/proof-migrate-legacy.d.ts +7 -0
- package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
- package/dist/commands/proof-migrate-legacy.js +45 -0
- package/dist/commands/proof-prune.d.ts +8 -0
- package/dist/commands/proof-prune.d.ts.map +1 -0
- package/dist/commands/proof-prune.js +53 -0
- package/dist/commands/prove.d.ts +37 -0
- package/dist/commands/prove.d.ts.map +1 -0
- package/dist/commands/prove.js +470 -0
- 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/sync/cache.d.ts +16 -3
- package/dist/commands/sync/cache.d.ts.map +1 -1
- package/dist/commands/sync/cache.js +111 -4
- package/dist/commands/sync/discovery.d.ts +26 -2
- package/dist/commands/sync/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +204 -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 +9 -6
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +195 -60
- package/dist/commands/sync/persistence.d.ts +4 -1
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +26 -12
- package/dist/commands/sync/staging.d.ts +1 -0
- package/dist/commands/sync/staging.d.ts.map +1 -1
- package/dist/commands/sync/staging.js +5 -2
- package/dist/commands/sync/untracked-targets.d.ts +24 -0
- package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
- package/dist/commands/sync/untracked-targets.js +108 -0
- package/dist/commands/sync.d.ts +17 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +375 -106
- package/dist/diagnostics.d.ts +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/engine-daemon.d.ts +3 -1
- package/dist/engine-daemon.d.ts.map +1 -1
- package/dist/engine-daemon.js +49 -20
- package/dist/engine.d.ts +34 -3
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +578 -42
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +5 -6
- package/dist/extractors/manifest.d.ts +13 -1
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +97 -10
- package/dist/extractors/markdown.d.ts +5 -2
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +47 -12
- 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 +6 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +2 -1
- 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/extractors/symbols-ts.d.ts +1 -0
- package/dist/extractors/symbols-ts.d.ts.map +1 -1
- package/dist/extractors/symbols-ts.js +142 -67
- package/dist/intent-search.d.ts +61 -0
- package/dist/intent-search.d.ts.map +1 -0
- package/dist/intent-search.js +437 -0
- package/dist/logic/ir.d.ts +1 -0
- package/dist/logic/ir.d.ts.map +1 -1
- package/dist/logic/ir.js +1 -1
- package/dist/operations/bootstrap/activation.d.ts +5 -0
- package/dist/operations/bootstrap/activation.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/activation.js +58 -33
- 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 +9 -0
- package/dist/operations/bootstrap/generate.d.ts.map +1 -0
- package/dist/operations/bootstrap/generate.js +207 -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 +3 -2
- package/dist/operations/bootstrap/guidance.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/guidance.js +3 -1
- 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 +5 -0
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
- package/dist/operations/modeling/model-requirement.js +57 -63
- 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 +375 -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-2.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-2.js +18 -2
- package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-3.js +17 -1
- 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-catalog-5.d.ts +10 -0
- package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-catalog-5.js +291 -0
- package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog.js +4 -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 +1 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-loader.js +11 -3
- 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 +159 -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 +35 -1
- 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-usage-hints-4.d.ts +3 -0
- package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-usage-hints-4.js +84 -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 +4 -2
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +203 -32
- package/dist/operations/mutation/contradictions.d.ts +2 -1
- package/dist/operations/mutation/contradictions.d.ts.map +1 -1
- package/dist/operations/mutation/contradictions.js +26 -5
- package/dist/operations/mutation/delete.d.ts +3 -0
- package/dist/operations/mutation/delete.d.ts.map +1 -1
- package/dist/operations/mutation/delete.js +483 -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 +11 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +77 -5
- package/dist/operations/mutation/saga.d.ts +51 -0
- package/dist/operations/mutation/saga.d.ts.map +1 -0
- package/dist/operations/mutation/saga.js +67 -0
- package/dist/operations/mutation/serialization.d.ts.map +1 -1
- package/dist/operations/mutation/serialization.js +3 -1
- package/dist/operations/mutation/source-authoring.d.ts +65 -0
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
- package/dist/operations/mutation/source-authoring.js +576 -0
- package/dist/operations/mutation/strict-fact.d.ts +1 -0
- package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
- package/dist/operations/mutation/strict-fact.js +8 -5
- package/dist/operations/mutation/symbol-compiler-lock.d.ts +54 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
- package/dist/operations/mutation/symbol-compiler-lock.js +337 -0
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-granularity.js +35 -4
- package/dist/operations/mutation/symbol-refresh.d.ts +19 -1
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +227 -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 +18 -2
- package/dist/operations/mutation/upsert.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.js +403 -32
- package/dist/operations/mutation/validate-upsert.js +2 -2
- package/dist/operations/mutation/validation.d.ts.map +1 -1
- package/dist/operations/mutation/validation.js +47 -4
- package/dist/operations/mutation/warnings.d.ts +1 -0
- package/dist/operations/mutation/warnings.d.ts.map +1 -1
- package/dist/operations/mutation/warnings.js +7 -5
- package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
- package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
- package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
- package/dist/operations/planning/apply-plan.d.ts +19 -0
- package/dist/operations/planning/apply-plan.d.ts.map +1 -0
- package/dist/operations/planning/apply-plan.js +1514 -0
- package/dist/operations/planning/compile-intent.d.ts +108 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -0
- package/dist/operations/planning/compile-intent.js +618 -0
- package/dist/operations/proof/ingest-proof.d.ts +34 -0
- package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
- package/dist/operations/proof/ingest-proof.js +307 -0
- package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
- package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
- package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
- package/dist/operations/proof/prune-receipts.d.ts +35 -0
- package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
- package/dist/operations/proof/prune-receipts.js +91 -0
- package/dist/operations/proof/receipt-document.d.ts +29 -0
- package/dist/operations/proof/receipt-document.d.ts.map +1 -0
- package/dist/operations/proof/receipt-document.js +117 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analyze-prose.js +52 -28
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +35 -9
- 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/strict-count-rules.d.ts +2 -0
- package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
- package/dist/operations/semantic-advisor/types.d.ts +13 -5
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
- package/dist/prolog/codec.d.ts +13 -1
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +269 -153
- package/dist/prolog/error-terms.d.ts +47 -0
- package/dist/prolog/error-terms.d.ts.map +1 -0
- package/dist/prolog/error-terms.js +334 -0
- package/dist/prolog/janitor.d.ts +50 -0
- package/dist/prolog/janitor.d.ts.map +1 -0
- package/dist/prolog/janitor.js +154 -0
- package/dist/prolog/store-lock.d.ts +45 -0
- package/dist/prolog/store-lock.d.ts.map +1 -0
- package/dist/prolog/store-lock.js +195 -0
- package/dist/prolog.d.ts +7 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +82 -25
- package/dist/proof/evaluate.d.ts +27 -0
- package/dist/proof/evaluate.d.ts.map +1 -0
- package/dist/proof/evaluate.js +151 -0
- package/dist/proof/inspect.d.ts +12 -0
- package/dist/proof/inspect.d.ts.map +1 -0
- package/dist/proof/inspect.js +236 -0
- package/dist/proof/integrations.d.ts +35 -0
- package/dist/proof/integrations.d.ts.map +1 -0
- package/dist/proof/integrations.js +123 -0
- package/dist/proof/producers/junit-adapter.d.ts +26 -0
- package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
- package/dist/proof/producers/junit-adapter.js +186 -0
- package/dist/proof/producers/playwright-case-id.d.ts +8 -0
- package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
- package/dist/proof/producers/playwright-case-id.js +25 -0
- package/dist/proof/producers/playwright-reporter.d.ts +27 -0
- package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
- package/dist/proof/producers/playwright-reporter.js +138 -0
- package/dist/proof/producers/tap-adapter.d.ts +10 -0
- package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
- package/dist/proof/producers/tap-adapter.js +200 -0
- package/dist/proof/receipt-outcome.d.ts +2 -0
- package/dist/proof/receipt-outcome.d.ts.map +1 -0
- package/dist/proof/receipt-outcome.js +1 -0
- 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 +74 -6
- package/dist/public/distribution-parity.d.ts +7 -1
- package/dist/public/distribution-parity.d.ts.map +1 -1
- package/dist/public/distribution-parity.js +15 -9
- 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 +7 -1
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
- package/dist/public/impact/coverage-depth-quality.js +22 -4
- package/dist/public/impact/diagnostics.d.ts.map +1 -1
- package/dist/public/impact/diagnostics.js +2 -2
- package/dist/public/impact/diff-meaning.d.ts +1 -0
- package/dist/public/impact/diff-meaning.d.ts.map +1 -1
- package/dist/public/impact/diff-meaning.js +5 -2
- package/dist/public/impact/full-kb-quality.d.ts +7 -2
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +364 -39
- 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 +900 -34
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +130 -6
- 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 +68 -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 +18 -0
- package/dist/public/operations/contracts.d.ts.map +1 -0
- package/dist/public/operations/contracts.js +334 -0
- package/dist/public/operations/discovery-entities.d.ts +3 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +4 -0
- package/dist/public/operations/discovery-executors.d.ts +43 -7
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +216 -13
- 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 +102 -0
- package/dist/public/operations/migration-plan.d.ts.map +1 -0
- package/dist/public/operations/migration-plan.js +539 -0
- package/dist/public/operations/node-ports.d.ts.map +1 -1
- package/dist/public/operations/node-ports.js +71 -11
- 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 +44 -5
- package/dist/public/operations/repair-plan.d.ts +3 -3
- package/dist/public/operations/repair-plan.d.ts.map +1 -1
- package/dist/public/operations/repair-plan.js +49 -18
- package/dist/public/operations/result-envelope.d.ts +14 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -0
- package/dist/public/operations/result-envelope.js +106 -0
- package/dist/public/operations/runtime-types.d.ts +102 -7
- 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-rules.generated.d.ts +5 -0
- package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
- package/dist/public/operations/specs/check-rules.generated.js +34 -0
- package/dist/public/operations/specs/check.d.ts +9 -4
- package/dist/public/operations/specs/check.d.ts.map +1 -1
- package/dist/public/operations/specs/check.js +10 -21
- 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 +251 -14
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +16 -6
- 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 +279 -0
- package/dist/public/operations/specs/planning.d.ts.map +1 -0
- package/dist/public/operations/specs/planning.js +197 -0
- package/dist/public/operations/specs/proof.d.ts +212 -0
- package/dist/public/operations/specs/proof.d.ts.map +1 -0
- package/dist/public/operations/specs/proof.js +30 -0
- package/dist/public/operations/specs/reporting.d.ts +23 -1
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +156 -11
- package/dist/public/operations/specs/upsert.d.ts +265 -14
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/specs/upsert.js +9 -0
- package/dist/public/operations/symbol-repair-plan.d.ts +22 -0
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
- package/dist/public/operations/symbol-repair-plan.js +238 -0
- package/dist/public/operations/types.d.ts +52 -1
- package/dist/public/operations/types.d.ts.map +1 -1
- package/dist/public/proof-fingerprint.d.ts +54 -0
- package/dist/public/proof-fingerprint.d.ts.map +1 -0
- package/dist/public/proof-fingerprint.js +141 -0
- package/dist/public/proof-protocol.d.ts +354 -0
- package/dist/public/proof-protocol.d.ts.map +1 -0
- package/dist/public/proof-protocol.js +454 -0
- package/dist/public/proof-receipt.d.ts +279 -0
- package/dist/public/proof-receipt.d.ts.map +1 -0
- package/dist/public/proof-receipt.js +377 -0
- package/dist/public/schemas/entity.d.ts.map +1 -1
- package/dist/public/schemas/entity.js +22 -6
- 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 +39 -9
- 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 +136 -231
- 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/proof.md +105 -0
- 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 +57 -4
- package/dist/public/symbol-granularity.d.ts +3 -14
- package/dist/public/symbol-granularity.d.ts.map +1 -1
- package/dist/public/symbol-granularity.generated.d.ts +16 -0
- package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
- package/dist/public/symbol-granularity.generated.js +20 -0
- package/dist/public/symbol-granularity.js +6 -46
- package/dist/public/telemetry-acceptance.d.ts +3 -70
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +11 -2
- package/dist/public/telemetry-remediation.js +1 -1
- 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.css +282 -0
- package/dist/report/html-report.d.ts +21 -0
- package/dist/report/html-report.d.ts.map +1 -0
- package/dist/report/html-report.js +700 -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 +2 -0
- package/dist/runtime/cli-runtime.d.ts.map +1 -1
- package/dist/runtime/cli-runtime.js +90 -23
- package/dist/schemas/entity.schema.json +1254 -239
- package/dist/search-ranking.d.ts +1 -0
- package/dist/search-ranking.d.ts.map +1 -1
- package/dist/search-ranking.js +3 -0
- package/dist/traceability/evidence-model.d.ts +30 -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 +20 -0
- package/dist/traceability/git-staged.d.ts.map +1 -1
- package/dist/traceability/git-staged.js +156 -37
- package/dist/traceability/markdown-validate.d.ts.map +1 -1
- package/dist/traceability/markdown-validate.js +12 -7
- package/dist/traceability/staged-diagnostics.d.ts +7 -0
- package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
- package/dist/traceability/staged-diagnostics.js +78 -7
- package/dist/traceability/staged-file-coverage.d.ts +33 -0
- package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
- package/dist/traceability/staged-file-coverage.js +284 -0
- 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 +12 -40
- package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
- package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
- package/dist/traceability/staged-symbols-manifest.js +142 -26
- package/dist/traceability/symbol-extract.d.ts +5 -0
- package/dist/traceability/symbol-extract.d.ts.map +1 -1
- package/dist/traceability/symbol-extract.js +1 -1
- package/dist/traceability/temp-kb.d.ts +2 -0
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +14 -2
- package/dist/types/entities.d.ts +5 -0
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +25 -10
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +124 -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 +21 -0
- package/dist/utils/branch-store.d.ts.map +1 -0
- package/dist/utils/branch-store.js +157 -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 +42 -24
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.generated.d.ts +97 -0
- package/dist/utils/rule-registry.generated.d.ts.map +1 -0
- package/dist/utils/rule-registry.generated.js +125 -0
- package/dist/utils/rule-registry.js +52 -148
- 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 +1 -4
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +8 -9
- package/package.json +47 -11
- 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 +84 -6
- package/src/public/distribution-parity.ts +17 -9
- package/src/public/ignore-policy.ts +16 -10
- package/src/public/impact/coverage-depth-quality.ts +37 -1
- package/src/public/impact/diagnostics.ts +2 -1
- package/src/public/impact/diff-meaning.ts +11 -4
- package/src/public/impact/full-kb-quality.ts +545 -41
- package/src/public/impact/manifest.ts +2 -4
- package/src/public/operational-artifacts.ts +9 -1
- package/src/public/operations/catalog.ts +153 -10
- package/src/public/operations/check-executor.ts +98 -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 +382 -0
- package/src/public/operations/discovery-entities.ts +7 -0
- package/src/public/operations/discovery-executors.ts +315 -25
- package/src/public/operations/index.ts +9 -4
- package/src/public/operations/migration-plan.ts +747 -0
- package/src/public/operations/node-ports.ts +87 -13
- package/src/public/operations/prolog-json.ts +60 -5
- package/src/public/operations/repair-plan.ts +60 -22
- package/src/public/operations/result-envelope.ts +141 -0
- package/src/public/operations/runtime-types.ts +96 -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-rules.generated.ts +37 -0
- package/src/public/operations/specs/check.ts +14 -22
- 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 +24 -6
- package/src/public/operations/specs/mutation.ts +27 -2
- package/src/public/operations/specs/planning.ts +241 -0
- package/src/public/operations/specs/proof.ts +43 -0
- package/src/public/operations/specs/reporting.ts +193 -12
- package/src/public/operations/specs/upsert.ts +10 -0
- package/src/public/operations/symbol-repair-plan.ts +324 -0
- package/src/public/operations/types.ts +62 -1
- package/src/public/proof-fingerprint.ts +216 -0
- package/src/public/proof-protocol-types.d.ts +96 -0
- package/src/public/proof-protocol.ts +589 -0
- package/src/public/proof-receipt.ts +499 -0
- package/src/public/schemas/entity.ts +27 -6
- 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 +39 -9
- 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 +136 -231
- 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/proof.md +105 -0
- 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 +57 -4
- package/src/public/symbol-granularity.generated.ts +41 -0
- package/src/public/symbol-granularity.ts +35 -59
- package/src/public/telemetry-acceptance-types.d.ts +98 -0
- package/src/public/telemetry-acceptance.ts +30 -93
- package/src/public/telemetry-remediation.ts +1 -1
- package/src/schemas/entity.schema.json +1254 -239
- package/templates/github/kibi-badge.yml +86 -0
- package/templates/github/kibi-report.yml +84 -0
- package/dist/operations/autopilot/activation.d.ts +0 -4
- 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/guidance.d.ts.map +0 -1
- 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/dist/public/verification-receipt.d.ts +0 -75
- package/dist/public/verification-receipt.d.ts.map +0 -1
- package/dist/public/verification-receipt.js +0 -129
- package/src/public/skills/init-kibi/SKILL.md +0 -62
- package/src/public/verification-receipt.ts +0 -170
- /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,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Kibi — repo-local, per-branch, queryable long-term memory for software projects
|
|
3
|
+
Copyright (C) 2026 Piotr Franczyk
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify
|
|
6
|
+
it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
(at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU Affero General Public License for more details.
|
|
14
|
+
|
|
15
|
+
You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { dump as dumpYaml } from "js-yaml";
|
|
19
|
+
/**
|
|
20
|
+
* Remove a top-level frontmatter block (`key:` plus its nested lines) from a
|
|
21
|
+
* markdown document, leaving every other byte untouched. Returns the patched
|
|
22
|
+
* content, or null when the content is not a well-formed frontmatter
|
|
23
|
+
* document the remover can safely splice.
|
|
24
|
+
*
|
|
25
|
+
* Used by proof maintenance to drop legacy `verification_receipts` blocks
|
|
26
|
+
* once a `proof_contract` exists, without canonicalizing the document.
|
|
27
|
+
*/
|
|
28
|
+
// implements REQ-kibi-proof-evidence-protocol
|
|
29
|
+
export function removeFrontmatterBlock(content, key) {
|
|
30
|
+
const lines = content.match(/[^\n]*\n|[^\n]+$/g) ?? [];
|
|
31
|
+
if (lines.length === 0 || lines[0]?.trim() !== "---")
|
|
32
|
+
return null;
|
|
33
|
+
let closingIndex = -1;
|
|
34
|
+
for (let index = 1; index < lines.length; index++) {
|
|
35
|
+
if (lines[index]?.trim() === "---") {
|
|
36
|
+
closingIndex = index;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (closingIndex === -1)
|
|
41
|
+
return null;
|
|
42
|
+
let blockStart = -1;
|
|
43
|
+
let blockEnd = closingIndex;
|
|
44
|
+
for (let index = 1; index < closingIndex; index++) {
|
|
45
|
+
if (new RegExp(`^${key}\\s*:`).test(lines[index] ?? "")) {
|
|
46
|
+
blockStart = index;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (blockStart === -1)
|
|
51
|
+
return null;
|
|
52
|
+
for (let index = blockStart + 1; index < closingIndex; index++) {
|
|
53
|
+
const line = lines[index] ?? "";
|
|
54
|
+
if (/^[A-Za-z_][A-Za-z0-9_-]*\s*:/.test(line)) {
|
|
55
|
+
blockEnd = index;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return [...lines.slice(0, blockStart), ...lines.slice(blockEnd)].join("");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Patch the `proof_receipts` frontmatter block of an authored test document
|
|
63
|
+
* without re-rendering anything else.
|
|
64
|
+
*
|
|
65
|
+
* Receipt ingest used to route every append through the canonical entity
|
|
66
|
+
* renderer, which re-dumps the whole frontmatter: inline tag lists became
|
|
67
|
+
* block lists, timestamps gained milliseconds, and so on. Those non-receipt
|
|
68
|
+
* edits are not stripped by the workspace snapshotter, so the snapshot hash
|
|
69
|
+
* changed on the first ingest that touched a hand-authored document and every
|
|
70
|
+
* later integration in the same `kibi prove --all` run refused with
|
|
71
|
+
* "changed the tracked workspace". This patcher splices ONLY the receipts
|
|
72
|
+
* block, leaving the rest of the document byte-for-byte identical.
|
|
73
|
+
*
|
|
74
|
+
* Returns null when the content is not a well-formed frontmatter document the
|
|
75
|
+
* patcher can safely splice; the caller then falls back to the canonical
|
|
76
|
+
* render.
|
|
77
|
+
*/
|
|
78
|
+
// implements REQ-kibi-proof-evidence-protocol
|
|
79
|
+
export function patchReceiptsIntoDocument(content, receipts) {
|
|
80
|
+
const lines = content.match(/[^\n]*\n|[^\n]+$/g) ?? [];
|
|
81
|
+
if (lines.length === 0 || lines[0]?.trim() !== "---")
|
|
82
|
+
return null;
|
|
83
|
+
let closingIndex = -1;
|
|
84
|
+
for (let index = 1; index < lines.length; index++) {
|
|
85
|
+
if (lines[index]?.trim() === "---") {
|
|
86
|
+
closingIndex = index;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (closingIndex === -1)
|
|
91
|
+
return null;
|
|
92
|
+
let receiptsStart = -1;
|
|
93
|
+
let receiptsEnd = closingIndex;
|
|
94
|
+
for (let index = 1; index < closingIndex; index++) {
|
|
95
|
+
if (/^proof_receipts\s*:/.test(lines[index] ?? "")) {
|
|
96
|
+
receiptsStart = index;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (receiptsStart !== -1) {
|
|
101
|
+
for (let index = receiptsStart + 1; index < closingIndex; index++) {
|
|
102
|
+
const line = lines[index] ?? "";
|
|
103
|
+
if (/^[A-Za-z_][A-Za-z0-9_-]*\s*:/.test(line)) {
|
|
104
|
+
receiptsEnd = index;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const block = dumpYaml({ proof_receipts: receipts.map((receipt) => ({ ...receipt })) }, { noRefs: true, lineWidth: -1, sortKeys: false });
|
|
110
|
+
const blockLines = block.match(/[^\n]*\n|[^\n]+$/g) ?? [];
|
|
111
|
+
const spliced = [
|
|
112
|
+
...lines.slice(0, receiptsStart === -1 ? closingIndex : receiptsStart),
|
|
113
|
+
...blockLines,
|
|
114
|
+
...lines.slice(receiptsEnd),
|
|
115
|
+
];
|
|
116
|
+
return spliced.join("");
|
|
117
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SemanticAdvisorAnalysisResult, SemanticAdvisorInput } from "./types.js";
|
|
2
2
|
export declare const SEMANTIC_ADVISOR_VERSION = "semantic-advisor-v2";
|
|
3
3
|
export { semanticClaimKey } from "./clauses.js";
|
|
4
|
+
export declare function stringLogicClaims(value: unknown): string[];
|
|
4
5
|
export declare function analyzeSemanticAdvisorInput(input: SemanticAdvisorInput): SemanticAdvisorAnalysisResult;
|
|
5
6
|
//# sourceMappingURL=analyze-prose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-prose.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analyze-prose.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyze-prose.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analyze-prose.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EAWrB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI1D;AAo3BD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,6BAA6B,CA+D/B"}
|
|
@@ -5,6 +5,7 @@ import { extractSemanticClauses, semanticClaimKey, } from "./clauses.js";
|
|
|
5
5
|
import { observationPlan } from "./observation-plan.js";
|
|
6
6
|
import { detectPredicateRules } from "./predicate-rule.js";
|
|
7
7
|
import { CORE_PREDICATE_RULES } from "./predicate-rules-core.js";
|
|
8
|
+
import { LAUNCHER_PREDICATE_RULES } from "./predicate-rules-launcher.js";
|
|
8
9
|
import { POLICY_PREDICATE_RULES } from "./predicate-rules-policy.js";
|
|
9
10
|
import { PRODUCT_TAIL_PREDICATE_RULES } from "./predicate-rules-product-tail.js";
|
|
10
11
|
import { PRODUCT_PREDICATE_RULES } from "./predicate-rules-product.js";
|
|
@@ -12,6 +13,11 @@ import { isRecord, payloadHash, propertiesOf, relationship, semanticClausesOf, s
|
|
|
12
13
|
import { detectStrictSuggestion } from "./strict-rules.js";
|
|
13
14
|
export const SEMANTIC_ADVISOR_VERSION = "semantic-advisor-v2";
|
|
14
15
|
export { semanticClaimKey } from "./clauses.js";
|
|
16
|
+
export function stringLogicClaims(value) {
|
|
17
|
+
return Array.isArray(value)
|
|
18
|
+
? value.filter((entry) => typeof entry === "string")
|
|
19
|
+
: [];
|
|
20
|
+
}
|
|
15
21
|
const SIGNAL_PATTERNS = [
|
|
16
22
|
{
|
|
17
23
|
kind: "numeric_cardinality",
|
|
@@ -47,7 +53,9 @@ const SIGNAL_PATTERNS = [
|
|
|
47
53
|
kind: "normative_modal",
|
|
48
54
|
candidateLane: "observation_review",
|
|
49
55
|
confidence: 0.65,
|
|
50
|
-
|
|
56
|
+
// Modal-free validity, rejection, prohibition, and failure-outcome
|
|
57
|
+
// assertions are normative even when they omit must/shall.
|
|
58
|
+
pattern: /\b(?:must|shall|should|may|must\s+not|cannot|can't|invalid|unresolved|reject(?:ed|ion)?|prohibited|forbidden|fail(?:s|ed|ure)?\s+(?:clearly|explicitly|with)|required\s+outcome)\b/i,
|
|
51
59
|
},
|
|
52
60
|
];
|
|
53
61
|
function proseOf(payload) {
|
|
@@ -161,7 +169,8 @@ function ontologyGapSuggestion(payload, statement) {
|
|
|
161
169
|
};
|
|
162
170
|
}
|
|
163
171
|
function predicateSuggestion(payload, statement) {
|
|
164
|
-
return (detectPredicateRules(payload, statement,
|
|
172
|
+
return (detectPredicateRules(payload, statement, LAUNCHER_PREDICATE_RULES) ??
|
|
173
|
+
detectPredicateRules(payload, statement, CORE_PREDICATE_RULES) ??
|
|
165
174
|
detectPredicateRules(payload, statement, POLICY_PREDICATE_RULES) ??
|
|
166
175
|
detectPredicateRules(payload, statement, PRODUCT_PREDICATE_RULES) ??
|
|
167
176
|
detectPredicateRules(payload, statement, PRODUCT_TAIL_PREDICATE_RULES));
|
|
@@ -285,8 +294,9 @@ function modelingSuggestions(payload, modeled, clauses, interpretations) {
|
|
|
285
294
|
return suggestions;
|
|
286
295
|
}
|
|
287
296
|
function withClauseProvenance(suggestion, clause, clauses, expectedClaimKeys, statement, sourceField) {
|
|
288
|
-
const
|
|
289
|
-
const
|
|
297
|
+
const clauseLocation = propositionSpan(statement, clause, 0);
|
|
298
|
+
const clauseText = clauseLocation.sourceText;
|
|
299
|
+
const clauseSpan = clauseLocation.span;
|
|
290
300
|
const status = suggestion.kind === "ambiguity_observation"
|
|
291
301
|
? "ambiguous"
|
|
292
302
|
: suggestion.kind === "ontology_gap"
|
|
@@ -305,7 +315,7 @@ function withClauseProvenance(suggestion, clause, clauses, expectedClaimKeys, st
|
|
|
305
315
|
: "missing";
|
|
306
316
|
return {
|
|
307
317
|
claim_key: entry.claim_key,
|
|
308
|
-
claim_text:
|
|
318
|
+
claim_text: located.sourceText,
|
|
309
319
|
role,
|
|
310
320
|
status: entryStatus,
|
|
311
321
|
span: located.span,
|
|
@@ -330,9 +340,7 @@ function withClauseProvenance(suggestion, clause, clauses, expectedClaimKeys, st
|
|
|
330
340
|
if (properties === null)
|
|
331
341
|
return step;
|
|
332
342
|
if (step.type === "req") {
|
|
333
|
-
const existing =
|
|
334
|
-
? properties.logic_claims.filter((value) => typeof value === "string")
|
|
335
|
-
: [];
|
|
343
|
+
const existing = stringLogicClaims(properties.logic_claims);
|
|
336
344
|
return {
|
|
337
345
|
...step,
|
|
338
346
|
properties: {
|
|
@@ -353,7 +361,7 @@ function withClauseProvenance(suggestion, clause, clauses, expectedClaimKeys, st
|
|
|
353
361
|
properties: {
|
|
354
362
|
...properties,
|
|
355
363
|
claim_key: clause.claim_key,
|
|
356
|
-
claim_text:
|
|
364
|
+
claim_text: clauseText,
|
|
357
365
|
claim_span_start: clauseSpan.start,
|
|
358
366
|
claim_span_end: clauseSpan.end,
|
|
359
367
|
},
|
|
@@ -362,14 +370,14 @@ function withClauseProvenance(suggestion, clause, clauses, expectedClaimKeys, st
|
|
|
362
370
|
return {
|
|
363
371
|
...suggestion,
|
|
364
372
|
claim_key: clause.claim_key,
|
|
365
|
-
claim_text:
|
|
373
|
+
claim_text: clauseText,
|
|
366
374
|
applyPlan,
|
|
367
375
|
...(suggestion.kind === "predicate" && suggestion.relationshipPlan !== null
|
|
368
376
|
? {
|
|
369
377
|
relationshipPlan: {
|
|
370
378
|
...suggestion.relationshipPlan,
|
|
371
379
|
claimKey: clause.claim_key,
|
|
372
|
-
claimText:
|
|
380
|
+
claimText: clauseText,
|
|
373
381
|
logicClaims: expectedClaimKeys,
|
|
374
382
|
semanticClauses: clauses.map(({ text }) => text),
|
|
375
383
|
semanticInventory,
|
|
@@ -383,7 +391,7 @@ function withClauseProvenance(suggestion, clause, clauses, expectedClaimKeys, st
|
|
|
383
391
|
relationshipPlan: {
|
|
384
392
|
...suggestion.relationshipPlan,
|
|
385
393
|
claimKey: clause.claim_key,
|
|
386
|
-
claimText:
|
|
394
|
+
claimText: clauseText,
|
|
387
395
|
logicClaims: expectedClaimKeys,
|
|
388
396
|
semanticClauses: clauses.map(({ text }) => text),
|
|
389
397
|
semanticInventory,
|
|
@@ -550,12 +558,36 @@ function shadowAnalysis(text, interpretations) {
|
|
|
550
558
|
}));
|
|
551
559
|
}
|
|
552
560
|
function propositionSpan(text, clause, cursor) {
|
|
553
|
-
const
|
|
561
|
+
const located = locateSourceText(text, clause.text, cursor);
|
|
562
|
+
return {
|
|
563
|
+
span: utf8Span(text, located.start, located.end),
|
|
564
|
+
next: Math.max(cursor, located.end),
|
|
565
|
+
sourceText: text.slice(located.start, located.end),
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
function escapeRegExp(value) {
|
|
569
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Locate canonical claim text while accepting source-only whitespace layout.
|
|
573
|
+
* The caller receives the authored slice so strict ingestion can compare the
|
|
574
|
+
* span with the claim text without rewriting the source document.
|
|
575
|
+
*/
|
|
576
|
+
function locateSourceText(source, claimText, cursor) {
|
|
577
|
+
const canonicalPattern = escapeRegExp(claimText).replace(/\s+/g, "\\s+");
|
|
578
|
+
const match = new RegExp(canonicalPattern).exec(source.slice(cursor));
|
|
579
|
+
if (match?.index !== undefined) {
|
|
580
|
+
const start = cursor + match.index;
|
|
581
|
+
return { start, end: start + match[0].length };
|
|
582
|
+
}
|
|
583
|
+
const exact = source.indexOf(claimText, cursor);
|
|
554
584
|
const start = exact >= 0 ? exact : cursor;
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
:
|
|
558
|
-
|
|
585
|
+
return {
|
|
586
|
+
start,
|
|
587
|
+
end: exact >= 0
|
|
588
|
+
? exact + claimText.length
|
|
589
|
+
: Math.min(source.length, start + claimText.length),
|
|
590
|
+
};
|
|
559
591
|
}
|
|
560
592
|
function interpretationResults(interpretations, clauses, statement) {
|
|
561
593
|
if (interpretations === undefined)
|
|
@@ -578,16 +610,8 @@ function interpretationResults(interpretations, clauses, statement) {
|
|
|
578
610
|
(candidate.span.start < 0 || candidate.span.end < candidate.span.start))
|
|
579
611
|
errors.push("interpretation span is invalid");
|
|
580
612
|
if (clause && candidate.span) {
|
|
581
|
-
const
|
|
582
|
-
const
|
|
583
|
-
const sourceStart = candidateStart >= 0 ? candidateStart : clauseStart;
|
|
584
|
-
const sourceEnd = sourceStart >= 0
|
|
585
|
-
? sourceStart +
|
|
586
|
-
(candidateStart >= 0
|
|
587
|
-
? candidate.claim_text.length
|
|
588
|
-
: clause.text.length)
|
|
589
|
-
: 0;
|
|
590
|
-
const expectedSpan = utf8Span(statement, Math.max(0, sourceStart), Math.max(0, sourceEnd));
|
|
613
|
+
const candidateLocation = locateSourceText(statement, candidate.claim_text, 0);
|
|
614
|
+
const expectedSpan = utf8Span(statement, candidateLocation.start, candidateLocation.end);
|
|
591
615
|
if (candidate.span.start !== expectedSpan.start ||
|
|
592
616
|
candidate.span.end !== expectedSpan.end)
|
|
593
617
|
errors.push(`interpretation span for ${candidate.claim_key} does not match the exact UTF-8 proposition span`);
|
|
@@ -667,7 +691,7 @@ function propositionInventory(statement, clauses, suggestions, interpretations,
|
|
|
667
691
|
}
|
|
668
692
|
return {
|
|
669
693
|
claim_key: clause.claim_key,
|
|
670
|
-
claim_text:
|
|
694
|
+
claim_text: located.sourceText,
|
|
671
695
|
role,
|
|
672
696
|
status,
|
|
673
697
|
span: located.span,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clauses.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/clauses.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACjC,CAAC,CAAC;AAKH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW7D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;
|
|
1
|
+
{"version":3,"file":"clauses.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/clauses.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACjC,CAAC,CAAC;AAKH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW7D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AA4BD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAClC,SAAS,cAAc,EAAE,CA4B3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
const NORMATIVE_PATTERN = /\b(?:must|shall|should|required|requires?|may\s+only|only\s+.+?\s+(?:may|can)|must\s+not|shall\s+not|cannot|can't|forbidden|
|
|
2
|
+
const NORMATIVE_PATTERN = /\b(?:must|shall|should|required|requires?|may\s+only|may\s+(?:have\s+)?(?:at\s+most|at\s+least|exactly|no\s+more\s+than|up\s+to)|only\s+.+?\s+(?:may|can)|must\s+not|shall\s+not|cannot|can't|denied|forbidden|prohibited|(?:is|are|be|become|becomes|remain|remains)\s+(?:invalid|rejected|prohibited|forbidden)|(?:reject|rejects|rejected|rejection)\s+(?:invalid|unresolved|ambiguous)|fail(?:s|ed)?\s+(?:clearly|explicitly|with)|expires?\s+(?:after|within|in)|failure\s+(?:behavior|policy|outcome)|error\s+(?:handling|behavior|policy|outcome)|required\s+outcome|defaults?\s+to|before|unless|when|if)\b/i;
|
|
3
3
|
export function normalizeSemanticClause(value) {
|
|
4
4
|
return (value
|
|
5
5
|
.replace(/^\s*(?:[-*+]\s+|\d+[.)]\s+)/, "")
|
|
@@ -21,7 +21,20 @@ function detectedClauses(text) {
|
|
|
21
21
|
.flatMap((sentence) => {
|
|
22
22
|
if (/\bmutually\s+exclusive\b/i.test(sentence))
|
|
23
23
|
return [sentence];
|
|
24
|
-
|
|
24
|
+
// Package-resolution lists often join two noun phrases with "and"
|
|
25
|
+
// before the actual exception clause. Keep this launcher contract
|
|
26
|
+
// atomic so "exports-restricted and pnpm-style layouts" is not
|
|
27
|
+
// mistaken for a second proposition.
|
|
28
|
+
if (/\bconsumer-scoped\s+Node\s+package\s+semantics\b/i.test(sentence))
|
|
29
|
+
return [sentence];
|
|
30
|
+
const conjunctionParts = sentence.split(/\s+(?:,\s*)?and\s+(?=(?:the\s+)?[a-z][^.!?]{0,140}\b(?:must|shall|should|requires?|cannot|can't|expire|default|transition|states?\s+are|invalid|unresolved|reject(?:ed|ion)?\s+(?:invalid|unresolved|ambiguous)|fail(?:s|ed)?\s+(?:clearly|explicitly|with)|failure\s+(?:behavior|policy|outcome)|error\s+(?:handling|behavior|policy|outcome)|prohibited|forbidden|required\s+outcome)\b)/i);
|
|
31
|
+
// A coordinated subject such as "Analytics and Sentry must..." is one
|
|
32
|
+
// proposition. Split only when every resulting fragment independently
|
|
33
|
+
// carries normative or validity intent.
|
|
34
|
+
return conjunctionParts.length > 1 &&
|
|
35
|
+
conjunctionParts.every((part) => NORMATIVE_PATTERN.test(part))
|
|
36
|
+
? conjunctionParts
|
|
37
|
+
: [sentence];
|
|
25
38
|
})
|
|
26
39
|
.map(normalizeSemanticClause)
|
|
27
40
|
.filter(Boolean);
|
|
@@ -33,11 +46,24 @@ export function extractSemanticClauses(text, suppliedClauses) {
|
|
|
33
46
|
if (suppliedClauses !== undefined && normalized.length === 0) {
|
|
34
47
|
throw new Error("Semantic advisor clauses must contain at least one non-empty atomic claim");
|
|
35
48
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
// A repeated sentence has one logical identity. Keep the first source
|
|
50
|
+
// occurrence for its source span and provenance; retaining repeated claim
|
|
51
|
+
// keys would make the inventory impossible to persist because logic_claims
|
|
52
|
+
// is a set-like manifest and grounding is one-to-one.
|
|
53
|
+
const seen = new Set();
|
|
54
|
+
return normalized.flatMap((clause, index) => {
|
|
55
|
+
const identity = clause.toLowerCase();
|
|
56
|
+
if (seen.has(identity))
|
|
57
|
+
return [];
|
|
58
|
+
seen.add(identity);
|
|
59
|
+
return [
|
|
60
|
+
{
|
|
61
|
+
claim_key: semanticClaimKey(clause),
|
|
62
|
+
text: clause,
|
|
63
|
+
index,
|
|
64
|
+
normative: NORMATIVE_PATTERN.test(clause),
|
|
65
|
+
source,
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
});
|
|
43
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingestion-boundary.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/ingestion-boundary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EACL,KAAK,OAAO,EAOb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,YAAY,CAAC;AAgB9E,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,KAAK,oBAAoB,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;CACd,CAAC,CAAC;AAgCH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,SAAS,oBAAoB,EAAE,EAC9C,OAAO,EAAE,sBAAsB,GAC9B,+BAA+B,
|
|
1
|
+
{"version":3,"file":"ingestion-boundary.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/ingestion-boundary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EACL,KAAK,OAAO,EAOb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,YAAY,CAAC;AAgB9E,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,KAAK,oBAAoB,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;CACd,CAAC,CAAC;AAgCH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,SAAS,oBAAoB,EAAE,EAC9C,OAAO,EAAE,sBAAsB,GAC9B,+BAA+B,CA0IjC;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,SAAS,oBAAoB,EAAE,EAC9C,OAAO,EAAE,sBAAsB,GAC9B,IAAI,CAWN;AAGD,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,SAAS,oBAAoB,EAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
|
|
@@ -118,10 +118,14 @@ export function validateSemanticInventoryBoundary(payload, relationships, receip
|
|
|
118
118
|
errors.push("logic_claims must contain exactly every assertive semantic_inventory claim_key");
|
|
119
119
|
}
|
|
120
120
|
const modeledCount = inventory.filter(({ status }) => status === "modeled").length;
|
|
121
|
-
const
|
|
122
|
-
LOGICAL_RELATIONSHIPS.has(stringValue(relationship.type)))
|
|
121
|
+
const groundingRelationships = relationships.filter((relationship) => relationship.from === payload.id &&
|
|
122
|
+
LOGICAL_RELATIONSHIPS.has(stringValue(relationship.type)));
|
|
123
|
+
const groundingCount = groundingRelationships.length;
|
|
123
124
|
if (modeledCount !== groundingCount) {
|
|
124
|
-
|
|
125
|
+
const groundingTargets = groundingRelationships
|
|
126
|
+
.map((relationship) => `${stringValue(relationship.type)}->${stringValue(relationship.to)}`)
|
|
127
|
+
.join(", ");
|
|
128
|
+
errors.push(`modeled semantic_inventory entries (${modeledCount}) must equal logical grounding relationships (${groundingCount})${groundingTargets ? ` [${groundingTargets}]` : ""}`);
|
|
125
129
|
}
|
|
126
130
|
return { applicable, errors, sourceHash };
|
|
127
131
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Launcher contracts are deliberately matched as complete, domain-specific
|
|
3
|
+
* propositions. Generic words such as "error" or "workspace" are not enough
|
|
4
|
+
* to route a requirement into this family.
|
|
5
|
+
*/
|
|
6
|
+
export declare const LAUNCHER_PREDICATE_RULES: readonly [{
|
|
7
|
+
readonly pattern: RegExp;
|
|
8
|
+
readonly name: "dependency_resolution_policy";
|
|
9
|
+
readonly args: (groups: Readonly<Record<string, string | undefined>>) => string[];
|
|
10
|
+
readonly rationale: "Consumer-local dependency resolution and acquisition restrictions are a reusable launcher policy predicate.";
|
|
11
|
+
}, {
|
|
12
|
+
readonly pattern: RegExp;
|
|
13
|
+
readonly name: "ordered_resolution_strategy";
|
|
14
|
+
readonly args: (groups: Readonly<Record<string, string | undefined>>) => string[];
|
|
15
|
+
readonly rationale: "An ordered workspace candidate list with a validated cwd fallback is a deterministic resolution strategy.";
|
|
16
|
+
}, {
|
|
17
|
+
readonly pattern: RegExp;
|
|
18
|
+
readonly name: "resolution_failure_policy";
|
|
19
|
+
readonly args: (groups: Readonly<Record<string, string | undefined>>) => string[];
|
|
20
|
+
readonly rationale: "Invalid unresolved placeholders are an explicit resolution failure condition.";
|
|
21
|
+
}, {
|
|
22
|
+
readonly pattern: RegExp;
|
|
23
|
+
readonly name: "resolution_failure_policy";
|
|
24
|
+
readonly args: (groups: Readonly<Record<string, string | undefined>>) => string[];
|
|
25
|
+
readonly rationale: "Ambiguous usable roots require a deterministic, clearly reported resolution failure.";
|
|
26
|
+
}, {
|
|
27
|
+
readonly pattern: RegExp;
|
|
28
|
+
readonly name: "exception_rule";
|
|
29
|
+
readonly args: () => string[];
|
|
30
|
+
readonly rationale: "Consumer-scoped package resolution with an explicitly authorized package-manager exception is an exception policy.";
|
|
31
|
+
}, {
|
|
32
|
+
readonly pattern: RegExp;
|
|
33
|
+
readonly name: "process_delegation_contract";
|
|
34
|
+
readonly args: () => string[];
|
|
35
|
+
readonly rationale: "Executable, cwd, environment, stdio, and termination propagation form a reusable process delegation contract.";
|
|
36
|
+
}, {
|
|
37
|
+
readonly pattern: RegExp;
|
|
38
|
+
readonly name: "failure_behavior";
|
|
39
|
+
readonly args: () => string[];
|
|
40
|
+
readonly rationale: "A missing project-local dependency with an actionable error is a reusable launcher failure behavior.";
|
|
41
|
+
}];
|
|
42
|
+
/**
|
|
43
|
+
* Return the reviewed argument tuple for an exact launcher proposition.
|
|
44
|
+
*
|
|
45
|
+
* The modeling route uses this same rule table as the semantic advisor so an
|
|
46
|
+
* inferred apply plan cannot silently drift from the canonical ontology
|
|
47
|
+
* interpretation. Non-exact prose deliberately returns null and must remain
|
|
48
|
+
* reviewable through explicit argument bindings.
|
|
49
|
+
*/
|
|
50
|
+
export declare function exactLauncherPredicateArgs(predicateName: string, text: string): readonly string[] | null;
|
|
51
|
+
//# sourceMappingURL=predicate-rules-launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicate-rules-launcher.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/predicate-rules-launcher.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFQ,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,SAAS,MAAM,EAAE,GAAG,IAAI,CAO1B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { normalizeKey, normalizePredicateToken, } from "./predicate-rule.js";
|
|
2
|
+
/**
|
|
3
|
+
* Launcher contracts are deliberately matched as complete, domain-specific
|
|
4
|
+
* propositions. Generic words such as "error" or "workspace" are not enough
|
|
5
|
+
* to route a requirement into this family.
|
|
6
|
+
*/
|
|
7
|
+
export const LAUNCHER_PREDICATE_RULES = [
|
|
8
|
+
{
|
|
9
|
+
pattern: /^(?<subject>.+?)\s+must\s+resolve\s+and\s+execute\s+the\s+(?<dependency>.+?)\s+without\s+downloading\s+packages\s+or\s+using\s+a\s+global\s+or\s+plugin-local\s+runtime\.?$/i,
|
|
10
|
+
name: "dependency_resolution_policy",
|
|
11
|
+
args: (groups) => [
|
|
12
|
+
normalizeKey(groups.subject ?? ""),
|
|
13
|
+
normalizePredicateToken(groups.dependency ?? "dependency"),
|
|
14
|
+
"consumer_local",
|
|
15
|
+
"no_download",
|
|
16
|
+
],
|
|
17
|
+
rationale: "Consumer-local dependency resolution and acquisition restrictions are a reusable launcher policy predicate.",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
pattern: /^it\s+must\s+resolve\s+the\s+consumer\s+workspace\s+in\s+deterministic\s+order:\s*(?<sources>.+?)\s+then\s+cwd\s+only\s+when\s+(?<condition>.+?)\.?$/i,
|
|
21
|
+
name: "ordered_resolution_strategy",
|
|
22
|
+
args: (groups) => [
|
|
23
|
+
"launcher",
|
|
24
|
+
normalizePredicateToken(groups.sources ?? "ordered_sources"),
|
|
25
|
+
normalizePredicateToken(groups.condition ?? "cwd_requires_validation"),
|
|
26
|
+
],
|
|
27
|
+
rationale: "An ordered workspace candidate list with a validated cwd fallback is a deterministic resolution strategy.",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
pattern: /^(?<condition>unresolved\s+placeholders?)\s+are\s+invalid\.?$/i,
|
|
31
|
+
name: "resolution_failure_policy",
|
|
32
|
+
args: (groups) => [
|
|
33
|
+
"launcher",
|
|
34
|
+
normalizePredicateToken(groups.condition ?? "invalid_placeholder"),
|
|
35
|
+
"reject_input",
|
|
36
|
+
],
|
|
37
|
+
rationale: "Invalid unresolved placeholders are an explicit resolution failure condition.",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
pattern: /^(?<condition>ambiguous\s+(?:multiple\s+)?usable\s+roots?)\s+fail\s+clearly\.?$/i,
|
|
41
|
+
name: "resolution_failure_policy",
|
|
42
|
+
args: (groups) => [
|
|
43
|
+
"launcher",
|
|
44
|
+
normalizePredicateToken(groups.condition ?? "ambiguous_root"),
|
|
45
|
+
"clear_error",
|
|
46
|
+
],
|
|
47
|
+
rationale: "Ambiguous usable roots require a deterministic, clearly reported resolution failure.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
pattern: /^(?<subject>the\s+launcher)\s+must\s+resolve\s+kibi-mcp\s+through\s+consumer-scoped\s+node\s+package\s+semantics\s+including\s+exports-restricted\s+and\s+pnpm-style\s+layouts,\s+and\s+reject\s+packages\s+outside\s+consumer\s+scope\s+unless\s+active\s+package-manager\s+semantics\s+authorize\s+it\.?$/i,
|
|
51
|
+
name: "exception_rule",
|
|
52
|
+
args: () => [
|
|
53
|
+
"launcher",
|
|
54
|
+
"consumer_scoped_node_package_semantics",
|
|
55
|
+
"active_package_manager_semantics",
|
|
56
|
+
],
|
|
57
|
+
rationale: "Consumer-scoped package resolution with an explicitly authorized package-manager exception is an exception policy.",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
pattern: /^(?<subject>it)\s+must\s+spawn\s+the\s+declared\s+kibi-mcp\s+bin\s+with\s+cwd\s+and\s+kibi_workspace\s+set\s+to\s+the\s+consumer\s+workspace,\s+preserve\s+stdio,\s+and\s+propagate\s+child\s+exit\s+codes\s+and\s+termination\s+signals\.?$/i,
|
|
61
|
+
name: "process_delegation_contract",
|
|
62
|
+
args: () => [
|
|
63
|
+
"launcher",
|
|
64
|
+
"resolved_executable",
|
|
65
|
+
"consumer_cwd",
|
|
66
|
+
"consumer_workspace_environment",
|
|
67
|
+
"inherited_stdio",
|
|
68
|
+
"propagate_exit_and_termination",
|
|
69
|
+
],
|
|
70
|
+
rationale: "Executable, cwd, environment, stdio, and termination propagation form a reusable process delegation contract.",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
pattern: /^(?<subject>missing)\s+project-local\s+kibi-mcp\s+must\s+produce\s+a\s+concise\s+actionable\s+error\.?$/i,
|
|
74
|
+
name: "failure_behavior",
|
|
75
|
+
args: () => ["launcher", "missing_dependency", "actionable_error"],
|
|
76
|
+
rationale: "A missing project-local dependency with an actionable error is a reusable launcher failure behavior.",
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
/**
|
|
80
|
+
* Return the reviewed argument tuple for an exact launcher proposition.
|
|
81
|
+
*
|
|
82
|
+
* The modeling route uses this same rule table as the semantic advisor so an
|
|
83
|
+
* inferred apply plan cannot silently drift from the canonical ontology
|
|
84
|
+
* interpretation. Non-exact prose deliberately returns null and must remain
|
|
85
|
+
* reviewable through explicit argument bindings.
|
|
86
|
+
*/
|
|
87
|
+
export function exactLauncherPredicateArgs(predicateName, text) {
|
|
88
|
+
for (const rule of LAUNCHER_PREDICATE_RULES) {
|
|
89
|
+
if (rule.name !== predicateName)
|
|
90
|
+
continue;
|
|
91
|
+
const match = text.match(rule.pattern);
|
|
92
|
+
if (match)
|
|
93
|
+
return [...rule.args(match.groups ?? {})];
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type Payload } from "./shared.js";
|
|
2
2
|
import type { SemanticModelingSuggestion } from "./types.js";
|
|
3
|
+
export declare function numberToken(value: string): number | null;
|
|
4
|
+
export declare function whenParsedNumber<T>(value: number | null, then: (value: number) => T): T | null;
|
|
3
5
|
export declare function detectCountStrictSuggestion(payload: Payload, statement: string): SemanticModelingSuggestion | null;
|
|
4
6
|
//# sourceMappingURL=strict-count-rules.d.ts.map
|
|
@@ -1 +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;
|
|
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;AAgB7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIxD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GACzB,CAAC,GAAG,IAAI,CAGV;AAGD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,0BAA0B,GAAG,IAAI,CAsEnC"}
|