kibi-cli 2.0.0 → 2.2.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 (377) hide show
  1. package/dist/cli-protocol.d.ts.map +1 -1
  2. package/dist/cli-protocol.js +3 -2
  3. package/dist/cli-register-proof.d.ts.map +1 -1
  4. package/dist/cli-register-proof.js +25 -1
  5. package/dist/cli-register-reporting.d.ts.map +1 -1
  6. package/dist/cli-register-reporting.js +6 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +2 -0
  9. package/dist/commands/aggregated-checks.d.ts +7 -0
  10. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  11. package/dist/commands/aggregated-checks.js +25 -1
  12. package/dist/commands/check-generated.d.ts +7 -0
  13. package/dist/commands/check-generated.d.ts.map +1 -0
  14. package/dist/commands/check-generated.js +192 -0
  15. package/dist/commands/check.d.ts.map +1 -1
  16. package/dist/commands/check.js +24 -15
  17. package/dist/commands/doctor.d.ts.map +1 -1
  18. package/dist/commands/doctor.js +227 -25
  19. package/dist/commands/engine.d.ts.map +1 -1
  20. package/dist/commands/engine.js +3 -1
  21. package/dist/commands/github-init.d.ts +1 -1
  22. package/dist/commands/github-init.d.ts.map +1 -1
  23. package/dist/commands/github-init.js +1 -1
  24. package/dist/commands/init-helpers.d.ts +17 -2
  25. package/dist/commands/init-helpers.d.ts.map +1 -1
  26. package/dist/commands/init-helpers.js +136 -30
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +110 -15
  29. package/dist/commands/proof-explain.d.ts +10 -0
  30. package/dist/commands/proof-explain.d.ts.map +1 -0
  31. package/dist/commands/proof-explain.js +45 -0
  32. package/dist/commands/proof-impact.d.ts +7 -0
  33. package/dist/commands/proof-impact.d.ts.map +1 -0
  34. package/dist/commands/proof-impact.js +39 -0
  35. package/dist/commands/proof-migrate-legacy.js +1 -1
  36. package/dist/commands/proof-prune.js +1 -1
  37. package/dist/commands/prove.d.ts.map +1 -1
  38. package/dist/commands/prove.js +14 -22
  39. package/dist/commands/report.d.ts.map +1 -1
  40. package/dist/commands/report.js +17 -2
  41. package/dist/commands/sync/cache.d.ts +20 -1
  42. package/dist/commands/sync/cache.d.ts.map +1 -1
  43. package/dist/commands/sync/cache.js +51 -2
  44. package/dist/commands/sync/discovery.d.ts.map +1 -1
  45. package/dist/commands/sync/discovery.js +1 -1
  46. package/dist/commands/sync/manifest.d.ts +1 -0
  47. package/dist/commands/sync/manifest.d.ts.map +1 -1
  48. package/dist/commands/sync/manifest.js +18 -16
  49. package/dist/commands/sync/persistence.d.ts.map +1 -1
  50. package/dist/commands/sync/persistence.js +14 -0
  51. package/dist/commands/sync.d.ts.map +1 -1
  52. package/dist/commands/sync.js +11 -3
  53. package/dist/engine.d.ts +29 -1
  54. package/dist/engine.d.ts.map +1 -1
  55. package/dist/engine.js +259 -89
  56. package/dist/env/bootstrap.d.ts +84 -0
  57. package/dist/env/bootstrap.d.ts.map +1 -0
  58. package/dist/env/bootstrap.js +310 -0
  59. package/dist/extractors/manifest.d.ts.map +1 -1
  60. package/dist/extractors/manifest.js +67 -29
  61. package/dist/extractors/markdown.d.ts +4 -0
  62. package/dist/extractors/markdown.d.ts.map +1 -1
  63. package/dist/extractors/markdown.js +33 -3
  64. package/dist/extractors/relationships.d.ts.map +1 -1
  65. package/dist/extractors/relationships.js +1 -0
  66. package/dist/extractors/symbols-coordinator.d.ts +8 -0
  67. package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
  68. package/dist/extractors/symbols-coordinator.js +40 -0
  69. package/dist/extractors/symbols-ts.d.ts +8 -19
  70. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  71. package/dist/extractors/symbols-ts.js +33 -503
  72. package/dist/intent-search.d.ts.map +1 -1
  73. package/dist/intent-search.js +68 -30
  74. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  75. package/dist/operations/bootstrap/generate.js +4 -3
  76. package/dist/operations/modeling/model-requirement.d.ts +1 -1
  77. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  78. package/dist/operations/modeling/model-requirement.js +179 -9
  79. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  80. package/dist/operations/modeling/predicate-applyplan.js +14 -2
  81. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  82. package/dist/operations/modeling/predicate-loader.js +24 -0
  83. package/dist/operations/modeling/predicate-types.d.ts +4 -0
  84. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  85. package/dist/operations/modeling/predicate-vocabulary.d.ts +54 -0
  86. package/dist/operations/modeling/predicate-vocabulary.d.ts.map +1 -0
  87. package/dist/operations/modeling/predicate-vocabulary.js +169 -0
  88. package/dist/operations/modeling/requirement-types.d.ts +5 -0
  89. package/dist/operations/modeling/requirement-types.d.ts.map +1 -1
  90. package/dist/operations/modeling/suggest-predicates.d.ts +1 -1
  91. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  92. package/dist/operations/modeling/suggest-predicates.js +30 -3
  93. package/dist/operations/modeling/vocabulary-alignment.d.ts +60 -0
  94. package/dist/operations/modeling/vocabulary-alignment.d.ts.map +1 -0
  95. package/dist/operations/modeling/vocabulary-alignment.js +178 -0
  96. package/dist/operations/mutation/contradictions.d.ts +3 -0
  97. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  98. package/dist/operations/mutation/contradictions.js +29 -0
  99. package/dist/operations/mutation/delete.d.ts.map +1 -1
  100. package/dist/operations/mutation/delete.js +33 -1
  101. package/dist/operations/mutation/predicate-vocabulary-guard.d.ts +8 -0
  102. package/dist/operations/mutation/predicate-vocabulary-guard.d.ts.map +1 -0
  103. package/dist/operations/mutation/predicate-vocabulary-guard.js +64 -0
  104. package/dist/operations/mutation/relationships.d.ts +1 -1
  105. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  106. package/dist/operations/mutation/relationships.js +1 -0
  107. package/dist/operations/mutation/saga.d.ts +5 -0
  108. package/dist/operations/mutation/saga.d.ts.map +1 -1
  109. package/dist/operations/mutation/saga.js +10 -0
  110. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  111. package/dist/operations/mutation/serialization.js +2 -0
  112. package/dist/operations/mutation/source-authoring.d.ts +6 -0
  113. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  114. package/dist/operations/mutation/source-authoring.js +65 -26
  115. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  116. package/dist/operations/mutation/strict-fact.js +5 -0
  117. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  118. package/dist/operations/mutation/symbol-granularity.js +9 -87
  119. package/dist/operations/mutation/types.d.ts +17 -0
  120. package/dist/operations/mutation/types.d.ts.map +1 -1
  121. package/dist/operations/mutation/upsert.d.ts +6 -0
  122. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  123. package/dist/operations/mutation/upsert.js +72 -4
  124. package/dist/operations/mutation/validate-upsert.d.ts.map +1 -1
  125. package/dist/operations/mutation/validate-upsert.js +24 -1
  126. package/dist/operations/mutation/validation.d.ts.map +1 -1
  127. package/dist/operations/mutation/validation.js +16 -3
  128. package/dist/operations/planning/apply-plan.d.ts.map +1 -1
  129. package/dist/operations/planning/apply-plan.js +61 -17
  130. package/dist/operations/planning/compile-intent.d.ts +49 -0
  131. package/dist/operations/planning/compile-intent.d.ts.map +1 -1
  132. package/dist/operations/planning/compile-intent.js +66 -4
  133. package/dist/operations/proof/baseline-diff.d.ts +41 -0
  134. package/dist/operations/proof/baseline-diff.d.ts.map +1 -0
  135. package/dist/operations/proof/baseline-diff.js +153 -0
  136. package/dist/operations/proof/code-scope.d.ts +17 -0
  137. package/dist/operations/proof/code-scope.d.ts.map +1 -0
  138. package/dist/operations/proof/code-scope.js +60 -0
  139. package/dist/operations/proof/explain.d.ts +75 -0
  140. package/dist/operations/proof/explain.d.ts.map +1 -0
  141. package/dist/operations/proof/explain.js +294 -0
  142. package/dist/operations/proof/impact.d.ts +45 -0
  143. package/dist/operations/proof/impact.d.ts.map +1 -0
  144. package/dist/operations/proof/impact.js +118 -0
  145. package/dist/operations/proof/ingest-proof.d.ts +4 -2
  146. package/dist/operations/proof/ingest-proof.d.ts.map +1 -1
  147. package/dist/operations/proof/ingest-proof.js +251 -77
  148. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -1
  149. package/dist/operations/proof/migrate-legacy-receipts.js +28 -22
  150. package/dist/operations/proof/prune-receipts.d.ts.map +1 -1
  151. package/dist/operations/proof/prune-receipts.js +8 -6
  152. package/dist/operations/proof/receipt-document.js +2 -2
  153. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
  154. package/dist/operations/semantic-advisor/analysis-receipt.js +3 -9
  155. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  156. package/dist/operations/semantic-advisor/analyze-prose.js +18 -67
  157. package/dist/operations/semantic-advisor/plugin-orchestration.d.ts +63 -0
  158. package/dist/operations/semantic-advisor/plugin-orchestration.d.ts.map +1 -0
  159. package/dist/operations/semantic-advisor/plugin-orchestration.js +489 -0
  160. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts +15 -2
  161. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts.map +1 -1
  162. package/dist/operations/semantic-advisor/predicate-rules-core.js +7 -140
  163. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +11 -12
  164. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -1
  165. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +6 -94
  166. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts +16 -0
  167. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts.map +1 -1
  168. package/dist/operations/semantic-advisor/predicate-rules-policy.js +7 -150
  169. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts +9 -0
  170. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts.map +1 -1
  171. package/dist/operations/semantic-advisor/predicate-rules-product-tail.js +7 -102
  172. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts +13 -0
  173. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts.map +1 -1
  174. package/dist/operations/semantic-advisor/predicate-rules-product.js +7 -133
  175. package/dist/operations/semantic-advisor/types.d.ts +1 -0
  176. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  177. package/dist/plugins/compose-ontology-packs.d.ts +51 -0
  178. package/dist/plugins/compose-ontology-packs.d.ts.map +1 -0
  179. package/dist/plugins/compose-ontology-packs.js +257 -0
  180. package/dist/plugins/compose-semantic-classifier.d.ts +47 -0
  181. package/dist/plugins/compose-semantic-classifier.d.ts.map +1 -0
  182. package/dist/plugins/compose-semantic-classifier.js +216 -0
  183. package/dist/plugins/compose-vocabulary-alignment.d.ts +23 -0
  184. package/dist/plugins/compose-vocabulary-alignment.d.ts.map +1 -0
  185. package/dist/plugins/compose-vocabulary-alignment.js +141 -0
  186. package/dist/plugins/external-allowlist.d.ts +17 -0
  187. package/dist/plugins/external-allowlist.d.ts.map +1 -0
  188. package/dist/plugins/external-allowlist.js +29 -0
  189. package/dist/plugins/index.d.ts +11 -0
  190. package/dist/plugins/index.d.ts.map +1 -0
  191. package/dist/plugins/index.js +37 -0
  192. package/dist/plugins/load-plugin.d.ts +19 -0
  193. package/dist/plugins/load-plugin.d.ts.map +1 -0
  194. package/dist/plugins/load-plugin.js +59 -0
  195. package/dist/plugins/project-config.d.ts +28 -0
  196. package/dist/plugins/project-config.d.ts.map +1 -0
  197. package/dist/plugins/project-config.js +90 -0
  198. package/dist/plugins/registry.d.ts +94 -0
  199. package/dist/plugins/registry.d.ts.map +1 -0
  200. package/dist/plugins/registry.js +359 -0
  201. package/dist/plugins/resolve-package.d.ts +47 -0
  202. package/dist/plugins/resolve-package.d.ts.map +1 -0
  203. package/dist/plugins/resolve-package.js +262 -0
  204. package/dist/plugins/source-analysis-service.d.ts +44 -0
  205. package/dist/plugins/source-analysis-service.d.ts.map +1 -0
  206. package/dist/plugins/source-analysis-service.js +232 -0
  207. package/dist/prolog/codec.d.ts.map +1 -1
  208. package/dist/prolog/codec.js +2 -0
  209. package/dist/prolog/janitor.d.ts.map +1 -1
  210. package/dist/prolog/janitor.js +1 -1
  211. package/dist/prolog/store-lock.d.ts +1 -1
  212. package/dist/prolog/store-lock.d.ts.map +1 -1
  213. package/dist/prolog.d.ts +36 -0
  214. package/dist/prolog.d.ts.map +1 -1
  215. package/dist/prolog.js +78 -9
  216. package/dist/proof/inspect.js +1 -1
  217. package/dist/proof/producers/playwright-case-id.js +2 -2
  218. package/dist/proof/producers/playwright-reporter.js +4 -4
  219. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  220. package/dist/public/diagnostic-usage.js +7 -25
  221. package/dist/public/extractors/symbols-coordinator.d.ts +1 -1
  222. package/dist/public/extractors/symbols-coordinator.d.ts.map +1 -1
  223. package/dist/public/extractors/symbols-coordinator.js +1 -1
  224. package/dist/public/impact/analyzer.d.ts +1 -1
  225. package/dist/public/impact/analyzer.d.ts.map +1 -1
  226. package/dist/public/impact/analyzer.js +6 -4
  227. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  228. package/dist/public/impact/full-kb-quality.js +4 -12
  229. package/dist/public/operations/catalog.d.ts +39 -7
  230. package/dist/public/operations/catalog.d.ts.map +1 -1
  231. package/dist/public/operations/check-executor.d.ts.map +1 -1
  232. package/dist/public/operations/check-executor.js +11 -3
  233. package/dist/public/operations/check-helpers.d.ts +7 -1
  234. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  235. package/dist/public/operations/check-helpers.js +22 -2
  236. package/dist/public/operations/contracts.d.ts.map +1 -1
  237. package/dist/public/operations/contracts.js +51 -12
  238. package/dist/public/operations/discovery-entities.d.ts +53 -1
  239. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  240. package/dist/public/operations/discovery-entities.js +219 -12
  241. package/dist/public/operations/discovery-executors.d.ts +1 -0
  242. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  243. package/dist/public/operations/discovery-executors.js +93 -59
  244. package/dist/public/operations/migration-plan.d.ts +2 -0
  245. package/dist/public/operations/migration-plan.d.ts.map +1 -1
  246. package/dist/public/operations/migration-plan.js +50 -0
  247. package/dist/public/operations/predicate-schema-conformance.d.ts +41 -0
  248. package/dist/public/operations/predicate-schema-conformance.d.ts.map +1 -0
  249. package/dist/public/operations/predicate-schema-conformance.js +242 -0
  250. package/dist/public/operations/prolog-json.d.ts +1 -1
  251. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  252. package/dist/public/operations/prolog-json.js +16 -10
  253. package/dist/public/operations/result-envelope.d.ts +34 -1
  254. package/dist/public/operations/result-envelope.d.ts.map +1 -1
  255. package/dist/public/operations/result-envelope.js +78 -2
  256. package/dist/public/operations/runtime-types.d.ts +17 -2
  257. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  258. package/dist/public/operations/specs/check-rules.generated.d.ts +1 -1
  259. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -1
  260. package/dist/public/operations/specs/check-rules.generated.js +9 -1
  261. package/dist/public/operations/specs/check.d.ts +1 -1
  262. package/dist/public/operations/specs/discovery.d.ts +10 -1
  263. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  264. package/dist/public/operations/specs/discovery.js +10 -1
  265. package/dist/public/operations/specs/mutation-schemas.d.ts +27 -4
  266. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  267. package/dist/public/operations/specs/mutation-schemas.js +21 -3
  268. package/dist/public/operations/specs/proof.js +1 -1
  269. package/dist/public/operations/specs/reporting.d.ts +9 -0
  270. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  271. package/dist/public/operations/specs/reporting.js +48 -17
  272. package/dist/public/operations/specs/semantic.d.ts +1 -1
  273. package/dist/public/operations/specs/semantic.d.ts.map +1 -1
  274. package/dist/public/operations/specs/semantic.js +54 -4
  275. package/dist/public/operations/specs/upsert.d.ts +28 -5
  276. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  277. package/dist/public/operations/specs/upsert.js +1 -1
  278. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
  279. package/dist/public/operations/symbol-repair-plan.js +11 -4
  280. package/dist/public/operations/types.d.ts +5 -0
  281. package/dist/public/operations/types.d.ts.map +1 -1
  282. package/dist/public/proof-protocol.js +4 -4
  283. package/dist/public/schemas/entity.d.ts.map +1 -1
  284. package/dist/public/schemas/entity.js +22 -0
  285. package/dist/public/schemas/relationship.d.ts.map +1 -1
  286. package/dist/public/schemas/relationship.js +1 -0
  287. package/dist/public/skills/kibi-usage/SKILL.md +10 -3
  288. package/dist/public/skills/kibi-usage/resources/fact-lanes.md +4 -0
  289. package/dist/public/skills/kibi-usage/resources/proof.md +45 -0
  290. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +35 -17
  291. package/dist/public/skills/kibi-usage/resources/source-authoring.md +36 -0
  292. package/dist/public/skills/kibi-usage/resources/workflows.md +52 -1
  293. package/dist/public/symbol-granularity.d.ts +1 -1
  294. package/dist/public/symbol-granularity.d.ts.map +1 -1
  295. package/dist/public/symbol-granularity.generated.d.ts.map +1 -1
  296. package/dist/public/symbol-granularity.generated.js +38 -5
  297. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  298. package/dist/public/telemetry-acceptance.js +21 -5
  299. package/dist/relationships/shards.d.ts +6 -0
  300. package/dist/relationships/shards.d.ts.map +1 -1
  301. package/dist/relationships/shards.js +26 -19
  302. package/dist/report/html-report.css +1239 -281
  303. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  304. package/dist/runtime/cli-runtime.js +18 -0
  305. package/dist/schemas/entity.schema.json +32 -0
  306. package/dist/traceability/staged-diagnostics.d.ts +1 -1
  307. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  308. package/dist/traceability/staged-entity-id-style.d.ts +12 -0
  309. package/dist/traceability/staged-entity-id-style.d.ts.map +1 -0
  310. package/dist/traceability/staged-entity-id-style.js +68 -0
  311. package/dist/traceability/symbol-extract.d.ts +24 -7
  312. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  313. package/dist/traceability/symbol-extract.js +64 -208
  314. package/dist/traceability/temp-kb.d.ts.map +1 -1
  315. package/dist/traceability/temp-kb.js +8 -0
  316. package/dist/traceability/validate.js +1 -1
  317. package/dist/types/entities.d.ts +2 -0
  318. package/dist/types/entities.d.ts.map +1 -1
  319. package/dist/types/relationships.d.ts +1 -1
  320. package/dist/types/relationships.d.ts.map +1 -1
  321. package/dist/utils/entity-id-style.d.ts +27 -0
  322. package/dist/utils/entity-id-style.d.ts.map +1 -0
  323. package/dist/utils/entity-id-style.js +81 -0
  324. package/dist/utils/git-repository-context.d.ts +50 -0
  325. package/dist/utils/git-repository-context.d.ts.map +1 -0
  326. package/dist/utils/git-repository-context.js +259 -0
  327. package/dist/utils/rule-registry.d.ts +5 -0
  328. package/dist/utils/rule-registry.d.ts.map +1 -1
  329. package/dist/utils/rule-registry.generated.d.ts +42 -0
  330. package/dist/utils/rule-registry.generated.d.ts.map +1 -1
  331. package/dist/utils/rule-registry.generated.js +50 -0
  332. package/dist/utils/strict-modeling.d.ts +7 -0
  333. package/dist/utils/strict-modeling.d.ts.map +1 -1
  334. package/dist/utils/strict-modeling.js +11 -0
  335. package/package.json +14 -11
  336. package/schema/entities.pl +60 -1
  337. package/schema/relationships.pl +17 -4
  338. package/schema/validation.pl +118 -20
  339. package/src/public/diagnostic-usage.ts +16 -24
  340. package/src/public/extractors/symbols-coordinator.ts +1 -0
  341. package/src/public/impact/analyzer.ts +15 -12
  342. package/src/public/impact/full-kb-quality.ts +4 -16
  343. package/src/public/operations/check-executor.ts +13 -2
  344. package/src/public/operations/check-helpers.ts +29 -3
  345. package/src/public/operations/contracts.ts +59 -12
  346. package/src/public/operations/discovery-entities.ts +327 -12
  347. package/src/public/operations/discovery-executors.ts +110 -61
  348. package/src/public/operations/migration-plan.ts +57 -0
  349. package/src/public/operations/predicate-schema-conformance.ts +362 -0
  350. package/src/public/operations/prolog-json.ts +22 -8
  351. package/src/public/operations/result-envelope.ts +114 -2
  352. package/src/public/operations/runtime-types.ts +22 -3
  353. package/src/public/operations/specs/check-rules.generated.ts +9 -1
  354. package/src/public/operations/specs/discovery.ts +11 -1
  355. package/src/public/operations/specs/mutation-schemas.ts +23 -3
  356. package/src/public/operations/specs/proof.ts +1 -1
  357. package/src/public/operations/specs/reporting.ts +71 -24
  358. package/src/public/operations/specs/semantic.ts +79 -17
  359. package/src/public/operations/specs/upsert.ts +1 -1
  360. package/src/public/operations/symbol-repair-plan.ts +16 -7
  361. package/src/public/operations/types.ts +5 -0
  362. package/src/public/proof-fingerprint.ts +1 -1
  363. package/src/public/proof-protocol-types.d.ts +1 -1
  364. package/src/public/proof-protocol.ts +4 -4
  365. package/src/public/schemas/entity.ts +22 -0
  366. package/src/public/schemas/relationship.ts +1 -0
  367. package/src/public/skills/kibi-usage/SKILL.md +10 -3
  368. package/src/public/skills/kibi-usage/resources/fact-lanes.md +4 -0
  369. package/src/public/skills/kibi-usage/resources/proof.md +45 -0
  370. package/src/public/skills/kibi-usage/resources/relationship-directions.md +35 -17
  371. package/src/public/skills/kibi-usage/resources/source-authoring.md +36 -0
  372. package/src/public/skills/kibi-usage/resources/workflows.md +52 -1
  373. package/src/public/symbol-granularity.generated.ts +45 -12
  374. package/src/public/symbol-granularity.ts +3 -3
  375. package/src/public/telemetry-acceptance.ts +37 -6
  376. package/src/schemas/entity.schema.json +32 -0
  377. package/src/schemas/relationship.schema.json +1 -0
