@askdkc/kiokuko 0.1.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 (391) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja.md +112 -0
  3. package/README.ko.md +112 -0
  4. package/README.md +147 -0
  5. package/README.zh-CN.md +112 -0
  6. package/dist/agent-file/atomic-write.d.ts +6 -0
  7. package/dist/agent-file/atomic-write.d.ts.map +1 -0
  8. package/dist/agent-file/atomic-write.js +36 -0
  9. package/dist/agent-file/atomic-write.js.map +1 -0
  10. package/dist/agent-file/managed-block.d.ts +12 -0
  11. package/dist/agent-file/managed-block.d.ts.map +1 -0
  12. package/dist/agent-file/managed-block.js +56 -0
  13. package/dist/agent-file/managed-block.js.map +1 -0
  14. package/dist/agent-file/render.d.ts +14 -0
  15. package/dist/agent-file/render.d.ts.map +1 -0
  16. package/dist/agent-file/render.js +41 -0
  17. package/dist/agent-file/render.js.map +1 -0
  18. package/dist/akinator/domain.d.ts +25 -0
  19. package/dist/akinator/domain.d.ts.map +1 -0
  20. package/dist/akinator/domain.js +255 -0
  21. package/dist/akinator/domain.js.map +1 -0
  22. package/dist/akinator/orchestrator.d.ts +8 -0
  23. package/dist/akinator/orchestrator.d.ts.map +1 -0
  24. package/dist/akinator/orchestrator.js +11 -0
  25. package/dist/akinator/orchestrator.js.map +1 -0
  26. package/dist/akinator/service.d.ts +35 -0
  27. package/dist/akinator/service.d.ts.map +1 -0
  28. package/dist/akinator/service.js +296 -0
  29. package/dist/akinator/service.js.map +1 -0
  30. package/dist/akinator/store.d.ts +96 -0
  31. package/dist/akinator/store.d.ts.map +1 -0
  32. package/dist/akinator/store.js +583 -0
  33. package/dist/akinator/store.js.map +1 -0
  34. package/dist/akinator/types.d.ts +49 -0
  35. package/dist/akinator/types.d.ts.map +1 -0
  36. package/dist/akinator/types.js +2 -0
  37. package/dist/akinator/types.js.map +1 -0
  38. package/dist/bin/kiokuko.d.ts +3 -0
  39. package/dist/bin/kiokuko.d.ts.map +1 -0
  40. package/dist/bin/kiokuko.js +6 -0
  41. package/dist/bin/kiokuko.js.map +1 -0
  42. package/dist/cli.d.ts +10 -0
  43. package/dist/cli.d.ts.map +1 -0
  44. package/dist/cli.js +362 -0
  45. package/dist/cli.js.map +1 -0
  46. package/dist/client/runtime-discovery.d.ts +15 -0
  47. package/dist/client/runtime-discovery.d.ts.map +1 -0
  48. package/dist/client/runtime-discovery.js +45 -0
  49. package/dist/client/runtime-discovery.js.map +1 -0
  50. package/dist/client/server-client.d.ts +20 -0
  51. package/dist/client/server-client.d.ts.map +1 -0
  52. package/dist/client/server-client.js +424 -0
  53. package/dist/client/server-client.js.map +1 -0
  54. package/dist/commands/agent.d.ts +10 -0
  55. package/dist/commands/agent.d.ts.map +1 -0
  56. package/dist/commands/agent.js +283 -0
  57. package/dist/commands/agent.js.map +1 -0
  58. package/dist/commands/backup.d.ts +5 -0
  59. package/dist/commands/backup.d.ts.map +1 -0
  60. package/dist/commands/backup.js +14 -0
  61. package/dist/commands/backup.js.map +1 -0
  62. package/dist/commands/call.d.ts +7 -0
  63. package/dist/commands/call.d.ts.map +1 -0
  64. package/dist/commands/call.js +10 -0
  65. package/dist/commands/call.js.map +1 -0
  66. package/dist/commands/doctor.d.ts +31 -0
  67. package/dist/commands/doctor.d.ts.map +1 -0
  68. package/dist/commands/doctor.js +142 -0
  69. package/dist/commands/doctor.js.map +1 -0
  70. package/dist/commands/export.d.ts +21 -0
  71. package/dist/commands/export.d.ts.map +1 -0
  72. package/dist/commands/export.js +68 -0
  73. package/dist/commands/export.js.map +1 -0
  74. package/dist/commands/import.d.ts +15 -0
  75. package/dist/commands/import.d.ts.map +1 -0
  76. package/dist/commands/import.js +265 -0
  77. package/dist/commands/import.js.map +1 -0
  78. package/dist/commands/init.d.ts +14 -0
  79. package/dist/commands/init.d.ts.map +1 -0
  80. package/dist/commands/init.js +26 -0
  81. package/dist/commands/init.js.map +1 -0
  82. package/dist/commands/ledger.d.ts +7 -0
  83. package/dist/commands/ledger.d.ts.map +1 -0
  84. package/dist/commands/ledger.js +66 -0
  85. package/dist/commands/ledger.js.map +1 -0
  86. package/dist/commands/link.d.ts +6 -0
  87. package/dist/commands/link.d.ts.map +1 -0
  88. package/dist/commands/link.js +6 -0
  89. package/dist/commands/link.js.map +1 -0
  90. package/dist/commands/promote.d.ts +6 -0
  91. package/dist/commands/promote.d.ts.map +1 -0
  92. package/dist/commands/promote.js +6 -0
  93. package/dist/commands/promote.js.map +1 -0
  94. package/dist/commands/purge.d.ts +10 -0
  95. package/dist/commands/purge.d.ts.map +1 -0
  96. package/dist/commands/purge.js +26 -0
  97. package/dist/commands/purge.js.map +1 -0
  98. package/dist/commands/read.d.ts +6 -0
  99. package/dist/commands/read.d.ts.map +1 -0
  100. package/dist/commands/read.js +4 -0
  101. package/dist/commands/read.js.map +1 -0
  102. package/dist/commands/recall.d.ts +6 -0
  103. package/dist/commands/recall.d.ts.map +1 -0
  104. package/dist/commands/recall.js +4 -0
  105. package/dist/commands/recall.js.map +1 -0
  106. package/dist/commands/record.d.ts +6 -0
  107. package/dist/commands/record.d.ts.map +1 -0
  108. package/dist/commands/record.js +4 -0
  109. package/dist/commands/record.js.map +1 -0
  110. package/dist/commands/search.d.ts +6 -0
  111. package/dist/commands/search.d.ts.map +1 -0
  112. package/dist/commands/search.js +4 -0
  113. package/dist/commands/search.js.map +1 -0
  114. package/dist/commands/serve.d.ts +34 -0
  115. package/dist/commands/serve.d.ts.map +1 -0
  116. package/dist/commands/serve.js +120 -0
  117. package/dist/commands/serve.js.map +1 -0
  118. package/dist/commands/server-status.d.ts +20 -0
  119. package/dist/commands/server-status.d.ts.map +1 -0
  120. package/dist/commands/server-status.js +21 -0
  121. package/dist/commands/server-status.js.map +1 -0
  122. package/dist/commands/server.d.ts +13 -0
  123. package/dist/commands/server.d.ts.map +1 -0
  124. package/dist/commands/server.js +89 -0
  125. package/dist/commands/server.js.map +1 -0
  126. package/dist/commands/setup.d.ts +32 -0
  127. package/dist/commands/setup.d.ts.map +1 -0
  128. package/dist/commands/setup.js +121 -0
  129. package/dist/commands/setup.js.map +1 -0
  130. package/dist/commands/supersede.d.ts +6 -0
  131. package/dist/commands/supersede.d.ts.map +1 -0
  132. package/dist/commands/supersede.js +6 -0
  133. package/dist/commands/supersede.js.map +1 -0
  134. package/dist/commands/use.d.ts +28 -0
  135. package/dist/commands/use.d.ts.map +1 -0
  136. package/dist/commands/use.js +176 -0
  137. package/dist/commands/use.js.map +1 -0
  138. package/dist/config/paths.d.ts +18 -0
  139. package/dist/config/paths.d.ts.map +1 -0
  140. package/dist/config/paths.js +104 -0
  141. package/dist/config/paths.js.map +1 -0
  142. package/dist/config/project-config.d.ts +10 -0
  143. package/dist/config/project-config.d.ts.map +1 -0
  144. package/dist/config/project-config.js +59 -0
  145. package/dist/config/project-config.js.map +1 -0
  146. package/dist/context/broker.d.ts +80 -0
  147. package/dist/context/broker.d.ts.map +1 -0
  148. package/dist/context/broker.js +437 -0
  149. package/dist/context/broker.js.map +1 -0
  150. package/dist/context/delivery.d.ts +66 -0
  151. package/dist/context/delivery.d.ts.map +1 -0
  152. package/dist/context/delivery.js +758 -0
  153. package/dist/context/delivery.js.map +1 -0
  154. package/dist/context/feedback.d.ts +75 -0
  155. package/dist/context/feedback.d.ts.map +1 -0
  156. package/dist/context/feedback.js +997 -0
  157. package/dist/context/feedback.js.map +1 -0
  158. package/dist/context/ranking.d.ts +98 -0
  159. package/dist/context/ranking.d.ts.map +1 -0
  160. package/dist/context/ranking.js +513 -0
  161. package/dist/context/ranking.js.map +1 -0
  162. package/dist/context/recommendations.d.ts +85 -0
  163. package/dist/context/recommendations.d.ts.map +1 -0
  164. package/dist/context/recommendations.js +342 -0
  165. package/dist/context/recommendations.js.map +1 -0
  166. package/dist/db/adapter.d.ts +25 -0
  167. package/dist/db/adapter.d.ts.map +1 -0
  168. package/dist/db/adapter.js +37 -0
  169. package/dist/db/adapter.js.map +1 -0
  170. package/dist/db/capabilities.d.ts +13 -0
  171. package/dist/db/capabilities.d.ts.map +1 -0
  172. package/dist/db/capabilities.js +25 -0
  173. package/dist/db/capabilities.js.map +1 -0
  174. package/dist/db/connection.d.ts +6 -0
  175. package/dist/db/connection.d.ts.map +1 -0
  176. package/dist/db/connection.js +42 -0
  177. package/dist/db/connection.js.map +1 -0
  178. package/dist/db/migrate.d.ts +9 -0
  179. package/dist/db/migrate.d.ts.map +1 -0
  180. package/dist/db/migrate.js +102 -0
  181. package/dist/db/migrate.js.map +1 -0
  182. package/dist/db/transaction.d.ts +4 -0
  183. package/dist/db/transaction.d.ts.map +1 -0
  184. package/dist/db/transaction.js +39 -0
  185. package/dist/db/transaction.js.map +1 -0
  186. package/dist/errors.d.ts +9 -0
  187. package/dist/errors.d.ts.map +1 -0
  188. package/dist/errors.js +32 -0
  189. package/dist/errors.js.map +1 -0
  190. package/dist/gateway/agent-service.d.ts +69 -0
  191. package/dist/gateway/agent-service.d.ts.map +1 -0
  192. package/dist/gateway/agent-service.js +581 -0
  193. package/dist/gateway/agent-service.js.map +1 -0
  194. package/dist/gateway/checkpoint-service.d.ts +42 -0
  195. package/dist/gateway/checkpoint-service.d.ts.map +1 -0
  196. package/dist/gateway/checkpoint-service.js +295 -0
  197. package/dist/gateway/checkpoint-service.js.map +1 -0
  198. package/dist/knowledge/sources.d.ts +72 -0
  199. package/dist/knowledge/sources.d.ts.map +1 -0
  200. package/dist/knowledge/sources.js +406 -0
  201. package/dist/knowledge/sources.js.map +1 -0
  202. package/dist/ledger/archive.d.ts +50 -0
  203. package/dist/ledger/archive.d.ts.map +1 -0
  204. package/dist/ledger/archive.js +1072 -0
  205. package/dist/ledger/archive.js.map +1 -0
  206. package/dist/ledger/hash.d.ts +22 -0
  207. package/dist/ledger/hash.d.ts.map +1 -0
  208. package/dist/ledger/hash.js +25 -0
  209. package/dist/ledger/hash.js.map +1 -0
  210. package/dist/ledger/maintenance.d.ts +78 -0
  211. package/dist/ledger/maintenance.d.ts.map +1 -0
  212. package/dist/ledger/maintenance.js +683 -0
  213. package/dist/ledger/maintenance.js.map +1 -0
  214. package/dist/ledger/projection.d.ts +37 -0
  215. package/dist/ledger/projection.d.ts.map +1 -0
  216. package/dist/ledger/projection.js +307 -0
  217. package/dist/ledger/projection.js.map +1 -0
  218. package/dist/ledger/promotion.d.ts +28 -0
  219. package/dist/ledger/promotion.d.ts.map +1 -0
  220. package/dist/ledger/promotion.js +308 -0
  221. package/dist/ledger/promotion.js.map +1 -0
  222. package/dist/ledger/query.d.ts +55 -0
  223. package/dist/ledger/query.d.ts.map +1 -0
  224. package/dist/ledger/query.js +321 -0
  225. package/dist/ledger/query.js.map +1 -0
  226. package/dist/ledger/redaction.d.ts +8 -0
  227. package/dist/ledger/redaction.d.ts.map +1 -0
  228. package/dist/ledger/redaction.js +40 -0
  229. package/dist/ledger/redaction.js.map +1 -0
  230. package/dist/ledger/store.d.ts +46 -0
  231. package/dist/ledger/store.d.ts.map +1 -0
  232. package/dist/ledger/store.js +324 -0
  233. package/dist/ledger/store.js.map +1 -0
  234. package/dist/ledger/types.d.ts +119 -0
  235. package/dist/ledger/types.d.ts.map +1 -0
  236. package/dist/ledger/types.js +22 -0
  237. package/dist/ledger/types.js.map +1 -0
  238. package/dist/ledger/validate.d.ts +10 -0
  239. package/dist/ledger/validate.d.ts.map +1 -0
  240. package/dist/ledger/validate.js +183 -0
  241. package/dist/ledger/validate.js.map +1 -0
  242. package/dist/mcp/server.d.ts +9 -0
  243. package/dist/mcp/server.d.ts.map +1 -0
  244. package/dist/mcp/server.js +86 -0
  245. package/dist/mcp/server.js.map +1 -0
  246. package/dist/memory/audit.d.ts +14 -0
  247. package/dist/memory/audit.d.ts.map +1 -0
  248. package/dist/memory/audit.js +16 -0
  249. package/dist/memory/audit.js.map +1 -0
  250. package/dist/memory/entries.d.ts +65 -0
  251. package/dist/memory/entries.d.ts.map +1 -0
  252. package/dist/memory/entries.js +200 -0
  253. package/dist/memory/entries.js.map +1 -0
  254. package/dist/memory/lifecycle.d.ts +29 -0
  255. package/dist/memory/lifecycle.d.ts.map +1 -0
  256. package/dist/memory/lifecycle.js +61 -0
  257. package/dist/memory/lifecycle.js.map +1 -0
  258. package/dist/memory/retrieval.d.ts +44 -0
  259. package/dist/memory/retrieval.d.ts.map +1 -0
  260. package/dist/memory/retrieval.js +174 -0
  261. package/dist/memory/retrieval.js.map +1 -0
  262. package/dist/memory/scoped-memory.d.ts +41 -0
  263. package/dist/memory/scoped-memory.d.ts.map +1 -0
  264. package/dist/memory/scoped-memory.js +65 -0
  265. package/dist/memory/scoped-memory.js.map +1 -0
  266. package/dist/memory/secrets.d.ts +6 -0
  267. package/dist/memory/secrets.d.ts.map +1 -0
  268. package/dist/memory/secrets.js +17 -0
  269. package/dist/memory/secrets.js.map +1 -0
  270. package/dist/memory/workspaces.d.ts +17 -0
  271. package/dist/memory/workspaces.d.ts.map +1 -0
  272. package/dist/memory/workspaces.js +92 -0
  273. package/dist/memory/workspaces.js.map +1 -0
  274. package/dist/repository/binding.d.ts +19 -0
  275. package/dist/repository/binding.d.ts.map +1 -0
  276. package/dist/repository/binding.js +78 -0
  277. package/dist/repository/binding.js.map +1 -0
  278. package/dist/repository/detect-root.d.ts +12 -0
  279. package/dist/repository/detect-root.d.ts.map +1 -0
  280. package/dist/repository/detect-root.js +57 -0
  281. package/dist/repository/detect-root.js.map +1 -0
  282. package/dist/repository/git-origin.d.ts +2 -0
  283. package/dist/repository/git-origin.d.ts.map +1 -0
  284. package/dist/repository/git-origin.js +15 -0
  285. package/dist/repository/git-origin.js.map +1 -0
  286. package/dist/repository/identity.d.ts +19 -0
  287. package/dist/repository/identity.d.ts.map +1 -0
  288. package/dist/repository/identity.js +23 -0
  289. package/dist/repository/identity.js.map +1 -0
  290. package/dist/repository/remote-url.d.ts +4 -0
  291. package/dist/repository/remote-url.d.ts.map +1 -0
  292. package/dist/repository/remote-url.js +36 -0
  293. package/dist/repository/remote-url.js.map +1 -0
  294. package/dist/security/sanitize.d.ts +4 -0
  295. package/dist/security/sanitize.d.ts.map +1 -0
  296. package/dist/security/sanitize.js +174 -0
  297. package/dist/security/sanitize.js.map +1 -0
  298. package/dist/serialization/envelope.d.ts +20 -0
  299. package/dist/serialization/envelope.d.ts.map +1 -0
  300. package/dist/serialization/envelope.js +11 -0
  301. package/dist/serialization/envelope.js.map +1 -0
  302. package/dist/serialization/validate.d.ts +31 -0
  303. package/dist/serialization/validate.d.ts.map +1 -0
  304. package/dist/serialization/validate.js +168 -0
  305. package/dist/serialization/validate.js.map +1 -0
  306. package/dist/server/agent-application.d.ts +6 -0
  307. package/dist/server/agent-application.d.ts.map +1 -0
  308. package/dist/server/agent-application.js +60 -0
  309. package/dist/server/agent-application.js.map +1 -0
  310. package/dist/server/app.d.ts +5 -0
  311. package/dist/server/app.d.ts.map +1 -0
  312. package/dist/server/app.js +87 -0
  313. package/dist/server/app.js.map +1 -0
  314. package/dist/server/auth.d.ts +2 -0
  315. package/dist/server/auth.d.ts.map +1 -0
  316. package/dist/server/auth.js +22 -0
  317. package/dist/server/auth.js.map +1 -0
  318. package/dist/server/http.d.ts +69 -0
  319. package/dist/server/http.d.ts.map +1 -0
  320. package/dist/server/http.js +349 -0
  321. package/dist/server/http.js.map +1 -0
  322. package/dist/server/idempotency.d.ts +12 -0
  323. package/dist/server/idempotency.d.ts.map +1 -0
  324. package/dist/server/idempotency.js +210 -0
  325. package/dist/server/idempotency.js.map +1 -0
  326. package/dist/server/instance-lock.d.ts +17 -0
  327. package/dist/server/instance-lock.d.ts.map +1 -0
  328. package/dist/server/instance-lock.js +118 -0
  329. package/dist/server/instance-lock.js.map +1 -0
  330. package/dist/server/router.d.ts +29 -0
  331. package/dist/server/router.d.ts.map +1 -0
  332. package/dist/server/router.js +112 -0
  333. package/dist/server/router.js.map +1 -0
  334. package/dist/server/routes/agent-events.d.ts +5 -0
  335. package/dist/server/routes/agent-events.d.ts.map +1 -0
  336. package/dist/server/routes/agent-events.js +46 -0
  337. package/dist/server/routes/agent-events.js.map +1 -0
  338. package/dist/server/routes/agent-intake.d.ts +5 -0
  339. package/dist/server/routes/agent-intake.d.ts.map +1 -0
  340. package/dist/server/routes/agent-intake.js +42 -0
  341. package/dist/server/routes/agent-intake.js.map +1 -0
  342. package/dist/server/routes/agent-promotions.d.ts +5 -0
  343. package/dist/server/routes/agent-promotions.d.ts.map +1 -0
  344. package/dist/server/routes/agent-promotions.js +52 -0
  345. package/dist/server/routes/agent-promotions.js.map +1 -0
  346. package/dist/server/routes/agent-runs.d.ts +25 -0
  347. package/dist/server/routes/agent-runs.d.ts.map +1 -0
  348. package/dist/server/routes/agent-runs.js +151 -0
  349. package/dist/server/routes/agent-runs.js.map +1 -0
  350. package/dist/server/routes/task5-support.d.ts +11 -0
  351. package/dist/server/routes/task5-support.d.ts.map +1 -0
  352. package/dist/server/routes/task5-support.js +22 -0
  353. package/dist/server/routes/task5-support.js.map +1 -0
  354. package/dist/server/routes/task5.d.ts +5 -0
  355. package/dist/server/routes/task5.d.ts.map +1 -0
  356. package/dist/server/routes/task5.js +72 -0
  357. package/dist/server/routes/task5.js.map +1 -0
  358. package/dist/server/runtime-descriptor.d.ts +24 -0
  359. package/dist/server/runtime-descriptor.d.ts.map +1 -0
  360. package/dist/server/runtime-descriptor.js +156 -0
  361. package/dist/server/runtime-descriptor.js.map +1 -0
  362. package/dist/server/write-queue.d.ts +20 -0
  363. package/dist/server/write-queue.d.ts.map +1 -0
  364. package/dist/server/write-queue.js +83 -0
  365. package/dist/server/write-queue.js.map +1 -0
  366. package/dist/setup/managed-text.d.ts +6 -0
  367. package/dist/setup/managed-text.d.ts.map +1 -0
  368. package/dist/setup/managed-text.js +42 -0
  369. package/dist/setup/managed-text.js.map +1 -0
  370. package/dist/setup/opencode-config.d.ts +3 -0
  371. package/dist/setup/opencode-config.d.ts.map +1 -0
  372. package/dist/setup/opencode-config.js +26 -0
  373. package/dist/setup/opencode-config.js.map +1 -0
  374. package/dist/setup/render.d.ts +8 -0
  375. package/dist/setup/render.d.ts.map +1 -0
  376. package/dist/setup/render.js +45 -0
  377. package/dist/setup/render.js.map +1 -0
  378. package/dist/web/server.d.ts +16 -0
  379. package/dist/web/server.d.ts.map +1 -0
  380. package/dist/web/server.js +424 -0
  381. package/dist/web/server.js.map +1 -0
  382. package/dist/web/ui.d.ts +2 -0
  383. package/dist/web/ui.d.ts.map +1 -0
  384. package/dist/web/ui.js +271 -0
  385. package/dist/web/ui.js.map +1 -0
  386. package/migrations/001_initial.sql +89 -0
  387. package/migrations/002_fts.sql +66 -0
  388. package/migrations/003_akinator.sql +30 -0
  389. package/migrations/004_agent_gateway.sql +259 -0
  390. package/package.json +45 -0
  391. package/templates/AGENTS.md +29 -0
