kibi-cli 1.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) 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 +127 -0
  17. package/dist/cli-register-reporting.d.ts.map +1 -1
  18. package/dist/cli-register-reporting.js +7 -0
  19. package/dist/cli.d.ts +4 -0
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +19 -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-generated.d.ts +7 -0
  26. package/dist/commands/check-generated.d.ts.map +1 -0
  27. package/dist/commands/check-generated.js +192 -0
  28. package/dist/commands/check.d.ts +14 -0
  29. package/dist/commands/check.d.ts.map +1 -1
  30. package/dist/commands/check.js +193 -46
  31. package/dist/commands/coverage.d.ts +1 -0
  32. package/dist/commands/coverage.d.ts.map +1 -1
  33. package/dist/commands/coverage.js +6 -0
  34. package/dist/commands/doctor.d.ts +22 -0
  35. package/dist/commands/doctor.d.ts.map +1 -1
  36. package/dist/commands/doctor.js +170 -23
  37. package/dist/commands/engine.d.ts +12 -0
  38. package/dist/commands/engine.d.ts.map +1 -1
  39. package/dist/commands/engine.js +42 -0
  40. package/dist/commands/github-init.d.ts +1 -0
  41. package/dist/commands/github-init.d.ts.map +1 -1
  42. package/dist/commands/github-init.js +9 -5
  43. package/dist/commands/init-helpers.d.ts.map +1 -1
  44. package/dist/commands/init-helpers.js +49 -10
  45. package/dist/commands/migrate.d.ts +4 -0
  46. package/dist/commands/migrate.d.ts.map +1 -1
  47. package/dist/commands/migrate.js +7 -7
  48. package/dist/commands/proof-explain.d.ts +10 -0
  49. package/dist/commands/proof-explain.d.ts.map +1 -0
  50. package/dist/commands/proof-explain.js +45 -0
  51. package/dist/commands/proof-impact.d.ts +7 -0
  52. package/dist/commands/proof-impact.d.ts.map +1 -0
  53. package/dist/commands/proof-impact.js +39 -0
  54. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  55. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  56. package/dist/commands/proof-migrate-legacy.js +45 -0
  57. package/dist/commands/proof-prune.d.ts +8 -0
  58. package/dist/commands/proof-prune.d.ts.map +1 -0
  59. package/dist/commands/proof-prune.js +53 -0
  60. package/dist/commands/prove.d.ts +37 -0
  61. package/dist/commands/prove.d.ts.map +1 -0
  62. package/dist/commands/prove.js +470 -0
  63. package/dist/commands/report.d.ts.map +1 -1
  64. package/dist/commands/report.js +18 -3
  65. package/dist/commands/sync/discovery.d.ts +3 -0
  66. package/dist/commands/sync/discovery.d.ts.map +1 -1
  67. package/dist/commands/sync/discovery.js +36 -28
  68. package/dist/commands/sync/manifest.d.ts +2 -1
  69. package/dist/commands/sync/manifest.d.ts.map +1 -1
  70. package/dist/commands/sync/manifest.js +55 -21
  71. package/dist/commands/sync/persistence.d.ts +4 -1
  72. package/dist/commands/sync/persistence.d.ts.map +1 -1
  73. package/dist/commands/sync/persistence.js +31 -14
  74. package/dist/commands/sync/staging.d.ts +1 -0
  75. package/dist/commands/sync/staging.d.ts.map +1 -1
  76. package/dist/commands/sync/staging.js +5 -2
  77. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  78. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  79. package/dist/commands/sync/untracked-targets.js +108 -0
  80. package/dist/commands/sync.d.ts +11 -1
  81. package/dist/commands/sync.d.ts.map +1 -1
  82. package/dist/commands/sync.js +74 -30
  83. package/dist/engine-daemon.d.ts +3 -1
  84. package/dist/engine-daemon.d.ts.map +1 -1
  85. package/dist/engine-daemon.js +49 -20
  86. package/dist/engine.d.ts +17 -77
  87. package/dist/engine.d.ts.map +1 -1
  88. package/dist/engine.js +331 -91
  89. package/dist/env/bootstrap.d.ts +84 -0
  90. package/dist/env/bootstrap.d.ts.map +1 -0
  91. package/dist/env/bootstrap.js +310 -0
  92. package/dist/extractors/manifest.d.ts +5 -0
  93. package/dist/extractors/manifest.d.ts.map +1 -1
  94. package/dist/extractors/manifest.js +46 -1
  95. package/dist/extractors/markdown.d.ts +7 -3
  96. package/dist/extractors/markdown.d.ts.map +1 -1
  97. package/dist/extractors/markdown.js +60 -24
  98. package/dist/extractors/playwright-cases.js +1 -1
  99. package/dist/extractors/relationships.d.ts +6 -0
  100. package/dist/extractors/relationships.d.ts.map +1 -1
  101. package/dist/extractors/relationships.js +1 -1
  102. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  103. package/dist/extractors/symbols-coordinator.d.ts +8 -0
  104. package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
  105. package/dist/extractors/symbols-coordinator.js +40 -0
  106. package/dist/extractors/symbols-ts.d.ts +9 -19
  107. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  108. package/dist/extractors/symbols-ts.js +34 -429
  109. package/dist/intent-search.d.ts +1 -0
  110. package/dist/intent-search.d.ts.map +1 -1
  111. package/dist/intent-search.js +11 -8
  112. package/dist/logic/ir.d.ts +1 -0
  113. package/dist/logic/ir.d.ts.map +1 -1
  114. package/dist/logic/ir.js +1 -1
  115. package/dist/operations/bootstrap/activation.d.ts +2 -1
  116. package/dist/operations/bootstrap/activation.d.ts.map +1 -1
  117. package/dist/operations/bootstrap/activation.js +11 -3
  118. package/dist/operations/bootstrap/generate.d.ts +2 -1
  119. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  120. package/dist/operations/bootstrap/generate.js +6 -3
  121. package/dist/operations/bootstrap/guidance.d.ts +1 -0
  122. package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
  123. package/dist/operations/bootstrap/guidance.js +1 -1
  124. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  125. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  126. package/dist/operations/modeling/model-requirement.js +57 -46
  127. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
  128. package/dist/operations/modeling/predicate-applicability.js +103 -4
  129. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  130. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  131. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  132. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  133. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  134. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  135. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  136. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  137. package/dist/operations/modeling/predicate-catalog.js +4 -0
  138. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  139. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  140. package/dist/operations/modeling/predicate-loader.js +4 -3
  141. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  142. package/dist/operations/modeling/predicate-ranker.js +4 -1
  143. package/dist/operations/modeling/predicate-types.d.ts +1 -1
  144. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  145. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  146. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  147. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  148. package/dist/operations/modeling/suggest-predicates.d.ts +4 -2
  149. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  150. package/dist/operations/modeling/suggest-predicates.js +82 -22
  151. package/dist/operations/mutation/contradictions.d.ts +2 -1
  152. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  153. package/dist/operations/mutation/contradictions.js +26 -5
  154. package/dist/operations/mutation/delete.d.ts +3 -0
  155. package/dist/operations/mutation/delete.d.ts.map +1 -1
  156. package/dist/operations/mutation/delete.js +100 -32
  157. package/dist/operations/mutation/relationships.d.ts +1 -0
  158. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  159. package/dist/operations/mutation/relationships.js +6 -4
  160. package/dist/operations/mutation/saga.d.ts +51 -0
  161. package/dist/operations/mutation/saga.d.ts.map +1 -0
  162. package/dist/operations/mutation/saga.js +67 -0
  163. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  164. package/dist/operations/mutation/serialization.js +3 -2
  165. package/dist/operations/mutation/source-authoring.d.ts +5 -1
  166. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  167. package/dist/operations/mutation/source-authoring.js +79 -46
  168. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  169. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  170. package/dist/operations/mutation/strict-fact.js +8 -5
  171. package/dist/operations/mutation/symbol-compiler-lock.d.ts +5 -2
  172. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -1
  173. package/dist/operations/mutation/symbol-compiler-lock.js +65 -2
  174. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  175. package/dist/operations/mutation/symbol-granularity.js +11 -89
  176. package/dist/operations/mutation/symbol-refresh.d.ts +1 -0
  177. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  178. package/dist/operations/mutation/symbol-refresh.js +10 -8
  179. package/dist/operations/mutation/upsert.d.ts +18 -2
  180. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  181. package/dist/operations/mutation/upsert.js +86 -54
  182. package/dist/operations/mutation/validate-upsert.js +2 -2
  183. package/dist/operations/mutation/validation.d.ts.map +1 -1
  184. package/dist/operations/mutation/validation.js +46 -4
  185. package/dist/operations/mutation/warnings.d.ts +1 -0
  186. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  187. package/dist/operations/mutation/warnings.js +7 -5
  188. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  189. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  190. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  191. package/dist/operations/planning/apply-plan.d.ts +8 -106
  192. package/dist/operations/planning/apply-plan.d.ts.map +1 -1
  193. package/dist/operations/planning/apply-plan.js +113 -36
  194. package/dist/operations/planning/compile-intent.d.ts +51 -0
  195. package/dist/operations/planning/compile-intent.d.ts.map +1 -1
  196. package/dist/operations/planning/compile-intent.js +133 -17
  197. package/dist/operations/proof/baseline-diff.d.ts +41 -0
  198. package/dist/operations/proof/baseline-diff.d.ts.map +1 -0
  199. package/dist/operations/proof/baseline-diff.js +153 -0
  200. package/dist/operations/proof/explain.d.ts +75 -0
  201. package/dist/operations/proof/explain.d.ts.map +1 -0
  202. package/dist/operations/proof/explain.js +294 -0
  203. package/dist/operations/proof/impact.d.ts +45 -0
  204. package/dist/operations/proof/impact.d.ts.map +1 -0
  205. package/dist/operations/proof/impact.js +118 -0
  206. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  207. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  208. package/dist/operations/proof/ingest-proof.js +348 -0
  209. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  210. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  211. package/dist/operations/proof/migrate-legacy-receipts.js +92 -0
  212. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  213. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  214. package/dist/operations/proof/prune-receipts.js +91 -0
  215. package/dist/operations/proof/receipt-document.d.ts +29 -0
  216. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  217. package/dist/operations/proof/receipt-document.js +117 -0
  218. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
  219. package/dist/operations/semantic-advisor/analysis-receipt.js +3 -9
  220. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  221. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  222. package/dist/operations/semantic-advisor/analyze-prose.js +64 -93
  223. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  224. package/dist/operations/semantic-advisor/clauses.js +20 -7
  225. package/dist/operations/semantic-advisor/plugin-orchestration.d.ts +63 -0
  226. package/dist/operations/semantic-advisor/plugin-orchestration.d.ts.map +1 -0
  227. package/dist/operations/semantic-advisor/plugin-orchestration.js +489 -0
  228. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts +15 -2
  229. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts.map +1 -1
  230. package/dist/operations/semantic-advisor/predicate-rules-core.js +7 -140
  231. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +11 -12
  232. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -1
  233. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +6 -94
  234. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts +16 -0
  235. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts.map +1 -1
  236. package/dist/operations/semantic-advisor/predicate-rules-policy.js +7 -150
  237. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts +9 -0
  238. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts.map +1 -1
  239. package/dist/operations/semantic-advisor/predicate-rules-product-tail.js +7 -102
  240. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts +13 -0
  241. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts.map +1 -1
  242. package/dist/operations/semantic-advisor/predicate-rules-product.js +7 -133
  243. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  244. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  245. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  246. package/dist/operations/semantic-advisor/types.d.ts +1 -0
  247. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  248. package/dist/plugins/compose-ontology-packs.d.ts +51 -0
  249. package/dist/plugins/compose-ontology-packs.d.ts.map +1 -0
  250. package/dist/plugins/compose-ontology-packs.js +257 -0
  251. package/dist/plugins/compose-semantic-classifier.d.ts +42 -0
  252. package/dist/plugins/compose-semantic-classifier.d.ts.map +1 -0
  253. package/dist/plugins/compose-semantic-classifier.js +211 -0
  254. package/dist/plugins/external-allowlist.d.ts +10 -0
  255. package/dist/plugins/external-allowlist.d.ts.map +1 -0
  256. package/dist/plugins/external-allowlist.js +16 -0
  257. package/dist/plugins/index.d.ts +9 -0
  258. package/dist/plugins/index.d.ts.map +1 -0
  259. package/dist/plugins/index.js +33 -0
  260. package/dist/plugins/load-plugin.d.ts +19 -0
  261. package/dist/plugins/load-plugin.d.ts.map +1 -0
  262. package/dist/plugins/load-plugin.js +59 -0
  263. package/dist/plugins/project-config.d.ts +28 -0
  264. package/dist/plugins/project-config.d.ts.map +1 -0
  265. package/dist/plugins/project-config.js +90 -0
  266. package/dist/plugins/registry.d.ts +93 -0
  267. package/dist/plugins/registry.d.ts.map +1 -0
  268. package/dist/plugins/registry.js +338 -0
  269. package/dist/plugins/resolve-package.d.ts +47 -0
  270. package/dist/plugins/resolve-package.d.ts.map +1 -0
  271. package/dist/plugins/resolve-package.js +262 -0
  272. package/dist/plugins/source-analysis-service.d.ts +44 -0
  273. package/dist/plugins/source-analysis-service.d.ts.map +1 -0
  274. package/dist/plugins/source-analysis-service.js +232 -0
  275. package/dist/prolog/codec.d.ts +13 -1
  276. package/dist/prolog/codec.d.ts.map +1 -1
  277. package/dist/prolog/codec.js +269 -154
  278. package/dist/prolog/error-terms.d.ts +47 -0
  279. package/dist/prolog/error-terms.d.ts.map +1 -0
  280. package/dist/prolog/error-terms.js +334 -0
  281. package/dist/prolog/janitor.d.ts +50 -0
  282. package/dist/prolog/janitor.d.ts.map +1 -0
  283. package/dist/prolog/janitor.js +154 -0
  284. package/dist/prolog/store-lock.d.ts +45 -0
  285. package/dist/prolog/store-lock.d.ts.map +1 -0
  286. package/dist/prolog/store-lock.js +195 -0
  287. package/dist/prolog.d.ts +7 -0
  288. package/dist/prolog.d.ts.map +1 -1
  289. package/dist/prolog.js +55 -17
  290. package/dist/proof/evaluate.d.ts +27 -0
  291. package/dist/proof/evaluate.d.ts.map +1 -0
  292. package/dist/proof/evaluate.js +151 -0
  293. package/dist/proof/inspect.d.ts +12 -0
  294. package/dist/proof/inspect.d.ts.map +1 -0
  295. package/dist/proof/inspect.js +236 -0
  296. package/dist/proof/integrations.d.ts +35 -0
  297. package/dist/proof/integrations.d.ts.map +1 -0
  298. package/dist/proof/integrations.js +123 -0
  299. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  300. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  301. package/dist/proof/producers/junit-adapter.js +186 -0
  302. package/dist/{public → proof/producers}/playwright-case-id.d.ts +1 -1
  303. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  304. package/dist/{public → proof/producers}/playwright-case-id.js +1 -1
  305. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  306. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  307. package/dist/proof/producers/playwright-reporter.js +138 -0
  308. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  309. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  310. package/dist/proof/producers/tap-adapter.js +200 -0
  311. package/dist/proof/receipt-outcome.d.ts +2 -0
  312. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  313. package/dist/proof/receipt-outcome.js +1 -0
  314. package/dist/public/diagnostic-usage.js +6 -6
  315. package/dist/public/distribution-parity.d.ts +7 -1
  316. package/dist/public/distribution-parity.d.ts.map +1 -1
  317. package/dist/public/distribution-parity.js +15 -10
  318. package/dist/public/extractors/symbols-coordinator.d.ts +1 -1
  319. package/dist/public/extractors/symbols-coordinator.d.ts.map +1 -1
  320. package/dist/public/extractors/symbols-coordinator.js +1 -1
  321. package/dist/public/impact/analyzer.d.ts +1 -1
  322. package/dist/public/impact/analyzer.d.ts.map +1 -1
  323. package/dist/public/impact/analyzer.js +6 -4
  324. package/dist/public/impact/coverage-depth-quality.d.ts +1 -0
  325. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  326. package/dist/public/impact/coverage-depth-quality.js +1 -1
  327. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  328. package/dist/public/impact/diagnostics.js +2 -2
  329. package/dist/public/impact/diff-meaning.d.ts +1 -0
  330. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  331. package/dist/public/impact/diff-meaning.js +5 -2
  332. package/dist/public/impact/full-kb-quality.d.ts +5 -2
  333. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  334. package/dist/public/impact/full-kb-quality.js +329 -64
  335. package/dist/public/operations/catalog.d.ts +450 -196
  336. package/dist/public/operations/catalog.d.ts.map +1 -1
  337. package/dist/public/operations/catalog.js +6 -4
  338. package/dist/public/operations/check-executor.d.ts.map +1 -1
  339. package/dist/public/operations/check-executor.js +4 -8
  340. package/dist/public/operations/check-helpers.d.ts +1 -1
  341. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  342. package/dist/public/operations/check-helpers.js +1 -1
  343. package/dist/public/operations/contracts.d.ts +7 -0
  344. package/dist/public/operations/contracts.d.ts.map +1 -1
  345. package/dist/public/operations/contracts.js +66 -34
  346. package/dist/public/operations/discovery-entities.d.ts +15 -0
  347. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  348. package/dist/public/operations/discovery-entities.js +38 -0
  349. package/dist/public/operations/discovery-executors.d.ts +9 -9
  350. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  351. package/dist/public/operations/discovery-executors.js +39 -31
  352. package/dist/public/operations/index.d.ts +1 -1
  353. package/dist/public/operations/index.d.ts.map +1 -1
  354. package/dist/public/operations/index.js +1 -1
  355. package/dist/public/operations/migration-plan.d.ts +4 -3
  356. package/dist/public/operations/migration-plan.d.ts.map +1 -1
  357. package/dist/public/operations/migration-plan.js +23 -21
  358. package/dist/public/operations/node-ports.js +6 -6
  359. package/dist/public/operations/prolog-json.d.ts +1 -1
  360. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  361. package/dist/public/operations/prolog-json.js +7 -7
  362. package/dist/public/operations/repair-plan.d.ts +3 -3
  363. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  364. package/dist/public/operations/repair-plan.js +49 -19
  365. package/dist/public/operations/result-envelope.d.ts +1 -0
  366. package/dist/public/operations/result-envelope.d.ts.map +1 -1
  367. package/dist/public/operations/result-envelope.js +12 -10
  368. package/dist/public/operations/runtime-types.d.ts +21 -1
  369. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  370. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  371. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  372. package/dist/public/operations/specs/check-rules.generated.js +35 -0
  373. package/dist/public/operations/specs/check.d.ts +7 -2
  374. package/dist/public/operations/specs/check.d.ts.map +1 -1
  375. package/dist/public/operations/specs/check.js +8 -20
  376. package/dist/public/operations/specs/discovery.d.ts +3 -0
  377. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  378. package/dist/public/operations/specs/discovery.js +3 -0
  379. package/dist/public/operations/specs/mutation-schemas.d.ts +257 -163
  380. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  381. package/dist/public/operations/specs/mutation-schemas.js +15 -7
  382. package/dist/public/operations/specs/planning.d.ts +9 -0
  383. package/dist/public/operations/specs/planning.d.ts.map +1 -1
  384. package/dist/public/operations/specs/planning.js +6 -0
  385. package/dist/public/operations/specs/proof.d.ts +212 -0
  386. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  387. package/dist/public/operations/specs/proof.js +30 -0
  388. package/dist/public/operations/specs/reporting.d.ts +20 -0
  389. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  390. package/dist/public/operations/specs/reporting.js +112 -12
  391. package/dist/public/operations/specs/semantic.d.ts +1 -1
  392. package/dist/public/operations/specs/semantic.d.ts.map +1 -1
  393. package/dist/public/operations/specs/semantic.js +54 -4
  394. package/dist/public/operations/specs/upsert.d.ts +257 -163
  395. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  396. package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
  397. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
  398. package/dist/public/operations/symbol-repair-plan.js +121 -4
  399. package/dist/public/operations/types.d.ts +6 -1
  400. package/dist/public/operations/types.d.ts.map +1 -1
  401. package/dist/public/proof-fingerprint.d.ts +54 -0
  402. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  403. package/dist/public/proof-fingerprint.js +141 -0
  404. package/dist/public/proof-protocol.d.ts +354 -0
  405. package/dist/public/proof-protocol.d.ts.map +1 -0
  406. package/dist/public/proof-protocol.js +454 -0
  407. package/dist/public/proof-receipt.d.ts +279 -0
  408. package/dist/public/proof-receipt.d.ts.map +1 -0
  409. package/dist/public/proof-receipt.js +377 -0
  410. package/dist/public/schemas/entity.d.ts.map +1 -1
  411. package/dist/public/schemas/entity.js +21 -7
  412. package/dist/public/skills/kibi-freshness/SKILL.md +1 -1
  413. package/dist/public/skills/kibi-usage/SKILL.md +44 -12
  414. package/dist/public/skills/kibi-usage/resources/operation-access.md +1 -1
  415. package/dist/public/skills/kibi-usage/resources/proof.md +150 -0
  416. package/dist/public/skills/kibi-usage/resources/workflows.md +6 -6
  417. package/dist/public/symbol-granularity.d.ts +3 -14
  418. package/dist/public/symbol-granularity.d.ts.map +1 -1
  419. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  420. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  421. package/dist/public/symbol-granularity.generated.js +53 -0
  422. package/dist/public/symbol-granularity.js +6 -47
  423. package/dist/public/telemetry-acceptance.d.ts +3 -77
  424. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  425. package/dist/public/telemetry-acceptance.js +4 -2
  426. package/dist/public/telemetry-remediation.js +1 -1
  427. package/dist/report/html-report.css +1240 -0
  428. package/dist/report/html-report.d.ts +4 -2
  429. package/dist/report/html-report.d.ts.map +1 -1
  430. package/dist/report/html-report.js +37 -300
  431. package/dist/runtime/cli-runtime.d.ts +2 -0
  432. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  433. package/dist/runtime/cli-runtime.js +32 -7
  434. package/dist/schemas/entity.schema.json +355 -215
  435. package/dist/search-ranking.d.ts +1 -0
  436. package/dist/search-ranking.d.ts.map +1 -1
  437. package/dist/search-ranking.js +3 -0
  438. package/dist/traceability/evidence-model.d.ts +28 -0
  439. package/dist/traceability/evidence-model.d.ts.map +1 -1
  440. package/dist/traceability/git-staged.d.ts +20 -0
  441. package/dist/traceability/git-staged.d.ts.map +1 -1
  442. package/dist/traceability/git-staged.js +145 -1
  443. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  444. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  445. package/dist/traceability/staged-diagnostics.js +78 -7
  446. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  447. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  448. package/dist/traceability/staged-file-coverage.js +284 -0
  449. package/dist/traceability/staged-impact-contract.js +4 -4
  450. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  451. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  452. package/dist/traceability/staged-symbols-manifest.js +138 -27
  453. package/dist/traceability/symbol-extract.d.ts +24 -2
  454. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  455. package/dist/traceability/symbol-extract.js +64 -208
  456. package/dist/traceability/temp-kb.d.ts +2 -0
  457. package/dist/traceability/temp-kb.d.ts.map +1 -1
  458. package/dist/traceability/temp-kb.js +13 -4
  459. package/dist/types/entities.d.ts +5 -3
  460. package/dist/types/entities.d.ts.map +1 -1
  461. package/dist/utils/branch-resolver.d.ts +1 -0
  462. package/dist/utils/branch-resolver.d.ts.map +1 -1
  463. package/dist/utils/branch-resolver.js +7 -4
  464. package/dist/utils/branch-store.d.ts +6 -0
  465. package/dist/utils/branch-store.d.ts.map +1 -1
  466. package/dist/utils/branch-store.js +27 -0
  467. package/dist/utils/kb-paths.d.ts +1 -1
  468. package/dist/utils/kb-paths.d.ts.map +1 -1
  469. package/dist/utils/kb-paths.js +1 -1
  470. package/dist/utils/rule-registry.d.ts +1 -11
  471. package/dist/utils/rule-registry.d.ts.map +1 -1
  472. package/dist/utils/rule-registry.generated.d.ts +102 -0
  473. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  474. package/dist/utils/rule-registry.generated.js +131 -0
  475. package/dist/utils/rule-registry.js +12 -113
  476. package/dist/utils/strict-modeling.d.ts +1 -0
  477. package/dist/utils/strict-modeling.d.ts.map +1 -1
  478. package/dist/utils/strict-modeling.js +1 -1
  479. package/package.json +20 -20
  480. package/src/public/diagnostic-usage.ts +6 -6
  481. package/src/public/distribution-parity.ts +17 -10
  482. package/src/public/extractors/symbols-coordinator.ts +1 -0
  483. package/src/public/impact/analyzer.ts +15 -12
  484. package/src/public/impact/coverage-depth-quality.ts +1 -1
  485. package/src/public/impact/diagnostics.ts +2 -1
  486. package/src/public/impact/diff-meaning.ts +11 -4
  487. package/src/public/impact/full-kb-quality.ts +463 -72
  488. package/src/public/operations/catalog.ts +10 -4
  489. package/src/public/operations/check-executor.ts +4 -8
  490. package/src/public/operations/check-helpers.ts +2 -2
  491. package/src/public/operations/contracts.ts +78 -34
  492. package/src/public/operations/discovery-entities.ts +53 -0
  493. package/src/public/operations/discovery-executors.ts +64 -48
  494. package/src/public/operations/index.ts +1 -1
  495. package/src/public/operations/migration-plan.ts +32 -25
  496. package/src/public/operations/node-ports.ts +6 -6
  497. package/src/public/operations/prolog-json.ts +13 -5
  498. package/src/public/operations/repair-plan.ts +60 -23
  499. package/src/public/operations/result-envelope.ts +15 -10
  500. package/src/public/operations/runtime-types.ts +26 -2
  501. package/src/public/operations/specs/check-rules.generated.ts +38 -0
  502. package/src/public/operations/specs/check.ts +12 -21
  503. package/src/public/operations/specs/discovery.ts +3 -0
  504. package/src/public/operations/specs/mutation-schemas.ts +22 -9
  505. package/src/public/operations/specs/planning.ts +7 -0
  506. package/src/public/operations/specs/proof.ts +43 -0
  507. package/src/public/operations/specs/reporting.ts +140 -13
  508. package/src/public/operations/specs/semantic.ts +79 -17
  509. package/src/public/operations/symbol-repair-plan.ts +166 -7
  510. package/src/public/operations/types.ts +6 -1
  511. package/src/public/proof-fingerprint.ts +216 -0
  512. package/src/public/proof-protocol-types.d.ts +96 -0
  513. package/src/public/proof-protocol.ts +589 -0
  514. package/src/public/proof-receipt.ts +499 -0
  515. package/src/public/schemas/entity.ts +26 -10
  516. package/src/public/skills/kibi-freshness/SKILL.md +1 -1
  517. package/src/public/skills/kibi-usage/SKILL.md +44 -12
  518. package/src/public/skills/kibi-usage/resources/operation-access.md +1 -1
  519. package/src/public/skills/kibi-usage/resources/proof.md +150 -0
  520. package/src/public/skills/kibi-usage/resources/workflows.md +6 -6
  521. package/src/public/symbol-granularity.generated.ts +74 -0
  522. package/src/public/symbol-granularity.ts +34 -59
  523. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  524. package/src/public/telemetry-acceptance.ts +22 -100
  525. package/src/public/telemetry-remediation.ts +1 -1
  526. package/src/schemas/entity.schema.json +355 -215
  527. package/dist/cli-register-verification.d.ts +0 -3
  528. package/dist/cli-register-verification.d.ts.map +0 -1
  529. package/dist/cli-register-verification.js +0 -16
  530. package/dist/commands/verify.d.ts +0 -10
  531. package/dist/commands/verify.d.ts.map +0 -1
  532. package/dist/commands/verify.js +0 -126
  533. package/dist/operations/verification/ingest-verification.d.ts +0 -29
  534. package/dist/operations/verification/ingest-verification.d.ts.map +0 -1
  535. package/dist/operations/verification/ingest-verification.js +0 -192
  536. package/dist/public/operations/specs/verification.d.ts +0 -78
  537. package/dist/public/operations/specs/verification.d.ts.map +0 -1
  538. package/dist/public/operations/specs/verification.js +0 -62
  539. package/dist/public/playwright-case-id.d.ts.map +0 -1
  540. package/dist/public/verification-receipt.d.ts +0 -242
  541. package/dist/public/verification-receipt.d.ts.map +0 -1
  542. package/dist/public/verification-receipt.js +0 -296
  543. package/dist/verification/playwright-reporter.d.ts +0 -21
  544. package/dist/verification/playwright-reporter.d.ts.map +0 -1
  545. package/dist/verification/playwright-reporter.js +0 -114
  546. package/src/public/operations/specs/verification.ts +0 -78
  547. package/src/public/playwright-case-id.ts +0 -35
  548. package/src/public/verification-receipt.ts +0 -412
