kibi-cli 0.19.0 → 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 (506) hide show
  1. package/dist/cli-operation-loader.d.ts.map +1 -1
  2. package/dist/cli-operation-loader.js +53 -20
  3. package/dist/cli-operation-metadata.d.ts +20 -8
  4. package/dist/cli-operation-metadata.d.ts.map +1 -1
  5. package/dist/cli-operation-metadata.js +23 -8
  6. package/dist/cli-protocol.d.ts.map +1 -1
  7. package/dist/cli-protocol.js +38 -8
  8. package/dist/cli-register-foundation.d.ts.map +1 -1
  9. package/dist/cli-register-foundation.js +14 -2
  10. package/dist/cli-register-maintenance.d.ts.map +1 -1
  11. package/dist/cli-register-maintenance.js +26 -4
  12. package/dist/cli-register-reporting.d.ts.map +1 -1
  13. package/dist/cli-register-reporting.js +10 -0
  14. package/dist/cli-register-verification.d.ts +3 -0
  15. package/dist/cli-register-verification.d.ts.map +1 -0
  16. package/dist/cli-register-verification.js +16 -0
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +2 -0
  19. package/dist/commands/aggregated-checks.d.ts +1 -2
  20. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  21. package/dist/commands/aggregated-checks.js +14 -9
  22. package/dist/commands/branch.d.ts +36 -0
  23. package/dist/commands/branch.d.ts.map +1 -1
  24. package/dist/commands/branch.js +371 -40
  25. package/dist/commands/check.d.ts.map +1 -1
  26. package/dist/commands/check.js +20 -67
  27. package/dist/commands/discovery-shared.d.ts.map +1 -1
  28. package/dist/commands/discovery-shared.js +10 -19
  29. package/dist/commands/doctor.d.ts +4 -1
  30. package/dist/commands/doctor.d.ts.map +1 -1
  31. package/dist/commands/doctor.js +259 -24
  32. package/dist/commands/engine.d.ts.map +1 -1
  33. package/dist/commands/engine.js +10 -7
  34. package/dist/commands/gc.d.ts +5 -2
  35. package/dist/commands/gc.d.ts.map +1 -1
  36. package/dist/commands/gc.js +140 -71
  37. package/dist/commands/github-init.d.ts +56 -0
  38. package/dist/commands/github-init.d.ts.map +1 -0
  39. package/dist/commands/github-init.js +310 -0
  40. package/dist/commands/init-helpers.d.ts +1 -1
  41. package/dist/commands/init-helpers.d.ts.map +1 -1
  42. package/dist/commands/init-helpers.js +73 -25
  43. package/dist/commands/init.d.ts +2 -0
  44. package/dist/commands/init.d.ts.map +1 -1
  45. package/dist/commands/init.js +79 -24
  46. package/dist/commands/legacy-storage-migration.d.ts +54 -0
  47. package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
  48. package/dist/commands/legacy-storage-migration.js +277 -0
  49. package/dist/commands/migrate.d.ts +7 -0
  50. package/dist/commands/migrate.d.ts.map +1 -1
  51. package/dist/commands/migrate.js +244 -91
  52. package/dist/commands/report.d.ts +24 -0
  53. package/dist/commands/report.d.ts.map +1 -0
  54. package/dist/commands/report.js +191 -0
  55. package/dist/commands/sync/cache.d.ts +16 -3
  56. package/dist/commands/sync/cache.d.ts.map +1 -1
  57. package/dist/commands/sync/cache.js +111 -4
  58. package/dist/commands/sync/discovery.d.ts +23 -2
  59. package/dist/commands/sync/discovery.d.ts.map +1 -1
  60. package/dist/commands/sync/discovery.js +196 -15
  61. package/dist/commands/sync/extraction.d.ts +8 -1
  62. package/dist/commands/sync/extraction.d.ts.map +1 -1
  63. package/dist/commands/sync/extraction.js +38 -4
  64. package/dist/commands/sync/manifest.d.ts +8 -5
  65. package/dist/commands/sync/manifest.d.ts.map +1 -1
  66. package/dist/commands/sync/manifest.js +142 -39
  67. package/dist/commands/sync/persistence.d.ts.map +1 -1
  68. package/dist/commands/sync/persistence.js +3 -0
  69. package/dist/commands/sync.d.ts +6 -0
  70. package/dist/commands/sync.d.ts.map +1 -1
  71. package/dist/commands/sync.js +304 -79
  72. package/dist/commands/verify.d.ts +10 -0
  73. package/dist/commands/verify.d.ts.map +1 -0
  74. package/dist/commands/verify.js +126 -0
  75. package/dist/diagnostics.d.ts +1 -1
  76. package/dist/diagnostics.d.ts.map +1 -1
  77. package/dist/engine.d.ts +96 -3
  78. package/dist/engine.d.ts.map +1 -1
  79. package/dist/engine.js +392 -23
  80. package/dist/env.d.ts.map +1 -1
  81. package/dist/env.js +5 -6
  82. package/dist/extractors/manifest.d.ts +8 -1
  83. package/dist/extractors/manifest.d.ts.map +1 -1
  84. package/dist/extractors/manifest.js +51 -9
  85. package/dist/extractors/markdown.d.ts +2 -1
  86. package/dist/extractors/markdown.d.ts.map +1 -1
  87. package/dist/extractors/markdown.js +21 -3
  88. package/dist/extractors/playwright-cases.d.ts +24 -0
  89. package/dist/extractors/playwright-cases.d.ts.map +1 -0
  90. package/dist/extractors/playwright-cases.js +126 -0
  91. package/dist/extractors/relationships.d.ts.map +1 -1
  92. package/dist/extractors/relationships.js +1 -0
  93. package/dist/extractors/symbol-coordinates.d.ts +81 -3
  94. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  95. package/dist/extractors/symbol-coordinates.js +389 -51
  96. package/dist/extractors/symbols-coordinator.js +11 -1
  97. package/dist/intent-search.d.ts +60 -0
  98. package/dist/intent-search.d.ts.map +1 -0
  99. package/dist/intent-search.js +433 -0
  100. package/dist/operations/bootstrap/activation.d.ts.map +1 -0
  101. package/dist/operations/{autopilot → bootstrap}/activation.js +48 -31
  102. package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
  103. package/dist/operations/bootstrap/candidates.d.ts +4 -0
  104. package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
  105. package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
  106. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
  107. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
  108. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
  109. package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
  110. package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
  111. package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
  112. package/dist/operations/bootstrap/generate.d.ts +8 -0
  113. package/dist/operations/bootstrap/generate.d.ts.map +1 -0
  114. package/dist/operations/bootstrap/generate.js +204 -0
  115. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
  116. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
  117. package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
  118. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +2 -2
  119. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts.map +1 -1
  120. package/dist/operations/{autopilot → bootstrap}/guidance.js +2 -0
  121. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
  122. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
  123. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
  124. package/dist/operations/bootstrap/presentation.d.ts +15 -0
  125. package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
  126. package/dist/operations/bootstrap/presentation.js +177 -0
  127. package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
  128. package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
  129. package/dist/operations/bootstrap/types.d.ts.map +1 -0
  130. package/dist/operations/bootstrap/types.js +25 -0
  131. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  132. package/dist/operations/modeling/model-requirement.js +4 -17
  133. package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
  134. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
  135. package/dist/operations/modeling/predicate-applicability.js +276 -0
  136. package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
  137. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  138. package/dist/operations/modeling/predicate-applyplan.js +100 -3
  139. package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
  140. package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
  141. package/dist/operations/modeling/predicate-bindings.js +122 -0
  142. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
  143. package/dist/operations/modeling/predicate-catalog-4.js +155 -0
  144. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
  145. package/dist/operations/modeling/predicate-inference-1.js +8 -0
  146. package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
  147. package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
  148. package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
  149. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  150. package/dist/operations/modeling/predicate-inference.js +4 -0
  151. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  152. package/dist/operations/modeling/predicate-loader.js +7 -0
  153. package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
  154. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  155. package/dist/operations/modeling/predicate-ranker.js +156 -24
  156. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
  157. package/dist/operations/modeling/predicate-score-3.js +6 -0
  158. package/dist/operations/modeling/predicate-types.d.ts +34 -0
  159. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  160. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
  161. package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
  162. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
  163. package/dist/operations/modeling/predicate-utils.js +2 -0
  164. package/dist/operations/modeling/suggest-predicates.d.ts +1 -1
  165. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  166. package/dist/operations/modeling/suggest-predicates.js +170 -32
  167. package/dist/operations/mutation/delete.d.ts.map +1 -1
  168. package/dist/operations/mutation/delete.js +415 -19
  169. package/dist/operations/mutation/entity-projection.d.ts +11 -0
  170. package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
  171. package/dist/operations/mutation/entity-projection.js +14 -0
  172. package/dist/operations/mutation/relationships.d.ts +10 -0
  173. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  174. package/dist/operations/mutation/relationships.js +71 -1
  175. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  176. package/dist/operations/mutation/serialization.js +1 -0
  177. package/dist/operations/mutation/source-authoring.d.ts +61 -0
  178. package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
  179. package/dist/operations/mutation/source-authoring.js +543 -0
  180. package/dist/operations/mutation/symbol-compiler-lock.d.ts +51 -0
  181. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
  182. package/dist/operations/mutation/symbol-compiler-lock.js +274 -0
  183. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  184. package/dist/operations/mutation/symbol-granularity.js +34 -3
  185. package/dist/operations/mutation/symbol-refresh.d.ts +18 -1
  186. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  187. package/dist/operations/mutation/symbol-refresh.js +225 -63
  188. package/dist/operations/mutation/types.d.ts +57 -1
  189. package/dist/operations/mutation/types.d.ts.map +1 -1
  190. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  191. package/dist/operations/mutation/upsert.js +363 -24
  192. package/dist/operations/mutation/validation.d.ts.map +1 -1
  193. package/dist/operations/mutation/validation.js +1 -0
  194. package/dist/operations/planning/apply-plan.d.ts +117 -0
  195. package/dist/operations/planning/apply-plan.d.ts.map +1 -0
  196. package/dist/operations/planning/apply-plan.js +1437 -0
  197. package/dist/operations/planning/compile-intent.d.ts +106 -0
  198. package/dist/operations/planning/compile-intent.d.ts.map +1 -0
  199. package/dist/operations/planning/compile-intent.js +562 -0
  200. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  201. package/dist/operations/semantic-advisor/analyze-prose.js +6 -2
  202. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  203. package/dist/operations/semantic-advisor/clauses.js +15 -2
  204. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  205. package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
  206. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
  207. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
  208. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
  209. package/dist/operations/semantic-advisor/types.d.ts +13 -5
  210. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  211. package/dist/operations/verification/ingest-verification.d.ts +29 -0
  212. package/dist/operations/verification/ingest-verification.d.ts.map +1 -0
  213. package/dist/operations/verification/ingest-verification.js +192 -0
  214. package/dist/prolog/codec.d.ts.map +1 -1
  215. package/dist/prolog/codec.js +2 -1
  216. package/dist/prolog.d.ts.map +1 -1
  217. package/dist/prolog.js +27 -8
  218. package/dist/public/branch-resolver.d.ts +1 -0
  219. package/dist/public/branch-resolver.d.ts.map +1 -1
  220. package/dist/public/branch-resolver.js +1 -0
  221. package/dist/public/check-types.d.ts +2 -2
  222. package/dist/public/check-types.d.ts.map +1 -1
  223. package/dist/public/check-types.js +16 -16
  224. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  225. package/dist/public/diagnostic-usage.js +69 -1
  226. package/dist/public/distribution-parity.d.ts +1 -1
  227. package/dist/public/distribution-parity.d.ts.map +1 -1
  228. package/dist/public/distribution-parity.js +1 -0
  229. package/dist/public/ignore-policy.d.ts.map +1 -1
  230. package/dist/public/ignore-policy.js +16 -4
  231. package/dist/public/impact/coverage-depth-quality.d.ts +6 -1
  232. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  233. package/dist/public/impact/coverage-depth-quality.js +21 -3
  234. package/dist/public/impact/full-kb-quality.d.ts +4 -2
  235. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  236. package/dist/public/impact/full-kb-quality.js +61 -1
  237. package/dist/public/impact/manifest.d.ts.map +1 -1
  238. package/dist/public/impact/manifest.js +2 -5
  239. package/dist/public/operational-artifacts.d.ts.map +1 -1
  240. package/dist/public/operational-artifacts.js +7 -1
  241. package/dist/public/operations/catalog.d.ts +682 -67
  242. package/dist/public/operations/catalog.d.ts.map +1 -1
  243. package/dist/public/operations/catalog.js +126 -4
  244. package/dist/public/operations/check-executor.d.ts +2 -2
  245. package/dist/public/operations/check-executor.d.ts.map +1 -1
  246. package/dist/public/operations/check-executor.js +72 -13
  247. package/dist/public/operations/check-format-shared.d.ts +3 -0
  248. package/dist/public/operations/check-format-shared.d.ts.map +1 -1
  249. package/dist/public/operations/check-format-shared.js +3 -0
  250. package/dist/public/operations/check-helpers.d.ts +27 -2
  251. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  252. package/dist/public/operations/check-helpers.js +62 -26
  253. package/dist/public/operations/contracts.d.ts +11 -0
  254. package/dist/public/operations/contracts.d.ts.map +1 -0
  255. package/dist/public/operations/contracts.js +325 -0
  256. package/dist/public/operations/discovery-executors.d.ts +37 -1
  257. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  258. package/dist/public/operations/discovery-executors.js +206 -6
  259. package/dist/public/operations/index.d.ts +9 -4
  260. package/dist/public/operations/index.d.ts.map +1 -1
  261. package/dist/public/operations/index.js +8 -3
  262. package/dist/public/operations/migration-plan.d.ts +101 -0
  263. package/dist/public/operations/migration-plan.d.ts.map +1 -0
  264. package/dist/public/operations/migration-plan.js +537 -0
  265. package/dist/public/operations/node-ports.d.ts.map +1 -1
  266. package/dist/public/operations/node-ports.js +68 -8
  267. package/dist/public/operations/prolog-json.d.ts +14 -0
  268. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  269. package/dist/public/operations/prolog-json.js +44 -5
  270. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  271. package/dist/public/operations/repair-plan.js +1 -0
  272. package/dist/public/operations/result-envelope.d.ts +13 -0
  273. package/dist/public/operations/result-envelope.d.ts.map +1 -0
  274. package/dist/public/operations/result-envelope.js +104 -0
  275. package/dist/public/operations/runtime-types.d.ts +97 -7
  276. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  277. package/dist/public/operations/source-relationship-parity.d.ts +13 -0
  278. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
  279. package/dist/public/operations/source-relationship-parity.js +162 -0
  280. package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
  281. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
  282. package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
  283. package/dist/public/operations/specs/check.d.ts +4 -4
  284. package/dist/public/operations/specs/check.d.ts.map +1 -1
  285. package/dist/public/operations/specs/check.js +4 -3
  286. package/dist/public/operations/specs/discovery.d.ts +87 -3
  287. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  288. package/dist/public/operations/specs/discovery.js +53 -3
  289. package/dist/public/operations/specs/modeling.d.ts +3 -3
  290. package/dist/public/operations/specs/modeling.js +3 -3
  291. package/dist/public/operations/specs/mutation-schemas.d.ts +190 -47
  292. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  293. package/dist/public/operations/specs/mutation-schemas.js +3 -1
  294. package/dist/public/operations/specs/mutation.d.ts +42 -2
  295. package/dist/public/operations/specs/mutation.d.ts.map +1 -1
  296. package/dist/public/operations/specs/mutation.js +26 -2
  297. package/dist/public/operations/specs/planning.d.ts +270 -0
  298. package/dist/public/operations/specs/planning.d.ts.map +1 -0
  299. package/dist/public/operations/specs/planning.js +191 -0
  300. package/dist/public/operations/specs/reporting.d.ts +4 -1
  301. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  302. package/dist/public/operations/specs/reporting.js +46 -1
  303. package/dist/public/operations/specs/upsert.d.ts +204 -47
  304. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  305. package/dist/public/operations/specs/upsert.js +9 -0
  306. package/dist/public/operations/specs/verification.d.ts +78 -0
  307. package/dist/public/operations/specs/verification.d.ts.map +1 -0
  308. package/dist/public/operations/specs/verification.js +62 -0
  309. package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
  310. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
  311. package/dist/public/operations/symbol-repair-plan.js +123 -0
  312. package/dist/public/operations/types.d.ts +52 -1
  313. package/dist/public/operations/types.d.ts.map +1 -1
  314. package/dist/public/playwright-case-id.d.ts +8 -0
  315. package/dist/public/playwright-case-id.d.ts.map +1 -0
  316. package/dist/public/playwright-case-id.js +25 -0
  317. package/dist/public/schemas/entity.d.ts.map +1 -1
  318. package/dist/public/schemas/entity.js +4 -2
  319. package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
  320. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  321. package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  322. package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  323. package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  324. package/dist/public/skills/kibi-freshness/SKILL.md +39 -9
  325. package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  326. package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  327. package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  328. package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
  329. package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  330. package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  331. package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  332. package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
  333. package/dist/public/skills/kibi-usage/SKILL.md +115 -239
  334. package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  335. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  336. package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
  337. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  338. package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  339. package/dist/public/skills/kibi-usage/resources/workflows.md +56 -3
  340. package/dist/public/symbol-granularity.d.ts +1 -1
  341. package/dist/public/symbol-granularity.d.ts.map +1 -1
  342. package/dist/public/symbol-granularity.js +1 -0
  343. package/dist/public/telemetry-acceptance.d.ts +7 -0
  344. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  345. package/dist/public/telemetry-acceptance.js +8 -1
  346. package/dist/public/telemetry-remediation.js +1 -1
  347. package/dist/public/verification-receipt.d.ts +206 -39
  348. package/dist/public/verification-receipt.d.ts.map +1 -1
  349. package/dist/public/verification-receipt.js +171 -4
  350. package/dist/relationships/shards.d.ts +16 -0
  351. package/dist/relationships/shards.d.ts.map +1 -1
  352. package/dist/relationships/shards.js +87 -2
  353. package/dist/report/brand.d.ts +19 -0
  354. package/dist/report/brand.d.ts.map +1 -0
  355. package/dist/report/brand.js +112 -0
  356. package/dist/report/html-report.d.ts +19 -0
  357. package/dist/report/html-report.d.ts.map +1 -0
  358. package/dist/report/html-report.js +963 -0
  359. package/dist/report/relative-time.d.ts +4 -0
  360. package/dist/report/relative-time.d.ts.map +1 -0
  361. package/dist/report/relative-time.js +46 -0
  362. package/dist/report/report-view.d.ts +17 -0
  363. package/dist/report/report-view.d.ts.map +1 -0
  364. package/dist/report/report-view.js +33 -0
  365. package/dist/report/repository.d.ts +35 -0
  366. package/dist/report/repository.d.ts.map +1 -0
  367. package/dist/report/repository.js +151 -0
  368. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  369. package/dist/runtime/cli-runtime.js +82 -22
  370. package/dist/schemas/entity.schema.json +1148 -273
  371. package/dist/traceability/evidence-model.d.ts +2 -2
  372. package/dist/traceability/evidence-model.d.ts.map +1 -1
  373. package/dist/traceability/evidence-model.js +2 -2
  374. package/dist/traceability/git-staged.d.ts.map +1 -1
  375. package/dist/traceability/git-staged.js +15 -40
  376. package/dist/traceability/markdown-validate.d.ts.map +1 -1
  377. package/dist/traceability/markdown-validate.js +12 -7
  378. package/dist/traceability/staged-impact-contract.d.ts +3 -3
  379. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  380. package/dist/traceability/staged-impact-contract.js +10 -38
  381. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  382. package/dist/traceability/staged-symbols-manifest.js +8 -3
  383. package/dist/traceability/temp-kb.d.ts.map +1 -1
  384. package/dist/traceability/temp-kb.js +3 -0
  385. package/dist/types/entities.d.ts +3 -0
  386. package/dist/types/entities.d.ts.map +1 -1
  387. package/dist/utils/branch-resolver.d.ts +24 -10
  388. package/dist/utils/branch-resolver.d.ts.map +1 -1
  389. package/dist/utils/branch-resolver.js +121 -38
  390. package/dist/utils/branch-store-locator.d.ts +23 -0
  391. package/dist/utils/branch-store-locator.d.ts.map +1 -0
  392. package/dist/utils/branch-store-locator.js +90 -0
  393. package/dist/utils/branch-store.d.ts +15 -0
  394. package/dist/utils/branch-store.d.ts.map +1 -0
  395. package/dist/utils/branch-store.js +130 -0
  396. package/dist/utils/config.d.ts +39 -37
  397. package/dist/utils/config.d.ts.map +1 -1
  398. package/dist/utils/config.js +107 -119
  399. package/dist/utils/kb-manifest.d.ts +35 -0
  400. package/dist/utils/kb-manifest.d.ts.map +1 -0
  401. package/dist/utils/kb-manifest.js +154 -0
  402. package/dist/utils/kb-paths.d.ts +54 -0
  403. package/dist/utils/kb-paths.d.ts.map +1 -0
  404. package/dist/utils/kb-paths.js +125 -0
  405. package/dist/utils/manifest-paths.d.ts +4 -4
  406. package/dist/utils/manifest-paths.d.ts.map +1 -1
  407. package/dist/utils/manifest-paths.js +8 -56
  408. package/dist/utils/rule-registry.d.ts +48 -20
  409. package/dist/utils/rule-registry.d.ts.map +1 -1
  410. package/dist/utils/rule-registry.js +82 -77
  411. package/dist/utils/schema-version.d.ts +5 -5
  412. package/dist/utils/schema-version.d.ts.map +1 -1
  413. package/dist/utils/schema-version.js +26 -6
  414. package/dist/utils/strict-modeling.d.ts +0 -4
  415. package/dist/utils/strict-modeling.d.ts.map +1 -1
  416. package/dist/utils/strict-modeling.js +7 -8
  417. package/dist/verification/playwright-reporter.d.ts +21 -0
  418. package/dist/verification/playwright-reporter.d.ts.map +1 -0
  419. package/dist/verification/playwright-reporter.js +114 -0
  420. package/package.json +46 -7
  421. package/schema/config.json +2 -2
  422. package/schema/manifest.json +26 -0
  423. package/src/public/branch-resolver.ts +1 -0
  424. package/src/public/check-types.ts +22 -19
  425. package/src/public/diagnostic-usage.ts +79 -1
  426. package/src/public/distribution-parity.ts +1 -0
  427. package/src/public/ignore-policy.ts +16 -10
  428. package/src/public/impact/coverage-depth-quality.ts +36 -0
  429. package/src/public/impact/full-kb-quality.ts +118 -5
  430. package/src/public/impact/manifest.ts +2 -4
  431. package/src/public/operational-artifacts.ts +9 -1
  432. package/src/public/operations/catalog.ts +146 -9
  433. package/src/public/operations/check-executor.ts +102 -15
  434. package/src/public/operations/check-format-shared.ts +6 -0
  435. package/src/public/operations/check-helpers.ts +74 -35
  436. package/src/public/operations/contracts.ts +366 -0
  437. package/src/public/operations/discovery-executors.ts +299 -12
  438. package/src/public/operations/index.ts +9 -4
  439. package/src/public/operations/migration-plan.ts +740 -0
  440. package/src/public/operations/node-ports.ts +84 -10
  441. package/src/public/operations/prolog-json.ts +60 -5
  442. package/src/public/operations/repair-plan.ts +1 -0
  443. package/src/public/operations/result-envelope.ts +136 -0
  444. package/src/public/operations/runtime-types.ts +91 -5
  445. package/src/public/operations/source-relationship-parity.ts +226 -0
  446. package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
  447. package/src/public/operations/specs/check.ts +4 -3
  448. package/src/public/operations/specs/discovery.ts +57 -3
  449. package/src/public/operations/specs/modeling.ts +3 -3
  450. package/src/public/operations/specs/mutation-schemas.ts +6 -1
  451. package/src/public/operations/specs/mutation.ts +27 -2
  452. package/src/public/operations/specs/planning.ts +234 -0
  453. package/src/public/operations/specs/reporting.ts +55 -1
  454. package/src/public/operations/specs/upsert.ts +10 -0
  455. package/src/public/operations/specs/verification.ts +78 -0
  456. package/src/public/operations/symbol-repair-plan.ts +164 -0
  457. package/src/public/operations/types.ts +62 -1
  458. package/src/public/playwright-case-id.ts +35 -0
  459. package/src/public/schemas/entity.ts +7 -2
  460. package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
  461. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  462. package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  463. package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  464. package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  465. package/src/public/skills/kibi-freshness/SKILL.md +39 -9
  466. package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  467. package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  468. package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  469. package/src/public/skills/kibi-traceability/SKILL.md +47 -47
  470. package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  471. package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  472. package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  473. package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
  474. package/src/public/skills/kibi-usage/SKILL.md +115 -239
  475. package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  476. package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  477. package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
  478. package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  479. package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  480. package/src/public/skills/kibi-usage/resources/workflows.md +56 -3
  481. package/src/public/symbol-granularity.ts +1 -0
  482. package/src/public/telemetry-acceptance.ts +16 -1
  483. package/src/public/telemetry-remediation.ts +1 -1
  484. package/src/public/verification-receipt.ts +248 -6
  485. package/src/schemas/entity.schema.json +1148 -273
  486. package/templates/github/kibi-badge.yml +86 -0
  487. package/templates/github/kibi-report.yml +84 -0
  488. package/dist/operations/autopilot/activation.d.ts.map +0 -1
  489. package/dist/operations/autopilot/candidates.d.ts +0 -4
  490. package/dist/operations/autopilot/discovery.d.ts.map +0 -1
  491. package/dist/operations/autopilot/generate.d.ts +0 -8
  492. package/dist/operations/autopilot/generate.d.ts.map +0 -1
  493. package/dist/operations/autopilot/generate.js +0 -112
  494. package/dist/operations/autopilot/presentation.d.ts +0 -13
  495. package/dist/operations/autopilot/presentation.d.ts.map +0 -1
  496. package/dist/operations/autopilot/presentation.js +0 -91
  497. package/dist/operations/autopilot/types.d.ts.map +0 -1
  498. package/dist/operations/autopilot/types.js +0 -8
  499. package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
  500. package/dist/public/skills/init-kibi/SKILL.md +0 -62
  501. package/src/public/skills/init-kibi/SKILL.md +0 -62
  502. /package/dist/operations/{autopilot → bootstrap}/activation.d.ts +0 -0
  503. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
  504. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
  505. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
  506. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
