kibi-cli 0.18.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-json-command.d.ts +1 -2
- package/dist/cli-json-command.d.ts.map +1 -1
- package/dist/cli-json-command.js +2 -34
- package/dist/cli-operation-loader.d.ts +3 -0
- package/dist/cli-operation-loader.d.ts.map +1 -0
- package/dist/cli-operation-loader.js +91 -0
- package/dist/cli-operation-metadata.d.ts +94 -0
- package/dist/cli-operation-metadata.d.ts.map +1 -0
- package/dist/cli-operation-metadata.js +121 -0
- package/dist/cli-protocol.d.ts +1 -1
- package/dist/cli-protocol.d.ts.map +1 -1
- package/dist/cli-protocol.js +42 -11
- package/dist/cli-register-foundation.d.ts.map +1 -1
- package/dist/cli-register-foundation.js +28 -19
- package/dist/cli-register-json.d.ts +3 -0
- package/dist/cli-register-json.d.ts.map +1 -0
- package/dist/cli-register-json.js +35 -0
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +60 -13
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +23 -14
- package/dist/cli-register-skills.d.ts.map +1 -1
- package/dist/cli-register-skills.js +8 -6
- package/dist/cli-register-verification.d.ts +3 -0
- package/dist/cli-register-verification.d.ts.map +1 -0
- package/dist/cli-register-verification.js +16 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/commands/aggregated-checks.d.ts +1 -2
- package/dist/commands/aggregated-checks.d.ts.map +1 -1
- package/dist/commands/aggregated-checks.js +14 -9
- package/dist/commands/branch.d.ts +36 -0
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +371 -40
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +48 -77
- package/dist/commands/coverage.js +1 -1
- package/dist/commands/discovery-shared.d.ts +2 -1
- package/dist/commands/discovery-shared.d.ts.map +1 -1
- package/dist/commands/discovery-shared.js +38 -25
- package/dist/commands/doctor.d.ts +4 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +259 -24
- package/dist/commands/engine.d.ts +8 -0
- package/dist/commands/engine.d.ts.map +1 -0
- package/dist/commands/engine.js +103 -0
- package/dist/commands/gaps.js +1 -1
- package/dist/commands/gc.d.ts +5 -2
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +140 -71
- package/dist/commands/github-init.d.ts +56 -0
- package/dist/commands/github-init.d.ts.map +1 -0
- package/dist/commands/github-init.js +310 -0
- package/dist/commands/graph.js +1 -1
- package/dist/commands/init-helpers.d.ts +1 -1
- package/dist/commands/init-helpers.d.ts.map +1 -1
- package/dist/commands/init-helpers.js +73 -25
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +79 -24
- package/dist/commands/legacy-storage-migration.d.ts +54 -0
- package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
- package/dist/commands/legacy-storage-migration.js +277 -0
- package/dist/commands/migrate.d.ts +7 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +244 -91
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +3 -1
- package/dist/commands/report.d.ts +24 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +191 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +3 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -1
- package/dist/commands/sync/cache.d.ts +26 -3
- package/dist/commands/sync/cache.d.ts.map +1 -1
- package/dist/commands/sync/cache.js +141 -5
- package/dist/commands/sync/discovery.d.ts +23 -2
- package/dist/commands/sync/discovery.d.ts.map +1 -1
- package/dist/commands/sync/discovery.js +196 -15
- package/dist/commands/sync/extraction.d.ts +8 -1
- package/dist/commands/sync/extraction.d.ts.map +1 -1
- package/dist/commands/sync/extraction.js +38 -4
- package/dist/commands/sync/manifest.d.ts +8 -5
- package/dist/commands/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +142 -39
- package/dist/commands/sync/persistence.d.ts +10 -1
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +223 -44
- package/dist/commands/sync/staging.d.ts +10 -1
- package/dist/commands/sync/staging.d.ts.map +1 -1
- package/dist/commands/sync/staging.js +84 -1
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +710 -48
- package/dist/commands/verify.d.ts +10 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +126 -0
- package/dist/diagnostics.d.ts +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/engine-daemon.d.ts +3 -0
- package/dist/engine-daemon.d.ts.map +1 -0
- package/dist/engine-daemon.js +34 -0
- package/dist/engine.d.ts +156 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1625 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +5 -6
- package/dist/extractors/manifest.d.ts +8 -1
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +51 -9
- package/dist/extractors/markdown.d.ts +2 -1
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +21 -3
- package/dist/extractors/playwright-cases.d.ts +24 -0
- package/dist/extractors/playwright-cases.d.ts.map +1 -0
- package/dist/extractors/playwright-cases.js +126 -0
- package/dist/extractors/relationships.d.ts +2 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +16 -17
- package/dist/extractors/symbol-coordinates.d.ts +81 -3
- package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
- package/dist/extractors/symbol-coordinates.js +389 -51
- package/dist/extractors/symbols-coordinator.js +11 -1
- package/dist/intent-search.d.ts +60 -0
- package/dist/intent-search.d.ts.map +1 -0
- package/dist/intent-search.js +433 -0
- package/dist/operations/bootstrap/activation.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/activation.js +48 -31
- package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
- package/dist/operations/bootstrap/candidates.d.ts +4 -0
- package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
- package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
- package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
- package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
- package/dist/operations/bootstrap/generate.d.ts +8 -0
- package/dist/operations/bootstrap/generate.d.ts.map +1 -0
- package/dist/operations/bootstrap/generate.js +204 -0
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
- package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/guidance.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/guidance.js +2 -0
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
- package/dist/operations/bootstrap/presentation.d.ts +15 -0
- package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
- package/dist/operations/bootstrap/presentation.js +177 -0
- package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
- package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
- package/dist/operations/bootstrap/types.d.ts.map +1 -0
- package/dist/operations/bootstrap/types.js +25 -0
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
- package/dist/operations/modeling/model-requirement.js +4 -17
- package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
- package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-applicability.js +276 -0
- package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
- package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-applyplan.js +100 -3
- package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
- package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-bindings.js +122 -0
- package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-catalog-4.js +155 -0
- package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference-1.js +8 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
- package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
- package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
- package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-inference.js +4 -0
- package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-loader.js +7 -0
- package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
- package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-ranker.js +156 -24
- package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-score-3.js +6 -0
- package/dist/operations/modeling/predicate-types.d.ts +34 -0
- package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
- package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
- package/dist/operations/modeling/predicate-utils.js +2 -0
- package/dist/operations/modeling/suggest-predicates.d.ts +1 -1
- package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
- package/dist/operations/modeling/suggest-predicates.js +170 -32
- package/dist/operations/mutation/delete.d.ts.map +1 -1
- package/dist/operations/mutation/delete.js +415 -19
- package/dist/operations/mutation/entity-projection.d.ts +11 -0
- package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
- package/dist/operations/mutation/entity-projection.js +14 -0
- package/dist/operations/mutation/relationships.d.ts +10 -0
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +71 -1
- package/dist/operations/mutation/serialization.d.ts.map +1 -1
- package/dist/operations/mutation/serialization.js +1 -0
- package/dist/operations/mutation/source-authoring.d.ts +61 -0
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
- package/dist/operations/mutation/source-authoring.js +543 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts +51 -0
- package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
- package/dist/operations/mutation/symbol-compiler-lock.js +274 -0
- package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-granularity.js +34 -3
- package/dist/operations/mutation/symbol-refresh.d.ts +18 -1
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +225 -63
- package/dist/operations/mutation/types.d.ts +57 -1
- package/dist/operations/mutation/types.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.js +363 -24
- package/dist/operations/mutation/validation.d.ts.map +1 -1
- package/dist/operations/mutation/validation.js +1 -0
- package/dist/operations/planning/apply-plan.d.ts +117 -0
- package/dist/operations/planning/apply-plan.d.ts.map +1 -0
- package/dist/operations/planning/apply-plan.js +1437 -0
- package/dist/operations/planning/compile-intent.d.ts +106 -0
- package/dist/operations/planning/compile-intent.d.ts.map +1 -0
- package/dist/operations/planning/compile-intent.js +562 -0
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analyze-prose.js +6 -2
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +15 -2
- package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
- package/dist/operations/semantic-advisor/types.d.ts +13 -5
- package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
- package/dist/operations/verification/ingest-verification.d.ts +29 -0
- package/dist/operations/verification/ingest-verification.d.ts.map +1 -0
- package/dist/operations/verification/ingest-verification.js +192 -0
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +2 -1
- package/dist/prolog.d.ts +8 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +66 -16
- package/dist/public/branch-resolver.d.ts +1 -0
- package/dist/public/branch-resolver.d.ts.map +1 -1
- package/dist/public/branch-resolver.js +1 -0
- package/dist/public/check-types.d.ts +2 -2
- package/dist/public/check-types.d.ts.map +1 -1
- package/dist/public/check-types.js +16 -16
- package/dist/public/diagnostic-usage.d.ts.map +1 -1
- package/dist/public/diagnostic-usage.js +69 -1
- package/dist/public/distribution-parity.d.ts +1 -1
- package/dist/public/distribution-parity.d.ts.map +1 -1
- package/dist/public/distribution-parity.js +1 -0
- package/dist/public/ignore-policy.d.ts.map +1 -1
- package/dist/public/ignore-policy.js +16 -4
- package/dist/public/impact/coverage-depth-quality.d.ts +6 -1
- package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
- package/dist/public/impact/coverage-depth-quality.js +21 -3
- package/dist/public/impact/full-kb-quality.d.ts +4 -2
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +61 -1
- package/dist/public/impact/manifest.d.ts.map +1 -1
- package/dist/public/impact/manifest.js +2 -5
- package/dist/public/operational-artifacts.d.ts.map +1 -1
- package/dist/public/operational-artifacts.js +7 -1
- package/dist/public/operations/catalog.d.ts +682 -67
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +126 -4
- package/dist/public/operations/check-executor.d.ts +2 -2
- package/dist/public/operations/check-executor.d.ts.map +1 -1
- package/dist/public/operations/check-executor.js +72 -13
- package/dist/public/operations/check-format-shared.d.ts +3 -0
- package/dist/public/operations/check-format-shared.d.ts.map +1 -1
- package/dist/public/operations/check-format-shared.js +3 -0
- package/dist/public/operations/check-helpers.d.ts +27 -2
- package/dist/public/operations/check-helpers.d.ts.map +1 -1
- package/dist/public/operations/check-helpers.js +62 -26
- package/dist/public/operations/contracts.d.ts +11 -0
- package/dist/public/operations/contracts.d.ts.map +1 -0
- package/dist/public/operations/contracts.js +325 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +3 -2
- package/dist/public/operations/discovery-executors.d.ts +37 -1
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +246 -9
- package/dist/public/operations/index.d.ts +9 -4
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +8 -3
- package/dist/public/operations/migration-plan.d.ts +101 -0
- package/dist/public/operations/migration-plan.d.ts.map +1 -0
- package/dist/public/operations/migration-plan.js +537 -0
- package/dist/public/operations/node-ports.d.ts.map +1 -1
- package/dist/public/operations/node-ports.js +68 -8
- package/dist/public/operations/prolog-json.d.ts +14 -0
- package/dist/public/operations/prolog-json.d.ts.map +1 -1
- package/dist/public/operations/prolog-json.js +55 -6
- package/dist/public/operations/repair-plan.d.ts.map +1 -1
- package/dist/public/operations/repair-plan.js +1 -0
- package/dist/public/operations/result-envelope.d.ts +13 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -0
- package/dist/public/operations/result-envelope.js +104 -0
- package/dist/public/operations/runtime-types.d.ts +126 -5
- package/dist/public/operations/runtime-types.d.ts.map +1 -1
- package/dist/public/operations/source-relationship-parity.d.ts +13 -0
- package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
- package/dist/public/operations/source-relationship-parity.js +162 -0
- package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
- package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
- package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
- package/dist/public/operations/specs/check.d.ts +4 -4
- package/dist/public/operations/specs/check.d.ts.map +1 -1
- package/dist/public/operations/specs/check.js +4 -3
- package/dist/public/operations/specs/discovery.d.ts +87 -3
- package/dist/public/operations/specs/discovery.d.ts.map +1 -1
- package/dist/public/operations/specs/discovery.js +53 -3
- package/dist/public/operations/specs/modeling.d.ts +3 -3
- package/dist/public/operations/specs/modeling.js +3 -3
- package/dist/public/operations/specs/mutation-schemas.d.ts +190 -47
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +3 -1
- package/dist/public/operations/specs/mutation.d.ts +42 -2
- package/dist/public/operations/specs/mutation.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation.js +26 -2
- package/dist/public/operations/specs/planning.d.ts +270 -0
- package/dist/public/operations/specs/planning.d.ts.map +1 -0
- package/dist/public/operations/specs/planning.js +191 -0
- package/dist/public/operations/specs/reporting.d.ts +4 -1
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +46 -1
- package/dist/public/operations/specs/upsert.d.ts +204 -47
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/specs/upsert.js +9 -0
- package/dist/public/operations/specs/verification.d.ts +78 -0
- package/dist/public/operations/specs/verification.d.ts.map +1 -0
- package/dist/public/operations/specs/verification.js +62 -0
- package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
- package/dist/public/operations/symbol-repair-plan.js +123 -0
- package/dist/public/operations/types.d.ts +52 -1
- package/dist/public/operations/types.d.ts.map +1 -1
- package/dist/public/playwright-case-id.d.ts +8 -0
- package/dist/public/playwright-case-id.d.ts.map +1 -0
- package/dist/public/playwright-case-id.js +25 -0
- package/dist/public/schemas/entity.d.ts.map +1 -1
- package/dist/public/schemas/entity.js +4 -2
- package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/dist/public/skills/kibi-freshness/SKILL.md +40 -10
- package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
- package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/dist/public/skills/kibi-usage/SKILL.md +115 -239
- package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/dist/public/skills/kibi-usage/resources/workflows.md +56 -3
- package/dist/public/symbol-granularity.d.ts +1 -1
- package/dist/public/symbol-granularity.d.ts.map +1 -1
- package/dist/public/symbol-granularity.js +1 -0
- package/dist/public/telemetry-acceptance.d.ts +7 -0
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +8 -1
- package/dist/public/telemetry-remediation.js +1 -1
- package/dist/public/verification-receipt.d.ts +206 -39
- package/dist/public/verification-receipt.d.ts.map +1 -1
- package/dist/public/verification-receipt.js +171 -4
- package/dist/relationships/shards.d.ts +16 -0
- package/dist/relationships/shards.d.ts.map +1 -1
- package/dist/relationships/shards.js +87 -2
- package/dist/report/brand.d.ts +19 -0
- package/dist/report/brand.d.ts.map +1 -0
- package/dist/report/brand.js +112 -0
- package/dist/report/html-report.d.ts +19 -0
- package/dist/report/html-report.d.ts.map +1 -0
- package/dist/report/html-report.js +963 -0
- package/dist/report/relative-time.d.ts +4 -0
- package/dist/report/relative-time.d.ts.map +1 -0
- package/dist/report/relative-time.js +46 -0
- package/dist/report/report-view.d.ts +17 -0
- package/dist/report/report-view.d.ts.map +1 -0
- package/dist/report/report-view.js +33 -0
- package/dist/report/repository.d.ts +35 -0
- package/dist/report/repository.d.ts.map +1 -0
- package/dist/report/repository.js +151 -0
- package/dist/runtime/cli-runtime.d.ts.map +1 -1
- package/dist/runtime/cli-runtime.js +98 -42
- package/dist/schemas/entity.schema.json +1148 -273
- package/dist/traceability/evidence-model.d.ts +2 -2
- package/dist/traceability/evidence-model.d.ts.map +1 -1
- package/dist/traceability/evidence-model.js +2 -2
- package/dist/traceability/git-staged.d.ts.map +1 -1
- package/dist/traceability/git-staged.js +15 -40
- package/dist/traceability/markdown-validate.d.ts.map +1 -1
- package/dist/traceability/markdown-validate.js +12 -7
- package/dist/traceability/staged-impact-contract.d.ts +3 -3
- package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
- package/dist/traceability/staged-impact-contract.js +10 -38
- package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
- package/dist/traceability/staged-symbols-manifest.js +8 -3
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +3 -0
- package/dist/types/entities.d.ts +3 -0
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +24 -10
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +121 -38
- package/dist/utils/branch-store-locator.d.ts +23 -0
- package/dist/utils/branch-store-locator.d.ts.map +1 -0
- package/dist/utils/branch-store-locator.js +90 -0
- package/dist/utils/branch-store.d.ts +15 -0
- package/dist/utils/branch-store.d.ts.map +1 -0
- package/dist/utils/branch-store.js +130 -0
- package/dist/utils/config.d.ts +39 -37
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +107 -119
- package/dist/utils/kb-manifest.d.ts +35 -0
- package/dist/utils/kb-manifest.d.ts.map +1 -0
- package/dist/utils/kb-manifest.js +154 -0
- package/dist/utils/kb-paths.d.ts +54 -0
- package/dist/utils/kb-paths.d.ts.map +1 -0
- package/dist/utils/kb-paths.js +125 -0
- package/dist/utils/manifest-paths.d.ts +4 -4
- package/dist/utils/manifest-paths.d.ts.map +1 -1
- package/dist/utils/manifest-paths.js +8 -56
- package/dist/utils/rule-registry.d.ts +48 -20
- package/dist/utils/rule-registry.d.ts.map +1 -1
- package/dist/utils/rule-registry.js +82 -77
- package/dist/utils/schema-version.d.ts +5 -5
- package/dist/utils/schema-version.d.ts.map +1 -1
- package/dist/utils/schema-version.js +26 -6
- package/dist/utils/strict-modeling.d.ts +0 -4
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +7 -8
- package/dist/verification/playwright-reporter.d.ts +21 -0
- package/dist/verification/playwright-reporter.d.ts.map +1 -0
- package/dist/verification/playwright-reporter.js +114 -0
- package/package.json +51 -8
- package/schema/config.json +2 -2
- package/schema/manifest.json +26 -0
- package/src/public/branch-resolver.ts +1 -0
- package/src/public/check-types.ts +22 -19
- package/src/public/diagnostic-usage.ts +79 -1
- package/src/public/distribution-parity.ts +1 -0
- package/src/public/ignore-policy.ts +16 -10
- package/src/public/impact/coverage-depth-quality.ts +36 -0
- package/src/public/impact/full-kb-quality.ts +118 -5
- package/src/public/impact/manifest.ts +2 -4
- package/src/public/operational-artifacts.ts +9 -1
- package/src/public/operations/catalog.ts +146 -9
- package/src/public/operations/check-executor.ts +102 -15
- package/src/public/operations/check-format-shared.ts +6 -0
- package/src/public/operations/check-helpers.ts +74 -35
- package/src/public/operations/contracts.ts +366 -0
- package/src/public/operations/discovery-entities.ts +3 -2
- package/src/public/operations/discovery-executors.ts +343 -15
- package/src/public/operations/index.ts +9 -4
- package/src/public/operations/migration-plan.ts +740 -0
- package/src/public/operations/node-ports.ts +84 -10
- package/src/public/operations/prolog-json.ts +73 -6
- package/src/public/operations/repair-plan.ts +1 -0
- package/src/public/operations/result-envelope.ts +136 -0
- package/src/public/operations/runtime-types.ts +130 -5
- package/src/public/operations/source-relationship-parity.ts +226 -0
- package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
- package/src/public/operations/specs/check.ts +4 -3
- package/src/public/operations/specs/discovery.ts +57 -3
- package/src/public/operations/specs/modeling.ts +3 -3
- package/src/public/operations/specs/mutation-schemas.ts +6 -1
- package/src/public/operations/specs/mutation.ts +27 -2
- package/src/public/operations/specs/planning.ts +234 -0
- package/src/public/operations/specs/reporting.ts +55 -1
- package/src/public/operations/specs/upsert.ts +10 -0
- package/src/public/operations/specs/verification.ts +78 -0
- package/src/public/operations/symbol-repair-plan.ts +164 -0
- package/src/public/operations/types.ts +62 -1
- package/src/public/playwright-case-id.ts +35 -0
- package/src/public/schemas/entity.ts +7 -2
- package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
- package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
- package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
- package/src/public/skills/kibi-freshness/SKILL.md +40 -10
- package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
- package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
- package/src/public/skills/kibi-traceability/SKILL.md +47 -47
- package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
- package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
- package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
- package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
- package/src/public/skills/kibi-usage/SKILL.md +115 -239
- package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
- package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
- package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
- package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
- package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
- package/src/public/skills/kibi-usage/resources/workflows.md +56 -3
- package/src/public/symbol-granularity.ts +1 -0
- package/src/public/telemetry-acceptance.ts +16 -1
- package/src/public/telemetry-remediation.ts +1 -1
- package/src/public/verification-receipt.ts +248 -6
- package/src/schemas/entity.schema.json +1148 -273
- package/templates/github/kibi-badge.yml +86 -0
- package/templates/github/kibi-report.yml +84 -0
- package/dist/operations/autopilot/activation.d.ts.map +0 -1
- package/dist/operations/autopilot/candidates.d.ts +0 -4
- package/dist/operations/autopilot/discovery.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.d.ts +0 -8
- package/dist/operations/autopilot/generate.d.ts.map +0 -1
- package/dist/operations/autopilot/generate.js +0 -112
- package/dist/operations/autopilot/presentation.d.ts +0 -13
- package/dist/operations/autopilot/presentation.d.ts.map +0 -1
- package/dist/operations/autopilot/presentation.js +0 -91
- package/dist/operations/autopilot/types.d.ts.map +0 -1
- package/dist/operations/autopilot/types.js +0 -8
- package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
- package/dist/public/skills/init-kibi/SKILL.md +0 -62
- package/src/public/skills/init-kibi/SKILL.md +0 -62
- /package/dist/operations/{autopilot → bootstrap}/activation.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
- /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
1
2
|
export const VERIFICATION_RECEIPT_VERSION = "kibi.verification-receipt.v1";
|
|
3
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
4
|
+
export const VERIFICATION_RECEIPT_V2_VERSION = "kibi.verification-receipt.v2";
|
|
5
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
6
|
+
export const VERIFICATION_CONTRACT_VERSION = "kibi.verification-contract.v1";
|
|
2
7
|
export const VERIFICATION_RECEIPT_MAX_AGE_SECONDS = 7 * 24 * 60 * 60;
|
|
3
8
|
export const VERIFICATION_RECEIPT_OUTCOMES = [
|
|
4
9
|
"passed",
|
|
@@ -6,8 +11,10 @@ export const VERIFICATION_RECEIPT_OUTCOMES = [
|
|
|
6
11
|
"errored",
|
|
7
12
|
"cancelled",
|
|
8
13
|
"skipped",
|
|
14
|
+
"timed_out",
|
|
15
|
+
"interrupted",
|
|
9
16
|
];
|
|
10
|
-
|
|
17
|
+
const VERIFICATION_RECEIPT_V1_SCHEMA = {
|
|
11
18
|
type: "object",
|
|
12
19
|
required: [
|
|
13
20
|
"version",
|
|
@@ -42,6 +49,84 @@ export const VERIFICATION_RECEIPT_SCHEMA = {
|
|
|
42
49
|
},
|
|
43
50
|
additionalProperties: false,
|
|
44
51
|
};
|
|
52
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
53
|
+
export const VERIFICATION_CONTRACT_SCHEMA = {
|
|
54
|
+
type: "object",
|
|
55
|
+
required: [
|
|
56
|
+
"version",
|
|
57
|
+
"runner",
|
|
58
|
+
"command_argv",
|
|
59
|
+
"required_case_symbols",
|
|
60
|
+
"required_projects",
|
|
61
|
+
"success_policy",
|
|
62
|
+
],
|
|
63
|
+
properties: {
|
|
64
|
+
version: { type: "string", const: VERIFICATION_CONTRACT_VERSION },
|
|
65
|
+
runner: { type: "string", minLength: 1 },
|
|
66
|
+
command_argv: {
|
|
67
|
+
type: "array",
|
|
68
|
+
minItems: 1,
|
|
69
|
+
items: { type: "string", minLength: 1 },
|
|
70
|
+
},
|
|
71
|
+
required_case_symbols: {
|
|
72
|
+
type: "array",
|
|
73
|
+
items: { type: "string", minLength: 1 },
|
|
74
|
+
uniqueItems: true,
|
|
75
|
+
},
|
|
76
|
+
required_projects: {
|
|
77
|
+
type: "array",
|
|
78
|
+
items: { type: "string", minLength: 1 },
|
|
79
|
+
uniqueItems: true,
|
|
80
|
+
},
|
|
81
|
+
success_policy: {
|
|
82
|
+
type: "string",
|
|
83
|
+
const: "all_required_cases_first_attempt",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
additionalProperties: false,
|
|
87
|
+
};
|
|
88
|
+
const VERIFICATION_RECEIPT_V2_SCHEMA = {
|
|
89
|
+
...VERIFICATION_RECEIPT_V1_SCHEMA,
|
|
90
|
+
required: [
|
|
91
|
+
...VERIFICATION_RECEIPT_V1_SCHEMA.required,
|
|
92
|
+
"command_argv",
|
|
93
|
+
"contract_hash",
|
|
94
|
+
"case_results",
|
|
95
|
+
],
|
|
96
|
+
properties: {
|
|
97
|
+
...VERIFICATION_RECEIPT_V1_SCHEMA.properties,
|
|
98
|
+
version: { type: "string", const: VERIFICATION_RECEIPT_V2_VERSION },
|
|
99
|
+
command_argv: {
|
|
100
|
+
type: "array",
|
|
101
|
+
minItems: 1,
|
|
102
|
+
items: { type: "string", minLength: 1 },
|
|
103
|
+
},
|
|
104
|
+
contract_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
|
|
105
|
+
case_results: {
|
|
106
|
+
type: "array",
|
|
107
|
+
minItems: 1,
|
|
108
|
+
maxItems: 1000,
|
|
109
|
+
items: {
|
|
110
|
+
type: "object",
|
|
111
|
+
required: ["symbol_id", "project", "outcome", "retries", "duration_ms"],
|
|
112
|
+
properties: {
|
|
113
|
+
symbol_id: { type: "string", minLength: 1 },
|
|
114
|
+
project: { type: "string", minLength: 1 },
|
|
115
|
+
outcome: {
|
|
116
|
+
type: "string",
|
|
117
|
+
enum: ["passed", "failed", "timed_out", "skipped", "interrupted"],
|
|
118
|
+
},
|
|
119
|
+
retries: { type: "integer", minimum: 0 },
|
|
120
|
+
duration_ms: { type: "integer", minimum: 0 },
|
|
121
|
+
},
|
|
122
|
+
additionalProperties: false,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
export const VERIFICATION_RECEIPT_SCHEMA = {
|
|
128
|
+
oneOf: [VERIFICATION_RECEIPT_V1_SCHEMA, VERIFICATION_RECEIPT_V2_SCHEMA],
|
|
129
|
+
};
|
|
45
130
|
function timestamp(value) {
|
|
46
131
|
if (typeof value !== "string")
|
|
47
132
|
return null;
|
|
@@ -70,9 +155,8 @@ export function verificationReceiptHistoryErrors(testId, verificationScope, rece
|
|
|
70
155
|
if (receipt.test_id !== testId) {
|
|
71
156
|
errors.push(`${prefix}.test_id must equal '${testId}'`);
|
|
72
157
|
}
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
errors.push(`${prefix}.scope must equal the test verification_scope '${verificationScope}'`);
|
|
158
|
+
if (!["unit", "integration", "end_to_end"].includes(receipt.scope)) {
|
|
159
|
+
errors.push(`${prefix}.scope must be a supported verification scope`);
|
|
76
160
|
}
|
|
77
161
|
const startedAt = timestamp(receipt.started_at);
|
|
78
162
|
const finishedAt = timestamp(receipt.finished_at);
|
|
@@ -90,6 +174,85 @@ export function verificationReceiptHistoryErrors(testId, verificationScope, rece
|
|
|
90
174
|
}
|
|
91
175
|
if (finishedAt !== null)
|
|
92
176
|
previousFinishedAt = finishedAt;
|
|
177
|
+
if (receipt.version === VERIFICATION_RECEIPT_V2_VERSION) {
|
|
178
|
+
if (!Array.isArray(receipt.command_argv) ||
|
|
179
|
+
receipt.command_argv.length === 0 ||
|
|
180
|
+
receipt.command_argv.some((argument) => typeof argument !== "string" || argument.trim() === "")) {
|
|
181
|
+
errors.push(`${prefix}.command_argv must be a non-empty argv of strings`);
|
|
182
|
+
}
|
|
183
|
+
if (typeof receipt.contract_hash !== "string" ||
|
|
184
|
+
!/^[a-f0-9]{64}$/.test(receipt.contract_hash)) {
|
|
185
|
+
errors.push(`${prefix}.contract_hash must be a SHA-256 hex digest`);
|
|
186
|
+
}
|
|
187
|
+
const caseResults = receipt.case_results;
|
|
188
|
+
if (!Array.isArray(caseResults) || caseResults.length === 0) {
|
|
189
|
+
errors.push(`${prefix}.case_results must contain at least one contracted case`);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
const seenCases = new Set();
|
|
193
|
+
for (const [caseIndex, caseResult] of caseResults.entries()) {
|
|
194
|
+
if (!caseResult ||
|
|
195
|
+
typeof caseResult !== "object" ||
|
|
196
|
+
Array.isArray(caseResult)) {
|
|
197
|
+
errors.push(`${prefix}.case_results[${caseIndex}] must be an object`);
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
const row = caseResult;
|
|
201
|
+
if (typeof row.symbol_id !== "string" ||
|
|
202
|
+
row.symbol_id.trim() === "" ||
|
|
203
|
+
typeof row.project !== "string" ||
|
|
204
|
+
row.project.trim() === "") {
|
|
205
|
+
errors.push(`${prefix}.case_results[${caseIndex}] requires non-empty symbol_id and project`);
|
|
206
|
+
}
|
|
207
|
+
if (![
|
|
208
|
+
"passed",
|
|
209
|
+
"failed",
|
|
210
|
+
"timed_out",
|
|
211
|
+
"skipped",
|
|
212
|
+
"interrupted",
|
|
213
|
+
].includes(String(row.outcome))) {
|
|
214
|
+
errors.push(`${prefix}.case_results[${caseIndex}].outcome is not a supported result`);
|
|
215
|
+
}
|
|
216
|
+
const key = `${String(row.project ?? "")}\0${String(row.symbol_id ?? "")}`;
|
|
217
|
+
if (seenCases.has(key))
|
|
218
|
+
errors.push(`${prefix}.case_results duplicates '${key.replace("\0", "/")}'`);
|
|
219
|
+
seenCases.add(key);
|
|
220
|
+
if (typeof row.retries !== "number" ||
|
|
221
|
+
!Number.isInteger(row.retries) ||
|
|
222
|
+
row.retries < 0)
|
|
223
|
+
errors.push(`${prefix}.case_results[${caseIndex}].retries must be a non-negative integer`);
|
|
224
|
+
if (typeof row.duration_ms !== "number" ||
|
|
225
|
+
!Number.isInteger(row.duration_ms) ||
|
|
226
|
+
row.duration_ms < 0)
|
|
227
|
+
errors.push(`${prefix}.case_results[${caseIndex}].duration_ms must be a non-negative integer`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return errors;
|
|
233
|
+
}
|
|
234
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
235
|
+
export function verificationReceiptCurrentBindingErrors(testId, verificationScope, receipt, contract) {
|
|
236
|
+
const errors = [];
|
|
237
|
+
if (receipt.test_id !== testId) {
|
|
238
|
+
errors.push(`verification receipt test_id must equal '${testId}'`);
|
|
239
|
+
}
|
|
240
|
+
if (typeof verificationScope !== "string") {
|
|
241
|
+
errors.push("verification_scope is required for current receipt evidence");
|
|
242
|
+
}
|
|
243
|
+
else if (receipt.scope !== verificationScope) {
|
|
244
|
+
errors.push(`verification receipt scope must equal the current verification_scope '${verificationScope}'`);
|
|
245
|
+
}
|
|
246
|
+
if (contract !== undefined) {
|
|
247
|
+
if (receipt.version !== VERIFICATION_RECEIPT_V2_VERSION) {
|
|
248
|
+
errors.push("the current verification_contract requires a kibi.verification-receipt.v2");
|
|
249
|
+
}
|
|
250
|
+
else if (typeof receipt.contract_hash === "string") {
|
|
251
|
+
const expectedHash = verificationContractHash(contract);
|
|
252
|
+
if (receipt.contract_hash !== expectedHash) {
|
|
253
|
+
errors.push("verification receipt contract_hash does not match the current verification_contract");
|
|
254
|
+
}
|
|
255
|
+
}
|
|
93
256
|
}
|
|
94
257
|
return errors;
|
|
95
258
|
}
|
|
@@ -105,6 +268,10 @@ function canonicalJson(value) {
|
|
|
105
268
|
}
|
|
106
269
|
return JSON.stringify(value);
|
|
107
270
|
}
|
|
271
|
+
// implements REQ-kibi-verification-evidence-contract
|
|
272
|
+
export function verificationContractHash(contract) {
|
|
273
|
+
return createHash("sha256").update(canonicalJson(contract)).digest("hex");
|
|
274
|
+
}
|
|
108
275
|
export function appendOnlyVerificationReceiptHistoryErrors(previous, next) {
|
|
109
276
|
if (previous.length === 0)
|
|
110
277
|
return [];
|
|
@@ -35,6 +35,22 @@ export declare function readShard(shardPath: string): RelationshipRecord[];
|
|
|
35
35
|
* Creates parent directories if needed.
|
|
36
36
|
*/
|
|
37
37
|
export declare function writeShard(shardPath: string, records: RelationshipRecord[]): void;
|
|
38
|
+
export type RelationshipSelector = Readonly<{
|
|
39
|
+
type: string;
|
|
40
|
+
from: string;
|
|
41
|
+
to: string;
|
|
42
|
+
}>;
|
|
43
|
+
export type RemovedRelationshipRecords = Readonly<{
|
|
44
|
+
selector: RelationshipSelector;
|
|
45
|
+
shardPaths: readonly string[];
|
|
46
|
+
sources: readonly string[];
|
|
47
|
+
removed: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Remove exact legacy-shard relationships using an atomic temp-file rename.
|
|
51
|
+
* The caller is responsible for retracting the compiled RDF edge afterwards.
|
|
52
|
+
*/
|
|
53
|
+
export declare function removeRelationshipsFromShards(kbRoot: string, selectors: readonly RelationshipSelector[]): RemovedRelationshipRecords[];
|
|
38
54
|
/**
|
|
39
55
|
* Appends a relationship to the appropriate shard.
|
|
40
56
|
* Returns the shard path and record ID.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shards.d.ts","sourceRoot":"","sources":["../../src/relationships/shards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shards.d.ts","sourceRoot":"","sources":["../../src/relationships/shards.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAsFjE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,EAAE,GAC5B,IAAI,CAoBN;AAwBD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,oBAAoB,EAAE,GACzC,0BAA0B,EAAE,CAwD9B;AAqCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAC3C;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAwCzC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAUnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAUlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,kBAAkB,EAAE,CAKtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,MAAM,CAMR;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAE1B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,kBAAkB,EAAE,CAgCtB"}
|
|
@@ -19,6 +19,7 @@ import * as crypto from "node:crypto";
|
|
|
19
19
|
import * as fs from "node:fs";
|
|
20
20
|
import * as path from "node:path";
|
|
21
21
|
import { load as parseYAML } from "js-yaml";
|
|
22
|
+
import { parseDocument } from "yaml";
|
|
22
23
|
/**
|
|
23
24
|
* Gets the path to the relationships directory for a given KB root.
|
|
24
25
|
*/
|
|
@@ -132,7 +133,80 @@ export function writeShard(shardPath, records) {
|
|
|
132
133
|
unique.push(record);
|
|
133
134
|
}
|
|
134
135
|
const yamlContent = serializeToYAML(unique);
|
|
135
|
-
|
|
136
|
+
atomicWriteText(shardPath, yamlContent);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Publish one canonical shard replacement atomically. Relationship shards are
|
|
140
|
+
* authored source, so a torn write must never leave a half-valid YAML file
|
|
141
|
+
* for the next sync or Git operation.
|
|
142
|
+
*/
|
|
143
|
+
function atomicWriteText(targetPath, body) {
|
|
144
|
+
const temporary = `${targetPath}.kibi-write-${process.pid}-${Date.now()}-${Math.random()
|
|
145
|
+
.toString(16)
|
|
146
|
+
.slice(2)}`;
|
|
147
|
+
try {
|
|
148
|
+
fs.writeFileSync(temporary, body, { encoding: "utf8", mode: 0o600 });
|
|
149
|
+
fs.renameSync(temporary, targetPath);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
try {
|
|
153
|
+
if (fs.existsSync(temporary))
|
|
154
|
+
fs.unlinkSync(temporary);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
// Preserve the original publication failure.
|
|
158
|
+
}
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Remove exact legacy-shard relationships using an atomic temp-file rename.
|
|
164
|
+
* The caller is responsible for retracting the compiled RDF edge afterwards.
|
|
165
|
+
*/
|
|
166
|
+
export function removeRelationshipsFromShards(kbRoot, selectors) {
|
|
167
|
+
const wanted = new Set(selectors.map((selector) => `${selector.type}\0${selector.from}\0${selector.to}`));
|
|
168
|
+
const removed = new Map();
|
|
169
|
+
for (const shardPath of listShards(kbRoot)) {
|
|
170
|
+
const records = readShard(shardPath);
|
|
171
|
+
const matching = records.filter((record) => wanted.has(`${record.type}\0${record.from}\0${record.to}`));
|
|
172
|
+
if (matching.length === 0)
|
|
173
|
+
continue;
|
|
174
|
+
// Patch the YAML sequence in place so comments, ordering, and unrelated
|
|
175
|
+
// records survive a relationship deletion. The compiled store is never
|
|
176
|
+
// the mutation target; this shard remains the canonical source artifact.
|
|
177
|
+
const document = parseDocument(fs.readFileSync(shardPath, "utf8"));
|
|
178
|
+
const sequence = document.get("relationships", true);
|
|
179
|
+
if (!sequence || typeof sequence !== "object" || !("items" in sequence)) {
|
|
180
|
+
throw new Error(`Invalid shard file: missing 'relationships' array at ${shardPath}`);
|
|
181
|
+
}
|
|
182
|
+
const items = sequence.items;
|
|
183
|
+
for (let index = items.length - 1; index >= 0; index -= 1) {
|
|
184
|
+
const item = items[index];
|
|
185
|
+
if (!item || typeof item !== "object" || !("get" in item))
|
|
186
|
+
continue;
|
|
187
|
+
const get = item.get.bind(item);
|
|
188
|
+
if (wanted.has(`${String(get("type"))}\0${String(get("from"))}\0${String(get("to"))}`)) {
|
|
189
|
+
document.deleteIn(["relationships", index]);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
atomicWriteText(shardPath, document.toString());
|
|
193
|
+
for (const record of matching) {
|
|
194
|
+
const key = `${record.type}\0${record.from}\0${record.to}`;
|
|
195
|
+
const entry = removed.get(key) ?? { paths: [], sources: [] };
|
|
196
|
+
entry.paths.push(shardPath);
|
|
197
|
+
entry.sources.push(record.source);
|
|
198
|
+
removed.set(key, entry);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return selectors.map((selector) => {
|
|
202
|
+
const entry = removed.get(`${selector.type}\0${selector.from}\0${selector.to}`);
|
|
203
|
+
return {
|
|
204
|
+
selector,
|
|
205
|
+
shardPaths: entry?.paths ?? [],
|
|
206
|
+
sources: entry?.sources ?? [],
|
|
207
|
+
removed: entry !== undefined,
|
|
208
|
+
};
|
|
209
|
+
});
|
|
136
210
|
}
|
|
137
211
|
/**
|
|
138
212
|
* Serializes records to YAML format.
|
|
@@ -185,7 +259,18 @@ export function appendRelationship(kbRoot, relationship) {
|
|
|
185
259
|
...relationship,
|
|
186
260
|
id: recordId,
|
|
187
261
|
};
|
|
188
|
-
|
|
262
|
+
if (fs.existsSync(shardPath)) {
|
|
263
|
+
const document = parseDocument(fs.readFileSync(shardPath, "utf8"));
|
|
264
|
+
const sequence = document.get("relationships", true);
|
|
265
|
+
if (!sequence || typeof sequence !== "object" || !("items" in sequence)) {
|
|
266
|
+
throw new Error(`Invalid shard file: missing 'relationships' array at ${shardPath}`);
|
|
267
|
+
}
|
|
268
|
+
sequence.items.push(newRecord);
|
|
269
|
+
atomicWriteText(shardPath, document.toString());
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
writeShard(shardPath, [newRecord]);
|
|
273
|
+
}
|
|
189
274
|
}
|
|
190
275
|
return { shardPath, recordId };
|
|
191
276
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const KIBI_BRAND: {
|
|
2
|
+
readonly carbon: "#1d1e23";
|
|
3
|
+
readonly deepCarbon: "#111318";
|
|
4
|
+
readonly panel: "#191c22";
|
|
5
|
+
readonly ice: "#a2d3f4";
|
|
6
|
+
readonly signal: "#3e8ed6";
|
|
7
|
+
readonly snow: "#f4f8fb";
|
|
8
|
+
readonly mist: "#aab8c2";
|
|
9
|
+
readonly rail: "#34434f";
|
|
10
|
+
readonly success: "#63c99a";
|
|
11
|
+
readonly warning: "#f2b84b";
|
|
12
|
+
readonly danger: "#f07178";
|
|
13
|
+
};
|
|
14
|
+
export declare function renderKibiLogo(className?: string): string;
|
|
15
|
+
export declare function renderKibiWordmark(className?: string): string;
|
|
16
|
+
export declare function renderKibiFaviconSvg(): string;
|
|
17
|
+
export declare function renderKibiFaviconDataUri(): string;
|
|
18
|
+
export declare function renderKibiBadge(message: string, statusColor: string): string;
|
|
19
|
+
//# sourceMappingURL=brand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/report/brand.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAmBX,wBAAgB,cAAc,CAAC,SAAS,SAAK,GAAG,MAAM,CAErD;AAGD,wBAAgB,kBAAkB,CAAC,SAAS,SAAK,GAAG,MAAM,CAEzD;AAGD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAGD,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAgDD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA+B5E"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
export const KIBI_BRAND = {
|
|
2
|
+
carbon: "#1d1e23",
|
|
3
|
+
deepCarbon: "#111318",
|
|
4
|
+
panel: "#191c22",
|
|
5
|
+
ice: "#a2d3f4",
|
|
6
|
+
signal: "#3e8ed6",
|
|
7
|
+
snow: "#f4f8fb",
|
|
8
|
+
mist: "#aab8c2",
|
|
9
|
+
rail: "#34434f",
|
|
10
|
+
success: "#63c99a",
|
|
11
|
+
warning: "#f2b84b",
|
|
12
|
+
danger: "#f07178",
|
|
13
|
+
};
|
|
14
|
+
// Visible path/ellipse markup from assets/logo.svg and assets/wordmark.svg.
|
|
15
|
+
// Packed reports stay self-contained; the e2e fingerprint compares these marks
|
|
16
|
+
// to the canonical files, so keep the geometry in lockstep with those assets.
|
|
17
|
+
const LOGO_BODY = `<path d="M59.403564453125,0.548828125C67.20257568359375,-0.47119140625,80.16162109375,0.2437744140625,88.4605712890625,0.24078369140625L146.50048828125,0.227783203125L214.8255615234375,0.23577880859375C240.16748046875,0.2437744140625,262.236572265625,-2.67620849609375,283.3775634765625,14.2947998046875C311.0205078125,36.48480224609375,307.6495361328125,66.8988037109375,307.671630859375,98.5548095703125L307.6895751953125,162.74783325195312L307.66552734375,217.54684448242188C307.6585693359375,226.07479858398438,307.653564453125,234.5628662109375,307.504638671875,243.0877685546875C306.8895263671875,278.2227783203125,283.66259765625,304.5137939453125,248.32958984375,308.1297607421875C240.6875,308.9278564453125,226.1695556640625,308.5008544921875,217.8525390625,308.4927978515625L161.468505859375,308.4508056640625L93.9794921875,308.5028076171875C68.57257080078125,308.5147705078125,46.83258056640625,311.5418701171875,25.39654541015625,295.0338134765625C-2.66644287109375,273.423828125,0.13555908203125,245.0108642578125,0.10955810546875,213.40182495117188L0.0855712890625,154.30581665039062L0.10357666015625,95.5968017578125C0.112548828125,81.48980712890625,-0.62841796875,66.85577392578125,1.7275390625,52.96478271484375C6.78955078125,23.11376953125,30.14154052734375,3.88580322265625,59.403564453125,0.548828125Z" fill="${KIBI_BRAND.carbon}"/><ellipse cx="113.3257670641164" cy="150.86303791579667" rx="51.325767064116405" ry="51.52454059083652" fill="${KIBI_BRAND.ice}"/><path d="M228.05255126953125,197.78256225585938L227.611572265625,165.51681518554688L156.5028076171875,165.69512939453125L95.43316650390625,165.28231811523438L95.4334716796875,135.09622192382812L156.503173828125,135.26748657226562L227.535888671875,135.08938598632812L227.53631591796875,101.200927734375L252.20697021484375,101.20071411132812L252.20599365234375,197.78225708007812" fill="${KIBI_BRAND.ice}"/>`;
|
|
18
|
+
const WORDMARK_BODY = `<ellipse cx="337.16000366210943" cy="30.99999999999997" rx="20.000000000000057" ry="19.99999999999997" fill="${KIBI_BRAND.signal}"/><path d="M381.8653869628906,49.212493896484375L381.6935119628906,36.688079833984375L353.9847106933594,36.757293701171875L330.1878356933594,36.5970458984375L330.1879577636719,24.8798828125L353.9848327636719,24.94635009765625L381.6640319824219,24.877227783203125L381.6641540527344,11.722930908203125L391.2775573730469,11.72283935546875L391.2771301269531,49.212371826171875" fill="${KIBI_BRAND.signal}"/><path d="M0,155.33001708984375L0,22.1300048828125L19.6199951171875,22.1300048828125L19.6199951171875,102.58999633789062L20.519989013671875,102.58999633789062L35.100006103515625,87.6500244140625L61.20001220703125,62.45001220703125L84.42001342773438,62.45001220703125L46.800018310546875,98.989990234375L88.55999755859375,155.33001708984375L64.98001098632812,155.33001708984375L32.579986572265625,110.1500244140625L19.6199951171875,122.21002197265625L19.6199951171875,155.33001708984375L0,155.33001708984375L0,155.33001708984375M110.33999633789062,155.33001708984375L110.33999633789062,139.49002075195312L132.01998901367188,139.49002075195312L132.01998901367188,78.28997802734375L100.33999633789062,78.28997802734375L100.33999633789062,62.45001220703125L151.63998413085938,62.45001220703125L151.63998413085938,139.49002075195312L171.33999633789062,139.49002075195312L171.33999633789062,155.33001708984375L110.33999633789062,155.33001708984375L110.33999633789062,155.33001708984375M194.3800048828125,155.33001708984375L194.3800048828125,22.1300048828125L214,22.1300048828125L214.08001708984375,70L215.16000366210938,70C221.16000366210938,65,220.16000366210938,66,224.16000366210938,64C229.1324462890625,61.513824462890625,236.32000732421875,60.28997802734375,243.16000366210938,60.28997802734375L243.16000366210938,60.28997802734375C254.08004760742188,60.28997802734375,262.7799987792969,64.3699951171875,269.2599792480469,72.52999877929688C275.7399597167969,80.69000244140625,278.9800109863281,92.80999755859375,278.9800109863281,108.8900146484375L278.9800109863281,108.8900146484375C278.9800109863281,124.97000122070312,275.7399597167969,137.08999633789062,269.2599792480469,145.25C262.7799987792969,153.41000366210938,254.08004760742188,157.49002075195312,243.16000366210938,157.49002075195312L243.16000366210938,157.49002075195312C236.32000732421875,157.49002075195312,227.92709350585938,156.8602294921875,223.16000366210938,154C218.16000366210938,151,219.16000366210938,152,215.16000366210938,147L215.16000366210938,147L214.08001708984375,147L214,155.33001708984375L194.3800048828125,155.33001708984375L194.3800048828125,155.33001708984375M235.05999755859375,141.47000122070312L235.05999755859375,141.47000122070312C242.5,141.47000122070312,248.23001098632812,139.19000244140625,252.24996948242188,134.6300048828125C256.2699890136719,130.07000732421875,258.2799987792969,124.010009765625,258.2799987792969,116.45001220703125L258.2799987792969,116.45001220703125L258.2799987792969,101.33001708984375C258.2799987792969,93.77001953125,256.2699890136719,87.71002197265625,252.24996948242188,83.1500244140625C248.23001098632812,78.59002685546875,242.5,76.30999755859375,235.05999755859375,76.30999755859375L235.05999755859375,76.30999755859375C232.18002319335938,76.30999755859375,229.48001098632812,76.66998291015625,226.95999145507812,77.3900146484375C224.44000244140625,78.1099853515625,222.22000122070312,79.19000244140625,220.30001831054688,80.6300048828125C218.3800048828125,82.07000732421875,216.85000610351562,83.84002685546875,215.70999145507812,85.94000244140625C214.57000732421875,88.03997802734375,214,90.52999877929688,214,93.41000366210938L214,93.41000366210938L214,124.3699951171875C214,127.25,214.57000732421875,129.74002075195312,215.70999145507812,131.83999633789062C216.85000610351562,133.94000244140625,218.3800048828125,135.70999145507812,220.30001831054688,137.14999389648438C222.22000122070312,138.58999633789062,224.44000244140625,139.67001342773438,226.95999145507812,140.3900146484375C229.48001098632812,141.11001586914062,232.18002319335938,141.47000122070312,235.05999755859375,141.47000122070312L235.05999755859375,141.47000122070312M306.3399963378906,155.33001708984375L306.3399963378906,139.49002075195312L328.0199890136719,139.49002075195312L328.0199890136719,78.28997802734375L296.3399963378906,78.28997802734375L296.3399963378906,62.45001220703125L347.6399841308594,62.45001220703125L347.6399841308594,139.49002075195312L367.3399963378906,139.49002075195312L367.3399963378906,155.33001708984375L306.3399963378906,155.33001708984375L306.3399963378906,155.33001708984375" fill="${KIBI_BRAND.ice}"/><ellipse cx="141.66000366210938" cy="31.5" rx="12.5" ry="12.5" fill="${KIBI_BRAND.ice}"/>`;
|
|
19
|
+
function xml(value) {
|
|
20
|
+
return value
|
|
21
|
+
.replaceAll("&", "&")
|
|
22
|
+
.replaceAll("<", "<")
|
|
23
|
+
.replaceAll(">", ">")
|
|
24
|
+
.replaceAll('"', """)
|
|
25
|
+
.replaceAll("'", "'");
|
|
26
|
+
}
|
|
27
|
+
// implements REQ-kibi-branded-health-report
|
|
28
|
+
export function renderKibiLogo(className = "") {
|
|
29
|
+
return `<svg${className ? ` class="${xml(className)}"` : ""} viewBox="0 0 308 309" role="img" aria-label="Kibi logo">${LOGO_BODY}</svg>`;
|
|
30
|
+
}
|
|
31
|
+
// implements REQ-kibi-branded-health-report
|
|
32
|
+
export function renderKibiWordmark(className = "") {
|
|
33
|
+
return `<svg${className ? ` class="${xml(className)}"` : ""} viewBox="-2 10 395 148" role="img" aria-label="Kibi">${WORDMARK_BODY}</svg>`;
|
|
34
|
+
}
|
|
35
|
+
// implements REQ-kibi-branded-health-report
|
|
36
|
+
export function renderKibiFaviconSvg() {
|
|
37
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 308 309">${LOGO_BODY}</svg>`;
|
|
38
|
+
}
|
|
39
|
+
// implements REQ-kibi-branded-health-report
|
|
40
|
+
export function renderKibiFaviconDataUri() {
|
|
41
|
+
return `data:image/svg+xml;utf8,${encodeURIComponent(renderKibiFaviconSvg())}`;
|
|
42
|
+
}
|
|
43
|
+
const BADGE_HEIGHT = 20;
|
|
44
|
+
const BADGE_LABEL = "kibi";
|
|
45
|
+
const BADGE_FONT = "DejaVu Sans,Verdana,Geneva,sans-serif";
|
|
46
|
+
const BADGE_LOGO = 14;
|
|
47
|
+
const BADGE_LOGO_LEFT = 5;
|
|
48
|
+
const BADGE_LOGO_GAP = 3;
|
|
49
|
+
const BADGE_TEXT_PAD = 8;
|
|
50
|
+
const BADGE_LABEL_FILL = "#555";
|
|
51
|
+
const BADGE_TEXT_FILL = "#fff";
|
|
52
|
+
const BADGE_TEXT_SHADOW = "#010101";
|
|
53
|
+
const BADGE_LOGO_BODY = LOGO_BODY.replaceAll(`fill="${KIBI_BRAND.carbon}"`, `fill="${BADGE_LABEL_FILL}"`);
|
|
54
|
+
function badgeTextWidth(text) {
|
|
55
|
+
let width = 0;
|
|
56
|
+
for (const char of text) {
|
|
57
|
+
if (char === " ")
|
|
58
|
+
width += 4;
|
|
59
|
+
else if (char === "%")
|
|
60
|
+
width += 9;
|
|
61
|
+
else
|
|
62
|
+
width += 7;
|
|
63
|
+
}
|
|
64
|
+
return Math.ceil(width);
|
|
65
|
+
}
|
|
66
|
+
function badgeLabelWidth(label) {
|
|
67
|
+
return (BADGE_LOGO_LEFT +
|
|
68
|
+
BADGE_LOGO +
|
|
69
|
+
BADGE_LOGO_GAP +
|
|
70
|
+
badgeTextWidth(label) +
|
|
71
|
+
BADGE_TEXT_PAD);
|
|
72
|
+
}
|
|
73
|
+
function badgeMessageWidth(message) {
|
|
74
|
+
return BADGE_TEXT_PAD + badgeTextWidth(message) + BADGE_TEXT_PAD;
|
|
75
|
+
}
|
|
76
|
+
function badgeCaption(x, text) {
|
|
77
|
+
const safe = xml(text);
|
|
78
|
+
return `<text x="${x}" y="15" fill="${BADGE_TEXT_SHADOW}" fill-opacity=".3">${safe}</text>
|
|
79
|
+
<text x="${x}" y="14" fill="${BADGE_TEXT_FILL}">${safe}</text>`;
|
|
80
|
+
}
|
|
81
|
+
// implements REQ-kibi-branded-health-report
|
|
82
|
+
export function renderKibiBadge(message, statusColor) {
|
|
83
|
+
const accessible = `Kibi requirement health: ${message}`;
|
|
84
|
+
const labelWidth = badgeLabelWidth(BADGE_LABEL);
|
|
85
|
+
const messageWidth = badgeMessageWidth(message);
|
|
86
|
+
const width = labelWidth + messageWidth;
|
|
87
|
+
const logoX = BADGE_LOGO_LEFT;
|
|
88
|
+
const logoY = (BADGE_HEIGHT - BADGE_LOGO) / 2;
|
|
89
|
+
const labelTextX = BADGE_LOGO_LEFT +
|
|
90
|
+
BADGE_LOGO +
|
|
91
|
+
BADGE_LOGO_GAP +
|
|
92
|
+
badgeTextWidth(BADGE_LABEL) / 2;
|
|
93
|
+
const messageTextX = labelWidth + messageWidth / 2;
|
|
94
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" role="img" aria-label="${xml(accessible)}" width="${width}" height="${BADGE_HEIGHT}" viewBox="0 0 ${width} ${BADGE_HEIGHT}">
|
|
95
|
+
<title>${xml(accessible)}</title>
|
|
96
|
+
<linearGradient id="kibi-badge-s" x2="0" y2="100%">
|
|
97
|
+
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
|
|
98
|
+
<stop offset="1" stop-opacity=".1"/>
|
|
99
|
+
</linearGradient>
|
|
100
|
+
<clipPath id="kibi-badge"><rect width="${width}" height="${BADGE_HEIGHT}" rx="3" fill="#fff"/></clipPath>
|
|
101
|
+
<g clip-path="url(#kibi-badge)">
|
|
102
|
+
<rect width="${labelWidth}" height="${BADGE_HEIGHT}" fill="${BADGE_LABEL_FILL}"/>
|
|
103
|
+
<rect x="${labelWidth}" width="${messageWidth}" height="${BADGE_HEIGHT}" fill="${xml(statusColor)}"/>
|
|
104
|
+
<rect width="${width}" height="${BADGE_HEIGHT}" fill="url(#kibi-badge-s)"/>
|
|
105
|
+
</g>
|
|
106
|
+
<g fill="${BADGE_TEXT_FILL}" text-anchor="middle" font-family="${BADGE_FONT}" font-size="11">
|
|
107
|
+
${badgeCaption(labelTextX, BADGE_LABEL)}
|
|
108
|
+
${badgeCaption(messageTextX, message)}
|
|
109
|
+
</g>
|
|
110
|
+
<svg x="${logoX}" y="${logoY}" width="${BADGE_LOGO}" height="${BADGE_LOGO}" viewBox="0 0 308 309" aria-hidden="true">${BADGE_LOGO_BODY}</svg>
|
|
111
|
+
</svg>`;
|
|
112
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ReportRepository } from "./repository.js";
|
|
2
|
+
type UnknownRecord = Readonly<Record<string, unknown>>;
|
|
3
|
+
export declare const REPORT_CSP = "default-src 'none'; img-src data:; style-src 'unsafe-inline'; script-src 'unsafe-inline'";
|
|
4
|
+
export declare const KIBI_GETTING_STARTED_URL = "https://github.com/Looted/kibi/blob/develop/docs/install.md";
|
|
5
|
+
export type HtmlReportCoverage = Readonly<{
|
|
6
|
+
summary: UnknownRecord;
|
|
7
|
+
rows: readonly UnknownRecord[];
|
|
8
|
+
meta?: UnknownRecord;
|
|
9
|
+
}>;
|
|
10
|
+
export type HtmlReportInput = Readonly<{
|
|
11
|
+
requirements: HtmlReportCoverage;
|
|
12
|
+
symbols: HtmlReportCoverage;
|
|
13
|
+
branch: string;
|
|
14
|
+
generatedAt: Date;
|
|
15
|
+
repository?: ReportRepository;
|
|
16
|
+
}>;
|
|
17
|
+
export declare function renderHtmlReport(input: HtmlReportInput): string;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=html-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../../src/report/html-report.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,gBAAgB,EAMtB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAGvD,eAAO,MAAM,UAAU,6FACqE,CAAC;AAG7F,eAAO,MAAM,wBAAwB,gEAC0B,CAAC;AAEhE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,YAAY,EAAE,kBAAkB,CAAC;IACjC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC,CAAC;AA8lBH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAke/D"}
|