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
@@ -16,6 +16,7 @@ import {
16
16
  validateUpsertSpec,
17
17
  } from "./specs/mutation.js";
18
18
  import { applyPlanSpec, compileIntentSpec } from "./specs/planning.js";
19
+ import { ingestProofSpec } from "./specs/proof.js";
19
20
  import { coverageSpec, findGapsSpec, graphSpec } from "./specs/reporting.js";
20
21
  import { semanticAdvisorSpec } from "./specs/semantic.js";
21
22
  import {
@@ -24,7 +25,6 @@ import {
24
25
  skillsReadSpec,
25
26
  } from "./specs/skills.js";
26
27
  import { sparqlRemoteSpec } from "./specs/sparql.js";
27
- import { ingestVerificationSpec } from "./specs/verification.js";
28
28
  import type {
29
29
  OperationName,
30
30
  OperationSpec,
@@ -52,7 +52,7 @@ export const OPERATION_CATALOG = [
52
52
  sparqlRemoteSpec,
53
53
  compileIntentSpec,
54
54
  applyPlanSpec,
55
- ingestVerificationSpec,
55
+ ingestProofSpec,
56
56
  ] as const satisfies readonly OperationSpec[];
57
57
 
58
58
  function envelopeSchema(
@@ -183,14 +183,20 @@ const SPECS_BY_NAME: ReadonlyMap<OperationName, ResolvedOperationSpec> =
183
183
  );
184
184
 
185
185
  // implements REQ-kibi-operation-interface-parity
186
- export function getSpec(name: OperationName): ResolvedOperationSpec {
187
- const spec = SPECS_BY_NAME.get(name);
186
+ export function requireKnownSpec(
187
+ spec: ResolvedOperationSpec | undefined,
188
+ name: OperationName,
189
+ ): ResolvedOperationSpec {
188
190
  if (!spec) {
189
191
  throw new RangeError(`Unknown Kibi operation: ${name}`);
190
192
  }
191
193
  return spec;
192
194
  }
193
195
 
196
+ export function getSpec(name: OperationName): ResolvedOperationSpec {
197
+ return requireKnownSpec(SPECS_BY_NAME.get(name), name);
198
+ }
199
+
194
200
  // implements REQ-kibi-operation-interface-parity
195
201
  export function listSpecs(): readonly ResolvedOperationSpec[] {
196
202
  return OPERATION_CATALOG.map(withContractDefaults);
@@ -127,7 +127,7 @@ export async function executeCheck(
127
127
  const workspaceRoot = args.workspaceRoot ?? context.workspaceRoot;
128
128
  const prolog = requireProlog(context);
129
129
  const snapshotEvidence = await readWorkspaceSnapshot(context);
130
- const verificationSnapshot = snapshotEvidence.available
130
+ const proofSnapshot = snapshotEvidence.available
131
131
  ? snapshotEvidence.snapshot.hash
132
132
  : undefined;
133
133
  const checkedAt = context.clock().toISOString();
@@ -135,7 +135,7 @@ export async function executeCheck(
135
135
  // version. `args.rules` is an invocation-time diagnostic selector only.
136
136
  const rulesAllowlist = resolveCheckRules(args);
137
137
  const hasExplicitRules = args.rules !== undefined;
138
- const impactResult = analyzeKbCheckImpact(workspaceRoot, args);
138
+ const impactResult = await analyzeKbCheckImpact(workspaceRoot, args);
139
139
  const impactQualityDiagnostics = qualityDiagnosticsFromImpact(impactResult);
140
140
  const maxDiagnosticsOption =
141
141
  args.maxDiagnostics !== undefined
@@ -152,9 +152,7 @@ export async function executeCheck(
152
152
  : await collectFullKbQualityDiagnostics({
153
153
  prolog,
154
154
  workspaceRoot,
155
- ...(verificationSnapshot !== undefined
156
- ? { verificationSnapshot }
157
- : {}),
155
+ ...(proofSnapshot !== undefined ? { proofSnapshot } : {}),
158
156
  checkedAt,
159
157
  now: context.clock(),
160
158
  ...maxDiagnosticsOption,
@@ -229,9 +227,7 @@ export async function executeCheck(
229
227
  prolog,
230
228
  hardViolationEntityIds: new Set(violations.map((v) => v.entityId)),
231
229
  workspaceRoot,
232
- ...(verificationSnapshot !== undefined
233
- ? { verificationSnapshot }
234
- : {}),
230
+ ...(proofSnapshot !== undefined ? { proofSnapshot } : {}),
235
231
  checkedAt,
236
232
  now: context.clock(),
237
233
  ...maxDiagnosticsOption,
@@ -144,10 +144,10 @@ export function hasImpactOptions(args: CheckInput): boolean {
144
144
  }
145
145
 
146
146
  // implements REQ-mcp-tool-check
147
- export function analyzeKbCheckImpact(
147
+ export async function analyzeKbCheckImpact(
148
148
  workspaceRoot: string,
149
149
  args: CheckInput,
150
- ): ChangedFileImpactResult | undefined {
150
+ ): Promise<ChangedFileImpactResult | undefined> {
151
151
  if (!hasImpactOptions(args)) {
152
152
  return undefined;
153
153
  }
@@ -33,6 +33,25 @@ function objectData(
33
33
  };
34
34
  }
35
35
 
36
+ /**
37
+ * kibi.job.v1 receipt returned by async-mode operations (kb_check with
38
+ * `async: true`) instead of the synchronous payload. Agents poll
39
+ * kb_job_status with the jobId. Declared as a union member of the operation
40
+ * data contract so hosts validating tool output against the declared schema
41
+ * accept the receipt without weakening the synchronous payload contract.
42
+ */
43
+ const jobReceiptData: OperationJsonSchema = objectData(
44
+ {
45
+ kibiProtocol: { const: 1 },
46
+ jobVersion: { const: "kibi.job.v1" },
47
+ jobId: { type: "string" },
48
+ tool: { type: "string" },
49
+ status: { type: "string" },
50
+ pollWith: { const: "kb_job_status" },
51
+ },
52
+ ["kibiProtocol", "jobVersion", "jobId", "tool", "status", "pollWith"],
53
+ );
54
+
36
55
  const stringValue: OperationJsonSchema = { type: "string" };
37
56
  const integerValue: OperationJsonSchema = { type: "integer" };
38
57
  const numberValue: OperationJsonSchema = { type: "number" };
@@ -45,7 +64,9 @@ const stringArray: OperationJsonSchema = {
45
64
  /** Preserve JSON Schema's nullable scalar/object representation in every
46
65
  * generated consumer contract. Using a `type` union keeps the catalog
47
66
  * readable and lets the MCP bridge round-trip the same wire schema. */
48
- function nullable(schema: OperationJsonSchema): OperationJsonSchema {
67
+ export function nullableJsonSchema(
68
+ schema: OperationJsonSchema,
69
+ ): OperationJsonSchema {
49
70
  const type = schema.type;
50
71
  if (typeof type === "string") {
51
72
  return { ...schema, type: [type, "null"] };
@@ -86,19 +107,23 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
86
107
  syncState: stringValue,
87
108
  kbPath: stringValue,
88
109
  lastSyncSource: stringValue,
89
- verificationSnapshot: stringValue,
90
- verificationSnapshotAvailable: booleanValue,
91
- verificationSnapshotDirty: booleanValue,
92
- verificationSnapshotFileCount: integerValue,
93
- verificationSnapshotVersion: stringValue,
94
- verificationSnapshotError: stringValue,
110
+ attachedPath: stringValue,
111
+ attachedGeneration: stringValue,
112
+ attachedDev: integerValue,
113
+ attachedIno: integerValue,
114
+ proofSnapshot: stringValue,
115
+ proofSnapshotAvailable: booleanValue,
116
+ proofSnapshotDirty: booleanValue,
117
+ proofSnapshotFileCount: integerValue,
118
+ proofSnapshotVersion: stringValue,
119
+ proofSnapshotError: stringValue,
95
120
  staleReasons: recordArray,
96
121
  staleReasonCount: integerValue,
97
122
  staleReasonsTruncated: booleanValue,
98
123
  branchAttachment: recordValue,
99
- verificationSnapshotChanges: recordArray,
100
- verificationSnapshotChangeCount: integerValue,
101
- verificationSnapshotChangesTruncated: booleanValue,
124
+ proofSnapshotChanges: recordArray,
125
+ proofSnapshotChangeCount: integerValue,
126
+ proofSnapshotChangesTruncated: booleanValue,
102
127
  branchStore: recordValue,
103
128
  engineStatus: recordValue,
104
129
  schemaStatus: recordValue,
@@ -129,6 +154,7 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
129
154
  kb_semantic_advisor: objectData({
130
155
  receipt: recordValue,
131
156
  warnings: stringArray,
157
+ capabilityPlugins: recordValue,
132
158
  }),
133
159
  kb_model_requirement: objectData({
134
160
  statement: stringValue,
@@ -204,8 +230,8 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
204
230
  valid: booleanValue,
205
231
  errors: valueArray,
206
232
  warnings: valueArray,
207
- semanticAdvisor: nullable(recordValue),
208
- normalizedPreview: nullable(recordValue),
233
+ semanticAdvisor: nullableJsonSchema(recordValue),
234
+ normalizedPreview: nullableJsonSchema(recordValue),
209
235
  }),
210
236
  kb_upsert: objectData({
211
237
  created: integerValue,
@@ -234,18 +260,25 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
234
260
  effectFailures: recordArray,
235
261
  nextActions: recordArray,
236
262
  }),
237
- kb_check: objectData({
238
- violations: valueArray,
239
- count: integerValue,
240
- diagnostics: recordArray,
241
- qualityDiagnostics: recordArray,
242
- impactDiagnostics: recordArray,
243
- sourceFiles: stringArray,
244
- extractedSymbols: recordArray,
245
- linkedEntities: recordArray,
246
- nextActions: valueArray,
247
- migrationPlan: recordValue,
248
- }),
263
+ kb_check: {
264
+ description:
265
+ "Synchronous check payload, or a kibi.job.v1 receipt when async:true detached the check into a background job (poll kb_job_status with the jobId).",
266
+ anyOf: [
267
+ objectData({
268
+ violations: valueArray,
269
+ count: integerValue,
270
+ diagnostics: recordArray,
271
+ qualityDiagnostics: recordArray,
272
+ impactDiagnostics: recordArray,
273
+ sourceFiles: stringArray,
274
+ extractedSymbols: recordArray,
275
+ linkedEntities: recordArray,
276
+ nextActions: valueArray,
277
+ migrationPlan: recordValue,
278
+ }),
279
+ jobReceiptData,
280
+ ],
281
+ },
249
282
  kb_compile_intent: objectData({
250
283
  version: stringValue,
251
284
  planHash: stringValue,
@@ -259,6 +292,7 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
259
292
  steps: valueArray,
260
293
  sourceWrites: recordArray,
261
294
  diagnostics: stringArray,
295
+ capabilityPlugins: recordValue,
262
296
  }),
263
297
  kb_apply_plan: objectData({
264
298
  version: stringValue,
@@ -280,12 +314,14 @@ export const OPERATION_DATA_SCHEMAS: Readonly<
280
314
  effectFailures: recordArray,
281
315
  nextActions: recordArray,
282
316
  }),
283
- kb_ingest_verification: objectData({
284
- receipt: recordValue,
285
- testId: stringValue,
286
- proofOutcome: stringValue,
287
- receiptCount: integerValue,
288
- upsert: recordValue,
317
+ kb_ingest_proof: objectData({
318
+ artifactDigest: stringValue,
319
+ environmentHash: stringValue,
320
+ integration: stringValue,
321
+ passed: integerValue,
322
+ failed: integerValue,
323
+ unchanged: integerValue,
324
+ results: recordArray,
289
325
  status: stringValue,
290
326
  effectFailures: recordArray,
291
327
  nextActions: recordArray,
@@ -333,11 +369,21 @@ const EFFECT_OVERRIDES: Readonly<
333
369
  "kb-write": { destructive: true, retrySafety: "unsafe" },
334
370
  "workspace-write": { destructive: true, retrySafety: "unsafe" },
335
371
  },
336
- kb_ingest_verification: {
372
+ kb_ingest_proof: {
337
373
  "kb-write": { destructive: true, retrySafety: "unsafe" },
338
374
  },
339
375
  };
340
376
 
377
+ export function assertUniqueEffectKinds(
378
+ operation: string,
379
+ declarations: readonly { readonly kind: string }[],
380
+ expectedSize: number,
381
+ ): void {
382
+ if (new Set(declarations.map(({ kind }) => kind)).size !== expectedSize) {
383
+ throw new Error(`Duplicate effect contract for ${operation}`);
384
+ }
385
+ }
386
+
341
387
  export function declaredEffects(
342
388
  operation: OperationName,
343
389
  effects: readonly OperationEffect[],
@@ -359,8 +405,6 @@ export function declaredEffects(
359
405
  openWorld: override.openWorld === true,
360
406
  };
361
407
  });
362
- if (new Set(declarations.map(({ kind }) => kind)).size !== expected.size) {
363
- throw new Error(`Duplicate effect contract for ${operation}`);
364
- }
408
+ assertUniqueEffectKinds(operation, declarations, expected.size);
365
409
  return declarations;
366
410
  }
@@ -11,6 +11,9 @@ export type EntityQueryInput = {
11
11
  readonly id?: string;
12
12
  readonly tags?: readonly string[];
13
13
  readonly sourceFile?: string;
14
+ /** Page size for index-backed queries; bounds each query's output. */
15
+ readonly limit?: number;
16
+ readonly offset?: number;
14
17
  };
15
18
 
16
19
  export const VALID_ENTITY_TYPES = [
@@ -63,6 +66,10 @@ export function buildEntityGoal(input: EntityQueryInput): string {
63
66
  }
64
67
  if (type) {
65
68
  const safeType = escapeAtomContent(type);
69
+ if (input.limit !== undefined) {
70
+ const offset = input.offset ?? 0;
71
+ return `kb_query_entities('${safeType}', none, [], none, ${input.limit}, ${offset}, Results, Count)`;
72
+ }
66
73
  return `findall([Id,'${safeType}',Props], kb_entity(Id, '${safeType}', Props), Results)`;
67
74
  }
68
75
  return "findall([Id,Type,Props], kb_entity(Id, Type, Props), Results)";
@@ -109,6 +116,52 @@ export function paginateResults<T>(
109
116
  return results.slice(offset, offset + limit);
110
117
  }
111
118
 
119
+ /**
120
+ * Page size for index-backed search candidate fetches. Each page is one
121
+ * Prolog query, so a fixed page size substantially bounds each response and
122
+ * fixes the observed large-KB output overflow; it is a practical bound, not
123
+ * a byte-size guarantee for arbitrarily large individual entity payloads.
124
+ */
125
+ // implements REQ-kibi-operation-interface-parity, REQ-mcp-search-discovery
126
+ export const SEARCH_CANDIDATE_PAGE_SIZE = 500;
127
+
128
+ // implements REQ-kibi-operation-interface-parity, REQ-mcp-search-discovery
129
+ export async function loadSearchCandidates(
130
+ prolog: Pick<PrologPort, "searchEntities">,
131
+ input: {
132
+ readonly query: string;
133
+ readonly type?: string;
134
+ readonly maxCandidates?: number;
135
+ },
136
+ signal?: AbortSignal,
137
+ ): Promise<Record<string, unknown>[]> {
138
+ const maxCandidates = input.maxCandidates ?? Number.POSITIVE_INFINITY;
139
+ const candidates: Record<string, unknown>[] = [];
140
+ let offset = 0;
141
+ let total = Number.POSITIVE_INFINITY;
142
+ while (offset < total && candidates.length < maxCandidates) {
143
+ // Call through the port property, never via a detached local: EngineClient
144
+ // searchEntities depends on `this` (this.command), and the PrologPort
145
+ // contract does not promise a pre-bound method.
146
+ const page = await prolog.searchEntities?.(
147
+ {
148
+ query: input.query,
149
+ ...(input.type !== undefined ? { type: input.type } : {}),
150
+ limit: SEARCH_CANDIDATE_PAGE_SIZE,
151
+ offset,
152
+ },
153
+ signal,
154
+ );
155
+ if (!page || page.entities.length === 0) break;
156
+ candidates.push(...page.entities);
157
+ total = page.count;
158
+ offset += page.entities.length;
159
+ }
160
+ return Number.isFinite(maxCandidates)
161
+ ? candidates.slice(0, maxCandidates)
162
+ : candidates;
163
+ }
164
+
112
165
  // implements REQ-002
113
166
  export function dedupeEntities(
114
167
  entities: readonly Record<string, unknown>[],
@@ -15,9 +15,11 @@ import {
15
15
  type BranchStoreInspection,
16
16
  branchStoreReason,
17
17
  inspectBranchStore,
18
+ storeLockJournalReason,
18
19
  } from "../../utils/branch-store.js";
19
20
  import {
20
21
  loadEntities,
22
+ loadSearchCandidates,
21
23
  paginateResults,
22
24
  validateEntityType,
23
25
  } from "./discovery-entities.js";
@@ -76,12 +78,12 @@ export type StatusPayload = {
76
78
  readonly syncState: string;
77
79
  readonly kbPath?: string;
78
80
  readonly lastSyncSource?: string;
79
- readonly verificationSnapshot?: string;
80
- readonly verificationSnapshotAvailable?: boolean;
81
- readonly verificationSnapshotDirty?: boolean;
82
- readonly verificationSnapshotFileCount?: number;
83
- readonly verificationSnapshotVersion?: string;
84
- readonly verificationSnapshotError?: string;
81
+ readonly proofSnapshot?: string;
82
+ readonly proofSnapshotAvailable?: boolean;
83
+ readonly proofSnapshotDirty?: boolean;
84
+ readonly proofSnapshotFileCount?: number;
85
+ readonly proofSnapshotVersion?: string;
86
+ readonly proofSnapshotError?: string;
85
87
  readonly staleReasons?: readonly Record<string, unknown>[];
86
88
  readonly staleReasonCount?: number;
87
89
  readonly staleReasonsTruncated?: boolean;
@@ -91,9 +93,9 @@ export type StatusPayload = {
91
93
  readonly kind: "exact" | "explicit_override" | "legacy_compat";
92
94
  readonly migrationRequired: boolean;
93
95
  };
94
- readonly verificationSnapshotChanges?: readonly Record<string, unknown>[];
95
- readonly verificationSnapshotChangeCount?: number;
96
- readonly verificationSnapshotChangesTruncated?: boolean;
96
+ readonly proofSnapshotChanges?: readonly Record<string, unknown>[];
97
+ readonly proofSnapshotChangeCount?: number;
98
+ readonly proofSnapshotChangesTruncated?: boolean;
97
99
  readonly branchStore?: BranchStoreInspection;
98
100
  readonly engineStatus?: {
99
101
  readonly state: "healthy" | "unavailable";
@@ -139,15 +141,19 @@ export async function executeQuery(
139
141
  const { type, id, tags, sourceFile, limit = 100, offset = 0 } = input;
140
142
  try {
141
143
  const prolog = requireProlog(context);
144
+ const signal = context.signal;
142
145
  const indexedPage = prolog.queryEntities
143
- ? await prolog.queryEntities({
144
- ...(type !== undefined ? { type } : {}),
145
- ...(id !== undefined ? { id } : {}),
146
- ...(tags !== undefined ? { tags } : {}),
147
- ...(sourceFile !== undefined ? { sourceFile } : {}),
148
- limit,
149
- offset,
150
- })
146
+ ? await prolog.queryEntities(
147
+ {
148
+ ...(type !== undefined ? { type } : {}),
149
+ ...(id !== undefined ? { id } : {}),
150
+ ...(tags !== undefined ? { tags } : {}),
151
+ ...(sourceFile !== undefined ? { sourceFile } : {}),
152
+ limit,
153
+ offset,
154
+ },
155
+ signal,
156
+ )
151
157
  : null;
152
158
  if (indexedPage !== null) {
153
159
  const paginated = indexedPage.entities;
@@ -259,15 +265,17 @@ export async function executeSearch(
259
265
  };
260
266
  }
261
267
  const indexedCandidates = prolog.searchEntities
262
- ? await prolog.searchEntities({
263
- query: trimmedQuery,
264
- ...(type !== undefined ? { type } : {}),
265
- limit: 100_000,
266
- offset: 0,
267
- })
268
+ ? await loadSearchCandidates(
269
+ prolog,
270
+ {
271
+ query: trimmedQuery,
272
+ ...(type !== undefined ? { type } : {}),
273
+ },
274
+ context.signal,
275
+ )
268
276
  : null;
269
277
  const entities = indexedCandidates
270
- ? [...indexedCandidates.entities]
278
+ ? [...indexedCandidates]
271
279
  : await loadEntities(prolog, {
272
280
  ...(type !== undefined ? { type } : {}),
273
281
  });
@@ -334,21 +342,27 @@ export async function executeStatus(
334
342
  };
335
343
  } else
336
344
  try {
337
- const prolog =
338
- context.prolog ??
339
- (() => {
340
- ownedEngine = new EngineClient({
341
- workspaceRoot: context.workspaceRoot,
342
- branch: attachment.kbBranch,
343
- timeout: 15_000,
344
- });
345
- return ownedEngine;
346
- })();
345
+ // Prefer an injected or session-backed engine so MCP status shares the
346
+ // same client as discovery tools. Only spawn an owned fallback when no
347
+ // host session is available (CLI status without a live runtime port).
348
+ let prolog = context.prolog;
349
+ if (!prolog && context.ensureProlog) {
350
+ prolog = await context.ensureProlog();
351
+ }
352
+ if (!prolog) {
353
+ ownedEngine = new EngineClient({
354
+ workspaceRoot: context.workspaceRoot,
355
+ branch: attachment.kbBranch,
356
+ timeout: 15_000,
357
+ });
358
+ prolog = ownedEngine;
359
+ }
347
360
  payload = await runOperationJsonQuery<StatusPayload>(
348
361
  prolog,
349
362
  "status.pl",
350
363
  "status:kb_status_json(JsonString)",
351
364
  "Status execution",
365
+ context.signal,
352
366
  );
353
367
  if (!isStatusPayload(payload)) {
354
368
  throw new Error("Status execution query returned an invalid payload");
@@ -385,6 +399,7 @@ export async function executeStatus(
385
399
  const snapshotEvidence = await readWorkspaceSnapshot(context);
386
400
  const existingReasons = payload.staleReasons ?? [];
387
401
  const storeReason = branchStoreReason(store);
402
+ const lockReason = storeLockJournalReason(store.path);
388
403
  const engineReason = engineStatus
389
404
  ? {
390
405
  code: engineStatus.errorCode ?? "engine_status_unavailable",
@@ -402,6 +417,7 @@ export async function executeStatus(
402
417
  const staleReasons = [
403
418
  ...existingReasons,
404
419
  ...(storeReason ? [storeReason] : []),
420
+ ...(lockReason ? [lockReason] : []),
405
421
  ...(engineReason ? [engineReason] : []),
406
422
  ].sort((left, right) =>
407
423
  String(left.path ?? "").localeCompare(String(right.path ?? "")),
@@ -414,23 +430,22 @@ export async function executeStatus(
414
430
  staleReasons,
415
431
  staleReasonCount: staleReasons.length,
416
432
  staleReasonsTruncated: false,
417
- verificationSnapshot: snapshotEvidence.available
433
+ proofSnapshot: snapshotEvidence.available
418
434
  ? snapshotEvidence.snapshot.hash
419
435
  : "unknown",
420
- verificationSnapshotAvailable: snapshotEvidence.available,
436
+ proofSnapshotAvailable: snapshotEvidence.available,
421
437
  ...(snapshotEvidence.available
422
438
  ? {
423
- verificationSnapshotDirty: snapshotEvidence.snapshot.dirty,
424
- verificationSnapshotFileCount: snapshotEvidence.snapshot.fileCount,
425
- verificationSnapshotVersion: snapshotEvidence.snapshot.version,
426
- verificationSnapshotChanges:
427
- snapshotEvidence.snapshot.changes ?? [],
428
- verificationSnapshotChangeCount:
439
+ proofSnapshotDirty: snapshotEvidence.snapshot.dirty,
440
+ proofSnapshotFileCount: snapshotEvidence.snapshot.fileCount,
441
+ proofSnapshotVersion: snapshotEvidence.snapshot.version,
442
+ proofSnapshotChanges: snapshotEvidence.snapshot.changes ?? [],
443
+ proofSnapshotChangeCount:
429
444
  snapshotEvidence.snapshot.changeCount ?? 0,
430
- verificationSnapshotChangesTruncated:
445
+ proofSnapshotChangesTruncated:
431
446
  snapshotEvidence.snapshot.changesTruncated ?? false,
432
447
  }
433
- : { verificationSnapshotError: snapshotEvidence.error }),
448
+ : { proofSnapshotError: snapshotEvidence.error }),
434
449
  };
435
450
  const schemaStatus = readMigrationConfigStatus(context.workspaceRoot);
436
451
  const migrationPlan = buildActionsFromStatus({
@@ -438,9 +453,9 @@ export async function executeStatus(
438
453
  branchAttachment: attachment,
439
454
  branchStore: store,
440
455
  staleReasons,
441
- verificationSnapshotAvailable: snapshotEvidence.available,
456
+ proofSnapshotAvailable: snapshotEvidence.available,
442
457
  ...(snapshotEvidence.available
443
- ? { verificationSnapshotDirty: snapshotEvidence.snapshot.dirty }
458
+ ? { proofSnapshotDirty: snapshotEvidence.snapshot.dirty }
444
459
  : {}),
445
460
  kbSnapshotId: payload.snapshotId,
446
461
  workspaceSnapshot: snapshotEvidence.available
@@ -448,7 +463,7 @@ export async function executeStatus(
448
463
  : null,
449
464
  configStatus: schemaStatus,
450
465
  });
451
- const bootstrapSourceFiles = context.fs?.glob
466
+ const listed = context.fs?.glob
452
467
  ? await context.fs.glob(
453
468
  [
454
469
  ".kb/requirements/**/*.md",
@@ -463,6 +478,7 @@ export async function executeStatus(
463
478
  { cwd: context.workspaceRoot },
464
479
  )
465
480
  : [];
481
+ const bootstrapSourceFiles = Array.isArray(listed) ? listed : [];
466
482
  const bootstrapActivation = await classifyActivation(
467
483
  context,
468
484
  bootstrapSourceFiles,
@@ -514,7 +530,7 @@ export async function executeStatus(
514
530
  content: [
515
531
  {
516
532
  type: "text",
517
- text: `Branch ${payload.branch} is ${payload.syncState} (snapshot ${payload.snapshotId}, dirty=${payload.dirty}, verificationSnapshot=${enrichedPayload.verificationSnapshot})`,
533
+ text: `Branch ${payload.branch} is ${payload.syncState} (snapshot ${payload.snapshotId}, dirty=${payload.dirty}, proofSnapshot=${enrichedPayload.proofSnapshot})`,
518
534
  },
519
535
  ],
520
536
  structuredContent: statusWithPlan,
@@ -13,7 +13,7 @@ export * from "./specs/check.js";
13
13
  export * from "./specs/discovery.js";
14
14
  export * from "./specs/modeling.js";
15
15
  export * from "./specs/planning.js";
16
- export * from "./specs/verification.js";
16
+ export * from "./specs/proof.js";
17
17
  export * from "./specs/mutation.js";
18
18
  export * from "./specs/reporting.js";
19
19
  export * from "./specs/semantic.js";