@@ -30,12 +30,20 @@ function isScanGit(value) {
30
30
  "ignoredPaths" in value &&
31
31
  typeof value.ignoredPaths === "function");
32
32
  }
33
+ const TYPED_KIBI_LANE = /(^|\/)(\.kb|documentation)\/(requirements|scenarios|tests|adr|flags|events|facts)\//;
34
+ const EXECUTABLE_TEST_HARNESS = /(^|\/)(\.kb|documentation)\/tests\/(e2e|benchmarks)\//;
35
+ function isTypedKibiMarkdownPath(relativePath) {
36
+ const posix = relativePath.replaceAll("\\", "/");
37
+ if (EXECUTABLE_TEST_HARNESS.test(posix))
38
+ return false;
39
+ return TYPED_KIBI_LANE.test(posix);
40
+ }
33
41
  function classifyFile(relativePath, content) {
34
- if (/symbols\.ya?ml$/i.test(relativePath))
42
+ if (/^\.kb\/symbols\.ya?ml$/i.test(relativePath))
35
43
  return ["typed_kibi_docs", "symbol_manifest"];
36
44
  if (/\.md$/i.test(relativePath)) {
37
45
  return /^---\s*[\r\n]/.test(content) &&
38
- /(^|\/)documentation\/(requirements|scenarios|tests|adr|flags|events|facts)\//.test(relativePath)
46
+ isTypedKibiMarkdownPath(relativePath)
39
47
  ? ["typed_kibi_docs", "typed_markdown"]
40
48
  : ["generic_repo_docs", "generic_markdown"];
41
49
  }
@@ -49,13 +57,35 @@ function classifyFile(relativePath, content) {
49
57
  return null;
50
58
  }
51
59
  function evidenceData(provider, relativePath, content) {
52
- if (provider === "repo_metadata")
60
+ if (provider === "repo_metadata") {
61
+ const languages = new Set();
62
+ if (/^package\.json$/i.test(path.basename(relativePath))) {
63
+ try {
64
+ const parsed = JSON.parse(content);
65
+ const text = JSON.stringify(parsed);
66
+ if (/\.(?:ts|tsx|mts|cts)\b/.test(text))
67
+ languages.add("typescript");
68
+ if (/\.(?:js|jsx|mjs|cjs)\b|node\b/.test(text))
69
+ languages.add("javascript");
70
+ }
71
+ catch {
72
+ // The scanner records a parse warning separately below.
73
+ }
74
+ }
75
+ if (/Cargo\.toml$/i.test(relativePath))
76
+ languages.add("rust");
77
+ if (/go\.mod$/i.test(relativePath))
78
+ languages.add("go");
79
+ if (/pyproject\.toml$/i.test(relativePath))
80
+ languages.add("python");
53
81
  return {
54
82
  title: `Repository metadata: ${path.basename(relativePath)}`,
55
83
  factKind: "meta",
56
84
  confidence: relativePath.includes("tsconfig") ? 0.9 : 0.86,
57
85
  evidence: [`repo_metadata:${relativePath}`],
86
+ languages: [...languages],
58
87
  };
88
+ }
59
89
  if (provider === "test_topology") {
60
90
  const frameworks = [
61
91
  content.includes("bun:test") ? "bun:test" : "",
@@ -73,13 +103,17 @@ function evidenceData(provider, relativePath, content) {
73
103
  frameworks,
74
104
  };
75
105
  }
76
- if (provider === "source_symbols")
106
+ if (provider === "source_symbols") {
107
+ const symbolCount = Array.from(content.matchAll(/\b(?:export\s+)?(?:function|class|const|let|var|interface|type)\s+([A-Za-z_$][\w$]*)/g)).length;
77
108
  return {
78
109
  title: `Source module: ${path.basename(relativePath, path.extname(relativePath))}`,
79
110
  factKind: "observation",
80
111
  confidence: 0.82,
81
112
  evidence: [`source_symbols:${relativePath}`],
113
+ analysisMode: "parser",
114
+ symbolCount,
82
115
  };
116
+ }
83
117
  return {};
84
118
  }
85
119
  function layoutEvidence(workspaceRoot, files, ignored) {
@@ -103,11 +137,12 @@ function layoutEvidence(workspaceRoot, files, ignored) {
103
137
  },
104
138
  }));
