kibi-cli 0.19.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (672) hide show
  1. package/dist/cli-errors.d.ts +3 -1
  2. package/dist/cli-errors.d.ts.map +1 -1
  3. package/dist/cli-errors.js +4 -1
  4. package/dist/cli-json-command.d.ts +1 -0
  5. package/dist/cli-json-command.d.ts.map +1 -1
  6. package/dist/cli-json-command.js +13 -4
  7. package/dist/cli-operation-loader.d.ts.map +1 -1
  8. package/dist/cli-operation-loader.js +53 -20
  9. package/dist/cli-operation-metadata.d.ts +21 -8
  10. package/dist/cli-operation-metadata.d.ts.map +1 -1
  11. package/dist/cli-operation-metadata.js +27 -10
  12. package/dist/cli-protocol.d.ts.map +1 -1
  13. package/dist/cli-protocol.js +38 -8
  14. package/dist/cli-register-foundation.d.ts.map +1 -1
  15. package/dist/cli-register-foundation.js +14 -2
  16. package/dist/cli-register-maintenance.d.ts.map +1 -1
  17. package/dist/cli-register-maintenance.js +33 -4
  18. package/dist/cli-register-proof.d.ts +3 -0
  19. package/dist/cli-register-proof.d.ts.map +1 -0
  20. package/dist/cli-register-proof.js +103 -0
  21. package/dist/cli-register-reporting.d.ts.map +1 -1
  22. package/dist/cli-register-reporting.js +11 -0
  23. package/dist/cli.d.ts +4 -0
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +17 -8
  26. package/dist/commands/aggregated-checks.d.ts +1 -2
  27. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  28. package/dist/commands/aggregated-checks.js +14 -9
  29. package/dist/commands/branch.d.ts +37 -0
  30. package/dist/commands/branch.d.ts.map +1 -1
  31. package/dist/commands/branch.js +375 -40
  32. package/dist/commands/check.d.ts +14 -0
  33. package/dist/commands/check.d.ts.map +1 -1
  34. package/dist/commands/check.js +209 -110
  35. package/dist/commands/coverage.d.ts +1 -0
  36. package/dist/commands/coverage.d.ts.map +1 -1
  37. package/dist/commands/coverage.js +6 -0
  38. package/dist/commands/discovery-shared.d.ts.map +1 -1
  39. package/dist/commands/discovery-shared.js +10 -19
  40. package/dist/commands/doctor.d.ts +26 -1
  41. package/dist/commands/doctor.d.ts.map +1 -1
  42. package/dist/commands/doctor.js +291 -30
  43. package/dist/commands/engine.d.ts +12 -0
  44. package/dist/commands/engine.d.ts.map +1 -1
  45. package/dist/commands/engine.js +50 -7
  46. package/dist/commands/gc.d.ts +5 -2
  47. package/dist/commands/gc.d.ts.map +1 -1
  48. package/dist/commands/gc.js +140 -71
  49. package/dist/commands/github-init.d.ts +57 -0
  50. package/dist/commands/github-init.d.ts.map +1 -0
  51. package/dist/commands/github-init.js +314 -0
  52. package/dist/commands/init-helpers.d.ts +1 -1
  53. package/dist/commands/init-helpers.d.ts.map +1 -1
  54. package/dist/commands/init-helpers.js +109 -28
  55. package/dist/commands/init.d.ts +2 -0
  56. package/dist/commands/init.d.ts.map +1 -1
  57. package/dist/commands/init.js +79 -24
  58. package/dist/commands/legacy-storage-migration.d.ts +54 -0
  59. package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
  60. package/dist/commands/legacy-storage-migration.js +277 -0
  61. package/dist/commands/migrate.d.ts +11 -0
  62. package/dist/commands/migrate.d.ts.map +1 -1
  63. package/dist/commands/migrate.js +249 -96
  64. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  65. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  66. package/dist/commands/proof-migrate-legacy.js +45 -0
  67. package/dist/commands/proof-prune.d.ts +8 -0
  68. package/dist/commands/proof-prune.d.ts.map +1 -0
  69. package/dist/commands/proof-prune.js +53 -0
  70. package/dist/commands/prove.d.ts +37 -0
  71. package/dist/commands/prove.d.ts.map +1 -0
  72. package/dist/commands/prove.js +470 -0
  73. package/dist/commands/report.d.ts +24 -0
  74. package/dist/commands/report.d.ts.map +1 -0
  75. package/dist/commands/report.js +191 -0
  76. package/dist/commands/sync/cache.d.ts +16 -3
  77. package/dist/commands/sync/cache.d.ts.map +1 -1
  78. package/dist/commands/sync/cache.js +111 -4
  79. package/dist/commands/sync/discovery.d.ts +26 -2
  80. package/dist/commands/sync/discovery.d.ts.map +1 -1
  81. package/dist/commands/sync/discovery.js +204 -15
  82. package/dist/commands/sync/extraction.d.ts +8 -1
  83. package/dist/commands/sync/extraction.d.ts.map +1 -1
  84. package/dist/commands/sync/extraction.js +38 -4
  85. package/dist/commands/sync/manifest.d.ts +9 -6
  86. package/dist/commands/sync/manifest.d.ts.map +1 -1
  87. package/dist/commands/sync/manifest.js +195 -60
  88. package/dist/commands/sync/persistence.d.ts +4 -1
  89. package/dist/commands/sync/persistence.d.ts.map +1 -1
  90. package/dist/commands/sync/persistence.js +26 -12
  91. package/dist/commands/sync/staging.d.ts +1 -0
  92. package/dist/commands/sync/staging.d.ts.map +1 -1
  93. package/dist/commands/sync/staging.js +5 -2
  94. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  95. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  96. package/dist/commands/sync/untracked-targets.js +108 -0
  97. package/dist/commands/sync.d.ts +17 -1
  98. package/dist/commands/sync.d.ts.map +1 -1
  99. package/dist/commands/sync.js +375 -106
  100. package/dist/diagnostics.d.ts +1 -1
  101. package/dist/diagnostics.d.ts.map +1 -1
  102. package/dist/engine-daemon.d.ts +3 -1
  103. package/dist/engine-daemon.d.ts.map +1 -1
  104. package/dist/engine-daemon.js +49 -20
  105. package/dist/engine.d.ts +34 -3
  106. package/dist/engine.d.ts.map +1 -1
  107. package/dist/engine.js +578 -42
  108. package/dist/env.d.ts.map +1 -1
  109. package/dist/env.js +5 -6
  110. package/dist/extractors/manifest.d.ts +13 -1
  111. package/dist/extractors/manifest.d.ts.map +1 -1
  112. package/dist/extractors/manifest.js +97 -10
  113. package/dist/extractors/markdown.d.ts +5 -2
  114. package/dist/extractors/markdown.d.ts.map +1 -1
  115. package/dist/extractors/markdown.js +47 -12
  116. package/dist/extractors/playwright-cases.d.ts +24 -0
  117. package/dist/extractors/playwright-cases.d.ts.map +1 -0
  118. package/dist/extractors/playwright-cases.js +126 -0
  119. package/dist/extractors/relationships.d.ts +6 -0
  120. package/dist/extractors/relationships.d.ts.map +1 -1
  121. package/dist/extractors/relationships.js +2 -1
  122. package/dist/extractors/symbol-coordinates.d.ts +81 -3
  123. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  124. package/dist/extractors/symbol-coordinates.js +389 -51
  125. package/dist/extractors/symbols-coordinator.js +11 -1
  126. package/dist/extractors/symbols-ts.d.ts +1 -0
  127. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  128. package/dist/extractors/symbols-ts.js +142 -67
  129. package/dist/intent-search.d.ts +61 -0
  130. package/dist/intent-search.d.ts.map +1 -0
  131. package/dist/intent-search.js +437 -0
  132. package/dist/logic/ir.d.ts +1 -0
  133. package/dist/logic/ir.d.ts.map +1 -1
  134. package/dist/logic/ir.js +1 -1
  135. package/dist/operations/bootstrap/activation.d.ts +5 -0
  136. package/dist/operations/bootstrap/activation.d.ts.map +1 -0
  137. package/dist/operations/{autopilot → bootstrap}/activation.js +58 -33
  138. package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
  139. package/dist/operations/bootstrap/candidates.d.ts +4 -0
  140. package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
  141. package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
  142. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
  143. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
  144. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
  145. package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
  146. package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
  147. package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
  148. package/dist/operations/bootstrap/generate.d.ts +9 -0
  149. package/dist/operations/bootstrap/generate.d.ts.map +1 -0
  150. package/dist/operations/bootstrap/generate.js +207 -0
  151. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
  152. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
  153. package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
  154. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +3 -2
  155. package/dist/operations/bootstrap/guidance.d.ts.map +1 -0
  156. package/dist/operations/{autopilot → bootstrap}/guidance.js +3 -1
  157. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
  158. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
  159. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
  160. package/dist/operations/bootstrap/presentation.d.ts +15 -0
  161. package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
  162. package/dist/operations/bootstrap/presentation.js +177 -0
  163. package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
  164. package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
  165. package/dist/operations/bootstrap/types.d.ts.map +1 -0
  166. package/dist/operations/bootstrap/types.js +25 -0
  167. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  168. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  169. package/dist/operations/modeling/model-requirement.js +57 -63
  170. package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
  171. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
  172. package/dist/operations/modeling/predicate-applicability.js +375 -0
  173. package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
  174. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  175. package/dist/operations/modeling/predicate-applyplan.js +100 -3
  176. package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
  177. package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
  178. package/dist/operations/modeling/predicate-bindings.js +122 -0
  179. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  180. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  181. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  182. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  183. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
  184. package/dist/operations/modeling/predicate-catalog-4.js +155 -0
  185. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  186. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  187. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  188. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  189. package/dist/operations/modeling/predicate-catalog.js +4 -0
  190. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
  191. package/dist/operations/modeling/predicate-inference-1.js +8 -0
  192. package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
  193. package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
  194. package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
  195. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  196. package/dist/operations/modeling/predicate-inference.js +4 -0
  197. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  198. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  199. package/dist/operations/modeling/predicate-loader.js +11 -3
  200. package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
  201. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  202. package/dist/operations/modeling/predicate-ranker.js +159 -24
  203. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
  204. package/dist/operations/modeling/predicate-score-3.js +6 -0
  205. package/dist/operations/modeling/predicate-types.d.ts +35 -1
  206. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  207. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
  208. package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
  209. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  210. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  211. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  212. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
  213. package/dist/operations/modeling/predicate-utils.js +2 -0
  214. package/dist/operations/modeling/suggest-predicates.d.ts +4 -2
  215. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  216. package/dist/operations/modeling/suggest-predicates.js +203 -32
  217. package/dist/operations/mutation/contradictions.d.ts +2 -1
  218. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  219. package/dist/operations/mutation/contradictions.js +26 -5
  220. package/dist/operations/mutation/delete.d.ts +3 -0
  221. package/dist/operations/mutation/delete.d.ts.map +1 -1
  222. package/dist/operations/mutation/delete.js +483 -19
  223. package/dist/operations/mutation/entity-projection.d.ts +11 -0
  224. package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
  225. package/dist/operations/mutation/entity-projection.js +14 -0
  226. package/dist/operations/mutation/relationships.d.ts +11 -0
  227. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  228. package/dist/operations/mutation/relationships.js +77 -5
  229. package/dist/operations/mutation/saga.d.ts +51 -0
  230. package/dist/operations/mutation/saga.d.ts.map +1 -0
  231. package/dist/operations/mutation/saga.js +67 -0
  232. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  233. package/dist/operations/mutation/serialization.js +3 -1
  234. package/dist/operations/mutation/source-authoring.d.ts +65 -0
  235. package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
  236. package/dist/operations/mutation/source-authoring.js +576 -0
  237. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  238. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  239. package/dist/operations/mutation/strict-fact.js +8 -5
  240. package/dist/operations/mutation/symbol-compiler-lock.d.ts +54 -0
  241. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
  242. package/dist/operations/mutation/symbol-compiler-lock.js +337 -0
  243. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  244. package/dist/operations/mutation/symbol-granularity.js +35 -4
  245. package/dist/operations/mutation/symbol-refresh.d.ts +19 -1
  246. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  247. package/dist/operations/mutation/symbol-refresh.js +227 -63
  248. package/dist/operations/mutation/types.d.ts +57 -1
  249. package/dist/operations/mutation/types.d.ts.map +1 -1
  250. package/dist/operations/mutation/upsert.d.ts +18 -2
  251. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  252. package/dist/operations/mutation/upsert.js +403 -32
  253. package/dist/operations/mutation/validate-upsert.js +2 -2
  254. package/dist/operations/mutation/validation.d.ts.map +1 -1
  255. package/dist/operations/mutation/validation.js +47 -4
  256. package/dist/operations/mutation/warnings.d.ts +1 -0
  257. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  258. package/dist/operations/mutation/warnings.js +7 -5
  259. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  260. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  261. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  262. package/dist/operations/planning/apply-plan.d.ts +19 -0
  263. package/dist/operations/planning/apply-plan.d.ts.map +1 -0
  264. package/dist/operations/planning/apply-plan.js +1514 -0
  265. package/dist/operations/planning/compile-intent.d.ts +108 -0
  266. package/dist/operations/planning/compile-intent.d.ts.map +1 -0
  267. package/dist/operations/planning/compile-intent.js +618 -0
  268. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  269. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  270. package/dist/operations/proof/ingest-proof.js +307 -0
  271. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  272. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  273. package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
  274. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  275. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  276. package/dist/operations/proof/prune-receipts.js +91 -0
  277. package/dist/operations/proof/receipt-document.d.ts +29 -0
  278. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  279. package/dist/operations/proof/receipt-document.js +117 -0
  280. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  281. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  282. package/dist/operations/semantic-advisor/analyze-prose.js +52 -28
  283. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  284. package/dist/operations/semantic-advisor/clauses.js +35 -9
  285. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  286. package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
  287. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
  288. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
  289. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
  290. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  291. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  292. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  293. package/dist/operations/semantic-advisor/types.d.ts +13 -5
  294. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  295. package/dist/prolog/codec.d.ts +13 -1
  296. package/dist/prolog/codec.d.ts.map +1 -1
  297. package/dist/prolog/codec.js +269 -153
  298. package/dist/prolog/error-terms.d.ts +47 -0
  299. package/dist/prolog/error-terms.d.ts.map +1 -0
  300. package/dist/prolog/error-terms.js +334 -0
  301. package/dist/prolog/janitor.d.ts +50 -0
  302. package/dist/prolog/janitor.d.ts.map +1 -0
  303. package/dist/prolog/janitor.js +154 -0
  304. package/dist/prolog/store-lock.d.ts +45 -0
  305. package/dist/prolog/store-lock.d.ts.map +1 -0
  306. package/dist/prolog/store-lock.js +195 -0
  307. package/dist/prolog.d.ts +7 -0
  308. package/dist/prolog.d.ts.map +1 -1
  309. package/dist/prolog.js +82 -25
  310. package/dist/proof/evaluate.d.ts +27 -0
  311. package/dist/proof/evaluate.d.ts.map +1 -0
  312. package/dist/proof/evaluate.js +151 -0
  313. package/dist/proof/inspect.d.ts +12 -0
  314. package/dist/proof/inspect.d.ts.map +1 -0
  315. package/dist/proof/inspect.js +236 -0
  316. package/dist/proof/integrations.d.ts +35 -0
  317. package/dist/proof/integrations.d.ts.map +1 -0
  318. package/dist/proof/integrations.js +123 -0
  319. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  320. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  321. package/dist/proof/producers/junit-adapter.js +186 -0
  322. package/dist/proof/producers/playwright-case-id.d.ts +8 -0
  323. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  324. package/dist/proof/producers/playwright-case-id.js +25 -0
  325. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  326. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  327. package/dist/proof/producers/playwright-reporter.js +138 -0
  328. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  329. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  330. package/dist/proof/producers/tap-adapter.js +200 -0
  331. package/dist/proof/receipt-outcome.d.ts +2 -0
  332. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  333. package/dist/proof/receipt-outcome.js +1 -0
  334. package/dist/public/branch-resolver.d.ts +1 -0
  335. package/dist/public/branch-resolver.d.ts.map +1 -1
  336. package/dist/public/branch-resolver.js +1 -0
  337. package/dist/public/check-types.d.ts +2 -2
  338. package/dist/public/check-types.d.ts.map +1 -1
  339. package/dist/public/check-types.js +16 -16
  340. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  341. package/dist/public/diagnostic-usage.js +74 -6
  342. package/dist/public/distribution-parity.d.ts +7 -1
  343. package/dist/public/distribution-parity.d.ts.map +1 -1
  344. package/dist/public/distribution-parity.js +15 -9
  345. package/dist/public/ignore-policy.d.ts.map +1 -1
  346. package/dist/public/ignore-policy.js +16 -4
  347. package/dist/public/impact/coverage-depth-quality.d.ts +7 -1
  348. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  349. package/dist/public/impact/coverage-depth-quality.js +22 -4
  350. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  351. package/dist/public/impact/diagnostics.js +2 -2
  352. package/dist/public/impact/diff-meaning.d.ts +1 -0
  353. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  354. package/dist/public/impact/diff-meaning.js +5 -2
  355. package/dist/public/impact/full-kb-quality.d.ts +7 -2
  356. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  357. package/dist/public/impact/full-kb-quality.js +364 -39
  358. package/dist/public/impact/manifest.d.ts.map +1 -1
  359. package/dist/public/impact/manifest.js +2 -5
  360. package/dist/public/operational-artifacts.d.ts.map +1 -1
  361. package/dist/public/operational-artifacts.js +7 -1
  362. package/dist/public/operations/catalog.d.ts +900 -34
  363. package/dist/public/operations/catalog.d.ts.map +1 -1
  364. package/dist/public/operations/catalog.js +130 -6
  365. package/dist/public/operations/check-executor.d.ts +2 -2
  366. package/dist/public/operations/check-executor.d.ts.map +1 -1
  367. package/dist/public/operations/check-executor.js +68 -13
  368. package/dist/public/operations/check-format-shared.d.ts +3 -0
  369. package/dist/public/operations/check-format-shared.d.ts.map +1 -1
  370. package/dist/public/operations/check-format-shared.js +3 -0
  371. package/dist/public/operations/check-helpers.d.ts +27 -2
  372. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  373. package/dist/public/operations/check-helpers.js +62 -26
  374. package/dist/public/operations/contracts.d.ts +18 -0
  375. package/dist/public/operations/contracts.d.ts.map +1 -0
  376. package/dist/public/operations/contracts.js +334 -0
  377. package/dist/public/operations/discovery-entities.d.ts +3 -0
  378. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  379. package/dist/public/operations/discovery-entities.js +4 -0
  380. package/dist/public/operations/discovery-executors.d.ts +43 -7
  381. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  382. package/dist/public/operations/discovery-executors.js +216 -13
  383. package/dist/public/operations/index.d.ts +9 -4
  384. package/dist/public/operations/index.d.ts.map +1 -1
  385. package/dist/public/operations/index.js +8 -3
  386. package/dist/public/operations/migration-plan.d.ts +102 -0
  387. package/dist/public/operations/migration-plan.d.ts.map +1 -0
  388. package/dist/public/operations/migration-plan.js +539 -0
  389. package/dist/public/operations/node-ports.d.ts.map +1 -1
  390. package/dist/public/operations/node-ports.js +71 -11
  391. package/dist/public/operations/prolog-json.d.ts +14 -0
  392. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  393. package/dist/public/operations/prolog-json.js +44 -5
  394. package/dist/public/operations/repair-plan.d.ts +3 -3
  395. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  396. package/dist/public/operations/repair-plan.js +49 -18
  397. package/dist/public/operations/result-envelope.d.ts +14 -0
  398. package/dist/public/operations/result-envelope.d.ts.map +1 -0
  399. package/dist/public/operations/result-envelope.js +106 -0
  400. package/dist/public/operations/runtime-types.d.ts +102 -7
  401. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  402. package/dist/public/operations/source-relationship-parity.d.ts +13 -0
  403. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
  404. package/dist/public/operations/source-relationship-parity.js +162 -0
  405. package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
  406. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
  407. package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
  408. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  409. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  410. package/dist/public/operations/specs/check-rules.generated.js +34 -0
  411. package/dist/public/operations/specs/check.d.ts +9 -4
  412. package/dist/public/operations/specs/check.d.ts.map +1 -1
  413. package/dist/public/operations/specs/check.js +10 -21
  414. package/dist/public/operations/specs/discovery.d.ts +87 -3
  415. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  416. package/dist/public/operations/specs/discovery.js +53 -3
  417. package/dist/public/operations/specs/modeling.d.ts +3 -3
  418. package/dist/public/operations/specs/modeling.js +3 -3
  419. package/dist/public/operations/specs/mutation-schemas.d.ts +251 -14
  420. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  421. package/dist/public/operations/specs/mutation-schemas.js +16 -6
  422. package/dist/public/operations/specs/mutation.d.ts +42 -2
  423. package/dist/public/operations/specs/mutation.d.ts.map +1 -1
  424. package/dist/public/operations/specs/mutation.js +26 -2
  425. package/dist/public/operations/specs/planning.d.ts +279 -0
  426. package/dist/public/operations/specs/planning.d.ts.map +1 -0
  427. package/dist/public/operations/specs/planning.js +197 -0
  428. package/dist/public/operations/specs/proof.d.ts +212 -0
  429. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  430. package/dist/public/operations/specs/proof.js +30 -0
  431. package/dist/public/operations/specs/reporting.d.ts +23 -1
  432. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  433. package/dist/public/operations/specs/reporting.js +156 -11
  434. package/dist/public/operations/specs/upsert.d.ts +265 -14
  435. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  436. package/dist/public/operations/specs/upsert.js +9 -0
  437. package/dist/public/operations/symbol-repair-plan.d.ts +22 -0
  438. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
  439. package/dist/public/operations/symbol-repair-plan.js +238 -0
  440. package/dist/public/operations/types.d.ts +52 -1
  441. package/dist/public/operations/types.d.ts.map +1 -1
  442. package/dist/public/proof-fingerprint.d.ts +54 -0
  443. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  444. package/dist/public/proof-fingerprint.js +141 -0
  445. package/dist/public/proof-protocol.d.ts +354 -0
  446. package/dist/public/proof-protocol.d.ts.map +1 -0
  447. package/dist/public/proof-protocol.js +454 -0
  448. package/dist/public/proof-receipt.d.ts +279 -0
  449. package/dist/public/proof-receipt.d.ts.map +1 -0
  450. package/dist/public/proof-receipt.js +377 -0
  451. package/dist/public/schemas/entity.d.ts.map +1 -1
  452. package/dist/public/schemas/entity.js +22 -6
  453. package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
  454. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  455. package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  456. package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  457. package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  458. package/dist/public/skills/kibi-freshness/SKILL.md +39 -9
  459. package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  460. package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  461. package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  462. package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
  463. package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  464. package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  465. package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  466. package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
  467. package/dist/public/skills/kibi-usage/SKILL.md +136 -231
  468. package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  469. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  470. package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
  471. package/dist/public/skills/kibi-usage/resources/proof.md +105 -0
  472. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  473. package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  474. package/dist/public/skills/kibi-usage/resources/workflows.md +57 -4
  475. package/dist/public/symbol-granularity.d.ts +3 -14
  476. package/dist/public/symbol-granularity.d.ts.map +1 -1
  477. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  478. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  479. package/dist/public/symbol-granularity.generated.js +20 -0
  480. package/dist/public/symbol-granularity.js +6 -46
  481. package/dist/public/telemetry-acceptance.d.ts +3 -70
  482. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  483. package/dist/public/telemetry-acceptance.js +11 -2
  484. package/dist/public/telemetry-remediation.js +1 -1
  485. package/dist/relationships/shards.d.ts +16 -0
  486. package/dist/relationships/shards.d.ts.map +1 -1
  487. package/dist/relationships/shards.js +87 -2
  488. package/dist/report/brand.d.ts +19 -0
  489. package/dist/report/brand.d.ts.map +1 -0
  490. package/dist/report/brand.js +112 -0
  491. package/dist/report/html-report.css +282 -0
  492. package/dist/report/html-report.d.ts +21 -0
  493. package/dist/report/html-report.d.ts.map +1 -0
  494. package/dist/report/html-report.js +700 -0
  495. package/dist/report/relative-time.d.ts +4 -0
  496. package/dist/report/relative-time.d.ts.map +1 -0
  497. package/dist/report/relative-time.js +46 -0
  498. package/dist/report/report-view.d.ts +17 -0
  499. package/dist/report/report-view.d.ts.map +1 -0
  500. package/dist/report/report-view.js +33 -0
  501. package/dist/report/repository.d.ts +35 -0
  502. package/dist/report/repository.d.ts.map +1 -0
  503. package/dist/report/repository.js +151 -0
  504. package/dist/runtime/cli-runtime.d.ts +2 -0
  505. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  506. package/dist/runtime/cli-runtime.js +90 -23
  507. package/dist/schemas/entity.schema.json +1254 -239
  508. package/dist/search-ranking.d.ts +1 -0
  509. package/dist/search-ranking.d.ts.map +1 -1
  510. package/dist/search-ranking.js +3 -0
  511. package/dist/traceability/evidence-model.d.ts +30 -2
  512. package/dist/traceability/evidence-model.d.ts.map +1 -1
  513. package/dist/traceability/evidence-model.js +2 -2
  514. package/dist/traceability/git-staged.d.ts +20 -0
  515. package/dist/traceability/git-staged.d.ts.map +1 -1
  516. package/dist/traceability/git-staged.js +156 -37
  517. package/dist/traceability/markdown-validate.d.ts.map +1 -1
  518. package/dist/traceability/markdown-validate.js +12 -7
  519. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  520. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  521. package/dist/traceability/staged-diagnostics.js +78 -7
  522. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  523. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  524. package/dist/traceability/staged-file-coverage.js +284 -0
  525. package/dist/traceability/staged-impact-contract.d.ts +3 -3
  526. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  527. package/dist/traceability/staged-impact-contract.js +12 -40
  528. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  529. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  530. package/dist/traceability/staged-symbols-manifest.js +142 -26
  531. package/dist/traceability/symbol-extract.d.ts +5 -0
  532. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  533. package/dist/traceability/symbol-extract.js +1 -1
  534. package/dist/traceability/temp-kb.d.ts +2 -0
  535. package/dist/traceability/temp-kb.d.ts.map +1 -1
  536. package/dist/traceability/temp-kb.js +14 -2
  537. package/dist/types/entities.d.ts +5 -0
  538. package/dist/types/entities.d.ts.map +1 -1
  539. package/dist/utils/branch-resolver.d.ts +25 -10
  540. package/dist/utils/branch-resolver.d.ts.map +1 -1
  541. package/dist/utils/branch-resolver.js +124 -38
  542. package/dist/utils/branch-store-locator.d.ts +23 -0
  543. package/dist/utils/branch-store-locator.d.ts.map +1 -0
  544. package/dist/utils/branch-store-locator.js +90 -0
  545. package/dist/utils/branch-store.d.ts +21 -0
  546. package/dist/utils/branch-store.d.ts.map +1 -0
  547. package/dist/utils/branch-store.js +157 -0
  548. package/dist/utils/config.d.ts +39 -37
  549. package/dist/utils/config.d.ts.map +1 -1
  550. package/dist/utils/config.js +107 -119
  551. package/dist/utils/kb-manifest.d.ts +35 -0
  552. package/dist/utils/kb-manifest.d.ts.map +1 -0
  553. package/dist/utils/kb-manifest.js +154 -0
  554. package/dist/utils/kb-paths.d.ts +54 -0
  555. package/dist/utils/kb-paths.d.ts.map +1 -0
  556. package/dist/utils/kb-paths.js +125 -0
  557. package/dist/utils/manifest-paths.d.ts +4 -4
  558. package/dist/utils/manifest-paths.d.ts.map +1 -1
  559. package/dist/utils/manifest-paths.js +8 -56
  560. package/dist/utils/rule-registry.d.ts +42 -24
  561. package/dist/utils/rule-registry.d.ts.map +1 -1
  562. package/dist/utils/rule-registry.generated.d.ts +97 -0
  563. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  564. package/dist/utils/rule-registry.generated.js +125 -0
  565. package/dist/utils/rule-registry.js +52 -148
  566. package/dist/utils/schema-version.d.ts +5 -5
  567. package/dist/utils/schema-version.d.ts.map +1 -1
  568. package/dist/utils/schema-version.js +26 -6
  569. package/dist/utils/strict-modeling.d.ts +1 -4
  570. package/dist/utils/strict-modeling.d.ts.map +1 -1
  571. package/dist/utils/strict-modeling.js +8 -9
  572. package/package.json +47 -11
  573. package/schema/config.json +2 -2
  574. package/schema/manifest.json +26 -0
  575. package/src/public/branch-resolver.ts +1 -0
  576. package/src/public/check-types.ts +22 -19
  577. package/src/public/diagnostic-usage.ts +84 -6
  578. package/src/public/distribution-parity.ts +17 -9
  579. package/src/public/ignore-policy.ts +16 -10
  580. package/src/public/impact/coverage-depth-quality.ts +37 -1
  581. package/src/public/impact/diagnostics.ts +2 -1
  582. package/src/public/impact/diff-meaning.ts +11 -4
  583. package/src/public/impact/full-kb-quality.ts +545 -41
  584. package/src/public/impact/manifest.ts +2 -4
  585. package/src/public/operational-artifacts.ts +9 -1
  586. package/src/public/operations/catalog.ts +153 -10
  587. package/src/public/operations/check-executor.ts +98 -15
  588. package/src/public/operations/check-format-shared.ts +6 -0
  589. package/src/public/operations/check-helpers.ts +74 -35
  590. package/src/public/operations/contracts.ts +382 -0
  591. package/src/public/operations/discovery-entities.ts +7 -0
  592. package/src/public/operations/discovery-executors.ts +315 -25
  593. package/src/public/operations/index.ts +9 -4
  594. package/src/public/operations/migration-plan.ts +747 -0
  595. package/src/public/operations/node-ports.ts +87 -13
  596. package/src/public/operations/prolog-json.ts +60 -5
  597. package/src/public/operations/repair-plan.ts +60 -22
  598. package/src/public/operations/result-envelope.ts +141 -0
  599. package/src/public/operations/runtime-types.ts +96 -5
  600. package/src/public/operations/source-relationship-parity.ts +226 -0
  601. package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
  602. package/src/public/operations/specs/check-rules.generated.ts +37 -0
  603. package/src/public/operations/specs/check.ts +14 -22
  604. package/src/public/operations/specs/discovery.ts +57 -3
  605. package/src/public/operations/specs/modeling.ts +3 -3
  606. package/src/public/operations/specs/mutation-schemas.ts +24 -6
  607. package/src/public/operations/specs/mutation.ts +27 -2
  608. package/src/public/operations/specs/planning.ts +241 -0
  609. package/src/public/operations/specs/proof.ts +43 -0
  610. package/src/public/operations/specs/reporting.ts +193 -12
  611. package/src/public/operations/specs/upsert.ts +10 -0
  612. package/src/public/operations/symbol-repair-plan.ts +324 -0
  613. package/src/public/operations/types.ts +62 -1
  614. package/src/public/proof-fingerprint.ts +216 -0
  615. package/src/public/proof-protocol-types.d.ts +96 -0
  616. package/src/public/proof-protocol.ts +589 -0
  617. package/src/public/proof-receipt.ts +499 -0
  618. package/src/public/schemas/entity.ts +27 -6
  619. package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
  620. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  621. package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  622. package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  623. package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  624. package/src/public/skills/kibi-freshness/SKILL.md +39 -9
  625. package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  626. package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  627. package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  628. package/src/public/skills/kibi-traceability/SKILL.md +47 -47
  629. package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  630. package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  631. package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  632. package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
  633. package/src/public/skills/kibi-usage/SKILL.md +136 -231
  634. package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  635. package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  636. package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
  637. package/src/public/skills/kibi-usage/resources/proof.md +105 -0
  638. package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  639. package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  640. package/src/public/skills/kibi-usage/resources/workflows.md +57 -4
  641. package/src/public/symbol-granularity.generated.ts +41 -0
  642. package/src/public/symbol-granularity.ts +35 -59
  643. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  644. package/src/public/telemetry-acceptance.ts +30 -93
  645. package/src/public/telemetry-remediation.ts +1 -1
  646. package/src/schemas/entity.schema.json +1254 -239
  647. package/templates/github/kibi-badge.yml +86 -0
  648. package/templates/github/kibi-report.yml +84 -0
  649. package/dist/operations/autopilot/activation.d.ts +0 -4
  650. package/dist/operations/autopilot/activation.d.ts.map +0 -1
  651. package/dist/operations/autopilot/candidates.d.ts +0 -4
  652. package/dist/operations/autopilot/discovery.d.ts.map +0 -1
  653. package/dist/operations/autopilot/generate.d.ts +0 -8
  654. package/dist/operations/autopilot/generate.d.ts.map +0 -1
  655. package/dist/operations/autopilot/generate.js +0 -112
  656. package/dist/operations/autopilot/guidance.d.ts.map +0 -1
  657. package/dist/operations/autopilot/presentation.d.ts +0 -13
  658. package/dist/operations/autopilot/presentation.d.ts.map +0 -1
  659. package/dist/operations/autopilot/presentation.js +0 -91
  660. package/dist/operations/autopilot/types.d.ts.map +0 -1
  661. package/dist/operations/autopilot/types.js +0 -8
  662. package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
  663. package/dist/public/skills/init-kibi/SKILL.md +0 -62
  664. package/dist/public/verification-receipt.d.ts +0 -75
  665. package/dist/public/verification-receipt.d.ts.map +0 -1
  666. package/dist/public/verification-receipt.js +0 -129
  667. package/src/public/skills/init-kibi/SKILL.md +0 -62
  668. package/src/public/verification-receipt.ts +0 -170
  669. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
  670. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
  671. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
  672. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
