kibi-cli 0.19.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (672) 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.d.ts.map +1 -1
  8. package/dist/cli-operation-loader.js +53 -20
  9. package/dist/cli-operation-metadata.d.ts +21 -8
  10. package/dist/cli-operation-metadata.d.ts.map +1 -1
  11. package/dist/cli-operation-metadata.js +27 -10
  12. package/dist/cli-protocol.d.ts.map +1 -1
  13. package/dist/cli-protocol.js +38 -8
  14. package/dist/cli-register-foundation.d.ts.map +1 -1
  15. package/dist/cli-register-foundation.js +14 -2
  16. package/dist/cli-register-maintenance.d.ts.map +1 -1
  17. package/dist/cli-register-maintenance.js +33 -4
  18. package/dist/cli-register-proof.d.ts +3 -0
  19. package/dist/cli-register-proof.d.ts.map +1 -0
  20. package/dist/cli-register-proof.js +103 -0
  21. package/dist/cli-register-reporting.d.ts.map +1 -1
  22. package/dist/cli-register-reporting.js +11 -0
  23. package/dist/cli.d.ts +4 -0
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +17 -8
  26. package/dist/commands/aggregated-checks.d.ts +1 -2
  27. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  28. package/dist/commands/aggregated-checks.js +14 -9
  29. package/dist/commands/branch.d.ts +37 -0
  30. package/dist/commands/branch.d.ts.map +1 -1
  31. package/dist/commands/branch.js +375 -40
  32. package/dist/commands/check.d.ts +14 -0
  33. package/dist/commands/check.d.ts.map +1 -1
  34. package/dist/commands/check.js +209 -110
  35. package/dist/commands/coverage.d.ts +1 -0
  36. package/dist/commands/coverage.d.ts.map +1 -1
  37. package/dist/commands/coverage.js +6 -0
  38. package/dist/commands/discovery-shared.d.ts.map +1 -1
  39. package/dist/commands/discovery-shared.js +10 -19
  40. package/dist/commands/doctor.d.ts +26 -1
  41. package/dist/commands/doctor.d.ts.map +1 -1
  42. package/dist/commands/doctor.js +291 -30
  43. package/dist/commands/engine.d.ts +12 -0
  44. package/dist/commands/engine.d.ts.map +1 -1
  45. package/dist/commands/engine.js +50 -7
  46. package/dist/commands/gc.d.ts +5 -2
  47. package/dist/commands/gc.d.ts.map +1 -1
  48. package/dist/commands/gc.js +140 -71
  49. package/dist/commands/github-init.d.ts +57 -0
  50. package/dist/commands/github-init.d.ts.map +1 -0
  51. package/dist/commands/github-init.js +314 -0
  52. package/dist/commands/init-helpers.d.ts +1 -1
  53. package/dist/commands/init-helpers.d.ts.map +1 -1
  54. package/dist/commands/init-helpers.js +109 -28
  55. package/dist/commands/init.d.ts +2 -0
  56. package/dist/commands/init.d.ts.map +1 -1
  57. package/dist/commands/init.js +79 -24
  58. package/dist/commands/legacy-storage-migration.d.ts +54 -0
  59. package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
  60. package/dist/commands/legacy-storage-migration.js +277 -0
  61. package/dist/commands/migrate.d.ts +11 -0
  62. package/dist/commands/migrate.d.ts.map +1 -1
  63. package/dist/commands/migrate.js +249 -96
  64. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  65. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  66. package/dist/commands/proof-migrate-legacy.js +45 -0
  67. package/dist/commands/proof-prune.d.ts +8 -0
  68. package/dist/commands/proof-prune.d.ts.map +1 -0
  69. package/dist/commands/proof-prune.js +53 -0
  70. package/dist/commands/prove.d.ts +37 -0
  71. package/dist/commands/prove.d.ts.map +1 -0
  72. package/dist/commands/prove.js +470 -0
  73. package/dist/commands/report.d.ts +24 -0
  74. package/dist/commands/report.d.ts.map +1 -0
  75. package/dist/commands/report.js +191 -0
  76. package/dist/commands/sync/cache.d.ts +16 -3
  77. package/dist/commands/sync/cache.d.ts.map +1 -1
  78. package/dist/commands/sync/cache.js +111 -4
  79. package/dist/commands/sync/discovery.d.ts +26 -2
  80. package/dist/commands/sync/discovery.d.ts.map +1 -1
  81. package/dist/commands/sync/discovery.js +204 -15
  82. package/dist/commands/sync/extraction.d.ts +8 -1
  83. package/dist/commands/sync/extraction.d.ts.map +1 -1
  84. package/dist/commands/sync/extraction.js +38 -4
  85. package/dist/commands/sync/manifest.d.ts +9 -6
  86. package/dist/commands/sync/manifest.d.ts.map +1 -1
  87. package/dist/commands/sync/manifest.js +195 -60
  88. package/dist/commands/sync/persistence.d.ts +4 -1
  89. package/dist/commands/sync/persistence.d.ts.map +1 -1
  90. package/dist/commands/sync/persistence.js +26 -12
  91. package/dist/commands/sync/staging.d.ts +1 -0
  92. package/dist/commands/sync/staging.d.ts.map +1 -1
  93. package/dist/commands/sync/staging.js +5 -2
  94. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  95. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  96. package/dist/commands/sync/untracked-targets.js +108 -0
  97. package/dist/commands/sync.d.ts +17 -1
  98. package/dist/commands/sync.d.ts.map +1 -1
  99. package/dist/commands/sync.js +375 -106
  100. package/dist/diagnostics.d.ts +1 -1
  101. package/dist/diagnostics.d.ts.map +1 -1
  102. package/dist/engine-daemon.d.ts +3 -1
  103. package/dist/engine-daemon.d.ts.map +1 -1
  104. package/dist/engine-daemon.js +49 -20
  105. package/dist/engine.d.ts +34 -3
  106. package/dist/engine.d.ts.map +1 -1
  107. package/dist/engine.js +578 -42
  108. package/dist/env.d.ts.map +1 -1
  109. package/dist/env.js +5 -6
  110. package/dist/extractors/manifest.d.ts +13 -1
  111. package/dist/extractors/manifest.d.ts.map +1 -1
  112. package/dist/extractors/manifest.js +97 -10
  113. package/dist/extractors/markdown.d.ts +5 -2
  114. package/dist/extractors/markdown.d.ts.map +1 -1
  115. package/dist/extractors/markdown.js +47 -12
  116. package/dist/extractors/playwright-cases.d.ts +24 -0
  117. package/dist/extractors/playwright-cases.d.ts.map +1 -0
  118. package/dist/extractors/playwright-cases.js +126 -0
  119. package/dist/extractors/relationships.d.ts +6 -0
  120. package/dist/extractors/relationships.d.ts.map +1 -1
  121. package/dist/extractors/relationships.js +2 -1
  122. package/dist/extractors/symbol-coordinates.d.ts +81 -3
  123. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  124. package/dist/extractors/symbol-coordinates.js +389 -51
  125. package/dist/extractors/symbols-coordinator.js +11 -1
  126. package/dist/extractors/symbols-ts.d.ts +1 -0
  127. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  128. package/dist/extractors/symbols-ts.js +142 -67
  129. package/dist/intent-search.d.ts +61 -0
  130. package/dist/intent-search.d.ts.map +1 -0
  131. package/dist/intent-search.js +437 -0
  132. package/dist/logic/ir.d.ts +1 -0
  133. package/dist/logic/ir.d.ts.map +1 -1
  134. package/dist/logic/ir.js +1 -1
  135. package/dist/operations/bootstrap/activation.d.ts +5 -0
  136. package/dist/operations/bootstrap/activation.d.ts.map +1 -0
  137. package/dist/operations/{autopilot → bootstrap}/activation.js +58 -33
  138. package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
  139. package/dist/operations/bootstrap/candidates.d.ts +4 -0
  140. package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
  141. package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
  142. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
  143. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
  144. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
  145. package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
  146. package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
  147. package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
  148. package/dist/operations/bootstrap/generate.d.ts +9 -0
  149. package/dist/operations/bootstrap/generate.d.ts.map +1 -0
  150. package/dist/operations/bootstrap/generate.js +207 -0
  151. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
  152. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
  153. package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
  154. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +3 -2
  155. package/dist/operations/bootstrap/guidance.d.ts.map +1 -0
  156. package/dist/operations/{autopilot → bootstrap}/guidance.js +3 -1
  157. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
  158. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
  159. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
  160. package/dist/operations/bootstrap/presentation.d.ts +15 -0
  161. package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
  162. package/dist/operations/bootstrap/presentation.js +177 -0
  163. package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
  164. package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
  165. package/dist/operations/bootstrap/types.d.ts.map +1 -0
  166. package/dist/operations/bootstrap/types.js +25 -0
  167. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  168. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  169. package/dist/operations/modeling/model-requirement.js +57 -63
  170. package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
  171. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
  172. package/dist/operations/modeling/predicate-applicability.js +375 -0
  173. package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
  174. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  175. package/dist/operations/modeling/predicate-applyplan.js +100 -3
  176. package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
  177. package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
  178. package/dist/operations/modeling/predicate-bindings.js +122 -0
  179. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  180. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  181. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  182. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  183. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
  184. package/dist/operations/modeling/predicate-catalog-4.js +155 -0
  185. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  186. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  187. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  188. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  189. package/dist/operations/modeling/predicate-catalog.js +4 -0
  190. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
  191. package/dist/operations/modeling/predicate-inference-1.js +8 -0
  192. package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
  193. package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
  194. package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
  195. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  196. package/dist/operations/modeling/predicate-inference.js +4 -0
  197. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  198. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  199. package/dist/operations/modeling/predicate-loader.js +11 -3
  200. package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
  201. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  202. package/dist/operations/modeling/predicate-ranker.js +159 -24
  203. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
  204. package/dist/operations/modeling/predicate-score-3.js +6 -0
  205. package/dist/operations/modeling/predicate-types.d.ts +35 -1
  206. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  207. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
  208. package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
  209. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  210. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  211. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  212. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
  213. package/dist/operations/modeling/predicate-utils.js +2 -0
  214. package/dist/operations/modeling/suggest-predicates.d.ts +4 -2
  215. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  216. package/dist/operations/modeling/suggest-predicates.js +203 -32
  217. package/dist/operations/mutation/contradictions.d.ts +2 -1
  218. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  219. package/dist/operations/mutation/contradictions.js +26 -5
  220. package/dist/operations/mutation/delete.d.ts +3 -0
  221. package/dist/operations/mutation/delete.d.ts.map +1 -1
  222. package/dist/operations/mutation/delete.js +483 -19
  223. package/dist/operations/mutation/entity-projection.d.ts +11 -0
  224. package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
  225. package/dist/operations/mutation/entity-projection.js +14 -0
  226. package/dist/operations/mutation/relationships.d.ts +11 -0
  227. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  228. package/dist/operations/mutation/relationships.js +77 -5
  229. package/dist/operations/mutation/saga.d.ts +51 -0
  230. package/dist/operations/mutation/saga.d.ts.map +1 -0
  231. package/dist/operations/mutation/saga.js +67 -0
  232. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  233. package/dist/operations/mutation/serialization.js +3 -1
  234. package/dist/operations/mutation/source-authoring.d.ts +65 -0
  235. package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
  236. package/dist/operations/mutation/source-authoring.js +576 -0
  237. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  238. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  239. package/dist/operations/mutation/strict-fact.js +8 -5
  240. package/dist/operations/mutation/symbol-compiler-lock.d.ts +54 -0
  241. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
  242. package/dist/operations/mutation/symbol-compiler-lock.js +337 -0
  243. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  244. package/dist/operations/mutation/symbol-granularity.js +35 -4
  245. package/dist/operations/mutation/symbol-refresh.d.ts +19 -1
  246. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  247. package/dist/operations/mutation/symbol-refresh.js +227 -63
  248. package/dist/operations/mutation/types.d.ts +57 -1
  249. package/dist/operations/mutation/types.d.ts.map +1 -1
  250. package/dist/operations/mutation/upsert.d.ts +18 -2
  251. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  252. package/dist/operations/mutation/upsert.js +403 -32
  253. package/dist/operations/mutation/validate-upsert.js +2 -2
  254. package/dist/operations/mutation/validation.d.ts.map +1 -1
  255. package/dist/operations/mutation/validation.js +47 -4
  256. package/dist/operations/mutation/warnings.d.ts +1 -0
  257. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  258. package/dist/operations/mutation/warnings.js +7 -5
  259. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  260. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  261. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  262. package/dist/operations/planning/apply-plan.d.ts +19 -0
  263. package/dist/operations/planning/apply-plan.d.ts.map +1 -0
  264. package/dist/operations/planning/apply-plan.js +1514 -0
  265. package/dist/operations/planning/compile-intent.d.ts +108 -0
  266. package/dist/operations/planning/compile-intent.d.ts.map +1 -0
  267. package/dist/operations/planning/compile-intent.js +618 -0
  268. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  269. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  270. package/dist/operations/proof/ingest-proof.js +307 -0
  271. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  272. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  273. package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
  274. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  275. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  276. package/dist/operations/proof/prune-receipts.js +91 -0
  277. package/dist/operations/proof/receipt-document.d.ts +29 -0
  278. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  279. package/dist/operations/proof/receipt-document.js +117 -0
  280. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  281. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  282. package/dist/operations/semantic-advisor/analyze-prose.js +52 -28
  283. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  284. package/dist/operations/semantic-advisor/clauses.js +35 -9
  285. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  286. package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
  287. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
  288. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
  289. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
  290. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  291. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  292. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  293. package/dist/operations/semantic-advisor/types.d.ts +13 -5
  294. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  295. package/dist/prolog/codec.d.ts +13 -1
  296. package/dist/prolog/codec.d.ts.map +1 -1
  297. package/dist/prolog/codec.js +269 -153
  298. package/dist/prolog/error-terms.d.ts +47 -0
  299. package/dist/prolog/error-terms.d.ts.map +1 -0
  300. package/dist/prolog/error-terms.js +334 -0
  301. package/dist/prolog/janitor.d.ts +50 -0
  302. package/dist/prolog/janitor.d.ts.map +1 -0
  303. package/dist/prolog/janitor.js +154 -0
  304. package/dist/prolog/store-lock.d.ts +45 -0
  305. package/dist/prolog/store-lock.d.ts.map +1 -0
  306. package/dist/prolog/store-lock.js +195 -0
  307. package/dist/prolog.d.ts +7 -0
  308. package/dist/prolog.d.ts.map +1 -1
  309. package/dist/prolog.js +82 -25
  310. package/dist/proof/evaluate.d.ts +27 -0
  311. package/dist/proof/evaluate.d.ts.map +1 -0
  312. package/dist/proof/evaluate.js +151 -0
  313. package/dist/proof/inspect.d.ts +12 -0
  314. package/dist/proof/inspect.d.ts.map +1 -0
  315. package/dist/proof/inspect.js +236 -0
  316. package/dist/proof/integrations.d.ts +35 -0
  317. package/dist/proof/integrations.d.ts.map +1 -0
  318. package/dist/proof/integrations.js +123 -0
  319. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  320. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  321. package/dist/proof/producers/junit-adapter.js +186 -0
  322. package/dist/proof/producers/playwright-case-id.d.ts +8 -0
  323. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  324. package/dist/proof/producers/playwright-case-id.js +25 -0
  325. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  326. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  327. package/dist/proof/producers/playwright-reporter.js +138 -0
  328. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  329. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  330. package/dist/proof/producers/tap-adapter.js +200 -0
  331. package/dist/proof/receipt-outcome.d.ts +2 -0
  332. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  333. package/dist/proof/receipt-outcome.js +1 -0
  334. package/dist/public/branch-resolver.d.ts +1 -0
  335. package/dist/public/branch-resolver.d.ts.map +1 -1
  336. package/dist/public/branch-resolver.js +1 -0
  337. package/dist/public/check-types.d.ts +2 -2
  338. package/dist/public/check-types.d.ts.map +1 -1
  339. package/dist/public/check-types.js +16 -16
  340. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  341. package/dist/public/diagnostic-usage.js +74 -6
  342. package/dist/public/distribution-parity.d.ts +7 -1
  343. package/dist/public/distribution-parity.d.ts.map +1 -1
  344. package/dist/public/distribution-parity.js +15 -9
  345. package/dist/public/ignore-policy.d.ts.map +1 -1
  346. package/dist/public/ignore-policy.js +16 -4
  347. package/dist/public/impact/coverage-depth-quality.d.ts +7 -1
  348. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  349. package/dist/public/impact/coverage-depth-quality.js +22 -4
  350. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  351. package/dist/public/impact/diagnostics.js +2 -2
  352. package/dist/public/impact/diff-meaning.d.ts +1 -0
  353. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  354. package/dist/public/impact/diff-meaning.js +5 -2
  355. package/dist/public/impact/full-kb-quality.d.ts +7 -2
  356. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  357. package/dist/public/impact/full-kb-quality.js +364 -39
  358. package/dist/public/impact/manifest.d.ts.map +1 -1
  359. package/dist/public/impact/manifest.js +2 -5
  360. package/dist/public/operational-artifacts.d.ts.map +1 -1
  361. package/dist/public/operational-artifacts.js +7 -1
  362. package/dist/public/operations/catalog.d.ts +900 -34
  363. package/dist/public/operations/catalog.d.ts.map +1 -1
  364. package/dist/public/operations/catalog.js +130 -6
  365. package/dist/public/operations/check-executor.d.ts +2 -2
  366. package/dist/public/operations/check-executor.d.ts.map +1 -1
  367. package/dist/public/operations/check-executor.js +68 -13
  368. package/dist/public/operations/check-format-shared.d.ts +3 -0
  369. package/dist/public/operations/check-format-shared.d.ts.map +1 -1
  370. package/dist/public/operations/check-format-shared.js +3 -0
  371. package/dist/public/operations/check-helpers.d.ts +27 -2
  372. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  373. package/dist/public/operations/check-helpers.js +62 -26
  374. package/dist/public/operations/contracts.d.ts +18 -0
  375. package/dist/public/operations/contracts.d.ts.map +1 -0
  376. package/dist/public/operations/contracts.js +334 -0
  377. package/dist/public/operations/discovery-entities.d.ts +3 -0
  378. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  379. package/dist/public/operations/discovery-entities.js +4 -0
  380. package/dist/public/operations/discovery-executors.d.ts +43 -7
  381. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  382. package/dist/public/operations/discovery-executors.js +216 -13
  383. package/dist/public/operations/index.d.ts +9 -4
  384. package/dist/public/operations/index.d.ts.map +1 -1
  385. package/dist/public/operations/index.js +8 -3
  386. package/dist/public/operations/migration-plan.d.ts +102 -0
  387. package/dist/public/operations/migration-plan.d.ts.map +1 -0
  388. package/dist/public/operations/migration-plan.js +539 -0
  389. package/dist/public/operations/node-ports.d.ts.map +1 -1
  390. package/dist/public/operations/node-ports.js +71 -11
  391. package/dist/public/operations/prolog-json.d.ts +14 -0
  392. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  393. package/dist/public/operations/prolog-json.js +44 -5
  394. package/dist/public/operations/repair-plan.d.ts +3 -3
  395. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  396. package/dist/public/operations/repair-plan.js +49 -18
  397. package/dist/public/operations/result-envelope.d.ts +14 -0
  398. package/dist/public/operations/result-envelope.d.ts.map +1 -0
  399. package/dist/public/operations/result-envelope.js +106 -0
  400. package/dist/public/operations/runtime-types.d.ts +102 -7
  401. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  402. package/dist/public/operations/source-relationship-parity.d.ts +13 -0
  403. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
  404. package/dist/public/operations/source-relationship-parity.js +162 -0
  405. package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
  406. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
  407. package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
  408. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  409. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  410. package/dist/public/operations/specs/check-rules.generated.js +34 -0
  411. package/dist/public/operations/specs/check.d.ts +9 -4
  412. package/dist/public/operations/specs/check.d.ts.map +1 -1
  413. package/dist/public/operations/specs/check.js +10 -21
  414. package/dist/public/operations/specs/discovery.d.ts +87 -3
  415. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  416. package/dist/public/operations/specs/discovery.js +53 -3
  417. package/dist/public/operations/specs/modeling.d.ts +3 -3
  418. package/dist/public/operations/specs/modeling.js +3 -3
  419. package/dist/public/operations/specs/mutation-schemas.d.ts +251 -14
  420. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  421. package/dist/public/operations/specs/mutation-schemas.js +16 -6
  422. package/dist/public/operations/specs/mutation.d.ts +42 -2
  423. package/dist/public/operations/specs/mutation.d.ts.map +1 -1
  424. package/dist/public/operations/specs/mutation.js +26 -2
  425. package/dist/public/operations/specs/planning.d.ts +279 -0
  426. package/dist/public/operations/specs/planning.d.ts.map +1 -0
  427. package/dist/public/operations/specs/planning.js +197 -0
  428. package/dist/public/operations/specs/proof.d.ts +212 -0
  429. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  430. package/dist/public/operations/specs/proof.js +30 -0
  431. package/dist/public/operations/specs/reporting.d.ts +23 -1
  432. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  433. package/dist/public/operations/specs/reporting.js +156 -11
  434. package/dist/public/operations/specs/upsert.d.ts +265 -14
  435. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  436. package/dist/public/operations/specs/upsert.js +9 -0
  437. package/dist/public/operations/symbol-repair-plan.d.ts +22 -0
  438. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
  439. package/dist/public/operations/symbol-repair-plan.js +238 -0
  440. package/dist/public/operations/types.d.ts +52 -1
  441. package/dist/public/operations/types.d.ts.map +1 -1
  442. package/dist/public/proof-fingerprint.d.ts +54 -0
  443. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  444. package/dist/public/proof-fingerprint.js +141 -0
  445. package/dist/public/proof-protocol.d.ts +354 -0
  446. package/dist/public/proof-protocol.d.ts.map +1 -0
  447. package/dist/public/proof-protocol.js +454 -0
  448. package/dist/public/proof-receipt.d.ts +279 -0
  449. package/dist/public/proof-receipt.d.ts.map +1 -0
  450. package/dist/public/proof-receipt.js +377 -0
  451. package/dist/public/schemas/entity.d.ts.map +1 -1
  452. package/dist/public/schemas/entity.js +22 -6
  453. package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
  454. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  455. package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  456. package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  457. package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  458. package/dist/public/skills/kibi-freshness/SKILL.md +39 -9
  459. package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  460. package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  461. package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  462. package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
  463. package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  464. package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  465. package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  466. package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
  467. package/dist/public/skills/kibi-usage/SKILL.md +136 -231
  468. package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  469. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  470. package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
  471. package/dist/public/skills/kibi-usage/resources/proof.md +105 -0
  472. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  473. package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  474. package/dist/public/skills/kibi-usage/resources/workflows.md +57 -4
  475. package/dist/public/symbol-granularity.d.ts +3 -14
  476. package/dist/public/symbol-granularity.d.ts.map +1 -1
  477. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  478. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  479. package/dist/public/symbol-granularity.generated.js +20 -0
  480. package/dist/public/symbol-granularity.js +6 -46
  481. package/dist/public/telemetry-acceptance.d.ts +3 -70
  482. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  483. package/dist/public/telemetry-acceptance.js +11 -2
  484. package/dist/public/telemetry-remediation.js +1 -1
  485. package/dist/relationships/shards.d.ts +16 -0
  486. package/dist/relationships/shards.d.ts.map +1 -1
  487. package/dist/relationships/shards.js +87 -2
  488. package/dist/report/brand.d.ts +19 -0
  489. package/dist/report/brand.d.ts.map +1 -0
  490. package/dist/report/brand.js +112 -0
  491. package/dist/report/html-report.css +282 -0
  492. package/dist/report/html-report.d.ts +21 -0
  493. package/dist/report/html-report.d.ts.map +1 -0
  494. package/dist/report/html-report.js +700 -0
  495. package/dist/report/relative-time.d.ts +4 -0
  496. package/dist/report/relative-time.d.ts.map +1 -0
  497. package/dist/report/relative-time.js +46 -0
  498. package/dist/report/report-view.d.ts +17 -0
  499. package/dist/report/report-view.d.ts.map +1 -0
  500. package/dist/report/report-view.js +33 -0
  501. package/dist/report/repository.d.ts +35 -0
  502. package/dist/report/repository.d.ts.map +1 -0
  503. package/dist/report/repository.js +151 -0
  504. package/dist/runtime/cli-runtime.d.ts +2 -0
  505. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  506. package/dist/runtime/cli-runtime.js +90 -23
  507. package/dist/schemas/entity.schema.json +1254 -239
  508. package/dist/search-ranking.d.ts +1 -0
  509. package/dist/search-ranking.d.ts.map +1 -1
  510. package/dist/search-ranking.js +3 -0
  511. package/dist/traceability/evidence-model.d.ts +30 -2
  512. package/dist/traceability/evidence-model.d.ts.map +1 -1
  513. package/dist/traceability/evidence-model.js +2 -2
  514. package/dist/traceability/git-staged.d.ts +20 -0
  515. package/dist/traceability/git-staged.d.ts.map +1 -1
  516. package/dist/traceability/git-staged.js +156 -37
  517. package/dist/traceability/markdown-validate.d.ts.map +1 -1
  518. package/dist/traceability/markdown-validate.js +12 -7
  519. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  520. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  521. package/dist/traceability/staged-diagnostics.js +78 -7
  522. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  523. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  524. package/dist/traceability/staged-file-coverage.js +284 -0
  525. package/dist/traceability/staged-impact-contract.d.ts +3 -3
  526. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  527. package/dist/traceability/staged-impact-contract.js +12 -40
  528. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  529. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  530. package/dist/traceability/staged-symbols-manifest.js +142 -26
  531. package/dist/traceability/symbol-extract.d.ts +5 -0
  532. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  533. package/dist/traceability/symbol-extract.js +1 -1
  534. package/dist/traceability/temp-kb.d.ts +2 -0
  535. package/dist/traceability/temp-kb.d.ts.map +1 -1
  536. package/dist/traceability/temp-kb.js +14 -2
  537. package/dist/types/entities.d.ts +5 -0
  538. package/dist/types/entities.d.ts.map +1 -1
  539. package/dist/utils/branch-resolver.d.ts +25 -10
  540. package/dist/utils/branch-resolver.d.ts.map +1 -1
  541. package/dist/utils/branch-resolver.js +124 -38
  542. package/dist/utils/branch-store-locator.d.ts +23 -0
  543. package/dist/utils/branch-store-locator.d.ts.map +1 -0
  544. package/dist/utils/branch-store-locator.js +90 -0
  545. package/dist/utils/branch-store.d.ts +21 -0
  546. package/dist/utils/branch-store.d.ts.map +1 -0
  547. package/dist/utils/branch-store.js +157 -0
  548. package/dist/utils/config.d.ts +39 -37
  549. package/dist/utils/config.d.ts.map +1 -1
  550. package/dist/utils/config.js +107 -119
  551. package/dist/utils/kb-manifest.d.ts +35 -0
  552. package/dist/utils/kb-manifest.d.ts.map +1 -0
  553. package/dist/utils/kb-manifest.js +154 -0
  554. package/dist/utils/kb-paths.d.ts +54 -0
  555. package/dist/utils/kb-paths.d.ts.map +1 -0
  556. package/dist/utils/kb-paths.js +125 -0
  557. package/dist/utils/manifest-paths.d.ts +4 -4
  558. package/dist/utils/manifest-paths.d.ts.map +1 -1
  559. package/dist/utils/manifest-paths.js +8 -56
  560. package/dist/utils/rule-registry.d.ts +42 -24
  561. package/dist/utils/rule-registry.d.ts.map +1 -1
  562. package/dist/utils/rule-registry.generated.d.ts +97 -0
  563. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  564. package/dist/utils/rule-registry.generated.js +125 -0
  565. package/dist/utils/rule-registry.js +52 -148
  566. package/dist/utils/schema-version.d.ts +5 -5
  567. package/dist/utils/schema-version.d.ts.map +1 -1
  568. package/dist/utils/schema-version.js +26 -6
  569. package/dist/utils/strict-modeling.d.ts +1 -4
  570. package/dist/utils/strict-modeling.d.ts.map +1 -1
  571. package/dist/utils/strict-modeling.js +8 -9
  572. package/package.json +47 -11
  573. package/schema/config.json +2 -2
  574. package/schema/manifest.json +26 -0
  575. package/src/public/branch-resolver.ts +1 -0
  576. package/src/public/check-types.ts +22 -19
  577. package/src/public/diagnostic-usage.ts +84 -6
  578. package/src/public/distribution-parity.ts +17 -9
  579. package/src/public/ignore-policy.ts +16 -10
  580. package/src/public/impact/coverage-depth-quality.ts +37 -1
  581. package/src/public/impact/diagnostics.ts +2 -1
  582. package/src/public/impact/diff-meaning.ts +11 -4
  583. package/src/public/impact/full-kb-quality.ts +545 -41
  584. package/src/public/impact/manifest.ts +2 -4
  585. package/src/public/operational-artifacts.ts +9 -1
  586. package/src/public/operations/catalog.ts +153 -10
  587. package/src/public/operations/check-executor.ts +98 -15
  588. package/src/public/operations/check-format-shared.ts +6 -0
  589. package/src/public/operations/check-helpers.ts +74 -35
  590. package/src/public/operations/contracts.ts +382 -0
  591. package/src/public/operations/discovery-entities.ts +7 -0
  592. package/src/public/operations/discovery-executors.ts +315 -25
  593. package/src/public/operations/index.ts +9 -4
  594. package/src/public/operations/migration-plan.ts +747 -0
  595. package/src/public/operations/node-ports.ts +87 -13
  596. package/src/public/operations/prolog-json.ts +60 -5
  597. package/src/public/operations/repair-plan.ts +60 -22
  598. package/src/public/operations/result-envelope.ts +141 -0
  599. package/src/public/operations/runtime-types.ts +96 -5
  600. package/src/public/operations/source-relationship-parity.ts +226 -0
  601. package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
  602. package/src/public/operations/specs/check-rules.generated.ts +37 -0
  603. package/src/public/operations/specs/check.ts +14 -22
  604. package/src/public/operations/specs/discovery.ts +57 -3
  605. package/src/public/operations/specs/modeling.ts +3 -3
  606. package/src/public/operations/specs/mutation-schemas.ts +24 -6
  607. package/src/public/operations/specs/mutation.ts +27 -2
  608. package/src/public/operations/specs/planning.ts +241 -0
  609. package/src/public/operations/specs/proof.ts +43 -0
  610. package/src/public/operations/specs/reporting.ts +193 -12
  611. package/src/public/operations/specs/upsert.ts +10 -0
  612. package/src/public/operations/symbol-repair-plan.ts +324 -0
  613. package/src/public/operations/types.ts +62 -1
  614. package/src/public/proof-fingerprint.ts +216 -0
  615. package/src/public/proof-protocol-types.d.ts +96 -0
  616. package/src/public/proof-protocol.ts +589 -0
  617. package/src/public/proof-receipt.ts +499 -0
  618. package/src/public/schemas/entity.ts +27 -6
  619. package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
  620. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  621. package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  622. package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  623. package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  624. package/src/public/skills/kibi-freshness/SKILL.md +39 -9
  625. package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  626. package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  627. package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  628. package/src/public/skills/kibi-traceability/SKILL.md +47 -47
  629. package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  630. package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  631. package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  632. package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
  633. package/src/public/skills/kibi-usage/SKILL.md +136 -231
  634. package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  635. package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  636. package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
  637. package/src/public/skills/kibi-usage/resources/proof.md +105 -0
  638. package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  639. package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  640. package/src/public/skills/kibi-usage/resources/workflows.md +57 -4
  641. package/src/public/symbol-granularity.generated.ts +41 -0
  642. package/src/public/symbol-granularity.ts +35 -59
  643. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  644. package/src/public/telemetry-acceptance.ts +30 -93
  645. package/src/public/telemetry-remediation.ts +1 -1
  646. package/src/schemas/entity.schema.json +1254 -239
  647. package/templates/github/kibi-badge.yml +86 -0
  648. package/templates/github/kibi-report.yml +84 -0
  649. package/dist/operations/autopilot/activation.d.ts +0 -4
  650. package/dist/operations/autopilot/activation.d.ts.map +0 -1
  651. package/dist/operations/autopilot/candidates.d.ts +0 -4
  652. package/dist/operations/autopilot/discovery.d.ts.map +0 -1
  653. package/dist/operations/autopilot/generate.d.ts +0 -8
  654. package/dist/operations/autopilot/generate.d.ts.map +0 -1
  655. package/dist/operations/autopilot/generate.js +0 -112
  656. package/dist/operations/autopilot/guidance.d.ts.map +0 -1
  657. package/dist/operations/autopilot/presentation.d.ts +0 -13
  658. package/dist/operations/autopilot/presentation.d.ts.map +0 -1
  659. package/dist/operations/autopilot/presentation.js +0 -91
  660. package/dist/operations/autopilot/types.d.ts.map +0 -1
  661. package/dist/operations/autopilot/types.js +0 -8
  662. package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
  663. package/dist/public/skills/init-kibi/SKILL.md +0 -62
  664. package/dist/public/verification-receipt.d.ts +0 -75
  665. package/dist/public/verification-receipt.d.ts.map +0 -1
  666. package/dist/public/verification-receipt.js +0 -129
  667. package/src/public/skills/init-kibi/SKILL.md +0 -62
  668. package/src/public/verification-receipt.ts +0 -170
  669. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
  670. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
  671. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
  672. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
