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,6 +1,12 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
2
  import path from "node:path";
3
- import { analyzeSourceText } from "../../extractors/symbols-coordinator.js";
3
+ import { coarseCoordinateSpan } from "../../extractors/symbol-coordinates.js";
4
+ import {
5
+ type ManifestSymbolEntry,
6
+ analyzeSourceText,
7
+ enrichSymbolCoordinates,
8
+ } from "../../extractors/symbols-coordinator.js";
9
+ import { isCoarseGranularityReason } from "../symbol-granularity.js";
4
10
  import { loadEntities } from "./discovery-entities.js";
5
11
  import type { OperationContext } from "./runtime-types.js";
6
12
 
@@ -31,6 +37,152 @@ function coordinatesPresent(
31
37
  ].every((value) => Number.isInteger(value) && Number(value) >= 0);
32
38
  }
33
39
 
40
+ export type CoordinateRepairEvidence = Readonly<{
41
+ symbolId: string;
42
+ sourceFile: string | null;
43
+ refreshable: boolean;
44
+ reason:
45
+ | "extractable"
46
+ | "coarse_anchor"
47
+ | "extractor_miss"
48
+ | "source_unavailable";
49
+ suggestion: string;
50
+ }>;
51
+
52
+ /** Preview the same extraction and explicit coarse fallback used by refresh. */
53
+ export async function inspectCoordinateRepairs(
54
+ symbols: readonly Readonly<Record<string, unknown>>[],
55
+ workspaceRoot: string,
56
+ ): Promise<Map<string, CoordinateRepairEvidence>> {
57
+ const entries: ManifestSymbolEntry[] = symbols.map((symbol) => {
58
+ const sourceFile = sourceFileOf(symbol);
59
+ return {
60
+ id: String(symbol.id),
61
+ title: typeof symbol.title === "string" ? symbol.title : "",
62
+ ...(sourceFile === null ? {} : { sourceFile }),
63
+ ...(typeof symbol.granularity_reason === "string"
64
+ ? { granularity_reason: symbol.granularity_reason }
65
+ : {}),
66
+ };
67
+ });
68
+ const enriched = await enrichSymbolCoordinates(entries, workspaceRoot);
69
+ return new Map(
70
+ entries.map((entry, index) => {
71
+ const sourceFile = entry.sourceFile ?? null;
72
+ let source: string | null = null;
73
+ if (sourceFile) {
74
+ try {
75
+ source = readFileSync(
76
+ path.resolve(workspaceRoot, sourceFile),
77
+ "utf8",
78
+ );
79
+ } catch {
80
+ /* A missing or unreadable source requires authored repair. */
81
+ }
82
+ }
83
+ const extracted =
84
+ entry.title.length > 0 && coordinatesPresent(enriched[index] ?? {});
85
+ const coarse =
86
+ source !== null &&
87
+ sourceFile !== null &&
88
+ isCoarseGranularityReason(entry.granularity_reason) &&
89
+ coarseCoordinateSpan(sourceFile, entry.title, source) !== null;
90
+ const reason =
91
+ source === null
92
+ ? "source_unavailable"
93
+ : extracted
94
+ ? "extractable"
95
+ : coarse
96
+ ? "coarse_anchor"
97
+ : "extractor_miss";
98
+ const refreshable = source !== null && (extracted || coarse);
99
+ return [
100
+ entry.id,
101
+ {
102
+ symbolId: entry.id,
103
+ sourceFile,
104
+ refreshable,
105
+ reason,
106
+ suggestion: refreshable
107
+ ? "Refresh and persist current symbol coordinates."
108
+ : source === null
109
+ ? "Repair sourceFile to point to readable implementation code before refreshing."
110
+ : "Query and validate the symbol, then author a resolvable title/sourceFile or an explicit granularity_reason: extractor-miss (or another intentional coarse anchor) through kb_upsert before refreshing.",
111
+ },
112
+ ];
113
+ }),
114
+ );
115
+ }
116
+
117
+ /** Attach current extraction evidence before constructing requirement repairs. */
118
+ export async function addCoordinateRepairEvidence(
119
+ rows: readonly Readonly<Record<string, unknown>>[],
120
+ context: OperationContext,
121
+ ): Promise<readonly Readonly<Record<string, unknown>>[]> {
122
+ const missingByRow = rows.map((row) => {
123
+ const stages = row.proofStages as
124
+ | { sourceCoordinates?: { missingSymbols?: unknown } }
125
+ | undefined;
126
+ const missing = stages?.sourceCoordinates?.missingSymbols;
127
+ return Array.isArray(missing)
128
+ ? missing.filter((id): id is string => typeof id === "string")
129
+ : [];
130
+ });
131
+ const ids = new Set(missingByRow.flat());
132
+ if (ids.size === 0 || !context.prolog) return rows;
133
+ const symbols = (
134
+ await loadEntities(context.prolog, { type: "symbol" })
135
+ ).filter((symbol) => ids.has(String(symbol.id)));
136
+ const evidence = await inspectCoordinateRepairs(
137
+ symbols,
138
+ context.workspaceRoot,
139
+ );
140
+ return rows.map((row, index) => {
141
+ const missing = missingByRow[index] ?? [];
142
+ if (missing.length === 0) return row;
143
+ const coordinateRepairs = missing.map(
144
+ (id) =>
145
+ evidence.get(id) ?? {
146
+ symbolId: id,
147
+ sourceFile: null,
148
+ refreshable: false,
149
+ reason: "source_unavailable",
150
+ suggestion: "Query and repair the missing symbol before refreshing.",
151
+ },
152
+ );
153
+ const stages = row.proofStages as Record<string, Record<string, unknown>>;
154
+ return {
155
+ ...row,
156
+ ...(Array.isArray(row.proofRepairs)
157
+ ? {
158
+ proofRepairs: row.proofRepairs.map((repair) =>
159
+ repair?.gap === "missing_symbol_coordinates" &&
160
+ coordinateRepairs.some((item) => !item.refreshable)
161
+ ? {
162
+ ...repair,
163
+ action: [
164
+ ...new Set(
165
+ coordinateRepairs
166
+ .filter((item) => !item.refreshable)
167
+ .map((item) => item.suggestion),
168
+ ),
169
+ ].join(" "),
170
+ }
171
+ : repair,
172
+ ),
173
+ }
174
+ : {}),
175
+ proofStages: {
176
+ ...stages,
177
+ sourceCoordinates: {
178
+ ...stages.sourceCoordinates,
179
+ coordinateRepairs,
180
+ },
181
+ },
182
+ };
183
+ });
184
+ }
185
+
34
186
  function currentCandidates(
35
187
  entity: Readonly<Record<string, unknown>>,
36
188
  symbols: readonly Readonly<Record<string, unknown>>[],
@@ -92,6 +244,7 @@ export async function buildSymbolRepairPlan(
92
244
  absolute,
93
245
  readFileSync(absolute, "utf8"),
94
246
  );
247
+ if (analysis.providerId === null) continue;
95
248
  extractedByPath.set(
96
249
  source,
97
250
  analysis.symbols.map((candidate) => ({
@@ -100,10 +253,14 @@ export async function buildSymbolRepairPlan(
100
253
  })),
101
254
  );
102
255
  } catch {
103
- extractedByPath.set(source, []);
256
+ // An unavailable extractor cannot establish that a declaration is absent.
104
257
  }
105
258
  }
