libre-webui 0.36.0 → 0.37.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 (379) hide show
  1. package/README.md +59 -0
  2. package/backend/dist/cordis/contracts.d.ts +270 -0
  3. package/backend/dist/cordis/contracts.d.ts.map +1 -0
  4. package/backend/dist/cordis/contracts.js +32 -0
  5. package/backend/dist/cordis/contracts.js.map +1 -0
  6. package/backend/dist/cordis/dsh/chat-model.d.ts +16 -0
  7. package/backend/dist/cordis/dsh/chat-model.d.ts.map +1 -0
  8. package/backend/dist/cordis/dsh/chat-model.js +104 -0
  9. package/backend/dist/cordis/dsh/chat-model.js.map +1 -0
  10. package/backend/dist/cordis/dsh/engine-plugin.d.ts +186 -0
  11. package/backend/dist/cordis/dsh/engine-plugin.d.ts.map +1 -0
  12. package/backend/dist/cordis/dsh/engine-plugin.js +1116 -0
  13. package/backend/dist/cordis/dsh/engine-plugin.js.map +1 -0
  14. package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts +175 -0
  15. package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts.map +1 -0
  16. package/backend/dist/cordis/dsh/librewebui-llm-adapter.js +480 -0
  17. package/backend/dist/cordis/dsh/librewebui-llm-adapter.js.map +1 -0
  18. package/backend/dist/cordis/dsh/model-identity.d.ts +12 -0
  19. package/backend/dist/cordis/dsh/model-identity.d.ts.map +1 -0
  20. package/backend/dist/cordis/dsh/model-identity.js +87 -0
  21. package/backend/dist/cordis/dsh/model-identity.js.map +1 -0
  22. package/backend/dist/cordis/dsh/native-provider-client.d.ts +44 -0
  23. package/backend/dist/cordis/dsh/native-provider-client.d.ts.map +1 -0
  24. package/backend/dist/cordis/dsh/native-provider-client.js +524 -0
  25. package/backend/dist/cordis/dsh/native-provider-client.js.map +1 -0
  26. package/backend/dist/cordis/dsh/native-provider-plugin.d.ts +11 -0
  27. package/backend/dist/cordis/dsh/native-provider-plugin.d.ts.map +1 -0
  28. package/backend/dist/cordis/dsh/native-provider-plugin.js +416 -0
  29. package/backend/dist/cordis/dsh/native-provider-plugin.js.map +1 -0
  30. package/backend/dist/cordis/dsh/native-provider-protocol.d.ts +37 -0
  31. package/backend/dist/cordis/dsh/native-provider-protocol.d.ts.map +1 -0
  32. package/backend/dist/cordis/dsh/native-provider-protocol.js +325 -0
  33. package/backend/dist/cordis/dsh/native-provider-protocol.js.map +1 -0
  34. package/backend/dist/cordis/dsh/provider-handler.d.ts +36 -0
  35. package/backend/dist/cordis/dsh/provider-handler.d.ts.map +1 -0
  36. package/backend/dist/cordis/dsh/provider-handler.js +582 -0
  37. package/backend/dist/cordis/dsh/provider-handler.js.map +1 -0
  38. package/backend/dist/cordis/dsh/session-files.d.ts +9 -0
  39. package/backend/dist/cordis/dsh/session-files.d.ts.map +1 -0
  40. package/backend/dist/cordis/dsh/session-files.js +60 -0
  41. package/backend/dist/cordis/dsh/session-files.js.map +1 -0
  42. package/backend/dist/cordis/dsh/session-settings.d.ts +15 -0
  43. package/backend/dist/cordis/dsh/session-settings.d.ts.map +1 -0
  44. package/backend/dist/cordis/dsh/session-settings.js +51 -0
  45. package/backend/dist/cordis/dsh/session-settings.js.map +1 -0
  46. package/backend/dist/cordis/dsh/work-driver.d.ts +12 -0
  47. package/backend/dist/cordis/dsh/work-driver.d.ts.map +1 -0
  48. package/backend/dist/cordis/dsh/work-driver.js +402 -0
  49. package/backend/dist/cordis/dsh/work-driver.js.map +1 -0
  50. package/backend/dist/cordis/dsh/workspace-policy.d.ts +10 -0
  51. package/backend/dist/cordis/dsh/workspace-policy.d.ts.map +1 -0
  52. package/backend/dist/cordis/dsh/workspace-policy.js +44 -0
  53. package/backend/dist/cordis/dsh/workspace-policy.js.map +1 -0
  54. package/backend/dist/cordis/host/composition.d.ts +73 -0
  55. package/backend/dist/cordis/host/composition.d.ts.map +1 -0
  56. package/backend/dist/cordis/host/composition.js +205 -0
  57. package/backend/dist/cordis/host/composition.js.map +1 -0
  58. package/backend/dist/cordis/host/config.d.ts +159 -0
  59. package/backend/dist/cordis/host/config.d.ts.map +1 -0
  60. package/backend/dist/cordis/host/config.js +184 -0
  61. package/backend/dist/cordis/host/config.js.map +1 -0
  62. package/backend/dist/cordis/host/host.d.ts +74 -0
  63. package/backend/dist/cordis/host/host.d.ts.map +1 -0
  64. package/backend/dist/cordis/host/host.js +420 -0
  65. package/backend/dist/cordis/host/host.js.map +1 -0
  66. package/backend/dist/cordis/host/loader-entry.d.ts +41 -0
  67. package/backend/dist/cordis/host/loader-entry.d.ts.map +1 -0
  68. package/backend/dist/cordis/host/loader-entry.js +52 -0
  69. package/backend/dist/cordis/host/loader-entry.js.map +1 -0
  70. package/backend/dist/cordis/host/model.d.ts +45 -0
  71. package/backend/dist/cordis/host/model.d.ts.map +1 -0
  72. package/backend/dist/cordis/host/model.js +54 -0
  73. package/backend/dist/cordis/host/model.js.map +1 -0
  74. package/backend/dist/cordis/host/privacy.d.ts +8 -0
  75. package/backend/dist/cordis/host/privacy.d.ts.map +1 -0
  76. package/backend/dist/cordis/host/privacy.js +73 -0
  77. package/backend/dist/cordis/host/privacy.js.map +1 -0
  78. package/backend/dist/cordis/index.d.ts +14 -0
  79. package/backend/dist/cordis/index.d.ts.map +1 -0
  80. package/backend/dist/cordis/index.js +30 -0
  81. package/backend/dist/cordis/index.js.map +1 -0
  82. package/backend/dist/cordis/runtime.d.ts +97 -0
  83. package/backend/dist/cordis/runtime.d.ts.map +1 -0
  84. package/backend/dist/cordis/runtime.js +231 -0
  85. package/backend/dist/cordis/runtime.js.map +1 -0
  86. package/backend/dist/cordis/work-model.d.ts +7 -0
  87. package/backend/dist/cordis/work-model.d.ts.map +1 -0
  88. package/backend/dist/cordis/work-model.js +30 -0
  89. package/backend/dist/cordis/work-model.js.map +1 -0
  90. package/backend/dist/db.js +1 -1
  91. package/backend/dist/index.d.ts.map +1 -1
  92. package/backend/dist/index.js +9 -0
  93. package/backend/dist/index.js.map +1 -1
  94. package/backend/dist/main.js +12 -0
  95. package/backend/dist/main.js.map +1 -1
  96. package/backend/dist/persistence/extensionTypes.d.ts +2 -0
  97. package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
  98. package/backend/dist/persistence/extensionTypes.js.map +1 -1
  99. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
  100. package/backend/dist/persistence/postgresExtensionRepositories.js +38 -0
  101. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
  102. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  103. package/backend/dist/persistence/postgresResourceRepositories.js +6 -1
  104. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  105. package/backend/dist/persistence/resourceTypes.d.ts +3 -1
  106. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  107. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  108. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  109. package/backend/dist/persistence/sqliteExtensionRepositories.js +40 -0
  110. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  111. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  112. package/backend/dist/persistence/sqliteResourceRepositories.js +7 -1
  113. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  114. package/backend/dist/routes/agentCli.d.ts.map +1 -1
  115. package/backend/dist/routes/agentCli.js +34 -2
  116. package/backend/dist/routes/agentCli.js.map +1 -1
  117. package/backend/dist/routes/chat.d.ts.map +1 -1
  118. package/backend/dist/routes/chat.js +9 -1
  119. package/backend/dist/routes/chat.js.map +1 -1
  120. package/backend/dist/routes/cordis.d.ts +3 -0
  121. package/backend/dist/routes/cordis.d.ts.map +1 -0
  122. package/backend/dist/routes/cordis.js +440 -0
  123. package/backend/dist/routes/cordis.js.map +1 -0
  124. package/backend/dist/routes/libreClaw.js +1 -1
  125. package/backend/dist/routes/libreClaw.js.map +1 -1
  126. package/backend/dist/routes/work.d.ts.map +1 -1
  127. package/backend/dist/routes/work.js +23 -8
  128. package/backend/dist/routes/work.js.map +1 -1
  129. package/backend/dist/services/agentAccessService.d.ts +4 -0
  130. package/backend/dist/services/agentAccessService.d.ts.map +1 -1
  131. package/backend/dist/services/agentAccessService.js +48 -16
  132. package/backend/dist/services/agentAccessService.js.map +1 -1
  133. package/backend/dist/services/agentCliService.d.ts +42 -1
  134. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  135. package/backend/dist/services/agentCliService.js +206 -7
  136. package/backend/dist/services/agentCliService.js.map +1 -1
  137. package/backend/dist/services/agentCliUsage.d.ts +22 -0
  138. package/backend/dist/services/agentCliUsage.d.ts.map +1 -0
  139. package/backend/dist/services/agentCliUsage.js +192 -0
  140. package/backend/dist/services/agentCliUsage.js.map +1 -0
  141. package/backend/dist/services/authService.d.ts +3 -0
  142. package/backend/dist/services/authService.d.ts.map +1 -1
  143. package/backend/dist/services/authService.js +4 -1
  144. package/backend/dist/services/authService.js.map +1 -1
  145. package/backend/dist/services/chatGenerationService.d.ts +7 -0
  146. package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
  147. package/backend/dist/services/chatGenerationService.js +32 -1
  148. package/backend/dist/services/chatGenerationService.js.map +1 -1
  149. package/backend/dist/services/cordisAccessService.d.ts +56 -0
  150. package/backend/dist/services/cordisAccessService.d.ts.map +1 -0
  151. package/backend/dist/services/cordisAccessService.js +98 -0
  152. package/backend/dist/services/cordisAccessService.js.map +1 -0
  153. package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
  154. package/backend/dist/services/durableChatGenerationService.js +9 -1
  155. package/backend/dist/services/durableChatGenerationService.js.map +1 -1
  156. package/backend/dist/services/emailService.d.ts.map +1 -1
  157. package/backend/dist/services/emailService.js +8 -1
  158. package/backend/dist/services/emailService.js.map +1 -1
  159. package/backend/dist/services/pluginService.d.ts.map +1 -1
  160. package/backend/dist/services/pluginService.js +7 -26
  161. package/backend/dist/services/pluginService.js.map +1 -1
  162. package/backend/dist/services/pluginUsageService.d.ts +52 -0
  163. package/backend/dist/services/pluginUsageService.d.ts.map +1 -1
  164. package/backend/dist/services/pluginUsageService.js +89 -1
  165. package/backend/dist/services/pluginUsageService.js.map +1 -1
  166. package/backend/dist/services/systemSettingsService.d.ts +1 -1
  167. package/backend/dist/services/systemSettingsService.d.ts.map +1 -1
  168. package/backend/dist/services/systemSettingsService.js +1 -1
  169. package/backend/dist/services/systemSettingsService.js.map +1 -1
  170. package/backend/dist/services/thinkingSummaryService.d.ts +3 -0
  171. package/backend/dist/services/thinkingSummaryService.d.ts.map +1 -1
  172. package/backend/dist/services/thinkingSummaryService.js +56 -17
  173. package/backend/dist/services/thinkingSummaryService.js.map +1 -1
  174. package/backend/dist/services/titleGenerationService.d.ts +22 -2
  175. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  176. package/backend/dist/services/titleGenerationService.js +63 -8
  177. package/backend/dist/services/titleGenerationService.js.map +1 -1
  178. package/backend/dist/services/workAgentService.d.ts +1 -1
  179. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  180. package/backend/dist/services/workAgentService.js +76 -12
  181. package/backend/dist/services/workAgentService.js.map +1 -1
  182. package/backend/dist/services/workModelProviderService.d.ts +5 -0
  183. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  184. package/backend/dist/services/workModelProviderService.js +52 -3
  185. package/backend/dist/services/workModelProviderService.js.map +1 -1
  186. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  187. package/backend/dist/services/workRuntimeService.js +4 -1
  188. package/backend/dist/services/workRuntimeService.js.map +1 -1
  189. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  190. package/backend/dist/services/workTaskService.js +6 -6
  191. package/backend/dist/services/workTaskService.js.map +1 -1
  192. package/backend/dist/types/work.d.ts +12 -1
  193. package/backend/dist/types/work.d.ts.map +1 -1
  194. package/backend/dist/utils/pluginStreamAdapter.d.ts.map +1 -1
  195. package/backend/dist/utils/pluginStreamAdapter.js +18 -4
  196. package/backend/dist/utils/pluginStreamAdapter.js.map +1 -1
  197. package/backend/dist/utils/pluginStreaming.d.ts +6 -0
  198. package/backend/dist/utils/pluginStreaming.d.ts.map +1 -1
  199. package/backend/dist/utils/pluginStreaming.js +10 -0
  200. package/backend/dist/utils/pluginStreaming.js.map +1 -1
  201. package/backend/dist/utils/smtpClient.d.ts +5 -1
  202. package/backend/dist/utils/smtpClient.d.ts.map +1 -1
  203. package/backend/dist/utils/smtpClient.js +29 -3
  204. package/backend/dist/utils/smtpClient.js.map +1 -1
  205. package/backend/dist/websocketServer.d.ts.map +1 -1
  206. package/backend/dist/websocketServer.js +4 -0
  207. package/backend/dist/websocketServer.js.map +1 -1
  208. package/backend/package.json +37 -2
  209. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  210. package/frontend/dist/artifact-runtime/framer-motion.js +3 -3
  211. package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
  212. package/frontend/dist/artifact-runtime/react.js +5 -5
  213. package/frontend/dist/artifact-runtime/recharts.js +45 -45
  214. package/frontend/dist/assets/index-BrDSO609.js +20 -0
  215. package/frontend/dist/assets/index-C8_AByBq.css +1 -0
  216. package/frontend/dist/index.html +33 -31
  217. package/frontend/dist/js/{ArtifactContainer-B8tyPtWd.js → ArtifactContainer-B1-GVzVf.js} +1 -1
  218. package/frontend/dist/js/{ArtifactDemoPage-BwRfWoSK.js → ArtifactDemoPage-goftRHdk.js} +1 -1
  219. package/frontend/dist/js/{ArtifactSandboxFrame-Ctcwt_l2.js → ArtifactSandboxFrame-_8RA8_JV.js} +1 -1
  220. package/frontend/dist/js/ArtifactSlideOutPanel-DlkOZI5N.js +1 -0
  221. package/frontend/dist/js/{AutomationModal-mTYs9LrJ.js → AutomationModal-BaaxZF1M.js} +1 -1
  222. package/frontend/dist/js/AutomationsPage-DY2x7zVm.js +1 -0
  223. package/frontend/dist/js/{AvatarUpload-wWUAi3e2.js → AvatarUpload-CH_n1Ef0.js} +1 -1
  224. package/frontend/dist/js/{Button-ZQ6BePid.js → Button-CGMYia4g.js} +1 -1
  225. package/frontend/dist/js/{CalendarPage-Ch4racU2.js → CalendarPage-DLo5nm3Q.js} +1 -1
  226. package/frontend/dist/js/ChannelsPage-DnQI7mzq.js +1 -0
  227. package/frontend/dist/js/ChatPage-BaDkJnEC.js +14 -0
  228. package/frontend/dist/js/ConnectModels-B4dGb5yc.js +1 -0
  229. package/frontend/dist/js/CordisPage-CPiYn2Bx.js +1 -0
  230. package/frontend/dist/js/{EvaluationsPage-DHPnNBkW.js → EvaluationsPage-DpdGpd7x.js} +2 -2
  231. package/frontend/dist/js/{FirstTimeSetup-CoF83yY8.js → FirstTimeSetup-By8OE1JS.js} +1 -1
  232. package/frontend/dist/js/GalleryPage-ByZyIhZQ.js +1 -0
  233. package/frontend/dist/js/HomePage-Btc-Mvin.js +1 -0
  234. package/frontend/dist/js/{LanguageSwitcher-CogfczNm.js → LanguageSwitcher-B3CxRW6J.js} +1 -1
  235. package/frontend/dist/js/LibreClawPage-3Sonm1gu.js +1 -0
  236. package/frontend/dist/js/{Logo-C9fsEUaY.js → Logo-HZvdAk2c.js} +1 -1
  237. package/frontend/dist/js/{LogoMark-Cvu5CQOW.js → LogoMark-GJnfMXsk.js} +1 -1
  238. package/frontend/dist/js/{ModelManagerModals-Bc2Woor7.js → ModelManagerModals-Bk6OQzJI.js} +1 -1
  239. package/frontend/dist/js/NotesPage-lFhfjMqJ.js +3 -0
  240. package/frontend/dist/js/{OptimizedSyntaxHighlighter-aKWyHj_c.js → OptimizedSyntaxHighlighter-CzzV6ONG.js} +1 -1
  241. package/frontend/dist/js/OptimizedSyntaxHighlighter-ajqwyBQm.js +1 -0
  242. package/frontend/dist/js/{PasswordStrengthMeter-BJr4eBbo.js → PasswordStrengthMeter-DasfJa4P.js} +1 -1
  243. package/frontend/dist/js/{PersonasPage-ff5opf9B.js → PersonasPage-nOThOpXp.js} +2 -2
  244. package/frontend/dist/js/PluginUsagePage-BRbHeRf7.js +1 -0
  245. package/frontend/dist/js/{RichMessageContent-BNNylVAb.js → RichMessageContent-BZ7KKJKK.js} +2 -2
  246. package/frontend/dist/js/RichMessageContent-oyydJjgc.js +1 -0
  247. package/frontend/dist/js/SettingsModal-VpsAx2Ns.js +19 -0
  248. package/frontend/dist/js/{SettingsToggle-CKLHOUt-.js → SettingsToggle-oxvw7ulA.js} +1 -1
  249. package/frontend/dist/js/{ShareDialog-DykD70uB.js → ShareDialog-CnxPGPb_.js} +1 -1
  250. package/frontend/dist/js/SystemPage-D2ikvhDp.js +1 -0
  251. package/frontend/dist/js/{TurnstileWidget-BO2ceTt8.js → TurnstileWidget-CVepEMEQ.js} +1 -1
  252. package/frontend/dist/js/{UserManagementPage-Ch-PvYQ9.js → UserManagementPage-2yHv89ZA.js} +1 -1
  253. package/frontend/dist/js/UserManagementPanel-vxpiyiTZ.js +1 -0
  254. package/frontend/dist/js/{WhatsNewModal-Bu4H4MEb.js → WhatsNewModal-DAAFzY0d.js} +1 -1
  255. package/frontend/dist/js/WorkPage-BYpYD9mr.js +8 -0
  256. package/frontend/dist/js/api-C0ligMmL.js +1 -0
  257. package/frontend/dist/js/api-CVUaOaq4.js +14 -0
  258. package/frontend/dist/js/{appNavigation-CVsQuDI1.js → appNavigation-CqtrZ9bm.js} +1 -1
  259. package/frontend/dist/js/{appStore-Din-tTD9.js → appStore-Biw63DtJ.js} +2 -2
  260. package/frontend/dist/js/appVersion-D78eXAb-.js +1 -0
  261. package/frontend/dist/js/ar-Cq-DrSYL.js +2 -0
  262. package/frontend/dist/js/authStore-2DsDTcIu.js +1 -0
  263. package/frontend/dist/js/{authStore-Cm8P6rYs.js → authStore-C5qKrmn4.js} +3 -3
  264. package/frontend/dist/js/bn-BqxLh-KL.js +2 -0
  265. package/frontend/dist/js/chatStore-DQhEqb9F.js +3 -0
  266. package/frontend/dist/js/client-gf5bjBrn.js +2 -0
  267. package/frontend/dist/js/composerStyles-C83jssgZ.js +1 -0
  268. package/frontend/dist/js/{config-DHea4b8N.js → config-CNvgxwAm.js} +1 -1
  269. package/frontend/dist/js/cordisApi-BYjA4EOQ.js +2 -0
  270. package/frontend/dist/js/cs-D2DDNZf-.js +2 -0
  271. package/frontend/dist/js/da-BciY-TSG.js +2 -0
  272. package/frontend/dist/js/de-DjU_eXQ-.js +2 -0
  273. package/frontend/dist/js/es-ChIEs80I.js +2 -0
  274. package/frontend/dist/js/{estree-DCT3Jm65.js → estree-DGmLqopC.js} +17 -17
  275. package/frontend/dist/js/evaluationsApi-Bg12ekHo.js +1 -0
  276. package/frontend/dist/js/fr-Bi8BGRW4.js +2 -0
  277. package/frontend/dist/js/hi-BMsCnWg7.js +2 -0
  278. package/frontend/dist/js/{html-CBXMuS97.js → html-BryNQ_yx.js} +6 -6
  279. package/frontend/dist/js/id-CpcN1vhk.js +2 -0
  280. package/frontend/dist/js/is-DkUy2cmP.js +2 -0
  281. package/frontend/dist/js/it-BglK9DRZ.js +2 -0
  282. package/frontend/dist/js/ja-IrprzwLJ.js +2 -0
  283. package/frontend/dist/js/ko--wwEsMPi.js +2 -0
  284. package/frontend/dist/js/{markdown-Bo71X2X2.js → markdown-CZ1tYEW8.js} +17 -17
  285. package/frontend/dist/js/{markdown-core-BFkBYv2v.js → markdown-core-KjS96SYW.js} +1 -1
  286. package/frontend/dist/js/{markdown-html-CwjnwJbl.js → markdown-html-DQEwrWcf.js} +1 -1
  287. package/frontend/dist/js/{markdown-math-CJvHdD1l.js → markdown-math-CKi32S5d.js} +1 -1
  288. package/frontend/dist/js/{markdownHtml-egpK3_YY.js → markdownHtml-lrXhxBhK.js} +1 -1
  289. package/frontend/dist/js/markdownMath-B0BpyFBS.js +1 -0
  290. package/frontend/dist/js/{messageCodeStyles-euWoxwoo.js → messageCodeStyles-DJZ4QMVq.js} +2 -2
  291. package/frontend/dist/js/ms-BWj59y7-.js +2 -0
  292. package/frontend/dist/js/nl-D-QndW_A.js +2 -0
  293. package/frontend/dist/js/pl-Dw7d7iDV.js +2 -0
  294. package/frontend/dist/js/pt-BI53uHJw.js +2 -0
  295. package/frontend/dist/js/react-vendor-wiHys0m2.js +9 -0
  296. package/frontend/dist/js/router-vendor-HZm4FR0A.js +1 -0
  297. package/frontend/dist/js/ru-JKyTgPg9.js +2 -0
  298. package/frontend/dist/js/{standalone-6z5x8CWe.js → standalone-DbyFjvTU.js} +1 -1
  299. package/frontend/dist/js/sv-BIkBLPSQ.js +2 -0
  300. package/frontend/dist/js/{syntax-highlight-7t8DGG2n.js → syntax-highlight-DNc3FFCa.js} +1 -1
  301. package/frontend/dist/js/{teamEventStream-DGgjrVqw.js → teamEventStream-PXiwR5Kr.js} +1 -1
  302. package/frontend/dist/js/th-CZ_LcCU0.js +2 -0
  303. package/frontend/dist/js/tr-B265byx1.js +2 -0
  304. package/frontend/dist/js/{typescript-CslHIgIJ.js → typescript-DUM5niRM.js} +1 -1
  305. package/frontend/dist/js/{ui-CNcEDQ95.js → ui-DDMjO5dd.js} +2 -2
  306. package/frontend/dist/js/ui-vendor-BhHHyHk3.js +1 -0
  307. package/frontend/dist/js/uk-VTAlChwf.js +2 -0
  308. package/frontend/dist/js/{useChat-YRODF1y1.js → useChat-DaIZ2Dbu.js} +1 -1
  309. package/frontend/dist/js/{useDialogFocus-BQLdAGYH.js → useDialogFocus-BPTG_Zmy.js} +1 -1
  310. package/frontend/dist/js/useDictation-BXyX1U8r.js +1 -0
  311. package/frontend/dist/js/useQuery-hWmQjdLu.js +1 -0
  312. package/frontend/dist/js/{useTranslation-Kn7_iLGj.js → useTranslation-B9kflK9S.js} +1 -1
  313. package/frontend/dist/js/{utils-Dq1w7K0c.js → utils-p8Gt72YP.js} +1 -1
  314. package/frontend/dist/js/{utils-vendor-dx9vGAt3.js → utils-vendor-DISWt2y9.js} +1 -1
  315. package/frontend/dist/js/vi-D8rXh-53.js +2 -0
  316. package/frontend/dist/js/{workStatus-oU04ZrUq.js → work-DmJpVPPO.js} +1 -1
  317. package/frontend/dist/js/workApi-BIS9RxRi.js +1 -0
  318. package/frontend/dist/js/workApi-C3Td_lFD.js +5 -0
  319. package/frontend/dist/js/workModels-MzU2Ab7l.js +1 -0
  320. package/frontend/dist/js/zh-BEGd9iBD.js +2 -0
  321. package/package.json +43 -8
  322. package/scripts/prepare-dsh-provider.mjs +124 -0
  323. package/frontend/dist/assets/index-BXTzjRcS.js +0 -92
  324. package/frontend/dist/assets/index-uzzNXp5R.css +0 -1
  325. package/frontend/dist/js/ArtifactSlideOutPanel-DPWGjHhp.js +0 -1
  326. package/frontend/dist/js/AutomationsPage-DvsLZWtg.js +0 -1
  327. package/frontend/dist/js/ChannelsPage-D252gXwf.js +0 -1
  328. package/frontend/dist/js/ChatPage-D_CzOiHw.js +0 -14
  329. package/frontend/dist/js/ConnectModels-DYOtIOEY.js +0 -1
  330. package/frontend/dist/js/GalleryPage-BpK-vrvd.js +0 -1
  331. package/frontend/dist/js/HomePage-zJkkDNJl.js +0 -1
  332. package/frontend/dist/js/LibreClawPage-CAgNj9GM.js +0 -1
  333. package/frontend/dist/js/NotesPage-CNTqlwNc.js +0 -3
  334. package/frontend/dist/js/OptimizedSyntaxHighlighter-BFjOBavF.js +0 -1
  335. package/frontend/dist/js/PluginUsagePage-Cp4j4-VZ.js +0 -1
  336. package/frontend/dist/js/RichMessageContent-BOY5jqj-.js +0 -1
  337. package/frontend/dist/js/SettingsModal-WAdVG4-g.js +0 -19
  338. package/frontend/dist/js/SystemPage-Dwi8leEQ.js +0 -1
  339. package/frontend/dist/js/UserManagementPanel-CfG67c_k.js +0 -1
  340. package/frontend/dist/js/WorkPage-D_cL9wp4.js +0 -8
  341. package/frontend/dist/js/api-29NO19CP.js +0 -14
  342. package/frontend/dist/js/api-DhafOTdF.js +0 -1
  343. package/frontend/dist/js/appVersion-BNuquyI6.js +0 -1
  344. package/frontend/dist/js/ar-WHne6B0o.js +0 -2
  345. package/frontend/dist/js/authStore-snvjjOuX.js +0 -1
  346. package/frontend/dist/js/bn-BZvCjqwO.js +0 -2
  347. package/frontend/dist/js/chatStore-BPpcL4I5.js +0 -3
  348. package/frontend/dist/js/composerStyles-bNlrIugf.js +0 -1
  349. package/frontend/dist/js/cs-DfSqWQ9V.js +0 -2
  350. package/frontend/dist/js/da-BmMLW4Dl.js +0 -2
  351. package/frontend/dist/js/de-BQMiQwQT.js +0 -2
  352. package/frontend/dist/js/es-DXf6jt4Z.js +0 -2
  353. package/frontend/dist/js/evaluationsApi-Btc9Mg9z.js +0 -1
  354. package/frontend/dist/js/fr-BD6nT1oc.js +0 -2
  355. package/frontend/dist/js/hi-BSuNic-8.js +0 -2
  356. package/frontend/dist/js/id-wodbwt3B.js +0 -2
  357. package/frontend/dist/js/is-CEjw-OJE.js +0 -2
  358. package/frontend/dist/js/it-X_pq8C7q.js +0 -2
  359. package/frontend/dist/js/ja-DWM2HZZd.js +0 -2
  360. package/frontend/dist/js/ko-DFi2khBB.js +0 -2
  361. package/frontend/dist/js/markdownMath-mesq3ZcY.js +0 -1
  362. package/frontend/dist/js/ms-DNQateTR.js +0 -2
  363. package/frontend/dist/js/nl-DSWhi8W8.js +0 -2
  364. package/frontend/dist/js/pl-W9WEDpZ3.js +0 -2
  365. package/frontend/dist/js/pt-DCCGvdNt.js +0 -2
  366. package/frontend/dist/js/react-vendor-D0Ec-185.js +0 -9
  367. package/frontend/dist/js/router-vendor-CM0PhOMl.js +0 -1
  368. package/frontend/dist/js/ru-D-Ww6dXe.js +0 -2
  369. package/frontend/dist/js/sv-B0Iry-H3.js +0 -2
  370. package/frontend/dist/js/th-CEZS0WeE.js +0 -2
  371. package/frontend/dist/js/tr-BFJ8TeYb.js +0 -2
  372. package/frontend/dist/js/ui-vendor-LatG6rFF.js +0 -177
  373. package/frontend/dist/js/uk-BmW3yDel.js +0 -2
  374. package/frontend/dist/js/useQuery-C3O4CZ54.js +0 -1
  375. package/frontend/dist/js/vi-Cu25FXnp.js +0 -2
  376. package/frontend/dist/js/work-DVgm81bJ.js +0 -1
  377. package/frontend/dist/js/workApi-BdUNugC3.js +0 -1
  378. package/frontend/dist/js/workApi-OieM8qEL.js +0 -6
  379. package/frontend/dist/js/zh-CuCAx3oH.js +0 -2