@@ -0,0 +1,324 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { coarseCoordinateSpan } from "../../extractors/symbol-coordinates.js";
4
+ import {
5
+ type ManifestSymbolEntry,
6
+ analyzeSourceText,
7
+ enrichSymbolCoordinates,
8
+ } from "../../extractors/symbols-coordinator.js";
9
+ import { isCoarseGranularityReason } from "../symbol-granularity.js";
10
+ import { loadEntities } from "./discovery-entities.js";
11
+ import type { OperationContext } from "./runtime-types.js";
12
+
13
+ export const SYMBOL_REPAIR_PLAN_VERSION = "kibi.symbol-repair-plan.v1" as const;
14
+
15
+ export type SymbolRepairPlan = Readonly<{
16
+ version: typeof SYMBOL_REPAIR_PLAN_VERSION;
17
+ readOnly: true;
18
+ autoApplicable: false;
19
+ repairs: readonly Readonly<Record<string, unknown>>[];
20
+ }>;
21
+
22
+ function sourceFileOf(
23
+ entity: Readonly<Record<string, unknown>>,
24
+ ): string | null {
25
+ const value = entity.sourceFile ?? entity.source;
26
+ return typeof value === "string" && value.trim() ? value.trim() : null;
27
+ }
28
+
29
+ function coordinatesPresent(
30
+ entity: Readonly<Record<string, unknown>>,
31
+ ): boolean {
32
+ return [
33
+ entity.sourceLine,
34
+ entity.sourceColumn,
35
+ entity.sourceEndLine,
36
+ entity.sourceEndColumn,
37
+ ].every((value) => Number.isInteger(value) && Number(value) >= 0);
38
+ }
39
+
40
+ export type CoordinateRepairEvidence = Readonly<{
41
+ symbolId: string;
42
+ sourceFile: string | null;
43
+ refreshable: boolean;
44
+ reason:
45
+ | "extractable"
46
+ | "coarse_anchor"
47
+ | "extractor_miss"
48
+ | "source_unavailable";
49
+ suggestion: string;
50
+ }>;
51
+
52
+ /** Preview the same extraction and explicit coarse fallback used by refresh. */
53
+ export async function inspectCoordinateRepairs(
54
+ symbols: readonly Readonly<Record<string, unknown>>[],
55
+ workspaceRoot: string,
56
+ ): Promise<Map<string, CoordinateRepairEvidence>> {
57
+ const entries: ManifestSymbolEntry[] = symbols.map((symbol) => {
58
+ const sourceFile = sourceFileOf(symbol);
59
+ return {
60
+ id: String(symbol.id),
61
+ title: typeof symbol.title === "string" ? symbol.title : "",
62
+ ...(sourceFile === null ? {} : { sourceFile }),
63
+ ...(typeof symbol.granularity_reason === "string"
64
+ ? { granularity_reason: symbol.granularity_reason }
65
+ : {}),
66
+ };
67
+ });
68
+ const enriched = await enrichSymbolCoordinates(entries, workspaceRoot);
69
+ return new Map(
70
+ entries.map((entry, index) => {
71
+ const sourceFile = entry.sourceFile ?? null;
72
+ let source: string | null = null;
73
+ if (sourceFile) {
74
+ try {
75
+ source = readFileSync(
76
+ path.resolve(workspaceRoot, sourceFile),
77
+ "utf8",
78
+ );
79
+ } catch {
80
+ /* A missing or unreadable source requires authored repair. */
81
+ }
82
+ }
83
+ const extracted =
84
+ entry.title.length > 0 && coordinatesPresent(enriched[index] ?? {});
85
+ const coarse =
86
+ source !== null &&
87
+ sourceFile !== null &&
88
+ isCoarseGranularityReason(entry.granularity_reason) &&
89
+ coarseCoordinateSpan(sourceFile, entry.title, source) !== null;
90
+ const reason =
91
+ source === null
92
+ ? "source_unavailable"
93
+ : extracted
94
+ ? "extractable"
95
+ : coarse
96
+ ? "coarse_anchor"
97
+ : "extractor_miss";
98
+ const refreshable = source !== null && (extracted || coarse);
99
+ return [
100
+ entry.id,
101
+ {
102
+ symbolId: entry.id,
103
+ sourceFile,
104
+ refreshable,
105
+ reason,
106
+ suggestion: refreshable
107
+ ? "Refresh and persist current symbol coordinates."
108
+ : source === null
109
+ ? "Repair sourceFile to point to readable implementation code before refreshing."
110
+ : "Query and validate the symbol, then author a resolvable title/sourceFile or an explicit granularity_reason: extractor-miss (or another intentional coarse anchor) through kb_upsert before refreshing.",
111
+ },
112
+ ];
113
+ }),
114
+ );
115
+ }
116
+
117
+ /** Attach current extraction evidence before constructing requirement repairs. */
118
+ export async function addCoordinateRepairEvidence(
119
+ rows: readonly Readonly<Record<string, unknown>>[],
120
+ context: OperationContext,
121
+ ): Promise<readonly Readonly<Record<string, unknown>>[]> {
122
+ const missingByRow = rows.map((row) => {
123
+ const stages = row.proofStages as
124
+ | { sourceCoordinates?: { missingSymbols?: unknown } }
125
+ | undefined;
126
+ const missing = stages?.sourceCoordinates?.missingSymbols;
127
+ return Array.isArray(missing)
128
+ ? missing.filter((id): id is string => typeof id === "string")
129
+ : [];
130
+ });
131
+ const ids = new Set(missingByRow.flat());
132
+ if (ids.size === 0 || !context.prolog) return rows;
133
+ const symbols = (
134
+ await loadEntities(context.prolog, { type: "symbol" })
135
+ ).filter((symbol) => ids.has(String(symbol.id)));
136
+ const evidence = await inspectCoordinateRepairs(
137
+ symbols,
138
+ context.workspaceRoot,
139
+ );
140
+ return rows.map((row, index) => {
141
+ const missing = missingByRow[index] ?? [];
142
+ if (missing.length === 0) return row;
143
+ const coordinateRepairs = missing.map(
144
+ (id) =>
145
+ evidence.get(id) ?? {
146
+ symbolId: id,
147
+ sourceFile: null,
148
+ refreshable: false,
149
+ reason: "source_unavailable",
150
+ suggestion: "Query and repair the missing symbol before refreshing.",
151
+ },
152
+ );
153
+ const stages = row.proofStages as Record<string, Record<string, unknown>>;
154
+ return {
155
+ ...row,
156
+ ...(Array.isArray(row.proofRepairs)
157
+ ? {
158
+ proofRepairs: row.proofRepairs.map((repair) =>
159
+ repair?.gap === "missing_symbol_coordinates" &&
160
+ coordinateRepairs.some((item) => !item.refreshable)
161
+ ? {
162
+ ...repair,
163
+ action: [
164
+ ...new Set(
165
+ coordinateRepairs
166
+ .filter((item) => !item.refreshable)
167
+ .map((item) => item.suggestion),
168
+ ),
169
+ ].join(" "),
170
+ }
171
+ : repair,
172
+ ),
173
+ }
174
+ : {}),
175
+ proofStages: {
176
+ ...stages,
177
+ sourceCoordinates: {
178
+ ...stages.sourceCoordinates,
179
+ coordinateRepairs,
180
+ },
181
+ },
182
+ };
183
+ });
184
+ }
185
+
186
+ function currentCandidates(
187
+ entity: Readonly<Record<string, unknown>>,
188
+ symbols: readonly Readonly<Record<string, unknown>>[],
189
+ extractedByPath: ReadonlyMap<
190
+ string,
191
+ readonly { name: string; kind: string }[]
192
+ >,
193
+ ): Readonly<Record<string, unknown>>[] {
194
+ const title = typeof entity.title === "string" ? entity.title : "";
195
+ const kind = typeof entity.symbol_kind === "string" ? entity.symbol_kind : "";
196
+ const source = sourceFileOf(entity);
197
+ const extracted = source ? (extractedByPath.get(source) ?? []) : [];
198
+ const names = new Set(
199
+ extracted
200
+ .filter((candidate) => !kind || candidate.kind === kind)
201
+ .map((candidate) => candidate.name),
202
+ );
203
+ return symbols
204
+ .filter((candidate) => candidate.id !== entity.id)
205
+ .filter((candidate) => {
206
+ const candidateTitle =
207
+ typeof candidate.title === "string" ? candidate.title : "";
208
+ const candidateKind =
209
+ typeof candidate.symbol_kind === "string" ? candidate.symbol_kind : "";
210
+ return (
211
+ (title !== "" && candidateTitle === title) ||
212
+ (kind !== "" && candidateKind === kind && names.has(candidateTitle))
213
+ );
214
+ })
215
+ .map((candidate) => ({
216
+ symbolId: String(candidate.id),
217
+ title: candidate.title,
218
+ symbolKind: candidate.symbol_kind,
219
+ sourceFile: sourceFileOf(candidate),
220
+ evidence: "current extraction/title/kind match",
221
+ }));
222
+ }
223
+
224
+ /** Build review-only, evidence-backed symbol recovery suggestions. */
225
+ export async function buildSymbolRepairPlan(
226
+ rows: readonly Readonly<Record<string, unknown>>[],
227
+ context: OperationContext,
228
+ ): Promise<SymbolRepairPlan | undefined> {
229
+ if (!context.prolog || rows.length === 0) return undefined;
230
+ const symbols = await loadEntities(context.prolog, { type: "symbol" });
231
+ const extractedByPath = new Map<
232
+ string,
233
+ readonly { name: string; kind: string }[]
234
+ >();
235
+ for (const symbol of symbols) {
236
+ const source = sourceFileOf(symbol);
237
+ if (!source || extractedByPath.has(source)) continue;
238
+ const absolute = path.isAbsolute(source)
239
+ ? source
240
+ : path.resolve(context.workspaceRoot, source);
241
+ if (!existsSync(absolute)) continue;
242
+ try {
243
+ const analysis = analyzeSourceText(
244
+ absolute,
245
+ readFileSync(absolute, "utf8"),
246
+ );
247
+ if (analysis.providerId === null) continue;
248
+ extractedByPath.set(
249
+ source,
250
+ analysis.symbols.map((candidate) => ({
251
+ name: candidate.name,
252
+ kind: candidate.kind,
253
+ })),
254
+ );
255
+ } catch {
256
+ // An unavailable extractor cannot establish that a declaration is absent.
257
+ }
258
+ }
259
+
260
+ const coordinateEvidence = await inspectCoordinateRepairs(
261
+ symbols.filter((symbol) => !coordinatesPresent(symbol)),
262
+ context.workspaceRoot,
263
+ );
264
+ const repairs = rows.flatMap((row) => {
265
+ if (row.type !== "symbol") return [];
266
+ const entity = symbols.find((candidate) => candidate.id === row.id);
267
+ if (!entity) return [];
268
+ const source = sourceFileOf(entity);
269
+ const absolute = source
270
+ ? path.isAbsolute(source)
271
+ ? source
272
+ : path.resolve(context.workspaceRoot, source)
273
+ : null;
274
+ const exists = absolute !== null && existsSync(absolute);
275
+ const candidates = currentCandidates(entity, symbols, extractedByPath);
276
+ const extraction = source ? extractedByPath.get(source) : undefined;
277
+ const extractionProvesAbsent =
278
+ exists &&
279
+ extraction !== undefined &&
280
+ !extraction.some(
281
+ (candidate) =>
282
+ candidate.name === entity.title &&
283
+ (!entity.symbol_kind || candidate.kind === entity.symbol_kind),
284
+ );
285
+ const gaps = Array.isArray(row.gaps) ? row.gaps.map(String) : [];
286
+ const action = !exists
287
+ ? entity.symbol_origin === "extracted"
288
+ ? "delete_obsolete_symbol"
289
+ : "review"
290
+ : extractionProvesAbsent && entity.symbol_origin === "extracted"
291
+ ? "delete_obsolete_symbol"
292
+ : !coordinatesPresent(entity)
293
+ ? coordinateEvidence.get(String(entity.id))?.refreshable === true
294
+ ? "refresh_coordinates"
295
+ : "review"
296
+ : candidates.length > 0
297
+ ? "remap"
298
+ : "review";
299
+ return [
300
+ {
301
+ symbolId: String(entity.id),
302
+ action,
303
+ candidates,
304
+ evidence: {
305
+ sourceFile: source,
306
+ sourceExists: exists,
307
+ extractionProvesAbsent,
308
+ gaps,
309
+ currentExtractionAvailable: source
310
+ ? extractedByPath.has(source)
311
+ : false,
312
+ autoApply: false,
313
+ coordinateRepair: coordinateEvidence.get(String(entity.id)),
314
+ },
315
+ },
316
+ ];
317
+ });
318
+ return {
319
+ version: SYMBOL_REPAIR_PLAN_VERSION,
320
+ readOnly: true,
321
+ autoApplicable: false,
322
+ repairs,
323
+ };
324
+ }
@@ -18,7 +18,10 @@ export type OperationName =
18
18
  | "kb_check"