106
259
 
260
+ const coordinateEvidence = await inspectCoordinateRepairs(
261
+ symbols.filter((symbol) => !coordinatesPresent(symbol)),
262
+ context.workspaceRoot,
263
+ );
107
264
  const repairs = rows.flatMap((row) => {
108
265
  if (row.type !== "symbol") return [];
109
266
  const entity = symbols.find((candidate) => candidate.id === row.id);
@@ -133,7 +290,9 @@ export async function buildSymbolRepairPlan(
133
290
  : extractionProvesAbsent && entity.symbol_origin === "extracted"
134
291
  ? "delete_obsolete_symbol"
135
292
  : !coordinatesPresent(entity)
136
- ? "refresh_coordinates"
293
+ ? coordinateEvidence.get(String(entity.id))?.refreshable === true
294
+ ? "refresh_coordinates"
295
+ : "review"
137
296
  : candidates.length > 0
138
297
  ? "remap"
139
298
  : "review";
@@ -151,6 +310,7 @@ export async function buildSymbolRepairPlan(
151
310
  ? extractedByPath.has(source)
152
311
  : false,
153
312
  autoApply: false,
313
+ coordinateRepair: coordinateEvidence.get(String(entity.id)),
154
314
  },
155
315
  },
156
316
  ];
@@ -21,7 +21,7 @@ export type OperationName =
21
21
  | "kb_plan_bootstrap"
22
22
  | "kb_compile_intent"
23
23
  | "kb_apply_plan"
24
- | "kb_ingest_verification";
24
+ | "kb_ingest_proof";
25
25
 
26
26
  export type OperationEffect =
27
27
  | "local-read"
@@ -0,0 +1,216 @@
1
+ import { createHash } from "node:crypto";
2
+
3
+ import type {
4
+ ProofBinding,
5
+ ProofContract,
6
+ ProofEnvironment,
7
+ } from "./proof-protocol.js";
8
+
9
+ /** Cosmetic integration-config keys that never participate in proof identity. */
10
+ const COSMETIC_KEYS = new Set([
11
+ "description",
12
+ "label",
13
+ "labels",
14
+ "comment",
15
+ "comments",
16
+ "displayName",
17
+ "display_name",
18
+ "docs",
19
+ "notes",
20
+ ]);
21
+
22
+ export function stripCosmetic(value: unknown): unknown {
23
+ if (Array.isArray(value)) return value.map(stripCosmetic);
24
+ if (value !== null && typeof value === "object") {
25
+ const source = value as Record<string, unknown>;
26
+ const result: Record<string, unknown> = {};
27
+ for (const key of Object.keys(source).sort()) {
28
+ if (COSMETIC_KEYS.has(key)) continue;
29
+ result[key] = stripCosmetic(source[key]);
30
+ }
31
+ return result;
32
+ }
33
+ return value;
34
+ }
35
+
36
+ export function canonicalJson(value: unknown): string {
37
+ if (value === undefined) return "null";
38
+ if (Array.isArray(value)) {
39
+ return `[${value.map(canonicalJson).join(",")}]`;
40
+ }
41
+ if (value !== null && typeof value === "object") {
42
+ return `{${Object.entries(value)
43
+ .sort(([left], [right]) => left.localeCompare(right))
44
+ .map(([key, child]) => `${JSON.stringify(key)}:${canonicalJson(child)}`)
45
+ .join(",")}}`;
46
+ }
47
+ return JSON.stringify(value);
48
+ }
49
+
50
+ function sha256(value: string): string {
51
+ return createHash("sha256").update(value).digest("hex");
52
+ }
53
+
54
+ export function jsonDigest(value: unknown): string {
55
+ return sha256(canonicalJson(value));
56
+ }
57
+
58
+ /** Kibi canonicalizes the typed environment and derives the environment hash itself. */
59
+ export function environmentHash(environment: ProofEnvironment): string {
60
+ return jsonDigest(stripCosmetic(environment));
61
+ }
62
+
63
+ export function proofContractHash(contract: ProofContract): string {
64
+ return jsonDigest(contract);
65
+ }
66
+
67
+ /**
68
+ * Per-contract receipt binding: hashes what the receipt's validity actually
69
+ * depends on — the test's proof contract and the test's authored document
70
+ * with any receipt block removed — so a receipt stays valid while unrelated
71
+ * workspace state changes, and goes stale the moment the test's own contract
72
+ * or document does. Callers pass the receipt-stripped document content.
73
+ */
74
+ // implements REQ-kibi-proof-evidence-protocol
75
+ export interface ReceiptCodeScopeEntry {
76
+ readonly symbolId: string;
77
+ readonly sourceHash: string;
78
+ }
79
+
80
+ export function receiptBindingHash(
81
+ contract: ProofContract,
82
+ receiptStrippedTestDocument: string,
83
+ codeScope: readonly ReceiptCodeScopeEntry[] = [],
84
+ ): string {
85
+ const scope = codeScope
86
+ .map((entry) => ({
87
+ symbolId: entry.symbolId,
88
+ sourceHash: entry.sourceHash,
89
+ }))
90
+ .sort((left, right) => left.symbolId.localeCompare(right.symbolId));
91
+ return jsonDigest({
92
+ binding: "kibi.receipt-binding.v1",
93
+ contract: proofContractHash(contract),
94
+ testDoc: createHash("sha256")
95
+ .update(receiptStrippedTestDocument)
96
+ .digest("hex"),
97
+ codeScope: scope,
98
+ });
99
+ }
100
+
101
+ export type ProofIntegrationExecution = Readonly<{
102
+ id: string;
103
+ producer: string;
104
+ producer_version?: string;
105
+ command: readonly string[];
106
+ artifact?: string;
107
+ targets?: readonly string[];
108
+ options?: Record<string, unknown>;
109
+ }>;
110
+
111
+ export type ProofFingerprintComponents = Readonly<{
112
+ contract: string;
113
+ integration: string;
114
+ command: string;
115
+ bindings: string;
116
+ producer: string;
117
+ }>;
118
+
119
+ export type ProofFingerprint = Readonly<{
120
+ fingerprint: string;
121
+ components: ProofFingerprintComponents;
122
+ }>;
123
+
124
+ function integrationExecutionProjection(
125
+ integration: ProofIntegrationExecution,
126
+ ): Record<string, unknown> {
127
+ return {
128
+ id: integration.id,
129
+ producer: integration.producer,
130
+ ...(integration.producer_version !== undefined
131
+ ? { producer_version: integration.producer_version }
132
+ : {}),
133
+ command: [...integration.command],
134
+ ...(integration.artifact !== undefined
135
+ ? { artifact: integration.artifact }
136
+ : {}),
137
+ ...(integration.targets !== undefined
138
+ ? { targets: [...integration.targets] }
139
+ : {}),
140
+ ...(integration.options !== undefined
141
+ ? { options: stripCosmetic(integration.options) }
142
+ : {}),
143
+ };
144
+ }
145
+
146
+ function normalizedBindings(
147
+ bindings: readonly ProofBinding[],
148
+ ): readonly ProofBinding[] {
149
+ return [...bindings]
150
+ .map((binding) => ({
151
+ symbol_id: binding.symbol_id,
152
+ target: binding.target,
153
+ ...(binding.native_id !== undefined
154
+ ? { native_id: binding.native_id }
155
+ : {}),
156
+ ...(binding.aliases !== undefined
157
+ ? { aliases: [...binding.aliases] }
158
+ : {}),
159
+ ...(binding.source_file !== undefined
160
+ ? { source_file: binding.source_file }
161
+ : {}),
162
+ ...(binding.line !== undefined ? { line: binding.line } : {}),
163
+ }))
164
+ .sort((left, right) =>
165
+ `${left.target}\0${left.symbol_id}`.localeCompare(
166
+ `${right.target}\0${right.symbol_id}`,
167
+ ),
168
+ );
169
+ }
170
+
171
+ /**
172
+ * The effective proof fingerprint binds a receipt to everything that changes
173
+ * what executes or how evidence maps to obligations: the semantic contract,
174
+ * the integration's execution semantics, the exact command, and the bindings.
175
+ * Cosmetic metadata is excluded, so editing a description never stales proof.
176
+ */
177
+ export function effectiveProofFingerprint(input: {
178
+ contract: ProofContract;
179
+ integration: ProofIntegrationExecution;
180
+ bindings: readonly ProofBinding[];
181
+ }): ProofFingerprint {
182
+ const integrationProjection = integrationExecutionProjection(
183
+ input.integration,
184
+ );
185
+ const components: ProofFingerprintComponents = {
186
+ contract: proofContractHash(input.contract),
187
+ integration: jsonDigest(integrationProjection),
188
+ command: jsonDigest([...input.integration.command]),
189
+ bindings: jsonDigest(normalizedBindings(input.bindings)),
190
+ producer: jsonDigest({
191
+ producer: input.integration.producer,
192
+ ...(input.integration.producer_version !== undefined
193
+ ? { version: input.integration.producer_version }
194
+ : {}),
195
+ }),
196
+ };
197
+ return { fingerprint: jsonDigest(components), components };
198
+ }
199
+
200
+ export const FINGERPRINT_COMPONENT_NAMES = [
201
+ "contract",
202
+ "integration",
203
+ "command",
204
+ "bindings",
205
+ "producer",
206
+ ] as const;
207
+
208
+ /** Names the fingerprint components that drifted between two executions. */
209
+ export function fingerprintDrift(
210
+ previous: ProofFingerprintComponents,
211
+ current: ProofFingerprintComponents,
212
+ ): string[] {
213
+ return FINGERPRINT_COMPONENT_NAMES.filter(
214
+ (name) => previous[name] !== current[name],
215
+ );
216
+ }
@@ -0,0 +1,96 @@
1
+ // implements REQ-kibi-proof-evidence-protocol
2
+ export type ProofRunOutcome =
3
+ | "passed"
4
+ | "failed"
5
+ | "errored"
6
+ | "cancelled"
7
+ | "timed_out"
8
+ | "interrupted"
9
+ | "no_results";
10
+
11
+ export type ProofResultOutcome =
12
+ | "passed"
13
+ | "failed"
14
+ | "timed_out"
15
+ | "skipped"
16
+ | "interrupted"
17
+ | "errored";
18
+
19
+ export type ProofBindingKind = "native_case" | "aggregate_run";
20
+ export type AttemptsStatus = "complete" | "unavailable";
21
+ export type RunFailurePhase =
22
+ | "setup"
23
+ | "collection"
24
+ | "execution"
25
+ | "teardown"
26
+ | "infrastructure";
27
+ export type SuccessPolicy = "all_required_first_attempt";
28
+
29
+ export type ProofAttempt = Readonly<{
30
+ outcome: ProofResultOutcome;
31
+ duration_ms?: number;
32
+ }>;
33
+
34
+ export type ProofAttempts = Readonly<
35
+ | { status: "complete"; entries: readonly ProofAttempt[] }
36
+ | { status: "unavailable" }
37
+ >;
38
+
39
+ export type ProofResult = Readonly<{
40
+ symbol_id: string;
41
+ target: string;
42
+ outcome: ProofResultOutcome;
43
+ binding: ProofBindingKind;
44
+ native_id?: string;
45
+ attempts: ProofAttempts;
46
+ diagnostics?: readonly string[];
47
+ }>;
48
+
49
+ export type ProducerProvenance = Readonly<{
50
+ name: string;
51
+ version?: string;
52
+ }>;
53
+
54
+ export type ProofEnvironment = Readonly<Record<string, unknown>>;
55
+
56
+ export type ProofRun = Readonly<{
57
+ outcome: ProofRunOutcome;
58
+ exit_code: number;
59
+ started_at: string;
60
+ finished_at: string;
61
+ failure_phase?: RunFailurePhase;
62
+ }>;
63
+
64
+ export type ProofRunArtifact = Readonly<{
65
+ version: "kibi.proof-run.v1";
66
+ producer: ProducerProvenance;
67
+ executor?: ProducerProvenance;
68
+ command_argv: readonly string[];
69
+ code_snapshot: string;
70
+ environment: ProofEnvironment;
71
+ run: ProofRun;
72
+ proof_results: readonly ProofResult[];
73
+ integration?: string;
74
+ diagnostics?: readonly string[];
75
+ }>;
76
+
77
+ export type ProofObligation = Readonly<{
78
+ symbol_id: string;
79
+ target: string;
80
+ }>;
81
+
82
+ export type ProofContract = Readonly<{
83
+ version: "kibi.proof-contract.v1";
84
+ integration: string;
85
+ required_proofs: readonly ProofObligation[];
86
+ success_policy: SuccessPolicy;
87
+ }>;
88
+
89
+ export type ProofBinding = Readonly<{
90
+ symbol_id: string;
91
+ target: string;
92
+ native_id?: string;
93
+ aliases?: readonly string[];
94
+ source_file?: string;
95
+ line?: number;
96
+ }>;