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
@@ -15,14 +15,19 @@
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 { execSync as rawExecSync } from "node:child_process";
19
- import { copyFileSync, existsSync, mkdirSync, readdirSync, statSync, } from "node:fs";
18
+ import { execFileSync as rawExecFileSync, execSync as rawExecSync, } from "node:child_process";
19
+ import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, } from "node:fs";
20
20
  import * as path from "node:path";
21
21
  import { getBranchOverride } from "../env.js";
22
- const defaultDeps = { execSync: rawExecSync };
22
+ import { branchStoreManifestMatches, branchStorePath, legacyBranchStorePath, } from "./branch-store-locator.js";
23
+ const defaultDeps = {
24
+ execSync: rawExecSync,
25
+ execFileSync: rawExecFileSync,
26
+ };
23
27
  export function _setBranchResolverDepsForTests(deps) {
24
28
  // implements REQ-008
25
29
  defaultDeps.execSync = deps.execSync ?? rawExecSync;
30
+ defaultDeps.execFileSync = deps.execFileSync ?? rawExecFileSync;
26
31
  }
27
32
  // Files to exclude when copying branch snapshots (volatile artifacts)
28
33
  const VOLATILE_ARTIFACTS = new Set([
@@ -96,9 +101,9 @@ export function resolveActiveBranch(workspaceRoot = process.cwd()) {
96
101
  code: "UNKNOWN_ERROR",
97
102
  };
98
103
  }
99
- // Normalize 'master' to 'main' for consistency
100
- const normalizedBranch = branch === "master" ? "main" : branch;
101
- return { branch: normalizedBranch };
104
+ // Git branch names are the branch identity. Do not normalize master,
105
+ // main, or any other branch name: the KB is branch-local state.
106
+ return { branch };
102
107
  }
103
108
  catch (error) {
104
109
  // Try alternative: git rev-parse --abbrev-ref HEAD
@@ -129,9 +134,7 @@ export function resolveActiveBranch(workspaceRoot = process.cwd()) {
129
134
  code: "UNKNOWN_ERROR",
130
135
  };
131
136
  }
132
- // Normalize 'master' to 'main' for consistency
133
- const normalizedBranch = branch === "master" ? "main" : branch;
134
- return { branch: normalizedBranch };
137
+ return { branch };
135
138
  }
136
139
  catch {
137
140
  // Determine specific error type
@@ -156,6 +159,74 @@ export function resolveActiveBranch(workspaceRoot = process.cwd()) {
156
159
  }
157
160
  }
158
161
  }
