kibi-cli 1.0.1 → 2.1.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.js +3 -3
- package/dist/cli-operation-metadata.d.ts +4 -3
- package/dist/cli-operation-metadata.d.ts.map +1 -1
- package/dist/cli-operation-metadata.js +7 -5
- package/dist/cli-protocol.js +1 -1
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +7 -0
- 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 +127 -0
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +7 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -10
- package/dist/commands/branch.d.ts +1 -0
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +8 -4
- package/dist/commands/check-generated.d.ts +7 -0
- package/dist/commands/check-generated.d.ts.map +1 -0
- package/dist/commands/check-generated.js +192 -0
- package/dist/commands/check.d.ts +14 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +193 -46
- 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/doctor.d.ts +22 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +170 -23
- package/dist/commands/engine.d.ts +12 -0
- package/dist/commands/engine.d.ts.map +1 -1
- package/dist/commands/engine.js +42 -0
- package/dist/commands/github-init.d.ts +1 -0
- package/dist/commands/github-init.d.ts.map +1 -1
- package/dist/commands/github-init.js +9 -5
- package/dist/commands/init-helpers.d.ts.map +1 -1
- package/dist/commands/init-helpers.js +49 -10
- package/dist/commands/migrate.d.ts +4 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +7 -7
- package/dist/commands/proof-explain.d.ts +10 -0
- package/dist/commands/proof-explain.d.ts.map +1 -0
- package/dist/commands/proof-explain.js +45 -0
- package/dist/commands/proof-impact.d.ts +7 -0
- package/dist/commands/proof-impact.d.ts.map +1 -0
- package/dist/commands/proof-impact.js +39 -0
- 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.map +1 -1
- package/dist/commands/report.js +18 -3
- package/dist/commands/sync/discovery.d.ts +3 -0
- package/dist/commands/sync/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +36 -28
- package/dist/commands/sync/manifest.d.ts +2 -1
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +55 -21
- 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 +31 -14
- 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 +11 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +74 -30
- 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 +17 -77
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +331 -91
- package/dist/env/bootstrap.d.ts +84 -0
- package/dist/env/bootstrap.d.ts.map +1 -0
- package/dist/env/bootstrap.js +310 -0
- package/dist/extractors/manifest.d.ts +5 -0
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +46 -1
- package/dist/extractors/markdown.d.ts +7 -3
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +60 -24
- package/dist/extractors/playwright-cases.js +1 -1
- package/dist/extractors/relationships.d.ts +6 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +1 -1
- package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
- package/dist/extractors/symbols-coordinator.d.ts +8 -0
- package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
- package/dist/extractors/symbols-coordinator.js +40 -0
- package/dist/extractors/symbols-ts.d.ts +9 -19
- package/dist/extractors/symbols-ts.d.ts.map +1 -1
- package/dist/extractors/symbols-ts.js +34 -429
- package/dist/intent-search.d.ts +1 -0
- package/dist/intent-search.d.ts.map +1 -1
- package/dist/intent-search.js +11 -8
- 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 +2 -1
- package/dist/operations/bootstrap/activation.d.ts.map +1 -1
- package/dist/operations/bootstrap/activation.js +11 -3
- package/dist/operations/bootstrap/generate.d.ts +2 -1
- package/dist/operations/bootstrap/generate.d.ts.map +1 -1
- package/dist/operations/bootstrap/generate.js +6 -3
- package/dist/operations/bootstrap/guidance.d.ts +1 -0
- package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
- package/dist/operations/bootstrap/guidance.js +1 -1
- 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 -46
- package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-applicability.js +103 -4
- 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-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-loader.d.ts +1 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-loader.js +4 -3
- package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-ranker.js +4 -1
- package/dist/operations/modeling/predicate-types.d.ts +1 -1
- package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
- 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/suggest-predicates.d.ts +4 -2
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +82 -22
- 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 +100 -32
- package/dist/operations/mutation/relationships.d.ts +1 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +6 -4
- 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 -2
- package/dist/operations/mutation/source-authoring.d.ts +5 -1
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
- package/dist/operations/mutation/source-authoring.js +79 -46
- 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 +5 -2
- package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-compiler-lock.js +65 -2
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-granularity.js +11 -89
- package/dist/operations/mutation/symbol-refresh.d.ts +1 -0
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +10 -8
- 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 +86 -54
- 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 +46 -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 +8 -106
- package/dist/operations/planning/apply-plan.d.ts.map +1 -1
- package/dist/operations/planning/apply-plan.js +113 -36
- package/dist/operations/planning/compile-intent.d.ts +51 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -1
- package/dist/operations/planning/compile-intent.js +133 -17
- package/dist/operations/proof/baseline-diff.d.ts +41 -0
- package/dist/operations/proof/baseline-diff.d.ts.map +1 -0
- package/dist/operations/proof/baseline-diff.js +153 -0
- package/dist/operations/proof/explain.d.ts +75 -0
- package/dist/operations/proof/explain.d.ts.map +1 -0
- package/dist/operations/proof/explain.js +294 -0
- package/dist/operations/proof/impact.d.ts +45 -0
- package/dist/operations/proof/impact.d.ts.map +1 -0
- package/dist/operations/proof/impact.js +118 -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 +348 -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 +92 -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/analysis-receipt.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analysis-receipt.js +3 -9
- 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 +64 -93
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +20 -7
- package/dist/operations/semantic-advisor/plugin-orchestration.d.ts +63 -0
- package/dist/operations/semantic-advisor/plugin-orchestration.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/plugin-orchestration.js +489 -0
- package/dist/operations/semantic-advisor/predicate-rules-core.d.ts +15 -2
- package/dist/operations/semantic-advisor/predicate-rules-core.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-core.js +7 -140
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +11 -12
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-launcher.js +6 -94
- package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts +16 -0
- package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-policy.js +7 -150
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts +9 -0
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-product-tail.js +7 -102
- package/dist/operations/semantic-advisor/predicate-rules-product.d.ts +13 -0
- package/dist/operations/semantic-advisor/predicate-rules-product.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/predicate-rules-product.js +7 -133
- 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 +1 -0
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
- package/dist/plugins/compose-ontology-packs.d.ts +51 -0
- package/dist/plugins/compose-ontology-packs.d.ts.map +1 -0
- package/dist/plugins/compose-ontology-packs.js +257 -0
- package/dist/plugins/compose-semantic-classifier.d.ts +42 -0
- package/dist/plugins/compose-semantic-classifier.d.ts.map +1 -0
- package/dist/plugins/compose-semantic-classifier.js +211 -0
- package/dist/plugins/external-allowlist.d.ts +10 -0
- package/dist/plugins/external-allowlist.d.ts.map +1 -0
- package/dist/plugins/external-allowlist.js +16 -0
- package/dist/plugins/index.d.ts +9 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +33 -0
- package/dist/plugins/load-plugin.d.ts +19 -0
- package/dist/plugins/load-plugin.d.ts.map +1 -0
- package/dist/plugins/load-plugin.js +59 -0
- package/dist/plugins/project-config.d.ts +28 -0
- package/dist/plugins/project-config.d.ts.map +1 -0
- package/dist/plugins/project-config.js +90 -0
- package/dist/plugins/registry.d.ts +93 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +338 -0
- package/dist/plugins/resolve-package.d.ts +47 -0
- package/dist/plugins/resolve-package.d.ts.map +1 -0
- package/dist/plugins/resolve-package.js +262 -0
- package/dist/plugins/source-analysis-service.d.ts +44 -0
- package/dist/plugins/source-analysis-service.d.ts.map +1 -0
- package/dist/plugins/source-analysis-service.js +232 -0
- package/dist/prolog/codec.d.ts +13 -1
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +269 -154
- 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 +55 -17
- 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/{public → proof/producers}/playwright-case-id.d.ts +1 -1
- package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
- package/dist/{public → proof/producers}/playwright-case-id.js +1 -1
- 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/diagnostic-usage.js +6 -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 -10
- package/dist/public/extractors/symbols-coordinator.d.ts +1 -1
- package/dist/public/extractors/symbols-coordinator.d.ts.map +1 -1
- package/dist/public/extractors/symbols-coordinator.js +1 -1
- package/dist/public/impact/analyzer.d.ts +1 -1
- package/dist/public/impact/analyzer.d.ts.map +1 -1
- package/dist/public/impact/analyzer.js +6 -4
- package/dist/public/impact/coverage-depth-quality.d.ts +1 -0
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
- package/dist/public/impact/coverage-depth-quality.js +1 -1
- 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 +5 -2
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +329 -64
- package/dist/public/operations/catalog.d.ts +450 -196
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +6 -4
- package/dist/public/operations/check-executor.d.ts.map +1 -1
- package/dist/public/operations/check-executor.js +4 -8
- package/dist/public/operations/check-helpers.d.ts +1 -1
- package/dist/public/operations/check-helpers.d.ts.map +1 -1
- package/dist/public/operations/check-helpers.js +1 -1
- package/dist/public/operations/contracts.d.ts +7 -0
- package/dist/public/operations/contracts.d.ts.map +1 -1
- package/dist/public/operations/contracts.js +66 -34
- package/dist/public/operations/discovery-entities.d.ts +15 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +38 -0
- package/dist/public/operations/discovery-executors.d.ts +9 -9
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +39 -31
- package/dist/public/operations/index.d.ts +1 -1
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +1 -1
- package/dist/public/operations/migration-plan.d.ts +4 -3
- package/dist/public/operations/migration-plan.d.ts.map +1 -1
- package/dist/public/operations/migration-plan.js +23 -21
- package/dist/public/operations/node-ports.js +6 -6
- package/dist/public/operations/prolog-json.d.ts +1 -1
- package/dist/public/operations/prolog-json.d.ts.map +1 -1
- package/dist/public/operations/prolog-json.js +7 -7
- 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 -19
- package/dist/public/operations/result-envelope.d.ts +1 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -1
- package/dist/public/operations/result-envelope.js +12 -10
- package/dist/public/operations/runtime-types.d.ts +21 -1
- package/dist/public/operations/runtime-types.d.ts.map +1 -1
- 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 +35 -0
- package/dist/public/operations/specs/check.d.ts +7 -2
- package/dist/public/operations/specs/check.d.ts.map +1 -1
- package/dist/public/operations/specs/check.js +8 -20
- package/dist/public/operations/specs/discovery.d.ts +3 -0
- package/dist/public/operations/specs/discovery.d.ts.map +1 -1
- package/dist/public/operations/specs/discovery.js +3 -0
- package/dist/public/operations/specs/mutation-schemas.d.ts +257 -163
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +15 -7
- package/dist/public/operations/specs/planning.d.ts +9 -0
- package/dist/public/operations/specs/planning.d.ts.map +1 -1
- package/dist/public/operations/specs/planning.js +6 -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 +20 -0
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +112 -12
- package/dist/public/operations/specs/semantic.d.ts +1 -1
- package/dist/public/operations/specs/semantic.d.ts.map +1 -1
- package/dist/public/operations/specs/semantic.js +54 -4
- package/dist/public/operations/specs/upsert.d.ts +257 -163
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
- package/dist/public/operations/symbol-repair-plan.js +121 -4
- package/dist/public/operations/types.d.ts +6 -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 +21 -7
- package/dist/public/skills/kibi-freshness/SKILL.md +1 -1
- package/dist/public/skills/kibi-usage/SKILL.md +44 -12
- package/dist/public/skills/kibi-usage/resources/operation-access.md +1 -1
- package/dist/public/skills/kibi-usage/resources/proof.md +150 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +6 -6
- 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 +53 -0
- package/dist/public/symbol-granularity.js +6 -47
- package/dist/public/telemetry-acceptance.d.ts +3 -77
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +4 -2
- package/dist/public/telemetry-remediation.js +1 -1
- package/dist/report/html-report.css +1240 -0
- package/dist/report/html-report.d.ts +4 -2
- package/dist/report/html-report.d.ts.map +1 -1
- package/dist/report/html-report.js +37 -300
- 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 +32 -7
- package/dist/schemas/entity.schema.json +355 -215
- 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 +28 -0
- package/dist/traceability/evidence-model.d.ts.map +1 -1
- 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 +145 -1
- 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.js +4 -4
- 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 +138 -27
- package/dist/traceability/symbol-extract.d.ts +24 -2
- package/dist/traceability/symbol-extract.d.ts.map +1 -1
- package/dist/traceability/symbol-extract.js +64 -208
- 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 +13 -4
- package/dist/types/entities.d.ts +5 -3
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +1 -0
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +7 -4
- package/dist/utils/branch-store.d.ts +6 -0
- package/dist/utils/branch-store.d.ts.map +1 -1
- package/dist/utils/branch-store.js +27 -0
- package/dist/utils/kb-paths.d.ts +1 -1
- package/dist/utils/kb-paths.d.ts.map +1 -1
- package/dist/utils/kb-paths.js +1 -1
- package/dist/utils/rule-registry.d.ts +1 -11
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.generated.d.ts +102 -0
- package/dist/utils/rule-registry.generated.d.ts.map +1 -0
- package/dist/utils/rule-registry.generated.js +131 -0
- package/dist/utils/rule-registry.js +12 -113
- package/dist/utils/strict-modeling.d.ts +1 -0
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +1 -1
- package/package.json +20 -20
- package/src/public/diagnostic-usage.ts +6 -6
- package/src/public/distribution-parity.ts +17 -10
- package/src/public/extractors/symbols-coordinator.ts +1 -0
- package/src/public/impact/analyzer.ts +15 -12
- package/src/public/impact/coverage-depth-quality.ts +1 -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 +463 -72
- package/src/public/operations/catalog.ts +10 -4
- package/src/public/operations/check-executor.ts +4 -8
- package/src/public/operations/check-helpers.ts +2 -2
- package/src/public/operations/contracts.ts +78 -34
- package/src/public/operations/discovery-entities.ts +53 -0
- package/src/public/operations/discovery-executors.ts +64 -48
- package/src/public/operations/index.ts +1 -1
- package/src/public/operations/migration-plan.ts +32 -25
- package/src/public/operations/node-ports.ts +6 -6
- package/src/public/operations/prolog-json.ts +13 -5
- package/src/public/operations/repair-plan.ts +60 -23
- package/src/public/operations/result-envelope.ts +15 -10
- package/src/public/operations/runtime-types.ts +26 -2
- package/src/public/operations/specs/check-rules.generated.ts +38 -0
- package/src/public/operations/specs/check.ts +12 -21
- package/src/public/operations/specs/discovery.ts +3 -0
- package/src/public/operations/specs/mutation-schemas.ts +22 -9
- package/src/public/operations/specs/planning.ts +7 -0
- package/src/public/operations/specs/proof.ts +43 -0
- package/src/public/operations/specs/reporting.ts +140 -13
- package/src/public/operations/specs/semantic.ts +79 -17
- package/src/public/operations/symbol-repair-plan.ts +166 -7
- package/src/public/operations/types.ts +6 -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 +26 -10
- package/src/public/skills/kibi-freshness/SKILL.md +1 -1
- package/src/public/skills/kibi-usage/SKILL.md +44 -12
- package/src/public/skills/kibi-usage/resources/operation-access.md +1 -1
- package/src/public/skills/kibi-usage/resources/proof.md +150 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +6 -6
- package/src/public/symbol-granularity.generated.ts +74 -0
- package/src/public/symbol-granularity.ts +34 -59
- package/src/public/telemetry-acceptance-types.d.ts +98 -0
- package/src/public/telemetry-acceptance.ts +22 -100
- package/src/public/telemetry-remediation.ts +1 -1
- package/src/schemas/entity.schema.json +355 -215
- package/dist/cli-register-verification.d.ts +0 -3
- package/dist/cli-register-verification.d.ts.map +0 -1
- package/dist/cli-register-verification.js +0 -16
- package/dist/commands/verify.d.ts +0 -10
- package/dist/commands/verify.d.ts.map +0 -1
- package/dist/commands/verify.js +0 -126
- package/dist/operations/verification/ingest-verification.d.ts +0 -29
- package/dist/operations/verification/ingest-verification.d.ts.map +0 -1
- package/dist/operations/verification/ingest-verification.js +0 -192
- package/dist/public/operations/specs/verification.d.ts +0 -78
- package/dist/public/operations/specs/verification.d.ts.map +0 -1
- package/dist/public/operations/specs/verification.js +0 -62
- package/dist/public/playwright-case-id.d.ts.map +0 -1
- package/dist/public/verification-receipt.d.ts +0 -242
- package/dist/public/verification-receipt.d.ts.map +0 -1
- package/dist/public/verification-receipt.js +0 -296
- package/dist/verification/playwright-reporter.d.ts +0 -21
- package/dist/verification/playwright-reporter.d.ts.map +0 -1
- package/dist/verification/playwright-reporter.js +0 -114
- package/src/public/operations/specs/verification.ts +0 -78
- package/src/public/playwright-case-id.ts +0 -35
- package/src/public/verification-receipt.ts +0 -412
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { loadProofIntegrations } from "./integrations.js";
|
|
4
|
+
/**
|
|
5
|
+
* Declarative detection manifests. Deterministic CLI logic consumes these;
|
|
6
|
+
* agents consume the inspection output and never reinvent runner discovery.
|
|
7
|
+
*/
|
|
8
|
+
const DETECTORS = [
|
|
9
|
+
{
|
|
10
|
+
language: "typescript",
|
|
11
|
+
runner: "playwright",
|
|
12
|
+
files: [
|
|
13
|
+
"playwright.config.ts",
|
|
14
|
+
"playwright.config.mjs",
|
|
15
|
+
"playwright.config.js",
|
|
16
|
+
],
|
|
17
|
+
command: ["npx", "playwright", "test"],
|
|
18
|
+
producer: "playwright",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
language: "typescript",
|
|
22
|
+
runner: "vitest",
|
|
23
|
+
files: ["vitest.config.ts", "vitest.config.mjs", "vitest.config.js"],
|
|
24
|
+
command: [
|
|
25
|
+
"npx",
|
|
26
|
+
"vitest",
|
|
27
|
+
"run",
|
|
28
|
+
"--reporter=junit",
|
|
29
|
+
"--outputFile=.kb/proof/runs/vitest-junit.xml",
|
|
30
|
+
],
|
|
31
|
+
producer: "junit",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
language: "typescript",
|
|
35
|
+
runner: "jest",
|
|
36
|
+
files: ["jest.config.ts", "jest.config.mjs", "jest.config.js"],
|
|
37
|
+
command: [
|
|
38
|
+
"npx",
|
|
39
|
+
"jest",
|
|
40
|
+
"--ci",
|
|
41
|
+
"--reporters=default",
|
|
42
|
+
"--reporters=jest-junit",
|
|
43
|
+
],
|
|
44
|
+
producer: "junit",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
language: "python",
|
|
48
|
+
runner: "pytest",
|
|
49
|
+
files: ["pytest.ini", "pyproject.toml", "setup.cfg", "tox.ini"],
|
|
50
|
+
command: ["pytest", "--junitxml=.kb/proof/runs/pytest-junit.xml"],
|
|
51
|
+
producer: "junit",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
language: "go",
|
|
55
|
+
runner: "go test",
|
|
56
|
+
files: ["go.mod"],
|
|
57
|
+
command: ["go", "test", "./...", "-json"],
|
|
58
|
+
producer: "tap",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
language: "rust",
|
|
62
|
+
runner: "cargo test",
|
|
63
|
+
files: ["Cargo.toml"],
|
|
64
|
+
command: ["cargo", "test"],
|
|
65
|
+
producer: "tap",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
language: "java",
|
|
69
|
+
runner: "maven",
|
|
70
|
+
files: ["pom.xml"],
|
|
71
|
+
command: ["mvn", "test"],
|
|
72
|
+
producer: "junit",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
language: "java",
|
|
76
|
+
runner: "gradle",
|
|
77
|
+
files: ["build.gradle", "build.gradle.kts"],
|
|
78
|
+
command: ["gradle", "test"],
|
|
79
|
+
producer: "junit",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
language: "csharp",
|
|
83
|
+
runner: "dotnet test",
|
|
84
|
+
files: ["*.csproj", "*.sln"],
|
|
85
|
+
command: ["dotnet", "test", "--logger", "junit"],
|
|
86
|
+
producer: "junit",
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
language: "ruby",
|
|
90
|
+
runner: "rake test",
|
|
91
|
+
files: ["Rakefile", "Gemfile"],
|
|
92
|
+
command: ["bundle", "exec", "rake", "test"],
|
|
93
|
+
producer: "junit",
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
const PACKAGE_RUNNERS = [
|
|
97
|
+
{
|
|
98
|
+
runner: "npm test",
|
|
99
|
+
script: "test",
|
|
100
|
+
command: ["npm", "test"],
|
|
101
|
+
producer: "command",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
runner: "cargo test",
|
|
105
|
+
script: "",
|
|
106
|
+
command: ["cargo", "test"],
|
|
107
|
+
producer: "command",
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
function packageJson(root) {
|
|
111
|
+
const filePath = path.join(root, "package.json");
|
|
112
|
+
if (!existsSync(filePath))
|
|
113
|
+
return null;
|
|
114
|
+
try {
|
|
115
|
+
return JSON.parse(readFileSync(filePath, "utf8"));
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export function directoryEntriesMatch(directory, regex) {
|
|
122
|
+
try {
|
|
123
|
+
return readdirSync(directory).some((entry) => regex.test(entry));
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function globExists(root, pattern) {
|
|
130
|
+
if (pattern.includes("*")) {
|
|
131
|
+
const directory = path.dirname(path.join(root, pattern));
|
|
132
|
+
if (!existsSync(directory))
|
|
133
|
+
return false;
|
|
134
|
+
const base = path.basename(pattern);
|
|
135
|
+
const regex = new RegExp(`^${base
|
|
136
|
+
.split("*")
|
|
137
|
+
.map((part) => part.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))
|
|
138
|
+
.join(".*")}$`);
|
|
139
|
+
return directoryEntriesMatch(directory, regex);
|
|
140
|
+
}
|
|
141
|
+
return existsSync(path.join(root, pattern));
|
|
142
|
+
}
|
|
143
|
+
function directoryExists(root, relative) {
|
|
144
|
+
try {
|
|
145
|
+
return existsSync(path.join(root, relative));
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
152
|
+
export function inspectProofEnvironment(root) {
|
|
153
|
+
const languages = new Set();
|
|
154
|
+
const buildSystems = new Set();
|
|
155
|
+
const runners = [];
|
|
156
|
+
const missing = [];
|
|
157
|
+
for (const detector of DETECTORS) {
|
|
158
|
+
if (!detector.files.some((pattern) => globExists(root, pattern)))
|
|
159
|
+
continue;
|
|
160
|
+
languages.add(detector.language);
|
|
161
|
+
if (!runners.includes(detector.runner))
|
|
162
|
+
runners.push(detector.runner);
|
|
163
|
+
}
|
|
164
|
+
if (existsSync(path.join(root, "package.json"))) {
|
|
165
|
+
languages.add("javascript/typescript");
|
|
166
|
+
const pkg = packageJson(root);
|
|
167
|
+
const scripts = pkg?.scripts !== null &&
|
|
168
|
+
typeof pkg?.scripts === "object" &&
|
|
169
|
+
pkg?.scripts !== undefined
|
|
170
|
+
? pkg.scripts
|
|
171
|
+
: {};
|
|
172
|
+
if (scripts.dependencies !== undefined ||
|
|
173
|
+
pkg?.devDependencies !== undefined)
|
|
174
|
+
buildSystems.add("npm");
|
|
175
|
+
if (existsSync(path.join(root, "bun.lockb")) ||
|
|
176
|
+
existsSync(path.join(root, "bun.lock")))
|
|
177
|
+
buildSystems.add("bun");
|
|
178
|
+
for (const entry of PACKAGE_RUNNERS) {
|
|
179
|
+
if (entry.script !== "" && typeof scripts[entry.script] === "string") {
|
|
180
|
+
if (!runners.includes(entry.runner))
|
|
181
|
+
runners.push(entry.runner);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (existsSync(path.join(root, "Cargo.toml")))
|
|
186
|
+
buildSystems.add("cargo");
|
|
187
|
+
if (existsSync(path.join(root, "go.mod")))
|
|
188
|
+
buildSystems.add("go");
|
|
189
|
+
if (existsSync(path.join(root, "pom.xml")))
|
|
190
|
+
buildSystems.add("maven");
|
|
191
|
+
if (existsSync(path.join(root, "Makefile")))
|
|
192
|
+
buildSystems.add("make");
|
|
193
|
+
const ciWorkflows = [];
|
|
194
|
+
const workflowsDir = path.join(root, ".github", "workflows");
|
|
195
|
+
if (directoryExists(root, path.join(".github", "workflows"))) {
|
|
196
|
+
try {
|
|
197
|
+
for (const file of readdirSync(workflowsDir)) {
|
|
198
|
+
if (file.endsWith(".yml") || file.endsWith(".yaml"))
|
|
199
|
+
ciWorkflows.push(file);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// unreadable workflow directory is not fatal for inspection
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const integrations = loadProofIntegrations(root);
|
|
207
|
+
const currentIntegration = integrations.available
|
|
208
|
+
? integrations.integrations.integrations.map((entry) => entry.id).join(", ")
|
|
209
|
+
: null;
|
|
210
|
+
let recommendation;
|
|
211
|
+
if (!integrations.available) {
|
|
212
|
+
if (runners.length === 0) {
|
|
213
|
+
recommendation =
|
|
214
|
+
"No test harness detected. Proof integration is deferred until the first proof-bearing test introduces one; command proof can prove any command.";
|
|
215
|
+
missing.push(".kb/proof/integrations.json (created by bootstrap)");
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
recommendation =
|
|
219
|
+
"Run bootstrap to configure proof integrations: native producers or standard-format adapters for detected runners, or command proof as the universal fallback.";
|
|
220
|
+
missing.push(".kb/proof/integrations.json (created by bootstrap)");
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
recommendation =
|
|
225
|
+
"Proof integration configured; run `kibi prove --all` to record fresh evidence.";
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
languages: [...languages].sort(),
|
|
229
|
+
buildSystems: [...buildSystems].sort(),
|
|
230
|
+
detectedRunners: runners,
|
|
231
|
+
ciWorkflows,
|
|
232
|
+
currentIntegration,
|
|
233
|
+
recommendation,
|
|
234
|
+
missing,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ProofIntegrationExecution } from "../public/proof-fingerprint.js";
|
|
2
|
+
import { PROOF_INTEGRATION_VERSION } from "../public/proof-protocol.js";
|
|
3
|
+
/** Tracked, Kibi-managed proof integration configuration. */
|
|
4
|
+
export declare const PROOF_INTEGRATIONS_PATH = ".kb/proof/integrations.json";
|
|
5
|
+
/** Derived runtime artifacts of proof runs; never tracked knowledge. */
|
|
6
|
+
export declare const PROOF_RUNS_DIR = ".kb/proof/runs";
|
|
7
|
+
export declare const PRODUCER_KINDS: readonly ["command", "playwright", "junit", "tap"];
|
|
8
|
+
export type ProducerKind = (typeof PRODUCER_KINDS)[number];
|
|
9
|
+
export type ProofIntegration = Readonly<{
|
|
10
|
+
id: string;
|
|
11
|
+
producer: string;
|
|
12
|
+
producer_version?: string;
|
|
13
|
+
command: readonly string[];
|
|
14
|
+
artifact?: string;
|
|
15
|
+
targets?: readonly string[];
|
|
16
|
+
options?: Record<string, unknown>;
|
|
17
|
+
description?: string;
|
|
18
|
+
}>;
|
|
19
|
+
export type ProofIntegrationsFile = Readonly<{
|
|
20
|
+
version: typeof PROOF_INTEGRATION_VERSION;
|
|
21
|
+
integrations: readonly ProofIntegration[];
|
|
22
|
+
}>;
|
|
23
|
+
export type LoadedProofIntegrations = {
|
|
24
|
+
available: true;
|
|
25
|
+
integrations: ProofIntegrationsFile;
|
|
26
|
+
} | {
|
|
27
|
+
available: false;
|
|
28
|
+
error: string;
|
|
29
|
+
};
|
|
30
|
+
export declare function integrationsPath(workspaceRoot: string): string;
|
|
31
|
+
export declare function proofIntegrationErrors(value: unknown): string[];
|
|
32
|
+
export declare function loadProofIntegrations(workspaceRoot: string): LoadedProofIntegrations;
|
|
33
|
+
export declare function resolveIntegration(integrations: ProofIntegrationsFile, id: string): ProofIntegration | null;
|
|
34
|
+
export declare function toExecution(integration: ProofIntegration): ProofIntegrationExecution;
|
|
35
|
+
//# sourceMappingURL=integrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/proof/integrations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,6DAA6D;AAC7D,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE,wEAAwE;AACxE,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,eAAO,MAAM,cAAc,oDAKjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE,OAAO,yBAAyB,CAAC;IAC1C,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,qBAAqB,CAAA;CAAE,GACxD;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAkE/D;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,GACpB,uBAAuB,CAwBzB;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,qBAAqB,EACnC,EAAE,EAAE,MAAM,GACT,gBAAgB,GAAG,IAAI,CAEzB;AAED,wBAAgB,WAAW,CACzB,WAAW,EAAE,gBAAgB,GAC5B,yBAAyB,CAkB3B"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { PROOF_INTEGRATION_VERSION } from "../public/proof-protocol.js";
|
|
4
|
+
/** Tracked, Kibi-managed proof integration configuration. */
|
|
5
|
+
export const PROOF_INTEGRATIONS_PATH = ".kb/proof/integrations.json";
|
|
6
|
+
/** Derived runtime artifacts of proof runs; never tracked knowledge. */
|
|
7
|
+
export const PROOF_RUNS_DIR = ".kb/proof/runs";
|
|
8
|
+
export const PRODUCER_KINDS = [
|
|
9
|
+
"command",
|
|
10
|
+
"playwright",
|
|
11
|
+
"junit",
|
|
12
|
+
"tap",
|
|
13
|
+
];
|
|
14
|
+
export function integrationsPath(workspaceRoot) {
|
|
15
|
+
return path.join(workspaceRoot, PROOF_INTEGRATIONS_PATH);
|
|
16
|
+
}
|
|
17
|
+
export function proofIntegrationErrors(value) {
|
|
18
|
+
const file = record(value);
|
|
19
|
+
if (!file)
|
|
20
|
+
return [
|
|
21
|
+
`${PROOF_INTEGRATIONS_PATH} must be an object with version and integrations`,
|
|
22
|
+
];
|
|
23
|
+
const errors = [];
|
|
24
|
+
if (file.version !== PROOF_INTEGRATION_VERSION)
|
|
25
|
+
errors.push(`version must be ${PROOF_INTEGRATION_VERSION}; received ${JSON.stringify(file.version ?? null)}`);
|
|
26
|
+
if (!Array.isArray(file.integrations) || file.integrations.length === 0) {
|
|
27
|
+
errors.push("integrations must be a non-empty array");
|
|
28
|
+
return errors;
|
|
29
|
+
}
|
|
30
|
+
const seen = new Set();
|
|
31
|
+
file.integrations.forEach((entry, index) => {
|
|
32
|
+
const row = record(entry);
|
|
33
|
+
const label = `integrations[${index}]`;
|
|
34
|
+
if (!row) {
|
|
35
|
+
errors.push(`${label} must be an object`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (!nonEmpty(row.id))
|
|
39
|
+
errors.push(`${label}.id must be a non-empty string`);
|
|
40
|
+
else {
|
|
41
|
+
if (seen.has(String(row.id)))
|
|
42
|
+
errors.push(`${label}.id duplicates '${String(row.id)}'`);
|
|
43
|
+
seen.add(String(row.id));
|
|
44
|
+
}
|
|
45
|
+
if (!nonEmpty(row.producer))
|
|
46
|
+
errors.push(`${label}.producer must be one of: ${PRODUCER_KINDS.join(", ")} (or a custom producer id)`);
|
|
47
|
+
if (!Array.isArray(row.command) ||
|
|
48
|
+
row.command.length === 0 ||
|
|
49
|
+
!row.command.every((argument) => nonEmpty(argument)))
|
|
50
|
+
errors.push(`${label}.command must be a non-empty argv array`);
|
|
51
|
+
if (nonEmpty(row.producer) &&
|
|
52
|
+
(row.producer === "junit" || row.producer === "tap") &&
|
|
53
|
+
!nonEmpty(row.artifact))
|
|
54
|
+
errors.push(`${label}.artifact is required for producer '${String(row.producer)}' (path of the native report to convert)`);
|
|
55
|
+
if (row.targets !== undefined) {
|
|
56
|
+
if (!Array.isArray(row.targets) ||
|
|
57
|
+
row.targets.length === 0 ||
|
|
58
|
+
!row.targets.every((target) => nonEmpty(target)))
|
|
59
|
+
errors.push(`${label}.targets must be a non-empty array of target names`);
|
|
60
|
+
}
|
|
61
|
+
if (row.options !== undefined && !record(row.options))
|
|
62
|
+
errors.push(`${label}.options must be an object when present`);
|
|
63
|
+
if (row.description !== undefined && !nonEmpty(row.description))
|
|
64
|
+
errors.push(`${label}.description must be a non-empty string when present`);
|
|
65
|
+
});
|
|
66
|
+
return errors;
|
|
67
|
+
}
|
|
68
|
+
export function loadProofIntegrations(workspaceRoot) {
|
|
69
|
+
const filePath = integrationsPath(workspaceRoot);
|
|
70
|
+
if (!existsSync(filePath)) {
|
|
71
|
+
return {
|
|
72
|
+
available: false,
|
|
73
|
+
error: `No proof integration configuration at ${PROOF_INTEGRATIONS_PATH}. Run bootstrap for this repository to configure proof producers.`,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
let parsed;
|
|
77
|
+
try {
|
|
78
|
+
parsed = JSON.parse(readFileSync(filePath, "utf8"));
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return {
|
|
82
|
+
available: false,
|
|
83
|
+
error: `${PROOF_INTEGRATIONS_PATH} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const errors = proofIntegrationErrors(parsed);
|
|
87
|
+
if (errors.length > 0)
|
|
88
|
+
return {
|
|
89
|
+
available: false,
|
|
90
|
+
error: `Invalid ${PROOF_INTEGRATIONS_PATH}: ${errors.join("; ")}`,
|
|
91
|
+
};
|
|
92
|
+
return { available: true, integrations: parsed };
|
|
93
|
+
}
|
|
94
|
+
export function resolveIntegration(integrations, id) {
|
|
95
|
+
return integrations.integrations.find((entry) => entry.id === id) ?? null;
|
|
96
|
+
}
|
|
97
|
+
export function toExecution(integration) {
|
|
98
|
+
return {
|
|
99
|
+
id: integration.id,
|
|
100
|
+
producer: integration.producer,
|
|
101
|
+
...(integration.producer_version !== undefined
|
|
102
|
+
? { producer_version: integration.producer_version }
|
|
103
|
+
: {}),
|
|
104
|
+
command: integration.command,
|
|
105
|
+
...(integration.artifact !== undefined
|
|
106
|
+
? { artifact: integration.artifact }
|
|
107
|
+
: {}),
|
|
108
|
+
...(integration.targets !== undefined
|
|
109
|
+
? { targets: integration.targets }
|
|
110
|
+
: {}),
|
|
111
|
+
...(integration.options !== undefined
|
|
112
|
+
? { options: integration.options }
|
|
113
|
+
: {}),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function record(value) {
|
|
117
|
+
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
118
|
+
? value
|
|
119
|
+
: null;
|
|
120
|
+
}
|
|
121
|
+
function nonEmpty(value) {
|
|
122
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
123
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ProofResult } from "../../public/proof-protocol.js";
|
|
2
|
+
export type NativeBinding = Readonly<{
|
|
3
|
+
symbol_id: string;
|
|
4
|
+
target: string;
|
|
5
|
+
native_id?: string;
|
|
6
|
+
aliases?: readonly string[];
|
|
7
|
+
}>;
|
|
8
|
+
export type NativeConversion = Readonly<{
|
|
9
|
+
results: ProofResult[];
|
|
10
|
+
diagnostics: string[];
|
|
11
|
+
/** A malformed or ambiguous report must never be projected partially. */
|
|
12
|
+
fatal?: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function ambiguousNativeBindings(bindings: readonly NativeBinding[]): readonly string[];
|
|
15
|
+
export declare function bindingLookup(bindings: readonly NativeBinding[]): (nativeId: string) => {
|
|
16
|
+
symbol_id: string;
|
|
17
|
+
target: string;
|
|
18
|
+
} | null;
|
|
19
|
+
/**
|
|
20
|
+
* JUnit XML exposes native case outcomes but no trustworthy attempt history.
|
|
21
|
+
* Explicit rerunFailure/rerunError children are the only exception: they
|
|
22
|
+
* provide a complete failed-then-passed sequence. Plain passes remain
|
|
23
|
+
* unavailable and are rejected by the strict first-attempt evaluator.
|
|
24
|
+
*/
|
|
25
|
+
export declare function convertJUnitXml(xml: string, bindings: readonly NativeBinding[]): NativeConversion;
|
|
26
|
+
//# sourceMappingURL=junit-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"junit-adapter.d.ts","sourceRoot":"","sources":["../../../src/proof/producers/junit-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AA+EH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,SAAS,MAAM,EAAE,CAEnB;AAGD,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,CAAC,QAAQ,EAAE,MAAM,KAAK;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIpE;AA2BD;;;;;GAKG;AAEH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,gBAAgB,CAmFlB"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { SaxesParser } from "saxes";
|
|
2
|
+
/** Build a tree from SAX events so nested suites/cases cannot be confused by regex boundaries. */
|
|
3
|
+
function parseXml(xml) {
|
|
4
|
+
const parser = new SaxesParser({ xmlns: false });
|
|
5
|
+
const stack = [];
|
|
6
|
+
let root = null;
|
|
7
|
+
let parserError = null;
|
|
8
|
+
parser.on("doctype", () => {
|
|
9
|
+
throw new Error("DTD is not accepted in JUnit reports");
|
|
10
|
+
});
|
|
11
|
+
parser.on("error", (error) => {
|
|
12
|
+
parserError ??= error;
|
|
13
|
+
});
|
|
14
|
+
parser.on("opentag", (tag) => {
|
|
15
|
+
const attributes = {};
|
|
16
|
+
for (const [name, value] of Object.entries(tag.attributes)) {
|
|
17
|
+
attributes[name] = typeof value === "string" ? value : String(value);
|
|
18
|
+
}
|
|
19
|
+
stack.push({ name: tag.name, attributes, children: [] });
|
|
20
|
+
});
|
|
21
|
+
parser.on("closetag", () => {
|
|
22
|
+
const node = stack.pop();
|
|
23
|
+
if (!node) {
|
|
24
|
+
parserError ??= new Error("unexpected XML closing tag");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const parent = stack[stack.length - 1];
|
|
28
|
+
if (parent)
|
|
29
|
+
parent.children.push(node);
|
|
30
|
+
else if (root)
|
|
31
|
+
parserError ??= new Error("multiple XML root elements");
|
|
32
|
+
else
|
|
33
|
+
root = node;
|
|
34
|
+
});
|
|
35
|
+
try {
|
|
36
|
+
parser.write(xml).close();
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
parserError ??= error instanceof Error ? error : new Error(String(error));
|
|
40
|
+
}
|
|
41
|
+
if (parserError)
|
|
42
|
+
throw parserError;
|
|
43
|
+
if (stack.length > 0)
|
|
44
|
+
throw new Error(`unclosed XML element <${stack[stack.length - 1]?.name}>`);
|
|
45
|
+
if (!root)
|
|
46
|
+
throw new Error("empty XML report");
|
|
47
|
+
return root;
|
|
48
|
+
}
|
|
49
|
+
function bindingIndex(bindings) {
|
|
50
|
+
const values = new Map();
|
|
51
|
+
const ambiguous = new Set();
|
|
52
|
+
for (const binding of bindings) {
|
|
53
|
+
const value = { symbol_id: binding.symbol_id, target: binding.target };
|
|
54
|
+
for (const nativeId of [binding.native_id, ...(binding.aliases ?? [])]) {
|
|
55
|
+
if (!nativeId)
|
|
56
|
+
continue;
|
|
57
|
+
const previous = values.get(nativeId);
|
|
58
|
+
if (previous &&
|
|
59
|
+
(previous.symbol_id !== value.symbol_id ||
|
|
60
|
+
previous.target !== value.target)) {
|
|
61
|
+
ambiguous.add(nativeId);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
values.set(nativeId, value);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { values, ambiguous };
|
|
68
|
+
}
|
|
69
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
70
|
+
export function ambiguousNativeBindings(bindings) {
|
|
71
|
+
return [...bindingIndex(bindings).ambiguous];
|
|
72
|
+
}
|
|
73
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
74
|
+
export function bindingLookup(bindings) {
|
|
75
|
+
const index = bindingIndex(bindings);
|
|
76
|
+
return (nativeId) => index.ambiguous.has(nativeId) ? null : (index.values.get(nativeId) ?? null);
|
|
77
|
+
}
|
|
78
|
+
function descendants(node, name) {
|
|
79
|
+
const found = [];
|
|
80
|
+
for (const child of node.children) {
|
|
81
|
+
if (child.name === name)
|
|
82
|
+
found.push(child);
|
|
83
|
+
found.push(...descendants(child, name));
|
|
84
|
+
}
|
|
85
|
+
return found;
|
|
86
|
+
}
|
|
87
|
+
function outcomeFromJUnitCase(testcase) {
|
|
88
|
+
const hasFailure = descendants(testcase, "failure").length > 0 ||
|
|
89
|
+
descendants(testcase, "error").length > 0;
|
|
90
|
+
const hasSkipped = descendants(testcase, "skipped").length > 0;
|
|
91
|
+
const reruns = descendants(testcase, "rerunFailure").length +
|
|
92
|
+
descendants(testcase, "rerunError").length;
|
|
93
|
+
if (hasSkipped && !hasFailure)
|
|
94
|
+
return { outcome: "skipped", reruns };
|
|
95
|
+
if (hasFailure)
|
|
96
|
+
return { outcome: "failed", reruns };
|
|
97
|
+
return { outcome: "passed", reruns };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* JUnit XML exposes native case outcomes but no trustworthy attempt history.
|
|
101
|
+
* Explicit rerunFailure/rerunError children are the only exception: they
|
|
102
|
+
* provide a complete failed-then-passed sequence. Plain passes remain
|
|
103
|
+
* unavailable and are rejected by the strict first-attempt evaluator.
|
|
104
|
+
*/
|
|
105
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
106
|
+
export function convertJUnitXml(xml, bindings) {
|
|
107
|
+
const index = bindingIndex(bindings);
|
|
108
|
+
const diagnostics = [];
|
|
109
|
+
let root;
|
|
110
|
+
try {
|
|
111
|
+
root = parseXml(xml);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
diagnostics.push(`malformed junit XML: ${error instanceof Error ? error.message : String(error)}`);
|
|
115
|
+
if (!/<testsuite\b/i.test(xml))
|
|
116
|
+
diagnostics.push("no <testsuite> element found; not a JUnit XML report");
|
|
117
|
+
return { results: [], diagnostics, fatal: true };
|
|
118
|
+
}
|
|
119
|
+
if (root.name !== "testsuite" && root.name !== "testsuites") {
|
|
120
|
+
diagnostics.push("no <testsuite> element found; not a JUnit XML report");
|
|
121
|
+
return { results: [], diagnostics, fatal: true };
|
|
122
|
+
}
|
|
123
|
+
for (const nativeId of index.ambiguous)
|
|
124
|
+
diagnostics.push(`ambiguous junit binding for ${nativeId}`);
|
|
125
|
+
let fatal = index.ambiguous.size > 0;
|
|
126
|
+
const results = [];
|
|
127
|
+
const seen = new Map();
|
|
128
|
+
for (const testcase of descendants(root, "testcase")) {
|
|
129
|
+
const name = testcase.attributes.name;
|
|
130
|
+
if (name === undefined)
|
|
131
|
+
continue;
|
|
132
|
+
const classname = testcase.attributes.classname;
|
|
133
|
+
const nativeId = classname ? `${classname}::${name}` : name;
|
|
134
|
+
if (index.ambiguous.has(nativeId))
|
|
135
|
+
continue;
|
|
136
|
+
const bound = index.values.get(nativeId);
|
|
137
|
+
if (!bound) {
|
|
138
|
+
diagnostics.push(`unbound junit testcase ignored: ${nativeId}`);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const key = `${bound.target}\0${bound.symbol_id}`;
|
|
142
|
+
const { outcome, reruns } = outcomeFromJUnitCase(testcase);
|
|
143
|
+
const previous = seen.get(key);
|
|
144
|
+
if (previous) {
|
|
145
|
+
if (previous.nativeId !== nativeId || previous.outcome !== outcome) {
|
|
146
|
+
diagnostics.push(`ambiguous duplicate junit result for ${nativeId}`);
|
|
147
|
+
fatal = true;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
diagnostics.push(`duplicate junit result for ${nativeId}; ignored`);
|
|
151
|
+
}
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
seen.set(key, { nativeId, outcome });
|
|
155
|
+
const time = testcase.attributes.time;
|
|
156
|
+
const durationMs = time !== undefined && Number.isFinite(Number(time))
|
|
157
|
+
? Math.max(0, Math.round(Number(time) * 1000))
|
|
158
|
+
: undefined;
|
|
159
|
+
results.push({
|
|
160
|
+
symbol_id: bound.symbol_id,
|
|
161
|
+
target: bound.target,
|
|
162
|
+
outcome,
|
|
163
|
+
binding: "native_case",
|
|
164
|
+
native_id: nativeId,
|
|
165
|
+
attempts: reruns > 0 && outcome === "passed"
|
|
166
|
+
? {
|
|
167
|
+
status: "complete",
|
|
168
|
+
entries: [
|
|
169
|
+
...Array.from({ length: reruns }, () => ({
|
|
170
|
+
outcome: "failed",
|
|
171
|
+
})),
|
|
172
|
+
{
|
|
173
|
+
outcome: "passed",
|
|
174
|
+
...(durationMs !== undefined
|
|
175
|
+
? { duration_ms: durationMs }
|
|
176
|
+
: {}),
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
}
|
|
180
|
+
: { status: "unavailable" },
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
return fatal
|
|
184
|
+
? { results: [], diagnostics, fatal: true }
|
|
185
|
+
: { results, diagnostics };
|
|
186
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Stable identity for a statically named Playwright
|
|
2
|
+
* Stable identity for a statically named Playwright proof case.
|
|
3
3
|
* The path is always repository-relative before hashing so the same case has
|
|
4
4
|
* the same identity in a checkout, packed consumer, and dogfood workspace.
|
|
5
5
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright-case-id.d.ts","sourceRoot":"","sources":["../../../src/proof/producers/playwright-case-id.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CAOR;AAGD,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CASR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
/**
|
|
4
|
-
* Stable identity for a statically named Playwright
|
|
4
|
+
* Stable identity for a statically named Playwright proof case.
|
|
5
5
|
* The path is always repository-relative before hashing so the same case has
|
|
6
6
|
* the same identity in a checkout, packed consumer, and dogfood workspace.
|
|
7
7
|
*/
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PROOF_RUN_VERSION } from "../../public/proof-protocol.js";
|
|
2
|
+
export { PROOF_RUN_VERSION };
|
|
3
|
+
export type KibiPlaywrightProducerOptions = Readonly<{
|
|
4
|
+
outputPath?: string;
|
|
5
|
+
codeSnapshot?: string;
|
|
6
|
+
commandArgv?: readonly string[];
|
|
7
|
+
integration?: string;
|
|
8
|
+
workspaceRoot?: string;
|
|
9
|
+
now?: () => Date;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* First-party Playwright producer. It reports what happened as a
|
|
13
|
+
* kibi.proof-run.v1 artifact with complete attempt history; Kibi evaluates
|
|
14
|
+
* proof obligations and policies. Structural callback surface only — no
|
|
15
|
+
* Playwright dependency.
|
|
16
|
+
*/
|
|
17
|
+
export declare class KibiPlaywrightProducer {
|
|
18
|
+
private readonly options;
|
|
19
|
+
private readonly results;
|
|
20
|
+
private startedAt;
|
|
21
|
+
constructor(options?: KibiPlaywrightProducerOptions);
|
|
22
|
+
onBegin(): void;
|
|
23
|
+
onTestEnd(test: unknown, result: unknown): void;
|
|
24
|
+
onEnd(result?: unknown): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export default KibiPlaywrightProducer;
|
|
27
|
+
//# sourceMappingURL=playwright-reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright-reporter.d.ts","sourceRoot":"","sources":["../../../src/proof/producers/playwright-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAIlB,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC,CAAC;AAwCH;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE,6BAAkC;IAMvD,OAAO,IAAI,IAAI;IAKf,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAoDzC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAkC7C;AAED,eAAe,sBAAsB,CAAC"}
|