@@ -1 +1 @@
1
- {"version":3,"file":"full-kb-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/full-kb-quality.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAUjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAqBpD,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAoUF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAkCvC"}
1
+ {"version":3,"file":"full-kb-quality.d.ts","sourceRoot":"","sources":["../../../src/public/impact/full-kb-quality.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAatC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAWjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASpD,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAmgBF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAAC,GAClD,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA0D7B;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,OAAO,GAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAM/C;AA2ID,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAkCvC"}
@@ -1,30 +1,17 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { parseEntityFromList, parseListOfLists, parseTriples, } from "../../prolog/codec.js";
3
+ import { normalizeEntityId, parseAtomList, parseEntityFromList, parseListOfLists, parseTriples, } from "../../prolog/codec.js";
4
4
  import { runOperationJsonQuery, toPrologAtom, toPrologList, } from "../operations/prolog-json.js";
5
+ import { PROOF_RECEIPT_MAX_AGE_SECONDS } from "../proof-receipt.js";
6
+ import relationshipSchema from "../schemas/relationship.js";
5
7
  import { analyzeTelemetryAcceptance, createTelemetryAcceptanceDiagnostics, parseTelemetryUsageLog, } from "../telemetry-acceptance.js";
6
- import { VERIFICATION_RECEIPT_MAX_AGE_SECONDS } from "../verification-receipt.js";
7
8
  import { createCoverageDepthQualityDiagnostics } from "./coverage-depth-quality.js";
8
9
  import { createRequirementQualityDiagnostics } from "./requirement-quality.js";
9
10
  import { createSymbolQualityDiagnostics } from "./symbol-quality.js";
10
- const RELATIONSHIP_TYPES = [
11
- "depends_on",
12
- "executable_for",
13
- "specified_by",
14
- "verified_by",
15
- "validates",
16
- "implements",
17
- "covered_by",
18
- "constrained_by",
19
- "constrains",
20
- "requires_property",
21
- "requires_predicate",
22
- "guards",
23
- "publishes",
24
- "consumes",
25
- "supersedes",
26
- "relates_to",
27
- ];
11
+ const RELATIONSHIP_TYPES = relationshipSchema.properties.type.enum;
12
+ const ENTITY_BATCH_SIZE = 32;
13
+ const PROLOG_OUTPUT_CAPACITY_MARKER = "Query exceeded bounded Prolog output capacity (ENOBUFS)";
14
+ const ENTITY_IDS_QUERY = "findall(Id, kb_entity(Id, _, _), Ids)";
28
15
  function stringField(entity, key) {
29
16
  const value = entity[key];
30
17
  return typeof value === "string" ? value : "";
@@ -43,6 +30,16 @@ function optionalStringArrayField(entity, key) {
43
30
  return undefined;
44
31
  return value.map((item) => String(item));
45
32
  }
33
+ function optionalBooleanField(entity, key) {
34
+ const value = entity[key];
35
+ return typeof value === "boolean" ? value : undefined;
36
+ }
37
+ function optionalObjectField(entity, key) {
38
+ const value = entity[key];
39
+ return value && typeof value === "object" && !Array.isArray(value)
40
+ ? value
41
+ : undefined;
42
+ }
46
43
  function toExtractedEntity(entity) {
47
44
  const extracted = {
48
45
  id: stringField(entity, "id"),
@@ -74,6 +71,27 @@ function toExtractedEntity(entity) {
74
71
  const logicClaims = optionalStringArrayField(entity, "logic_claims");
75
72
  if (logicClaims !== undefined)
76
73
  extracted.logic_claims = logicClaims;
74
+ const semanticClauses = optionalStringArrayField(entity, "semantic_clauses");
75
+ if (semanticClauses !== undefined)
76
+ extracted.semantic_clauses = semanticClauses;
77
+ const semanticInventoryVersion = optionalStringField(entity, "semantic_inventory_version");
78
+ if (semanticInventoryVersion === "kibi.semantic-inventory.v1") {
79
+ extracted.semantic_inventory_version = semanticInventoryVersion;
80
+ }
81
+ const semanticSourceField = optionalStringField(entity, "semantic_source_field");
82
+ if (semanticSourceField === "semantic_text" ||
83
+ semanticSourceField === "text_ref" ||
84
+ semanticSourceField === "title") {
85
+ extracted.semantic_source_field = semanticSourceField;
86
+ }
87
+ const semanticSourceHash = optionalStringField(entity, "semantic_source_hash");
88
+ if (semanticSourceHash !== undefined) {
89
+ extracted.semantic_source_hash = semanticSourceHash;
90
+ }
91
+ const semanticInventory = entity.semantic_inventory;
92
+ if (Array.isArray(semanticInventory)) {
93
+ extracted.semantic_inventory = semanticInventory;
94
+ }
77
95
  const granularityReason = optionalStringField(entity, "granularity_reason");
78
96
  if (granularityReason !== undefined) {
79
97
  extracted.granularity_reason = granularityReason;
@@ -90,6 +108,23 @@ function toExtractedEntity(entity) {
90
108
  verificationScope === "end_to_end") {
91
109
  extracted.verification_scope = verificationScope;
92
110
  }
111
+ const verificationPerspective = optionalStringField(entity, "verification_perspective");
112
+ if (verificationPerspective === "internal" ||
113
+ verificationPerspective === "consumer") {
114
+ extracted.verification_perspective = verificationPerspective;
115
+ }
116
+ const proofContract = optionalObjectField(entity, "proof_contract");
117
+ if (proofContract !== undefined) {
118
+ extracted.proof_contract = proofContract;
119
+ }
120
+ const proofBindings = entity.proof_bindings;
121
+ if (Array.isArray(proofBindings)) {
122
+ extracted.proof_bindings = proofBindings;
123
+ }
124
+ const proofReceipts = entity.proof_receipts;
125
+ if (Array.isArray(proofReceipts)) {
126
+ extracted.proof_receipts = proofReceipts;
127
+ }
93
128
  const sourceLine = optionalNumberField(entity, "sourceLine");
94
129
  if (sourceLine !== undefined)
95
130
  extracted.sourceLine = sourceLine;
@@ -108,25 +143,80 @@ function toExtractedEntity(entity) {
108
143
  factKind === "observation" ||
109
144
  factKind === "meta" ||
110
145
  factKind === "predicate_schema" ||
111
- factKind === "predicate") {
146
+ factKind === "predicate" ||
147
+ factKind === "rule_schema" ||
148
+ factKind === "rule") {
112
149
  extracted.fact_kind = factKind;
113
150
  }
114
- const claimKey = optionalStringField(entity, "claim_key");
115
- if (claimKey !== undefined)
116
- extracted.claim_key = claimKey;
117
- const claimText = optionalStringField(entity, "claim_text");
118
- if (claimText !== undefined)
119
- extracted.claim_text = claimText;
120
- const predicateName = optionalStringField(entity, "predicate_name");
121
- if (predicateName !== undefined)
122
- extracted.predicate_name = predicateName;
123
- const predicateNamespace = optionalStringField(entity, "predicate_namespace");
124
- if (predicateNamespace !== undefined) {
125
- extracted.predicate_namespace = predicateNamespace;
151
+ for (const field of [
152
+ "subject_key",
153
+ "property_key",
154
+ "value_string",
155
+ "unit",
156
+ "scope",
157
+ "valid_from",
158
+ "valid_to",
159
+ "canonical_key",
160
+ "claim_key",
161
+ "claim_text",
162
+ "predicate_name",
163
+ "predicate_namespace",
164
+ "rule_hash",
165
+ "rule_schema_id",
166
+ "rule_name",
167
+ "semantic_key",
168
+ ]) {
169
+ const value = optionalStringField(entity, field);
170
+ if (value !== undefined)
171
+ extracted[field] = value;
126
172
  }
173
+ const operator = optionalStringField(entity, "operator");
174
+ if (operator === "eq" ||
175
+ operator === "neq" ||
176
+ operator === "lt" ||
177
+ operator === "lte" ||
178
+ operator === "gt" ||
179
+ operator === "gte") {
180
+ extracted.operator = operator;
181
+ }
182
+ const valueType = optionalStringField(entity, "value_type");
183
+ if (valueType === "string" ||
184
+ valueType === "int" ||
185
+ valueType === "number" ||
186
+ valueType === "bool") {
187
+ extracted.value_type = valueType;
188
+ }
189
+ const polarity = optionalStringField(entity, "polarity");
190
+ if (polarity === "require" ||
191
+ polarity === "forbid" ||
192
+ polarity === "assert" ||
193
+ polarity === "deny") {
194
+ extracted.polarity = polarity;
195
+ }
196
+ const valueInt = optionalNumberField(entity, "value_int");
197
+ if (valueInt !== undefined)
198
+ extracted.value_int = valueInt;
199
+ const valueNumber = optionalNumberField(entity, "value_number");
200
+ if (valueNumber !== undefined)
201
+ extracted.value_number = valueNumber;
127
202
  const predicateArity = optionalNumberField(entity, "predicate_arity");
128
203
  if (predicateArity !== undefined)
129
204
  extracted.predicate_arity = predicateArity;
205
+ const claimSpanStart = optionalNumberField(entity, "claim_span_start");
206
+ if (claimSpanStart !== undefined)
207
+ extracted.claim_span_start = claimSpanStart;
208
+ const claimSpanEnd = optionalNumberField(entity, "claim_span_end");
209
+ if (claimSpanEnd !== undefined)
210
+ extracted.claim_span_end = claimSpanEnd;
211
+ const valueBool = optionalBooleanField(entity, "value_bool");
212
+ if (valueBool !== undefined)
213
+ extracted.value_bool = valueBool;
214
+ const closedWorld = optionalBooleanField(entity, "closed_world");
215
+ if (closedWorld !== undefined)
216
+ extracted.closed_world = closedWorld;
217
+ const ruleIr = optionalObjectField(entity, "rule_ir");
218
+ if (ruleIr !== undefined)
219
+ extracted.rule_ir = ruleIr;
130
220
  for (const field of [
131
221
  "argument_names",
132
222
  "argument_types",
@@ -145,18 +235,200 @@ function sourceFileFor(entity) {
145
235
  return (optionalStringField(entity, "sourceFile") ??
146
236
  optionalStringField(entity, "source_file"));
147
237
  }
148
- async function loadKbExtractionResults(prolog) {
149
- const entityResult = await prolog.query("findall([Id,Type,Props], kb_entity(Id, Type, Props), Results)");
150
- const entities = entityResult.bindings.Results
151
- ? parseListOfLists(entityResult.bindings.Results).map(parseEntityFromList)
152
- : [];
238
+ class BoundedEntityProjectionError extends Error {
239
+ constructor(message) {
240
+ super(message);
241
+ this.name = "BoundedEntityProjectionError";
242
+ }
243
+ }
244
+ function isOutputCapacityError(error) {
245
+ return error?.includes(PROLOG_OUTPUT_CAPACITY_MARKER) === true;
246
+ }
247
+ function parseAuthoritativeEntityIds(raw) {
248
+ const trimmed = raw.trim();
249
+ if (trimmed !== "[]" &&
250
+ (!trimmed.startsWith("[") || !trimmed.endsWith("]"))) {
251
+ throw new Error("Full KB entity ID enumeration returned malformed data");
252
+ }
253
+ const ids = parseAtomList(trimmed);
254
+ if (ids.some((id) => id.length === 0)) {
255
+ throw new Error("Full KB entity ID enumeration returned an empty ID");
256
+ }
257
+ return ids;
258
+ }
259
+ function validateEntityBatch(requestedIds, entities) {
260
+ const requested = new Set();
261
+ for (const id of requestedIds) {
262
+ const normalizedId = normalizeEntityId(id);
263
+ if (normalizedId.length === 0 || requested.has(normalizedId)) {
264
+ throw new Error("Full KB bounded entity projection returned duplicate or empty requested IDs");
265
+ }
266
+ requested.add(normalizedId);
267
+ }
268
+ const returned = new Map();
269
+ for (const entity of entities) {
270
+ const id = stringField(entity, "id");
271
+ const type = stringField(entity, "type");
272
+ const normalizedId = normalizeEntityId(id);
273
+ if (normalizedId.length === 0 || type.length === 0) {
274
+ throw new Error("Full KB bounded entity projection returned a malformed entity row");
275
+ }
276
+ if (!requested.has(normalizedId) || returned.has(normalizedId)) {
277
+ throw new Error(`Full KB bounded entity projection returned an unexpected entity ID: ${normalizedId}`);
278
+ }
279
+ returned.set(normalizedId, entity);
280
+ }
281
+ const missing = [...requested.keys()].filter((id) => !returned.has(id));
282
+ if (missing.length > 0) {
283
+ throw new Error(`Full KB bounded entity projection returned an incomplete page; missing ${missing.join(", ")}`);
284
+ }
285
+ return [...requested.keys()].map((id) => returned.get(id));
286
+ }
287
+ function validateIndexedEntityPage(entities, seenIds) {
288
+ const pageIds = new Set();
289
+ for (const entity of entities) {
290
+ const id = normalizeEntityId(stringField(entity, "id"));
291
+ const type = stringField(entity, "type");
292
+ if (id.length === 0 || type.length === 0) {
293
+ throw new Error("Full KB paginated entity projection returned a malformed entity row");
294
+ }
295
+ if (pageIds.has(id) || seenIds.has(id)) {
296
+ throw new Error(`Full KB paginated entity projection returned duplicate entity ID: ${id}`);
297
+ }
298
+ pageIds.add(id);
299
+ }
300
+ return [...entities];
301
+ }
302
+ function isOutputCapacityException(error) {
303
+ return isOutputCapacityError(error instanceof Error ? error.message : String(error));
304
+ }
305
+ async function loadIndexedEntityProjection(queryEntities) {
306
+ const entities = [];
307
+ const seenIds = new Set();
308
+ let offset = 0;
309
+ let pageSize = ENTITY_BATCH_SIZE;
310
+ let totalCount;
311
+ while (totalCount === undefined || offset < totalCount) {
312
+ let page;
313
+ try {
314
+ page = await queryEntities({ limit: pageSize, offset });
315
+ }
316
+ catch (error) {
317
+ if (!isOutputCapacityException(error) || pageSize === 1) {
318
+ throw error;
319
+ }
320
+ pageSize = Math.ceil(pageSize / 2);
321
+ continue;
322
+ }
323
+ if (!Number.isInteger(page.count) ||
324
+ page.count < 0 ||
325
+ (totalCount !== undefined && page.count !== totalCount)) {
326
+ throw new Error("Full KB paginated entity projection returned an inconsistent count");
327
+ }
328
+ totalCount ??= page.count;
329
+ if (page.entities.length > pageSize) {
330
+ throw new Error("Full KB paginated entity projection returned an oversized page");
331
+ }
332
+ const pageEntities = validateIndexedEntityPage(page.entities, seenIds);
333
+ if (offset + pageEntities.length > totalCount) {
334
+ throw new Error("Full KB paginated entity projection returned more rows than its count");
335
+ }
336
+ if (pageEntities.length === 0 && offset < totalCount) {
337
+ throw new Error("Full KB paginated entity projection returned an incomplete page");
338
+ }
339
+ for (const entity of pageEntities) {
340
+ seenIds.add(normalizeEntityId(stringField(entity, "id")));
341
+ }
342
+ entities.push(...pageEntities);
343
+ offset += pageEntities.length;
344
+ if (offset < totalCount && pageEntities.length < pageSize) {
345
+ throw new Error("Full KB paginated entity projection returned an incomplete page");
346
+ }
347
+ }
348
+ if (entities.length !== totalCount) {
349
+ throw new Error("Full KB paginated entity projection returned an incomplete result");
350
+ }
351
+ return entities;
352
+ }
353
+ async function loadEntityBatch(prolog, ids) {
354
+ const idTerms = ids.map((id) => toPrologAtom(id)).join(",");
355
+ const result = await prolog.query(`findall([Id,Type,Props], (member(Id, [${idTerms}]), kb_entity(Id, Type, Props)), Results)`);
356
+ if (!result.success) {
357
+ const message = result.error ?? "Unknown error";
358
+ if (isOutputCapacityError(result.error)) {
359
+ throw new BoundedEntityProjectionError(message);
360
+ }
361
+ throw new Error(`Full KB bounded entity projection query failed: ${message}`);
362
+ }
363
+ const rawRows = result.bindings.Results;
364
+ if (rawRows === undefined) {
365
+ throw new Error("Full KB bounded entity projection query returned no Results binding");
366
+ }
367
+ return validateEntityBatch(ids, parseListOfLists(rawRows).map(parseEntityFromList));
368
+ }
369
+ async function loadEntityBatchAdaptively(prolog, ids) {
370
+ try {
371
+ return await loadEntityBatch(prolog, ids);
372
+ }
373
+ catch (error) {
374
+ if (!(error instanceof BoundedEntityProjectionError))
375
+ throw error;
376
+ if (ids.length === 1) {
377
+ throw new Error(`Full KB entity projection failed for ${ids[0]}: ${error.message}`);
378
+ }
379
+ const midpoint = Math.ceil(ids.length / 2);
380
+ const left = await loadEntityBatchAdaptively(prolog, ids.slice(0, midpoint));
381
+ const right = await loadEntityBatchAdaptively(prolog, ids.slice(midpoint));
382
+ return [...left, ...right];
383
+ }
384
+ }
385
+ async function loadBoundedEntityProjection(prolog) {
386
+ const idsResult = await prolog.query(ENTITY_IDS_QUERY);
387
+ if (!idsResult.success) {
388
+ throw new Error(`Full KB entity ID enumeration query failed: ${idsResult.error ?? "Unknown error"}`);
389
+ }
390
+ const rawIds = idsResult.bindings.Ids;
391
+ if (rawIds === undefined) {
392
+ throw new Error("Full KB entity ID enumeration query returned no Ids binding");
393
+ }
394
+ const ids = parseAuthoritativeEntityIds(rawIds);
395
+ const entities = [];
396
+ for (let offset = 0; offset < ids.length; offset += ENTITY_BATCH_SIZE) {
397
+ entities.push(...(await loadEntityBatchAdaptively(prolog, ids.slice(offset, offset + ENTITY_BATCH_SIZE))));
398
+ }
399
+ return entities;
400
+ }
401
+ export async function loadKbExtractionResults(prolog) {
402
+ let entities;
403
+ if (prolog.queryEntities !== undefined) {
404
+ entities = await loadIndexedEntityProjection(prolog.queryEntities.bind(prolog));
405
+ }
406
+ else {
407
+ const entityResult = await prolog.query("findall([Id,Type,Props], kb_entity(Id, Type, Props), Results)");
408
+ if (entityResult.success) {
409
+ entities = entityResult.bindings.Results
410
+ ? parseListOfLists(entityResult.bindings.Results).map(parseEntityFromList)
411
+ : [];
412
+ }
413
+ else if (isOutputCapacityError(entityResult.error)) {
414
+ entities = await loadBoundedEntityProjection(prolog);
415
+ }
416
+ else {
417
+ throw new Error(`Full KB entity projection query failed: ${entityResult.error ?? "Unknown error"}`);
418
+ }
419
+ }
153
420
  const relationships = new Map();
154
421
  for (const relationshipType of RELATIONSHIP_TYPES) {
155
422
  const relResult = await prolog.query(`findall([From,To,'${relationshipType}'], kb_relationship(${relationshipType}, From, To), Rels)`);
423
+ if (!relResult.success) {
424
+ throw new Error(`Full KB relationship projection query failed for ${relationshipType}: ${relResult.error ?? "Unknown error"}`);
425
+ }
156
426
  const rows = relResult.bindings.Rels
157
427
  ? parseTriples(relResult.bindings.Rels)
158
428
  : [];
159
- for (const [from, to, type] of rows) {
429
+ for (const [rawFrom, rawTo, type] of rows) {
430
+ const from = normalizeEntityId(rawFrom);
431
+ const to = normalizeEntityId(rawTo);
160
432
  const current = relationships.get(from) ?? [];
161
433
  current.push({ from, to, type });
162
434
  relationships.set(from, current);
@@ -174,30 +446,29 @@ async function loadKbExtractionResults(prolog) {
174
446
  return result;
175
447
  });
176
448
  }
177
- function stringArrayField(value) {
178
- return Array.isArray(value) ? value.map(String) : undefined;
179
- }
180
- function proofStage(row) {
181
- const stages = row.proofStages;
182
- if (!stages || typeof stages !== "object" || Array.isArray(stages)) {
183
- return undefined;
184
- }
185
- const passingE2e = stages.passingE2e;
449
+ export function passingE2eStage(passingE2e) {
186
450
  return passingE2e &&
187
451
  typeof passingE2e === "object" &&
188
452
  !Array.isArray(passingE2e)
189
453
  ? passingE2e
190
454
  : undefined;
191
455
  }
192
- async function loadCoverageProofEvidence(prolog, requirementCount, verificationSnapshot, checkedAt) {
193
- if (verificationSnapshot === undefined ||
456
+ function stringArrayField(value) {
457
+ return Array.isArray(value) ? value.map(String) : undefined;
458
+ }
459
+ async function loadCoverageProofEvidence(prolog, requirementCount, proofSnapshot, checkedAt) {
460
+ if (proofSnapshot === undefined ||
194
461
  checkedAt === undefined ||
195
462
  requirementCount === 0) {
196
463
  return new Map();
197
464
  }
198
465
  let payload;
199
466
  try {
200
- payload = await runOperationJsonQuery(prolog, "discovery.pl", `discovery:coverage_report_json('req', ${toPrologList([])}, true, true, ${requirementCount}, 0, ${toPrologAtom(verificationSnapshot)}, ${toPrologAtom(checkedAt)}, ${VERIFICATION_RECEIPT_MAX_AGE_SECONDS}, JsonString)`, "Quality diagnostic coverage evidence");
467
+ // W1 push-down: the slim evidence projection returns only the fields the
468
+ // quality diagnostics consume, keeping the response far below the output
469
+ // capacity limit on large KBs (the full coverage report rows were the
470
+ // original ENOBUFS offender).
471
+ payload = await runOperationJsonQuery(prolog, "discovery.pl", `discovery:coverage_evidence_json(${toPrologList([])}, ${toPrologAtom(proofSnapshot)}, ${toPrologAtom(checkedAt)}, ${PROOF_RECEIPT_MAX_AGE_SECONDS}, JsonString)`, "Quality diagnostic coverage evidence");
201
472
  }
202
473
  catch {
203
474
  // Quality diagnostics must fail closed when the optional proof readback is
@@ -209,23 +480,17 @@ async function loadCoverageProofEvidence(prolog, requirementCount, verificationS
209
480
  const id = typeof row.id === "string" ? row.id : undefined;
210
481
  if (id === undefined)
211
482
  continue;
212
- const passingE2e = proofStage(row);
213
- const proofGaps = stringArrayField(row.proofGaps);
214
- const passingE2eTests = stringArrayField(passingE2e?.tests);
483
+ const passingE2eTests = stringArrayField(row.passingE2eTests) ?? [];
215
484
  evidence.set(id, {
216
485
  ...(typeof row.proofStatus === "string"
217
486
  ? { proofStatus: row.proofStatus }
218
487
  : {}),
219
- ...(typeof passingE2e?.status === "string"
220
- ? { passingE2eStatus: passingE2e.status }
488
+ ...(typeof row.passingE2eStatus === "string"
489
+ ? { passingE2eStatus: row.passingE2eStatus }
221
490
  : {}),
222
- ...(passingE2eTests !== undefined ? { passingE2eTests } : {}),
223
- ...(proofGaps !== undefined
224
- ? {
225
- receiptGapCodes: proofGaps.filter((gap) => gap.includes("verification_receipt") ||
226
- gap.includes("verification_contract") ||
227
- gap.includes("verification_snapshot")),
228
- }
491
+ passingE2eTests,
492
+ ...(Array.isArray(row.receiptGapCodes)
493
+ ? { receiptGapCodes: row.receiptGapCodes.map(String) }
229
494
  : {}),
230
495
  });
231
496
  }
@@ -283,7 +548,7 @@ export async function collectFullKbQualityDiagnostics(options) {
283
548
  loadKbExtractionResults(options.prolog),
284
549
  collectTelemetryDiagnostics(options.workspaceRoot, options.now ?? new Date()),
285
550
  ]);
286
- const proofEvidence = await loadCoverageProofEvidence(options.prolog, manifestResults.filter((result) => result.entity.type === "req").length, options.verificationSnapshot, options.checkedAt);
551
+ const proofEvidence = await loadCoverageProofEvidence(options.prolog, manifestResults.filter((result) => result.entity.type === "req").length, options.proofSnapshot, options.checkedAt);
287
552
  const coverageDepthDiagnostics = createCoverageDepthQualityDiagnostics(manifestResults, proofEvidence);
288
553
  const diagnostics = [
289
554
  ...telemetryDiagnostics,