19
19
  | "kb_model_requirement"
20
20
  | "kb_suggest_predicates"
21
- | "kb_autopilot_generate";
21
+ | "kb_plan_bootstrap"
22
+ | "kb_compile_intent"
23
+ | "kb_apply_plan"
24
+ | "kb_ingest_proof";
22
25
 
23
26
  export type OperationEffect =
24
27
  | "local-read"
@@ -28,6 +31,14 @@ export type OperationEffect =
28
31
  | "kb-write"
29
32
  | "workspace-write";
30
33
 
34
+ export type OperationEffectDeclaration = Readonly<{
35
+ kind: OperationEffect;
36
+ mutability: "read" | "write";
37
+ destructive: boolean;
38
+ retrySafety: "safe" | "unsafe";
39
+ openWorld: boolean;
40
+ }>;
41
+
31
42
  export interface OperationContent {
32
43
  readonly type: string;
33
44
  readonly text?: string;
@@ -38,6 +49,40 @@ export interface OperationResult<O = unknown> {
38
49
  readonly structuredContent?: O;
39
50
  }
40
51
 
52
+ export type KibiResultStatus = "success" | "committed_with_repairs" | "error";
53
+
54
+ export type KibiResult<T = unknown> = {
55
+ readonly kibiProtocol: 1;
56
+ readonly operation: OperationName | string;
57
+ readonly resultVersion: string;
58
+ readonly status: KibiResultStatus;
59
+ readonly data: T;
60
+ readonly effects: readonly {
61
+ readonly kind: string;
62
+ readonly status: "completed" | "failed" | "not_applicable";
63
+ readonly detail?: unknown;
64
+ readonly errorCode?: string;
65
+ }[];
66
+ readonly diagnostics: readonly {
67
+ readonly code?: string;
68
+ readonly severity?: "info" | "warning" | "error";
69
+ readonly message: string;
70
+ readonly detail?: unknown;
71
+ }[];
72
+ readonly nextActions: readonly {
73
+ readonly operation: OperationName | string;
74
+ readonly input?: unknown;
75
+ readonly reason: string;
76
+ readonly required: boolean;
77
+ }[];
78
+ readonly error?: {
79
+ readonly code: string;
80
+ readonly message: string;
81
+ readonly retryable: boolean;
82
+ readonly details?: unknown;
83
+ };
84
+ };
85
+
41
86
  export interface OperationSpec<
42
87
  I = Readonly<Record<string, unknown>>,
43
88
  O = unknown,
@@ -48,6 +93,12 @@ export interface OperationSpec<
48
93
  readonly businessInputSchema: Readonly<Record<string, unknown>>;
49
94
  readonly requiresProlog: boolean;
50
95
  readonly effects: readonly OperationEffect[];
96
+ /** Generated effect metadata used by MCP annotations and telemetry. */
97
+ readonly declaredEffects?: readonly OperationEffectDeclaration[];
98
+ /** Version of the machine-readable result data for this operation. */
99
+ readonly resultVersion?: string;
100
+ /** JSON Schema for the machine-readable result data. */
101
+ readonly outputSchema?: Readonly<Record<string, unknown>>;
51
102
  readonly execute: {
52
103
  bivarianceHack(
53
104
  input: I,
@@ -55,3 +106,13 @@ export interface OperationSpec<
55
106
  ): Promise<OperationResult<O>>;
56
107
  }["bivarianceHack"];
57
108
  }
