kibi-cli 1.0.1 → 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.
Files changed (450) hide show
  1. package/dist/cli-errors.d.ts +3 -1
  2. package/dist/cli-errors.d.ts.map +1 -1
  3. package/dist/cli-errors.js +4 -1
  4. package/dist/cli-json-command.d.ts +1 -0
  5. package/dist/cli-json-command.d.ts.map +1 -1
  6. package/dist/cli-json-command.js +13 -4
  7. package/dist/cli-operation-loader.js +3 -3
  8. package/dist/cli-operation-metadata.d.ts +4 -3
  9. package/dist/cli-operation-metadata.d.ts.map +1 -1
  10. package/dist/cli-operation-metadata.js +7 -5
  11. package/dist/cli-protocol.js +1 -1
  12. package/dist/cli-register-maintenance.d.ts.map +1 -1
  13. package/dist/cli-register-maintenance.js +7 -0
  14. package/dist/cli-register-proof.d.ts +3 -0
  15. package/dist/cli-register-proof.d.ts.map +1 -0
  16. package/dist/cli-register-proof.js +103 -0
  17. package/dist/cli-register-reporting.d.ts.map +1 -1
  18. package/dist/cli-register-reporting.js +1 -0
  19. package/dist/cli.d.ts +4 -0
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +17 -10
  22. package/dist/commands/branch.d.ts +1 -0
  23. package/dist/commands/branch.d.ts.map +1 -1
  24. package/dist/commands/branch.js +8 -4
  25. package/dist/commands/check.d.ts +14 -0
  26. package/dist/commands/check.d.ts.map +1 -1
  27. package/dist/commands/check.js +190 -44
  28. package/dist/commands/coverage.d.ts +1 -0
  29. package/dist/commands/coverage.d.ts.map +1 -1
  30. package/dist/commands/coverage.js +6 -0
  31. package/dist/commands/doctor.d.ts +22 -0
  32. package/dist/commands/doctor.d.ts.map +1 -1
  33. package/dist/commands/doctor.js +48 -22
  34. package/dist/commands/engine.d.ts +12 -0
  35. package/dist/commands/engine.d.ts.map +1 -1
  36. package/dist/commands/engine.js +40 -0
  37. package/dist/commands/github-init.d.ts +1 -0
  38. package/dist/commands/github-init.d.ts.map +1 -1
  39. package/dist/commands/github-init.js +9 -5
  40. package/dist/commands/init-helpers.d.ts.map +1 -1
  41. package/dist/commands/init-helpers.js +38 -5
  42. package/dist/commands/migrate.d.ts +4 -0
  43. package/dist/commands/migrate.d.ts.map +1 -1
  44. package/dist/commands/migrate.js +7 -7
  45. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  46. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  47. package/dist/commands/proof-migrate-legacy.js +45 -0
  48. package/dist/commands/proof-prune.d.ts +8 -0
  49. package/dist/commands/proof-prune.d.ts.map +1 -0
  50. package/dist/commands/proof-prune.js +53 -0
  51. package/dist/commands/prove.d.ts +37 -0
  52. package/dist/commands/prove.d.ts.map +1 -0
  53. package/dist/commands/prove.js +470 -0
  54. package/dist/commands/report.js +1 -1
  55. package/dist/commands/sync/discovery.d.ts +3 -0
  56. package/dist/commands/sync/discovery.d.ts.map +1 -1
  57. package/dist/commands/sync/discovery.js +36 -28
  58. package/dist/commands/sync/manifest.d.ts +1 -1
  59. package/dist/commands/sync/manifest.d.ts.map +1 -1
  60. package/dist/commands/sync/manifest.js +53 -21
  61. package/dist/commands/sync/persistence.d.ts +4 -1
  62. package/dist/commands/sync/persistence.d.ts.map +1 -1
  63. package/dist/commands/sync/persistence.js +25 -14
  64. package/dist/commands/sync/staging.d.ts +1 -0
  65. package/dist/commands/sync/staging.d.ts.map +1 -1
  66. package/dist/commands/sync/staging.js +5 -2
  67. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  68. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  69. package/dist/commands/sync/untracked-targets.js +108 -0
  70. package/dist/commands/sync.d.ts +11 -1
  71. package/dist/commands/sync.d.ts.map +1 -1
  72. package/dist/commands/sync.js +74 -30
  73. package/dist/engine-daemon.d.ts +3 -1
  74. package/dist/engine-daemon.d.ts.map +1 -1
  75. package/dist/engine-daemon.js +49 -20
  76. package/dist/engine.d.ts +14 -76
  77. package/dist/engine.d.ts.map +1 -1
  78. package/dist/engine.js +197 -30
  79. package/dist/extractors/manifest.d.ts +5 -0
  80. package/dist/extractors/manifest.d.ts.map +1 -1
  81. package/dist/extractors/manifest.js +46 -1
  82. package/dist/extractors/markdown.d.ts +5 -3
  83. package/dist/extractors/markdown.d.ts.map +1 -1
  84. package/dist/extractors/markdown.js +41 -24
  85. package/dist/extractors/playwright-cases.js +1 -1
  86. package/dist/extractors/relationships.d.ts +6 -0
  87. package/dist/extractors/relationships.d.ts.map +1 -1
  88. package/dist/extractors/relationships.js +1 -1
  89. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  90. package/dist/extractors/symbols-ts.d.ts +1 -0
  91. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  92. package/dist/extractors/symbols-ts.js +142 -67
  93. package/dist/intent-search.d.ts +1 -0
  94. package/dist/intent-search.d.ts.map +1 -1
  95. package/dist/intent-search.js +7 -3
  96. package/dist/logic/ir.d.ts +1 -0
  97. package/dist/logic/ir.d.ts.map +1 -1
  98. package/dist/logic/ir.js +1 -1
  99. package/dist/operations/bootstrap/activation.d.ts +2 -1
  100. package/dist/operations/bootstrap/activation.d.ts.map +1 -1
  101. package/dist/operations/bootstrap/activation.js +11 -3
  102. package/dist/operations/bootstrap/generate.d.ts +2 -1
  103. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  104. package/dist/operations/bootstrap/generate.js +6 -3
  105. package/dist/operations/bootstrap/guidance.d.ts +1 -0
  106. package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
  107. package/dist/operations/bootstrap/guidance.js +1 -1
  108. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  109. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  110. package/dist/operations/modeling/model-requirement.js +53 -46
  111. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
  112. package/dist/operations/modeling/predicate-applicability.js +103 -4
  113. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  114. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  115. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  116. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  117. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  118. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  119. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  120. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  121. package/dist/operations/modeling/predicate-catalog.js +4 -0
  122. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  123. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  124. package/dist/operations/modeling/predicate-loader.js +4 -3
  125. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  126. package/dist/operations/modeling/predicate-ranker.js +4 -1
  127. package/dist/operations/modeling/predicate-types.d.ts +1 -1
  128. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  129. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  130. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  131. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  132. package/dist/operations/modeling/suggest-predicates.d.ts +3 -1
  133. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  134. package/dist/operations/modeling/suggest-predicates.js +52 -19
  135. package/dist/operations/mutation/contradictions.d.ts +2 -1
  136. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  137. package/dist/operations/mutation/contradictions.js +26 -5
  138. package/dist/operations/mutation/delete.d.ts +3 -0
  139. package/dist/operations/mutation/delete.d.ts.map +1 -1
  140. package/dist/operations/mutation/delete.js +100 -32
  141. package/dist/operations/mutation/relationships.d.ts +1 -0
  142. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  143. package/dist/operations/mutation/relationships.js +6 -4
  144. package/dist/operations/mutation/saga.d.ts +51 -0
  145. package/dist/operations/mutation/saga.d.ts.map +1 -0
  146. package/dist/operations/mutation/saga.js +67 -0
  147. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  148. package/dist/operations/mutation/serialization.js +3 -2
  149. package/dist/operations/mutation/source-authoring.d.ts +5 -1
  150. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  151. package/dist/operations/mutation/source-authoring.js +79 -46
  152. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  153. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  154. package/dist/operations/mutation/strict-fact.js +8 -5
  155. package/dist/operations/mutation/symbol-compiler-lock.d.ts +5 -2
  156. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -1
  157. package/dist/operations/mutation/symbol-compiler-lock.js +65 -2
  158. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  159. package/dist/operations/mutation/symbol-granularity.js +2 -2
  160. package/dist/operations/mutation/symbol-refresh.d.ts +1 -0
  161. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  162. package/dist/operations/mutation/symbol-refresh.js +10 -8
  163. package/dist/operations/mutation/upsert.d.ts +18 -2
  164. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  165. package/dist/operations/mutation/upsert.js +86 -54
  166. package/dist/operations/mutation/validate-upsert.js +2 -2
  167. package/dist/operations/mutation/validation.d.ts.map +1 -1
  168. package/dist/operations/mutation/validation.js +46 -4
  169. package/dist/operations/mutation/warnings.d.ts +1 -0
  170. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  171. package/dist/operations/mutation/warnings.js +7 -5
  172. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  173. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  174. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  175. package/dist/operations/planning/apply-plan.d.ts +8 -106
  176. package/dist/operations/planning/apply-plan.d.ts.map +1 -1
  177. package/dist/operations/planning/apply-plan.js +113 -36
  178. package/dist/operations/planning/compile-intent.d.ts +2 -0
  179. package/dist/operations/planning/compile-intent.d.ts.map +1 -1
  180. package/dist/operations/planning/compile-intent.js +70 -14
  181. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  182. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  183. package/dist/operations/proof/ingest-proof.js +307 -0
  184. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  185. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  186. package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
  187. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  188. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  189. package/dist/operations/proof/prune-receipts.js +91 -0
  190. package/dist/operations/proof/receipt-document.d.ts +29 -0
  191. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  192. package/dist/operations/proof/receipt-document.js +117 -0
  193. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  194. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  195. package/dist/operations/semantic-advisor/analyze-prose.js +46 -26
  196. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  197. package/dist/operations/semantic-advisor/clauses.js +20 -7
  198. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  199. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  200. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  201. package/dist/prolog/codec.d.ts +13 -1
  202. package/dist/prolog/codec.d.ts.map +1 -1
  203. package/dist/prolog/codec.js +269 -154
  204. package/dist/prolog/error-terms.d.ts +47 -0
  205. package/dist/prolog/error-terms.d.ts.map +1 -0
  206. package/dist/prolog/error-terms.js +334 -0
  207. package/dist/prolog/janitor.d.ts +50 -0
  208. package/dist/prolog/janitor.d.ts.map +1 -0
  209. package/dist/prolog/janitor.js +154 -0
  210. package/dist/prolog/store-lock.d.ts +45 -0
  211. package/dist/prolog/store-lock.d.ts.map +1 -0
  212. package/dist/prolog/store-lock.js +195 -0
  213. package/dist/prolog.d.ts +7 -0
  214. package/dist/prolog.d.ts.map +1 -1
  215. package/dist/prolog.js +55 -17
  216. package/dist/proof/evaluate.d.ts +27 -0
  217. package/dist/proof/evaluate.d.ts.map +1 -0
  218. package/dist/proof/evaluate.js +151 -0
  219. package/dist/proof/inspect.d.ts +12 -0
  220. package/dist/proof/inspect.d.ts.map +1 -0
  221. package/dist/proof/inspect.js +236 -0
  222. package/dist/proof/integrations.d.ts +35 -0
  223. package/dist/proof/integrations.d.ts.map +1 -0
  224. package/dist/proof/integrations.js +123 -0
  225. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  226. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  227. package/dist/proof/producers/junit-adapter.js +186 -0
  228. package/dist/{public → proof/producers}/playwright-case-id.d.ts +1 -1
  229. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  230. package/dist/{public → proof/producers}/playwright-case-id.js +3 -3
  231. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  232. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  233. package/dist/proof/producers/playwright-reporter.js +138 -0
  234. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  235. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  236. package/dist/proof/producers/tap-adapter.js +200 -0
  237. package/dist/proof/receipt-outcome.d.ts +2 -0
  238. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  239. package/dist/proof/receipt-outcome.js +1 -0
  240. package/dist/public/diagnostic-usage.js +6 -6
  241. package/dist/public/distribution-parity.d.ts +7 -1
  242. package/dist/public/distribution-parity.d.ts.map +1 -1
  243. package/dist/public/distribution-parity.js +15 -10
  244. package/dist/public/impact/coverage-depth-quality.d.ts +1 -0
  245. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  246. package/dist/public/impact/coverage-depth-quality.js +1 -1
  247. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  248. package/dist/public/impact/diagnostics.js +2 -2
  249. package/dist/public/impact/diff-meaning.d.ts +1 -0
  250. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  251. package/dist/public/impact/diff-meaning.js +5 -2
  252. package/dist/public/impact/full-kb-quality.d.ts +5 -2
  253. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  254. package/dist/public/impact/full-kb-quality.js +329 -64
  255. package/dist/public/operations/catalog.d.ts +447 -196
  256. package/dist/public/operations/catalog.d.ts.map +1 -1
  257. package/dist/public/operations/catalog.js +6 -4
  258. package/dist/public/operations/check-executor.d.ts.map +1 -1
  259. package/dist/public/operations/check-executor.js +3 -7
  260. package/dist/public/operations/contracts.d.ts +7 -0
  261. package/dist/public/operations/contracts.d.ts.map +1 -1
  262. package/dist/public/operations/contracts.js +31 -22
  263. package/dist/public/operations/discovery-entities.d.ts +3 -0
  264. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  265. package/dist/public/operations/discovery-entities.js +4 -0
  266. package/dist/public/operations/discovery-executors.d.ts +9 -9
  267. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  268. package/dist/public/operations/discovery-executors.js +17 -14
  269. package/dist/public/operations/index.d.ts +1 -1
  270. package/dist/public/operations/index.d.ts.map +1 -1
  271. package/dist/public/operations/index.js +1 -1
  272. package/dist/public/operations/migration-plan.d.ts +4 -3
  273. package/dist/public/operations/migration-plan.d.ts.map +1 -1
  274. package/dist/public/operations/migration-plan.js +23 -21
  275. package/dist/public/operations/node-ports.js +6 -6
  276. package/dist/public/operations/repair-plan.d.ts +3 -3
  277. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  278. package/dist/public/operations/repair-plan.js +49 -19
  279. package/dist/public/operations/result-envelope.d.ts +1 -0
  280. package/dist/public/operations/result-envelope.d.ts.map +1 -1
  281. package/dist/public/operations/result-envelope.js +12 -10
  282. package/dist/public/operations/runtime-types.d.ts +5 -0
  283. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  284. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  285. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  286. package/dist/public/operations/specs/check-rules.generated.js +34 -0
  287. package/dist/public/operations/specs/check.d.ts +7 -2
  288. package/dist/public/operations/specs/check.d.ts.map +1 -1
  289. package/dist/public/operations/specs/check.js +8 -20
  290. package/dist/public/operations/specs/mutation-schemas.d.ts +257 -163
  291. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  292. package/dist/public/operations/specs/mutation-schemas.js +15 -7
  293. package/dist/public/operations/specs/planning.d.ts +9 -0
  294. package/dist/public/operations/specs/planning.d.ts.map +1 -1
  295. package/dist/public/operations/specs/planning.js +6 -0
  296. package/dist/public/operations/specs/proof.d.ts +212 -0
  297. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  298. package/dist/public/operations/specs/proof.js +30 -0
  299. package/dist/public/operations/specs/reporting.d.ts +19 -0
  300. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  301. package/dist/public/operations/specs/reporting.js +112 -12
  302. package/dist/public/operations/specs/upsert.d.ts +257 -163
  303. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  304. package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
  305. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
  306. package/dist/public/operations/symbol-repair-plan.js +118 -3
  307. package/dist/public/operations/types.d.ts +1 -1
  308. package/dist/public/operations/types.d.ts.map +1 -1
  309. package/dist/public/proof-fingerprint.d.ts +54 -0
  310. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  311. package/dist/public/proof-fingerprint.js +141 -0
  312. package/dist/public/proof-protocol.d.ts +354 -0
  313. package/dist/public/proof-protocol.d.ts.map +1 -0
  314. package/dist/public/proof-protocol.js +454 -0
  315. package/dist/public/proof-receipt.d.ts +279 -0
  316. package/dist/public/proof-receipt.d.ts.map +1 -0
  317. package/dist/public/proof-receipt.js +377 -0
  318. package/dist/public/schemas/entity.d.ts.map +1 -1
  319. package/dist/public/schemas/entity.js +21 -7
  320. package/dist/public/skills/kibi-freshness/SKILL.md +1 -1
  321. package/dist/public/skills/kibi-usage/SKILL.md +41 -12
  322. package/dist/public/skills/kibi-usage/resources/operation-access.md +1 -1
  323. package/dist/public/skills/kibi-usage/resources/proof.md +105 -0
  324. package/dist/public/skills/kibi-usage/resources/workflows.md +6 -6
  325. package/dist/public/symbol-granularity.d.ts +3 -14
  326. package/dist/public/symbol-granularity.d.ts.map +1 -1
  327. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  328. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  329. package/dist/public/symbol-granularity.generated.js +20 -0
  330. package/dist/public/symbol-granularity.js +6 -47
  331. package/dist/public/telemetry-acceptance.d.ts +3 -77
  332. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  333. package/dist/public/telemetry-acceptance.js +4 -2
  334. package/dist/public/telemetry-remediation.js +1 -1
  335. package/dist/report/html-report.css +282 -0
  336. package/dist/report/html-report.d.ts +4 -2
  337. package/dist/report/html-report.d.ts.map +1 -1
  338. package/dist/report/html-report.js +37 -300
  339. package/dist/runtime/cli-runtime.d.ts +2 -0
  340. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  341. package/dist/runtime/cli-runtime.js +14 -7
  342. package/dist/schemas/entity.schema.json +355 -215
  343. package/dist/search-ranking.d.ts +1 -0
  344. package/dist/search-ranking.d.ts.map +1 -1
  345. package/dist/search-ranking.js +3 -0
  346. package/dist/traceability/evidence-model.d.ts +28 -0
  347. package/dist/traceability/evidence-model.d.ts.map +1 -1
  348. package/dist/traceability/git-staged.d.ts +20 -0
  349. package/dist/traceability/git-staged.d.ts.map +1 -1
  350. package/dist/traceability/git-staged.js +145 -1
  351. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  352. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  353. package/dist/traceability/staged-diagnostics.js +78 -7
  354. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  355. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  356. package/dist/traceability/staged-file-coverage.js +284 -0
  357. package/dist/traceability/staged-impact-contract.js +4 -4
  358. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  359. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  360. package/dist/traceability/staged-symbols-manifest.js +138 -27
  361. package/dist/traceability/symbol-extract.d.ts +5 -0
  362. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  363. package/dist/traceability/symbol-extract.js +1 -1
  364. package/dist/traceability/temp-kb.d.ts +2 -0
  365. package/dist/traceability/temp-kb.d.ts.map +1 -1
  366. package/dist/traceability/temp-kb.js +13 -4
  367. package/dist/types/entities.d.ts +5 -3
  368. package/dist/types/entities.d.ts.map +1 -1
  369. package/dist/utils/branch-resolver.d.ts +1 -0
  370. package/dist/utils/branch-resolver.d.ts.map +1 -1
  371. package/dist/utils/branch-resolver.js +7 -4
  372. package/dist/utils/branch-store.d.ts +6 -0
  373. package/dist/utils/branch-store.d.ts.map +1 -1
  374. package/dist/utils/branch-store.js +27 -0
  375. package/dist/utils/kb-paths.d.ts +1 -1
  376. package/dist/utils/kb-paths.d.ts.map +1 -1
  377. package/dist/utils/kb-paths.js +1 -1
  378. package/dist/utils/rule-registry.d.ts +1 -11
  379. package/dist/utils/rule-registry.d.ts.map +1 -1
  380. package/dist/utils/rule-registry.generated.d.ts +97 -0
  381. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  382. package/dist/utils/rule-registry.generated.js +125 -0
  383. package/dist/utils/rule-registry.js +12 -113
  384. package/dist/utils/strict-modeling.d.ts +1 -0
  385. package/dist/utils/strict-modeling.d.ts.map +1 -1
  386. package/dist/utils/strict-modeling.js +1 -1
  387. package/package.json +8 -11
  388. package/src/public/diagnostic-usage.ts +6 -6
  389. package/src/public/distribution-parity.ts +17 -10
  390. package/src/public/impact/coverage-depth-quality.ts +1 -1
  391. package/src/public/impact/diagnostics.ts +2 -1
  392. package/src/public/impact/diff-meaning.ts +11 -4
  393. package/src/public/impact/full-kb-quality.ts +463 -72
  394. package/src/public/operations/catalog.ts +10 -4
  395. package/src/public/operations/check-executor.ts +3 -7
  396. package/src/public/operations/contracts.ts +38 -22
  397. package/src/public/operations/discovery-entities.ts +7 -0
  398. package/src/public/operations/discovery-executors.ts +26 -23
  399. package/src/public/operations/index.ts +1 -1
  400. package/src/public/operations/migration-plan.ts +32 -25
  401. package/src/public/operations/node-ports.ts +6 -6
  402. package/src/public/operations/repair-plan.ts +60 -23
  403. package/src/public/operations/result-envelope.ts +15 -10
  404. package/src/public/operations/runtime-types.ts +5 -0
  405. package/src/public/operations/specs/check-rules.generated.ts +37 -0
  406. package/src/public/operations/specs/check.ts +12 -21
  407. package/src/public/operations/specs/mutation-schemas.ts +22 -9
  408. package/src/public/operations/specs/planning.ts +7 -0
  409. package/src/public/operations/specs/proof.ts +43 -0
  410. package/src/public/operations/specs/reporting.ts +140 -13
  411. package/src/public/operations/symbol-repair-plan.ts +163 -3
  412. package/src/public/operations/types.ts +1 -1
  413. package/src/public/proof-fingerprint.ts +216 -0
  414. package/src/public/proof-protocol-types.d.ts +96 -0
  415. package/src/public/proof-protocol.ts +589 -0
  416. package/src/public/proof-receipt.ts +499 -0
  417. package/src/public/schemas/entity.ts +26 -10
  418. package/src/public/skills/kibi-freshness/SKILL.md +1 -1
  419. package/src/public/skills/kibi-usage/SKILL.md +41 -12
  420. package/src/public/skills/kibi-usage/resources/operation-access.md +1 -1
  421. package/src/public/skills/kibi-usage/resources/proof.md +105 -0
  422. package/src/public/skills/kibi-usage/resources/workflows.md +6 -6
  423. package/src/public/symbol-granularity.generated.ts +41 -0
  424. package/src/public/symbol-granularity.ts +35 -60
  425. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  426. package/src/public/telemetry-acceptance.ts +22 -100
  427. package/src/public/telemetry-remediation.ts +1 -1
  428. package/src/schemas/entity.schema.json +355 -215
  429. package/dist/cli-register-verification.d.ts +0 -3
  430. package/dist/cli-register-verification.d.ts.map +0 -1
  431. package/dist/cli-register-verification.js +0 -16
  432. package/dist/commands/verify.d.ts +0 -10
  433. package/dist/commands/verify.d.ts.map +0 -1
  434. package/dist/commands/verify.js +0 -126
  435. package/dist/operations/verification/ingest-verification.d.ts +0 -29
  436. package/dist/operations/verification/ingest-verification.d.ts.map +0 -1
  437. package/dist/operations/verification/ingest-verification.js +0 -192
  438. package/dist/public/operations/specs/verification.d.ts +0 -78
  439. package/dist/public/operations/specs/verification.d.ts.map +0 -1
  440. package/dist/public/operations/specs/verification.js +0 -62
  441. package/dist/public/playwright-case-id.d.ts.map +0 -1
  442. package/dist/public/verification-receipt.d.ts +0 -242
  443. package/dist/public/verification-receipt.d.ts.map +0 -1
  444. package/dist/public/verification-receipt.js +0 -296
  445. package/dist/verification/playwright-reporter.d.ts +0 -21
  446. package/dist/verification/playwright-reporter.d.ts.map +0 -1
  447. package/dist/verification/playwright-reporter.js +0 -114
  448. package/src/public/operations/specs/verification.ts +0 -78
  449. package/src/public/playwright-case-id.ts +0 -35
  450. package/src/public/verification-receipt.ts +0 -412
