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
@@ -13,11 +13,21 @@
13
13
  */
14
14
  /**
15
15
  * Escape a string for use as a Prolog atom.
16
- * Doubles single-quote characters per ISO Prolog standard.
16
+ * Escapes backslashes/control characters and doubles single quotes per ISO
17
+ * Prolog syntax.
17
18
  */
18
19
  export function escapeAtom(value) {
19
20
  // implements REQ-009
20
- return value.replace(/'/g, "''");
21
+ return value
22
+ .replaceAll("\\", "\\\\")
23
+ .replaceAll("\u0007", "\\a")
24
+ .replaceAll("\u0008", "\\b")
25
+ .replaceAll("\u000c", "\\f")
26
+ .replaceAll("\n", "\\n")
27
+ .replaceAll("\r", "\\r")
28
+ .replaceAll("\t", "\\t")
29
+ .replaceAll("\u000b", "\\v")
30
+ .replaceAll("'", "''");
21
31
  }
22
32
  /**
23
33
  * Convert a string to a Prolog atom, quoting if necessary.
@@ -26,9 +36,7 @@ export function escapeAtom(value) {
26
36
  export function toPrologAtom(value) {
27
37
  // implements REQ-009
28
38
  const simplePrologAtom = /^[a-z][a-zA-Z0-9_]*$/;
29
- return simplePrologAtom.test(value)
30
- ? value
31
- : `'${value.replace(/'/g, "''")}'`;
39
+ return simplePrologAtom.test(value) ? value : `'${escapeAtom(value)}'`;
32
40
  }
33
41
  /**
34
42
  * Escape a string value for use inside a Prolog double-quoted string literal.
@@ -51,75 +59,99 @@ export function toPrologString(value) {
51
59
  */
52
60
  export function escapeAtomContent(value) {
53
61
  // implements REQ-009
54
- return value.replace(/'/g, "''");
62
+ return escapeAtom(value);
55
63
  }
64
+ /**
65
+ * Parse a Prolog list of list rows without decoding or normalizing columns.
66
+ * Malformed outer collections fail closed rather than returning a partial
67
+ * projection.
68
+ */
56
69
  export function parseListOfLists(listStr) {
57
70
  // implements REQ-009
58
- const cleaned = listStr.trim().replace(/^\[/, "").replace(/\]$/, "");
59
- if (cleaned === "") {
60
- return [];
71
+ return parseListRows(listStr).flatMap((row) => {
72
+ const scanned = scanTopLevelGeneral(row, ",");
73
+ if (!scanned.balanced)
74
+ return [];
75
+ const columns = scanned.parts.map((column) => column.trim());
76
+ return columns.length === 0 || (columns.length === 1 && columns[0] === "")
77
+ ? []
78
+ : [columns];
79
+ });
80
+ }
81
+ export function firstTwoDefinedParts(parts) {
82
+ const first = parts[0];
83
+ const second = parts[1];
84
+ if (first === undefined || second === undefined) {
85
+ return undefined;
61
86
  }
62
- const results = [];
63
- let depth = 0;
64
- let current = "";
65
- let currentList = [];
66
- for (let i = 0; i < cleaned.length; i++) {
67
- const char = cleaned[i];
68
- if (char === "[") {
69
- depth++;
70
- if (depth > 1)
71
- current += char;
72
- }
73
- else if (char === "]") {
74
- depth--;
75
- if (depth === 0) {
76
- if (current) {
77
- currentList.push(current.trim());
78
- current = "";
79
- }
80
- if (currentList.length > 0) {
81
- results.push(currentList);
82
- currentList = [];
83
- }
84
- }
85
- else {
86
- current += char;
87
- }
88
- }
89
- else if (char === "," && depth === 1) {
90
- if (current) {
91
- currentList.push(current.trim());
92
- current = "";
93
- }
94
- }
95
- else if (char === "," && depth === 0) {
96
- // Skip comma between lists
97
- }
98
- else {
99
- current += char;
87
+ return [first, second];
88
+ }
89
+ export function fallbackWhenPairMissing(pair, fallback) {
90
+ return pair === undefined ? fallback : null;
91
+ }
92
+ // implements REQ-core-persistence
93
+ // covered_by TEST-cli-prolog-codec
94
+ export function typedLiteralFromParts(parts, original) {
95
+ const pair = firstTwoDefinedParts(parts);
96
+ if (!pair) {
97
+ return original;
98
+ }
99
+ const [literalPart, datatypePart] = pair;
100
+ let literalValue = literalPart.trim();
101
+ const datatype = datatypePart.trim();
102
+ const decodedLiteral = decodePrologQuotedLiteral(literalValue, '"');
103
+ if (decodedLiteral !== undefined) {
104
+ literalValue = decodedLiteral;
105
+ }
106
+ else if (literalValue.startsWith('"') && literalValue.endsWith('"')) {
107
+ literalValue = literalValue.substring(1, literalValue.length - 1);
108
+ }
109
+ if (datatype.includes("#integer")) {
110
+ return Number.parseInt(literalValue, 10);
111
+ }
112
+ if (datatype.includes("#decimal") || datatype.includes("#double")) {
113
+ return Number.parseFloat(literalValue);
114
+ }
115
+ if (datatype.includes("#boolean")) {
116
+ return literalValue === "true";
117
+ }
118
+ if (literalValue.startsWith("[") && literalValue.endsWith("]")) {
119
+ const listContent = literalValue.substring(1, literalValue.length - 1);
120
+ if (listContent === "") {
121
+ return [];
100
122
  }
123
+ return splitTopLevelGeneral(listContent, ",").map((item) => item.trim());
101
124
  }
102
- return results;
125
+ return literalValue;
103
126
  }
104
- export function parseEntityFromBinding(
105
- // implements REQ-009
106
- bindingStr) {
107
- const cleaned = bindingStr.trim().replace(/^\[/, "").replace(/\]$/, "");
108
- const parts = splitTopLevelGeneral(cleaned, ",");
127
+ export function fileUriLeaf(value) {
128
+ const lastSlash = value.lastIndexOf("/");
129
+ if (lastSlash !== -1) {
130
+ return value.substring(lastSlash + 1);
131
+ }
132
+ return value;
133
+ }
134
+ export function entityFromBindingParts(parts) {
109
135
  if (parts.length < 3) {
110
136
  return {};
111
137
  }
112
- const idPart = parts[0];
113
- const typePart = parts[1];
114
- if (idPart === undefined || typePart === undefined) {
138
+ const pair = firstTwoDefinedParts(parts);
139
+ if (!pair) {
115
140
  return {};
116
141
  }
142
+ const [idPart, typePart] = pair;
117
143
  const id = idPart.trim();
118
144
  const type = typePart.trim();
119
145
  const propsStr = parts.slice(2).join(",").trim();
120
146
  const props = parsePropertyList(propsStr);
121
147
  return { ...props, id: normalizeEntityId(stripOuterQuotes(id)), type };
122
148
  }
149
+ export function parseEntityFromBinding(
150
+ // implements REQ-009
151
+ bindingStr) {
152
+ const cleaned = bindingStr.trim().replace(/^\[/, "").replace(/\]$/, "");
153
+ return entityFromBindingParts(splitTopLevelGeneral(cleaned, ","));
154
+ }
123
155
  export function parseEntityFromList(data) {
124
156
  // implements REQ-009
125
157
  if (data.length < 3) {
@@ -160,7 +192,9 @@ export function parsePropertyList(propsStr) {
160
192
  let parsed = parsePrologValue(value);
161
193
  if ((key === "rule_ir" ||
162
194
  key === "semantic_inventory" ||
163
- key === "verification_receipts") &&
195
+ key === "proof_receipts" ||
196
+ key === "proof_contract" ||
197
+ key === "proof_bindings") &&
164
198
  typeof parsed === "string") {
165
199
  try {
166
200
  parsed = JSON.parse(parsed);
@@ -203,57 +237,22 @@ export function parsePrologValue(valueInput) {
203
237
  const innerContent = value.substring(innerStart, innerEnd);
204
238
  const parts = splitTopLevelGeneral(innerContent, ",");
205
239
  if (parts.length >= 2) {
206
- const literalPart = parts[0];
207
- const datatypePart = parts[1];
208
- if (literalPart === undefined || datatypePart === undefined) {
209
- return value;
210
- }
211
- let literalValue = literalPart.trim();
212
- const datatype = datatypePart.trim();
213
- if (literalValue.startsWith('"') && literalValue.endsWith('"')) {
214
- literalValue = literalValue.substring(1, literalValue.length - 1);
215
- }
216
- // Parse typed literals based on datatype
217
- if (datatype.includes("#integer")) {
218
- return Number.parseInt(literalValue, 10);
219
- }
220
- if (datatype.includes("#decimal") || datatype.includes("#double")) {
221
- return Number.parseFloat(literalValue);
222
- }
223
- if (datatype.includes("#boolean")) {
224
- return literalValue === "true";
225
- }
226
- // Handle array notation for string values
227
- if (literalValue.startsWith("[") && literalValue.endsWith("]")) {
228
- const listContent = literalValue.substring(1, literalValue.length - 1);
229
- if (listContent === "") {
230
- return [];
231
- }
232
- return splitTopLevelGeneral(listContent, ",").map((item) => item.trim());
233
- }
234
- return literalValue;
240
+ return typedLiteralFromParts(parts, value);
235
241
  }
236
242
  }
237
243
  // Handle URI
238
244
  if (value.startsWith("file:///")) {
239
- const lastSlash = value.lastIndexOf("/");
240
- if (lastSlash !== -1) {
241
- return value.substring(lastSlash + 1);
242
- }
243
- return value;
245
+ return fileUriLeaf(value);
244
246
  }
245
247
  // Handle quoted string
246
248
  if (value.startsWith('"') && value.endsWith('"')) {
247
- try {
248
- return JSON.parse(value);
249
- }
250
- catch {
251
- return value.substring(1, value.length - 1);
252
- }
249
+ return (decodePrologQuotedLiteral(value, '"') ??
250
+ value.substring(1, value.length - 1));
253
251
  }
254
252
  // Handle quoted atom
255
253
  if (value.startsWith("'") && value.endsWith("'")) {
256
- return value.substring(1, value.length - 1);
254
+ return (decodePrologQuotedLiteral(value, "'") ??
255
+ value.substring(1, value.length - 1));
257
256
  }
258
257
  // Handle list
259
258
  if (value.startsWith("[") && value.endsWith("]")) {
@@ -270,42 +269,66 @@ export function parsePrologValue(valueInput) {
270
269
  }
271
270
  export function splitTopLevelGeneral(str, delimiter) {
272
271
  // implements REQ-009
272
+ return scanTopLevelGeneral(str, delimiter).parts;
273
+ }
274
+ function scanTopLevelGeneral(str, delimiter) {
273
275
  const results = [];
274
276
  let current = "";
275
- let depth = 0;
276
- let inDoubleQuotes = false;
277
- let inSingleQuotes = false;
277
+ let quote = null;
278
+ const delimiters = [];
279
+ let balanced = true;
278
280
  for (let i = 0; i < str.length; i++) {
279
281
  const char = str[i];
280
- const prevChar = i > 0 ? str[i - 1] : "";
281
- if (char === '"' && !inSingleQuotes && prevChar !== "\\") {
282
- inDoubleQuotes = !inDoubleQuotes;
282
+ if (quote !== null) {
283
283
  current += char;
284
+ if (char === "\\") {
285
+ const escaped = str[i + 1];
286
+ if (escaped !== undefined) {
287
+ current += escaped;
288
+ i++;
289
+ }
290
+ }
291
+ else if (char === quote) {
292
+ const doubledPrologQuote = quote === "'" && str[i + 1] === "'";
293
+ if (doubledPrologQuote) {
294
+ current += str[i + 1] ?? "";
295
+ i++;
296
+ }
297
+ else {
298
+ quote = null;
299
+ }
300
+ }
301
+ continue;
284
302
  }
285
- else if (char === "'" && !inDoubleQuotes && prevChar !== "\\") {
286
- inSingleQuotes = !inSingleQuotes;
303
+ if (char === "'" || char === '"') {
304
+ quote = char;
287
305
  current += char;
306
+ continue;
288
307
  }
289
- else if (!inDoubleQuotes &&
290
- !inSingleQuotes &&
291
- (char === "[" || char === "(")) {
292
- depth++;
308
+ if (char === "[" || char === "(" || char === "{") {
309
+ delimiters.push(char);
293
310
  current += char;
311
+ continue;
294
312
  }
295
- else if (!inDoubleQuotes &&
296
- !inSingleQuotes &&
297
- (char === "]" || char === ")")) {
298
- depth--;
313
+ if (char === "]" || char === ")" || char === "}") {
314
+ const expectedOpening = char === "]" ? "[" : char === ")" ? "(" : "{";
315
+ if (delimiters.at(-1) !== expectedOpening) {
316
+ balanced = false;
317
+ }
318
+ else {
319
+ delimiters.pop();
320
+ }
299
321
  current += char;
322
+ continue;
300
323
  }
301
- else if (!inDoubleQuotes &&
302
- !inSingleQuotes &&
303
- depth === 0 &&
304
- char === delimiter) {
324
+ if (delimiters.length === 0 &&
325
+ delimiter.length > 0 &&
326
+ str.startsWith(delimiter, i)) {
305
327
  if (current) {
306
328
  results.push(current);
307
329
  current = "";
308
330
  }
331
+ i += delimiter.length - 1;
309
332
  }
310
333
  else {
311
334
  current += char;
@@ -314,7 +337,10 @@ export function splitTopLevelGeneral(str, delimiter) {
314
337
  if (current) {
315
338
  results.push(current);
316
339
  }
317
- return results;
340
+ return {
341
+ parts: results,
342
+ balanced: balanced && quote === null && delimiters.length === 0,
343
+ };
318
344
  }
319
345
  export function splitTopLevel(str, delimiter) {
320
346
  // implements REQ-009
@@ -322,14 +348,17 @@ export function splitTopLevel(str, delimiter) {
322
348
  }
323
349
  function stripOuterQuotes(value) {
324
350
  if (value.startsWith("'") && value.endsWith("'")) {
325
- return value.slice(1, -1);
351
+ return decodePrologQuotedLiteral(value, "'") ?? value.slice(1, -1);
326
352
  }
327
353
  if (value.startsWith('"') && value.endsWith('"')) {
328
- return value.slice(1, -1);
354
+ return decodePrologQuotedLiteral(value, '"') ?? value.slice(1, -1);
329
355
  }
330
356
  return value;
331
357
  }
332
- function normalizeEntityId(value) {
358
+ export function normalizeEntityId(value) {
359
+ if (value.startsWith("kb:entity/")) {
360
+ return value.slice("kb:entity/".length);
361
+ }
333
362
  if (!value.startsWith("file:///")) {
334
363
  return value;
335
364
  }
@@ -388,37 +417,26 @@ function parseListRows(raw) {
388
417
  if (trimmed === "[]" || trimmed.length === 0) {
389
418
  return [];
390
419
  }
420
+ if (!trimmed.startsWith("[") || !trimmed.endsWith("]")) {
421
+ return [];
422
+ }
391
423
  const content = unwrapList(trimmed);
392
424
  if (content.length === 0) {
393
425
  return [];
394
426
  }
427
+ const scanned = scanTopLevelGeneral(content, ",");
428
+ if (!scanned.balanced) {
429
+ return [];
430
+ }
395
431
  const rows = [];
396
- let depth = 0;
397
- let current = "";
398
- for (let i = 0; i < content.length; i++) {
399
- const ch = content[i];
400
- if (ch === "[") {
401
- depth++;
402
- if (depth > 1) {
403
- current += ch;
404
- }
405
- continue;
406
- }
407
- if (ch === "]") {
408
- depth--;
409
- if (depth === 0) {
410
- rows.push(current.trim());
411
- current = "";
412
- }
413
- else {
414
- current += ch;
415
- }
416
- continue;
417
- }
418
- if (ch === "," && depth === 0) {
432
+ for (const term of scanned.parts) {
433
+ const row = term.trim();
434
+ if (row.length === 0)
419
435
  continue;
436
+ if (!row.startsWith("[") || !row.endsWith("]")) {
437
+ return [];
420
438
  }
421
- current += ch;
439
+ rows.push(row.slice(1, -1).trim());
422
440
  }
423
441
  return rows;
424
442
  }
@@ -461,12 +479,12 @@ export function parseViolationRows(raw) {
461
479
  suggestionPart === undefined) {
462
480
  continue;
463
481
  }
464
- const rule = rulePart.trim().replace(/^'|'$/g, "");
465
- const entityId = entityIdPart.trim().replace(/^'|'$/g, "");
466
- const description = descriptionPart.trim().replace(/^"|"$/g, "");
467
- const suggestion = suggestionPart.trim().replace(/^"|"$/g, "");
482
+ const rule = stripQuotes(rulePart.trim());
483
+ const entityId = stripQuotes(entityIdPart.trim());
484
+ const description = stripQuotes(descriptionPart.trim());
485
+ const suggestion = stripQuotes(suggestionPart.trim());
468
486
  const source = parts.length >= 5
469
- ? parts[4]?.trim().replace(/^'|'$/g, "") || undefined
487
+ ? stripQuotes(parts[4]?.trim() ?? "") || undefined
470
488
  : undefined;
471
489
  violations.push({
472
490
  rule,
@@ -480,10 +498,108 @@ export function parseViolationRows(raw) {
480
498
  }
481
499
  function stripQuotes(value) {
482
500
  if (value.startsWith("'") && value.endsWith("'")) {
483
- return value.slice(1, -1);
501
+ return decodePrologQuotedLiteral(value, "'") ?? value.slice(1, -1);
484
502
  }
485
503
  if (value.startsWith('"') && value.endsWith('"')) {
486
- return value.slice(1, -1);
504
+ return decodePrologQuotedLiteral(value, '"') ?? value.slice(1, -1);
487
505
  }
488
506
  return value;
489
507
  }
508
+ /** Decode one Prolog quoted literal without decoding an escaped value twice. */
509
+ function decodePrologQuotedLiteral(value, quote) {
510
+ if (!value.startsWith(quote) || !value.endsWith(quote) || value.length < 2) {
511
+ return undefined;
512
+ }
513
+ const content = value.slice(1, -1);
514
+ let decoded = "";
515
+ for (let index = 0; index < content.length; index++) {
516
+ const char = content[index];
517
+ if (char === undefined)
518
+ continue;
519
+ if (quote === "'" && char === "'") {
520
+ if (content[index + 1] !== "'")
521
+ return undefined;
522
+ decoded += "'";
523
+ index++;
524
+ continue;
525
+ }
526
+ if (char !== "\\") {
527
+ decoded += char;
528
+ continue;
529
+ }
530
+ const escaped = content[index + 1];
531
+ if (escaped === undefined)
532
+ return undefined;
533
+ index++;
534
+ switch (escaped) {
535
+ case "a":
536
+ decoded += "\u0007";
537
+ break;
538
+ case "b":
539
+ decoded += "\b";
540
+ break;
541
+ case "e":
542
+ decoded += "\u001b";
543
+ break;
544
+ case "f":
545
+ decoded += "\f";
546
+ break;
547
+ case "n":
548
+ decoded += "\n";
549
+ break;
550
+ case "r":
551
+ decoded += "\r";
552
+ break;
553
+ case "t":
554
+ decoded += "\t";
555
+ break;
556
+ case "v":
557
+ decoded += "\u000b";
558
+ break;
559
+ case "\\":
560
+ decoded += "\\";
561
+ break;
562
+ case "'":
563
+ decoded += "'";
564
+ break;
565
+ case '"':
566
+ decoded += '"';
567
+ break;
568
+ case "u": {
569
+ const code = content.slice(index + 1, index + 5);
570
+ if (!/^[0-9A-Fa-f]{4}$/.test(code))
571
+ return undefined;
572
+ decoded += String.fromCodePoint(Number.parseInt(code, 16));
573
+ index += 4;
574
+ break;
575
+ }
576
+ case "U": {
577
+ const code = content.slice(index + 1, index + 9);
578
+ if (!/^[0-9A-Fa-f]{8}$/.test(code))
579
+ return undefined;
580
+ const codePoint = Number.parseInt(code, 16);
581
+ if (codePoint > 0x10ffff)
582
+ return undefined;
583
+ decoded += String.fromCodePoint(codePoint);
584
+ index += 8;
585
+ break;
586
+ }
587
+ case "x": {
588
+ let end = index + 1;
589
+ while (/[0-9A-Fa-f]/.test(content[end] ?? ""))
590
+ end++;
591
+ if (end === index + 1 || content[end] !== "\\")
592
+ return undefined;
593
+ const codePoint = Number.parseInt(content.slice(index + 1, end), 16);
594
+ if (codePoint > 0x10ffff)
595
+ return undefined;
596
+ decoded += String.fromCodePoint(codePoint);
597
+ index = end;
598
+ break;
599
+ }
600
+ default:
601
+ return undefined;
602
+ }
603
+ }
604
+ return decoded;
605
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Structured transport for Prolog errors.
3
+ *
4
+ * kb.pl throws ISO-style terms (`error(permission_error(save, kb,
5
+ * stale_snapshot), Context)`). The query wrappers in prolog.ts write the
6
+ * thrown term — quoted, depth-bounded — to stderr behind this sentinel so
7
+ * TypeScript can classify the term structurally instead of re-parsing SWI's
8
+ * human-readable print_message output. Text heuristics remain only as a
9
+ * fallback for errors that never pass through a wrapper (startup failures,
10
+ * older kibi-core versions).
11
+ */
12
+ export declare const PROLOG_ERROR_TERM_PREFIX = "__KIBI_ERROR__:";
13
+ export type PrologErrorCode = "stale_snapshot" | "audit_locked" | "permission_denied" | "entity_not_found" | "invalid_relationship" | "contradiction" | "validation_error";
14
+ export type PrologErrorRelationship = Readonly<{
15
+ relType: string;
16
+ fromType: string;
17
+ toType: string;
18
+ }>;
19
+ export type PrologErrorConflict = Readonly<{
20
+ reason: string;
21
+ otherId: string;
22
+ }>;
23
+ export type PrologStoreLockOwner = Readonly<{
24
+ pid?: number;
25
+ workspaceRoot?: string;
26
+ bootId?: string;
27
+ startedAt?: string;
28
+ }>;
29
+ export type PrologStoreLockedDetail = Readonly<{
30
+ owner: PrologStoreLockOwner | null;
31
+ lockDirectory: string;
32
+ originalError?: string;
33
+ }>;
34
+ export type PrologErrorRecord = Readonly<{
35
+ code: PrologErrorCode;
36
+ message: string;
37
+ entityId?: string;
38
+ role?: "source" | "target";
39
+ relationship?: PrologErrorRelationship;
40
+ conflicts?: readonly PrologErrorConflict[];
41
+ storeLocked?: PrologStoreLockedDetail;
42
+ }>;
43
+ /** Extract the first structured error term line from raw stderr text. */
44
+ export declare function extractPrologErrorRecord(text: string): PrologErrorRecord | null;
45
+ /** Parse a written error term such as `error(permission_error(...), Context)`. */
46
+ export declare function parsePrologErrorTerm(termText: string): PrologErrorRecord | null;
47
+ //# sourceMappingURL=error-terms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-terms.d.ts","sourceRoot":"","sources":["../../src/prolog/error-terms.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAG1D,MAAM,MAAM,eAAe,GACvB,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,kBAAkB,GAClB,sBAAsB,GACtB,eAAe,GACf,kBAAkB,CAAC;AAGvB,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAGH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAGH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,SAAS,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC3C,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAEH,yEAAyE;AAEzE,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GACX,iBAAiB,GAAG,IAAI,CAK1B;AAED,kFAAkF;AAElF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,GACf,iBAAiB,GAAG,IAAI,CAsG1B"}