kibi-cli 0.18.1 → 1.0.1

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 (539) hide show
  1. package/dist/cli-json-command.d.ts +1 -2
  2. package/dist/cli-json-command.d.ts.map +1 -1
  3. package/dist/cli-json-command.js +2 -34
  4. package/dist/cli-operation-loader.d.ts +3 -0
  5. package/dist/cli-operation-loader.d.ts.map +1 -0
  6. package/dist/cli-operation-loader.js +91 -0
  7. package/dist/cli-operation-metadata.d.ts +94 -0
  8. package/dist/cli-operation-metadata.d.ts.map +1 -0
  9. package/dist/cli-operation-metadata.js +121 -0
  10. package/dist/cli-protocol.d.ts +1 -1
  11. package/dist/cli-protocol.d.ts.map +1 -1
  12. package/dist/cli-protocol.js +42 -11
  13. package/dist/cli-register-foundation.d.ts.map +1 -1
  14. package/dist/cli-register-foundation.js +28 -19
  15. package/dist/cli-register-json.d.ts +3 -0
  16. package/dist/cli-register-json.d.ts.map +1 -0
  17. package/dist/cli-register-json.js +35 -0
  18. package/dist/cli-register-maintenance.d.ts.map +1 -1
  19. package/dist/cli-register-maintenance.js +60 -13
  20. package/dist/cli-register-reporting.d.ts.map +1 -1
  21. package/dist/cli-register-reporting.js +23 -14
  22. package/dist/cli-register-skills.d.ts.map +1 -1
  23. package/dist/cli-register-skills.js +8 -6
  24. package/dist/cli-register-verification.d.ts +3 -0
  25. package/dist/cli-register-verification.d.ts.map +1 -0
  26. package/dist/cli-register-verification.js +16 -0
  27. package/dist/cli.d.ts.map +1 -1
  28. package/dist/cli.js +3 -1
  29. package/dist/commands/aggregated-checks.d.ts +1 -2
  30. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  31. package/dist/commands/aggregated-checks.js +14 -9
  32. package/dist/commands/branch.d.ts +36 -0
  33. package/dist/commands/branch.d.ts.map +1 -1
  34. package/dist/commands/branch.js +371 -40
  35. package/dist/commands/check.d.ts.map +1 -1
  36. package/dist/commands/check.js +48 -77
  37. package/dist/commands/coverage.js +1 -1
  38. package/dist/commands/discovery-shared.d.ts +2 -1
  39. package/dist/commands/discovery-shared.d.ts.map +1 -1
  40. package/dist/commands/discovery-shared.js +38 -25
  41. package/dist/commands/doctor.d.ts +4 -1
  42. package/dist/commands/doctor.d.ts.map +1 -1
  43. package/dist/commands/doctor.js +259 -24
  44. package/dist/commands/engine.d.ts +8 -0
  45. package/dist/commands/engine.d.ts.map +1 -0
  46. package/dist/commands/engine.js +103 -0
  47. package/dist/commands/gaps.js +1 -1
  48. package/dist/commands/gc.d.ts +5 -2
  49. package/dist/commands/gc.d.ts.map +1 -1
  50. package/dist/commands/gc.js +140 -71
  51. package/dist/commands/github-init.d.ts +56 -0
  52. package/dist/commands/github-init.d.ts.map +1 -0
  53. package/dist/commands/github-init.js +310 -0
  54. package/dist/commands/graph.js +1 -1
  55. package/dist/commands/init-helpers.d.ts +1 -1
  56. package/dist/commands/init-helpers.d.ts.map +1 -1
  57. package/dist/commands/init-helpers.js +73 -25
  58. package/dist/commands/init.d.ts +2 -0
  59. package/dist/commands/init.d.ts.map +1 -1
  60. package/dist/commands/init.js +79 -24
  61. package/dist/commands/legacy-storage-migration.d.ts +54 -0
  62. package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
  63. package/dist/commands/legacy-storage-migration.js +277 -0
  64. package/dist/commands/migrate.d.ts +7 -0
  65. package/dist/commands/migrate.d.ts.map +1 -1
  66. package/dist/commands/migrate.js +244 -91
  67. package/dist/commands/query.d.ts.map +1 -1
  68. package/dist/commands/query.js +3 -1
  69. package/dist/commands/report.d.ts +24 -0
  70. package/dist/commands/report.d.ts.map +1 -0
  71. package/dist/commands/report.js +191 -0
  72. package/dist/commands/search.d.ts.map +1 -1
  73. package/dist/commands/search.js +3 -1
  74. package/dist/commands/status.d.ts.map +1 -1
  75. package/dist/commands/status.js +2 -1
  76. package/dist/commands/sync/cache.d.ts +26 -3
  77. package/dist/commands/sync/cache.d.ts.map +1 -1
  78. package/dist/commands/sync/cache.js +141 -5
  79. package/dist/commands/sync/discovery.d.ts +23 -2
  80. package/dist/commands/sync/discovery.d.ts.map +1 -1
  81. package/dist/commands/sync/discovery.js +196 -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 +8 -5
  86. package/dist/commands/sync/manifest.d.ts.map +1 -1
  87. package/dist/commands/sync/manifest.js +142 -39
  88. package/dist/commands/sync/persistence.d.ts +10 -1
  89. package/dist/commands/sync/persistence.d.ts.map +1 -1
  90. package/dist/commands/sync/persistence.js +223 -44
  91. package/dist/commands/sync/staging.d.ts +10 -1
  92. package/dist/commands/sync/staging.d.ts.map +1 -1
  93. package/dist/commands/sync/staging.js +84 -1
  94. package/dist/commands/sync.d.ts +6 -0
  95. package/dist/commands/sync.d.ts.map +1 -1
  96. package/dist/commands/sync.js +710 -48
  97. package/dist/commands/verify.d.ts +10 -0
  98. package/dist/commands/verify.d.ts.map +1 -0
  99. package/dist/commands/verify.js +126 -0
  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 -0
  103. package/dist/engine-daemon.d.ts.map +1 -0
  104. package/dist/engine-daemon.js +34 -0
  105. package/dist/engine.d.ts +156 -0
  106. package/dist/engine.d.ts.map +1 -0
  107. package/dist/engine.js +1625 -0
  108. package/dist/env.d.ts.map +1 -1
  109. package/dist/env.js +5 -6
  110. package/dist/extractors/manifest.d.ts +8 -1
  111. package/dist/extractors/manifest.d.ts.map +1 -1
  112. package/dist/extractors/manifest.js +51 -9
  113. package/dist/extractors/markdown.d.ts +2 -1
  114. package/dist/extractors/markdown.d.ts.map +1 -1
  115. package/dist/extractors/markdown.js +21 -3
  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 +2 -0
  120. package/dist/extractors/relationships.d.ts.map +1 -1
  121. package/dist/extractors/relationships.js +16 -17
  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/intent-search.d.ts +60 -0
  127. package/dist/intent-search.d.ts.map +1 -0
  128. package/dist/intent-search.js +433 -0
  129. package/dist/operations/bootstrap/activation.d.ts.map +1 -0
  130. package/dist/operations/{autopilot → bootstrap}/activation.js +48 -31
  131. package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
  132. package/dist/operations/bootstrap/candidates.d.ts +4 -0
  133. package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
  134. package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
  135. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
  136. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
  137. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
  138. package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
  139. package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
  140. package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
  141. package/dist/operations/bootstrap/generate.d.ts +8 -0
  142. package/dist/operations/bootstrap/generate.d.ts.map +1 -0
  143. package/dist/operations/bootstrap/generate.js +204 -0
  144. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
  145. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
  146. package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
  147. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +2 -2
  148. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts.map +1 -1
  149. package/dist/operations/{autopilot → bootstrap}/guidance.js +2 -0
  150. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
  151. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
  152. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
  153. package/dist/operations/bootstrap/presentation.d.ts +15 -0
  154. package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
  155. package/dist/operations/bootstrap/presentation.js +177 -0
  156. package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
  157. package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
  158. package/dist/operations/bootstrap/types.d.ts.map +1 -0
  159. package/dist/operations/bootstrap/types.js +25 -0
  160. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  161. package/dist/operations/modeling/model-requirement.js +4 -17
  162. package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
  163. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
  164. package/dist/operations/modeling/predicate-applicability.js +276 -0
  165. package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
  166. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  167. package/dist/operations/modeling/predicate-applyplan.js +100 -3
  168. package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
  169. package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
  170. package/dist/operations/modeling/predicate-bindings.js +122 -0
  171. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
  172. package/dist/operations/modeling/predicate-catalog-4.js +155 -0
  173. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
  174. package/dist/operations/modeling/predicate-inference-1.js +8 -0
  175. package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
  176. package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
  177. package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
  178. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  179. package/dist/operations/modeling/predicate-inference.js +4 -0
  180. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  181. package/dist/operations/modeling/predicate-loader.js +7 -0
  182. package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
  183. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  184. package/dist/operations/modeling/predicate-ranker.js +156 -24
  185. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
  186. package/dist/operations/modeling/predicate-score-3.js +6 -0
  187. package/dist/operations/modeling/predicate-types.d.ts +34 -0
  188. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  189. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
  190. package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
  191. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
  192. package/dist/operations/modeling/predicate-utils.js +2 -0
  193. package/dist/operations/modeling/suggest-predicates.d.ts +1 -1
  194. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  195. package/dist/operations/modeling/suggest-predicates.js +170 -32
  196. package/dist/operations/mutation/delete.d.ts.map +1 -1
  197. package/dist/operations/mutation/delete.js +415 -19
  198. package/dist/operations/mutation/entity-projection.d.ts +11 -0
  199. package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
  200. package/dist/operations/mutation/entity-projection.js +14 -0
  201. package/dist/operations/mutation/relationships.d.ts +10 -0
  202. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  203. package/dist/operations/mutation/relationships.js +71 -1
  204. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  205. package/dist/operations/mutation/serialization.js +1 -0
  206. package/dist/operations/mutation/source-authoring.d.ts +61 -0
  207. package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
  208. package/dist/operations/mutation/source-authoring.js +543 -0
  209. package/dist/operations/mutation/symbol-compiler-lock.d.ts +51 -0
  210. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
  211. package/dist/operations/mutation/symbol-compiler-lock.js +274 -0
  212. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  213. package/dist/operations/mutation/symbol-granularity.js +34 -3
  214. package/dist/operations/mutation/symbol-refresh.d.ts +18 -1
  215. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  216. package/dist/operations/mutation/symbol-refresh.js +225 -63
  217. package/dist/operations/mutation/types.d.ts +57 -1
  218. package/dist/operations/mutation/types.d.ts.map +1 -1
  219. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  220. package/dist/operations/mutation/upsert.js +363 -24
  221. package/dist/operations/mutation/validation.d.ts.map +1 -1
  222. package/dist/operations/mutation/validation.js +1 -0
  223. package/dist/operations/planning/apply-plan.d.ts +117 -0
  224. package/dist/operations/planning/apply-plan.d.ts.map +1 -0
  225. package/dist/operations/planning/apply-plan.js +1437 -0
  226. package/dist/operations/planning/compile-intent.d.ts +106 -0
  227. package/dist/operations/planning/compile-intent.d.ts.map +1 -0
  228. package/dist/operations/planning/compile-intent.js +562 -0
  229. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  230. package/dist/operations/semantic-advisor/analyze-prose.js +6 -2
  231. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  232. package/dist/operations/semantic-advisor/clauses.js +15 -2
  233. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  234. package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
  235. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
  236. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
  237. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
  238. package/dist/operations/semantic-advisor/types.d.ts +13 -5
  239. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  240. package/dist/operations/verification/ingest-verification.d.ts +29 -0
  241. package/dist/operations/verification/ingest-verification.d.ts.map +1 -0
  242. package/dist/operations/verification/ingest-verification.js +192 -0
  243. package/dist/prolog/codec.d.ts.map +1 -1
  244. package/dist/prolog/codec.js +2 -1
  245. package/dist/prolog.d.ts +8 -0
  246. package/dist/prolog.d.ts.map +1 -1
  247. package/dist/prolog.js +66 -16
  248. package/dist/public/branch-resolver.d.ts +1 -0
  249. package/dist/public/branch-resolver.d.ts.map +1 -1
  250. package/dist/public/branch-resolver.js +1 -0
  251. package/dist/public/check-types.d.ts +2 -2
  252. package/dist/public/check-types.d.ts.map +1 -1
  253. package/dist/public/check-types.js +16 -16
  254. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  255. package/dist/public/diagnostic-usage.js +69 -1
  256. package/dist/public/distribution-parity.d.ts +1 -1
  257. package/dist/public/distribution-parity.d.ts.map +1 -1
  258. package/dist/public/distribution-parity.js +1 -0
  259. package/dist/public/ignore-policy.d.ts.map +1 -1
  260. package/dist/public/ignore-policy.js +16 -4
  261. package/dist/public/impact/coverage-depth-quality.d.ts +6 -1
  262. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  263. package/dist/public/impact/coverage-depth-quality.js +21 -3
  264. package/dist/public/impact/full-kb-quality.d.ts +4 -2
  265. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  266. package/dist/public/impact/full-kb-quality.js +61 -1
  267. package/dist/public/impact/manifest.d.ts.map +1 -1
  268. package/dist/public/impact/manifest.js +2 -5
  269. package/dist/public/operational-artifacts.d.ts.map +1 -1
  270. package/dist/public/operational-artifacts.js +7 -1
  271. package/dist/public/operations/catalog.d.ts +682 -67
  272. package/dist/public/operations/catalog.d.ts.map +1 -1
  273. package/dist/public/operations/catalog.js +126 -4
  274. package/dist/public/operations/check-executor.d.ts +2 -2
  275. package/dist/public/operations/check-executor.d.ts.map +1 -1
  276. package/dist/public/operations/check-executor.js +72 -13
  277. package/dist/public/operations/check-format-shared.d.ts +3 -0
  278. package/dist/public/operations/check-format-shared.d.ts.map +1 -1
  279. package/dist/public/operations/check-format-shared.js +3 -0
  280. package/dist/public/operations/check-helpers.d.ts +27 -2
  281. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  282. package/dist/public/operations/check-helpers.js +62 -26
  283. package/dist/public/operations/contracts.d.ts +11 -0
  284. package/dist/public/operations/contracts.d.ts.map +1 -0
  285. package/dist/public/operations/contracts.js +325 -0
  286. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  287. package/dist/public/operations/discovery-entities.js +3 -2
  288. package/dist/public/operations/discovery-executors.d.ts +37 -1
  289. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  290. package/dist/public/operations/discovery-executors.js +246 -9
  291. package/dist/public/operations/index.d.ts +9 -4
  292. package/dist/public/operations/index.d.ts.map +1 -1
  293. package/dist/public/operations/index.js +8 -3
  294. package/dist/public/operations/migration-plan.d.ts +101 -0
  295. package/dist/public/operations/migration-plan.d.ts.map +1 -0
  296. package/dist/public/operations/migration-plan.js +537 -0
  297. package/dist/public/operations/node-ports.d.ts.map +1 -1
  298. package/dist/public/operations/node-ports.js +68 -8
  299. package/dist/public/operations/prolog-json.d.ts +14 -0
  300. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  301. package/dist/public/operations/prolog-json.js +55 -6
  302. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  303. package/dist/public/operations/repair-plan.js +1 -0
  304. package/dist/public/operations/result-envelope.d.ts +13 -0
  305. package/dist/public/operations/result-envelope.d.ts.map +1 -0
  306. package/dist/public/operations/result-envelope.js +104 -0
  307. package/dist/public/operations/runtime-types.d.ts +126 -5
  308. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  309. package/dist/public/operations/source-relationship-parity.d.ts +13 -0
  310. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
  311. package/dist/public/operations/source-relationship-parity.js +162 -0
  312. package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
  313. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
  314. package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
  315. package/dist/public/operations/specs/check.d.ts +4 -4
  316. package/dist/public/operations/specs/check.d.ts.map +1 -1
  317. package/dist/public/operations/specs/check.js +4 -3
  318. package/dist/public/operations/specs/discovery.d.ts +87 -3
  319. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  320. package/dist/public/operations/specs/discovery.js +53 -3
  321. package/dist/public/operations/specs/modeling.d.ts +3 -3
  322. package/dist/public/operations/specs/modeling.js +3 -3
  323. package/dist/public/operations/specs/mutation-schemas.d.ts +190 -47
  324. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  325. package/dist/public/operations/specs/mutation-schemas.js +3 -1
  326. package/dist/public/operations/specs/mutation.d.ts +42 -2
  327. package/dist/public/operations/specs/mutation.d.ts.map +1 -1
  328. package/dist/public/operations/specs/mutation.js +26 -2
  329. package/dist/public/operations/specs/planning.d.ts +270 -0
  330. package/dist/public/operations/specs/planning.d.ts.map +1 -0
  331. package/dist/public/operations/specs/planning.js +191 -0
  332. package/dist/public/operations/specs/reporting.d.ts +4 -1
  333. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  334. package/dist/public/operations/specs/reporting.js +46 -1
  335. package/dist/public/operations/specs/upsert.d.ts +204 -47
  336. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  337. package/dist/public/operations/specs/upsert.js +9 -0
  338. package/dist/public/operations/specs/verification.d.ts +78 -0
  339. package/dist/public/operations/specs/verification.d.ts.map +1 -0
  340. package/dist/public/operations/specs/verification.js +62 -0
  341. package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
  342. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
  343. package/dist/public/operations/symbol-repair-plan.js +123 -0
  344. package/dist/public/operations/types.d.ts +52 -1
  345. package/dist/public/operations/types.d.ts.map +1 -1
  346. package/dist/public/playwright-case-id.d.ts +8 -0
  347. package/dist/public/playwright-case-id.d.ts.map +1 -0
  348. package/dist/public/playwright-case-id.js +25 -0
  349. package/dist/public/schemas/entity.d.ts.map +1 -1
  350. package/dist/public/schemas/entity.js +4 -2
  351. package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
  352. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  353. package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  354. package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  355. package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  356. package/dist/public/skills/kibi-freshness/SKILL.md +40 -10
  357. package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  358. package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  359. package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  360. package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
  361. package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  362. package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  363. package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  364. package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
  365. package/dist/public/skills/kibi-usage/SKILL.md +115 -239
  366. package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  367. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  368. package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
  369. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  370. package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  371. package/dist/public/skills/kibi-usage/resources/workflows.md +56 -3
  372. package/dist/public/symbol-granularity.d.ts +1 -1
  373. package/dist/public/symbol-granularity.d.ts.map +1 -1
  374. package/dist/public/symbol-granularity.js +1 -0
  375. package/dist/public/telemetry-acceptance.d.ts +7 -0
  376. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  377. package/dist/public/telemetry-acceptance.js +8 -1
  378. package/dist/public/telemetry-remediation.js +1 -1
  379. package/dist/public/verification-receipt.d.ts +206 -39
  380. package/dist/public/verification-receipt.d.ts.map +1 -1
  381. package/dist/public/verification-receipt.js +171 -4
  382. package/dist/relationships/shards.d.ts +16 -0
  383. package/dist/relationships/shards.d.ts.map +1 -1
  384. package/dist/relationships/shards.js +87 -2
  385. package/dist/report/brand.d.ts +19 -0
  386. package/dist/report/brand.d.ts.map +1 -0
  387. package/dist/report/brand.js +112 -0
  388. package/dist/report/html-report.d.ts +19 -0
  389. package/dist/report/html-report.d.ts.map +1 -0
  390. package/dist/report/html-report.js +963 -0
  391. package/dist/report/relative-time.d.ts +4 -0
  392. package/dist/report/relative-time.d.ts.map +1 -0
  393. package/dist/report/relative-time.js +46 -0
  394. package/dist/report/report-view.d.ts +17 -0
  395. package/dist/report/report-view.d.ts.map +1 -0
  396. package/dist/report/report-view.js +33 -0
  397. package/dist/report/repository.d.ts +35 -0
  398. package/dist/report/repository.d.ts.map +1 -0
  399. package/dist/report/repository.js +151 -0
  400. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  401. package/dist/runtime/cli-runtime.js +98 -42
  402. package/dist/schemas/entity.schema.json +1148 -273
  403. package/dist/traceability/evidence-model.d.ts +2 -2
  404. package/dist/traceability/evidence-model.d.ts.map +1 -1
  405. package/dist/traceability/evidence-model.js +2 -2
  406. package/dist/traceability/git-staged.d.ts.map +1 -1
  407. package/dist/traceability/git-staged.js +15 -40
  408. package/dist/traceability/markdown-validate.d.ts.map +1 -1
  409. package/dist/traceability/markdown-validate.js +12 -7
  410. package/dist/traceability/staged-impact-contract.d.ts +3 -3
  411. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  412. package/dist/traceability/staged-impact-contract.js +10 -38
  413. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  414. package/dist/traceability/staged-symbols-manifest.js +8 -3
  415. package/dist/traceability/temp-kb.d.ts.map +1 -1
  416. package/dist/traceability/temp-kb.js +3 -0
  417. package/dist/types/entities.d.ts +3 -0
  418. package/dist/types/entities.d.ts.map +1 -1
  419. package/dist/utils/branch-resolver.d.ts +24 -10
  420. package/dist/utils/branch-resolver.d.ts.map +1 -1
  421. package/dist/utils/branch-resolver.js +121 -38
  422. package/dist/utils/branch-store-locator.d.ts +23 -0
  423. package/dist/utils/branch-store-locator.d.ts.map +1 -0
  424. package/dist/utils/branch-store-locator.js +90 -0
  425. package/dist/utils/branch-store.d.ts +15 -0
  426. package/dist/utils/branch-store.d.ts.map +1 -0
  427. package/dist/utils/branch-store.js +130 -0
  428. package/dist/utils/config.d.ts +39 -37
  429. package/dist/utils/config.d.ts.map +1 -1
  430. package/dist/utils/config.js +107 -119
  431. package/dist/utils/kb-manifest.d.ts +35 -0
  432. package/dist/utils/kb-manifest.d.ts.map +1 -0
  433. package/dist/utils/kb-manifest.js +154 -0
  434. package/dist/utils/kb-paths.d.ts +54 -0
  435. package/dist/utils/kb-paths.d.ts.map +1 -0
  436. package/dist/utils/kb-paths.js +125 -0
  437. package/dist/utils/manifest-paths.d.ts +4 -4
  438. package/dist/utils/manifest-paths.d.ts.map +1 -1
  439. package/dist/utils/manifest-paths.js +8 -56
  440. package/dist/utils/rule-registry.d.ts +48 -20
  441. package/dist/utils/rule-registry.d.ts.map +1 -1
  442. package/dist/utils/rule-registry.js +82 -77
  443. package/dist/utils/schema-version.d.ts +5 -5
  444. package/dist/utils/schema-version.d.ts.map +1 -1
  445. package/dist/utils/schema-version.js +26 -6
  446. package/dist/utils/strict-modeling.d.ts +0 -4
  447. package/dist/utils/strict-modeling.d.ts.map +1 -1
  448. package/dist/utils/strict-modeling.js +7 -8
  449. package/dist/verification/playwright-reporter.d.ts +21 -0
  450. package/dist/verification/playwright-reporter.d.ts.map +1 -0
  451. package/dist/verification/playwright-reporter.js +114 -0
  452. package/package.json +51 -8
  453. package/schema/config.json +2 -2
  454. package/schema/manifest.json +26 -0
  455. package/src/public/branch-resolver.ts +1 -0
  456. package/src/public/check-types.ts +22 -19
  457. package/src/public/diagnostic-usage.ts +79 -1
  458. package/src/public/distribution-parity.ts +1 -0
  459. package/src/public/ignore-policy.ts +16 -10
  460. package/src/public/impact/coverage-depth-quality.ts +36 -0
  461. package/src/public/impact/full-kb-quality.ts +118 -5
  462. package/src/public/impact/manifest.ts +2 -4
  463. package/src/public/operational-artifacts.ts +9 -1
  464. package/src/public/operations/catalog.ts +146 -9
  465. package/src/public/operations/check-executor.ts +102 -15
  466. package/src/public/operations/check-format-shared.ts +6 -0
  467. package/src/public/operations/check-helpers.ts +74 -35
  468. package/src/public/operations/contracts.ts +366 -0
  469. package/src/public/operations/discovery-entities.ts +3 -2
  470. package/src/public/operations/discovery-executors.ts +343 -15
  471. package/src/public/operations/index.ts +9 -4
  472. package/src/public/operations/migration-plan.ts +740 -0
  473. package/src/public/operations/node-ports.ts +84 -10
  474. package/src/public/operations/prolog-json.ts +73 -6
  475. package/src/public/operations/repair-plan.ts +1 -0
  476. package/src/public/operations/result-envelope.ts +136 -0
  477. package/src/public/operations/runtime-types.ts +130 -5
  478. package/src/public/operations/source-relationship-parity.ts +226 -0
  479. package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
  480. package/src/public/operations/specs/check.ts +4 -3
  481. package/src/public/operations/specs/discovery.ts +57 -3
  482. package/src/public/operations/specs/modeling.ts +3 -3
  483. package/src/public/operations/specs/mutation-schemas.ts +6 -1
  484. package/src/public/operations/specs/mutation.ts +27 -2
  485. package/src/public/operations/specs/planning.ts +234 -0
  486. package/src/public/operations/specs/reporting.ts +55 -1
  487. package/src/public/operations/specs/upsert.ts +10 -0
  488. package/src/public/operations/specs/verification.ts +78 -0
  489. package/src/public/operations/symbol-repair-plan.ts +164 -0
  490. package/src/public/operations/types.ts +62 -1
  491. package/src/public/playwright-case-id.ts +35 -0
  492. package/src/public/schemas/entity.ts +7 -2
  493. package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
  494. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  495. package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  496. package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  497. package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  498. package/src/public/skills/kibi-freshness/SKILL.md +40 -10
  499. package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  500. package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  501. package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  502. package/src/public/skills/kibi-traceability/SKILL.md +47 -47
  503. package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  504. package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  505. package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  506. package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
  507. package/src/public/skills/kibi-usage/SKILL.md +115 -239
  508. package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  509. package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  510. package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
  511. package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  512. package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  513. package/src/public/skills/kibi-usage/resources/workflows.md +56 -3
  514. package/src/public/symbol-granularity.ts +1 -0
  515. package/src/public/telemetry-acceptance.ts +16 -1
  516. package/src/public/telemetry-remediation.ts +1 -1
  517. package/src/public/verification-receipt.ts +248 -6
  518. package/src/schemas/entity.schema.json +1148 -273
  519. package/templates/github/kibi-badge.yml +86 -0
  520. package/templates/github/kibi-report.yml +84 -0
  521. package/dist/operations/autopilot/activation.d.ts.map +0 -1
  522. package/dist/operations/autopilot/candidates.d.ts +0 -4
  523. package/dist/operations/autopilot/discovery.d.ts.map +0 -1
  524. package/dist/operations/autopilot/generate.d.ts +0 -8
  525. package/dist/operations/autopilot/generate.d.ts.map +0 -1
  526. package/dist/operations/autopilot/generate.js +0 -112
  527. package/dist/operations/autopilot/presentation.d.ts +0 -13
  528. package/dist/operations/autopilot/presentation.d.ts.map +0 -1
  529. package/dist/operations/autopilot/presentation.js +0 -91
  530. package/dist/operations/autopilot/types.d.ts.map +0 -1
  531. package/dist/operations/autopilot/types.js +0 -8
  532. package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
  533. package/dist/public/skills/init-kibi/SKILL.md +0 -62
  534. package/src/public/skills/init-kibi/SKILL.md +0 -62
  535. /package/dist/operations/{autopilot → bootstrap}/activation.d.ts +0 -0
  536. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
  537. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
  538. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
  539. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