@@ -1,242 +0,0 @@
1
- export declare const VERIFICATION_RECEIPT_VERSION: "kibi.verification-receipt.v1";
2
- export declare const VERIFICATION_RECEIPT_V2_VERSION: "kibi.verification-receipt.v2";
3
- export declare const VERIFICATION_CONTRACT_VERSION: "kibi.verification-contract.v1";
4
- export declare const VERIFICATION_RECEIPT_MAX_AGE_SECONDS: number;
5
- export declare const VERIFICATION_RECEIPT_OUTCOMES: readonly ["passed", "failed", "errored", "cancelled", "skipped", "timed_out", "interrupted"];
6
- export declare const VERIFICATION_CONTRACT_SCHEMA: {
7
- readonly type: "object";
8
- readonly required: readonly ["version", "runner", "command_argv", "required_case_symbols", "required_projects", "success_policy"];
9
- readonly properties: {
10
- readonly version: {
11
- readonly type: "string";
12
- readonly const: "kibi.verification-contract.v1";
13
- };
14
- readonly runner: {
15
- readonly type: "string";
16
- readonly minLength: 1;
17
- };
18
- readonly command_argv: {
19
- readonly type: "array";
20
- readonly minItems: 1;
21
- readonly items: {
22
- readonly type: "string";
23
- readonly minLength: 1;
24
- };
25
- };
26
- readonly required_case_symbols: {
27
- readonly type: "array";
28
- readonly items: {
29
- readonly type: "string";
30
- readonly minLength: 1;
31
- };
32
- readonly uniqueItems: true;
33
- };
34
- readonly required_projects: {
35
- readonly type: "array";
36
- readonly items: {
37
- readonly type: "string";
38
- readonly minLength: 1;
39
- };
40
- readonly uniqueItems: true;
41
- };
42
- readonly success_policy: {
43
- readonly type: "string";
44
- readonly const: "all_required_cases_first_attempt";
45
- };
46
- };
47
- readonly additionalProperties: false;
48
- };
49
- export declare const VERIFICATION_RECEIPT_SCHEMA: {
50
- readonly oneOf: readonly [{
51
- readonly type: "object";
52
- readonly required: readonly ["version", "receipt_id", "test_id", "runner", "command", "scope", "outcome", "code_snapshot", "environment_hash", "started_at", "finished_at", "artifact_digest"];
53
- readonly properties: {
54
- readonly version: {
55
- readonly type: "string";
56
- readonly const: "kibi.verification-receipt.v1";
57
- };
58
- readonly receipt_id: {
59
- readonly type: "string";
60
- readonly pattern: "^VR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$";
61
- };
62
- readonly test_id: {
63
- readonly type: "string";
64
- readonly minLength: 1;
65
- };
66
- readonly runner: {
67
- readonly type: "string";
68
- readonly minLength: 1;
69
- };
70
- readonly command: {
71
- readonly type: "string";
72
- readonly minLength: 1;
73
- };
74
- readonly scope: {
75
- readonly type: "string";
76
- readonly enum: readonly ["unit", "integration", "end_to_end"];
77
- };
78
- readonly outcome: {
79
- readonly type: "string";
80
- readonly enum: readonly ["passed", "failed", "errored", "cancelled", "skipped", "timed_out", "interrupted"];
81
- };
82
- readonly code_snapshot: {
83
- readonly type: "string";
84
- readonly pattern: "^[a-f0-9]{64}$";
85
- };
86
- readonly environment_hash: {
87
- readonly type: "string";
88
- readonly pattern: "^[a-f0-9]{64}$";
89
- };
90
- readonly started_at: {
91
- readonly type: "string";
92
- readonly minLength: 1;
93
- };
94
- readonly finished_at: {
95
- readonly type: "string";
96
- readonly minLength: 1;
97
- };
98
- readonly artifact_digest: {
99
- readonly type: "string";
100
- readonly pattern: "^[a-f0-9]{64}$";
101
- };
102
- };
103
- readonly additionalProperties: false;
104
- }, {
105
- readonly required: readonly ["version", "receipt_id", "test_id", "runner", "command", "scope", "outcome", "code_snapshot", "environment_hash", "started_at", "finished_at", "artifact_digest", "command_argv", "contract_hash", "case_results"];
106
- readonly properties: {
107
- readonly version: {
108
- readonly type: "string";
109
- readonly const: "kibi.verification-receipt.v2";
110
- };
111
- readonly command_argv: {
112
- readonly type: "array";
113
- readonly minItems: 1;
114
- readonly items: {
115
- readonly type: "string";
116
- readonly minLength: 1;
117
- };
118
- };
119
- readonly contract_hash: {
120
- readonly type: "string";
121
- readonly pattern: "^[a-f0-9]{64}$";
122
- };
123
- readonly case_results: {
124
- readonly type: "array";
125
- readonly minItems: 1;
126
- readonly maxItems: 1000;
127
- readonly items: {
128
- readonly type: "object";
129
- readonly required: readonly ["symbol_id", "project", "outcome", "retries", "duration_ms"];
130
- readonly properties: {
131
- readonly symbol_id: {
132
- readonly type: "string";
133
- readonly minLength: 1;
134
- };
135
- readonly project: {
136
- readonly type: "string";
137
- readonly minLength: 1;
138
- };
139
- readonly outcome: {
140
- readonly type: "string";
141
- readonly enum: readonly ["passed", "failed", "timed_out", "skipped", "interrupted"];
142
- };
143
- readonly retries: {
144
- readonly type: "integer";
145
- readonly minimum: 0;
146
- };
147
- readonly duration_ms: {
148
- readonly type: "integer";
149
- readonly minimum: 0;
150
- };
151
- };
152
- readonly additionalProperties: false;
153
- };
154
- };
155
- readonly receipt_id: {
156
- readonly type: "string";
157
- readonly pattern: "^VR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$";
158
- };
159
- readonly test_id: {
160
- readonly type: "string";
161
- readonly minLength: 1;
162
- };
163
- readonly runner: {
164
- readonly type: "string";
165
- readonly minLength: 1;
166
- };
167
- readonly command: {
168
- readonly type: "string";
169
- readonly minLength: 1;
170
- };
171
- readonly scope: {
172
- readonly type: "string";
173
- readonly enum: readonly ["unit", "integration", "end_to_end"];
174
- };
175
- readonly outcome: {
176
- readonly type: "string";
177
- readonly enum: readonly ["passed", "failed", "errored", "cancelled", "skipped", "timed_out", "interrupted"];
178
- };
179
- readonly code_snapshot: {
180
- readonly type: "string";
181
- readonly pattern: "^[a-f0-9]{64}$";
182
- };
183
- readonly environment_hash: {
184
- readonly type: "string";
185
- readonly pattern: "^[a-f0-9]{64}$";
186
- };
187
- readonly started_at: {
188
- readonly type: "string";
189
- readonly minLength: 1;
190
- };
191
- readonly finished_at: {
192
- readonly type: "string";
193
- readonly minLength: 1;
194
- };
195
- readonly artifact_digest: {
196
- readonly type: "string";
197
- readonly pattern: "^[a-f0-9]{64}$";
198
- };
199
- };
200
- readonly type: "object";
201
- readonly additionalProperties: false;
202
- }];
203
- };
204
- export type VerificationReceipt = Readonly<{
205
- version: typeof VERIFICATION_RECEIPT_VERSION;
206
- receipt_id: string;
207
- test_id: string;
208
- runner: string;
209
- command: string;
210
- scope: "unit" | "integration" | "end_to_end";
211
- outcome: (typeof VERIFICATION_RECEIPT_OUTCOMES)[number];
212
- code_snapshot: string;
213
- environment_hash: string;
214
- started_at: string;
215
- finished_at: string;
216
- artifact_digest: string;
217
- }>;
218
- export type VerificationReceiptV2 = VerificationReceipt & Readonly<{
219
- version: typeof VERIFICATION_RECEIPT_V2_VERSION;
220
- command_argv: readonly string[];
221
- contract_hash: string;
222
- case_results: readonly {
223
- symbol_id: string;
224
- project: string;
225
- outcome: "passed" | "failed" | "timed_out" | "skipped" | "interrupted";
226
- retries: number;
227
- duration_ms: number;
228
- }[];
229
- }>;
230
- export type VerificationContract = Readonly<{
231
- version: typeof VERIFICATION_CONTRACT_VERSION;
232
- runner: string;
233
- command_argv: readonly string[];
234
- required_case_symbols: readonly string[];
235
- required_projects: readonly string[];
236
- success_policy: "all_required_cases_first_attempt";
237
- }>;
238
- export declare function verificationReceiptHistoryErrors(testId: string, verificationScope: unknown, receipts: readonly Readonly<Record<string, unknown>>[]): readonly string[];
239
- export declare function verificationReceiptCurrentBindingErrors(testId: string, verificationScope: unknown, receipt: Readonly<Record<string, unknown>>, contract?: Readonly<Record<string, unknown>>): readonly string[];
240
- export declare function verificationContractHash(contract: Readonly<Record<string, unknown>>): string;
241
- export declare function appendOnlyVerificationReceiptHistoryErrors(previous: readonly Readonly<Record<string, unknown>>[], next: readonly Readonly<Record<string, unknown>>[] | undefined): readonly string[];
242
- //# sourceMappingURL=verification-receipt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-receipt.d.ts","sourceRoot":"","sources":["../../src/public/verification-receipt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,EACvC,8BAAuC,CAAC;AAE1C,eAAO,MAAM,+BAA+B,EAC1C,8BAAuC,CAAC;AAE1C,eAAO,MAAM,6BAA6B,EACxC,+BAAwC,CAAC;AAE3C,eAAO,MAAM,oCAAoC,QAAmB,CAAC;AAErE,eAAO,MAAM,6BAA6B,8FAQhC,CAAC;AAuCX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC/B,CAAC;AA0CX,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAE9B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,OAAO,4BAA4B,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IAC7C,OAAO,EAAE,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAGH,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GACrD,QAAQ,CAAC;IACP,OAAO,EAAE,OAAO,+BAA+B,CAAC;IAChD,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,SAAS;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;QACvE,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;CACL,CAAC,CAAC;AAGL,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,OAAO,EAAE,OAAO,6BAA6B,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,cAAc,EAAE,kCAAkC,CAAC;CACpD,CAAC,CAAC;AAeH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,OAAO,EAC1B,QAAQ,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,GACrD,SAAS,MAAM,EAAE,CAsInB;AAGD,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC3C,SAAS,MAAM,EAAE,CA2BnB;AAgBD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC1C,MAAM,CAER;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EACtD,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,GAC7D,SAAS,MAAM,EAAE,CAoBnB"}
@@ -1,296 +0,0 @@
1
- import { createHash } from "node:crypto";
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";
7
- export const VERIFICATION_RECEIPT_MAX_AGE_SECONDS = 7 * 24 * 60 * 60;
8
- export const VERIFICATION_RECEIPT_OUTCOMES = [
9
- "passed",
10
- "failed",
11
- "errored",
12
- "cancelled",
13
- "skipped",
14
- "timed_out",
15
- "interrupted",
16
- ];
17
- const VERIFICATION_RECEIPT_V1_SCHEMA = {
18
- type: "object",
19
- required: [
20
- "version",
21
- "receipt_id",
22
- "test_id",
23
- "runner",
24
- "command",
25
- "scope",
26
- "outcome",
27
- "code_snapshot",
28
- "environment_hash",
29
- "started_at",
30
- "finished_at",
31
- "artifact_digest",
32
- ],
33
- properties: {
34
- version: { type: "string", const: VERIFICATION_RECEIPT_VERSION },
35
- receipt_id: {
36
- type: "string",
37
- pattern: "^VR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$",
38
- },
39
- test_id: { type: "string", minLength: 1 },
40
- runner: { type: "string", minLength: 1 },
41
- command: { type: "string", minLength: 1 },
42
- scope: { type: "string", enum: ["unit", "integration", "end_to_end"] },
43
- outcome: { type: "string", enum: [...VERIFICATION_RECEIPT_OUTCOMES] },
44
- code_snapshot: { type: "string", pattern: "^[a-f0-9]{64}$" },
45
- environment_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
46
- started_at: { type: "string", minLength: 1 },
47
- finished_at: { type: "string", minLength: 1 },
48
- artifact_digest: { type: "string", pattern: "^[a-f0-9]{64}$" },
49
- },
50
- additionalProperties: false,
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
- };
130
- function timestamp(value) {
131
- if (typeof value !== "string")
132
- return null;
133
- if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(value)) {
134
- return null;
135
- }
136
- const parsed = Date.parse(value);
137
- return Number.isFinite(parsed) ? parsed : null;
138
- }
139
- export function verificationReceiptHistoryErrors(testId, verificationScope, receipts) {
140
- const errors = [];
141
- let previousFinishedAt = null;
142
- if (receipts.length > 0 && typeof verificationScope !== "string") {
143
- errors.push("verification_scope is required when verification_receipts are present");
144
- }
145
- const receiptIds = new Set();
146
- for (const [index, receipt] of receipts.entries()) {
147
- const prefix = `verification_receipts[${index}]`;
148
- const receiptId = receipt.receipt_id;
149
- if (typeof receiptId === "string") {
150
- if (receiptIds.has(receiptId)) {
151
- errors.push(`${prefix}.receipt_id duplicates '${receiptId}'`);
152
- }
153
- receiptIds.add(receiptId);
154
- }
155
- if (receipt.test_id !== testId) {
156
- errors.push(`${prefix}.test_id must equal '${testId}'`);
157
- }
158
- if (!["unit", "integration", "end_to_end"].includes(receipt.scope)) {
159
- errors.push(`${prefix}.scope must be a supported verification scope`);
160
- }
161
- const startedAt = timestamp(receipt.started_at);
162
- const finishedAt = timestamp(receipt.finished_at);
163
- if (startedAt === null)
164
- errors.push(`${prefix}.started_at must be ISO-8601`);
165
- if (finishedAt === null)
166
- errors.push(`${prefix}.finished_at must be ISO-8601`);
167
- if (startedAt !== null && finishedAt !== null && finishedAt < startedAt) {
168
- errors.push(`${prefix}.finished_at must not precede started_at`);
169
- }
170
- if (finishedAt !== null &&
171
- previousFinishedAt !== null &&
172
- finishedAt <= previousFinishedAt) {
173
- errors.push(`${prefix}.finished_at must be strictly later than the previous receipt`);
174
- }
175
- if (finishedAt !== null)
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
- }
256
- }
257
- return errors;
258
- }
259
- function canonicalJson(value) {
260
- if (Array.isArray(value)) {
261
- return `[${value.map(canonicalJson).join(",")}]`;
262
- }
263
- if (value !== null && typeof value === "object") {
264
- return `{${Object.entries(value)
265
- .sort(([left], [right]) => left.localeCompare(right))
266
- .map(([key, child]) => `${JSON.stringify(key)}:${canonicalJson(child)}`)
267
- .join(",")}}`;
268
- }
269
- return JSON.stringify(value);
270
- }
271
- // implements REQ-kibi-verification-evidence-contract
272
- export function verificationContractHash(contract) {
273
- return createHash("sha256").update(canonicalJson(contract)).digest("hex");
274
- }
275
- export function appendOnlyVerificationReceiptHistoryErrors(previous, next) {
276
- if (previous.length === 0)
277
- return [];
278
- if (next === undefined) {
279
- return [
280
- "verification_receipts is append-only and cannot be removed from an existing test",
281
- ];
282
- }
283
- if (next.length < previous.length) {
284
- return [
285
- `verification_receipts is append-only: expected at least ${previous.length} historical receipt(s), received ${next.length}`,
286
- ];
287
- }
288
- for (const [index, receipt] of previous.entries()) {
289
- if (canonicalJson(next[index]) !== canonicalJson(receipt)) {
290
- return [
291
- `verification_receipts is append-only: historical receipt at index ${index} was changed, removed, or reordered`,
292
- ];
293
- }
294
- }
295
- return [];
296
- }
@@ -1,21 +0,0 @@
1
- export declare const PLAYWRIGHT_RUN_VERSION: "kibi.playwright-run.v1";
2
- export type KibiPlaywrightReporterOptions = Readonly<{
3
- outputPath?: string;
4
- codeSnapshot?: string;
5
- commandArgv?: readonly string[];
6
- environmentHash?: string;
7
- workspaceRoot?: string;
8
- now?: () => Date;
9
- }>;
10
- /** Reporter callback surface intentionally uses structural types, no Playwright dependency. */
11
- export declare class KibiPlaywrightReporter {
12
- private readonly options;
13
- private readonly cases;
14
- private startedAt;
15
- constructor(options?: KibiPlaywrightReporterOptions);
16
- onBegin(): void;
17
- onTestEnd(test: unknown, result: unknown): void;
18
- onEnd(result?: unknown): Promise<void>;
19
- }
20
- export default KibiPlaywrightReporter;
21
- //# sourceMappingURL=playwright-reporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"playwright-reporter.d.ts","sourceRoot":"","sources":["../../src/verification/playwright-reporter.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB,EAAG,wBAAiC,CAAC;AAGxE,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC,CAAC;AAuDH,+FAA+F;AAC/F,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE,6BAAkC;IAMvD,OAAO,IAAI,IAAI;IAKf,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAoCzC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7C;AAED,eAAe,sBAAsB,CAAC"}
@@ -1,114 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { mkdir, writeFile } from "node:fs/promises";
3
- import path from "node:path";
4
- import { normalizePlaywrightSourceFile, playwrightCaseId, } from "../public/playwright-case-id.js";
5
- // implements REQ-kibi-verification-evidence-contract
6
- export const PLAYWRIGHT_RUN_VERSION = "kibi.playwright-run.v1";
7
- function envHash() {
8
- const lockfile = process.env.KIBI_LOCKFILE_DIGEST ?? "unknown";
9
- return createHash("sha256")
10
- .update(JSON.stringify({
11
- platform: process.platform,
12
- arch: process.arch,
13
- node: process.version,
14
- lockfile,
15
- projects: process.env.KIBI_VERIFICATION_PROJECTS ?? "",
16
- }))
17
- .digest("hex");
18
- }
19
- function outputPath(options) {
20
- const configured = options.outputPath ?? process.env.KIBI_VERIFICATION_OUTPUT;
21
- if (!configured)
22
- throw new Error("KIBI_VERIFICATION_OUTPUT is required");
23
- return path.resolve(configured);
24
- }
25
- function titlePath(test) {
26
- const candidate = test;
27
- const value = candidate.titlePath?.();
28
- return Array.isArray(value) ? value.map(String).filter(Boolean) : [];
29
- }
30
- function sourceLocation(test) {
31
- const location = test
32
- .location;
33
- return {
34
- file: typeof location?.file === "string" ? location.file : "unknown",
35
- line: Number.isInteger(location?.line) ? Number(location?.line) : 1,
36
- };
37
- }
38
- function projectName(test, result) {
39
- const project = test.project?.();
40
- if (typeof project?.name === "string" && project.name)
41
- return project.name;
42
- const resultProject = result.projectName;
43
- return typeof resultProject === "string" && resultProject
44
- ? resultProject
45
- : "default";
46
- }
47
- /** Reporter callback surface intentionally uses structural types, no Playwright dependency. */
48
- export class KibiPlaywrightReporter {
49
- options;
50
- cases = [];
51
- startedAt;
52
- constructor(options = {}) {
53
- this.options = options;
54
- this.startedAt = (options.now ?? (() => new Date()))().toISOString();
55
- }
56
- // implements REQ-kibi-verification-evidence-contract
57
- onBegin() {
58
- this.startedAt = (this.options.now ?? (() => new Date()))().toISOString();
59
- }
60
- // implements REQ-kibi-verification-evidence-contract
61
- onTestEnd(test, result) {
62
- const resultValue = result;
63
- const location = sourceLocation(test);
64
- const titles = titlePath(test);
65
- const title = titles.join(" > ");
66
- const status = resultValue.status;
67
- const outcome = status === "passed"
68
- ? "passed"
69
- : status === "timedOut"
70
- ? "timed_out"
71
- : status === "skipped"
72
- ? "skipped"
73
- : "failed";
74
- const sourceFile = normalizePlaywrightSourceFile(location.file, this.options.workspaceRoot ?? process.cwd());
75
- this.cases.push({
76
- symbol_id: playwrightCaseId(sourceFile, title),
77
- project: projectName(test, result),
78
- outcome,
79
- retries: Number.isInteger(resultValue.retry)
80
- ? Number(resultValue.retry)
81
- : 0,
82
- duration_ms: Number.isInteger(resultValue.duration)
83
- ? Number(resultValue.duration)
84
- : 0,
85
- });
86
- }
87
- // implements REQ-kibi-verification-evidence-contract
88
- async onEnd(result) {
89
- const now = this.options.now ?? (() => new Date());
90
- const status = result?.status;
91
- const artifact = {
92
- version: PLAYWRIGHT_RUN_VERSION,
93
- runner: "playwright",
94
- command_argv: [
95
- ...(this.options.commandArgv ??
96
- (process.env.KIBI_VERIFICATION_COMMAND_ARGV
97
- ? JSON.parse(process.env.KIBI_VERIFICATION_COMMAND_ARGV)
98
- : [])),
99
- ],
100
- code_snapshot: this.options.codeSnapshot ??
101
- process.env.KIBI_VERIFICATION_SNAPSHOT ??
102
- "",
103
- environment_hash: this.options.environmentHash ?? envHash(),
104
- started_at: this.startedAt,
105
- finished_at: now().toISOString(),
106
- process_exit_code: status === "passed" ? 0 : 1,
107
- cases: this.cases,
108
- };
109
- const target = outputPath(this.options);
110
- await mkdir(path.dirname(target), { recursive: true });
111
- await writeFile(target, `${JSON.stringify(artifact, null, 2)}\n`, "utf8");
112
- }
113
- }
114
- export default KibiPlaywrightReporter;