@@ -15,7 +15,7 @@
15
15
  You should have received a copy of the GNU Affero General Public License
16
16
  along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
- import { loadEntities } from "../../public/operations/discovery-entities.js";
18
+ import { loadEntities, loadEntitiesPaged, } from "../../public/operations/discovery-entities.js";
19
19
  import { proofReceiptHistoryErrors, } from "../../public/proof-receipt.js";
20
20
  import { projectEntityProperties } from "../mutation/entity-projection.js";
21
21
  import { executeUpsert } from "../mutation/upsert.js";
@@ -37,17 +37,19 @@ function parseKeep(value) {
37
37
  * with the prune carve-out (append-only validation is skipped for exactly
38
38
  * this maintenance action).
39
39
  */
40
- // implements REQ-kibi-proof-evidence-protocol
40
+ // implements REQ-kibi-verification-evidence-contract
41
41
  export async function executePruneReceipts(args, context) {
42
42
  if (!context.prolog)
43
43
  throw new Error("Proof prune requires a Prolog runtime");
44
44
  if (context.fs === undefined)
45
45
  throw new Error("Proof prune failed: this maintenance action rewrites authored test documents and requires a filesystem-capable runtime");
46
46
  const keep = parseKeep(args.keep);
47
- const tests = await loadEntities(context.prolog, {
48
- type: "test",
49
- ...(args.testId === undefined ? {} : { id: args.testId }),
50
- });
47
+ // A bulk run pages full entities: receipt histories are exactly what this
48
+ // maintenance action reads, and loading all of them at once can exceed the
49
+ // bounded Prolog output capacity on long-lived stores.
50
+ const tests = args.testId === undefined
51
+ ? await loadEntitiesPaged(context.prolog, "test")
52
+ : await loadEntities(context.prolog, { type: "test", id: args.testId });
51
53
  if (args.testId !== undefined && tests.length === 0) {
52
54
  throw new Error(`Proof prune failed: test ${args.testId} was not found`);
53
55
  }
@@ -25,7 +25,7 @@ import { dump as dumpYaml } from "js-yaml";
25
25
  * Used by proof maintenance to drop legacy `verification_receipts` blocks
26
26
  * once a `proof_contract` exists, without canonicalizing the document.
27
27
  */
28
- // implements REQ-kibi-proof-evidence-protocol
28
+ // implements REQ-kibi-verification-evidence-contract
29
29
  export function removeFrontmatterBlock(content, key) {
30
30
  const lines = content.match(/[^\n]*\n|[^\n]+$/g) ?? [];
31
31
  if (lines.length === 0 || lines[0]?.trim() !== "---")
@@ -75,7 +75,7 @@ export function removeFrontmatterBlock(content, key) {
75
75
  * patcher can safely splice; the caller then falls back to the canonical
76
76
  * render.
77
77
  */
78
- // implements REQ-kibi-proof-evidence-protocol
78
+ // implements REQ-kibi-verification-evidence-contract
79
79
  export function patchReceiptsIntoDocument(content, receipts) {
80
80
  const lines = content.match(/[^\n]*\n|[^\n]+$/g) ?? [];
81
81
  if (lines.length === 0 || lines[0]?.trim() !== "---")
@@ -1 +1 @@
1
- {"version":3,"file":"analysis-receipt.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analysis-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,KAAK,OAAO,EAMb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,6BAA6B,EAI7B,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AA0CpB,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,SAAS,0BAA0B,EAAE,EAClD,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,YAAY,EAAE,SAAS,mBAAmB,EAAE,EAC5C,eAAe,EAAE,SAAS,4BAA4B,EAAE,EACxD,cAAc,EAAE,SAAS,iBAAiB,EAAE,GAC3C,6BAA6B,CAkH/B"}
1
+ {"version":3,"file":"analysis-receipt.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analysis-receipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,KAAK,OAAO,EAMb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,6BAA6B,EAI7B,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAyBpB,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,SAAS,0BAA0B,EAAE,EAClD,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,YAAY,EAAE,SAAS,mBAAmB,EAAE,EAC5C,eAAe,EAAE,SAAS,4BAA4B,EAAE,EACxD,cAAc,EAAE,SAAS,iBAAiB,EAAE,GAC3C,6BAA6B,CAkH/B"}
@@ -1,14 +1,8 @@
1
+ import { chooseLane as chooseBuiltinLane } from "kibi-plugin-builtin";
1
2
  import { SEMANTIC_INVENTORY_VERSION, payloadHash, propertiesOf, semanticSourceHash, semanticSourceOf, } from "./shared.js";
3
+ /** Builtin classifier is the single source of signal→lane selection. */
2
4
  function chooseLane(signals) {
3
- if (signals.some(({ kind }) => kind === "numeric_cardinality" || kind === "numeric_threshold"))
4
- return "strict_property";
5
- if (signals.some(({ kind }) => kind === "conditional" ||
6
- kind === "permission" ||
7
- kind === "state_or_default"))
8
- return "predicate";
9
- return signals.some(({ kind }) => kind === "normative_modal")
10
- ? "observation_review"
11
- : "none";
5
+ return chooseBuiltinLane(signals);
12
6
  }
13
7
  function summary(readiness, lane) {
14
8
  if (readiness === "modeled")
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-prose.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analyze-prose.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EAWrB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI1D;AAo3BD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,6BAA6B,CA+D/B"}
1
+ {"version":3,"file":"analyze-prose.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/analyze-prose.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EAWrB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI1D;AAg0BD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,6BAA6B,CA+D/B"}
@@ -1,15 +1,10 @@
1
+ import { createBuiltinOntologyPack, detectSignals as detectBuiltinSignals, } from "kibi-plugin-builtin";
1
2
  import { utf8Span, validateLogicIr, } from "../../logic/ir.js";
2
3
  import { logicRuleFactId } from "../modeling/logic-modeling.js";
3
4
  import { buildAdvisorResult } from "./analysis-receipt.js";
4
5
  import { extractSemanticClauses, semanticClaimKey, } from "./clauses.js";
5
6
  import { observationPlan } from "./observation-plan.js";
6
- import { detectPredicateRules } from "./predicate-rule.js";
7
- import { CORE_PREDICATE_RULES } from "./predicate-rules-core.js";
8
- import { LAUNCHER_PREDICATE_RULES } from "./predicate-rules-launcher.js";
9
- import { POLICY_PREDICATE_RULES } from "./predicate-rules-policy.js";
10
- import { PRODUCT_TAIL_PREDICATE_RULES } from "./predicate-rules-product-tail.js";
11
- import { PRODUCT_PREDICATE_RULES } from "./predicate-rules-product.js";
12
- import { isRecord, payloadHash, propertiesOf, relationship, semanticClausesOf, semanticSourceHash, semanticSourceOf, sourceOf, statementOf, stringValue, } from "./shared.js";
7
+ import { predicateSuggestion as buildPredicateSuggestion, isRecord, payloadHash, propertiesOf, relationship, semanticClausesOf, semanticSourceHash, semanticSourceOf, sourceOf, statementOf, stringValue, } from "./shared.js";
13
8
  import { detectStrictSuggestion } from "./strict-rules.js";
14
9
  export const SEMANTIC_ADVISOR_VERSION = "semantic-advisor-v2";
15
10
  export { semanticClaimKey } from "./clauses.js";
@@ -18,46 +13,6 @@ export function stringLogicClaims(value) {
18
13
  ? value.filter((entry) => typeof entry === "string")
19
14
  : [];
20
15
  }
21
- const SIGNAL_PATTERNS = [
22
- {
23
- kind: "numeric_cardinality",
24
- candidateLane: "strict_property",
25
- confidence: 0.92,
26
- pattern: /\b(?:(?:at\s+most|at\s+least|exactly|no\s+more\s+than|up\s+to|cap(?:ped)?\s+at)\s+)?(?:\d+|zero|one|two|three|four|five|six|seven|eight|nine|ten)\b/i,
27
- },
28
- {
29
- kind: "numeric_threshold",
30
- candidateLane: "strict_property",
31
- confidence: 0.86,
32
- pattern: /\b(?:maximum|minimum|under|within|below|above|expires?|retained\s+for)\s+(?:\d+|zero|one|two|three|four|five|six|seven|eight|nine|ten)\b/i,
33
- },
34
- {
35
- kind: "conditional",
36
- candidateLane: "predicate",
37
- confidence: 0.82,
38
- pattern: /\b(?:if|when|unless|except|only\s+if|provided\s+that)\b/i,
39
- },
40
- {
41
- kind: "permission",
42
- candidateLane: "predicate",
43
- confidence: 0.8,
44
- pattern: /\b(?:only|may|can|allowed|denied|forbidden|must\s+not|cannot|can't)\b/i,
45
- },
46
- {
47
- kind: "state_or_default",
48
- candidateLane: "predicate",
49
- confidence: 0.74,
50
- pattern: /\b(?:state|mode|defaults?\s+to|ready|disabled|enabled|terminal)\b/i,
51
- },
52
- {
53
- kind: "normative_modal",
54
- candidateLane: "observation_review",
55
- confidence: 0.65,
56
- // Modal-free validity, rejection, prohibition, and failure-outcome
57
- // assertions are normative even when they omit must/shall.
58
- pattern: /\b(?:must|shall|should|may|must\s+not|cannot|can't|invalid|unresolved|reject(?:ed|ion)?|prohibited|forbidden|fail(?:s|ed|ure)?\s+(?:clearly|explicitly|with)|required\s+outcome)\b/i,
59
- },
60
- ];
61
16
  function proseOf(payload) {
62
17
  const properties = propertiesOf(payload);
63
18
  return [
@@ -106,22 +61,14 @@ function isModeled(payload, expectedClaimKeys) {
106
61
  types.has("requires_predicate") ||
107
62
  types.has("requires_rule")));
108
63
  }
64
+ /** Builtin semantic classifier is the single source of signal/lane detection. */
109
65
  function detectSignals(prose) {
110
- const seen = new Set();
111
- return SIGNAL_PATTERNS.flatMap((candidate) => {
112
- const evidence = prose.match(candidate.pattern)?.[0];
113
- if (!evidence || seen.has(candidate.kind))
114
- return [];
115
- seen.add(candidate.kind);
116
- return [
117
- {
118
- kind: candidate.kind,
119
- evidence,
120
- candidate_lane: candidate.candidateLane,
121
- confidence: candidate.confidence,
122
- },
123
- ];
124
- });
66
+ return detectBuiltinSignals(prose).map((signal) => ({
67
+ kind: signal.kind,
68
+ evidence: signal.evidence,
69
+ candidate_lane: signal.candidateLane,
70
+ confidence: signal.confidence,
71
+ }));
125
72
  }
126
73
  function ambiguitySuggestion(payload, statement) {
127
74
  const match = statement.match(/\b(?<value>\d+|zero|one|two|three|four|five|six|seven|eight|nine|ten)\s+(?<resource>active\s+sessions?|sessions?)\b/i);
@@ -169,11 +116,15 @@ function ontologyGapSuggestion(payload, statement) {
169
116
  };
170
117
  }
171
118
  function predicateSuggestion(payload, statement) {
172
- return (detectPredicateRules(payload, statement, LAUNCHER_PREDICATE_RULES) ??
173
- detectPredicateRules(payload, statement, CORE_PREDICATE_RULES) ??
174
- detectPredicateRules(payload, statement, POLICY_PREDICATE_RULES) ??
175
- detectPredicateRules(payload, statement, PRODUCT_PREDICATE_RULES) ??
176
- detectPredicateRules(payload, statement, PRODUCT_TAIL_PREDICATE_RULES));
119
+ // Deterministic builtin pack — never loads external plugins on sync paths.
120
+ const matches = createBuiltinOntologyPack().match({
121
+ claimKey: "",
122
+ statement,
123
+ });
124
+ const hit = matches[0];
125
+ if (!hit)
126
+ return null;
127
+ return buildPredicateSuggestion(payload, hit.evidence, hit.predicateName, hit.arguments, hit.rationale ?? "", hit.polarity);
177
128
  }
178
129
  function ruleSuggestion(payload, candidate) {
179
130
  const validation = validateLogicIr(candidate.ir);
@@ -0,0 +1,63 @@
1
+ import type { PluginProviderStamp, SemanticClassificationDecision, SemanticClassifierInput } from "kibi-plugin-sdk";
2
+ import { type ComposedOntologyCatalog, type StampedOntologyCandidate } from "../../plugins/compose-ontology-packs.js";
3
+ import { type ComposedSemanticClassifierResult } from "../../plugins/compose-semantic-classifier.js";
4
+ import type { CapabilityRegistry } from "../../plugins/registry.js";
5
+ import type { OperationContext } from "../../public/operations/runtime-types.js";
6
+ import type { SemanticAdvisorAnalysisResult, SemanticAdvisorInput } from "./types.js";
7
+ export type SemanticPluginOrchestrationResult = Readonly<{
8
+ analysis: SemanticAdvisorAnalysisResult;
9
+ classification: ComposedSemanticClassifierResult | null;
10
+ ontologyCatalog: ComposedOntologyCatalog | null;
11
+ ontologyMatches: readonly StampedOntologyCandidate[];
12
+ ontologyShadowMatches: readonly StampedOntologyCandidate[];
13
+ stamps: readonly PluginProviderStamp[];
14
+ }>;
15
+ /**
16
+ * Drop sync-path builtin ontology `predicate` suggestions.
17
+ *
18
+ * `analyzeSemanticAdvisorInput` always consults the builtin pack for
19
+ * maintenance-safe deterministic matching. When a replace ontology pack is
20
+ * active, those suggestions must not survive into the public receipt —
21
+ * including when the replace pack abstains with a valid empty match set.
22
+ */
23
+ export declare function stripSyncBuiltinOntologySuggestions(analysis: SemanticAdvisorAnalysisResult): SemanticAdvisorAnalysisResult;
24
+ /**
25
+ * Host-construct advisory modeling suggestions from validated ontology matches.
26
+ *
27
+ * When `replaced` is true, matches replace any remaining claim-keyed
28
+ * suggestion for the matched claim (after sync builtin predicates were
29
+ * stripped). When false (augment/builtin), matches only fill claims that
30
+ * lack a suggestion.
31
+ */
32
+ export declare function applyOntologyMatchSuggestions(analysis: SemanticAdvisorAnalysisResult, ontologyMatches: readonly StampedOntologyCandidate[], options?: Readonly<{
33
+ replaced: boolean;
34
+ }>): SemanticAdvisorAnalysisResult;
35
+ /**
36
+ * Apply host-validated classifier decisions as a bounded routing seam.
37
+ *
38
+ * Plugins may influence per-proposition routing, candidate lane, suggested
39
+ * next tools, and advisory ambiguity metadata. They must not delete
40
+ * propositions, erase assertive unresolved obligations, downgrade modeled
41
+ * completeness, manufacture typed grounding, or invent mutation/proof.
42
+ */
43
+ export declare function applyClassificationRouting(analysis: SemanticAdvisorAnalysisResult, classification: ComposedSemanticClassifierResult, ontologyMatches?: readonly StampedOntologyCandidate[], options?: Readonly<{
44
+ replaced?: boolean;
45
+ /** True when a replace semantic classifier succeeded (not builtin fallback). */
46
+ classifierReplaced?: boolean;
47
+ }>): SemanticAdvisorAnalysisResult;
48
+ /**
49
+ * Async orchestration for allowlisted semantic operations.
50
+ * Maintenance paths must keep calling sync `analyzeSemanticAdvisorInput`.
51
+ */
52
+ export declare function analyzeSemanticAdvisorInputWithPlugins(input: SemanticAdvisorInput, options: Readonly<{
53
+ ensurePlugins?: () => Promise<CapabilityRegistry>;
54
+ operationName: string;
55
+ }>): Promise<SemanticPluginOrchestrationResult>;
56
+ /**
57
+ * Run allowlisted semantic classifier composition without re-running advisor
58
+ * analysis.
59
+ */
60
+ export declare function composeSemanticClassificationForOperation(context: OperationContext | undefined, operationName: string, input: SemanticClassifierInput): Promise<ComposedSemanticClassifierResult | null>;
61
+ export declare function composeOntologyCatalogForOperation(context: OperationContext | undefined, operationName: string): Promise<ComposedOntologyCatalog | null>;
62
+ export type { SemanticClassificationDecision };
63
+ //# sourceMappingURL=plugin-orchestration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-orchestration.d.ts","sourceRoot":"","sources":["../../../src/operations/semantic-advisor/plugin-orchestration.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAEV,mBAAmB,EACnB,8BAA8B,EAC9B,uBAAuB,EAExB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAG9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,KAAK,gCAAgC,EAEtC,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EAKrB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,iCAAiC,GAAG,QAAQ,CAAC;IACvD,QAAQ,EAAE,6BAA6B,CAAC;IACxC,cAAc,EAAE,gCAAgC,GAAG,IAAI,CAAC;IACxD,eAAe,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD,qBAAqB,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC3D,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACxC,CAAC,CAAC;AAmDH;;;;;;;GAOG;AAEH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,6BAA6B,GACtC,6BAA6B,CAkB/B;AAED;;;;;;;GAOG;AAEH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,6BAA6B,EACvC,eAAe,EAAE,SAAS,wBAAwB,EAAE,EACpD,OAAO,GAAE,QAAQ,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAuB,GAC7D,6BAA6B,CAiG/B;AAED;;;;;;;GAOG;AAEH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,6BAA6B,EACvC,cAAc,EAAE,gCAAgC,EAChD,eAAe,GAAE,SAAS,wBAAwB,EAAO,EACzD,OAAO,GAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAM,GACN,6BAA6B,CAqM/B;AAED;;;GAGG;AAEH,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,QAAQ,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,GACD,OAAO,CAAC,iCAAiC,CAAC,CA8H5C;AAED;;;GAGG;AAEH,wBAAsB,yCAAyC,CAC7D,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAOlD;AAGD,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAOzC;AAED,YAAY,EAAE,8BAA8B,EAAE,CAAC"}