162
+ /**
163
+ * Resolve the storage namespace without treating any branch as canonical.
164
+ * Literal branch-named stores are read-compatible legacy storage only. The
165
+ * active Git identity always remains the exact branch name.
166
+ */
167
+ export function resolveBranchAttachment(workspaceRoot = process.cwd()) {
168
+ const active = resolveActiveBranch(workspaceRoot);
169
+ if ("error" in active)
170
+ return active;
171
+ const explicit = Boolean(getBranchOverride());
172
+ const migrationRoot = path.join(path.resolve(workspaceRoot), ".kb", "recovery", "branch-migrations");
173
+ if (existsSync(migrationRoot)) {
174
+ for (const journalName of readdirSync(migrationRoot)) {
175
+ if (!journalName.endsWith(".json"))
176
+ continue;
177
+ try {
178
+ const journal = JSON.parse(readFileSync(path.join(migrationRoot, journalName), "utf8"));
179
+ if (journal.state !== "committed" && journal.state !== "rolled_back") {
180
+ const id = journalName.slice(0, -5);
181
+ return {
182
+ error: `Incomplete branch migration journal '${id}' blocks attachment. Preview recovery with 'kibi branch migrate --recover-journal ${id}', then apply that exact recovery action.`,
183
+ code: "MIGRATION_RECOVERY_REQUIRED",
184
+ };
185
+ }
186
+ }
187
+ catch {
188
+ return {
189
+ error: `Unreadable branch migration journal '${journalName}' blocks attachment; recover it explicitly before continuing.`,
190
+ code: "MIGRATION_RECOVERY_REQUIRED",
191
+ };
192
+ }
193
+ }
194
+ }
195
+ const exactPath = branchStorePath(workspaceRoot, active.branch);
196
+ const legacyPath = legacyBranchStorePath(workspaceRoot, active.branch);
197
+ if (existsSync(exactPath) && existsSync(legacyPath)) {
198
+ return {
199
+ error: `Ambiguous branch storage: both the hashed store ${exactPath} and legacy store ${legacyPath} exist for '${active.branch}'. Preview an explicit migration before continuing.`,
200
+ code: "AMBIGUOUS_ATTACHMENT",
201
+ };
202
+ }
203
+ if (existsSync(legacyPath)) {
204
+ return {
205
+ gitBranch: active.branch,
206
+ kbBranch: active.branch,
207
+ storePath: legacyPath,
208
+ kind: "legacy_compat",
209
+ migrationRequired: true,
210
+ };
211
+ }
212
+ // An exact hash directory is an identity fence, not merely a convenient
213
+ // pathname. A missing, malformed, or mismatched manifest must never be
214
+ // silently attached to the active Git ref.
215
+ if (existsSync(exactPath) &&
216
+ !branchStoreManifestMatches(exactPath, active.branch)) {
217
+ return {
218
+ error: `Branch store identity manifest mismatch at ${exactPath}; refusing to attach it to '${active.branch}'.`,
219
+ code: "AMBIGUOUS_ATTACHMENT",
220
+ };
221
+ }
222
+ return {
223
+ gitBranch: active.branch,
224
+ kbBranch: active.branch,
225
+ storePath: exactPath,
226
+ kind: explicit ? "explicit_override" : "exact",
227
+ migrationRequired: false,
228
+ };
229
+ }
159
230
  /**
160
231
  * Check if the repository is in detached HEAD state.
161
232
  *
@@ -203,22 +274,44 @@ export function getBranchDiagnostic(branch, error) {
203
274
  export function isValidBranchName(name) {
204
275
  if (!name || name.length === 0 || name.length > 255)
205
276
  return false;
277
+ const hasControlCharacter = [...name].some((character) => {
278
+ const codePoint = character.codePointAt(0) ?? 0;
279
+ return codePoint <= 0x20 || codePoint === 0x7f;
280
+ });
206
281
  // Reject path traversal attempts
207
282
  if (name.includes("..") || path.isAbsolute(name) || name.startsWith("/")) {
208
283
  return false;
209
284
  }
210
- // Only allow safe characters
211
- if (!/^[a-zA-Z0-9._\-/+]+$/.test(name))
212
- return false;
213
285
  // Reject problematic patterns
214
286
  if (name.includes("//") ||
215
287
  name.endsWith("/") ||
216
288
  name.endsWith(".") ||
217
289
  name.includes("\\") ||
218
- name.startsWith("-")) {
290
+ name.startsWith("-") ||
291
+ name.includes("@{") ||
292
+ name.includes("..") ||
293
+ hasControlCharacter ||
294
+ /[~^:?*\[\]]/.test(name)) {
295
+ return false;
296
+ }
297
+ // Git rejects a ref component that starts with a dot or ends in `.lock`.
298
+ // Keep this check local (rather than shelling out for every validation) so
299
+ // env/config validation remains deterministic while matching the relevant
300
+ // `git check-ref-format --branch` rules.
301
+ const components = name.split("/");
302
+ if (components.some((component) => component.startsWith(".") || component.endsWith(".lock"))) {
303
+ return false;
304
+ }
305
+ try {
306
+ defaultDeps.execFileSync("git", ["check-ref-format", "--branch", name], {
307
+ stdio: ["ignore", "ignore", "ignore"],
308
+ timeout: 5000,
309
+ });
310
+ return true;
311
+ }
312
+ catch {
219
313
  return false;
220
314
  }
221
- return true;
222
315
  }
223
316
  /**
224
317
  * Copy a clean snapshot from source branch to target branch, excluding
@@ -275,37 +368,25 @@ export function getVolatileArtifactPatterns() {
275
368
  ];
276
369
  }
277
370
  /**
278
- * @deprecated defaultBranch is deprecated. Branch lifecycle now follows git naturally
279
- * without requiring a configured default. This function is kept for backward compatibility
280
- * but should not be used for new code.
371
+ * @deprecated Branch lifecycle follows Git naturally. This helper remains for
372
+ * callers that need informational remote-default discovery, but it never
373
+ * invents a `main` branch.
281
374
  *
282
- * Resolve the default branch using the following precedence:
283
- * 1. Configured defaultBranch from config (if set and valid)
284
- * 2. Git remote HEAD (refs/remotes/origin/HEAD)
285
- * 3. Fallback to "main"
375
+ * Resolve a remote default branch for informational display only. It must not
376
+ * be used to attach a KB or initialize a branch. Legacy migration callers must
377
+ * supply explicit old and new identities.
286
378
  *
287
379
  * Unlike resolveActiveBranch, this does NOT normalize branch names.
288
380
  * Configured names are returned verbatim.
289
381
  *
290
382
  * @param cwd - The working directory to resolve the default branch
291
- * @param config - Optional config with defaultBranch
383
+ * @param _config - Retained for source compatibility; ignored.
292
384
  * @returns BranchResolutionResult with either the branch name or an error
293
385
  */