@@ -114,6 +114,117 @@ function serializeTypedFactFields(entity) {
114
114
  }
115
115
  return fields;
116
116
  }
117
+ function parsePrologList(value) {
118
+ if (typeof value !== "string")
119
+ return [];
120
+ const text = value.trim();
121
+ if (text.length < 2 || !text.startsWith("[") || !text.endsWith("]")) {
122
+ return [];
123
+ }
124
+ const body = text.slice(1, -1).trim();
125
+ if (body.length === 0)
126
+ return [];
127
+ const values = [];
128
+ // IDs are atoms in the Kibi schema. Keep the parser deliberately narrow so
129
+ // a malformed response cannot turn into a destructive path or goal.
130
+ for (const part of body.split(",")) {
131
+ const valuePart = part.trim();
132
+ if (!valuePart)
133
+ continue;
134
+ if (valuePart.startsWith("'") && valuePart.endsWith("'")) {
135
+ values.push(valuePart.slice(1, -1).replaceAll("''", "'"));
136
+ }
137
+ else if (/^[A-Za-z0-9_.:/@+-]+$/.test(valuePart)) {
138
+ values.push(valuePart);
139
+ }
140
+ }
141
+ return values;
142
+ }
143
+ async function entityIdsForSource(prolog, sourceFile) {
144
+ const candidates = new Set([
145
+ sourceFile,
146
+ path.relative(process.cwd(), sourceFile),
147
+ path.basename(sourceFile),
148
+ ]);
149
+ const ids = new Set();
150
+ for (const candidate of candidates) {
151
+ const result = await prolog.query(`kb_entities_by_source(${toPrologString(candidate)}, Ids)`);
152
+ if (result.success) {
153
+ for (const id of parsePrologList(result.bindings?.Ids))
154
+ ids.add(id);
155
+ }
156
+ }
157
+ return [...ids];
158
+ }
159
+ /** Remove entities owned by changed/deleted source files before re-upserting. */
160
+ export async function retractEntitiesForSources(prolog, sourceFiles) {
161
+ const ids = new Set();
162
+ for (const sourceFile of sourceFiles) {
163
+ for (const id of await entityIdsForSource(prolog, sourceFile))
164
+ ids.add(id);
165
+ }
166
+ if (ids.size === 0)
167
+ return 0;
168
+ const goals = [...ids].map((id) => `kb_retract_entity(${toPrologAtom(id)})`);
169
+ const batchRunner = prolog.queryBatch?.bind(prolog);
170
+ if (batchRunner) {
171
+ const result = await batchRunner(goals);
172
+ if (!result.success) {
173
+ throw new Error(result.error ?? "Failed to retract changed source entities");
174
+ }
175
+ }
176
+ else {
177
+ for (const goal of goals) {
178
+ const result = await prolog.query(goal);
179
+ if (!result.success) {
180
+ throw new Error(result.error ?? "Failed to retract changed source entity");
181
+ }
182
+ }
183
+ }
184
+ return ids.size;
185
+ }
186
+ /** Remove an exact entity delta without scanning every indexed source. */
187
+ export async function retractEntitiesById(prolog, entityIds) {
188
+ const ids = [...new Set(entityIds)];
189
+ if (ids.length === 0)
190
+ return 0;
191
+ const goals = ids.map((id) => `kb_retract_entity(${toPrologAtom(id)})`);
192
+ const batchRunner = prolog.queryBatch?.bind(prolog);
193
+ const result = batchRunner
194
+ ? await batchRunner(goals)
195
+ : await prolog.query(`rdf_transaction((${goals.join(", ")}))`);
196
+ if (!result.success) {
197
+ throw new Error(result.error ?? "Failed to retract entity delta");
198
+ }
199
+ return ids.length;
200
+ }
201
+ /** Clear outgoing inline relationships for entities whose payload changed. */
202
+ export async function retractEntityRelationshipsById(prolog, entityIds) {
203
+ const ids = [...new Set(entityIds)];
204
+ if (ids.length === 0)
205
+ return;
206
+ const goals = ids.map((id) => `kb_retract_entity_relationships(${toPrologAtom(id)})`);
207
+ const batchRunner = prolog.queryBatch?.bind(prolog);
208
+ const result = batchRunner
209
+ ? await batchRunner(goals)
210
+ : await prolog.query(`rdf_transaction((${goals.join(", ")}))`);
211
+ if (!result.success) {
212
+ throw new Error(result.error ?? "Failed to retract relationship delta");
213
+ }
214
+ }
215
+ export async function retractRelationships(prolog, relationships) {
216
+ if (relationships.length === 0)
217
+ return 0;
218
+ const goals = relationships.map((relationship) => `kb_retract_relationship(${toPrologAtom(relationship.type)}, ${toPrologAtom(relationship.from)}, ${toPrologAtom(relationship.to)})`);
219
+ const batchRunner = prolog.queryBatch?.bind(prolog);
220
+ const result = batchRunner
221
+ ? await batchRunner(goals)
222
+ : await prolog.query(`rdf_transaction((${goals.join(", ")}))`);
223
+ if (!result.success) {
224
+ throw new Error(result.error ?? "Failed to retract relationship shard delta");
225
+ }
226
+ return relationships.length;
227
+ }
117
228
  function isQueryFailedError(error) {
118
229
  const lowered = error.toLowerCase();
119
230
  // Only match session-corruption errors that might benefit from a Prolog process restart.
@@ -140,21 +251,26 @@ async function tryResetPrologProcess(prolog) {
140
251
  }
141
252
  export async function persistEntities(
142
253
  // implements REQ-009
143
- prolog, results, entityIds) {
254
+ prolog, results, entityIds, options = {}) {
144
255
  let entityCount = 0;
145
256
  let kbModified = false;
146
257
  const existingEntityIds = new Set();
147
- // Query existing entity IDs to include unchanged entities
148
- const existingIdsResult = await prolog.query("findall(Id, kb_entity(Id, _, _), ExistingIds)");
149
- if (existingIdsResult.success && existingIdsResult.bindings?.ExistingIds) {
150
- const raw = existingIdsResult.bindings.ExistingIds;
151
- const cleaned = raw.trim().replace(/^\[/, "").replace(/\]$/, "");
152
- if (cleaned) {
153
- for (const atom of cleaned.split(",")) {
154
- const id = atom.trim().replace(/^'|'$/g, "");
155
- if (id) {
156
- entityIds.add(id);
157
- existingEntityIds.add(id);
258
+ const pendingEntityGoals = [];
259
+ if (options.loadExistingEntityIds !== false) {
260
+ // Generation rebuilds need the complete endpoint inventory for local
261
+ // relationship validation. Journal deltas rely on Prolog's authoritative
262
+ // endpoint checks and must not materialize 10,000 IDs for one upsert.
263
+ const existingIdsResult = await prolog.query("findall(Id, kb_entity(Id, _, _), ExistingIds)");
264
+ if (existingIdsResult.success && existingIdsResult.bindings?.ExistingIds) {
265
+ const raw = existingIdsResult.bindings.ExistingIds;
266
+ const cleaned = raw.trim().replace(/^\[/, "").replace(/\]$/, "");
267
+ if (cleaned) {
268
+ for (const atom of cleaned.split(",")) {
269
+ const id = atom.trim().replace(/^'|'$/g, "");
270
+ if (id) {
271
+ entityIds.add(id);
272
+ existingEntityIds.add(id);
273
+ }
158
274
  }
159
275
  }
160
276
  }
@@ -253,24 +369,65 @@ prolog, results, entityIds) {
253
369
  if (entity.verification_perspective !== undefined) {
254
370
  props.push(`verification_perspective=${toPrologAtom(entity.verification_perspective)}`);
255
371
  }
372
+ if (entity.verification_contract !== undefined) {
373
+ props.push(`verification_contract=${toPrologString(JSON.stringify(entity.verification_contract))}`);
374
+ }
256
375
  if (entity.verification_receipts !== undefined) {
257
376
  props.push(`verification_receipts=${toPrologString(JSON.stringify(entity.verification_receipts))}`);
258
377
  }
259
378
  }
260
379
  const propsList = `[${props.join(", ")}]`;
261
380
  const goal = `kb_assert_entity(${entity.type}, ${propsList})`;
262
- const result = await prolog.query(goal);
263
- if (!result.success) {
264
- throw new Error(result.error || `kb_assert_entity failed for ${entity.id}`);
265
- }
266
- entityCount++;
267
- kbModified = true;
381
+ pendingEntityGoals.push({
382
+ entity,
383
+ sourceFile: sourceFile ?? entity.source,
384
+ goal,
385
+ });
268
386
  }
269
387
  catch (error) {
270
388
  const message = error instanceof Error ? error.message : String(error);
271
389
  throw new Error(`Failed to upsert entity ${entity.id}: ${message}${semanticEntityContext(entity, sourceFile ?? entity.source)}`);
272
390
  }
273
391
  }
392
+ // Persist a changed source as a bounded set of RDF edits. This retains the
393
+ // per-entity fallback diagnostics while avoiding one Prolog round-trip and
394
+ // journal flush for every symbol/document in the common case.
395
+ const batchRunner = prolog.queryBatch?.bind(prolog);
396
+ const batchSize = 250;
397
+ for (let offset = 0; offset < pendingEntityGoals.length; offset += batchSize) {
398
+ const chunk = pendingEntityGoals.slice(offset, offset + batchSize);
399
+ const result = batchRunner
400
+ ? await batchRunner(chunk.map(({ goal }) => goal))
401
+ : { success: false, error: "batch unsupported" };
402
+ if (result.success) {
403
+ entityCount += chunk.length;
404
+ kbModified = true;
405
+ continue;
406
+ }
407
+ // A malformed entity should retain the precise existing error. The batch
408
+ // transaction has rolled back, so retrying sequentially is safe.
409
+ for (const item of chunk) {
410
+ try {
411
+ const single = await prolog.query(item.goal);
412
+ if (!single.success) {
413
+ const detail = single.error ||
414
+ (batchRunner ? result.error : undefined) ||
415
+ `kb_assert_entity failed for ${item.entity.id}`;
416
+ throw new Error(`Failed to upsert entity ${item.entity.id}: ${detail}${semanticEntityContext(item.entity, item.sourceFile)}`);
417
+ }
418
+ entityCount++;
419
+ kbModified = true;
420
+ }
421
+ catch (error) {
422
+ if (error instanceof Error &&
423
+ error.message.startsWith("Failed to upsert entity ")) {
424
+ throw error;
425
+ }
426
+ const message = error instanceof Error ? error.message : String(error);
427
+ throw new Error(`Failed to upsert entity ${item.entity.id}: ${message}${semanticEntityContext(item.entity, item.sourceFile)}`);
428
+ }
429
+ }
430
+ }
274
431
  return { entityCount, kbModified };
275
432
  }
276
433
  function semanticEntityContext(entity, sourceFile) {
@@ -306,25 +463,14 @@ export async function persistRelationships(prolog, results, shardRelationships)
306
463
  }
307
464
  // Collect all relationships from results and shards
308
465
  const failedRelationships = [];
466
+ const pendingRelationships = [];
309
467
  for (const { relationships } of results) {
310
468
  for (const rel of relationships) {
311
469
  try {
312
470
  const fromId = idLookup.get(rel.from) || rel.from;
313
471
  const toId = idLookup.get(rel.to) || rel.to;
314
472
  const goal = `kb_assert_relationship(${toPrologAtom(rel.type)}, ${toPrologAtom(fromId)}, ${toPrologAtom(toId)}, [])`;
315
- const result = await prolog.query(goal);
316
- if (result.success) {
317
- relCount++;
318
- kbModified = true;
319
- }
320
- else {
321
- failedRelationships.push({
322
- rel,
323
- fromId,
324
- toId,
325
- error: result.error || "Unknown error",
326
- });
327
- }
473
+ pendingRelationships.push({ rel, fromId, toId, goal });
328
474
  }
329
475
  catch (error) {
330
476
  const message = error instanceof Error ? error.message : String(error);
@@ -338,19 +484,12 @@ export async function persistRelationships(prolog, results, shardRelationships)
338
484
  for (const rel of shardRelationships) {
339
485
  try {
340
486
  const goal = `kb_assert_relationship(${toPrologAtom(rel.type)}, ${toPrologAtom(rel.from)}, ${toPrologAtom(rel.to)}, [])`;
341
- const result = await prolog.query(goal);
342
- if (result.success) {
343
- relCount++;
344
- kbModified = true;
345
- }
346
- else {
347
- failedRelationships.push({
348
- rel,
349
- fromId: rel.from,
350
- toId: rel.to,
351
- error: result.error || "Unknown error",
352
- });
353
- }
487
+ pendingRelationships.push({
488
+ rel,
489
+ fromId: rel.from,
490
+ toId: rel.to,
491
+ goal,
492
+ });
354
493
  }
355
494
  catch (error) {
356
495
  const message = error instanceof Error ? error.message : String(error);
@@ -362,6 +501,46 @@ export async function persistRelationships(prolog, results, shardRelationships)
362
501
  });
363
502
  }
364
503
  }
504
+ const relationshipBatchRunner = prolog.queryBatch?.bind(prolog);
505
+ const relationshipBatchSize = 250;
506
+ for (let offset = 0; offset < pendingRelationships.length; offset += relationshipBatchSize) {
507
+ const chunk = pendingRelationships.slice(offset, offset + relationshipBatchSize);
508
+ const batch = relationshipBatchRunner
509
+ ? await relationshipBatchRunner(chunk.map(({ goal }) => goal))
510
+ : { success: false, error: "batch unsupported" };
511
+ if (batch.success) {
512
+ relCount += chunk.length;
513
+ kbModified = true;
514
+ continue;
515
+ }
516
+ for (const item of chunk) {
517
+ try {
518
+ const single = await prolog.query(item.goal);
519
+ if (single.success) {
520
+ relCount++;
521
+ kbModified = true;
522
+ }
523
+ else {
524
+ failedRelationships.push({
525
+ rel: item.rel,
526
+ fromId: item.fromId,
527
+ toId: item.toId,
528
+ error: single.error ||
529
+ (relationshipBatchRunner ? batch.error : undefined) ||
530
+ "Unknown error",
531
+ });
532
+ }
533
+ }
534
+ catch (error) {
535
+ failedRelationships.push({
536
+ rel: item.rel,
537
+ fromId: item.fromId,
538
+ toId: item.toId,
539
+ error: error instanceof Error ? error.message : String(error),
540
+ });
541
+ }
542
+ }
543
+ }
365
544
  // Retry failed relationships
366
545
  const retryCount = 3;
367
546
  let resetAttempted = false;
@@ -1,4 +1,4 @@
1
- import { existsSync, mkdirSync, renameSync, rmSync } from "node:fs";
1
+ import { existsSync, mkdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
2
2
  import { copyFileSync } from "node:fs";
3
3
  import fg from "fast-glob";
4
4
  import { copyCleanSnapshot } from "../../utils/branch-resolver.js";
@@ -13,11 +13,20 @@ interface StagingDeps {
13
13
  moduleDir: string;
14
14
  renameSync: typeof renameSync;
15
15
  rmSync: typeof rmSync;
16
+ writeFileSync: typeof writeFileSync;
16
17
  }
17
18
  export declare function createUniqueStagingPath(currentBranch: string, rootDir: string, pid?: number, now?: number): string;
18
19
  export declare function cleanupAbandonedStagingDirectories(stagingPath: string, deps?: Partial<StagingDeps>): Promise<void>;
19
20
  export declare function prepareStagingEnvironment(stagingPath: string, livePath: string, rebuild: boolean, deps?: Partial<StagingDeps>): Promise<void>;
20
21
  export declare function atomicPublish(stagingPath: string, livePath: string, deps?: Partial<StagingDeps>): void;
22
+ /**
23
+ * Publish a rebuilt journal generation without replacing the branch directory.
24
+ * The legacy backup, sync metadata, and sentinel stay in place; only the
25
+ * journal database and CURRENT pointer move. A short-lived rollback pair is
26
+ * retained until both moves succeed so an interrupted publication can be
27
+ * repaired on the next engine start.
28
+ */
29
+ export declare function atomicPublishGeneration(stagingPath: string, livePath: string, deps?: Partial<StagingDeps>): void;
21
30
  export declare function cleanupStaging(stagingPath: string, deps?: Partial<StagingDeps>): void;
22
31
  export {};
23
32
  //# sourceMappingURL=staging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"staging.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/staging.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,UAAU,WAAW;IACnB,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB;AA8BD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,GAAG,SAAc,EACjB,GAAG,SAAa,GACf,MAAM,CAOR;AAGD,wBAAsB,kCAAkC,CACtD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED,wBAAsB,yBAAyB,CAE7C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CAaf;AA0CD,wBAAgB,aAAa,CAE3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,IAAI,CAeN;AAED,wBAAgB,cAAc,CAE5B,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,IAAI,CAKN"}
1
+ {"version":3,"file":"staging.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/staging.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,MAAM,EACN,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,UAAU,WAAW;IACnB,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,aAAa,CAAC;CACrC;AA+BD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,GAAG,SAAc,EACjB,GAAG,SAAa,GACf,MAAM,CAOR;AAGD,wBAAsB,kCAAkC,CACtD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED,wBAAsB,yBAAyB,CAE7C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Cf;AA0CD,wBAAgB,aAAa,CAE3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,IAAI,CAeN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,IAAI,CA6DN;AAED,wBAAgB,cAAc,CAE5B,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC1B,IAAI,CAKN"}
@@ -15,7 +15,7 @@
15
15
  You should have received a copy of the GNU Affero General Public License
16
16
  along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
- import { existsSync, mkdirSync, renameSync, rmSync } from "node:fs";
18
+ import { existsSync, mkdirSync, renameSync, rmSync, writeFileSync, } from "node:fs";
19
19
  import { copyFileSync } from "node:fs";
20
20
  import * as path from "node:path";
21
21
  import fg from "fast-glob";
@@ -42,6 +42,7 @@ function resolveDeps(overrides) {
42
42
  moduleDir: import.meta.dirname,
43
43
  renameSync,
44
44
  rmSync,
45
+ writeFileSync,
45
46
  ...overrides,
46
47
  };
47
48
  }
@@ -104,6 +105,22 @@ stagingPath, livePath, rebuild, deps) {
104
105
  // Start fresh with schema only
105
106
  await copySchemaToStaging(stagingPath, resolved);
106
107
  }
108
+ // Every new staging generation uses the journaled store format. This also
109
+ // makes `--rebuild` publish a native RDF database instead of recreating the
110
+ // legacy full-snapshot path.
111
+ const markerPath = path.join(stagingPath, "storage.json");
112
+ const canWriteMetadata = deps === undefined || deps.writeFileSync !== undefined;
113
+ if (canWriteMetadata &&
114
+ resolved.existsSync(stagingPath) &&
115
+ !resolved.existsSync(markerPath)) {
116
+ resolved.mkdirSync(path.join(stagingPath, "rdf"), { recursive: true });
117
+ resolved.writeFileSync(markerPath, '{"format":"kibi.rdf-journal.v1","schemaVersion":1}\n', { mode: 0o600 });
118
+ const generation = rebuild
119
+ ? `generation-${process.pid}-${Date.now()}`
120
+ : "generation-1";
121
+ resolved.writeFileSync(path.join(stagingPath, "CURRENT"), `${generation}:0\n`, { mode: 0o600 });
122
+ resolved.writeFileSync(path.join(stagingPath, "kb.rdf"), "KIBI_STORAGE_FORMAT=kibi.rdf-journal.v1\n", { mode: 0o600 });
123
+ }
107
124
  }
108
125
  async function copySchemaToStaging(stagingPath, deps) {
109
126
  const possibleSchemaPaths = [
@@ -154,6 +171,72 @@ stagingPath, livePath, deps) {
154
171
  resolved.renameSync(stagingPath, livePath);
155
172
  }
156
173
  }
174
+ /**
175
+ * Publish a rebuilt journal generation without replacing the branch directory.
176
+ * The legacy backup, sync metadata, and sentinel stay in place; only the
177
+ * journal database and CURRENT pointer move. A short-lived rollback pair is
178
+ * retained until both moves succeed so an interrupted publication can be
179
+ * repaired on the next engine start.
180
+ */
181
+ export function atomicPublishGeneration(stagingPath, livePath, deps) {
182
+ const resolved = resolveDeps(deps);
183
+ const liveParent = path.dirname(livePath);
184
+ if (!resolved.existsSync(liveParent)) {
185
+ resolved.mkdirSync(liveParent, { recursive: true });
186
+ }
187
+ if (!resolved.existsSync(livePath)) {
188
+ resolved.renameSync(stagingPath, livePath);
189
+ return;
190
+ }
191
+ const generationStamp = `${Date.now()}.${process.pid}`;
192
+ const liveRdf = path.join(livePath, "rdf");
193
+ const stagedRdf = path.join(stagingPath, "rdf");
194
+ const oldRdf = `${liveRdf}.old.${generationStamp}`;
195
+ const liveCurrent = path.join(livePath, "CURRENT");
196
+ const stagedCurrent = path.join(stagingPath, "CURRENT");
197
+ const oldCurrent = `${liveCurrent}.old.${generationStamp}`;
198
+ if (!resolved.existsSync(stagedRdf) || !resolved.existsSync(stagedCurrent)) {
199
+ throw new Error("Rebuilt journal generation is missing rdf or CURRENT");
200
+ }
201
+ let oldRdfMoved = false;
202
+ let oldCurrentMoved = false;
203
+ try {
204
+ if (resolved.existsSync(liveRdf)) {
205
+ resolved.renameSync(liveRdf, oldRdf);
206
+ oldRdfMoved = true;
207
+ }
208
+ resolved.renameSync(stagedRdf, liveRdf);
209
+ if (resolved.existsSync(liveCurrent)) {
210
+ resolved.renameSync(liveCurrent, oldCurrent);
211
+ oldCurrentMoved = true;
212
+ }
213
+ resolved.renameSync(stagedCurrent, liveCurrent);
214
+ }
215
+ catch (error) {
216
+ // Restore the old pointer/database whenever publication fails. If the
217
+ // process itself crashes, ensureJournaledBranchStoreAsync performs the
218
+ // same recovery from the `.old.<stamp>` siblings.
219
+ try {
220
+ if (resolved.existsSync(liveCurrent))
221
+ resolved.rmSync(liveCurrent, { force: true });
222
+ if (oldCurrentMoved && resolved.existsSync(oldCurrent))
223
+ resolved.renameSync(oldCurrent, liveCurrent);
224
+ if (resolved.existsSync(liveRdf))
225
+ resolved.rmSync(liveRdf, { recursive: true, force: true });
226
+ if (oldRdfMoved && resolved.existsSync(oldRdf))
227
+ resolved.renameSync(oldRdf, liveRdf);
228
+ }
229
+ catch {
230
+ // Preserve the original publication error; startup recovery will report
231
+ // the remaining sibling paths if the rollback itself was interrupted.
232
+ }
233
+ throw error;
234
+ }
235
+ if (resolved.existsSync(oldRdf))
236
+ resolved.rmSync(oldRdf, { recursive: true, force: true });
237
+ if (resolved.existsSync(oldCurrent))
238
+ resolved.rmSync(oldCurrent, { force: true });
239
+ }
157
240
  export function cleanupStaging(
158
241
  // implements REQ-003
159
242
  stagingPath, deps) {
@@ -1,4 +1,5 @@
1
1
  import type { SyncSummary } from "../diagnostics.js";
2
+ import { acquireSymbolCompilerLock } from "../operations/mutation/symbol-compiler-lock.js";
2
3
  import { PrologProcess } from "../prolog.js";
3
4
  export declare class SyncError extends Error {
4
5
  constructor(message: string);
@@ -21,11 +22,16 @@ interface SyncCommandRuntime {
21
22
  createProlog?: (options: {
22
23
  timeout: number;
23
24
  }) => PrologProcess;
25
+ acquireSymbolCompilerLock?: typeof acquireSymbolCompilerLock;
24
26
  }
25
27
  export declare function syncCommand(options?: {
26
28
  validateOnly?: boolean;
27
29
  rebuild?: boolean;
28
30
  refreshSymbolCoordinates?: boolean;
31
+ /** Explicitly rebuild an unreadable branch store from authored sources. */
32
+ recoveryBackupPath?: string;
33
+ /** Workspace to operate on when invoked through MCP or another host. */
34
+ workspaceRoot?: string;
29
35
  }, runtime?: SyncCommandRuntime): Promise<SyncResult>;
30
36
  export { normalizeMarkdownPath } from "./sync/discovery.js";
31
37
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA4B7C,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAGD,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,kBAAkB;IAC1B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3E,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,yBAAyB,GAAG;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,KACzD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,aAAa,CAAC;CAChE;AAGD,wBAAsB,WAAW,CAC/B,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CAC/B,EACN,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,UAAU,CAAC,CAsfrB;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyBjE,OAAO,EAEL,yBAAyB,EAE1B,MAAM,gDAAgD,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA+C7C,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAkMD,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,kBAAkB;IAC1B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3E,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,yBAAyB,GAAG;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,KACzD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,aAAa,CAAC;IAC/D,yBAAyB,CAAC,EAAE,OAAO,yBAAyB,CAAC;CAC9D;AA+DD,wBAAsB,WAAW,CAC/B,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,EACN,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,UAAU,CAAC,CA4kCrB;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}