105
139
  }
140
+ // implements REQ-KIBI-BOOTSTRAP-PLAN
106
141
  export async function scanEvidence(context) {
107
142
  const fs = context.fs;
108
143
  const git = context.git;
109
144
  if (!isScanFilesystem(fs) || !isScanGit(git))
110
- throw new OperationError("OPERATION_FAILED", "Autopilot requires filesystem glob and git ignore ports.");
145
+ throw new OperationError("OPERATION_FAILED", "Bootstrap requires filesystem glob and git ignore ports.");
111
146
  const files = [
112
147
  ...(await fs.glob(SCAN_PATTERNS, {
113
148
  cwd: context.workspaceRoot,
@@ -150,7 +185,12 @@ export async function scanEvidence(context) {
150
185
  });
151
186
  }
152
187
  catch {
153
- warnings.push(`failed_to_read:${relativePath}`);
188
+ const warningProvider = /\.(?:test|spec)\.[^.]+$/i.test(relativePath)
189
+ ? "test_topology"
190
+ : CODE_EXTENSION.test(relativePath)
191
+ ? "source_symbols"
192
+ : "generic_repo_docs";
193
+ warnings.push(`${warningProvider}:failed_to_${warningProvider === "test_topology" ? "read" : "analyze"}:${relativePath}`);
154
194
  }
155
195
  }
156
196
  evidence.push(...layoutEvidence(context.workspaceRoot, files, ignored));
@@ -1,4 +1,4 @@
1
1
  import type { OperationContext } from "../../public/operations/runtime-types.js";
2
2
  import { type DiscoveryResult } from "./types.js";
3
- export declare function discoverAutopilot(context: OperationContext): Promise<DiscoveryResult>;
3
+ export declare function discoverBootstrap(context: OperationContext): Promise<DiscoveryResult>;
4
4
  //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/discovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAIjF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AA+EpB,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CA+C1B"}
@@ -1,8 +1,8 @@
1
1
  import path from "node:path";
2
- import { getSchemaVersionStatus } from "../../public/schema-version.js";
2
+ import { readKbManifestStatus } from "../../utils/kb-manifest.js";
3
3
  import { classifyActivation } from "./activation.js";
4
4
  import { scanEvidence } from "./discovery-evidence.js";
5
- import { AUTOPILOT_PROVIDER_ORDER, } from "./types.js";
5
+ import { BOOTSTRAP_PROVIDER_ORDER, } from "./types.js";
6
6
  const EXCLUDED_ROOTS = [
7
7
  ".git",
8
8
  ".kb",
@@ -33,8 +33,10 @@ const LANGUAGE_NAMES = {
33
33
  };
34
34
  async function migrationWarning(context) {
35
35
  try {
36
- const raw = await context.fs?.readFile(path.join(context.workspaceRoot, ".kb", "config.json"));
37
- return getSchemaVersionStatus(JSON.parse(raw ?? "{}") ?? undefined).warning;
36
+ const status = readKbManifestStatus(context.workspaceRoot);
37
+ if (status.state === "ok")
38
+ return null;
39
+ return status.warning;
38
40
  }
39
41
  catch {
40
42
  return null;
@@ -42,11 +44,15 @@ async function migrationWarning(context) {
42
44
  }
43
45
  function languages(evidence) {
44
46
  return [
45
- ...new Set(evidence
46
- .filter((item) => item.kind === "source_symbols")
47
- .map((item) => {
47
+ ...new Set(evidence.flatMap((item) => {
48
48
  const extension = path.extname(item.label).slice(1);
49
- return LANGUAGE_NAMES[extension] ?? extension;
49
+ const fromExtension = item.kind === "source_symbols"
50
+ ? [LANGUAGE_NAMES[extension] ?? extension]
51
+ : [];
52
+ const fromMetadata = Array.isArray(item.data.languages)
53
+ ? item.data.languages.filter((value) => typeof value === "string")
54
+ : [];
55
+ return [...fromExtension, ...fromMetadata];
50
56
  })),
51
57
  ].sort();
52
58
  }
@@ -57,21 +63,22 @@ function frameworks(evidence) {
57
63
  : [])),
58
64
  ].sort();
59
65
  }
60
- // implements REQ-mcp-init-kibi-autopilot-v1, REQ-kibi-operation-interface-parity
61
- export async function discoverAutopilot(context) {
66
+ // implements REQ-mcp-kibi-bootstrap-bootstrap-v1, REQ-kibi-operation-interface-parity
67
+ // implements REQ-KIBI-BOOTSTRAP-PLAN
68
+ export async function discoverBootstrap(context) {
62
69
  const scan = await scanEvidence(context);
63
70
  const ignored = new Set(scan.ignoredSources);
64
71
  const activation = await classifyActivation(context, scan.files.filter((file) => !ignored.has(file)));
65
72
  const evidence = activation.allowCandidateGeneration
66
73
  ? [...scan.evidence]
67
74
  : [];
68
- evidence.sort((left, right) => AUTOPILOT_PROVIDER_ORDER.indexOf(left.provider) -
69
- AUTOPILOT_PROVIDER_ORDER.indexOf(right.provider) ||
75
+ evidence.sort((left, right) => BOOTSTRAP_PROVIDER_ORDER.indexOf(left.provider) -
76
+ BOOTSTRAP_PROVIDER_ORDER.indexOf(right.provider) ||
70
77
  left.label.localeCompare(right.label));
71
78
  const providersRun = activation.allowCandidateGeneration
72
- ? [...AUTOPILOT_PROVIDER_ORDER]
79
+ ? [...BOOTSTRAP_PROVIDER_ORDER]
73
80
  : [];
74
- const providerCounts = Object.fromEntries(AUTOPILOT_PROVIDER_ORDER.map((provider) => [
81
+ const providerCounts = Object.fromEntries(BOOTSTRAP_PROVIDER_ORDER.map((provider) => [
75
82
  provider,
76
83
  evidence.filter((item) => item.provider === provider).length,
77
84
  ]));
@@ -0,0 +1,8 @@
1
+ import type { OperationContext } from "../../public/operations/runtime-types.js";
2
+ import type { Candidate, PlanBootstrapArgs, PlanBootstrapResult } from "./types.js";
3
+ export declare function selectBootstrapCandidates(input: readonly Candidate[], existingIds: ReadonlySet<string>, entityTypes: readonly string[] | undefined, maximum: number): {
4
+ readonly candidates: readonly Candidate[];
5
+ readonly suppressed: readonly Readonly<Record<string, unknown>>[];
6
+ };
7
+ export declare function executePlanBootstrap(args: PlanBootstrapArgs, context: OperationContext): Promise<PlanBootstrapResult>;
8
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/generate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAKjF,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AA2BpB,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC1C,OAAO,EAAE,MAAM,GACd;IACD,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;CACnE,CAiDA;AAkHD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CA2D9B"}
@@ -0,0 +1,204 @@
1
+ import { createHash } from "node:crypto";
2
+ import path from "node:path";
3
+ import { loadEntities } from "../../public/operations/discovery-entities.js";
4
+ import { executeStatus } from "../../public/operations/discovery-executors.js";
5
+ import { readWorkspaceSnapshot } from "../../public/operations/workspace-snapshot.js";
6
+ import { buildBootstrapCandidates } from "./candidates.js";
7
+ import { discoverBootstrap } from "./discovery.js";
8
+ import { presentBootstrap } from "./presentation.js";
9
+ import { bootstrapEmptyKbSnapshotId } from "./types.js";
10
+ function clamp(value, minimum, maximum) {
11
+ return Math.max(minimum, Math.min(maximum, value));
12
+ }
13
+ function titleKey(candidate) {
14
+ return `${candidate.entityType}::${candidate.title.trim().toLowerCase().replace(/\s+/g, " ")}`;
15
+ }
16
+ function firstUpsertId(candidate) {
17
+ const first = candidate.applyPlan[0];
18
+ if (typeof first?.id === "string")
19
+ return first.id;
20
+ const properties = first?.properties;
21
+ return properties !== null &&
22
+ typeof properties === "object" &&
23
+ "id" in properties &&
24
+ typeof properties.id === "string"
25
+ ? properties.id
26
+ : "";
27
+ }
28
+ function sha256(value) {
29
+ return createHash("sha256").update(value).digest("hex");
30
+ }
31
+ export function selectBootstrapCandidates(input, existingIds, entityTypes, maximum) {
32
+ const allowed = entityTypes && entityTypes.length > 0 ? new Set(entityTypes) : null;
33
+ const sorted = input
34
+ .filter((candidate) => allowed?.has(candidate.entityType) ?? true)
35
+ .sort((left, right) => right.confidence - left.confidence ||
36
+ left.sourcePath.localeCompare(right.sourcePath))
37
+ .slice(0, maximum);
38
+ const typedTitles = new Set(sorted
39
+ .filter((candidate) => candidate.sourceKind === "typed_markdown")
40
+ .map(titleKey));
41
+ const selected = new Map();
42
+ const suppressed = [];
43
+ const suppress = (candidate, reason) => {
44
+ suppressed.push({
45
+ candidateId: candidate.candidateId,
46
+ reason,
47
+ sourcePath: candidate.sourcePath,
48
+ entityType: candidate.entityType,
49
+ });
50
+ };
51
+ for (const candidate of sorted) {
52
+ if (existingIds.has(firstUpsertId(candidate))) {
53
+ suppress(candidate, "entity_exists");
54
+ continue;
55
+ }
56
+ const key = titleKey(candidate);
57
+ if (candidate.sourceKind === "generic_markdown" && typedTitles.has(key)) {
58
+ suppress(candidate, "shadowed_by_typed_source");
59
+ continue;
60
+ }
61
+ const previous = selected.get(key);
62
+ if (!previous) {
63
+ selected.set(key, candidate);
64
+ continue;
65
+ }
66
+ const keepCandidate = candidate.confidence > previous.confidence ||
67
+ (candidate.confidence === previous.confidence &&
68
+ candidate.sourcePath < previous.sourcePath);
69
+ suppress(keepCandidate ? previous : candidate, "duplicate_title");
70
+ if (keepCandidate)
71
+ selected.set(key, candidate);
72
+ }
73
+ return { candidates: [...selected.values()], suppressed };
74
+ }
75
+ async function existingEntityIds(context) {
76
+ if (!context.prolog)
77
+ return new Set();
78
+ try {
79
+ const entities = await loadEntities(context.prolog, {});
80
+ return new Set(entities.map((entity) => String(entity.id ?? "")).filter(Boolean));
81
+ }
82
+ catch {
83
+ return new Set();
84
+ }
85
+ }
86
+ async function expectedSnapshots(context, evidencePaths) {
87
+ const diagnostics = [];
88
+ try {
89
+ const result = await executeStatus({}, context);
90
+ const status = result.structuredContent;
91
+ const workspace = await readWorkspaceSnapshot(context);
92
+ const sourceHashes = {};
93
+ if (!context.fs) {
94
+ diagnostics.push("Bootstrap plan binding requires a filesystem-capable runtime.");
95
+ }
96
+ else {
97
+ // Bind every evidence document that can affect candidate selection. The
98
+ // workspace hash is still authoritative for the complete checkout, but
99
+ // these per-source hashes make the plan's evidence set inspectable.
100
+ // Layout providers legitimately surface directory rows (for example a
101
+ // bare `src` entry); directories carry no hashable document content and
102
+ // must not surface as binding diagnostics, which would otherwise block
103
+ // an otherwise-ready thin-bootstrap plan.
104
+ for (const relative of new Set(evidencePaths)) {
105
+ try {
106
+ const resolved = path.resolve(context.workspaceRoot, relative);
107
+ if (!(await context.fs.stat(resolved)).isFile())
108
+ continue;
109
+ sourceHashes[relative] = sha256(await context.fs.readFile(resolved));
110
+ }
111
+ catch {
112
+ sourceHashes[relative] = null;
113
+ diagnostics.push(`Bootstrap evidence source is unavailable: ${relative}`);
114
+ }
115
+ }
116
+ }
117
+ const branch = status?.branch ?? context.branchAttachment?.kbBranch;
118
+ const workspaceSnapshot = workspace.available
119
+ ? workspace.snapshot.hash
120
+ : undefined;
121
+ if (!branch || branch === "unknown")
122
+ diagnostics.push("Bootstrap plan binding could not determine the active Git branch.");
123
+ if (!workspaceSnapshot || !/^[a-f0-9]{64}$/i.test(workspaceSnapshot))
124
+ diagnostics.push("Bootstrap plan binding could not determine a current workspace snapshot.");
125
+ const rawSnapshot = status?.snapshotId;
126
+ const kbSnapshotId = rawSnapshot === "missing" &&
127
+ branch &&
128
+ workspaceSnapshot &&
129
+ /^[a-f0-9]{64}$/i.test(workspaceSnapshot)
130
+ ? bootstrapEmptyKbSnapshotId({
131
+ branch,
132
+ workspaceSnapshot,
133
+ sourceHashes,
134
+ })
135
+ : rawSnapshot;
136
+ if (!kbSnapshotId ||
137
+ kbSnapshotId === "unknown" ||
138
+ kbSnapshotId === "missing" ||
139
+ kbSnapshotId === "unavailable")
140
+ diagnostics.push("Bootstrap plan binding could not determine a current KB snapshot.");
141
+ return {
142
+ branch: branch ?? "unavailable",
143
+ kbSnapshotId: kbSnapshotId ?? "unavailable",
144
+ workspaceSnapshot: workspaceSnapshot ?? "unavailable",
145
+ sourceHashes,
146
+ bindingDiagnostics: diagnostics,
147
+ };
148
+ }
149
+ catch {
150
+ return {
151
+ branch: context.branchAttachment?.kbBranch ?? "unavailable",
152
+ kbSnapshotId: "unavailable",
153
+ workspaceSnapshot: "unavailable",
154
+ sourceHashes: {},
155
+ bindingDiagnostics: [
156
+ "Bootstrap plan binding could not read current repository state.",
157
+ ],
158
+ };
159
+ }
160
+ }
161
+ // implements REQ-mcp-kibi-bootstrap-bootstrap-v1, REQ-kibi-operation-interface-parity
162
+ // implements REQ-KIBI-BOOTSTRAP-PLAN
163
+ export async function executePlanBootstrap(args, context) {
164
+ const includeGenericMarkdown = args.includeGenericMarkdown ?? true;
165
+ const minConfidence = clamp(args.minConfidence ?? 0.8, 0.6, 0.95);
166
+ const maxCandidates = clamp(Math.trunc(args.maxCandidates ?? 50), 1, 200);
167
+ const [discovery, existingIds] = await Promise.all([
168
+ discoverBootstrap(context),
169
+ existingEntityIds(context),
170
+ ]);
171
+ // Discovery runs before planning so its evidence paths can be bound into
172
+ // the exact plan rather than leaving the reviewer to reconstruct them.
173
+ const bound = await expectedSnapshots(context, discovery.evidence
174
+ .map((evidence) => evidence.relativePath)
175
+ .filter((value) => Boolean(value)));
176
+ const built = discovery.activation.allowCandidateGeneration
177
+ ? buildBootstrapCandidates(discovery.evidence, existingIds, minConfidence, includeGenericMarkdown)
178
+ : { candidates: [], sourceOnlySignals: [] };
179
+ const filteredSignals = args.entityTypes && args.entityTypes.length > 0
180
+ ? built.sourceOnlySignals.filter((signal) => args.entityTypes?.includes(signal.kind))
181
+ : built.sourceOnlySignals;
182
+ const selected = selectBootstrapCandidates(built.candidates.filter((candidate) => candidate.confidence >= minConfidence), existingIds, args.entityTypes, maxCandidates);
183
+ const ignored = discovery.ignoredSources.map((sourcePath) => ({
184
+ candidateId: "",
185
+ reason: "ignored_source",
186
+ sourcePath,
187
+ entityType: "",
188
+ }));
189
+ const { bindingDiagnostics, ...expected } = bound;
190
+ return presentBootstrap({
191
+ root: context.workspaceRoot,
192
+ activation: discovery.activation,
193
+ discoverySummary: discovery.summary,
194
+ migrationWarning: discovery.migrationWarning,
195
+ ...(args.bootstrapContext
196
+ ? { bootstrapContext: args.bootstrapContext }
197
+ : {}),
198
+ candidates: selected.candidates,
199
+ sourceOnlySignals: filteredSignals,
200
+ suppressedCandidates: [...selected.suppressed, ...ignored],
201
+ expected,
202
+ bindingDiagnostics,
203
+ });
204
+ }
@@ -1,3 +1,3 @@
1
- import type { ActivationPolicy, AutopilotDeclaredContext, Candidate, SourceOnlySignal } from "./types.js";
2
- export declare function buildActions(root: string, activation: ActivationPolicy, declared: AutopilotDeclaredContext, candidates: readonly Candidate[], signals: readonly SourceOnlySignal[]): readonly Readonly<Record<string, unknown>>[];
1
+ import type { ActivationPolicy, BootstrapDeclaredContext, Candidate, SourceOnlySignal } from "./types.js";
2
+ export declare function buildActions(root: string, activation: ActivationPolicy, declared: BootstrapDeclaredContext, candidates: readonly Candidate[], signals: readonly SourceOnlySignal[]): readonly Readonly<Record<string, unknown>>[];
3
3
  //# sourceMappingURL=guidance-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guidance-actions.d.ts","sourceRoot":"","sources":["../../../src/operations/autopilot/guidance-actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAgBpB,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAuE9C"}
1
+ {"version":3,"file":"guidance-actions.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/guidance-actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAgBpB,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAuE9C"}
@@ -58,8 +58,8 @@ export function buildActions(root, activation, declared, candidates, signals) {
58
58
  else if (candidates.length > 0)
59
59
  result.push({
60
60
  order: order++,
61
- kind: "upsert",
62
- description: `Review and optionally upsert ${candidates.length} safe candidate(s) from deterministic evidence.`,
61
+ kind: "plan",
62
+ description: `Review the ${candidates.length} safe candidate(s) in the hash-bound plan, then call kb_apply_plan after explicit approval.`,
63
63
  candidateIds: candidates.map((candidate) => candidate.candidateId),
64
64
  });
65
65
  if (signals.length > 0)
@@ -72,8 +72,8 @@ export function buildActions(root, activation, declared, candidates, signals) {
72
72
  order,
73
73
  kind: "check",
74
74
  description: declared.verificationAnchors.length > 0
75
- ? `After approved kb_upsert calls, run kb_check and verify ${summary(declared.verificationAnchors, 2)}.`
76
- : "After approved kb_upsert calls, run kb_check to validate the resulting graph.",
75
+ ? `After kb_apply_plan, run kb_check and verify ${summary(declared.verificationAnchors, 2)}.`
76
+ : "After kb_apply_plan, run kb_check to validate the resulting graph.",
77
77
  });
78
78
  return result;
79
79
  }
@@ -1,8 +1,8 @@
1
- import type { ActivationPolicy, AutopilotDeclaredContext, Candidate, SourceOnlySignal } from "./types.js";
1
+ import type { ActivationPolicy, BootstrapDeclaredContext, Candidate, SourceOnlySignal } from "./types.js";
2
2
  export declare function buildGuidance(input: {
3
3
  readonly root: string;
4
4
  readonly activation: ActivationPolicy;
5
- readonly declared: AutopilotDeclaredContext;
5
+ readonly declared: BootstrapDeclaredContext;
6
6
  readonly candidates: readonly Candidate[];
7
7
  readonly signals: readonly SourceOnlySignal[];
8
8
  readonly warnings: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"guidance.d.ts","sourceRoot":"","sources":["../../../src/operations/autopilot/guidance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAyJpB,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GAAG;IACF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;CAChE,CA0BA"}
1
+ {"version":3,"file":"guidance.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/guidance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA2JpB,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GAAG;IACF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;CAChE,CA0BA"}
@@ -71,6 +71,7 @@ function confidence(activation, declared, candidates, signals, promptBlock) {
71
71
  score += {
72
72
  cold_start_bootstrap: 0.1,
73
73
  repair_bootstrap: -0.05,
74
+ attached_thin_bootstrap: 0.04,
74
75
  attached_thin_handoff: -0.12,
75
76
  attached_seeded_handoff: -0.18,
76
77
  vendored_blocked: -0.25,
@@ -114,6 +115,7 @@ function confidence(activation, declared, candidates, signals, promptBlock) {
114
115
  : "Low confidence: handoff-only output with diagnostic guidance.");
115
116
  return { score: rounded, level, reasons, policy };
116
117
  }
118
+ // implements REQ-KIBI-BOOTSTRAP-PLAN
117
119
  export function buildGuidance(input) {
118
120
  const promptBlock = prompt(input.root, input.activation, input.declared, input.candidates, input.signals, input.warnings);
119
121
  return {
@@ -1,7 +1,7 @@
1
- import type { AutopilotEvidence, Candidate, SourceOnlySignal } from "./types.js";
1
+ import type { BootstrapEvidence, Candidate, SourceOnlySignal } from "./types.js";
2
2
  export type CandidateBuildResult = {
3
3
  readonly candidates: readonly Candidate[];
4
4
  readonly sourceOnlySignals: readonly SourceOnlySignal[];
5
5
  };
6
- export declare function markdownCandidates(item: AutopilotEvidence, existingIds: ReadonlySet<string>, minConfidence: number): CandidateBuildResult;
6
+ export declare function markdownCandidates(item: BootstrapEvidence, existingIds: ReadonlySet<string>, minConfidence: number): CandidateBuildResult;
7
7
  //# sourceMappingURL=markdown-candidates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-candidates.d.ts","sourceRoot":"","sources":["../../../src/operations/autopilot/markdown-candidates.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzD,CAAC;AA0HF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,aAAa,EAAE,MAAM,GACpB,oBAAoB,CAoDtB"}
1
+ {"version":3,"file":"markdown-candidates.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/markdown-candidates.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzD,CAAC;AA4HF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,aAAa,EAAE,MAAM,GACpB,oBAAoB,CAoDtB"}
@@ -12,7 +12,7 @@ function headingSignals(heading, sourcePath, textRef, minConfidence) {
12
12
  if (pattern.test(heading) && confidence >= minConfidence) {
13
13
  result.push({
14
14
  kind,
15
- title: `Author ${kind} from ${heading}`,
15
+ title: `Author ${kind === "req" ? "requirements" : `${kind}s`} from ${heading}`,
16
16
  sourcePath,
17
17
  confidence,
18
18
  evidence: [`generic_heading:${textRef}`],
@@ -40,7 +40,7 @@ function genericHeadingCandidate(item, heading, line, existingIds, minConfidence
40
40
  title: heading,
41
41
  status: type === "adr" ? "proposed" : "active",
42
42
  ...(type === "fact" ? { fact_kind: "observation" } : {}),
43
- source: `autopilot:generic:${relativePath}`,
43
+ source: `bootstrap:generic:${relativePath}`,
44
44
  text_ref: `${relativePath}#L${line}`,
45
45
  };
46
46
  return {
@@ -50,7 +50,7 @@ function genericHeadingCandidate(item, heading, line, existingIds, minConfidence
50
50
  sourceKind: "generic_markdown",
51
51
  sourcePath: item.absolutePath ?? relativePath,
52
52
  confidence,
53
- confidenceBand: confidenceBand(confidence),
53
+ confidenceBand: confidence >= 0.95 ? "high" : confidence >= 0.8 ? "medium" : "low",
54
54
  evidence: [`generic_heading:${relativePath}#L${line}`],
55
55
  relationships: [],
56
56
  applyPlan: [upsert(entity)],
@@ -96,6 +96,7 @@ function requirementCandidate(item, statement, line, heading, headingLine, exist
96
96
  applyPlan: strictPlan(writeSet),
97
97
  };
98
98
  }
99
+ // implements REQ-KIBI-BOOTSTRAP-PLAN
99
100
  export function markdownCandidates(item, existingIds, minConfidence) {
100
101
  const candidates = [];
101
102
  const sourceOnlySignals = [];
@@ -0,0 +1,15 @@
1
+ import type { ActivationPolicy, BootstrapContext, BootstrapDeclaredContext, BootstrapPlanV1, Candidate, DiscoverySummary, PlanBootstrapResult, SourceOnlySignal } from "./types.js";
2
+ export declare function normalizeBootstrapContext(input?: BootstrapContext): BootstrapDeclaredContext;
3
+ export declare function presentBootstrap(input: {
4
+ readonly root: string;
5
+ readonly activation: ActivationPolicy;
6
+ readonly discoverySummary: DiscoverySummary;
7
+ readonly migrationWarning: string | null;
8
+ readonly bootstrapContext?: BootstrapContext;
9
+ readonly candidates: readonly Candidate[];
10
+ readonly sourceOnlySignals: readonly SourceOnlySignal[];
11
+ readonly suppressedCandidates: readonly Readonly<Record<string, unknown>>[];
12
+ readonly expected: BootstrapPlanV1["expected"];
13
+ readonly bindingDiagnostics?: readonly string[];
14
+ }): PlanBootstrapResult;
15
+ //# sourceMappingURL=presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/presentation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAUpB,wBAAgB,yBAAyB,CACvC,KAAK,CAAC,EAAE,gBAAgB,GACvB,wBAAwB,CAS1B;AAiBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACxD,QAAQ,CAAC,oBAAoB,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD,GAAG,mBAAmB,CA0KtB"}