294
- export function resolveDefaultBranch(cwd = process.cwd(), config) {
386
+ export function resolveDefaultBranch(cwd = process.cwd(), _config) {
295
387
  // implements REQ-012
296
- // 1. Check config.defaultBranch first (highest precedence)
297
- const configuredBranch = config?.defaultBranch?.trim();
298
- if (configuredBranch) {
299
- if (!isValidBranchName(configuredBranch)) {
300
- return {
301
- error: `Invalid defaultBranch configured in .kb/config.json: '${configuredBranch}'`,
302
- code: "INVALID_CONFIG",
303
- };
304
- }
305
- // Return configured branch verbatim (no normalization)
306
- return { branch: configuredBranch };
307
- }
308
- // 2. Try to get the remote default branch from origin/HEAD
388
+ // Try to get the remote default branch from origin/HEAD. This is only
389
+ // informational; attachment always follows the active Git branch.
309
390
  try {
310
391
  const remoteHead = defaultDeps
311
392
  .execSync("git symbolic-ref refs/remotes/origin/HEAD", {
@@ -327,6 +408,8 @@ export function resolveDefaultBranch(cwd = process.cwd(), config) {
327
408
  catch {
328
409
  // origin/HEAD doesn't exist or command failed, fall through to fallback
329
410
  }
330
- // 3. Final fallback to "main"
331
- return { branch: "main" };
411
+ return {
412
+ error: "No remote default branch is configured; provide explicit migration identities.",
413
+ code: "NO_DEFAULT_BRANCH",
414
+ };
332
415
  }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The compiled branch store is keyed by the exact Git ref rather than by a
3
+ * path derived from that ref. This keeps names such as `feature/auth` flat and
4
+ * makes the store safe to enumerate and garbage collect.
5
+ */
6
+ export declare const BRANCH_STORE_MANIFEST_VERSION: 1;
7
+ export type BranchStoreManifest = Readonly<{
8
+ version: typeof BRANCH_STORE_MANIFEST_VERSION;
9
+ branch: string;
10
+ key: string;
11
+ }>;
12
+ export declare function branchStoreKey(branch: string): string;
13
+ export declare function branchStoresRoot(workspaceRoot: string): string;
14
+ export declare function branchStorePath(workspaceRoot: string, branch: string): string;
15
+ export declare function branchStoreManifestPath(storePath: string): string;
16
+ export declare function expectedBranchStoreManifest(branch: string): BranchStoreManifest;
17
+ export declare function readBranchStoreManifest(storePath: string): BranchStoreManifest | null;
18
+ export declare function branchStoreManifestMatches(storePath: string, branch: string): boolean;
19
+ /** Create or verify the identity fence for a newly materialized store. */
20
+ export declare function ensureBranchStoreManifest(workspaceRoot: string, branch: string): string;
21
+ export declare function legacyBranchStorePath(workspaceRoot: string, branch: string): string;
22
+ export declare function isDirectory(pathname: string): boolean;
23
+ //# sourceMappingURL=branch-store-locator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-store-locator.d.ts","sourceRoot":"","sources":["../../src/utils/branch-store-locator.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAG,CAAU,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,OAAO,6BAA6B,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CAAC;AAEH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,GACb,mBAAmB,CAMrB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAChB,mBAAmB,GAAG,IAAI,CAsB5B;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAUT;AAED,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,MAAM,CA6BR;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMrD"}
@@ -0,0 +1,90 @@
1
+ import { createHash } from "node:crypto";
2
+ import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, } from "node:fs";
3
+ import path from "node:path";
4
+ /**
5
+ * The compiled branch store is keyed by the exact Git ref rather than by a
6
+ * path derived from that ref. This keeps names such as `feature/auth` flat and
7
+ * makes the store safe to enumerate and garbage collect.
8
+ */
9
+ export const BRANCH_STORE_MANIFEST_VERSION = 1;
10
+ export function branchStoreKey(branch) {
11
+ return createHash("sha256").update(branch, "utf8").digest("hex");
12
+ }
13
+ export function branchStoresRoot(workspaceRoot) {
14
+ return path.join(path.resolve(workspaceRoot), ".kb", "branches");
15
+ }
16
+ export function branchStorePath(workspaceRoot, branch) {
17
+ return path.join(branchStoresRoot(workspaceRoot), branchStoreKey(branch));
18
+ }
19
+ export function branchStoreManifestPath(storePath) {
20
+ return path.join(storePath, "branch.json");
21
+ }
22
+ export function expectedBranchStoreManifest(branch) {
23
+ return {
24
+ version: BRANCH_STORE_MANIFEST_VERSION,
25
+ branch,
26
+ key: branchStoreKey(branch),
27
+ };
28
+ }
29
+ export function readBranchStoreManifest(storePath) {
30
+ const manifestPath = branchStoreManifestPath(storePath);
31
+ if (!existsSync(manifestPath))
32
+ return null;
33
+ try {
34
+ const parsed = JSON.parse(readFileSync(manifestPath, "utf8"));
35
+ if (parsed.version !== BRANCH_STORE_MANIFEST_VERSION ||
36
+ typeof parsed.branch !== "string" ||
37
+ typeof parsed.key !== "string") {
38
+ return null;
39
+ }
40
+ return {
41
+ version: BRANCH_STORE_MANIFEST_VERSION,
42
+ branch: parsed.branch,
43
+ key: parsed.key,
44
+ };
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ export function branchStoreManifestMatches(storePath, branch) {
51
+ const manifest = readBranchStoreManifest(storePath);
52
+ const expected = expectedBranchStoreManifest(branch);
53
+ return (manifest !== null &&
54
+ manifest.version === expected.version &&
55
+ manifest.branch === expected.branch &&
56
+ manifest.key === expected.key &&
57
+ path.basename(storePath) === expected.key);
58
+ }
59
+ /** Create or verify the identity fence for a newly materialized store. */
60
+ export function ensureBranchStoreManifest(workspaceRoot, branch) {
61
+ const storePath = branchStorePath(workspaceRoot, branch);
62
+ mkdirSync(storePath, { recursive: true });
63
+ const manifestPath = branchStoreManifestPath(storePath);
64
+ const existing = readBranchStoreManifest(storePath);
65
+ if (existing !== null && !branchStoreManifestMatches(storePath, branch)) {
66
+ throw new Error(`Branch store identity mismatch at ${storePath}; refusing to attach it to '${branch}'.`);
67
+ }
68
+ if (existing === null) {
69
+ if (existsSync(manifestPath)) {
70
+ throw new Error(`Branch store manifest is invalid at ${manifestPath}; refusing to overwrite it.`);
71
+ }
72
+ const entries = readdirSync(storePath);
73
+ if (entries.length > 0) {
74
+ throw new Error(`Branch store at ${storePath} has compiled data but no valid identity manifest; refusing to adopt it.`);
75
+ }
76
+ writeFileSync(manifestPath, `${JSON.stringify(expectedBranchStoreManifest(branch), null, 2)}\n`, { mode: 0o600 });
77
+ }
78
+ return storePath;
79
+ }
80
+ export function legacyBranchStorePath(workspaceRoot, branch) {
81
+ return path.join(branchStoresRoot(workspaceRoot), branch);
82
+ }
83
+ export function isDirectory(pathname) {
84
+ try {
85
+ return statSync(pathname).isDirectory();
86
+ }
87
+ catch {
88
+ return false;
89
+ }
90
+ }
@@ -0,0 +1,15 @@
1
+ export type BranchStoreState = "healthy" | "missing" | "incomplete" | "unreadable";
2
+ export type BranchStoreInspection = Readonly<{
3
+ state: BranchStoreState;
4
+ path: string;
5
+ errorCode?: string;
6
+ detail?: string;
7
+ recoveryRequired: boolean;
8
+ }>;
9
+ /**
10
+ * Performs only filesystem checks. It deliberately never starts the engine or
11
+ * attaches Prolog, so callers can still explain a broken branch store.
12
+ */
13
+ export declare function inspectBranchStore(workspaceRoot: string, branch: string): BranchStoreInspection;
14
+ export declare function branchStoreReason(inspection: BranchStoreInspection): Record<string, unknown> | null;
15
+ //# sourceMappingURL=branch-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-store.d.ts","sourceRoot":"","sources":["../../src/utils/branch-store.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,qBAAqB,CA0GvB;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,qBAAqB,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWhC"}
@@ -0,0 +1,130 @@
1
+ /*
2
+ Kibi — repo-local, per-branch, queryable long-term memory for software projects
3
+ Copyright (C) 2026 Piotr Franczyk
4
+ */
5
+ import { existsSync, readFileSync, statSync } from "node:fs";
6
+ import * as path from "node:path";
7
+ import { branchStoreManifestMatches, branchStorePath, legacyBranchStorePath, } from "./branch-store-locator.js";
8
+ /**
9
+ * Performs only filesystem checks. It deliberately never starts the engine or
10
+ * attaches Prolog, so callers can still explain a broken branch store.
11
+ */
12
+ export function inspectBranchStore(workspaceRoot, branch) {
13
+ const storePath = branchStorePath(workspaceRoot, branch);
14
+ if (!existsSync(storePath)) {
15
+ const legacyPath = legacyBranchStorePath(workspaceRoot, branch);
16
+ if (existsSync(legacyPath)) {
17
+ return {
18
+ state: "incomplete",
19
+ path: legacyPath,
20
+ errorCode: "legacy_branch_store",
21
+ detail: "A literal branch-named store exists; preview and apply the explicit migration before writes.",
22
+ recoveryRequired: true,
23
+ };
24
+ }
25
+ return {
26
+ state: "missing",
27
+ path: storePath,
28
+ errorCode: "branch_store_missing",
29
+ detail: "The branch-local KB directory does not exist.",
30
+ recoveryRequired: false,
31
+ };
32
+ }
33
+ try {
34
+ if (!statSync(storePath).isDirectory()) {
35
+ return {
36
+ state: "unreadable",
37
+ path: storePath,
38
+ errorCode: "branch_store_not_directory",
39
+ detail: "The branch-local KB path is not a directory.",
40
+ recoveryRequired: true,
41
+ };
42
+ }
43
+ if (!branchStoreManifestMatches(storePath, branch)) {
44
+ return {
45
+ state: "unreadable",
46
+ path: storePath,
47
+ errorCode: "branch_store_manifest_mismatch",
48
+ detail: "The hashed branch store is missing a valid manifest for the exact Git branch.",
49
+ recoveryRequired: true,
50
+ };
51
+ }
52
+ const markerPath = path.join(storePath, "storage.json");
53
+ const rdfPath = path.join(storePath, "rdf");
54
+ const currentPath = path.join(storePath, "CURRENT");
55
+ const legacyPath = path.join(storePath, "kb.rdf");
56
+ if (existsSync(markerPath)) {
57
+ if (!existsSync(rdfPath) || !statSync(rdfPath).isDirectory()) {
58
+ return {
59
+ state: "incomplete",
60
+ path: storePath,
61
+ errorCode: "branch_store_missing_rdf",
62
+ detail: "The journaled store has no rdf generation directory.",
63
+ recoveryRequired: true,
64
+ };
65
+ }
66
+ if (!existsSync(currentPath)) {
67
+ return {
68
+ state: "incomplete",
69
+ path: storePath,
70
+ errorCode: "sync_metadata_missing",
71
+ detail: "The journaled store has no CURRENT generation pointer.",
72
+ recoveryRequired: true,
73
+ };
74
+ }
75
+ const current = readFileSync(currentPath, "utf8").trim();
76
+ if (!/^generation-[^:\s]+:\d+$/.test(current)) {
77
+ return {
78
+ state: "unreadable",
79
+ path: storePath,
80
+ errorCode: "branch_store_invalid_current",
81
+ detail: "The journaled store CURRENT pointer is malformed.",
82
+ recoveryRequired: true,
83
+ };
84
+ }
85
+ return { state: "healthy", path: storePath, recoveryRequired: false };
86
+ }
87
+ if (existsSync(legacyPath)) {
88
+ const legacy = readFileSync(legacyPath, "utf8");
89
+ if (!/<rdf:RDF(?:\s|>)/.test(legacy)) {
90
+ return {
91
+ state: "unreadable",
92
+ path: storePath,
93
+ errorCode: "branch_store_invalid_legacy_rdf",
94
+ detail: "The legacy kb.rdf file is not RDF/XML.",
95
+ recoveryRequired: true,
96
+ };
97
+ }
98
+ return { state: "healthy", path: storePath, recoveryRequired: false };
99
+ }
100
+ return {
101
+ state: "missing",
102
+ path: storePath,
103
+ errorCode: "sync_metadata_missing",
104
+ detail: "The branch KB has neither journal metadata nor legacy RDF.",
105
+ recoveryRequired: false,
106
+ };
107
+ }
108
+ catch (error) {
109
+ return {
110
+ state: "unreadable",
111
+ path: storePath,
112
+ errorCode: "branch_store_unreadable",
113
+ detail: error instanceof Error ? error.message : String(error),
114
+ recoveryRequired: true,
115
+ };
116
+ }
117
+ }
118
+ export function branchStoreReason(inspection) {
119
+ if (inspection.state === "healthy")
120
+ return null;
121
+ return {
122
+ code: inspection.errorCode ?? `branch_store_${inspection.state}`,
123
+ path: inspection.path,
124
+ entityIds: [],
125
+ detail: inspection.detail ?? "Branch store requires attention.",
126
+ remediation: inspection.recoveryRequired
127
+ ? { command_argv: ["kibi", "branch", "recover"], applyRequired: true }
128
+ : { command_argv: ["kibi", "branch", "ensure"], applyRequired: false },
129
+ };
130
+ }
@@ -1,8 +1,21 @@
1
- import { type ChecksConfig, type SymbolTraceabilityOptions } from "./rule-registry.js";
1
+ import { type KbEntityPaths } from "./kb-paths.js";
2
2
  /**
3
- * Configuration paths for entity documentation directories.
3
+ * Kibi no longer has a user-editable configuration file. Entity source
4
+ * locations live in the canonical `.kb/` namespace defined in `kb-paths.ts`,
5
+ * and check policy is owned by Kibi's rule registry. This module retains
6
+ * only the canonical accessors plus read-only recognition of the legacy
7
+ * `.kb/config.json` document for migration tooling.
4
8
  */
5
- export interface KbConfigPaths {
9
+ export type { KbEntityPaths };
10
+ /** Canonical entity paths; always the same, never merged with user input. */
11
+ export declare const DEFAULT_CONFIG_PATHS: KbEntityPaths;
12
+ /**
13
+ * Load the canonical entity paths. The result is constant: Kibi owns the
14
+ * layout and repositories cannot relocate knowledge lanes.
15
+ */
16
+ export declare function loadEntityPaths(_cwd?: string): KbEntityPaths;
17
+ /** Legacy `.kb/config.json` path document, kept only for migration input. */
18
+ export interface LegacyKbConfigPaths {
6
19
  requirements?: string;
7
20
  scenarios?: string;
8
21
  tests?: string;
@@ -12,47 +25,36 @@ export interface KbConfigPaths {
12
25
  facts?: string;
13
26
  symbols?: string;
14
27
  }
15
- /**
16
- * Shared configuration for Kibi.
17
- * Stored in .kb/config.json
18
- */
19
- export interface KbConfig {
20
- paths: KbConfigPaths;
28
+ /** Recognized legacy `.kb/config.json` fields (migration recognition only). */
29
+ export interface LegacyKbConfig {
30
+ paths?: LegacyKbConfigPaths;
31
+ /** Pre-manifest top-level symbols manifest override. */
32
+ symbolsManifest?: string;
21
33
  schemaVersion?: number | string;
22
34
  semanticAdvisorBackfill?: "pending" | "completed" | "not_applicable";
23
- /**
24
- * @deprecated defaultBranch is deprecated. Branch lifecycle now follows git naturally
25
- * without requiring a configured default. This field is ignored but kept for compatibility.
26
- */
35
+ checks?: unknown;
27
36
  defaultBranch?: string;
28
- checks?: ChecksConfig;
29
37
  }
30
- export type { ChecksConfig, SymbolTraceabilityOptions };
38
+ /** Whether a legacy `.kb/config.json` exists at the workspace root. */
39
+ export declare function legacyConfigExists(cwd: string): boolean;
31
40
  /**
32
- * Default configuration values for new repositories.
41
+ * Read a legacy `.kb/config.json` if one exists. Malformed JSON returns
42
+ * `kind: "malformed"` so migration can report actionable diagnostics
43
+ * instead of silently guessing paths.
33
44
  */
34
- export declare const DEFAULT_CONFIG: KbConfig & {
35
- $schema: string;
45
+ export declare function readLegacyKbConfig(cwd: string): {
46
+ kind: "none";
47
+ } | {
48
+ kind: "malformed";
49
+ error: string;
50
+ } | {
51
+ kind: "present";
52
+ config: LegacyKbConfig;
36
53
  };
37
54
  /**
38
- * Default paths used by sync command (backward compatible glob patterns).
39
- */
40
- export declare const DEFAULT_SYNC_PATHS: KbConfigPaths;
41
- /**
42
- * Load and parse the Kibi configuration from .kb/config.json.
43
- * Falls back to DEFAULT_CONFIG if the file doesn't exist or is invalid.
44
- *
45
- * @param cwd - The working directory to look for .kb/config.json
46
- * @returns The merged configuration (defaults + user config)
47
- */
48
- export declare function loadConfig(cwd?: string): KbConfig;
49
- /**
50
- * Load sync configuration with fallback to glob patterns.
51
- * This is used by sync.ts to maintain backward compatibility with
52
- * older config files that may use glob patterns.
53
- *
54
- * @param cwd - The working directory to look for .kb/config.json
55
- * @returns The merged configuration with sync-compatible paths
55
+ * Resolve the effective legacy entity paths for migration discovery:
56
+ * configured values win, then the historical `documentation/` defaults.
57
+ * Glob-bearing values are preserved so migration can strip them to roots.
56
58
  */
57
- export declare function loadSyncConfig(cwd?: string): KbConfig;
59
+ export declare function resolveLegacyEntityPaths(config: LegacyKbConfig | undefined): KbEntityPaths;
58
60
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACrE;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAExD;;GAEG;AAEH,eAAO,MAAM,cAAc,EAAE,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAgBxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAUhC,CAAC;AA4BF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,QAAQ,CAmChE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,QAAQ,CAmCpE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,eAAe,CAAC;AAEvB;;;;;;GAMG;AAEH,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,aAAsC,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAAsB,GAAG,aAAa,CAE3E;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAcD,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAET;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAqE9C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,GAAG,SAAS,GACjC,aAAa,CAwBf"}