109
+
110
+ /** A catalog spec after its generated machine contract has been attached. */
111
+ export type ResolvedOperationSpec<
112
+ I = Readonly<Record<string, unknown>>,
113
+ O = unknown,
114
+ > = OperationSpec<I, O> & {
115
+ readonly declaredEffects: readonly OperationEffectDeclaration[];
116
+ readonly resultVersion: string;
117
+ readonly outputSchema: Readonly<Record<string, unknown>>;
118
+ };
@@ -0,0 +1,216 @@
1
+ import { createHash } from "node:crypto";
2
+
3
+ import type {
4
+ ProofBinding,
5
+ ProofContract,
6
+ ProofEnvironment,
7
+ } from "./proof-protocol.js";
8
+
9
+ /** Cosmetic integration-config keys that never participate in proof identity. */
10
+ const COSMETIC_KEYS = new Set([
11
+ "description",
12
+ "label",
13
+ "labels",
14
+ "comment",
15
+ "comments",
16
+ "displayName",
17
+ "display_name",
18
+ "docs",
19
+ "notes",
20
+ ]);
21
+
22
+ export function stripCosmetic(value: unknown): unknown {
23
+ if (Array.isArray(value)) return value.map(stripCosmetic);
24
+ if (value !== null && typeof value === "object") {
25
+ const source = value as Record<string, unknown>;
26
+ const result: Record<string, unknown> = {};
27
+ for (const key of Object.keys(source).sort()) {
28
+ if (COSMETIC_KEYS.has(key)) continue;
29
+ result[key] = stripCosmetic(source[key]);
30
+ }
31
+ return result;
32
+ }
33
+ return value;
34
+ }
35
+
36
+ export function canonicalJson(value: unknown): string {
37
+ if (value === undefined) return "null";
38
+ if (Array.isArray(value)) {
39
+ return `[${value.map(canonicalJson).join(",")}]`;
40
+ }
41
+ if (value !== null && typeof value === "object") {
42
+ return `{${Object.entries(value)
43
+ .sort(([left], [right]) => left.localeCompare(right))
44
+ .map(([key, child]) => `${JSON.stringify(key)}:${canonicalJson(child)}`)
45
+ .join(",")}}`;
46
+ }
47
+ return JSON.stringify(value);
48
+ }
49
+
50
+ function sha256(value: string): string {
51
+ return createHash("sha256").update(value).digest("hex");
52
+ }
53
+
54
+ export function jsonDigest(value: unknown): string {
55
+ return sha256(canonicalJson(value));
56
+ }
57
+
58
+ /** Kibi canonicalizes the typed environment and derives the environment hash itself. */
59
+ export function environmentHash(environment: ProofEnvironment): string {
60
+ return jsonDigest(stripCosmetic(environment));
61
+ }
62
+
63
+ export function proofContractHash(contract: ProofContract): string {
64
+ return jsonDigest(contract);
65
+ }
66
+
67
+ /**
68
+ * Per-contract receipt binding: hashes what the receipt's validity actually
69
+ * depends on — the test's proof contract and the test's authored document
70
+ * with any receipt block removed — so a receipt stays valid while unrelated
71
+ * workspace state changes, and goes stale the moment the test's own contract
72
+ * or document does. Callers pass the receipt-stripped document content.
73
+ */
74
+ // implements REQ-kibi-proof-evidence-protocol
75
+ export interface ReceiptCodeScopeEntry {
76
+ readonly symbolId: string;
77
+ readonly sourceHash: string;
78
+ }
79
+
80
+ export function receiptBindingHash(
81
+ contract: ProofContract,
82
+ receiptStrippedTestDocument: string,
83
+ codeScope: readonly ReceiptCodeScopeEntry[] = [],
84
+ ): string {
85
+ const scope = codeScope
86
+ .map((entry) => ({
87
+ symbolId: entry.symbolId,
88
+ sourceHash: entry.sourceHash,
89
+ }))
90
+ .sort((left, right) => left.symbolId.localeCompare(right.symbolId));
91
+ return jsonDigest({
92
+ binding: "kibi.receipt-binding.v1",
93
+ contract: proofContractHash(contract),
94
+ testDoc: createHash("sha256")
95
+ .update(receiptStrippedTestDocument)
96
+ .digest("hex"),
97
+ codeScope: scope,
98
+ });
99
+ }
100
+
101
+ export type ProofIntegrationExecution = Readonly<{
102
+ id: string;
103
+ producer: string;
104
+ producer_version?: string;
105
+ command: readonly string[];
106
+ artifact?: string;
107
+ targets?: readonly string[];
108
+ options?: Record<string, unknown>;
109
+ }>;
110
+
111
+ export type ProofFingerprintComponents = Readonly<{
112
+ contract: string;
113
+ integration: string;
114
+ command: string;
115
+ bindings: string;
116
+ producer: string;
117
+ }>;
118
+
119
+ export type ProofFingerprint = Readonly<{
120
+ fingerprint: string;
121
+ components: ProofFingerprintComponents;
122
+ }>;
123
+
124
+ function integrationExecutionProjection(
125
+ integration: ProofIntegrationExecution,
126
+ ): Record<string, unknown> {
127
+ return {
128
+ id: integration.id,
129
+ producer: integration.producer,
130
+ ...(integration.producer_version !== undefined
131
+ ? { producer_version: integration.producer_version }
132
+ : {}),
133
+ command: [...integration.command],
134
+ ...(integration.artifact !== undefined
135
+ ? { artifact: integration.artifact }
136
+ : {}),
137
+ ...(integration.targets !== undefined
138
+ ? { targets: [...integration.targets] }
139
+ : {}),
140
+ ...(integration.options !== undefined
141
+ ? { options: stripCosmetic(integration.options) }
142
+ : {}),
143
+ };
144
+ }
145
+
146
+ function normalizedBindings(
147
+ bindings: readonly ProofBinding[],
148
+ ): readonly ProofBinding[] {
149
+ return [...bindings]
150
+ .map((binding) => ({
151
+ symbol_id: binding.symbol_id,
152
+ target: binding.target,
153
+ ...(binding.native_id !== undefined
154
+ ? { native_id: binding.native_id }
155
+ : {}),
156
+ ...(binding.aliases !== undefined
157
+ ? { aliases: [...binding.aliases] }
158
+ : {}),
159
+ ...(binding.source_file !== undefined
160
+ ? { source_file: binding.source_file }
161
+ : {}),
162
+ ...(binding.line !== undefined ? { line: binding.line } : {}),
163
+ }))
164
+ .sort((left, right) =>
165
+ `${left.target}\0${left.symbol_id}`.localeCompare(
166
+ `${right.target}\0${right.symbol_id}`,
167
+ ),
168
+ );
169
+ }
170
+
171
+ /**
172
+ * The effective proof fingerprint binds a receipt to everything that changes
173
+ * what executes or how evidence maps to obligations: the semantic contract,
174
+ * the integration's execution semantics, the exact command, and the bindings.
175
+ * Cosmetic metadata is excluded, so editing a description never stales proof.
176
+ */
177
+ export function effectiveProofFingerprint(input: {
178
+ contract: ProofContract;
179
+ integration: ProofIntegrationExecution;
180
+ bindings: readonly ProofBinding[];
181
+ }): ProofFingerprint {
182
+ const integrationProjection = integrationExecutionProjection(
183
+ input.integration,
184
+ );
185
+ const components: ProofFingerprintComponents = {
186
+ contract: proofContractHash(input.contract),
187
+ integration: jsonDigest(integrationProjection),
188
+ command: jsonDigest([...input.integration.command]),
189
+ bindings: jsonDigest(normalizedBindings(input.bindings)),
190
+ producer: jsonDigest({
191
+ producer: input.integration.producer,
192
+ ...(input.integration.producer_version !== undefined
193
+ ? { version: input.integration.producer_version }
194
+ : {}),
195
+ }),
196
+ };
197
+ return { fingerprint: jsonDigest(components), components };
198
+ }
199
+
200
+ export const FINGERPRINT_COMPONENT_NAMES = [
201
+ "contract",
202
+ "integration",
203
+ "command",
204
+ "bindings",
205
+ "producer",
206
+ ] as const;
207
+
208
+ /** Names the fingerprint components that drifted between two executions. */
209
+ export function fingerprintDrift(
210
+ previous: ProofFingerprintComponents,
211
+ current: ProofFingerprintComponents,
212
+ ): string[] {
213
+ return FINGERPRINT_COMPONENT_NAMES.filter(
214
+ (name) => previous[name] !== current[name],
215
+ );
216
+ }