@@ -0,0 +1,325 @@
1
+ /*
2
+ * Libre WebUI
3
+ * Copyright (C) 2025 Kroonen AI, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at:
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export const MAX_REQUEST_BYTES = 8 * 1024 * 1024;
18
+ export const MAX_CHUNK_BYTES = 16 * 1024 * 1024;
19
+ export const MAX_RESPONSE_BYTES = 256 * 1024 * 1024;
20
+ export const NATIVE_PROVIDER_INSTANCE_HEADER = 'x-native-provider-instance';
21
+ export class NativeProviderProtocolError extends Error {
22
+ constructor(message, status = 400) {
23
+ super(message);
24
+ this.status = status;
25
+ this.name = 'NativeProviderProtocolError';
26
+ }
27
+ }
28
+ function fail(label) {
29
+ throw new NativeProviderProtocolError(`Invalid native provider ${label}.`);
30
+ }
31
+ function record(value, label) {
32
+ if (!value ||
33
+ typeof value !== 'object' ||
34
+ Array.isArray(value) ||
35
+ (Object.getPrototypeOf(value) !== Object.prototype &&
36
+ Object.getPrototypeOf(value) !== null))
37
+ fail(label);
38
+ return value;
39
+ }
40
+ function keys(value, required, optional, label) {
41
+ if (required.some(key => !Object.prototype.hasOwnProperty.call(value, key)) ||
42
+ Object.keys(value).some(key => !required.includes(key) && !optional.includes(key)))
43
+ fail(label);
44
+ }
45
+ function text(value, label, maximum = 2048, empty = false) {
46
+ if (typeof value !== 'string' ||
47
+ (!empty && !value.trim()) ||
48
+ value.length > maximum)
49
+ fail(label);
50
+ }
51
+ function integer(value, label, minimum = 0) {
52
+ if (typeof value !== 'number' ||
53
+ !Number.isSafeInteger(value) ||
54
+ value < minimum)
55
+ fail(label);
56
+ }
57
+ function optionalInteger(value, key, minimum = 0) {
58
+ if (value[key] !== undefined)
59
+ integer(value[key], key, minimum);
60
+ }
61
+ /** Reject non-JSON inputs and bound arbitrary schemas/replay data as well as text. */
62
+ function json(value, limit) {
63
+ let nodes = 0;
64
+ const visit = (item, depth) => {
65
+ if (++nodes > 100000 || depth > 32)
66
+ fail('JSON complexity');
67
+ if (item === null || typeof item === 'string' || typeof item === 'boolean')
68
+ return;
69
+ if (typeof item === 'number' && Number.isFinite(item))
70
+ return;
71
+ if (Array.isArray(item)) {
72
+ item.forEach(child => visit(child, depth + 1));
73
+ return;
74
+ }
75
+ const object = record(item, 'JSON value');
76
+ Object.values(object).forEach(child => visit(child, depth + 1));
77
+ };
78
+ visit(value, 0);
79
+ if (Buffer.byteLength(JSON.stringify(value)) > limit) {
80
+ throw new NativeProviderProtocolError('Native provider message exceeds its byte limit.', 413);
81
+ }
82
+ }
83
+ function block(value) {
84
+ const data = record(value, 'content block');
85
+ switch (data.type) {
86
+ case 'text':
87
+ case 'reasoning':
88
+ keys(data, ['type', 'text'], [], 'text block');
89
+ text(data.text, 'text', MAX_CHUNK_BYTES, true);
90
+ return;
91
+ case 'tool-call':
92
+ keys(data, ['type', 'id', 'name', 'arguments'], [], 'tool call');
93
+ text(data.id, 'tool call ID');
94
+ text(data.name, 'tool name');
95
+ text(data.arguments, 'tool arguments', MAX_REQUEST_BYTES, true);
96
+ return;
97
+ case 'tool-result':
98
+ keys(data, ['type', 'toolCallId', 'content'], ['isError'], 'tool result');
99
+ text(data.toolCallId, 'tool result ID');
100
+ blocks(data.content);
101
+ if (data.isError !== undefined && typeof data.isError !== 'boolean')
102
+ fail('tool result outcome');
103
+ return;
104
+ default:
105
+ // Native file/image references are capabilities, not transferable text.
106
+ fail('content block type');
107
+ }
108
+ }
109
+ function blocks(value) {
110
+ if (!Array.isArray(value) || value.length > 2048)
111
+ fail('message content');
112
+ value.forEach(block);
113
+ }
114
+ function message(value) {
115
+ const data = record(value, 'message');
116
+ keys(data, ['id', 'role', 'content', 'source'], [], 'message');
117
+ text(data.id, 'message ID');
118
+ if (!['system', 'user', 'assistant'].includes(String(data.role)))
119
+ fail('message role');
120
+ blocks(data.content);
121
+ const source = record(data.source, 'message source');
122
+ switch (source.kind) {
123
+ case 'user':
124
+ keys(source, ['kind'], [], 'user source');
125
+ break;
126
+ case 'plugin':
127
+ keys(source, ['kind', 'plugin'], [], 'plugin source');
128
+ text(source.plugin, 'plugin source ID');
129
+ break;
130
+ case 'tool':
131
+ keys(source, ['kind', 'callId'], [], 'tool source');
132
+ text(source.callId, 'tool source ID');
133
+ break;
134
+ case 'model':
135
+ keys(source, ['kind', 'provider', 'model'], ['replayState'], 'model source');
136
+ text(source.provider, 'source provider');
137
+ text(source.model, 'source model');
138
+ break;
139
+ default:
140
+ fail('message source kind');
141
+ }
142
+ if (data.role === 'system' && source.kind !== 'plugin')
143
+ fail('system source');
144
+ if (source.kind === 'tool') {
145
+ const content = data.content;
146
+ if (data.role !== 'user' ||
147
+ content.length !== 1 ||
148
+ content[0].type !== 'tool-result' ||
149
+ content[0].toolCallId !== source.callId)
150
+ fail('tool result correlation');
151
+ }
152
+ }
153
+ export function parseNativeProviderRequest(value) {
154
+ json(value, MAX_REQUEST_BYTES);
155
+ const data = record(value, 'request');
156
+ keys(data, ['provider', 'model', 'messages'], [
157
+ 'instanceId',
158
+ 'system',
159
+ 'tools',
160
+ 'temperature',
161
+ 'maxTokens',
162
+ 'stop',
163
+ 'reasoningEffort',
164
+ 'purpose',
165
+ ], 'request');
166
+ text(data.provider, 'provider');
167
+ text(data.model, 'model');
168
+ if (data.instanceId !== undefined)
169
+ text(data.instanceId, 'instance ID', 128);
170
+ if (data.reasoningEffort !== undefined)
171
+ text(data.reasoningEffort, 'reasoning effort');
172
+ if (data.purpose !== undefined &&
173
+ !['session-title', 'compaction'].includes(String(data.purpose)))
174
+ fail('request purpose');
175
+ if (data.system !== undefined)
176
+ text(data.system, 'system prompt', MAX_REQUEST_BYTES, true);
177
+ if (!Array.isArray(data.messages) || data.messages.length > 2048)
178
+ fail('messages');
179
+ data.messages.forEach(message);
180
+ optionalInteger(data, 'maxTokens', 1);
181
+ if (data.temperature !== undefined &&
182
+ (typeof data.temperature !== 'number' ||
183
+ !Number.isFinite(data.temperature) ||
184
+ data.temperature < 0 ||
185
+ data.temperature > 2))
186
+ fail('temperature');
187
+ if (data.stop !== undefined) {
188
+ if (!Array.isArray(data.stop) || data.stop.length > 64)
189
+ fail('stop sequences');
190
+ data.stop.forEach(item => text(item, 'stop sequence'));
191
+ }
192
+ if (data.tools !== undefined) {
193
+ if (!Array.isArray(data.tools) || data.tools.length > 256)
194
+ fail('tools');
195
+ const names = new Set();
196
+ for (const item of data.tools) {
197
+ const tool = record(item, 'tool schema');
198
+ keys(tool, ['name', 'description', 'parameters'], [], 'tool schema');
199
+ text(tool.name, 'tool name');
200
+ text(tool.description, 'tool description', MAX_REQUEST_BYTES, true);
201
+ record(tool.parameters, 'tool parameters');
202
+ if (names.has(tool.name))
203
+ fail('duplicate tool name');
204
+ names.add(tool.name);
205
+ }
206
+ }
207
+ return data;
208
+ }
209
+ export function parseNativeProviderCatalog(value) {
210
+ json(value, MAX_CHUNK_BYTES);
211
+ const data = record(value, 'catalog');
212
+ keys(data, ['instanceId', 'models'], [], 'catalog');
213
+ text(data.instanceId, 'instance ID', 128);
214
+ if (!Array.isArray(data.models) || data.models.length > 10000)
215
+ fail('catalog models');
216
+ const seen = new Set();
217
+ for (const entry of data.models) {
218
+ const model = record(entry, 'catalog model');
219
+ keys(model, ['providerId', 'model', 'name', 'providerName'], ['contextWindow', 'defaultMaxTokens', 'reasoning'], 'catalog model');
220
+ for (const key of ['providerId', 'model', 'name', 'providerName'])
221
+ text(model[key], `catalog ${key}`, 4096);
222
+ const identity = JSON.stringify([model.providerId, model.model]);
223
+ if (seen.has(identity))
224
+ fail('duplicate catalog model');
225
+ seen.add(identity);
226
+ optionalInteger(model, 'contextWindow', 1);
227
+ optionalInteger(model, 'defaultMaxTokens', 1);
228
+ if (model.reasoning !== undefined) {
229
+ const reasoning = record(model.reasoning, 'reasoning catalog');
230
+ keys(reasoning, ['efforts'], ['defaultEffort'], 'reasoning catalog');
231
+ if (!Array.isArray(reasoning.efforts) || reasoning.efforts.length > 64)
232
+ fail('reasoning efforts');
233
+ const efforts = new Set();
234
+ for (const entry of reasoning.efforts) {
235
+ const effort = record(entry, 'reasoning effort');
236
+ keys(effort, ['id', 'name'], ['description'], 'reasoning effort');
237
+ text(effort.id, 'reasoning effort ID');
238
+ text(effort.name, 'reasoning effort name');
239
+ if (effort.description !== undefined)
240
+ text(effort.description, 'reasoning effort description', 16384, true);
241
+ if (efforts.has(effort.id))
242
+ fail('duplicate reasoning effort');
243
+ efforts.add(effort.id);
244
+ }
245
+ if (reasoning.defaultEffort !== undefined &&
246
+ !efforts.has(String(reasoning.defaultEffort)))
247
+ fail('default reasoning effort');
248
+ }
249
+ }
250
+ return data;
251
+ }
252
+ export function parseNativeProviderChunk(value) {
253
+ json(value, MAX_CHUNK_BYTES);
254
+ const data = record(value, 'stream chunk');
255
+ switch (data.type) {
256
+ case 'block-start':
257
+ keys(data, ['type', 'index', 'blockType'], [], 'block start');
258
+ integer(data.index, 'block index');
259
+ if (!['text', 'reasoning', 'tool-call'].includes(String(data.blockType)))
260
+ fail('stream block type');
261
+ break;
262
+ case 'text-delta':
263
+ case 'reasoning-delta':
264
+ keys(data, ['type', 'index', 'text'], [], 'text delta');
265
+ integer(data.index, 'block index');
266
+ text(data.text, 'text delta', MAX_CHUNK_BYTES, true);
267
+ break;
268
+ case 'tool-call-delta':
269
+ keys(data, ['type', 'index', 'id', 'argumentsDelta'], ['name'], 'tool delta');
270
+ integer(data.index, 'block index');
271
+ text(data.id, 'tool call ID');
272
+ text(data.argumentsDelta, 'tool arguments delta', MAX_CHUNK_BYTES, true);
273
+ if (data.name !== undefined)
274
+ text(data.name, 'tool name');
275
+ break;
276
+ case 'block-end':
277
+ keys(data, ['type', 'index', 'block'], [], 'block end');
278
+ integer(data.index, 'block index');
279
+ block(data.block);
280
+ break;
281
+ case 'usage': {
282
+ keys(data, ['type', 'usage'], [], 'usage chunk');
283
+ const usage = record(data.usage, 'usage');
284
+ keys(usage, ['inputTokens', 'outputTokens'], [
285
+ 'totalTokens',
286
+ 'cacheReadTokens',
287
+ 'cacheWriteTokens',
288
+ 'reasoningTokens',
289
+ ], 'usage');
290
+ Object.values(usage).forEach(value => integer(value, 'token usage'));
291
+ break;
292
+ }
293
+ case 'finish': {
294
+ keys(data, ['type', 'reason'], ['replayState'], 'finish chunk');
295
+ const reason = record(data.reason, 'finish reason');
296
+ if (reason.kind === 'error' || reason.kind === 'aborted') {
297
+ keys(reason, ['kind', 'failure'], [], 'failure reason');
298
+ const failure = record(reason.failure, 'failure');
299
+ keys(failure, ['message', 'code'], ['status', 'providerRetryAfterMs', 'requestId', 'offloadImages'], 'failure');
300
+ text(failure.message, 'failure message', MAX_CHUNK_BYTES, true);
301
+ text(failure.code, 'failure code');
302
+ for (const key of ['status', 'providerRetryAfterMs', 'offloadImages'])
303
+ optionalInteger(failure, key);
304
+ if (failure.requestId !== undefined)
305
+ text(failure.requestId, 'provider request ID');
306
+ }
307
+ else {
308
+ keys(reason, ['kind'], [], 'finish reason');
309
+ if (!['stop', 'tool-calls', 'max-tokens'].includes(String(reason.kind)))
310
+ fail('finish reason kind');
311
+ }
312
+ if (data.replayState !== undefined) {
313
+ const replay = record(data.replayState, 'replay state');
314
+ keys(replay, ['response'], ['blocks'], 'replay state');
315
+ if (replay.blocks !== undefined && !Array.isArray(replay.blocks))
316
+ fail('replay blocks');
317
+ }
318
+ break;
319
+ }
320
+ default:
321
+ fail('stream chunk type');
322
+ }
323
+ return data;
324
+ }
325
+ //# sourceMappingURL=native-provider-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-provider-protocol.js","sourceRoot":"","sources":["../../../src/cordis/dsh/native-provider-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { GenerationOptions } from '../../types/index.js';
2
+ import { type BridgeCall, type BridgeModel, type LibreWebUiProviderHandler } from './librewebui-llm-adapter.js';
3
+ /** An engine picker catalog, independently of Chat persona selection/prompts. */
4
+ export declare function getCordisModelCatalog(userId: string): Promise<{
5
+ models: readonly BridgeModel[];
6
+ defaultModel?: string;
7
+ }>;
8
+ /**
9
+ * The model the engine should request when its own configuration names none.
10
+ *
11
+ * Read live from preferences so changing the default in the UI changes what the
12
+ * engine uses, rather than pinning a copy in the engine's settings document.
13
+ * @returns the model identifier, or undefined when the deployment has none.
14
+ */
15
+ export declare function resolveEngineDefaultModel(userId?: string): Promise<string | undefined>;
16
+ /** Resolve a text-only task through the same provider as an engine request. */
17
+ export declare function resolveCordisProviderTarget(requestedModel: string, requestedUserId: string): Promise<{
18
+ model: string;
19
+ providerType: 'ollama' | 'plugin' | 'dsh';
20
+ providerId: string | null;
21
+ }>;
22
+ /**
23
+ * The options object the providers read for sampling controls.
24
+ *
25
+ * Exported for its regression test: the tool shape it produces is only
26
+ * observable at this boundary, because the engine normalises tool declarations
27
+ * before they reach the adapter that calls it.
28
+ * @param call - the engine's request.
29
+ * @returns options for Libre WebUI's provider layer.
30
+ */
31
+ export declare function toGenerationOptions(call: BridgeCall): GenerationOptions;
32
+ /** The handler the engine's adapter delegates to. */
33
+ export declare const libreWebUiProviderHandler: LibreWebUiProviderHandler;
34
+ /** Install a capability without borrowing an administrator's credentials. */
35
+ export declare function installLibreWebUiProvider(): Promise<LibreWebUiProviderHandler>;
36
+ //# sourceMappingURL=provider-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-handler.d.ts","sourceRoot":"","sources":["../../../src/cordis/dsh/provider-handler.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAgB9B,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,WAAW,EAEhB,KAAK,yBAAyB,EAC/B,MAAM,6BAA6B,CAAC;AAiGrC,iFAAiF;AACjF,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACnE,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CAWD;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE7B;AA0DD,+EAA+E;AAC/E,wBAAsB,2BAA2B,CAC/C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAmBD;AAoCD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAqBvE;AA6CD,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,EAAE,yBA4TvC,CAAC;AAEF,6EAA6E;AAC7E,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAGpF"}