@@ -0,0 +1,437 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { KiokukoError } from '../errors.js';
3
+ import { readAkinatorSession, readRunIntakeLink } from '../akinator/store.js';
4
+ import { listContextDeliveries, readContextDelivery, recordContextDelivery } from './delivery.js';
5
+ import { listContextFeedback } from './feedback.js';
6
+ import { buildRecommendations, RECOMMENDATION_POLICY_VERSION } from './recommendations.js';
7
+ import { CONTEXT_RANKING_VERSION, rankContextCandidates } from './ranking.js';
8
+ import { searchEntries } from '../memory/retrieval.js';
9
+ import { projectLedger } from '../ledger/projection.js';
10
+ import { LedgerStore } from '../ledger/store.js';
11
+ import { prepareOfficialSourceSync, persistOfficialSourceSync } from '../knowledge/sources.js';
12
+ import { canonicalContentHash } from '../serialization/validate.js';
13
+ export const CONTEXT_BROKER_POLICY_VERSION = `${CONTEXT_RANKING_VERSION}+${RECOMMENDATION_POLICY_VERSION}`;
14
+ export const CONTEXT_BROKER_DEFAULT_LIMIT = 20;
15
+ export const CONTEXT_BROKER_MAX_LIMIT = 100;
16
+ export const CONTEXT_BROKER_DEFAULT_CHARACTER_BUDGET = 8_000;
17
+ export const CONTEXT_BROKER_MAX_CHARACTER_BUDGET = 100_000;
18
+ function invalid() {
19
+ throw new KiokukoError('VALIDATION_ERROR', 'Context query input is invalid');
20
+ }
21
+ function notFound() {
22
+ throw new KiokukoError('NOT_FOUND', 'Context run was not found');
23
+ }
24
+ function isTaskProfile(value) {
25
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
26
+ return false;
27
+ const profile = value;
28
+ return Object.keys(profile).length === 4
29
+ && ['taskType', 'target', 'expected', 'constraints'].every((field) => Object.hasOwn(profile, field))
30
+ && (profile.taskType === null || ['build', 'debug', 'research', 'review', 'devops', 'writing', 'analysis'].includes(String(profile.taskType)))
31
+ && ['target', 'expected', 'constraints'].every((field) => profile[field] === null || typeof profile[field] === 'string');
32
+ }
33
+ function boundedStringArray(value, max) {
34
+ if (value === undefined)
35
+ return [];
36
+ if (!Array.isArray(value) || value.length > max || value.some((item) => typeof item !== 'string' || item.length === 0 || item.length > 2_000))
37
+ invalid();
38
+ return [...new Set(value)].sort();
39
+ }
40
+ function normalizeInput(input) {
41
+ if (typeof input !== 'object' || input === null || Array.isArray(input))
42
+ invalid();
43
+ const value = input;
44
+ const allowed = new Set(['apiVersion', 'workspace', 'runId', 'task', 'taskProfile', 'recommendedTags', 'changedPaths', 'errorSignatures', 'limit', 'characterBudget']);
45
+ if (Object.keys(value).some((key) => !allowed.has(key)))
46
+ invalid();
47
+ if (value.apiVersion !== undefined && value.apiVersion !== '1')
48
+ invalid();
49
+ if (value.workspace !== undefined && (typeof value.workspace !== 'string' || value.workspace.length === 0 || value.workspace.length > 256))
50
+ invalid();
51
+ if (value.runId === undefined && value.workspace === undefined)
52
+ invalid();
53
+ if (value.runId !== undefined && (typeof value.runId !== 'string' || value.runId.length === 0 || value.runId.length > 256))
54
+ invalid();
55
+ if (value.task !== undefined && (typeof value.task !== 'string' || value.task.length > 16_384))
56
+ invalid();
57
+ if (value.taskProfile !== undefined && !isTaskProfile(value.taskProfile))
58
+ invalid();
59
+ if (value.limit !== undefined && (typeof value.limit !== 'number' || !Number.isSafeInteger(value.limit) || value.limit < 1 || value.limit > CONTEXT_BROKER_MAX_LIMIT))
60
+ invalid();
61
+ if (value.characterBudget !== undefined && (typeof value.characterBudget !== 'number' || !Number.isSafeInteger(value.characterBudget) || value.characterBudget < 1 || value.characterBudget > CONTEXT_BROKER_MAX_CHARACTER_BUDGET))
62
+ invalid();
63
+ return {
64
+ ...(value.workspace === undefined ? {} : { workspace: value.workspace }),
65
+ ...(value.runId === undefined ? {} : { runId: value.runId }),
66
+ ...(value.task === undefined ? {} : { task: value.task }),
67
+ ...(value.taskProfile === undefined ? {} : { taskProfile: value.taskProfile }),
68
+ recommendedTags: boundedStringArray(value.recommendedTags, 500),
69
+ changedPaths: boundedStringArray(value.changedPaths, 500),
70
+ errorSignatures: boundedStringArray(value.errorSignatures, 500),
71
+ ...(value.limit === undefined ? {} : { limit: value.limit }),
72
+ ...(value.characterBudget === undefined ? {} : { characterBudget: value.characterBudget }),
73
+ };
74
+ }
75
+ function parseEventRows(store, runId) {
76
+ return store.readEvents(runId).map((row) => {
77
+ let payload;
78
+ try {
79
+ payload = JSON.parse(String(row.payload_json));
80
+ }
81
+ catch {
82
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored ledger payload is invalid');
83
+ }
84
+ const snapshot = {
85
+ eventId: String(row.event_id),
86
+ sequence: Number(row.sequence),
87
+ eventType: row.event_type,
88
+ ...(row.outcome === null ? {} : { outcome: row.outcome }),
89
+ ...(payload === undefined ? {} : { payload: payload }),
90
+ };
91
+ return snapshot;
92
+ });
93
+ }
94
+ function currentRunContext(database, runId) {
95
+ const run = new LedgerStore(database).readRun(runId);
96
+ if (!run)
97
+ notFound();
98
+ const link = readRunIntakeLink(database, { workspace: run.workspace, runId });
99
+ const session = readAkinatorSession(database, { workspace: run.workspace, sessionId: link.sessionId });
100
+ const status = session.status;
101
+ if (status === 'active') {
102
+ return {
103
+ run,
104
+ profile: session.profile,
105
+ profileHash: link.initialProfileHash ?? canonicalContentHash(session.profile),
106
+ recommendedTags: [...link.recommendedTags],
107
+ intakeSessionId: link.sessionId,
108
+ intakeStatus: status,
109
+ projection: null,
110
+ };
111
+ }
112
+ const projection = projectLedger({
113
+ initialProfile: session.profile,
114
+ intakeStatus: status,
115
+ coverage: run.coverage,
116
+ throughSequence: run.lastSequence,
117
+ events: parseEventRows(new LedgerStore(database), runId),
118
+ });
119
+ return {
120
+ run,
121
+ profile: projection.taskProfile,
122
+ profileHash: projection.profileHash,
123
+ recommendedTags: [...link.recommendedTags],
124
+ intakeSessionId: link.sessionId,
125
+ intakeStatus: status,
126
+ projection,
127
+ };
128
+ }
129
+ function preparedQuery(database, input) {
130
+ const runContext = input.runId === undefined ? null : currentRunContext(database, input.runId);
131
+ const requestedWorkspace = input.workspace ?? 'run-bound';
132
+ const profile = runContext?.profile ?? input.taskProfile;
133
+ if (profile === undefined || !isTaskProfile(profile))
134
+ invalid();
135
+ const task = runContext?.run.title ?? input.task ?? [profile.target, profile.expected, profile.constraints].filter((value) => value !== null).join(' ');
136
+ const throughSequence = runContext?.run.lastSequence ?? 0;
137
+ const taskProfileHash = runContext?.profileHash ?? canonicalContentHash(profile);
138
+ const recommendedTags = runContext?.recommendedTags ?? input.recommendedTags ?? [];
139
+ const queryShape = {
140
+ runId: input.runId ?? null,
141
+ workspace: input.runId === undefined ? requestedWorkspace : null,
142
+ task,
143
+ taskProfile: profile,
144
+ recommendedTags: [...recommendedTags].sort(),
145
+ changedPaths: input.changedPaths ?? [],
146
+ errorSignatures: input.errorSignatures ?? [],
147
+ throughSequence,
148
+ characterBudget: input.characterBudget ?? CONTEXT_BROKER_DEFAULT_CHARACTER_BUDGET,
149
+ limit: input.limit ?? CONTEXT_BROKER_DEFAULT_LIMIT,
150
+ };
151
+ const queryHash = canonicalContentHash(queryShape);
152
+ return {
153
+ workspace: runContext?.run.workspace ?? requestedWorkspace,
154
+ run: runContext?.run ?? null,
155
+ taskProfile: profile,
156
+ profileHash: taskProfileHash,
157
+ recommendedTags,
158
+ changedPaths: input.changedPaths ?? [],
159
+ errorSignatures: input.errorSignatures ?? [],
160
+ task,
161
+ limit: input.limit ?? CONTEXT_BROKER_DEFAULT_LIMIT,
162
+ characterBudget: input.characterBudget ?? CONTEXT_BROKER_DEFAULT_CHARACTER_BUDGET,
163
+ throughSequence,
164
+ intakeSessionId: runContext?.intakeSessionId ?? null,
165
+ projection: runContext?.projection ?? null,
166
+ runStatus: runContext === null ? 'unbound' : runContext.intakeStatus === 'active' ? 'needs_answer' : runContext.intakeStatus,
167
+ queryHash,
168
+ deliveryId: input.runId === undefined ? null : `context-${queryHash}`,
169
+ };
170
+ }
171
+ function entrySnapshot(entry) {
172
+ return {
173
+ id: entry.id,
174
+ revision: entry.revision,
175
+ kind: entry.kind,
176
+ status: entry.status,
177
+ trustLevel: entry.trustLevel,
178
+ confidence: entry.confidence,
179
+ title: entry.title,
180
+ summary: entry.summary,
181
+ body: entry.body,
182
+ tags: [...entry.tags],
183
+ scope: entry.scope,
184
+ updatedAt: entry.updatedAt,
185
+ };
186
+ }
187
+ function retrievalQuery(query) {
188
+ const values = [query.task, query.taskProfile.target, query.taskProfile.expected, ...query.recommendedTags].filter((value) => value !== null && value.length > 0);
189
+ return values.join(' ').slice(0, 16_384) || 'kiokuko';
190
+ }
191
+ function retrieveEntries(database, query) {
192
+ const terms = [query.task, query.taskProfile.target, query.taskProfile.expected, ...query.recommendedTags]
193
+ .filter((value) => value !== null && value.length > 0)
194
+ .map((value) => value.slice(0, 2_000));
195
+ const queries = [retrievalQuery(query), ...terms];
196
+ const entries = new Map();
197
+ for (const value of queries) {
198
+ for (const entry of searchEntries(database, { workspace: query.workspace, query: value, limit: 500, includeSuperseded: false }).items) {
199
+ entries.set(entry.id, entry);
200
+ }
201
+ }
202
+ return [...entries.values()];
203
+ }
204
+ function priorData(database, query) {
205
+ if (query.run === null)
206
+ return { delivered: [], feedback: [], stale: [] };
207
+ const deliveries = [];
208
+ let cursor;
209
+ for (let page = 0; page < 10; page += 1) {
210
+ const result = listContextDeliveries(database, { workspace: query.workspace, runId: query.run.runId, limit: 100, ...(cursor === undefined ? {} : { cursor }) });
211
+ deliveries.push(...result.items);
212
+ if (result.nextCursor === null)
213
+ break;
214
+ cursor = result.nextCursor;
215
+ }
216
+ const delivered = deliveries.flatMap((delivery) => delivery.items.map((item) => ({ entryId: item.entryId, revision: item.entryRevision })));
217
+ const feedbackPage = listContextFeedback(database, { workspace: query.workspace, runId: query.run.runId, limit: 100 });
218
+ const feedback = feedbackPage.records.map((record) => ({ entryId: record.entryId, verdict: record.verdict }));
219
+ const stale = deliveries.flatMap((delivery) => delivery.items.flatMap((item) => {
220
+ const current = database.prepare('SELECT revision FROM entries WHERE id = ? AND workspace = ?').get(item.entryId, query.workspace);
221
+ return current && current.revision > item.entryRevision ? [{ entryId: item.entryId, deliveredRevision: item.entryRevision, currentRevision: current.revision, stale: true }] : [];
222
+ }));
223
+ return { delivered, feedback, stale };
224
+ }
225
+ function rank(database, query, prior) {
226
+ const entries = retrieveEntries(database, query);
227
+ return rankContextCandidates({
228
+ taskProfile: query.taskProfile,
229
+ recommendedTags: query.recommendedTags,
230
+ changedPaths: query.changedPaths,
231
+ errorSignatures: query.errorSignatures,
232
+ priorDelivered: prior.delivered,
233
+ feedback: prior.feedback,
234
+ candidates: entries.map(entrySnapshot),
235
+ limit: query.limit,
236
+ characterBudget: query.characterBudget,
237
+ });
238
+ }
239
+ function outputContext(query, items, delivery) {
240
+ const sourceItems = items.map((item, index) => ({
241
+ entryId: item.entryId,
242
+ entryRevision: item.revision,
243
+ rank: index + 1,
244
+ scoreComponents: item.scoreComponents,
245
+ selectionReasons: [...item.selectionReasons],
246
+ content: item.content,
247
+ untrusted: true,
248
+ }));
249
+ return {
250
+ deliveryId: delivery?.deliveryId ?? query.deliveryId,
251
+ runId: query.run?.runId ?? null,
252
+ throughSequence: query.throughSequence,
253
+ taskProfileHash: query.profileHash,
254
+ queryHash: query.queryHash,
255
+ policyVersion: CONTEXT_BROKER_POLICY_VERSION,
256
+ items: sourceItems,
257
+ untrusted: true,
258
+ };
259
+ }
260
+ function deliveryInput(query, ranked, summary) {
261
+ const items = ranked.map((item, index) => ({
262
+ entryId: item.entryId,
263
+ entryRevision: item.revision,
264
+ rank: index + 1,
265
+ scoreComponents: item.scoreComponents,
266
+ selectionReasons: [...item.selectionReasons],
267
+ }));
268
+ const charCount = ranked.reduce((sum, item) => sum + item.content.characterCount, 0);
269
+ const truncated = ranked.some((item) => item.content.truncated);
270
+ return {
271
+ workspace: query.workspace,
272
+ deliveryId: query.deliveryId,
273
+ runId: query.run?.runId,
274
+ throughSequence: query.throughSequence,
275
+ intakeSessionId: query.intakeSessionId,
276
+ taskProfileHash: query.profileHash,
277
+ queryHash: query.queryHash,
278
+ policyVersion: CONTEXT_BROKER_POLICY_VERSION,
279
+ externalSyncSummary: summary,
280
+ charBudget: query.characterBudget,
281
+ charCount,
282
+ truncated,
283
+ createdAt: query.run?.updatedAt ?? new Date().toISOString(),
284
+ items,
285
+ };
286
+ }
287
+ function emptyExternalSummary() {
288
+ return { attempted: false, imported: 0, sources: [] };
289
+ }
290
+ function storedContext(database, query, delivery) {
291
+ let remaining = query.characterBudget;
292
+ const items = delivery.items.map((item) => {
293
+ const entry = database.prepare('SELECT id, revision, title, summary, body FROM entries WHERE id = ? AND workspace = ?').get(item.entryId, query.workspace);
294
+ if (!entry)
295
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry is missing');
296
+ const take = (value, budget) => Array.from(value).slice(0, Math.max(0, budget)).join('');
297
+ const count = (value) => Array.from(value).length;
298
+ const title = take(entry.title, remaining);
299
+ remaining -= count(title);
300
+ const summary = entry.summary === null ? null : take(entry.summary, remaining);
301
+ remaining -= count(summary ?? '');
302
+ const bodyPreview = take(entry.body, remaining);
303
+ remaining -= count(bodyPreview);
304
+ return {
305
+ entryId: item.entryId,
306
+ entryRevision: item.entryRevision,
307
+ rank: item.rank,
308
+ scoreComponents: item.scoreComponents,
309
+ selectionReasons: [...item.selectionReasons],
310
+ content: {
311
+ title,
312
+ summary,
313
+ bodyPreview,
314
+ characterCount: title.length + (summary?.length ?? 0) + bodyPreview.length,
315
+ truncated: title.length < entry.title.length || (entry.summary !== null && summary?.length !== entry.summary.length) || bodyPreview.length < entry.body.length,
316
+ },
317
+ untrusted: true,
318
+ };
319
+ });
320
+ return {
321
+ deliveryId: delivery.deliveryId,
322
+ runId: delivery.runId,
323
+ throughSequence: delivery.throughSequence,
324
+ taskProfileHash: delivery.taskProfileHash,
325
+ queryHash: delivery.queryHash,
326
+ policyVersion: delivery.policyVersion,
327
+ items,
328
+ untrusted: true,
329
+ };
330
+ }
331
+ export class ContextBroker {
332
+ database;
333
+ options;
334
+ inFlight = new Map();
335
+ constructor(database, options = {}) {
336
+ this.database = database;
337
+ this.options = options;
338
+ }
339
+ listDeliveries(input) {
340
+ const context = currentRunContext(this.database, input.runId);
341
+ return {
342
+ ...listContextDeliveries(this.database, {
343
+ workspace: context.run.workspace,
344
+ runId: input.runId,
345
+ ...(input.cursor === undefined ? {} : { cursor: input.cursor }),
346
+ ...(input.limit === undefined ? {} : { limit: input.limit }),
347
+ }),
348
+ untrusted: true,
349
+ };
350
+ }
351
+ async query(rawInput, persistence = {}) {
352
+ const input = normalizeInput(rawInput);
353
+ const query = preparedQuery(this.database, input);
354
+ const previous = this.inFlight.get(query.queryHash);
355
+ if (previous !== undefined)
356
+ return previous;
357
+ const operation = this.queryPrepared(query, persistence);
358
+ this.inFlight.set(query.queryHash, operation);
359
+ try {
360
+ return await operation;
361
+ }
362
+ finally {
363
+ if (this.inFlight.get(query.queryHash) === operation)
364
+ this.inFlight.delete(query.queryHash);
365
+ }
366
+ }
367
+ async queryPrepared(query, persistence) {
368
+ const base = {
369
+ status: query.runStatus,
370
+ taskProfile: { ...query.taskProfile },
371
+ profileHash: query.profileHash,
372
+ acceptedThrough: query.throughSequence,
373
+ intakeSessionId: query.intakeSessionId,
374
+ recommendedTags: [...query.recommendedTags],
375
+ projection: query.projection,
376
+ context: null,
377
+ recommendations: query.projection === null ? [] : buildRecommendations({ projection: query.projection, broker: {} }),
378
+ externalSyncSummary: emptyExternalSummary(),
379
+ };
380
+ if (query.runStatus === 'needs_answer')
381
+ return base;
382
+ const prior = priorData(this.database, query);
383
+ const existing = query.deliveryId === null ? null : (() => {
384
+ try {
385
+ return readContextDelivery(this.database, { workspace: query.workspace, deliveryId: query.deliveryId });
386
+ }
387
+ catch (error) {
388
+ if (error instanceof KiokukoError && error.code === 'NOT_FOUND')
389
+ return null;
390
+ throw error;
391
+ }
392
+ })();
393
+ if (existing) {
394
+ return {
395
+ ...base,
396
+ context: storedContext(this.database, query, existing),
397
+ externalSyncSummary: existing.externalSyncSummary,
398
+ recommendations: query.projection === null ? [] : buildRecommendations({ projection: query.projection, broker: { staleDeliveredEntries: prior.stale } }),
399
+ };
400
+ }
401
+ let ranked = rank(this.database, query, prior);
402
+ let externalSyncSummary = emptyExternalSummary();
403
+ if (ranked.length < query.limit && query.taskProfile !== undefined) {
404
+ const prepared = await prepareOfficialSourceSync({
405
+ workspace: query.workspace,
406
+ task: query.task,
407
+ profile: query.taskProfile,
408
+ recommendedTags: query.recommendedTags,
409
+ ...(this.options.fetchImpl === undefined ? {} : { fetchImpl: this.options.fetchImpl }),
410
+ });
411
+ const result = persistence.persistSources === undefined
412
+ ? persistOfficialSourceSync(this.database, { workspace: query.workspace, prepared })
413
+ : await persistence.persistSources(query.workspace, prepared);
414
+ externalSyncSummary = { attempted: result.attempted, imported: result.imported, sources: result.sources };
415
+ ranked = rank(this.database, query, priorData(this.database, query));
416
+ }
417
+ const recommendations = query.projection === null
418
+ ? []
419
+ : buildRecommendations({ projection: query.projection, broker: { staleDeliveredEntries: prior.stale } });
420
+ const context = outputContext(query, ranked, null);
421
+ if (query.deliveryId === null || query.run === null) {
422
+ return { ...base, context, recommendations, externalSyncSummary };
423
+ }
424
+ const deliveryRequest = deliveryInput(query, ranked, externalSyncSummary);
425
+ const delivery = persistence.persistDelivery === undefined
426
+ ? recordContextDelivery(this.database, deliveryRequest)
427
+ : await persistence.persistDelivery(deliveryRequest);
428
+ return { ...base, context: outputContext(query, ranked, delivery), recommendations, externalSyncSummary };
429
+ }
430
+ }
431
+ export function contextBrokerQueryHash(input) {
432
+ return createHash('sha256').update(JSON.stringify(input), 'utf8').digest('hex');
433
+ }
434
+ export function newContextDeliveryId() {
435
+ return `context-${randomUUID()}`;
436
+ }
437
+ //# sourceMappingURL=broker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/context/broker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { SqliteDatabase } from '../db/adapter.js';
2
+ import { type ContextRankingComponent } from './ranking.js';
3
+ export type ContextDeliveryScoreComponents = {
4
+ [Component in ContextRankingComponent]: number;
5
+ };
6
+ export interface ContextDeliveryItemInput {
7
+ entryId: string;
8
+ entryRevision: number;
9
+ rank: number;
10
+ scoreComponents: ContextDeliveryScoreComponents;
11
+ selectionReasons: string[];
12
+ }
13
+ export interface ExternalSyncSourceSummary {
14
+ sourceId: string;
15
+ commit: string | null;
16
+ documents: number;
17
+ imported: number;
18
+ error?: string;
19
+ }
20
+ export interface ExternalSyncSummary {
21
+ attempted: boolean;
22
+ imported: number;
23
+ sources: ExternalSyncSourceSummary[];
24
+ }
25
+ export interface ContextDeliveryInput {
26
+ workspace: string;
27
+ deliveryId: string;
28
+ runId: string;
29
+ throughSequence: number;
30
+ intakeSessionId: string | null;
31
+ taskProfileHash: string;
32
+ queryHash: string;
33
+ policyVersion: string;
34
+ externalSyncSummary: ExternalSyncSummary;
35
+ charBudget: number;
36
+ charCount: number;
37
+ truncated: boolean;
38
+ createdAt: string;
39
+ items: ContextDeliveryItemInput[];
40
+ }
41
+ export interface ContextDeliveryItemView extends ContextDeliveryItemInput {
42
+ untrusted: true;
43
+ }
44
+ export interface ContextDeliveryView extends Omit<ContextDeliveryInput, 'items'> {
45
+ items: ContextDeliveryItemView[];
46
+ untrusted: true;
47
+ }
48
+ export interface ReadContextDeliveryInput {
49
+ workspace: string;
50
+ deliveryId: string;
51
+ }
52
+ export interface ListContextDeliveriesInput {
53
+ workspace: string;
54
+ runId: string;
55
+ cursor?: string;
56
+ limit?: number;
57
+ }
58
+ export interface ContextDeliveryPage {
59
+ items: ContextDeliveryView[];
60
+ nextCursor: string | null;
61
+ }
62
+ export declare function recordContextDeliveryInTransaction(database: SqliteDatabase, input: unknown): ContextDeliveryView;
63
+ export declare function recordContextDelivery(database: SqliteDatabase, input: unknown): ContextDeliveryView;
64
+ export declare function readContextDelivery(database: SqliteDatabase, input: unknown): ContextDeliveryView;
65
+ export declare function listContextDeliveries(database: SqliteDatabase, input: unknown): ContextDeliveryPage;
66
+ //# sourceMappingURL=delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/context/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAA8D,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAqBxH,MAAM,MAAM,8BAA8B,GAAG;KAAG,SAAS,IAAI,uBAAuB,GAAG,MAAM;CAAE,CAAC;AAEhG,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,8BAA8B,CAAC;IAChD,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,wBAAwB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;IAC9E,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AA+pBD,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAOhH;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAOnG;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAOjG;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CA6CnG"}