@@ -1,13 +1,12 @@
1
1
  import path from "node:path";
2
2
  import { EngineClient } from "../engine.js";
3
- import { getBranchOverride } from "../env.js";
4
3
  import { PrologProcess, resolveKbPlPath } from "../prolog.js";
5
4
  import { escapeAtom } from "../prolog/codec.js";
6
5
  import { executeOperation, } from "../public/operations/runtime-types.js";
7
6
  import { createCliRuntime } from "../runtime/cli-runtime.js";
7
+ import { resolveBranchAttachment } from "../utils/branch-resolver.js";
8
8
  import { safeCleanupProlog } from "../utils/prolog-cleanup.js";
9
9
  import { renderDiscoveryTable } from "./discovery-table.js";
10
- import { getCurrentBranch } from "./init-helpers.js";
11
10
  export { renderCoverageTable } from "./discovery-table.js";
12
11
  // implements REQ-kibi-operation-interface-parity
13
12
  export async function executeReportingSpec(spec, input, options = {}) {
@@ -22,13 +21,10 @@ export async function withAttachedBranchProlog(callback, deps) {
22
21
  let attached = false;
23
22
  let branchName;
24
23
  try {
25
- try {
26
- branchName =
27
- getBranchOverride() || (await getCurrentBranch(process.cwd()));
28
- }
29
- catch {
30
- branchName = getBranchOverride() || "main";
31
- }
24
+ const attachment = resolveBranchAttachment(process.cwd());
25
+ if ("error" in attachment)
26
+ throw new Error(attachment.error);
27
+ branchName = attachment.kbBranch;
32
28
  if (usesEngine) {
33
29
  engine = new EngineClient({
34
30
  workspaceRoot: process.cwd(),
@@ -42,9 +38,8 @@ export async function withAttachedBranchProlog(callback, deps) {
42
38
  prolog = createProlog({ timeout: 120000 });
43
39
  await prolog.start();
44
40
  }
45
- await prolog.query("set_prolog_flag(answer_write_options, [max_depth(0), spacing(next_argument)])");
46
41
  if (!usesEngine) {
47
- const kbPath = path.join(process.cwd(), ".kb/branches", branchName);
42
+ const kbPath = attachment.storePath;
48
43
  const attachResult = await prolog.query(`kb_attach('${escapeAtom(kbPath)}')`);
49
44
  if (!attachResult.success) {
50
45
  throw new Error(`Failed to attach KB: ${attachResult.error || "Unknown error"}`);
@@ -65,14 +60,10 @@ export async function withAttachedBranchProlog(callback, deps) {
65
60
  // implements REQ-003
66
61
  // implements REQ-003
67
62
  export async function resolveCurrentKbPath() {
68
- let branch;
69
- try {
70
- branch = getBranchOverride() || (await getCurrentBranch(process.cwd()));
71
- }
72
- catch {
73
- branch = getBranchOverride() || "main";
74
- }
75
- return path.join(process.cwd(), ".kb/branches", branch);
63
+ const attachment = resolveBranchAttachment(process.cwd());
64
+ if ("error" in attachment)
65
+ throw new Error(attachment.error);
66
+ return attachment.storePath;
76
67
  }
77
68
  // implements REQ-003
78
69
  export function resolveCoreModulePath(fileName, deps) {
@@ -1,4 +1,29 @@
1
- export declare function doctorCommand(): Promise<{
1
+ export interface DoctorOptions {
2
+ format?: "json" | "table";
3
+ }
4
+ export declare function doctorCommand(options?: DoctorOptions): Promise<{
2
5
  exitCode: number;
3
6
  }>;
7
+ export declare function detectExecuteApplyPlanExport(load?: () => Promise<{
8
+ executeApplyPlan?: unknown;
9
+ }>): Promise<boolean>;
10
+ export declare function packageMigrationActions(runtime: Readonly<Record<string, unknown>>): Promise<Readonly<{
11
+ id: string;
12
+ code: string;
13
+ category: "package" | "branch" | "storage" | "schema" | "freshness" | "relationship" | "symbol" | "semantic" | "proof" | "quality";
14
+ state: import("../public/operations/migration-plan.js").MigrationActionState;
15
+ safety: import("../public/operations/migration-plan.js").MigrationSafety;
16
+ invocation: import("../public/operations/migration-plan.js").MigrationInvocation;
17
+ affectedEntityIds: readonly string[];
18
+ affectedFiles: readonly string[];
19
+ dependsOn: readonly string[];
20
+ preconditions: readonly Readonly<Record<string, unknown>>[];
21
+ postconditions: readonly Readonly<Record<string, unknown>>[];
22
+ evidence: Readonly<Record<string, unknown>>;
23
+ autoApplicable: boolean;
24
+ dispositionRequired: boolean;
25
+ allowedDispositions: readonly import("../public/operations/migration-plan.js").MigrationDisposition[];
26
+ }>[]>;
27
+ export declare function nextAncestorDirectory(current: string): string | undefined;
28
+ export declare function nearestNamedPackageManifest(startDir: string, name: string): string | undefined;
4
29
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AA4BA,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyDnE"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAGD,wBAAsB,aAAa,CACjC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAiF/B;AAED,wBAAsB,4BAA4B,CAChD,IAAI,GAAE,MAAM,OAAO,CAAC;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CACT,GACxC,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;MAkE3C;AAkGD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGzE;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAepB"}
@@ -17,9 +17,14 @@
17
17
  */
18
18
  import { execSync } from "node:child_process";
19
19
  import { existsSync, readFileSync, statSync } from "node:fs";
20
+ import { createRequire } from "node:module";
20
21
  import * as path from "node:path";
22
+ import { fileURLToPath } from "node:url";
23
+ import { buildMigrationPlan, migrationAction, } from "../public/operations/migration-plan.js";
24
+ import { readKbManifestStatus } from "../utils/kb-manifest.js";
25
+ import { planLegacyStorageMigration } from "./legacy-storage-migration.js";
21
26
  // implements REQ-003
22
- export async function doctorCommand() {
27
+ export async function doctorCommand(options = {}) {
23
28
  const checks = [
24
29
  {
25
30
  name: "SWI-Prolog",
@@ -30,8 +35,12 @@ export async function doctorCommand() {
30
35
  check: checkKbDirectory,
31
36
  },
32
37
  {
33
- name: "config.json",
34
- check: checkConfigJson,
38
+ name: ".kb/ manifest",
39
+ check: checkKbManifest,
40
+ },
41
+ {
42
+ name: "Canonical storage",
43
+ check: checkLegacyStorage,
35
44
  },
36
45
  {
37
46
  name: "Git repository",
@@ -50,18 +59,35 @@ export async function doctorCommand() {
50
59
  check: checkPostRewriteHook,
51
60
  },
52
61
  ];
62
+ const results = checks.map(({ name, check }) => ({ name, ...check() }));
63
+ const allPassed = results.every((result) => result.passed);
64
+ const runtime = await runtimeProvenance();
65
+ const packageActions = await packageMigrationActions(runtime);
66
+ const migrationPlan = buildMigrationPlan({
67
+ expected: {
68
+ branch: null,
69
+ kbBranch: null,
70
+ configHash: null,
71
+ },
72
+ evaluatedDomains: ["package"],
73
+ actions: packageActions,
74
+ });
75
+ if (options.format === "json") {
76
+ console.log(JSON.stringify({
77
+ version: "kibi.doctor.v1",
78
+ passed: allPassed,
79
+ runtime,
80
+ checks: results,
81
+ migrationPlan,
82
+ }, null, 2));
83
+ return { exitCode: allPassed ? 0 : 1 };
84
+ }
53
85
  console.log("Kibi Environment Diagnostics\n");
54
- let allPassed = true;
55
- for (const { name, check } of checks) {
56
- const result = check();
86
+ for (const result of results) {
57
87
  const status = result.passed ? "✓" : "✗";
58
- console.log(`${status} ${name}: ${result.message}`);
59
- if (!result.passed) {
60
- allPassed = false;
61
- if (result.remediation) {
62
- console.log(` → ${result.remediation}`);
63
- }
64
- }
88
+ console.log(`${status} ${result.name}: ${result.message}`);
89
+ if (!result.passed && result.remediation)
90
+ console.log(` → ${result.remediation}`);
65
91
  }
66
92
  console.log();
67
93
  if (allPassed) {
@@ -71,6 +97,198 @@ export async function doctorCommand() {
71
97
  console.log("Some checks failed. Please address the issues above.");
72
98
  return { exitCode: 1 };
73
99
  }
100
+ export async function detectExecuteApplyPlanExport(load = () => import("../public/operations/index.js")) {
101
+ try {
102
+ const operations = await load();
103
+ return typeof operations.executeApplyPlan === "function";
104
+ }
105
+ catch {
106
+ return false;
107
+ }
108
+ }
109
+ export async function packageMigrationActions(runtime) {
110
+ const actions = [];
111
+ const versions = ["cliVersion", "coreVersion", "mcpVersion"].filter((key) => runtime[key] === "unresolved" || runtime[key] === "unknown");
112
+ if (versions.length > 0) {
113
+ actions.push(migrationAction({
114
+ id: "package-provenance-unresolved",
115
+ code: "package_provenance_unresolved",
116
+ category: "package",
117
+ safety: "operator",
118
+ invocation: {
119
+ kind: "review",
120
+ instruction: "Install one coordinated Kibi artifact set and rerun kibi doctor; Kibi never selects a package manager or rewrites dependency configuration.",
121
+ },
122
+ evidence: { unresolvedVersions: versions },
123
+ dispositionRequired: true,
124
+ }));
125
+ }
126
+ const cliVersion = typeof runtime.cliVersion === "string" ? runtime.cliVersion : "unknown";
127
+ const mcpCliRange = typeof runtime.mcpCliRange === "string" ? runtime.mcpCliRange : "unknown";
128
+ if (cliVersion !== "unknown" &&
129
+ mcpCliRange !== "unknown" &&
130
+ !satisfiesCaretRange(cliVersion, mcpCliRange)) {
131
+ actions.push(migrationAction({
132
+ id: "package-mcp-cli-range-mismatch",
133
+ code: "package_dependency_range_mismatch",
134
+ category: "package",
135
+ safety: "operator",
136
+ invocation: {
137
+ kind: "review",
138
+ instruction: "Install a newly versioned coordinated Kibi package set whose MCP CLI dependency range includes the installed CLI; project-local overrides are temporary and Kibi never edits dependency configuration.",
139
+ },
140
+ evidence: { cliVersion, mcpCliRange },
141
+ dispositionRequired: true,
142
+ }));
143
+ }
144
+ if (runtime.executeApplyPlanExported === false) {
145
+ actions.push(migrationAction({
146
+ id: "package-cli-export-surface-drift",
147
+ code: "package_export_surface_drift",
148
+ category: "package",
149
+ safety: "operator",
150
+ invocation: {
151
+ kind: "review",
152
+ instruction: "Treat same-version artifacts with different exports as a release defect: obtain a newly versioned CLI/MCP pair and do not downgrade receipts or hand-edit package metadata.",
153
+ },
154
+ evidence: { executeApplyPlanExported: false },
155
+ dispositionRequired: true,
156
+ }));
157
+ }
158
+ return actions;
159
+ }
160
+ function satisfiesCaretRange(version, range) {
161
+ const match = range.trim().match(/^\^(\d+)\.(\d+)\.(\d+)/);
162
+ if (!match)
163
+ return true;
164
+ const major = Number(match[1]);
165
+ const minor = Number(match[2]);
166
+ const patch = Number(match[3]);
167
+ const actual = version.match(/^(\d+)\.(\d+)\.(\d+)/);
168
+ if (!actual)
169
+ return false;
170
+ const aMajor = Number(actual[1]);
171
+ const aMinor = Number(actual[2]);
172
+ const aPatch = Number(actual[3]);
173
+ return (aMajor === major &&
174
+ (aMinor > minor || (aMinor === minor && aPatch >= patch)));
175
+ }
176
+ async function runtimeProvenance() {
177
+ const packagePath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "package.json");
178
+ let cli = {};
179
+ try {
180
+ cli = JSON.parse(readFileSync(packagePath, "utf8"));
181
+ }
182
+ catch {
183
+ // Keep doctor JSON useful even from an unusual packed entrypoint.
184
+ }
185
+ const core = resolveInstalledPackageInfo("kibi-core");
186
+ const mcp = resolveInstalledPackageInfo("kibi-mcp");
187
+ const executeApplyPlanExported = await detectExecuteApplyPlanExport();
188
+ return {
189
+ cliVersion: typeof cli.version === "string" ? cli.version : "unknown",
190
+ coreVersion: core.version,
191
+ mcpVersion: mcp.version,
192
+ coreRange: cli.dependencies && typeof cli.dependencies === "object"
193
+ ? (cli.dependencies["kibi-core"] ??
194
+ "unknown")
195
+ : "unknown",
196
+ mcpCliRange: mcp.dependencies?.["kibi-cli"] ?? "unknown",
197
+ executeApplyPlanExported,
198
+ entrypoint: process.argv[1] ?? "unknown",
199
+ packageVersions: process.env.KIBI_PACKAGE_VERSIONS ?? "unknown",
200
+ locations: {
201
+ cli: packagePath,
202
+ cliEntrypoint: process.argv[1] ?? "unknown",
203
+ core: core.path,
204
+ coreEntrypoint: core.entrypoint,
205
+ mcp: mcp.path,
206
+ mcpEntrypoint: mcp.entrypoint,
207
+ },
208
+ };
209
+ }
210
+ function packageInfoFromManifest(manifestPath) {
211
+ let metadata;
212
+ try {
213
+ metadata = JSON.parse(readFileSync(manifestPath, "utf8"));
214
+ }
215
+ catch {
216
+ // Missing or unreadable manifest is not usable provenance.
217
+ return undefined;
218
+ }
219
+ return {
220
+ version: typeof metadata.version === "string" ? metadata.version : "unknown",
221
+ path: manifestPath,
222
+ entrypoint: typeof metadata.main === "string"
223
+ ? path.resolve(path.dirname(manifestPath), metadata.main)
224
+ : "unknown",
225
+ dependencies: metadata.dependencies && typeof metadata.dependencies === "object"
226
+ ? metadata.dependencies
227
+ : undefined,
228
+ };
229
+ }
230
+ export function nextAncestorDirectory(current) {
231
+ const parent = path.dirname(current);
232
+ return parent === current ? undefined : parent;
233
+ }
234
+ export function nearestNamedPackageManifest(startDir, name) {
235
+ let current = startDir;
236
+ while (current !== undefined) {
237
+ const candidate = path.join(current, "package.json");
238
+ try {
239
+ const metadata = JSON.parse(readFileSync(candidate, "utf8"));
240
+ if (metadata.name === name)
241
+ return candidate;
242
+ }
243
+ catch {
244
+ // Keep walking; an unrelated or absent manifest is not a match.
245
+ }
246
+ current = nextAncestorDirectory(current);
247
+ }
248
+ return undefined;
249
+ }
250
+ function resolveInstalledPackageInfo(name) {
251
+ const require = createRequire(import.meta.url);
252
+ // Preferred: direct manifest subpath. Works when the package exports
253
+ // "./package.json" or has no restrictive exports map at all.
254
+ try {
255
+ const info = packageInfoFromManifest(require.resolve(`${name}/package.json`));
256
+ if (info)
257
+ return info;
258
+ }
259
+ catch {
260
+ // Fall through to entrypoint-based resolution below.
261
+ }
262
+ // Fallback: a tight exports map may hide ./package.json while the package
263
+ // itself is installed and runnable. Resolve the entrypoint, then walk up to
264
+ // the nearest manifest that actually names the target package so doctor
265
+ // never reports a coordinated install as unresolved.
266
+ try {
267
+ const entrypoint = require.resolve(name);
268
+ const manifestPath = nearestNamedPackageManifest(path.dirname(entrypoint), name);
269
+ const info = manifestPath
270
+ ? packageInfoFromManifest(manifestPath)
271
+ : undefined;
272
+ if (info)
273
+ return info;
274
+ }
275
+ catch {
276
+ // The package is genuinely absent from this install graph.
277
+ }
278
+ // Last resort: sibling workspace package inside the Kibi monorepo.
279
+ const local = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "..", name.replace(/^kibi-/, ""), "package.json");
280
+ if (existsSync(local)) {
281
+ const info = packageInfoFromManifest(local);
282
+ if (info)
283
+ return info;
284
+ }
285
+ return {
286
+ version: "unresolved",
287
+ path: "unresolved",
288
+ entrypoint: "unresolved",
289
+ dependencies: undefined,
290
+ };
291
+ }
74
292
  function checkSWIProlog() {
75
293
  try {
76
294
  const output = execSync("swipl --version", { encoding: "utf-8" });
@@ -125,30 +343,50 @@ function checkKbDirectory() {
125
343
  message: "Found",
126
344
  };
127
345
  }
128
- function checkConfigJson() {
129
- const configPath = path.join(process.cwd(), ".kb/config.json");
130
- if (!existsSync(configPath)) {
346
+ function checkKbManifest() {
347
+ const status = readKbManifestStatus(process.cwd());
348
+ if (status.state === "missing") {
131
349
  return {
132
350
  passed: false,
133
351
  message: "Not found",
134
352
  remediation: "Run: kibi init",
135
353
  };
136
354
  }
137
- try {
138
- const content = readFileSync(configPath, "utf-8");
139
- JSON.parse(content);
355
+ if (status.state !== "ok") {
140
356
  return {
141
- passed: true,
142
- message: "Valid JSON",
357
+ passed: false,
358
+ message: status.state === "invalid" ? "Invalid manifest" : "Future version",
359
+ remediation: `Repair .kb/manifest.json: ${status.warning}`,
143
360
  };
144
361
  }
145
- catch (error) {
362
+ return {
363
+ passed: true,
364
+ message: `schemaVersion ${status.manifest.schemaVersion}`,
365
+ };
366
+ }
367
+ function checkLegacyStorage() {
368
+ const plan = planLegacyStorageMigration(process.cwd());
369
+ if (plan.legacyConfig === "malformed") {
370
+ return {
371
+ passed: false,
372
+ message: "Legacy .kb/config.json is malformed",
373
+ remediation: plan.legacyConfigError ??
374
+ "Repair or remove the legacy .kb/config.json, then run: kibi migrate --yes",
375
+ };
376
+ }
377
+ if (plan.legacyConfig === "present" || plan.moves.length > 0) {
146
378
  return {
147
379
  passed: false,
148
- message: "Invalid JSON",
149
- remediation: "Fix .kb/config.json syntax or run: kibi init",
380
+ message: plan.moves.length > 0
381
+ ? `${plan.moves.length} legacy knowledge file(s) still outside .kb/`
382
+ : "Legacy .kb/config.json still present",
383
+ remediation: "Run: kibi migrate --yes",
150
384
  };
151
385
  }
386
+ return {
387
+ passed: true,
388
+ message: "Canonical .kb/ layout",
389
+ };
152
390
  }
153
391
  function checkGitRepository() {
154
392
  try {
@@ -233,8 +471,13 @@ function checkPreCommitHook() {
233
471
  const preCommitExecutable = (preCommitStats.mode & 0o111) !== 0;
234
472
  // Read hook content to determine whether it's using the new staged check
235
473
  const content = readFileSync(preCommitPath, "utf-8");
236
- const usesKibi = content.includes("kibi check");
237
- const usesStaged = content.includes("kibi check --staged");
474
+ // Current templates resolve the kibi binary into KIBI_BIN before invoking
475
+ // it (git hooks do not get node_modules/.bin on PATH); legacy templates
476
+ // invoked bare `kibi`.
477
+ const resolvesKibi = content.includes("KIBI_BIN=");
478
+ const usesKibi = resolvesKibi || content.includes("kibi check");
479
+ const usesStaged = content.includes('"$KIBI_BIN" check --staged') ||
480
+ content.includes("kibi check --staged");
238
481
  if (!usesKibi) {
239
482
  // Fail if hook doesn't invoke kibi at all
240
483
  return {
@@ -245,15 +488,24 @@ function checkPreCommitHook() {
245
488
  }
246
489
  if (preCommitExecutable) {
247
490
  if (usesStaged) {
491
+ if (!resolvesKibi) {
492
+ // Functional template that invokes bare `kibi`: it fails whenever
493
+ // kibi is installed only as a project dependency.
494
+ return {
495
+ passed: true,
496
+ message: "Installed and executable (legacy template without kibi CLI resolution — run 'kibi init' to regenerate so hooks work with local installs)",
497
+ remediation: "Run: kibi init to update git hooks to the latest template",
498
+ };
499
+ }
248
500
  return {
249
501
  passed: true,
250
- message: "Installed and executable (uses 'kibi check --staged')",
502
+ message: "Installed and executable (resolves kibi CLI; uses 'kibi check --staged')",
251
503
  };
252
504
  }
253
505
  // Warn but pass if using legacy kibi check without --staged
254
506
  return {
255
507
  passed: true,
256
- message: "Installed and executable (uses legacy 'kibi check' — consider running 'kibi init' to update hooks to use '--staged')",
508
+ message: "Installed and executable (uses legacy 'kibi check' — consider running 'kibi init' to update hooks to use '--staged' with CLI resolution)",
257
509
  remediation: "Run: kibi init to update git hooks to the latest template",
258
510
  };
259
511
  }
@@ -294,9 +546,11 @@ function checkPostRewriteHook() {
294
546
  try {
295
547
  const postRewriteStats = statSync(postRewritePath);
296
548
  const postRewriteExecutable = (postRewriteStats.mode & 0o111) !== 0;
297
- // Read hook content to verify it invokes kibi
549
+ // Read hook content to verify it invokes kibi. Current templates invoke
550
+ // the resolved KIBI_BIN; legacy templates invoked bare `kibi sync`.
298
551
  const content = readFileSync(postRewritePath, "utf-8");
299
- const usesKibi = content.includes("kibi sync");
552
+ const usesKibi = content.includes('"$KIBI_BIN" sync') || content.includes("kibi sync");
553
+ const resolvesKibi = content.includes("KIBI_BIN=");
300
554
  if (!usesKibi) {
301
555
  return {
302
556
  passed: false,
@@ -305,6 +559,13 @@ function checkPostRewriteHook() {
305
559
  };
306
560
  }
307
561
  if (postRewriteExecutable) {
562
+ if (!resolvesKibi) {
563
+ return {
564
+ passed: true,
565
+ message: "Installed and executable (legacy template without kibi CLI resolution — run 'kibi init' to regenerate so hooks work with local installs)",
566
+ remediation: "Run: kibi init to update git hooks to the latest template",
567
+ };
568
+ }
308
569
  return {
309
570
  passed: true,
310
571
  message: "Installed and executable",
@@ -1,6 +1,18 @@
1
1
  export declare function engineStatusCommand(): Promise<void>;
2
2
  export declare function engineStopCommand(): Promise<void>;
3
3
  export declare function storageStatusCommand(): Promise<void>;
4
+ export interface EngineJanitorOptions {
5
+ readonly all?: boolean;
6
+ readonly apply?: boolean;
7
+ readonly format?: string;
8
+ }
9
+ /**
10
+ * Classify and (optionally) clean stale engine daemons and branch-store
11
+ * locks: crashed engines leave ownership journals behind, worktree removals
12
+ * strand live daemons, dead daemons leave sockets. Report-only by default;
13
+ `--apply` executes the clean actions.
14
+ */
15
+ export declare function engineJanitorCommand(options: EngineJanitorOptions): Promise<void>;
4
16
  export declare function storageCompactCommand(): Promise<void>;
5
17
  export declare function storageExportCommand(options: {
6
18
  output: string;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/commands/engine.ts"],"names":[],"mappings":"AAwCA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAU3D;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/commands/engine.ts"],"names":[],"mappings":"AAkCA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AAEH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB3D;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
@@ -1,16 +1,12 @@
1
1
  import path from "node:path";
2
2
  import { EngineClient } from "../engine.js";
3
- import { resolveActiveBranch } from "../utils/branch-resolver.js";
3
+ import { resolveBranchAttachment } from "../utils/branch-resolver.js";
4
4
  function currentBranch(root) {
5
- const resolved = resolveActiveBranch(root);
5
+ const resolved = resolveBranchAttachment(root);
6
6
  if ("error" in resolved) {
7
- if (resolved.code === "NOT_A_GIT_REPO" ||
8
- resolved.code === "GIT_NOT_AVAILABLE") {
9
- return "main";
10
- }
11
7
  throw new Error(resolved.error);
12
8
  }
13
- return resolved.branch;
9
+ return resolved.kbBranch;
14
10
  }
15
11
  function client() {
16
12
  const workspaceRoot = path.resolve(process.env.KIBI_WORKSPACE ??
@@ -73,7 +69,54 @@ export async function engineStopCommand() {
73
69
  export async function storageStatusCommand() {
74
70
  await engineStatusCommand();
75
71
  }
72
+ /**
73
+ * Classify and (optionally) clean stale engine daemons and branch-store
74
+ * locks: crashed engines leave ownership journals behind, worktree removals
75
+ * strand live daemons, dead daemons leave sockets. Report-only by default;
76
+ `--apply` executes the clean actions.
77
+ */
78
+ // implements REQ-core-journaled-engine-persistence
79
+ export async function engineJanitorCommand(options) {
80
+ const { runtimeDirectory } = await import("../engine.js");
81
+ const { runJanitor } = await import("../prolog/janitor.js");
82
+ const findings = runJanitor({
83
+ workspaceRoot: workspaceRoot(),
84
+ runtimeDirectory: runtimeDirectory(),
85
+ all: options.all === true,
86
+ apply: options.apply === true,
87
+ });
88
+ const cleanable = findings.filter((f) => f.action !== "keep").length;
89
+ const cleaned = options.apply === true ? cleanable : 0;
90
+ if (options.format === "json") {
91
+ console.log(JSON.stringify({ findings, cleaned, cleanable, total: findings.length }));
92
+ return;
93
+ }
94
+ if (findings.length === 0) {
95
+ console.log("No engine or lock artifacts found.");
96
+ return;
97
+ }
98
+ for (const finding of findings) {
99
+ const holder = "pid" in finding && finding.pid !== undefined ? ` pid=${finding.pid}` : "";
100
+ const workspace = finding.kind === "store-lock" && finding.workspaceRoot !== undefined
101
+ ? ` workspace=${finding.workspaceRoot}`
102
+ : "";
103
+ const scope = finding.kind === "store-lock"
104
+ ? `store ${finding.storePath}`
105
+ : `socket ${finding.socketPath}`;
106
+ console.log(`[${finding.action}] ${scope}${holder}${workspace} holder=${finding.holderState}`);
107
+ }
108
+ console.log(options.apply === true
109
+ ? `${findings.length} finding(s), ${cleaned} cleaned`
110
+ : `${findings.length} finding(s), ${cleanable} cleanable (report only; re-run with --apply)`);
111
+ }
76
112
  export async function storageCompactCommand() {
113
+ const root = workspaceRoot();
114
+ const attachment = resolveBranchAttachment(root);
115
+ if ("error" in attachment)
116
+ throw new Error(attachment.error);
117
+ if (attachment.migrationRequired) {
118
+ throw new Error(`Storage compaction blocked by legacy attachment (${attachment.gitBranch} -> ${attachment.kbBranch}); migrate the branch KB first.`);
119
+ }
77
120
  const engine = client();
78
121
  try {
79
122
  const result = await engine.compact();
@@ -1,6 +1,9 @@
1
- export declare function gcCommand(options: {
1
+ type GcOptions = {
2
2
  dryRun?: boolean;
3
3
  force?: boolean;
4
- }): Promise<void>;
4
+ purge?: boolean;
5
+ retentionDays?: number;
6
+ };
7
+ export declare function gcCommand(options?: GcOptions): Promise<void>;
5
8
  export default gcCommand;
6
9
  //# sourceMappingURL=gc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../src/commands/gc.ts"],"names":[],"mappings":"AAsBA,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,iBAiFA;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../src/commands/gc.ts"],"names":[],"mappings":"AAWA,KAAK,SAAS,GAAG;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AA0GF,wBAAsB,SAAS,CAAC,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFtE;AAED,eAAe,SAAS,CAAC"}