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,499 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type ProofFingerprintComponents,
|
|
3
|
+
canonicalJson,
|
|
4
|
+
proofContractHash,
|
|
5
|
+
} from "./proof-fingerprint.js";
|
|
6
|
+
import {
|
|
7
|
+
PROOF_RECEIPT_VERSION,
|
|
8
|
+
PROOF_RESULT_OUTCOMES,
|
|
9
|
+
PROOF_RUN_OUTCOMES,
|
|
10
|
+
type ProofContract,
|
|
11
|
+
} from "./proof-protocol.js";
|
|
12
|
+
|
|
13
|
+
export const PROOF_RECEIPT_MAX_AGE_SECONDS = 7 * 24 * 60 * 60;
|
|
14
|
+
|
|
15
|
+
export const PROOF_RECEIPT_OUTCOMES = [
|
|
16
|
+
"passed",
|
|
17
|
+
"failed",
|
|
18
|
+
"errored",
|
|
19
|
+
"cancelled",
|
|
20
|
+
"skipped",
|
|
21
|
+
"timed_out",
|
|
22
|
+
"interrupted",
|
|
23
|
+
] as const;
|
|
24
|
+
|
|
25
|
+
export const PROOF_RECEIPT_SCHEMA = {
|
|
26
|
+
type: "object",
|
|
27
|
+
description:
|
|
28
|
+
"Kibi-derived kibi.proof-receipt.v1. Receipts are never caller-authored; kb_ingest_proof derives them from kibi.proof-run.v1 artifacts.",
|
|
29
|
+
required: [
|
|
30
|
+
"version",
|
|
31
|
+
"receipt_id",
|
|
32
|
+
"test_id",
|
|
33
|
+
"scope",
|
|
34
|
+
"outcome",
|
|
35
|
+
"code_snapshot",
|
|
36
|
+
"environment_hash",
|
|
37
|
+
"started_at",
|
|
38
|
+
"finished_at",
|
|
39
|
+
"artifact_digest",
|
|
40
|
+
"contract_hash",
|
|
41
|
+
"fingerprint",
|
|
42
|
+
"fingerprint_components",
|
|
43
|
+
"integration_id",
|
|
44
|
+
"producer",
|
|
45
|
+
"command_argv",
|
|
46
|
+
"run_outcome",
|
|
47
|
+
"proof_results",
|
|
48
|
+
],
|
|
49
|
+
properties: {
|
|
50
|
+
version: { type: "string", const: PROOF_RECEIPT_VERSION },
|
|
51
|
+
receipt_id: {
|
|
52
|
+
type: "string",
|
|
53
|
+
pattern: "^PR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$",
|
|
54
|
+
},
|
|
55
|
+
test_id: { type: "string", minLength: 1 },
|
|
56
|
+
scope: { type: "string", enum: ["unit", "integration", "end_to_end"] },
|
|
57
|
+
outcome: { type: "string", enum: [...PROOF_RECEIPT_OUTCOMES] },
|
|
58
|
+
code_snapshot: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
59
|
+
environment_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
60
|
+
started_at: { type: "string", minLength: 1 },
|
|
61
|
+
finished_at: { type: "string", minLength: 1 },
|
|
62
|
+
artifact_digest: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
63
|
+
contract_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
64
|
+
binding_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
65
|
+
fingerprint: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
66
|
+
fingerprint_components: {
|
|
67
|
+
type: "object",
|
|
68
|
+
required: ["contract", "integration", "command", "bindings", "producer"],
|
|
69
|
+
additionalProperties: false,
|
|
70
|
+
properties: {
|
|
71
|
+
contract: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
72
|
+
integration: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
73
|
+
command: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
74
|
+
bindings: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
75
|
+
producer: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
integration_id: { type: "string", minLength: 1 },
|
|
79
|
+
producer: {
|
|
80
|
+
type: "object",
|
|
81
|
+
required: ["name"],
|
|
82
|
+
properties: {
|
|
83
|
+
name: { type: "string", minLength: 1 },
|
|
84
|
+
version: { type: "string", minLength: 1 },
|
|
85
|
+
},
|
|
86
|
+
additionalProperties: false,
|
|
87
|
+
},
|
|
88
|
+
command_argv: {
|
|
89
|
+
type: "array",
|
|
90
|
+
minItems: 1,
|
|
91
|
+
items: { type: "string", minLength: 1 },
|
|
92
|
+
},
|
|
93
|
+
run_outcome: { type: "string", enum: [...PROOF_RUN_OUTCOMES] },
|
|
94
|
+
proof_results: {
|
|
95
|
+
type: "array",
|
|
96
|
+
minItems: 0,
|
|
97
|
+
maxItems: 1000,
|
|
98
|
+
items: {
|
|
99
|
+
type: "object",
|
|
100
|
+
required: ["symbol_id", "target", "outcome", "binding", "attempts"],
|
|
101
|
+
properties: {
|
|
102
|
+
symbol_id: { type: "string", minLength: 1 },
|
|
103
|
+
target: { type: "string", minLength: 1 },
|
|
104
|
+
outcome: { type: "string", enum: [...PROOF_RESULT_OUTCOMES] },
|
|
105
|
+
binding: { type: "string", enum: ["native_case", "aggregate_run"] },
|
|
106
|
+
native_id: { type: "string", minLength: 1 },
|
|
107
|
+
attempts: {
|
|
108
|
+
oneOf: [
|
|
109
|
+
{
|
|
110
|
+
type: "object",
|
|
111
|
+
required: ["status", "entries"],
|
|
112
|
+
properties: {
|
|
113
|
+
status: { type: "string", const: "complete" },
|
|
114
|
+
entries: {
|
|
115
|
+
type: "array",
|
|
116
|
+
minItems: 1,
|
|
117
|
+
items: {
|
|
118
|
+
type: "object",
|
|
119
|
+
required: ["outcome"],
|
|
120
|
+
properties: {
|
|
121
|
+
outcome: {
|
|
122
|
+
type: "string",
|
|
123
|
+
enum: [...PROOF_RESULT_OUTCOMES],
|
|
124
|
+
},
|
|
125
|
+
duration_ms: { type: "number", minimum: 0 },
|
|
126
|
+
},
|
|
127
|
+
additionalProperties: false,
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
additionalProperties: false,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: "object",
|
|
135
|
+
required: ["status"],
|
|
136
|
+
properties: {
|
|
137
|
+
status: { type: "string", const: "unavailable" },
|
|
138
|
+
},
|
|
139
|
+
additionalProperties: false,
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
additionalProperties: false,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
gaps: {
|
|
148
|
+
type: "array",
|
|
149
|
+
items: {
|
|
150
|
+
type: "object",
|
|
151
|
+
required: ["symbol_id", "target", "reason"],
|
|
152
|
+
properties: {
|
|
153
|
+
symbol_id: { type: "string", minLength: 1 },
|
|
154
|
+
target: { type: "string", minLength: 1 },
|
|
155
|
+
reason: { type: "string", minLength: 1 },
|
|
156
|
+
},
|
|
157
|
+
additionalProperties: false,
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
additionalProperties: false,
|
|
162
|
+
} as const;
|
|
163
|
+
|
|
164
|
+
export type ProofReceipt = Readonly<{
|
|
165
|
+
version: typeof PROOF_RECEIPT_VERSION;
|
|
166
|
+
receipt_id: string;
|
|
167
|
+
test_id: string;
|
|
168
|
+
scope: "unit" | "integration" | "end_to_end";
|
|
169
|
+
outcome: (typeof PROOF_RECEIPT_OUTCOMES)[number];
|
|
170
|
+
code_snapshot: string;
|
|
171
|
+
environment_hash: string;
|
|
172
|
+
started_at: string;
|
|
173
|
+
finished_at: string;
|
|
174
|
+
artifact_digest: string;
|
|
175
|
+
contract_hash: string;
|
|
176
|
+
fingerprint: string;
|
|
177
|
+
fingerprint_components: ProofFingerprintComponents;
|
|
178
|
+
integration_id: string;
|
|
179
|
+
producer: { readonly name: string; readonly version?: string };
|
|
180
|
+
command_argv: readonly string[];
|
|
181
|
+
run_outcome: (typeof PROOF_RUN_OUTCOMES)[number];
|
|
182
|
+
proof_results: readonly {
|
|
183
|
+
readonly symbol_id: string;
|
|
184
|
+
readonly target: string;
|
|
185
|
+
readonly outcome: (typeof PROOF_RESULT_OUTCOMES)[number];
|
|
186
|
+
readonly binding: "native_case" | "aggregate_run";
|
|
187
|
+
readonly native_id?: string;
|
|
188
|
+
readonly attempts:
|
|
189
|
+
| {
|
|
190
|
+
readonly status: "complete";
|
|
191
|
+
readonly entries: readonly {
|
|
192
|
+
readonly outcome: string;
|
|
193
|
+
readonly duration_ms?: number;
|
|
194
|
+
}[];
|
|
195
|
+
}
|
|
196
|
+
| { readonly status: "unavailable" };
|
|
197
|
+
}[];
|
|
198
|
+
gaps?: readonly {
|
|
199
|
+
readonly symbol_id: string;
|
|
200
|
+
readonly target: string;
|
|
201
|
+
readonly reason: string;
|
|
202
|
+
}[];
|
|
203
|
+
}>;
|
|
204
|
+
|
|
205
|
+
export function finishedAtPrecedesStartedAt(
|
|
206
|
+
startedAt: number | null,
|
|
207
|
+
finishedAt: number | null,
|
|
208
|
+
): boolean {
|
|
209
|
+
return startedAt !== null && finishedAt !== null && finishedAt < startedAt;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
function timestamp(value: unknown): number | null {
|
|
213
|
+
if (typeof value !== "string") return null;
|
|
214
|
+
if (
|
|
215
|
+
!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(
|
|
216
|
+
value,
|
|
217
|
+
)
|
|
218
|
+
) {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
const parsed = Date.parse(value);
|
|
222
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function nonEmptyString(value: unknown): boolean {
|
|
226
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function hex64(value: unknown): boolean {
|
|
230
|
+
return typeof value === "string" && /^[a-f0-9]{64}$/.test(value);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
234
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function validAttempts(value: unknown): boolean {
|
|
238
|
+
const row = isRecord(value) ? value : null;
|
|
239
|
+
if (!row) return false;
|
|
240
|
+
if (row.status === "unavailable") return row.entries === undefined;
|
|
241
|
+
if (row.status !== "complete") return false;
|
|
242
|
+
if (!Array.isArray(row.entries) || row.entries.length === 0) return false;
|
|
243
|
+
return row.entries.every((entry) => {
|
|
244
|
+
const attempt = isRecord(entry) ? entry : null;
|
|
245
|
+
return (
|
|
246
|
+
attempt !== null &&
|
|
247
|
+
nonEmptyString(attempt.outcome) &&
|
|
248
|
+
(PROOF_RESULT_OUTCOMES as readonly string[]).includes(
|
|
249
|
+
String(attempt.outcome),
|
|
250
|
+
) &&
|
|
251
|
+
(attempt.duration_ms === undefined ||
|
|
252
|
+
(Number.isInteger(attempt.duration_ms) &&
|
|
253
|
+
Number(attempt.duration_ms) >= 0))
|
|
254
|
+
);
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
function validReceiptProofResult(value: unknown): boolean {
|
|
259
|
+
const row = isRecord(value) ? value : null;
|
|
260
|
+
if (!row) return false;
|
|
261
|
+
return (
|
|
262
|
+
nonEmptyString(row.symbol_id) &&
|
|
263
|
+
nonEmptyString(row.target) &&
|
|
264
|
+
(PROOF_RESULT_OUTCOMES as readonly string[]).includes(
|
|
265
|
+
String(row.outcome),
|
|
266
|
+
) &&
|
|
267
|
+
(["native_case", "aggregate_run"] as readonly string[]).includes(
|
|
268
|
+
String(row.binding),
|
|
269
|
+
) &&
|
|
270
|
+
(row.native_id === undefined || nonEmptyString(row.native_id)) &&
|
|
271
|
+
validAttempts(row.attempts)
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
function validFingerprintComponents(value: unknown): boolean {
|
|
276
|
+
const row = isRecord(value) ? value : null;
|
|
277
|
+
if (!row) return false;
|
|
278
|
+
return (
|
|
279
|
+
hex64(row.contract) &&
|
|
280
|
+
hex64(row.integration) &&
|
|
281
|
+
hex64(row.command) &&
|
|
282
|
+
hex64(row.bindings) &&
|
|
283
|
+
hex64(row.producer)
|
|
284
|
+
);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/** Structural validation of one kibi.proof-receipt.v1 entry. */
|
|
288
|
+
export function validProofReceiptShape(
|
|
289
|
+
testId: string,
|
|
290
|
+
receipt: unknown,
|
|
291
|
+
): boolean {
|
|
292
|
+
const row = isRecord(receipt) ? receipt : null;
|
|
293
|
+
if (!row) return false;
|
|
294
|
+
if (row.version !== PROOF_RECEIPT_VERSION) return false;
|
|
295
|
+
if (
|
|
296
|
+
typeof row.receipt_id !== "string" ||
|
|
297
|
+
!/^PR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$/.test(row.receipt_id)
|
|
298
|
+
)
|
|
299
|
+
return false;
|
|
300
|
+
if (row.test_id !== testId) return false;
|
|
301
|
+
if (
|
|
302
|
+
!(["unit", "integration", "end_to_end"] as readonly string[]).includes(
|
|
303
|
+
String(row.scope),
|
|
304
|
+
)
|
|
305
|
+
)
|
|
306
|
+
return false;
|
|
307
|
+
if (
|
|
308
|
+
!(PROOF_RECEIPT_OUTCOMES as readonly string[]).includes(String(row.outcome))
|
|
309
|
+
)
|
|
310
|
+
return false;
|
|
311
|
+
if (!hex64(row.code_snapshot) || !hex64(row.environment_hash)) return false;
|
|
312
|
+
if (!hex64(row.artifact_digest)) return false;
|
|
313
|
+
if (!hex64(row.contract_hash) || !hex64(row.fingerprint)) return false;
|
|
314
|
+
if (
|
|
315
|
+
row.binding_hash !== undefined &&
|
|
316
|
+
(typeof row.binding_hash !== "string" || !hex64(row.binding_hash))
|
|
317
|
+
) {
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
320
|
+
if (!validFingerprintComponents(row.fingerprint_components)) return false;
|
|
321
|
+
if (!nonEmptyString(row.integration_id)) return false;
|
|
322
|
+
const producer = isRecord(row.producer) ? row.producer : null;
|
|
323
|
+
if (!producer || !nonEmptyString(producer.name)) return false;
|
|
324
|
+
if (producer.version !== undefined && !nonEmptyString(producer.version))
|
|
325
|
+
return false;
|
|
326
|
+
if (
|
|
327
|
+
!Array.isArray(row.command_argv) ||
|
|
328
|
+
row.command_argv.length === 0 ||
|
|
329
|
+
!row.command_argv.every((argument) => nonEmptyString(argument))
|
|
330
|
+
)
|
|
331
|
+
return false;
|
|
332
|
+
if (
|
|
333
|
+
!(PROOF_RUN_OUTCOMES as readonly string[]).includes(String(row.run_outcome))
|
|
334
|
+
)
|
|
335
|
+
return false;
|
|
336
|
+
if (
|
|
337
|
+
!Array.isArray(row.proof_results) ||
|
|
338
|
+
!row.proof_results.every(validReceiptProofResult)
|
|
339
|
+
)
|
|
340
|
+
return false;
|
|
341
|
+
if (row.gaps !== undefined) {
|
|
342
|
+
if (!Array.isArray(row.gaps)) return false;
|
|
343
|
+
if (
|
|
344
|
+
!row.gaps.every(
|
|
345
|
+
(gap) =>
|
|
346
|
+
isRecord(gap) &&
|
|
347
|
+
nonEmptyString(gap.symbol_id) &&
|
|
348
|
+
nonEmptyString(gap.target) &&
|
|
349
|
+
nonEmptyString(gap.reason),
|
|
350
|
+
)
|
|
351
|
+
)
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
const startedAt = timestamp(row.started_at);
|
|
355
|
+
const finishedAt = timestamp(row.finished_at);
|
|
356
|
+
if (startedAt === null || finishedAt === null) return false;
|
|
357
|
+
return !finishedAtPrecedesStartedAt(startedAt, finishedAt);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* Full-history validation for proof_receipts: unique ids, per-test binding,
|
|
362
|
+
* supported scope, ordered timestamps, and structurally valid v1 entries.
|
|
363
|
+
*/
|
|
364
|
+
export function proofReceiptHistoryErrors(
|
|
365
|
+
testId: string,
|
|
366
|
+
verificationScope: unknown,
|
|
367
|
+
receipts: readonly Readonly<Record<string, unknown>>[],
|
|
368
|
+
): readonly string[] {
|
|
369
|
+
const errors: string[] = [];
|
|
370
|
+
if (receipts.length > 0 && typeof verificationScope !== "string") {
|
|
371
|
+
errors.push(
|
|
372
|
+
"verification_scope is required when proof_receipts are present",
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
const receiptIds = new Set<string>();
|
|
376
|
+
for (const [index, receipt] of receipts.entries()) {
|
|
377
|
+
const prefix = `proof_receipts[${index}]`;
|
|
378
|
+
const receiptId = receipt.receipt_id;
|
|
379
|
+
if (typeof receiptId === "string") {
|
|
380
|
+
if (receiptIds.has(receiptId)) {
|
|
381
|
+
errors.push(`${prefix}.receipt_id duplicates '${receiptId}'`);
|
|
382
|
+
}
|
|
383
|
+
receiptIds.add(receiptId);
|
|
384
|
+
}
|
|
385
|
+
if (receipt.test_id !== testId) {
|
|
386
|
+
errors.push(`${prefix}.test_id must equal '${testId}'`);
|
|
387
|
+
}
|
|
388
|
+
if (!validProofReceiptShape(testId, receipt)) {
|
|
389
|
+
errors.push(
|
|
390
|
+
`${prefix} must be a structurally valid kibi.proof-receipt.v1 bound to '${testId}'`,
|
|
391
|
+
);
|
|
392
|
+
continue;
|
|
393
|
+
}
|
|
394
|
+
const finishedAt = timestamp(receipt.finished_at);
|
|
395
|
+
if (
|
|
396
|
+
finishedAt !== null &&
|
|
397
|
+
index > 0 &&
|
|
398
|
+
timestamp(receipts[index - 1]?.finished_at) !== null &&
|
|
399
|
+
finishedAt <= (timestamp(receipts[index - 1]?.finished_at) as number)
|
|
400
|
+
) {
|
|
401
|
+
errors.push(
|
|
402
|
+
`${prefix}.finished_at must be strictly later than the previous receipt`,
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return errors;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/** The current receipt must match the live scope, contract hash, and fingerprint. */
|
|
410
|
+
export function proofReceiptCurrentBindingErrors(
|
|
411
|
+
testId: string,
|
|
412
|
+
verificationScope: unknown,
|
|
413
|
+
receipt: Readonly<Record<string, unknown>>,
|
|
414
|
+
contract?: ProofContract,
|
|
415
|
+
fingerprint?: string,
|
|
416
|
+
): readonly string[] {
|
|
417
|
+
const errors: string[] = [];
|
|
418
|
+
if (receipt.test_id !== testId) {
|
|
419
|
+
errors.push(`proof receipt test_id must equal '${testId}'`);
|
|
420
|
+
}
|
|
421
|
+
if (typeof verificationScope !== "string") {
|
|
422
|
+
errors.push("verification_scope is required for current receipt evidence");
|
|
423
|
+
} else if (receipt.scope !== verificationScope) {
|
|
424
|
+
errors.push(
|
|
425
|
+
`proof receipt scope must equal the current verification_scope '${verificationScope}'`,
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
if (contract !== undefined) {
|
|
429
|
+
if (typeof receipt.contract_hash === "string") {
|
|
430
|
+
const expectedHash = proofContractHash(contract);
|
|
431
|
+
if (receipt.contract_hash !== expectedHash) {
|
|
432
|
+
errors.push(
|
|
433
|
+
"proof receipt contract_hash does not match the current proof_contract",
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
if (
|
|
438
|
+
fingerprint !== undefined &&
|
|
439
|
+
typeof receipt.fingerprint === "string" &&
|
|
440
|
+
receipt.fingerprint !== fingerprint
|
|
441
|
+
) {
|
|
442
|
+
errors.push(
|
|
443
|
+
"proof receipt fingerprint does not match the current effective execution fingerprint",
|
|
444
|
+
);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
return errors;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Hard schema cap on stored receipts per test. Ingest appends past this cap by
|
|
452
|
+
* rotating: drop exactly the oldest receipts so the newest evidence stays
|
|
453
|
+
* bound to the test without ever exceeding the cap.
|
|
454
|
+
*/
|
|
455
|
+
export const MAX_PROOF_RECEIPTS = 50;
|
|
456
|
+
|
|
457
|
+
function isCapRotation(
|
|
458
|
+
previous: readonly Readonly<Record<string, unknown>>[],
|
|
459
|
+
next: readonly Readonly<Record<string, unknown>>[],
|
|
460
|
+
): boolean {
|
|
461
|
+
if (next.length !== MAX_PROOF_RECEIPTS) return false;
|
|
462
|
+
if (previous.length < MAX_PROOF_RECEIPTS) return false;
|
|
463
|
+
const preserved = MAX_PROOF_RECEIPTS - 1;
|
|
464
|
+
for (let index = 0; index < preserved; index++) {
|
|
465
|
+
if (
|
|
466
|
+
canonicalJson(previous[previous.length - preserved + index]) !==
|
|
467
|
+
canonicalJson(next[index])
|
|
468
|
+
) {
|
|
469
|
+
return false;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
return true;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
export function appendOnlyProofReceiptHistoryErrors(
|
|
476
|
+
previous: readonly Readonly<Record<string, unknown>>[],
|
|
477
|
+
next: readonly Readonly<Record<string, unknown>>[] | undefined,
|
|
478
|
+
): readonly string[] {
|
|
479
|
+
if (previous.length === 0) return [];
|
|
480
|
+
if (next === undefined) {
|
|
481
|
+
return [
|
|
482
|
+
"proof_receipts is append-only and cannot be removed from an existing test",
|
|
483
|
+
];
|
|
484
|
+
}
|
|
485
|
+
if (isCapRotation(previous, next)) return [];
|
|
486
|
+
if (next.length < previous.length) {
|
|
487
|
+
return [
|
|
488
|
+
`proof_receipts is append-only: expected at least ${previous.length} historical receipt(s), received ${next.length}`,
|
|
489
|
+
];
|
|
490
|
+
}
|
|
491
|
+
for (const [index, receipt] of previous.entries()) {
|
|
492
|
+
if (canonicalJson(next[index]) !== canonicalJson(receipt)) {
|
|
493
|
+
return [
|
|
494
|
+
`proof_receipts is append-only: historical receipt at index ${index} was changed, removed, or reordered`,
|
|
495
|
+
];
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
return [];
|
|
499
|
+
}
|
|
@@ -16,9 +16,13 @@
|
|
|
16
16
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
import {
|
|
20
|
+
PROOF_BINDINGS_SCHEMA,
|
|
21
|
+
PROOF_CONTRACT_SCHEMA,
|
|
22
|
+
} from "../proof-protocol.js";
|
|
23
|
+
import { PROOF_RECEIPT_SCHEMA } from "../proof-receipt.js";
|
|
19
24
|
// Typed fact field enums per proposal
|
|
20
25
|
import { SYMBOL_ROLES, type SymbolRole } from "../symbol-granularity.js";
|
|
21
|
-
import { VERIFICATION_RECEIPT_SCHEMA } from "../verification-receipt.js";
|
|
22
26
|
|
|
23
27
|
type FactKind =
|
|
24
28
|
| "subject"
|
|
@@ -356,6 +360,17 @@ const entitySchema: Record<string, unknown> = {
|
|
|
356
360
|
severity: { type: "string" },
|
|
357
361
|
links: { type: "array", items: { type: "string" } },
|
|
358
362
|
text_ref: { type: "string" },
|
|
363
|
+
proof_exempt: {
|
|
364
|
+
type: "boolean",
|
|
365
|
+
description:
|
|
366
|
+
"Requirement-only. Marks a current requirement as intentionally outside E2E-proof scope; requires proof_exempt_reason.",
|
|
367
|
+
},
|
|
368
|
+
proof_exempt_reason: {
|
|
369
|
+
type: "string",
|
|
370
|
+
minLength: 1,
|
|
371
|
+
description:
|
|
372
|
+
"Requirement-only. Required when proof_exempt is true; surfaces as the applicability reason in coverage rows.",
|
|
373
|
+
},
|
|
359
374
|
semantic_text: {
|
|
360
375
|
type: "string",
|
|
361
376
|
description:
|
|
@@ -439,6 +454,7 @@ const entitySchema: Record<string, unknown> = {
|
|
|
439
454
|
"module-level-behavior",
|
|
440
455
|
"extractor-miss",
|
|
441
456
|
"legacy-link",
|
|
457
|
+
"test-suite",
|
|
442
458
|
],
|
|
443
459
|
},
|
|
444
460
|
symbol_role: {
|
|
@@ -453,10 +469,11 @@ const entitySchema: Record<string, unknown> = {
|
|
|
453
469
|
type: "string",
|
|
454
470
|
enum: ["internal", "consumer"] satisfies VerificationPerspective[],
|
|
455
471
|
},
|
|
456
|
-
|
|
472
|
+
proof_contract: PROOF_CONTRACT_SCHEMA,
|
|
473
|
+
proof_bindings: PROOF_BINDINGS_SCHEMA,
|
|
474
|
+
proof_receipts: {
|
|
457
475
|
type: "array",
|
|
458
|
-
|
|
459
|
-
items: VERIFICATION_RECEIPT_SCHEMA,
|
|
476
|
+
items: PROOF_RECEIPT_SCHEMA,
|
|
460
477
|
},
|
|
461
478
|
type: {
|
|
462
479
|
type: "string",
|
|
@@ -597,13 +614,15 @@ const entitySchema: Record<string, unknown> = {
|
|
|
597
614
|
anyOf: [
|
|
598
615
|
{ required: ["verification_scope"] },
|
|
599
616
|
{ required: ["verification_perspective"] },
|
|
600
|
-
{ required: ["
|
|
617
|
+
{ required: ["proof_contract"] },
|
|
618
|
+
{ required: ["proof_bindings"] },
|
|
619
|
+
{ required: ["proof_receipts"] },
|
|
601
620
|
],
|
|
602
621
|
},
|
|
603
622
|
},
|
|
604
623
|
},
|
|
605
624
|
{
|
|
606
|
-
if: { required: ["
|
|
625
|
+
if: { required: ["proof_receipts"] },
|
|
607
626
|
// biome-ignore lint/suspicious/noThenProperty: JSON Schema conditional keyword.
|
|
608
627
|
then: { required: ["verification_scope"] },
|
|
609
628
|
},
|
|
@@ -620,6 +639,8 @@ const entitySchema: Record<string, unknown> = {
|
|
|
620
639
|
{ required: ["semantic_inventory_version"] },
|
|
621
640
|
{ required: ["semantic_source_field"] },
|
|
622
641
|
{ required: ["semantic_source_hash"] },
|
|
642
|
+
{ required: ["proof_exempt"] },
|
|
643
|
+
{ required: ["proof_exempt_reason"] },
|
|
623
644
|
],
|
|
624
645
|
},
|
|
625
646
|
},
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: kibi-bootstrap
|
|
3
|
+
name: kibi-bootstrap
|
|
4
|
+
description: Bootstrap Kibi from the current Git checkout with exact Git attachment, preview approval, source-first writes, and repair-safe completion.
|
|
5
|
+
version: 3.0.0
|
|
6
|
+
kibiCompatibility: ">=1.0.0"
|
|
7
|
+
tags:
|
|
8
|
+
- kibi
|
|
9
|
+
- bootstrap
|
|
10
|
+
- source-first
|
|
11
|
+
- agent-guidance
|
|
12
|
+
resources:
|
|
13
|
+
- resources/bootstrap.md
|
|
14
|
+
- resources/branch-lifecycle.md
|
|
15
|
+
- resources/source-authoring.md
|
|
16
|
+
- resources/operation-access.md
|
|
17
|
+
---
|
|
18
|
+
## Goal
|
|
19
|
+
|
|
20
|
+
Seed branch-local Kibi knowledge for an attached but thin repository without
|
|
21
|
+
creating a parallel human-maintained ticket system. Ask at most four bounded
|
|
22
|
+
context questions only when the planner says repository evidence is
|
|
23
|
+
insufficient; agents own deterministic translation and humans resolve genuine
|
|
24
|
+
ambiguity. A seeded repository hands off to the normal Kibi workflow.
|
|
25
|
+
|
|
26
|
+
## Interface and preview
|
|
27
|
+
|
|
28
|
+
Use the visible approved MCP surface or the trusted project-local CLI as equal
|
|
29
|
+
peer interfaces. If neither is available, stop. Run `kb_plan_bootstrap` (or
|
|
30
|
+
`plan-bootstrap --input`) read-only. If it returns `needs_context`, ask only its
|
|
31
|
+
bounded questions (never more than four), then rerun the planner. Show the
|
|
32
|
+
complete returned `structuredContent.plan`, including its canonical hash, and
|
|
33
|
+
get explicit approval before any write. Pass that plan object unchanged to
|
|
34
|
+
`kb_apply_plan`; do not reconstruct it from preview fields.
|
|
35
|
+
|
|
36
|
+
For CLI JSON, use the trusted route with `--input` (for example
|
|
37
|
+
`printf '%s\n' '{}' | kibi status --input -`); MCP and CLI are semantic peers.
|
|
38
|
+
Read the branch-lifecycle and source-authoring resources before migration,
|
|
39
|
+
source writes, or repair actions.
|
|
40
|
+
|
|
41
|
+
## Apply and verify
|
|
42
|
+
|
|
43
|
+
Apply the approved `kibi.bootstrap-plan.v1` by calling `kb_apply_plan` with the
|
|
44
|
+
exact plan and approved hash. The operation owns dependency ordering,
|
|
45
|
+
source-first writes, sequential mutation, and recovery journaling. Direct
|
|
46
|
+
`kb_upsert` is forbidden for every kibi-bootstrap task, including after
|
|
47
|
+
approval; never replay plan actions manually. Use `kb_delete` only for an
|
|
48
|
+
approved hash-bound deletion plan; evolve requirements with `supersedes`.
|
|
49
|
+
Finish with `kb_check` and `kb_status`.
|
|
50
|
+
|
|
51
|
+
Consume the versioned `kibiProtocol: 1` result envelope: inspect `status`, `effects`,
|
|
52
|
+
`diagnostics`, and `nextActions`. On `committed_with_repairs`, execute required
|
|
53
|
+
repair actions and never retry the original mutation.
|
|
54
|
+
|
|
55
|
+
Kibi may author tracked Markdown/YAML/manifests and relationship shards
|
|
56
|
+
transactionally, but never Git-stages or commits them. Never read or edit
|
|
57
|
+
`.kb` directly. Missing exact branch stores are compiled from this checkout's
|
|
58
|
+
tracked sources by `kibi sync`; Kibi does not copy another branch's store.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Bootstrap resource
|
|
2
|
+
|
|
3
|
+
`kb_plan_bootstrap` is read-only and returns `kibi.bootstrap-plan.v1`. Review
|
|
4
|
+
candidate evidence, exact actions, dependencies, expected snapshots, source
|
|
5
|
+
hashes, bounded questions, diagnostics, and the canonical `planHash` before
|
|
6
|
+
approving. A preview does not authorize source edits. After approval, pass the
|
|
7
|
+
unchanged returned `structuredContent.plan` to `kb_apply_plan` once with its
|
|
8
|
+
approved hash; inspect its typed result
|
|
9
|
+
and follow `nextActions` if it returns `committed_with_repairs`. Direct
|
|
10
|
+
`kb_upsert` is forbidden for every bootstrap task; never manually replay the
|
|
11
|
+
plan through it.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Branch lifecycle
|
|
2
|
+
|
|
3
|
+
Use the exact `KIBI_BRANCH` value or Git symbolic HEAD. Hashed stores carry a
|
|
4
|
+
matching `branch.json`; missing stores are compiled from tracked sources by
|
|
5
|
+
`kibi sync`. Legacy literal stores require explicit migration. Kibi never
|
|
6
|
+
copies stores between branches or resolves Git conflicts. Read the preview,
|
|
7
|
+
approval hash, quarantine, restore, and purge details before lifecycle work.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Source authoring
|
|
2
|
+
|
|
3
|
+
Tracked documents, manifests, and relationship shards are authoritative.
|
|
4
|
+
Kibi may write them transactionally but does not stage or commit them. Use
|
|
5
|
+
`document.path` for ambiguous new targets, preserve existing bodies when the
|
|
6
|
+
body is omitted, and use hash-bound deletion plans. On
|
|
7
|
+
`committed_with_repairs`, follow typed `nextActions` and never retry the
|
|
8
|
+
original mutation.
|