libre-webui 0.39.0 → 0.40.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 (198) hide show
  1. package/backend/dist/persistence/extensionTypes.d.ts +2 -0
  2. package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
  3. package/backend/dist/persistence/extensionTypes.js.map +1 -1
  4. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
  5. package/backend/dist/persistence/postgresExtensionRepositories.js +6 -0
  6. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
  7. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  8. package/backend/dist/persistence/sqliteExtensionRepositories.js +7 -0
  9. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  10. package/backend/dist/routes/email.d.ts.map +1 -1
  11. package/backend/dist/routes/email.js +51 -1
  12. package/backend/dist/routes/email.js.map +1 -1
  13. package/backend/dist/routes/tts.d.ts.map +1 -1
  14. package/backend/dist/routes/tts.js +6 -1
  15. package/backend/dist/routes/tts.js.map +1 -1
  16. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  17. package/backend/dist/services/agentCliService.js +1 -0
  18. package/backend/dist/services/agentCliService.js.map +1 -1
  19. package/backend/dist/services/emailService.d.ts +17 -3
  20. package/backend/dist/services/emailService.d.ts.map +1 -1
  21. package/backend/dist/services/emailService.js +73 -11
  22. package/backend/dist/services/emailService.js.map +1 -1
  23. package/backend/dist/services/pluginCredentialsService.d.ts +3 -0
  24. package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
  25. package/backend/dist/services/pluginCredentialsService.js +18 -5
  26. package/backend/dist/services/pluginCredentialsService.js.map +1 -1
  27. package/backend/dist/services/pluginService.d.ts +9 -0
  28. package/backend/dist/services/pluginService.d.ts.map +1 -1
  29. package/backend/dist/services/pluginService.js +31 -14
  30. package/backend/dist/services/pluginService.js.map +1 -1
  31. package/backend/dist/services/workRuntimeService.d.ts +5 -0
  32. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  33. package/backend/dist/services/workRuntimeService.js +243 -84
  34. package/backend/dist/services/workRuntimeService.js.map +1 -1
  35. package/backend/dist/utils/emailMarkdown.js +3 -3
  36. package/backend/dist/utils/emailMarkdown.js.map +1 -1
  37. package/backend/dist/utils/pluginDefinitionTrust.d.ts +7 -0
  38. package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
  39. package/backend/dist/utils/pluginDefinitionTrust.js +49 -1
  40. package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
  41. package/backend/package.json +1 -1
  42. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  43. package/frontend/dist/artifact-runtime/mermaid.js +366 -366
  44. package/frontend/dist/assets/index-DLfU_qNT.js +75 -0
  45. package/frontend/dist/assets/index-DtS3qhdq.css +2 -0
  46. package/frontend/dist/assets/xterm-B1njb2Cr.css +1 -0
  47. package/frontend/dist/index.html +27 -26
  48. package/frontend/dist/js/ArtifactContainer-BjzltfdU.js +1 -0
  49. package/frontend/dist/js/{ArtifactDemoPage-Ddpy2O_v.js → ArtifactDemoPage-DWua6xj9.js} +1 -1
  50. package/frontend/dist/js/{ArtifactSandboxFrame-CdsAqv8H.js → ArtifactSandboxFrame-CR9ghP0A.js} +1 -1
  51. package/frontend/dist/js/ArtifactSlideOutPanel-DX2nL3AS.js +1 -0
  52. package/frontend/dist/js/AutomationModal-DZe-C2jN.js +1 -0
  53. package/frontend/dist/js/AutomationsPage-CrCcnTyk.js +1 -0
  54. package/frontend/dist/js/AvatarUpload-nPS0QHod.js +1 -0
  55. package/frontend/dist/js/Button-Dh2UJA-B.js +1 -0
  56. package/frontend/dist/js/CalendarPage-D2WiWglM.js +1 -0
  57. package/frontend/dist/js/ChannelsPage-COp2T8FQ.js +1 -0
  58. package/frontend/dist/js/ChatPage-CUfAlpdt.js +14 -0
  59. package/frontend/dist/js/ConnectModels-emc3dv4A.js +1 -0
  60. package/frontend/dist/js/EvaluationsPage-CbyeDkz_.js +2 -0
  61. package/frontend/dist/js/FirstTimeSetup-C4ffQRMN.js +1 -0
  62. package/frontend/dist/js/GalleryPage-D4Ci_3dv.js +1 -0
  63. package/frontend/dist/js/HomePage-C3IhEERN.js +1 -0
  64. package/frontend/dist/js/LanguageSwitcher-BQqDJPwm.js +1 -0
  65. package/frontend/dist/js/ModelManagerModals-DhY8Rme6.js +1 -0
  66. package/frontend/dist/js/NotesPage-j812I1BN.js +3 -0
  67. package/frontend/dist/js/PasswordStrengthMeter-BSEtQBJp.js +1 -0
  68. package/frontend/dist/js/PersonasPage--YWoThqF.js +13 -0
  69. package/frontend/dist/js/PluginUsagePage-CZiMdmjI.js +1 -0
  70. package/frontend/dist/js/{RichMessageContent-BfYbVBFz.js → RichMessageContent-BLI0hhzR.js} +2 -2
  71. package/frontend/dist/js/RichMessageContent-BXv5baJ_.js +1 -0
  72. package/frontend/dist/js/SettingsModal-C6aVzSI-.js +19 -0
  73. package/frontend/dist/js/SettingsToggle-CkLLtFbz.js +1 -0
  74. package/frontend/dist/js/ShareDialog-DQskc17d.js +1 -0
  75. package/frontend/dist/js/StrandsPage-DENhVKcz.js +1 -0
  76. package/frontend/dist/js/SystemPage-C86ypXG4.js +1 -0
  77. package/frontend/dist/js/UserManagementPanel-D1CS0KPn.js +1 -0
  78. package/frontend/dist/js/WhatsNewModal-B31A_UQY.js +1 -0
  79. package/frontend/dist/js/WorkPage-DEXBL5J7.js +7 -0
  80. package/frontend/dist/js/api-DRAKhdz7.js +1 -0
  81. package/frontend/dist/js/{api-BrHW-VGd.js → api-Dcz1G4Ib.js} +4 -2
  82. package/frontend/dist/js/{appNavigation-B6xYIgLi.js → appNavigation-C5A9BF_G.js} +1 -1
  83. package/frontend/dist/js/appStore-0_qlwS8f.js +2 -0
  84. package/frontend/dist/js/appVersion-D5lk_2zb.js +1 -0
  85. package/frontend/dist/js/ar-BZntyucf.js +2 -0
  86. package/frontend/dist/js/authStore-C4dzH1NY.js +1 -0
  87. package/frontend/dist/js/{authStore-DjAsRpNL.js → authStore-COgKeTRv.js} +3 -3
  88. package/frontend/dist/js/bn-BDCaFQu-.js +2 -0
  89. package/frontend/dist/js/chatStore-CVTbkZyb.js +3 -0
  90. package/frontend/dist/js/{client-DppLngAs.js → client-jaxZzn-I.js} +2 -2
  91. package/frontend/dist/js/{composerStyles-C83jssgZ.js → composerStyles-BEx0XAp6.js} +1 -1
  92. package/frontend/dist/js/{config-4_s8hdqO.js → config-Da1yh9sC.js} +1 -1
  93. package/frontend/dist/js/confirmStore-CKkUtP9c.js +1 -0
  94. package/frontend/dist/js/cs-BCmN--jQ.js +2 -0
  95. package/frontend/dist/js/da-B895dAyV.js +2 -0
  96. package/frontend/dist/js/de-B0ZhC0dm.js +2 -0
  97. package/frontend/dist/js/es-D7eaw4_W.js +2 -0
  98. package/frontend/dist/js/{evaluationsApi-DyuW7IJ_.js → evaluationsApi-BwaxBVpl.js} +1 -1
  99. package/frontend/dist/js/fr-DsB0gLW4.js +2 -0
  100. package/frontend/dist/js/hi-CLeU3ung.js +2 -0
  101. package/frontend/dist/js/id-Cdq6tOTi.js +2 -0
  102. package/frontend/dist/js/is-DJ1tHaAT.js +2 -0
  103. package/frontend/dist/js/it-9K1R4CeT.js +2 -0
  104. package/frontend/dist/js/ja-BYP_3M5M.js +2 -0
  105. package/frontend/dist/js/ko-CNtjlaDm.js +2 -0
  106. package/frontend/dist/js/liveAnnouncerStore-B6mS-JWC.js +1 -0
  107. package/frontend/dist/js/messageCodeStyles-D3cWF9XO.js +2 -0
  108. package/frontend/dist/js/ms-A_IVO_qt.js +2 -0
  109. package/frontend/dist/js/nl-CrKWO3ea.js +2 -0
  110. package/frontend/dist/js/pl-BrpSuyDP.js +2 -0
  111. package/frontend/dist/js/pt-BHbpB5BM.js +2 -0
  112. package/frontend/dist/js/ru-DzLsS9zY.js +2 -0
  113. package/frontend/dist/js/{strandsApi-BFbeEpAY.js → strandsApi-COxSPh_5.js} +1 -1
  114. package/frontend/dist/js/sv-VU2CjzNj.js +2 -0
  115. package/frontend/dist/js/{teamEventStream-DsAS6P4m.js → teamEventStream-RNJYm84u.js} +1 -1
  116. package/frontend/dist/js/th-DV2hNXXc.js +2 -0
  117. package/frontend/dist/js/tr-DvVZ9jxF.js +2 -0
  118. package/frontend/dist/js/ui-CI0OdG9q.js +2 -0
  119. package/frontend/dist/js/ui-vendor-6S05F84J.js +1 -0
  120. package/frontend/dist/js/uk-MFFDRo2m.js +2 -0
  121. package/frontend/dist/js/useChat-BSkqxHnH.js +13 -0
  122. package/frontend/dist/js/useDictation-D9whH12W.js +1 -0
  123. package/frontend/dist/js/vi-CfZ-U8Cw.js +2 -0
  124. package/frontend/dist/js/{work-CdbmBok5.js → work-C7MYlv5S.js} +1 -1
  125. package/frontend/dist/js/{workModels-BM2Zyiba.js → workAnnouncements-CAsI8P7c.js} +1 -1
  126. package/frontend/dist/js/workApi-BJfbaV6k.js +1 -0
  127. package/frontend/dist/js/{workApi-UPxumrEF.js → workApi-Ck8nTlJn.js} +1 -1
  128. package/frontend/dist/js/zh-CTl_raYa.js +2 -0
  129. package/package.json +3 -2
  130. package/plugins/codex-oauth.json +1 -0
  131. package/frontend/dist/assets/index-D99DS5c6.js +0 -57
  132. package/frontend/dist/assets/index-Dz1JufgZ.css +0 -1
  133. package/frontend/dist/assets/xterm-B8QFf3JU.css +0 -1
  134. package/frontend/dist/js/ArtifactContainer-Cn7X9HGm.js +0 -1
  135. package/frontend/dist/js/ArtifactSlideOutPanel-cVd9X80o.js +0 -1
  136. package/frontend/dist/js/AutomationModal-B4UaWjkk.js +0 -1
  137. package/frontend/dist/js/AutomationsPage-huCrvLUp.js +0 -1
  138. package/frontend/dist/js/AvatarUpload-CG-w6Mpt.js +0 -1
  139. package/frontend/dist/js/Button-j68Q8KVh.js +0 -1
  140. package/frontend/dist/js/CalendarPage-CZXT1w99.js +0 -1
  141. package/frontend/dist/js/ChannelsPage-DbtdHnSL.js +0 -1
  142. package/frontend/dist/js/ChatPage-BZE65kiq.js +0 -14
  143. package/frontend/dist/js/ConnectModels-DD4bLgdq.js +0 -1
  144. package/frontend/dist/js/EvaluationsPage-Dq53LaXd.js +0 -2
  145. package/frontend/dist/js/FirstTimeSetup-BoJIfuQT.js +0 -1
  146. package/frontend/dist/js/GalleryPage-DKwqeB2A.js +0 -1
  147. package/frontend/dist/js/HomePage-C8bCJfls.js +0 -1
  148. package/frontend/dist/js/LanguageSwitcher-B_YyU5JG.js +0 -1
  149. package/frontend/dist/js/ModelManagerModals-BzjZ-QwL.js +0 -1
  150. package/frontend/dist/js/NotesPage-CnaAp_w_.js +0 -3
  151. package/frontend/dist/js/PasswordStrengthMeter-DI4RDv67.js +0 -1
  152. package/frontend/dist/js/PersonasPage-CH3GUKph.js +0 -13
  153. package/frontend/dist/js/PluginUsagePage-d54K2gAj.js +0 -1
  154. package/frontend/dist/js/RichMessageContent-CDxxs3Tt.js +0 -1
  155. package/frontend/dist/js/SettingsModal-BvtJcvow.js +0 -19
  156. package/frontend/dist/js/SettingsToggle-DrJ0Bapi.js +0 -1
  157. package/frontend/dist/js/ShareDialog-DaSxkTKS.js +0 -1
  158. package/frontend/dist/js/StrandsPage-BQwz0mWq.js +0 -1
  159. package/frontend/dist/js/SystemPage-BqNZoFxR.js +0 -1
  160. package/frontend/dist/js/UserManagementPanel-C3T1ReJJ.js +0 -1
  161. package/frontend/dist/js/WhatsNewModal-CLcU2Ugk.js +0 -1
  162. package/frontend/dist/js/WorkPage-BpjGn--1.js +0 -8
  163. package/frontend/dist/js/api-K_hhqPdx.js +0 -1
  164. package/frontend/dist/js/appStore-DkRdQQeY.js +0 -2
  165. package/frontend/dist/js/appVersion-BVtSqLVj.js +0 -1
  166. package/frontend/dist/js/ar-XTZGEtBr.js +0 -2
  167. package/frontend/dist/js/authStore-DBS6Kbvh.js +0 -1
  168. package/frontend/dist/js/bn-JiK7ZWmy.js +0 -2
  169. package/frontend/dist/js/chatStore-DpVxt9VX.js +0 -3
  170. package/frontend/dist/js/cs-D8ju18CO.js +0 -2
  171. package/frontend/dist/js/da-BJWcAoUc.js +0 -2
  172. package/frontend/dist/js/de-CLJLmy69.js +0 -2
  173. package/frontend/dist/js/es-BvqHEL-3.js +0 -2
  174. package/frontend/dist/js/fr-B8ZoZomI.js +0 -2
  175. package/frontend/dist/js/goober.modern-BaHbaW3_.js +0 -1
  176. package/frontend/dist/js/hi-AzJLALo-.js +0 -2
  177. package/frontend/dist/js/id-DZYGQhvC.js +0 -2
  178. package/frontend/dist/js/is-Da_kvtzW.js +0 -2
  179. package/frontend/dist/js/it-B90zSlqn.js +0 -2
  180. package/frontend/dist/js/ja-DU_K1GOr.js +0 -2
  181. package/frontend/dist/js/ko-DicfoO-e.js +0 -2
  182. package/frontend/dist/js/messageCodeStyles-CuQPkfEK.js +0 -2
  183. package/frontend/dist/js/ms-CfH7wjUY.js +0 -2
  184. package/frontend/dist/js/nl-ELlOz-B3.js +0 -2
  185. package/frontend/dist/js/pl-33dayyUk.js +0 -2
  186. package/frontend/dist/js/pt-aIXSQPCT.js +0 -2
  187. package/frontend/dist/js/ru-BSvGtBtW.js +0 -2
  188. package/frontend/dist/js/sv-B7KOz81W.js +0 -2
  189. package/frontend/dist/js/th-DgpjGxvA.js +0 -2
  190. package/frontend/dist/js/tr-BQTbl2h-.js +0 -2
  191. package/frontend/dist/js/ui-Aq8MP7Ph.js +0 -2
  192. package/frontend/dist/js/ui-vendor-DVTj_sKN.js +0 -1
  193. package/frontend/dist/js/uk-JLymloot.js +0 -2
  194. package/frontend/dist/js/useChat-D3ZAGz70.js +0 -10
  195. package/frontend/dist/js/useDictation-B6l8QzeM.js +0 -1
  196. package/frontend/dist/js/vi-BXdLOJ8q.js +0 -2
  197. package/frontend/dist/js/workApi-D1xtiG3Q.js +0 -1
  198. package/frontend/dist/js/zh-gdUf9sXa.js +0 -2
@@ -1,5 +1,7 @@
1
- import{a as e}from"./logger-BR4forr_.js";import{t}from"./config-4_s8hdqO.js";import{i as n,n as r,r as i,t as a}from"./client-DppLngAs.js";import"./strandsApi-BFbeEpAY.js";import"./workApi-UPxumrEF.js";var o={getAccess:()=>e()?r({enabled:!1,lockedByEnv:!1}):a.get(`/agent-clis/access`).then(e=>e.data),setAccess:t=>e()?r({enabled:t,lockedByEnv:!1}):a.put(`/agent-clis/access`,{enabled:t}).then(e=>e.data),getModels:()=>e()?r([]):a.get(`/agent-clis/models`).then(e=>e.data)},s=[{name:`llama3.2:3b`,size:2048e6,digest:`demo-digest-1`,modified_at:new Date().toISOString(),details:{format:`gguf`,family:`llama`,families:[`llama`],parameter_size:`3B`,quantization_level:`Q4_0`}},{name:`qwen2.5:7b`,size:4096e6,digest:`demo-digest-2`,modified_at:new Date().toISOString(),details:{format:`gguf`,family:`qwen`,families:[`qwen`],parameter_size:`7B`,quantization_level:`Q4_0`}}],c=()=>[{id:`demo-session-1`,title:`Demo Chat Session`,model:s[0].name,providerType:`ollama`,providerId:null,messages:[{id:`demo-msg-1`,role:`user`,content:`Hello! Can you tell me about this demo?`,timestamp:Date.now()},{id:`demo-msg-2`,role:`assistant`,content:`This is a demo of Libre WebUI! In a real deployment, I would be powered by Ollama running locally on your machine. This demo shows the beautiful interface and features without the backend connection.`,timestamp:Date.now()}],createdAt:Date.now(),updatedAt:Date.now()}],l=c(),u={theme:{mode:`celestial`,adaptToAccent:!1,accent:`blue`,customAccent:`#2563eb`},defaultModel:`llama3.2:3b`,defaultProviderType:`ollama`,defaultProviderId:null,visionModel:``,visionProviderType:null,visionProviderId:null,systemMessage:`You are a helpful assistant.`,generationOptions:{temperature:.7,top_p:.9,top_k:40,num_predict:1024},embeddingSettings:{enabled:!1,model:`nomic-embed-text`,chunkSize:1e3,chunkOverlap:200,similarityThreshold:.7},titleSettings:{autoTitle:!1,taskModel:``,taskProviderType:null,taskProviderId:null},showUsername:!1,hapticFeedbackEnabled:!1,workRemoteProviderDisclosureDismissed:!1,backgroundSettings:{enabled:!1,imageUrl:``,blurAmount:10,opacity:.6}},d={...u,theme:{...u.theme},generationOptions:{...u.generationOptions},embeddingSettings:{...u.embeddingSettings},titleSettings:{...u.titleSettings},backgroundSettings:{...u.backgroundSettings}},f=()=>d,p=e=>{let t=d.backgroundSettings||u.backgroundSettings;return d={...d,...e,theme:{...d.theme,...e.theme},generationOptions:{...d.generationOptions,...e.generationOptions},embeddingSettings:{...d.embeddingSettings,...e.embeddingSettings},titleSettings:e.titleSettings?{...d.titleSettings||u.titleSettings,...e.titleSettings}:d.titleSettings,backgroundSettings:e.backgroundSettings?{...t,...e.backgroundSettings}:d.backgroundSettings},d},m=`0.39.0`,h=[`chat`,`models`,`documents`,`notes`,`personas`,`media`,`work`,`admin`],g=e=>!!e&&e.mfaRequired===!0,_={login:t=>e()?r({user:{id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},token:`demo-token`,systemInfo:{requiresAuth:!0,hasUsers:!0,userCount:1,signupEnabled:!0,version:m}}):a.post(`/auth/login`,t).then(e=>e.data),signup:t=>e()?r({user:{id:`demo-user-new`,username:t.username,email:t.email||``,role:`user`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},token:`demo-token-new`,systemInfo:{requiresAuth:!0,hasUsers:!0,userCount:1,signupEnabled:!0,version:m,turnstile:{enabled:!1}}}):a.post(`/auth/signup`,t).then(e=>e.data),logout:()=>e()?r(void 0):a.post(`/auth/logout`).then(e=>e.data),getSystemInfo:()=>(i.debug(`getSystemInfo called, demo mode:`,e()),e()?r({requiresAuth:!0,hasUsers:!0,userCount:1,signupEnabled:!0,version:m,turnstile:{enabled:!1},defaultTheme:u.theme}):(i.debug(`Making API call to:`,t+`/auth/system-info`),i.debug(`Full URL from:`,window.location.origin,`-> API:`,t+`/auth/system-info`),a.get(`/auth/system-info`).then(e=>(i.debug(`getSystemInfo response:`,e.data),e.data)).catch(e=>{throw i.debug(`getSystemInfo error:`,e),e.response&&(i.debug(`Error response data:`,e.response.data),i.debug(`Error status:`,e.response.status),i.debug(`Error headers:`,e.response.headers)),e.request&&i.debug(`Network error - no response received:`,e.request),i.debug(`Error config:`,e.config),e}))),verifyToken:()=>e()?r({id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.get(`/auth/verify`).then(e=>e.data),getEncryptionKey:()=>e()?r({encryptionKey:`demo-encryption-key-not-real`}):a.get(`/auth/encryption-key`).then(e=>e.data),getSessions:()=>e()?r([{id:`demo-session`,kind:`password`,userAgent:navigator.userAgent,createdAt:new Date().toISOString(),lastSeenAt:new Date().toISOString(),expiresAt:null,revokedAt:null,current:!0}]):a.get(`/auth/sessions`).then(e=>e.data),revokeSession:t=>e()?r(void 0):a.delete(`/auth/sessions/${t}`).then(e=>e.data),revokeOtherSessions:()=>e()?r({revokedCount:0}):a.post(`/auth/sessions/revoke-others`).then(e=>e.data),listApiTokens:()=>e()?r([]):a.get(`/auth/tokens`).then(e=>e.data),createApiToken:t=>e()?r({token:`lwui_demo_not_a_real_token`,record:{id:`demo-token-`+Date.now(),name:t.name,tokenPrefix:`lwui_demo`,scopes:t.scopes,createdAt:new Date().toISOString(),expiresAt:null,lastUsedAt:null,revokedAt:null}}):a.post(`/auth/tokens`,t).then(e=>e.data),revokeApiToken:t=>e()?r(void 0):a.delete(`/auth/tokens/${t}`).then(e=>e.data),mfaVerify:e=>a.post(`/auth/mfa/verify`,e).then(e=>e.data),mfaEnrollChallenge:e=>a.post(`/auth/mfa/enroll-challenge`,e).then(e=>e.data),mfaActivateChallenge:e=>a.post(`/auth/mfa/activate-challenge`,e).then(e=>e.data),getMfaStatus:()=>e()?r({totpEnabled:!1,totpPending:!1,recoveryCodesRemaining:0,required:!1,requiredModeLocked:!1,passkeys:[]}):a.get(`/auth/mfa`).then(e=>e.data),mfaEnroll:()=>a.post(`/auth/mfa/enroll`).then(e=>e.data),mfaActivate:e=>a.post(`/auth/mfa/activate`,e).then(e=>e.data),mfaRegenerateRecoveryCodes:e=>a.post(`/auth/mfa/recovery-codes`,e).then(e=>e.data),mfaDisable:e=>a.post(`/auth/mfa/disable`,e).then(e=>e.data),getMfaPolicy:()=>e()?r({mode:`optional`,locked:!1}):a.get(`/auth/mfa/policy`).then(e=>e.data),setMfaPolicy:e=>a.put(`/auth/mfa/policy`,{mode:e}).then(e=>e.data),passkeyRegisterOptions:()=>a.post(`/auth/passkeys/register-options`).then(e=>e.data),passkeyRegister:e=>a.post(`/auth/passkeys/register`,e).then(e=>e.data),listPasskeys:()=>e()?r([]):a.get(`/auth/passkeys`).then(e=>e.data),deletePasskey:e=>a.delete(`/auth/passkeys/${e}`).then(e=>e.data),passkeyLoginOptions:()=>a.post(`/auth/passkeys/login-options`).then(e=>e.data),passkeyLogin:e=>a.post(`/auth/passkeys/login`,e).then(e=>e.data)},v={getUsers:()=>e()?r([{id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}]):a.get(`/users`).then(e=>e.data),createUser:t=>e()?r({id:`new-user-`+Date.now(),username:t.username,email:t.email,role:t.role,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.post(`/users`,t).then(e=>e.data),updateUser:(t,n)=>e()?r({id:t,username:n.username||`demo`,email:n.email||`demo@example.com`,role:n.role||`user`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.patch(`/users/${t}`,n).then(e=>e.data),deleteUser:t=>e()?r(void 0):a.delete(`/users/${t}`).then(e=>e.data),getPendingApprovals:()=>e()?r({count:0,latestCreatedAt:null}):a.get(`/users/pending-approvals`).then(e=>e.data),approveUser:t=>e()?r({id:t,username:`demo-user`,email:`demo@example.com`,role:`user`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.patch(`/users/${t}/approve`).then(e=>e.data),resetUserMfa:e=>a.post(`/users/${e}/mfa/reset`).then(e=>e.data),updateMyAvatar:t=>e()?r({id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,avatar:t,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.patch(`/users/me/avatar`,{avatar:t}).then(e=>e.data)},y={getGroups:()=>e()?r([]):a.get(`/groups`).then(e=>e.data),createGroup:t=>e()?r({id:`demo-group-`+Date.now(),name:t.name,description:t.description??null,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),members:[]}):a.post(`/groups`,t).then(e=>e.data),updateGroup:(t,n)=>e()?r({id:t,name:n.name??`demo-group`,description:n.description??null,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),members:[]}):a.patch(`/groups/${t}`,n).then(e=>e.data),deleteGroup:t=>e()?r(void 0):a.delete(`/groups/${t}`).then(e=>e.data),addGroupMember:(t,n)=>e()?r({id:t,name:`demo-group`,description:null,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),members:[]}):a.post(`/groups/${t}/members`,{userId:n}).then(e=>e.data),removeGroupMember:(t,n)=>e()?r(void 0):a.delete(`/groups/${t}/members/${n}`).then(e=>e.data),getEffectiveAccess:t=>e()?r({userId:t,username:`demo`,role:`admin`,status:`active`,groups:[],features:{work:!0,"model-download":!0,"web-search":!0,agents:!0},grants:[]}):a.get(`/groups/effective/${t}`).then(e=>e.data),getAuditEvents:(t={})=>{if(e())return r([]);let n=new URLSearchParams;t.action&&n.set(`action`,t.action),t.actor&&n.set(`actor`,t.actor),t.result&&n.set(`result`,t.result),t.limit&&n.set(`limit`,String(t.limit));let i=n.toString()?`?${n.toString()}`:``;return a.get(`/audit${i}`).then(e=>e.data)}},b=n({baseURL:t,timeout:15e3}),x={getSessions:()=>a.get(`/chat/sessions`).then(e=>e.data),createSession:(e,t,n,r,i)=>a.post(`/chat/sessions`,{model:e,title:t,personaId:n,providerType:r,providerId:i}).then(e=>e.data),getSession:t=>{if(e()){let e=c().find(e=>e.id===t);return e?r(e):Promise.resolve({success:!1,error:`Session not found in demo mode`})}return a.get(`/chat/sessions/${t}`).then(e=>e.data)},updateSession:(t,n)=>{if(e()){let e=l.findIndex(e=>e.id===t),i=l[e];if(i){let t={...i,...n,updatedAt:Date.now()};return l[e]=t,r(t)}return Promise.resolve({success:!1,error:`Session not found in demo mode`})}return a.put(`/chat/sessions/${t}`,n).then(e=>e.data)},forkSession:(e,t={})=>a.post(`/chat/sessions/${e}/fork`,t).then(e=>e.data),enqueuePrompt:(e,t)=>a.post(`/chat/sessions/${e}/queue`,{content:t}).then(e=>e.data),updateQueuedPrompt:(e,t,n)=>a.put(`/chat/sessions/${e}/queue/${t}`,{content:n}).then(e=>e.data),reorderPromptQueue:(e,t)=>a.put(`/chat/sessions/${e}/queue`,{order:t}).then(e=>e.data),claimQueuedPrompt:(e,t)=>a.delete(`/chat/sessions/${e}/queue/${t}`).then(e=>e.data),truncateMessagesFrom:(t,n)=>{if(e()){let e=l.find(e=>e.id===t);if(e){let t=e.messages.findIndex(e=>e.id===n);return t===-1?Promise.resolve({success:!1,error:`Message not found in demo mode`}):(e.messages=e.messages.slice(0,t),e.updatedAt=Date.now(),r(e))}return Promise.resolve({success:!1,error:`Session not found in demo mode`})}return a.post(`/chat/sessions/${t}/messages/${n}/truncate`).then(e=>e.data)},deleteSession:t=>e()?r(null):a.delete(`/chat/sessions/${t}`).then(e=>e.data),clearAllSessions:()=>a.delete(`/chat/sessions`).then(e=>e.data),generateTitle:(t,n,i,o,s)=>{if(e()){let e=i.substring(0,30)+(i.length>30?`...`:``);return r({title:e,source:`fallback`,updatedAt:Date.now()})}return a.post(`/chat/sessions/${t}/generate-title`,{model:n,message:i,providerType:o,providerId:s}).then(e=>e.data)},summarizeThinking:(t,n,i)=>{if(e())return r({summary:``});let a=localStorage.getItem(`auth-token`);return b.post(`/chat/sessions/${t}/summarize-thinking`,n,{signal:i,headers:a?{Authorization:`Bearer ${a}`}:void 0}).then(e=>e.data)},getFolders:()=>e()?r([]):a.get(`/chat/folders`).then(e=>e.data),createFolder:e=>a.post(`/chat/folders`,{name:e}).then(e=>e.data),renameFolder:(e,t)=>a.put(`/chat/folders/${e}`,{name:t}).then(e=>e.data),deleteFolder:e=>a.delete(`/chat/folders/${e}`).then(e=>e.data),generateFollowUps:t=>e()?r({suggestions:[]}):a.post(`/chat/sessions/${t}/followups`).then(e=>e.data),sendMessage:(e,t,n)=>a.post(`/chat/sessions/${e}/messages`,{content:t,options:n}).then(e=>e.data),saveMessage:(e,t)=>a.post(`/chat/sessions/${e}/messages`,t).then(e=>e.data),updateMessage:(t,n,i)=>e()?r({}):a.put(`/chat/sessions/${t}/messages/${n}`,i).then(e=>e.data),generateChatResponse:(e,t,n)=>a.post(`/chat/sessions/${e}/generate`,{message:t,options:n}).then(e=>e.data),generateChatStreamResponse:(e,n,r)=>({subscribe:async(a,o,s)=>{try{let c=await fetch(`${t}/chat/sessions/${e}/generate/stream`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:n,options:r})});if(!c.ok)throw Error(`HTTP error! status: ${c.status}`);let l=c.body?.getReader();if(!l)throw Error(`No response body reader available`);let u=new TextDecoder,d=``,f=()=>{l.read().then(({done:e,value:t})=>{if(e){s?.();return}d+=u.decode(t,{stream:!0});let n=d.split(`
2
- `);d=n.pop()||``;for(let e of n){let t=e.trim();if(t.startsWith(`data: `)){let e=t.slice(6);if(e===`[DONE]`){s?.();return}try{let t=JSON.parse(e);if(a(t),t.type===`done`||t.type===`error`){t.type===`error`?o?.(t.error):s?.();return}}catch(e){i.error(`Failed to parse SSE data:`,e)}}}f()}).catch(e=>{o?.(e instanceof Error?e:Error(String(e)))})};return f(),()=>l.cancel()}catch(e){return o?.(e instanceof Error?e:Error(String(e))),()=>{}}}}),getMessageBranches:(t,n)=>e()?r([]):a.get(`/chat/sessions/${t}/messages/${n}/branches`).then(e=>e.data),switchMessageBranch:(t,n,i)=>e()?r({}):a.post(`/chat/sessions/${t}/messages/${n}/branch`,{branchIndex:i}).then(e=>e.data),createMessageBranch:(t,n,i)=>e()?r({}):a.post(`/chat/sessions/${t}/messages/${n}/branches`,{...i}).then(e=>e.data),restoreCompaction:(e,t)=>a.post(`/chat/sessions/${e}/compaction/${t}/restore`).then(e=>e.data),getContextPolicy:()=>e()?r({windowMessages:10}):a.get(`/chat/context-policy`).then(e=>e.data),getCompactionConfig:()=>e()?r({enabled:!1,thresholdTokens:8e3,keepRecentMessages:8,model:``,prompt:``}):a.get(`/chat/compaction-config`).then(e=>e.data),setCompactionConfig:t=>e()?r({enabled:!1,thresholdTokens:8e3,keepRecentMessages:8,model:``,prompt:``},!1):a.put(`/chat/compaction-config`,t).then(e=>e.data)},S={uploadDocument:(t,n)=>{if(e())return r({id:`demo-doc-`+Date.now(),filename:t.name,fileType:t.name.endsWith(`.pdf`)?`pdf`:`txt`,size:t.size,sessionId:n,uploadedAt:Date.now()});let i=new FormData;return i.append(`document`,t),n&&i.append(`sessionId`,n),a.post(`/documents/upload`,i).then(e=>e.data)},getCollections:()=>e()?r([]):a.get(`/documents/collections`).then(e=>e.data),createCollection:e=>a.post(`/documents/collections`,{name:e}).then(e=>e.data),deleteCollection:e=>a.delete(`/documents/collections/${e}`).then(e=>e.data),setDocumentCollection:(e,t)=>a.put(`/documents/${e}/collection`,{collectionId:t}).then(e=>e.data),fetchWebpage:(t,n)=>e()?r({id:`demo-doc-`+Date.now(),filename:`demo-webpage.txt`,fileType:`txt`,size:0,sessionId:n,uploadedAt:Date.now()}):a.post(`/documents/fetch-url`,{url:t,sessionId:n}).then(e=>e.data),getDocuments:t=>{if(e())return r([]);let n=t?`/documents/session/${t}`:`/documents`;return a.get(n).then(e=>e.data)},getDocument:t=>e()?r({id:t,filename:`demo-document.pdf`,fileType:`pdf`,size:1024,content:`Demo document content...`,uploadedAt:Date.now()}):a.get(`/documents/${t}`).then(e=>e.data),searchDocuments:(t,n,i)=>e()?r([]):a.post(`/documents/search`,{query:t,sessionId:n,limit:i}).then(e=>e.data),deleteDocument:t=>e()?r(void 0):a.delete(`/documents/${t}`).then(e=>e.data),getEmbeddingStatus:()=>e()?r({available:!1,model:`nomic-embed-text`,chunksWithEmbeddings:0,totalChunks:0}):a.get(`/documents/embeddings/status`).then(e=>e.data),regenerateEmbeddings:()=>e()?r({documentsTotal:0,documentsRegenerated:0,documentsSkipped:0,chunksTotal:0,chunksEmbedded:0,model:`nomic-embed-text`,version:`v1`}):a.post(`/documents/embeddings/regenerate`).then(e=>e.data)},ee={getModels:()=>e()?r([{id:`nomic-embed-text`,name:`nomic-embed-text`,description:`Ollama - Default embedding model`,provider:`ollama`,dimensions:0,isDetectedEmbedding:!0}]):a.get(`/embeddings/models`).then(e=>e.data)},te={getNotes:()=>e()?r([]):a.get(`/notes`).then(e=>e.data),getNote:e=>a.get(`/notes/${e}`).then(e=>e.data),createNote:(e,t)=>a.post(`/notes`,{title:e,content:t}).then(e=>e.data),updateNote:(e,t)=>a.put(`/notes/${e}`,t).then(e=>e.data),deleteNote:e=>a.delete(`/notes/${e}`).then(e=>e.data),getRevisions:e=>a.get(`/notes/${e}/revisions`).then(e=>e.data),restoreRevision:(e,t)=>a.post(`/notes/${e}/revisions/${t}/restore`).then(e=>e.data),getAttachments:e=>a.get(`/notes/${e}/attachments`).then(e=>e.data),uploadAttachment:(e,t)=>{let n=new FormData;return n.append(`attachment`,t),a.post(`/notes/${e}/attachments`,n,{headers:{"Content-Type":`multipart/form-data`}}).then(e=>e.data)},downloadAttachment:(e,t)=>a.get(`/notes/${e}/attachments/${t}`,{responseType:`blob`}).then(e=>e.data),deleteAttachment:(e,t)=>a.delete(`/notes/${e}/attachments/${t}`).then(e=>e.data),assist:(e,t)=>a.post(`/notes/${e}/assist`,t).then(e=>e.data)},ne={listGrants:(e,t)=>a.get(`/access/grants`,{params:{type:e,id:t}}).then(e=>e.data),createGrant:e=>a.post(`/access/grants`,e).then(e=>e.data),deleteGrant:e=>a.delete(`/access/grants/${e}`).then(e=>e.data),resolvePrincipal:e=>a.get(`/access/principals`,{params:{username:e}}).then(e=>e.data),resolveGroup:e=>a.get(`/access/principals/groups`,{params:{name:e}}).then(e=>e.data)},re={getEvents:(t,n)=>e()?r([]):a.get(`/calendar/events?from=${t}&to=${n}`).then(e=>e.data),createEvent:e=>a.post(`/calendar/events`,e).then(e=>e.data),updateEvent:(e,t)=>a.put(`/calendar/events/${e}`,t).then(e=>e.data),deleteEvent:e=>a.delete(`/calendar/events/${e}`).then(e=>e.data),getCalendars:()=>e()?r([]):a.get(`/calendar/calendars`).then(e=>e.data),createCalendar:e=>a.post(`/calendar/calendars`,e).then(e=>e.data),updateCalendar:(e,t)=>a.put(`/calendar/calendars/${e}`,t).then(e=>e.data),deleteCalendar:e=>a.delete(`/calendar/calendars/${e}`).then(e=>e.data),exportIcs:e=>a.get(e?`/calendar/export?calendarId=${encodeURIComponent(e)}`:`/calendar/export`,{responseType:`blob`}).then(e=>e.data),importIcs:(e,t)=>a.post(`/calendar/import`,{ics:e,...t?{calendarId:t}:{}}).then(e=>e.data)},ie={listMine:()=>e()?r([]):a.get(`/channels`).then(e=>e.data),listPublic:()=>e()?r([]):a.get(`/channels/public`).then(e=>e.data),create:e=>a.post(`/channels`,e).then(e=>e.data),openDm:e=>a.post(`/channels/dm`,{userId:e}).then(e=>e.data),get:e=>a.get(`/channels/${e}`).then(e=>e.data),update:(e,t)=>a.patch(`/channels/${e}`,t).then(e=>e.data),delete:e=>a.delete(`/channels/${e}`).then(e=>e.data),join:e=>a.post(`/channels/${e}/join`).then(e=>e.data),listMembers:e=>a.get(`/channels/${e}/members`).then(e=>e.data),addMember:(e,t)=>a.post(`/channels/${e}/members`,{userId:t}).then(e=>e.data),removeMember:(e,t)=>a.delete(`/channels/${e}/members/${encodeURIComponent(t)}`).then(e=>e.data),listMessages:(e,t={})=>{let n=new URLSearchParams;t.before&&n.set(`before`,t.before),t.after&&n.set(`after`,t.after),t.limit&&n.set(`limit`,String(t.limit));let r=n.size>0?`?${n.toString()}`:``;return a.get(`/channels/${e}/messages${r}`).then(e=>e.data)},postMessage:(e,t)=>a.post(`/channels/${e}/messages`,t).then(e=>e.data),listPins:e=>a.get(`/channels/${e}/pins`).then(e=>e.data),markRead:e=>a.post(`/channels/${e}/read`,{}).then(e=>e.data),thread:e=>a.get(`/channels/messages/${e}/thread`).then(e=>e.data),editMessage:(e,t)=>a.patch(`/channels/messages/${e}`,{content:t}).then(e=>e.data),deleteMessage:e=>a.delete(`/channels/messages/${e}`).then(e=>e.data),setPinned:(e,t)=>a.post(`/channels/messages/${e}/pin`,{pinned:t}).then(e=>e.data),addReaction:(e,t)=>a.post(`/channels/messages/${e}/reactions`,{emoji:t}).then(e=>e.data),removeReaction:(e,t)=>a.delete(`/channels/messages/${e}/reactions/${encodeURIComponent(t)}`).then(e=>e.data),uploadAttachment:(e,t)=>{let n=new FormData;return n.append(`attachment`,t),a.post(`/channels/${e}/attachments`,n,{headers:{"Content-Type":`multipart/form-data`}}).then(e=>e.data)},downloadAttachment:e=>a.get(`/channels/attachments/${e}`,{responseType:`blob`}).then(e=>e.data)},ae={list:(t={})=>{if(e())return r([]);let n=new URLSearchParams;t.before&&n.set(`before`,String(t.before)),t.limit&&n.set(`limit`,String(t.limit));let i=n.size>0?`?${n.toString()}`:``;return a.get(`/notifications${i}`).then(e=>e.data)},unreadCount:()=>e()?r({count:0}):a.get(`/notifications/unread-count`).then(e=>e.data),markRead:e=>a.post(`/notifications/${e}/read`).then(e=>e.data),markAllRead:()=>a.post(`/notifications/read-all`).then(e=>e.data),delete:e=>a.delete(`/notifications/${e}`).then(e=>e.data)},C={getAutomations:()=>e()?r([]):a.get(`/automations`).then(e=>e.data),createAutomation:e=>a.post(`/automations`,e).then(e=>e.data),updateAutomation:(e,t)=>a.put(`/automations/${e}`,t).then(e=>e.data),deleteAutomation:e=>a.delete(`/automations/${e}`).then(e=>e.data),pauseAutomation:e=>a.post(`/automations/${e}/pause`).then(e=>e.data),resumeAutomation:e=>a.post(`/automations/${e}/resume`).then(e=>e.data),runAutomationNow:e=>a.post(`/automations/${e}/run`).then(e=>e.data),rotateWebhookSecret:e=>a.post(`/automations/${e}/webhook-secret`).then(e=>e.data),disableWebhook:e=>a.delete(`/automations/${e}/webhook-secret`).then(e=>e.data),getOccurrences:(t,n)=>e()?r([]):a.get(`/automations/occurrences?from=${t}&to=${n}`).then(e=>e.data),getRuns:t=>{if(e())return r([]);let n=new URLSearchParams;t?.automationId&&n.set(`automationId`,t.automationId),t?.from!==void 0&&n.set(`from`,String(t.from)),t?.to!==void 0&&n.set(`to`,String(t.to));let i=n.size>0?`?${n.toString()}`:``;return a.get(`/automations/runs${i}`).then(e=>e.data)},getRunsSummary:()=>e()?r({unseenCount:0,days:Array.from({length:30},()=>({succeeded:0,failed:0}))}):a.get(`/automations/runs/summary`).then(e=>e.data),markRunsSeen:()=>a.post(`/automations/runs/seen`).then(e=>e.data)},w={getConfig:()=>e()?r({enabled:!1,available:!1,allowed:!1}):a.get(`/search/config`).then(e=>e.data),getAccess:()=>e()?r({mode:`admins`,allowed:!1}):a.get(`/search/access`).then(e=>e.data),setAccess:t=>e()?r({mode:t}):a.put(`/search/access`,{mode:t}).then(e=>e.data),setConfig:(t,n,i)=>e()?r({enabled:t,available:t,allowed:!1,url:n}):a.put(`/search/config`,{enabled:t,url:n,...i??{}}).then(e=>e.data),searchApp:t=>e()?r({sessions:[],notes:[],documents:[]}):a.get(`/search/app`,{params:{q:t}}).then(e=>e.data),test:()=>e()?r({ok:!1,results:0},!1):a.post(`/search/test`).then(e=>e.data)},T={available:!1,enabled:!1,recipient:null},E={getSettings:()=>e()?r(T):a.get(`/email/settings`).then(e=>e.data),updateSettings:t=>e()?r(T):a.put(`/email/settings`,t).then(e=>e.data),test:t=>e()?r({ok:!0,authenticated:!1,sentTo:t??null}):a.post(`/email/test`,t?{to:t}:{}).then(e=>e.data)},D={getModels:t=>e()?r([{id:`meta-llama/Llama-3.3-70B-Instruct`,modelId:`meta-llama/Llama-3.3-70B-Instruct`,author:`meta-llama`,downloads:1e6,likes:5e3,tags:[`text-generation`,`llama`],pipeline_tag:`text-generation`,gated:!1}]):a.get(`/huggingface-hub/models`,{params:t}).then(e=>e.data),getTrending:t=>e()?r([]):a.get(`/huggingface-hub/trending`,{params:t}).then(e=>e.data),getModel:(t,n)=>e()?r({id:`${t}/${n}`,modelId:`${t}/${n}`,author:t,downloads:0,likes:0,tags:[],gated:!1}):a.get(`/huggingface-hub/models/${t}/${n}`).then(e=>e.data),getTasks:()=>e()?r([`text-generation`,`text-to-speech`,`text-to-image`]):a.get(`/huggingface-hub/tasks`).then(e=>e.data),clearCache:()=>e()?r(!0):a.post(`/huggingface-hub/cache/clear`).then(e=>e.data),getGgufFiles:(t,n)=>e()?r([{filename:`model-Q4_K_M.gguf`,size:45e8,sizeFormatted:`4.19 GB`,quantization:`Q4_K_M`,url:`https://huggingface.co/${t}/${n}/resolve/main/model-Q4_K_M.gguf`,ollamaCommand:`hf.co/${t}/${n}:Q4_K_M`}]):a.get(`/huggingface-hub/models/${t}/${n}/gguf`).then(e=>e.data),hasGgufFiles:(t,n)=>e()?r({hasGguf:!1,count:0}):a.get(`/huggingface-hub/models/${t}/${n}/has-gguf`).then(e=>e.data)};function O(e,t){return t?t.aborted?Promise.reject(t.reason??new DOMException(`The operation was aborted`,`AbortError`)):new Promise((n,r)=>{let i=()=>{r(t.reason??new DOMException(`The operation was aborted`,`AbortError`))};t.addEventListener(`abort`,i,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,i),n(e)},e=>{t.removeEventListener(`abort`,i),r(e)})}):e}var k={getModels:()=>e()?r([{model:`gpt-image-2`,plugin:`openai`,config:{sizes:[`1024x1024`,`1536x1024`,`1024x1536`],default_size:`1024x1024`,qualities:[`auto`,`low`,`medium`,`high`],default_quality:`auto`}}]):a.get(`/image-gen/models`).then(e=>e.data),getPlugins:()=>e()?r([{id:`openai`,name:`OpenAI GPT Image`,models:[`gpt-image-2`,`gpt-image-1.5`,`gpt-image-1`,`gpt-image-1-mini`],config:{sizes:[`1024x1024`,`1536x1024`,`1024x1536`],default_size:`1024x1024`,qualities:[`auto`,`low`,`medium`,`high`],default_quality:`auto`}}]):a.get(`/image-gen/plugins`).then(e=>e.data),getConfig:t=>e()?r({sizes:[`1024x1024`,`1536x1024`,`1024x1536`],default_size:`1024x1024`,qualities:[`auto`,`low`,`medium`,`high`],default_quality:`auto`}):a.get(`/image-gen/config/${t}`).then(e=>e.data),generate:(t,n)=>e()?O(r({images:[{url:`https://placehold.co/1024x1024/purple/white?text=Demo+Image`,revised_prompt:t.prompt}],model:t.model,pluginId:t.pluginId}),n):a.post(`/image-gen/generate`,t,{signal:n}).then(e=>e.data),getGallery:t=>e()?r({images:[],total:0}):a.get(`/image-gen/gallery`,{params:t}).then(e=>e.data),getGalleryImage:t=>e()?r({id:t,userId:`demo`,prompt:`Demo image prompt`,model:`dall-e-3`,imageData:`https://placehold.co/1024x1024/purple/white?text=Demo`,createdAt:Date.now()}):a.get(`/image-gen/gallery/${t}`).then(e=>e.data),deleteGalleryImage:t=>e()?r(void 0):a.delete(`/image-gen/gallery/${t}`).then(e=>e.data)},A={getModels:()=>a.get(`/media/models`).then(e=>e.data),generateAudio:(e,t)=>a.post(`/media/audio/generate`,e,{signal:t}).then(e=>e.data),cloneVoice:(e,t)=>{let n=new FormData;return n.set(`model`,e.model),n.set(`pluginId`,e.pluginId),n.set(`input`,e.input),n.set(`reference_audio`,e.referenceAudio),e.referenceText&&n.set(`reference_text`,e.referenceText),e.responseFormat&&n.set(`response_format`,e.responseFormat),e.saveVoiceName&&n.set(`saveVoiceName`,e.saveVoiceName),e.consentToStore&&n.set(`consentToStore`,`true`),e.consentTtlDays!==void 0&&n.set(`consentTtlDays`,String(e.consentTtlDays)),a.post(`/media/audio/voice-clone`,n,{signal:t}).then(e=>e.data)},generateSound:(e,t)=>a.post(`/media/sound/generate`,e,{signal:t}).then(e=>e.data),generateVideo:(e,t)=>a.post(`/media/video/generate`,e,{signal:t}).then(e=>e.data),getVideoJob:(e,t)=>a.get(`/media/video/jobs/${e}`,{signal:t}).then(e=>e.data),listVideoJobs:e=>a.get(`/media/video/jobs`,{params:e}).then(e=>e.data),resumeVideoJob:(e,t)=>a.post(`/media/video/jobs/${encodeURIComponent(e)}/resume`,void 0,{signal:t}).then(e=>e.data),cancelVideoJob:e=>a.delete(`/media/video/jobs/${encodeURIComponent(e)}`).then(e=>e.data),getGallery:e=>a.get(`/media/gallery`,{params:e}).then(e=>e.data),deleteGalleryItem:e=>a.delete(`/media/gallery/${e}`).then(e=>e.data),editImage:(e,t)=>{let n=new FormData;n.set(`model`,e.model),n.set(`pluginId`,e.pluginId),n.set(`prompt`,e.prompt),e.size&&n.set(`size`,e.size),e.sourceMediaId&&n.set(`sourceMediaId`,e.sourceMediaId);for(let t of e.images??[])n.append(`images`,t);return e.mask&&n.append(`mask`,e.mask,`mask.png`),a.post(`/media/image/edit`,n,{signal:t}).then(e=>e.data)},getGalleryContent:e=>a.get(`/media/gallery/${e}/content`,{responseType:`blob`}).then(e=>e.data)},j=(e,t,n)=>{let r=new AbortController,i=localStorage.getItem(`auth-token`);return(async()=>{try{let n=await fetch(e,{headers:{Accept:`text/event-stream`,...i?{Authorization:`Bearer ${i}`}:{}},cache:`no-store`,credentials:`same-origin`,signal:r.signal});if(!n.ok){let e=`Request failed with status ${n.status}`;try{let t=await n.json();typeof t.error==`string`?e=t.error:typeof t.message==`string`&&(e=t.message)}catch{}throw Error(e)}if(!n.body)throw Error(`Response stream is unavailable`);let a=n.body.getReader(),o=new TextDecoder,s=``;try{for(;!r.signal.aborted;){let{done:e,value:n}=await a.read();s+=o.decode(n,{stream:!e});let r=s.split(/\r?\n\r?\n/);s=r.pop()||``;for(let e of r){let n=e.split(/\r?\n/).find(e=>e.startsWith(`data:`));n&&t(JSON.parse(n.slice(5).trim()))}if(e)break}}finally{a.releaseLock()}}catch(e){r.signal.aborted||n(e instanceof Error?e.message:`Connection lost`)}})(),()=>r.abort()},M=`libre:models-changed`,N=()=>{window.dispatchEvent(new Event(M))},P={checkHealth:()=>e()?r({status:`offline`},!1):a.get(`/ollama/health`).then(e=>e.data),getSettings:()=>e()?r({enabled:!0,baseUrl:`http://localhost:11434`}):a.get(`/ollama/settings`).then(e=>e.data),updateSettings:t=>e()?r({enabled:!0,baseUrl:`http://localhost:11434`}):a.put(`/ollama/settings`,t).then(e=>e.data),getModels:()=>e()?r(s):a.get(`/ollama/models`).then(e=>e.data),getModelAccess:()=>e()?r({mode:`admins`,allowed:!1}):a.get(`/ollama/models/access`).then(e=>e.data),setModelAccess:t=>e()?r({mode:t}):a.put(`/ollama/models/access`,{mode:t}).then(e=>e.data),getModelVisibility:()=>e()?r({hidden:[],order:[],starred:[],metadata:{}}):a.get(`/ollama/models/visibility`).then(e=>e.data),setModelVisibility:t=>e()?r({hidden:t.hidden??[],order:t.order??[],starred:t.starred??[],metadata:t.metadata??{}}):a.put(`/ollama/models/visibility`,t).then(e=>e.data),pullModel:t=>e()?r(null,!1):a.post(`/ollama/models/pull`,{name:t}).then(e=>(N(),e.data)),pullModelStream:(n,r,i,a)=>{if(e()){let e=0,t=setInterval(()=>{e+=Math.random()*20,e>=100?(e=100,r({status:`success`,total:100,completed:100,percent:100}),clearInterval(t),setTimeout(()=>{N(),i()},500)):r({status:`pulling`,total:100,completed:e,percent:Math.round(e)})},1e3);return()=>clearInterval(t)}let o=new URLSearchParams({model:n});return j(`${t}/ollama/pull/stream?${o.toString()}`,e=>{switch(e.type){case`progress`:r({status:typeof e.status==`string`?e.status:`pulling`,digest:typeof e.digest==`string`?e.digest:void 0,total:typeof e.total==`number`?e.total:void 0,completed:typeof e.completed==`number`?e.completed:void 0,percent:typeof e.percent==`number`?e.percent:void 0});break;case`complete`:N(),i();break;case`error`:a(String(e.error||`Model pull failed`))}},a)},deleteModel:t=>e()?r(null,!1):a.delete(`/ollama/models`,{params:{name:t}}).then(e=>(N(),e.data)),getModelDefaults:e=>a.get(`/ollama/models/${encodeURIComponent(e)}/defaults`).then(e=>e.data),showModel:(t,n=!1)=>{if(e()){let e=s.find(e=>e.name===t);return r(e||null,!!e)}return a.get(`/ollama/models/show`,{params:{name:t,verbose:n}}).then(e=>e.data)},createModel:t=>e()?r(null,!1):a.post(`/ollama/models`,t).then(e=>(N(),e.data)),copyModel:(t,n)=>e()?r(null,!1):a.post(`/ollama/models/copy`,{source:t,destination:n}).then(e=>(N(),e.data)),pushModel:t=>e()?r(null,!1):a.post(`/ollama/models/push`,{name:t}).then(e=>e.data),pullAllModels:()=>e()?r(null,!1):a.post(`/ollama/models/pull-all`).then(e=>e.data),pullAllModelsStream:(n,r,i)=>{if(e()){let e=s,t=0,i=setInterval(()=>{t++,t<=e.length&&n({current:t,total:e.length,modelName:e[t-1]?.name||`demo-model`,status:Math.random()>.1?`success`:`error`,error:Math.random()>.1?void 0:`Demo error`}),t>=e.length&&(clearInterval(i),setTimeout(()=>{N(),r()},500))},1e3);return}j(`${t}/ollama/models/pull-all/stream`,e=>{switch(e.type){case`progress`:{let t=e.status===`success`||e.status===`error`?e.status:`starting`;n({current:typeof e.current==`number`?e.current:0,total:typeof e.total==`number`?e.total:0,modelName:typeof e.modelName==`string`?e.modelName:`unknown`,status:t,error:typeof e.error==`string`?e.error:void 0});break}case`complete`:N(),r();break;case`error`:i(String(e.error||`Model update failed`))}},i)},generateEmbeddings:t=>e()?r({embeddings:[[]]},!1):a.post(`/ollama/embed`,t).then(e=>e.data),listRunningModels:()=>e()?r([]):a.get(`/ollama/running`).then(e=>e.data),unloadModel:t=>e()?r(null):a.post(`/ollama/models/unload`,{name:t}).then(e=>e.data),unloadAllModels:()=>e()?r(null):a.post(`/ollama/models/unload-all`).then(e=>e.data),getVersion:()=>e()?r({version:`demo-mode`},!1):a.get(`/ollama/version`).then(e=>e.data),chatCompletion:t=>e()?r({message:{content:`Demo response`,role:`assistant`}},!1):a.post(`/ollama/chat`,t).then(e=>e.data),checkBlobExists:t=>e()?Promise.resolve(!1):a.head(`/ollama/blobs/${t}`).then(()=>!0).catch(()=>!1),pushBlob:(t,n)=>e()?r(null,!1):a.post(`/ollama/blobs/${t}`,n,{headers:{"Content-Type":`application/octet-stream`}}).then(e=>e.data),generateLegacyEmbeddings:t=>e()?r({embedding:[]},!1):a.post(`/ollama/embeddings`,t).then(e=>e.data),getLibraryModels:t=>{if(e())return t?.category===`cloud`?r([{name:`gpt-oss:cloud`,description:`Demo cloud model using Ollama cloud naming`,category:`cloud`,sizes:[`cloud`],pulls:`Cloud`,tags:[`cloud`]}]):r([{name:`llama3.2`,description:`Meta's latest Llama model`,category:`general`,sizes:[`1b`,`3b`],pulls:`50M+`,tags:[`general`]},{name:`deepseek-r1`,description:`Open reasoning model`,category:`reasoning`,sizes:[`7b`,`14b`,`32b`],pulls:`200M+`,tags:[`reasoning`]}]);let n=new URLSearchParams;t?.search&&n.set(`search`,t.search),t?.sort&&n.set(`sort`,t.sort),t?.category&&n.set(`category`,t.category);let i=n.toString();return a.get(`/ollama/library${i?`?${i}`:``}`).then(e=>e.data)}},F=[[`#2563eb`,`#7c3aed`],[`#0891b2`,`#2563eb`],[`#0f766e`,`#2563eb`],[`#be123c`,`#7c3aed`],[`#ff7b52`,`#dc2626`]],I=e=>{let t=0;for(let n=0;n<e.length;n+=1)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t)},L=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),R=e=>{let t=e.trim().split(/[\s._-]+/).filter(Boolean);return t.length===0?`AI`:t.slice(0,2).map(e=>e[0]?.toUpperCase()).join(``)||`AI`},z=(e,t=128)=>{let n=e.trim()||`AI Persona`,r=I(n),[i,a]=F[r%F.length],o=L(R(n)),s=`persona-avatar-${r}-${t}`,c=t>=96?44:24,l=`
1
+ import{a as e}from"./logger-BR4forr_.js";import{t}from"./config-Da1yh9sC.js";import{i as n,n as r,r as i,t as a}from"./client-jaxZzn-I.js";import"./strandsApi-COxSPh_5.js";import"./workApi-Ck8nTlJn.js";var o={getAccess:()=>e()?r({enabled:!1,lockedByEnv:!1}):a.get(`/agent-clis/access`).then(e=>e.data),setAccess:t=>e()?r({enabled:t,lockedByEnv:!1}):a.put(`/agent-clis/access`,{enabled:t}).then(e=>e.data),getModels:()=>e()?r([]):a.get(`/agent-clis/models`).then(e=>e.data)},s=[{name:`llama3.2:3b`,size:2048e6,digest:`demo-digest-1`,modified_at:new Date().toISOString(),details:{format:`gguf`,family:`llama`,families:[`llama`],parameter_size:`3B`,quantization_level:`Q4_0`}},{name:`qwen2.5:7b`,size:4096e6,digest:`demo-digest-2`,modified_at:new Date().toISOString(),details:{format:`gguf`,family:`qwen`,families:[`qwen`],parameter_size:`7B`,quantization_level:`Q4_0`}}],c=()=>[{id:`demo-session-1`,title:`Demo Chat Session`,model:s[0].name,providerType:`ollama`,providerId:null,messages:[{id:`demo-msg-1`,role:`user`,content:`Hello! Can you tell me about this demo?`,timestamp:Date.now()},{id:`demo-msg-2`,role:`assistant`,content:`This is a demo of Libre WebUI! In a real deployment, I would be powered by Ollama running locally on your machine. This demo shows the beautiful interface and features without the backend connection.`,timestamp:Date.now()}],createdAt:Date.now(),updatedAt:Date.now()}],l=c(),u={theme:{mode:`celestial`,adaptToAccent:!1,accent:`blue`,customAccent:`#2563eb`},defaultModel:`llama3.2:3b`,defaultProviderType:`ollama`,defaultProviderId:null,visionModel:``,visionProviderType:null,visionProviderId:null,systemMessage:`You are a helpful assistant.`,generationOptions:{temperature:.7,top_p:.9,top_k:40,num_predict:1024},embeddingSettings:{enabled:!1,model:`nomic-embed-text`,chunkSize:1e3,chunkOverlap:200,similarityThreshold:.7},titleSettings:{autoTitle:!1,taskModel:``,taskProviderType:null,taskProviderId:null},showUsername:!1,hapticFeedbackEnabled:!1,workRemoteProviderDisclosureDismissed:!1,backgroundSettings:{enabled:!1,imageUrl:``,blurAmount:10,opacity:.6}},d={...u,theme:{...u.theme},generationOptions:{...u.generationOptions},embeddingSettings:{...u.embeddingSettings},titleSettings:{...u.titleSettings},backgroundSettings:{...u.backgroundSettings}},f=()=>d,p=e=>{let t=d.backgroundSettings||u.backgroundSettings;return d={...d,...e,theme:{...d.theme,...e.theme},generationOptions:{...d.generationOptions,...e.generationOptions},embeddingSettings:{...d.embeddingSettings,...e.embeddingSettings},titleSettings:e.titleSettings?{...d.titleSettings||u.titleSettings,...e.titleSettings}:d.titleSettings,backgroundSettings:e.backgroundSettings?{...t,...e.backgroundSettings}:d.backgroundSettings},d},m=`0.40.0`,h=[`chat`,`models`,`documents`,`notes`,`personas`,`media`,`work`,`admin`],g=e=>!!e&&e.mfaRequired===!0,_={login:t=>e()?r({user:{id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},token:`demo-token`,systemInfo:{requiresAuth:!0,hasUsers:!0,userCount:1,signupEnabled:!0,version:m}}):a.post(`/auth/login`,t).then(e=>e.data),signup:t=>e()?r({user:{id:`demo-user-new`,username:t.username,email:t.email||``,role:`user`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},token:`demo-token-new`,systemInfo:{requiresAuth:!0,hasUsers:!0,userCount:1,signupEnabled:!0,version:m,turnstile:{enabled:!1}}}):a.post(`/auth/signup`,t).then(e=>e.data),logout:()=>e()?r(void 0):a.post(`/auth/logout`).then(e=>e.data),getSystemInfo:()=>(i.debug(`getSystemInfo called, demo mode:`,e()),e()?r({requiresAuth:!0,hasUsers:!0,userCount:1,signupEnabled:!0,version:m,turnstile:{enabled:!1},defaultTheme:u.theme}):(i.debug(`Making API call to:`,t+`/auth/system-info`),i.debug(`Full URL from:`,window.location.origin,`-> API:`,t+`/auth/system-info`),a.get(`/auth/system-info`).then(e=>(i.debug(`getSystemInfo response:`,e.data),e.data)).catch(e=>{throw i.debug(`getSystemInfo error:`,e),e.response&&(i.debug(`Error response data:`,e.response.data),i.debug(`Error status:`,e.response.status),i.debug(`Error headers:`,e.response.headers)),e.request&&i.debug(`Network error - no response received:`,e.request),i.debug(`Error config:`,e.config),e}))),verifyToken:()=>e()?r({id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.get(`/auth/verify`).then(e=>e.data),getEncryptionKey:()=>e()?r({encryptionKey:`demo-encryption-key-not-real`}):a.get(`/auth/encryption-key`).then(e=>e.data),getSessions:()=>e()?r([{id:`demo-session`,kind:`password`,userAgent:navigator.userAgent,createdAt:new Date().toISOString(),lastSeenAt:new Date().toISOString(),expiresAt:null,revokedAt:null,current:!0}]):a.get(`/auth/sessions`).then(e=>e.data),revokeSession:t=>e()?r(void 0):a.delete(`/auth/sessions/${t}`).then(e=>e.data),revokeOtherSessions:()=>e()?r({revokedCount:0}):a.post(`/auth/sessions/revoke-others`).then(e=>e.data),listApiTokens:()=>e()?r([]):a.get(`/auth/tokens`).then(e=>e.data),createApiToken:t=>e()?r({token:`lwui_demo_not_a_real_token`,record:{id:`demo-token-`+Date.now(),name:t.name,tokenPrefix:`lwui_demo`,scopes:t.scopes,createdAt:new Date().toISOString(),expiresAt:null,lastUsedAt:null,revokedAt:null}}):a.post(`/auth/tokens`,t).then(e=>e.data),revokeApiToken:t=>e()?r(void 0):a.delete(`/auth/tokens/${t}`).then(e=>e.data),mfaVerify:e=>a.post(`/auth/mfa/verify`,e).then(e=>e.data),mfaEnrollChallenge:e=>a.post(`/auth/mfa/enroll-challenge`,e).then(e=>e.data),mfaActivateChallenge:e=>a.post(`/auth/mfa/activate-challenge`,e).then(e=>e.data),getMfaStatus:()=>e()?r({totpEnabled:!1,totpPending:!1,recoveryCodesRemaining:0,required:!1,requiredModeLocked:!1,passkeys:[]}):a.get(`/auth/mfa`).then(e=>e.data),mfaEnroll:()=>a.post(`/auth/mfa/enroll`).then(e=>e.data),mfaActivate:e=>a.post(`/auth/mfa/activate`,e).then(e=>e.data),mfaRegenerateRecoveryCodes:e=>a.post(`/auth/mfa/recovery-codes`,e).then(e=>e.data),mfaDisable:e=>a.post(`/auth/mfa/disable`,e).then(e=>e.data),getMfaPolicy:()=>e()?r({mode:`optional`,locked:!1}):a.get(`/auth/mfa/policy`).then(e=>e.data),setMfaPolicy:e=>a.put(`/auth/mfa/policy`,{mode:e}).then(e=>e.data),passkeyRegisterOptions:()=>a.post(`/auth/passkeys/register-options`).then(e=>e.data),passkeyRegister:e=>a.post(`/auth/passkeys/register`,e).then(e=>e.data),listPasskeys:()=>e()?r([]):a.get(`/auth/passkeys`).then(e=>e.data),deletePasskey:e=>a.delete(`/auth/passkeys/${e}`).then(e=>e.data),passkeyLoginOptions:()=>a.post(`/auth/passkeys/login-options`).then(e=>e.data),passkeyLogin:e=>a.post(`/auth/passkeys/login`,e).then(e=>e.data)},v={getUsers:()=>e()?r([{id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}]):a.get(`/users`).then(e=>e.data),createUser:t=>e()?r({id:`new-user-`+Date.now(),username:t.username,email:t.email,role:t.role,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.post(`/users`,t).then(e=>e.data),updateUser:(t,n)=>e()?r({id:t,username:n.username||`demo`,email:n.email||`demo@example.com`,role:n.role||`user`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.patch(`/users/${t}`,n).then(e=>e.data),deleteUser:t=>e()?r(void 0):a.delete(`/users/${t}`).then(e=>e.data),getPendingApprovals:()=>e()?r({count:0,latestCreatedAt:null}):a.get(`/users/pending-approvals`).then(e=>e.data),approveUser:t=>e()?r({id:t,username:`demo-user`,email:`demo@example.com`,role:`user`,status:`active`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.patch(`/users/${t}/approve`).then(e=>e.data),resetUserMfa:e=>a.post(`/users/${e}/mfa/reset`).then(e=>e.data),updateMyAvatar:t=>e()?r({id:`demo-user`,username:`demo`,email:`demo@example.com`,role:`admin`,status:`active`,avatar:t,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}):a.patch(`/users/me/avatar`,{avatar:t}).then(e=>e.data)},y={getGroups:()=>e()?r([]):a.get(`/groups`).then(e=>e.data),createGroup:t=>e()?r({id:`demo-group-`+Date.now(),name:t.name,description:t.description??null,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),members:[]}):a.post(`/groups`,t).then(e=>e.data),updateGroup:(t,n)=>e()?r({id:t,name:n.name??`demo-group`,description:n.description??null,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),members:[]}):a.patch(`/groups/${t}`,n).then(e=>e.data),deleteGroup:t=>e()?r(void 0):a.delete(`/groups/${t}`).then(e=>e.data),addGroupMember:(t,n)=>e()?r({id:t,name:`demo-group`,description:null,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),members:[]}):a.post(`/groups/${t}/members`,{userId:n}).then(e=>e.data),removeGroupMember:(t,n)=>e()?r(void 0):a.delete(`/groups/${t}/members/${n}`).then(e=>e.data),getEffectiveAccess:t=>e()?r({userId:t,username:`demo`,role:`admin`,status:`active`,groups:[],features:{work:!0,"model-download":!0,"web-search":!0,agents:!0},grants:[]}):a.get(`/groups/effective/${t}`).then(e=>e.data),getAuditEvents:(t={})=>{if(e())return r([]);let n=new URLSearchParams;t.action&&n.set(`action`,t.action),t.actor&&n.set(`actor`,t.actor),t.result&&n.set(`result`,t.result),t.limit&&n.set(`limit`,String(t.limit));let i=n.toString()?`?${n.toString()}`:``;return a.get(`/audit${i}`).then(e=>e.data)}},b=n({baseURL:t,timeout:15e3}),x={getSessions:()=>a.get(`/chat/sessions`).then(e=>e.data),createSession:(e,t,n,r,i)=>a.post(`/chat/sessions`,{model:e,title:t,personaId:n,providerType:r,providerId:i}).then(e=>e.data),getSession:t=>{if(e()){let e=c().find(e=>e.id===t);return e?r(e):Promise.resolve({success:!1,error:`Session not found in demo mode`})}return a.get(`/chat/sessions/${t}`).then(e=>e.data)},updateSession:(t,n)=>{if(e()){let e=l.findIndex(e=>e.id===t),i=l[e];if(i){let t={...i,...n,updatedAt:Date.now()};return l[e]=t,r(t)}return Promise.resolve({success:!1,error:`Session not found in demo mode`})}return a.put(`/chat/sessions/${t}`,n).then(e=>e.data)},forkSession:(e,t={})=>a.post(`/chat/sessions/${e}/fork`,t).then(e=>e.data),enqueuePrompt:(e,t)=>a.post(`/chat/sessions/${e}/queue`,{content:t}).then(e=>e.data),updateQueuedPrompt:(e,t,n)=>a.put(`/chat/sessions/${e}/queue/${t}`,{content:n}).then(e=>e.data),reorderPromptQueue:(e,t)=>a.put(`/chat/sessions/${e}/queue`,{order:t}).then(e=>e.data),claimQueuedPrompt:(e,t)=>a.delete(`/chat/sessions/${e}/queue/${t}`).then(e=>e.data),truncateMessagesFrom:(t,n)=>{if(e()){let e=l.find(e=>e.id===t);if(e){let t=e.messages.findIndex(e=>e.id===n);return t===-1?Promise.resolve({success:!1,error:`Message not found in demo mode`}):(e.messages=e.messages.slice(0,t),e.updatedAt=Date.now(),r(e))}return Promise.resolve({success:!1,error:`Session not found in demo mode`})}return a.post(`/chat/sessions/${t}/messages/${n}/truncate`).then(e=>e.data)},deleteSession:t=>e()?r(null):a.delete(`/chat/sessions/${t}`).then(e=>e.data),clearAllSessions:()=>a.delete(`/chat/sessions`).then(e=>e.data),generateTitle:(t,n,i,o,s)=>{if(e()){let e=i.substring(0,30)+(i.length>30?`...`:``);return r({title:e,source:`fallback`,updatedAt:Date.now()})}return a.post(`/chat/sessions/${t}/generate-title`,{model:n,message:i,providerType:o,providerId:s}).then(e=>e.data)},summarizeThinking:(t,n,i)=>{if(e())return r({summary:``});let a=localStorage.getItem(`auth-token`);return b.post(`/chat/sessions/${t}/summarize-thinking`,n,{signal:i,headers:a?{Authorization:`Bearer ${a}`}:void 0}).then(e=>e.data)},getFolders:()=>e()?r([]):a.get(`/chat/folders`).then(e=>e.data),createFolder:e=>a.post(`/chat/folders`,{name:e}).then(e=>e.data),renameFolder:(e,t)=>a.put(`/chat/folders/${e}`,{name:t}).then(e=>e.data),deleteFolder:e=>a.delete(`/chat/folders/${e}`).then(e=>e.data),generateFollowUps:t=>e()?r({suggestions:[]}):a.post(`/chat/sessions/${t}/followups`).then(e=>e.data),sendMessage:(e,t,n)=>a.post(`/chat/sessions/${e}/messages`,{content:t,options:n}).then(e=>e.data),saveMessage:(e,t)=>a.post(`/chat/sessions/${e}/messages`,t).then(e=>e.data),updateMessage:(t,n,i)=>e()?r({}):a.put(`/chat/sessions/${t}/messages/${n}`,i).then(e=>e.data),generateChatResponse:(e,t,n)=>a.post(`/chat/sessions/${e}/generate`,{message:t,options:n}).then(e=>e.data),generateChatStreamResponse:(e,n,r)=>({subscribe:async(a,o,s)=>{try{let c=await fetch(`${t}/chat/sessions/${e}/generate/stream`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:n,options:r})});if(!c.ok)throw Error(`HTTP error! status: ${c.status}`);let l=c.body?.getReader();if(!l)throw Error(`No response body reader available`);let u=new TextDecoder,d=``,f=()=>{l.read().then(({done:e,value:t})=>{if(e){s?.();return}d+=u.decode(t,{stream:!0});let n=d.split(`
2
+ `);d=n.pop()||``;for(let e of n){let t=e.trim();if(t.startsWith(`data: `)){let e=t.slice(6);if(e===`[DONE]`){s?.();return}try{let t=JSON.parse(e);if(a(t),t.type===`done`||t.type===`error`){t.type===`error`?o?.(t.error):s?.();return}}catch(e){i.error(`Failed to parse SSE data:`,e)}}}f()}).catch(e=>{o?.(e instanceof Error?e:Error(String(e)))})};return f(),()=>l.cancel()}catch(e){return o?.(e instanceof Error?e:Error(String(e))),()=>{}}}}),getMessageBranches:(t,n)=>e()?r([]):a.get(`/chat/sessions/${t}/messages/${n}/branches`).then(e=>e.data),switchMessageBranch:(t,n,i)=>e()?r({}):a.post(`/chat/sessions/${t}/messages/${n}/branch`,{branchIndex:i}).then(e=>e.data),createMessageBranch:(t,n,i)=>e()?r({}):a.post(`/chat/sessions/${t}/messages/${n}/branches`,{...i}).then(e=>e.data),restoreCompaction:(e,t)=>a.post(`/chat/sessions/${e}/compaction/${t}/restore`).then(e=>e.data),getContextPolicy:()=>e()?r({windowMessages:10}):a.get(`/chat/context-policy`).then(e=>e.data),getCompactionConfig:()=>e()?r({enabled:!1,thresholdTokens:8e3,keepRecentMessages:8,model:``,prompt:``}):a.get(`/chat/compaction-config`).then(e=>e.data),setCompactionConfig:t=>e()?r({enabled:!1,thresholdTokens:8e3,keepRecentMessages:8,model:``,prompt:``},!1):a.put(`/chat/compaction-config`,t).then(e=>e.data)},S={uploadDocument:(t,n)=>{if(e())return r({id:`demo-doc-`+Date.now(),filename:t.name,fileType:t.name.endsWith(`.pdf`)?`pdf`:`txt`,size:t.size,sessionId:n,uploadedAt:Date.now()});let i=new FormData;return i.append(`document`,t),n&&i.append(`sessionId`,n),a.post(`/documents/upload`,i).then(e=>e.data)},getCollections:()=>e()?r([]):a.get(`/documents/collections`).then(e=>e.data),createCollection:e=>a.post(`/documents/collections`,{name:e}).then(e=>e.data),deleteCollection:e=>a.delete(`/documents/collections/${e}`).then(e=>e.data),setDocumentCollection:(e,t)=>a.put(`/documents/${e}/collection`,{collectionId:t}).then(e=>e.data),fetchWebpage:(t,n)=>e()?r({id:`demo-doc-`+Date.now(),filename:`demo-webpage.txt`,fileType:`txt`,size:0,sessionId:n,uploadedAt:Date.now()}):a.post(`/documents/fetch-url`,{url:t,sessionId:n}).then(e=>e.data),getDocuments:t=>{if(e())return r([]);let n=t?`/documents/session/${t}`:`/documents`;return a.get(n).then(e=>e.data)},getDocument:t=>e()?r({id:t,filename:`demo-document.pdf`,fileType:`pdf`,size:1024,content:`Demo document content...`,uploadedAt:Date.now()}):a.get(`/documents/${t}`).then(e=>e.data),searchDocuments:(t,n,i)=>e()?r([]):a.post(`/documents/search`,{query:t,sessionId:n,limit:i}).then(e=>e.data),deleteDocument:t=>e()?r(void 0):a.delete(`/documents/${t}`).then(e=>e.data),getEmbeddingStatus:()=>e()?r({available:!1,model:`nomic-embed-text`,chunksWithEmbeddings:0,totalChunks:0}):a.get(`/documents/embeddings/status`).then(e=>e.data),regenerateEmbeddings:()=>e()?r({documentsTotal:0,documentsRegenerated:0,documentsSkipped:0,chunksTotal:0,chunksEmbedded:0,model:`nomic-embed-text`,version:`v1`}):a.post(`/documents/embeddings/regenerate`).then(e=>e.data)},ee={getModels:()=>e()?r([{id:`nomic-embed-text`,name:`nomic-embed-text`,description:`Ollama - Default embedding model`,provider:`ollama`,dimensions:0,isDetectedEmbedding:!0}]):a.get(`/embeddings/models`).then(e=>e.data)},te={getNotes:()=>e()?r([]):a.get(`/notes`).then(e=>e.data),getNote:e=>a.get(`/notes/${e}`).then(e=>e.data),createNote:(e,t)=>a.post(`/notes`,{title:e,content:t}).then(e=>e.data),updateNote:(e,t)=>a.put(`/notes/${e}`,t).then(e=>e.data),deleteNote:e=>a.delete(`/notes/${e}`).then(e=>e.data),getRevisions:e=>a.get(`/notes/${e}/revisions`).then(e=>e.data),restoreRevision:(e,t)=>a.post(`/notes/${e}/revisions/${t}/restore`).then(e=>e.data),getAttachments:e=>a.get(`/notes/${e}/attachments`).then(e=>e.data),uploadAttachment:(e,t)=>{let n=new FormData;return n.append(`attachment`,t),a.post(`/notes/${e}/attachments`,n,{headers:{"Content-Type":`multipart/form-data`}}).then(e=>e.data)},downloadAttachment:(e,t)=>a.get(`/notes/${e}/attachments/${t}`,{responseType:`blob`}).then(e=>e.data),deleteAttachment:(e,t)=>a.delete(`/notes/${e}/attachments/${t}`).then(e=>e.data),assist:(e,t)=>a.post(`/notes/${e}/assist`,t).then(e=>e.data)},ne={listGrants:(e,t)=>a.get(`/access/grants`,{params:{type:e,id:t}}).then(e=>e.data),createGrant:e=>a.post(`/access/grants`,e).then(e=>e.data),deleteGrant:e=>a.delete(`/access/grants/${e}`).then(e=>e.data),resolvePrincipal:e=>a.get(`/access/principals`,{params:{username:e}}).then(e=>e.data),resolveGroup:e=>a.get(`/access/principals/groups`,{params:{name:e}}).then(e=>e.data)},re={getEvents:(t,n)=>e()?r([]):a.get(`/calendar/events?from=${t}&to=${n}`).then(e=>e.data),createEvent:e=>a.post(`/calendar/events`,e).then(e=>e.data),updateEvent:(e,t)=>a.put(`/calendar/events/${e}`,t).then(e=>e.data),deleteEvent:e=>a.delete(`/calendar/events/${e}`).then(e=>e.data),getCalendars:()=>e()?r([]):a.get(`/calendar/calendars`).then(e=>e.data),createCalendar:e=>a.post(`/calendar/calendars`,e).then(e=>e.data),updateCalendar:(e,t)=>a.put(`/calendar/calendars/${e}`,t).then(e=>e.data),deleteCalendar:e=>a.delete(`/calendar/calendars/${e}`).then(e=>e.data),exportIcs:e=>a.get(e?`/calendar/export?calendarId=${encodeURIComponent(e)}`:`/calendar/export`,{responseType:`blob`}).then(e=>e.data),importIcs:(e,t)=>a.post(`/calendar/import`,{ics:e,...t?{calendarId:t}:{}}).then(e=>e.data)},ie={listMine:()=>e()?r([]):a.get(`/channels`).then(e=>e.data),listPublic:()=>e()?r([]):a.get(`/channels/public`).then(e=>e.data),create:e=>a.post(`/channels`,e).then(e=>e.data),openDm:e=>a.post(`/channels/dm`,{userId:e}).then(e=>e.data),get:e=>a.get(`/channels/${e}`).then(e=>e.data),update:(e,t)=>a.patch(`/channels/${e}`,t).then(e=>e.data),delete:e=>a.delete(`/channels/${e}`).then(e=>e.data),join:e=>a.post(`/channels/${e}/join`).then(e=>e.data),listMembers:e=>a.get(`/channels/${e}/members`).then(e=>e.data),addMember:(e,t)=>a.post(`/channels/${e}/members`,{userId:t}).then(e=>e.data),removeMember:(e,t)=>a.delete(`/channels/${e}/members/${encodeURIComponent(t)}`).then(e=>e.data),listMessages:(e,t={})=>{let n=new URLSearchParams;t.before&&n.set(`before`,t.before),t.after&&n.set(`after`,t.after),t.limit&&n.set(`limit`,String(t.limit));let r=n.size>0?`?${n.toString()}`:``;return a.get(`/channels/${e}/messages${r}`).then(e=>e.data)},postMessage:(e,t)=>a.post(`/channels/${e}/messages`,t).then(e=>e.data),listPins:e=>a.get(`/channels/${e}/pins`).then(e=>e.data),markRead:e=>a.post(`/channels/${e}/read`,{}).then(e=>e.data),thread:e=>a.get(`/channels/messages/${e}/thread`).then(e=>e.data),editMessage:(e,t)=>a.patch(`/channels/messages/${e}`,{content:t}).then(e=>e.data),deleteMessage:e=>a.delete(`/channels/messages/${e}`).then(e=>e.data),setPinned:(e,t)=>a.post(`/channels/messages/${e}/pin`,{pinned:t}).then(e=>e.data),addReaction:(e,t)=>a.post(`/channels/messages/${e}/reactions`,{emoji:t}).then(e=>e.data),removeReaction:(e,t)=>a.delete(`/channels/messages/${e}/reactions/${encodeURIComponent(t)}`).then(e=>e.data),uploadAttachment:(e,t)=>{let n=new FormData;return n.append(`attachment`,t),a.post(`/channels/${e}/attachments`,n,{headers:{"Content-Type":`multipart/form-data`}}).then(e=>e.data)},downloadAttachment:e=>a.get(`/channels/attachments/${e}`,{responseType:`blob`}).then(e=>e.data)},ae={list:(t={})=>{if(e())return r([]);let n=new URLSearchParams;t.before&&n.set(`before`,String(t.before)),t.limit&&n.set(`limit`,String(t.limit));let i=n.size>0?`?${n.toString()}`:``;return a.get(`/notifications${i}`).then(e=>e.data)},unreadCount:()=>e()?r({count:0}):a.get(`/notifications/unread-count`).then(e=>e.data),markRead:e=>a.post(`/notifications/${e}/read`).then(e=>e.data),markAllRead:()=>a.post(`/notifications/read-all`).then(e=>e.data),delete:e=>a.delete(`/notifications/${e}`).then(e=>e.data)},C={getAutomations:()=>e()?r([]):a.get(`/automations`).then(e=>e.data),createAutomation:e=>a.post(`/automations`,e).then(e=>e.data),updateAutomation:(e,t)=>a.put(`/automations/${e}`,t).then(e=>e.data),deleteAutomation:e=>a.delete(`/automations/${e}`).then(e=>e.data),pauseAutomation:e=>a.post(`/automations/${e}/pause`).then(e=>e.data),resumeAutomation:e=>a.post(`/automations/${e}/resume`).then(e=>e.data),runAutomationNow:e=>a.post(`/automations/${e}/run`).then(e=>e.data),rotateWebhookSecret:e=>a.post(`/automations/${e}/webhook-secret`).then(e=>e.data),disableWebhook:e=>a.delete(`/automations/${e}/webhook-secret`).then(e=>e.data),getOccurrences:(t,n)=>e()?r([]):a.get(`/automations/occurrences?from=${t}&to=${n}`).then(e=>e.data),getRuns:t=>{if(e())return r([]);let n=new URLSearchParams;t?.automationId&&n.set(`automationId`,t.automationId),t?.from!==void 0&&n.set(`from`,String(t.from)),t?.to!==void 0&&n.set(`to`,String(t.to));let i=n.size>0?`?${n.toString()}`:``;return a.get(`/automations/runs${i}`).then(e=>e.data)},getRunsSummary:()=>e()?r({unseenCount:0,days:Array.from({length:30},()=>({succeeded:0,failed:0}))}):a.get(`/automations/runs/summary`).then(e=>e.data),markRunsSeen:()=>a.post(`/automations/runs/seen`).then(e=>e.data)},w={getConfig:()=>e()?r({enabled:!1,available:!1,allowed:!1}):a.get(`/search/config`).then(e=>e.data),getAccess:()=>e()?r({mode:`admins`,allowed:!1}):a.get(`/search/access`).then(e=>e.data),setAccess:t=>e()?r({mode:t}):a.put(`/search/access`,{mode:t}).then(e=>e.data),setConfig:(t,n,i)=>e()?r({enabled:t,available:t,allowed:!1,url:n}):a.put(`/search/config`,{enabled:t,url:n,...i??{}}).then(e=>e.data),searchApp:t=>e()?r({sessions:[],notes:[],documents:[]}):a.get(`/search/app`,{params:{q:t}}).then(e=>e.data),test:()=>e()?r({ok:!1,results:0},!1):a.post(`/search/test`).then(e=>e.data)},T={available:!1,enabled:!1,recipient:null},E={preview:t=>{if(e()){let e=e=>e.replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]),n=t.emailTheme===`dark`;return r({html:`<html><body style="background:${n?`#121211`:`#f4f4f0`};color:${n?`#f4f4f0`:`#0d0d0c`};padding:24px;font-family:system-ui"><h1>${e(t.heading)}</h1>${t.lines.map(t=>`<p>${e(t)}</p>`).join(``)}</body></html>`,text:[t.heading,...t.lines].join(`
3
+
4
+ `)})}return a.post(`/email/preview`,t).then(e=>e.data)},getSettings:()=>e()?r(T):a.get(`/email/settings`).then(e=>e.data),updateSettings:t=>e()?r(T):a.put(`/email/settings`,t).then(e=>e.data),test:t=>e()?r({ok:!0,authenticated:!1,sentTo:t??null}):a.post(`/email/test`,t?{to:t}:{}).then(e=>e.data)},D={getModels:t=>e()?r([{id:`meta-llama/Llama-3.3-70B-Instruct`,modelId:`meta-llama/Llama-3.3-70B-Instruct`,author:`meta-llama`,downloads:1e6,likes:5e3,tags:[`text-generation`,`llama`],pipeline_tag:`text-generation`,gated:!1}]):a.get(`/huggingface-hub/models`,{params:t}).then(e=>e.data),getTrending:t=>e()?r([]):a.get(`/huggingface-hub/trending`,{params:t}).then(e=>e.data),getModel:(t,n)=>e()?r({id:`${t}/${n}`,modelId:`${t}/${n}`,author:t,downloads:0,likes:0,tags:[],gated:!1}):a.get(`/huggingface-hub/models/${t}/${n}`).then(e=>e.data),getTasks:()=>e()?r([`text-generation`,`text-to-speech`,`text-to-image`]):a.get(`/huggingface-hub/tasks`).then(e=>e.data),clearCache:()=>e()?r(!0):a.post(`/huggingface-hub/cache/clear`).then(e=>e.data),getGgufFiles:(t,n)=>e()?r([{filename:`model-Q4_K_M.gguf`,size:45e8,sizeFormatted:`4.19 GB`,quantization:`Q4_K_M`,url:`https://huggingface.co/${t}/${n}/resolve/main/model-Q4_K_M.gguf`,ollamaCommand:`hf.co/${t}/${n}:Q4_K_M`}]):a.get(`/huggingface-hub/models/${t}/${n}/gguf`).then(e=>e.data),hasGgufFiles:(t,n)=>e()?r({hasGguf:!1,count:0}):a.get(`/huggingface-hub/models/${t}/${n}/has-gguf`).then(e=>e.data)};function O(e,t){return t?t.aborted?Promise.reject(t.reason??new DOMException(`The operation was aborted`,`AbortError`)):new Promise((n,r)=>{let i=()=>{r(t.reason??new DOMException(`The operation was aborted`,`AbortError`))};t.addEventListener(`abort`,i,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,i),n(e)},e=>{t.removeEventListener(`abort`,i),r(e)})}):e}var k={getModels:()=>e()?r([{model:`gpt-image-2`,plugin:`openai`,config:{sizes:[`1024x1024`,`1536x1024`,`1024x1536`],default_size:`1024x1024`,qualities:[`auto`,`low`,`medium`,`high`],default_quality:`auto`}}]):a.get(`/image-gen/models`).then(e=>e.data),getPlugins:()=>e()?r([{id:`openai`,name:`OpenAI GPT Image`,models:[`gpt-image-2`,`gpt-image-1.5`,`gpt-image-1`,`gpt-image-1-mini`],config:{sizes:[`1024x1024`,`1536x1024`,`1024x1536`],default_size:`1024x1024`,qualities:[`auto`,`low`,`medium`,`high`],default_quality:`auto`}}]):a.get(`/image-gen/plugins`).then(e=>e.data),getConfig:t=>e()?r({sizes:[`1024x1024`,`1536x1024`,`1024x1536`],default_size:`1024x1024`,qualities:[`auto`,`low`,`medium`,`high`],default_quality:`auto`}):a.get(`/image-gen/config/${t}`).then(e=>e.data),generate:(t,n)=>e()?O(r({images:[{url:`https://placehold.co/1024x1024/purple/white?text=Demo+Image`,revised_prompt:t.prompt}],model:t.model,pluginId:t.pluginId}),n):a.post(`/image-gen/generate`,t,{signal:n}).then(e=>e.data),getGallery:t=>e()?r({images:[],total:0}):a.get(`/image-gen/gallery`,{params:t}).then(e=>e.data),getGalleryImage:t=>e()?r({id:t,userId:`demo`,prompt:`Demo image prompt`,model:`dall-e-3`,imageData:`https://placehold.co/1024x1024/purple/white?text=Demo`,createdAt:Date.now()}):a.get(`/image-gen/gallery/${t}`).then(e=>e.data),deleteGalleryImage:t=>e()?r(void 0):a.delete(`/image-gen/gallery/${t}`).then(e=>e.data)},A={getModels:()=>a.get(`/media/models`).then(e=>e.data),generateAudio:(e,t)=>a.post(`/media/audio/generate`,e,{signal:t}).then(e=>e.data),cloneVoice:(e,t)=>{let n=new FormData;return n.set(`model`,e.model),n.set(`pluginId`,e.pluginId),n.set(`input`,e.input),n.set(`reference_audio`,e.referenceAudio),e.referenceText&&n.set(`reference_text`,e.referenceText),e.responseFormat&&n.set(`response_format`,e.responseFormat),e.saveVoiceName&&n.set(`saveVoiceName`,e.saveVoiceName),e.consentToStore&&n.set(`consentToStore`,`true`),e.consentTtlDays!==void 0&&n.set(`consentTtlDays`,String(e.consentTtlDays)),a.post(`/media/audio/voice-clone`,n,{signal:t}).then(e=>e.data)},generateSound:(e,t)=>a.post(`/media/sound/generate`,e,{signal:t}).then(e=>e.data),generateVideo:(e,t)=>a.post(`/media/video/generate`,e,{signal:t}).then(e=>e.data),getVideoJob:(e,t)=>a.get(`/media/video/jobs/${e}`,{signal:t}).then(e=>e.data),listVideoJobs:e=>a.get(`/media/video/jobs`,{params:e}).then(e=>e.data),resumeVideoJob:(e,t)=>a.post(`/media/video/jobs/${encodeURIComponent(e)}/resume`,void 0,{signal:t}).then(e=>e.data),cancelVideoJob:e=>a.delete(`/media/video/jobs/${encodeURIComponent(e)}`).then(e=>e.data),getGallery:e=>a.get(`/media/gallery`,{params:e}).then(e=>e.data),deleteGalleryItem:e=>a.delete(`/media/gallery/${e}`).then(e=>e.data),editImage:(e,t)=>{let n=new FormData;n.set(`model`,e.model),n.set(`pluginId`,e.pluginId),n.set(`prompt`,e.prompt),e.size&&n.set(`size`,e.size),e.sourceMediaId&&n.set(`sourceMediaId`,e.sourceMediaId);for(let t of e.images??[])n.append(`images`,t);return e.mask&&n.append(`mask`,e.mask,`mask.png`),a.post(`/media/image/edit`,n,{signal:t}).then(e=>e.data)},getGalleryContent:e=>a.get(`/media/gallery/${e}/content`,{responseType:`blob`}).then(e=>e.data)},j=(e,t,n)=>{let r=new AbortController,i=localStorage.getItem(`auth-token`);return(async()=>{try{let n=await fetch(e,{headers:{Accept:`text/event-stream`,...i?{Authorization:`Bearer ${i}`}:{}},cache:`no-store`,credentials:`same-origin`,signal:r.signal});if(!n.ok){let e=`Request failed with status ${n.status}`;try{let t=await n.json();typeof t.error==`string`?e=t.error:typeof t.message==`string`&&(e=t.message)}catch{}throw Error(e)}if(!n.body)throw Error(`Response stream is unavailable`);let a=n.body.getReader(),o=new TextDecoder,s=``;try{for(;!r.signal.aborted;){let{done:e,value:n}=await a.read();s+=o.decode(n,{stream:!e});let r=s.split(/\r?\n\r?\n/);s=r.pop()||``;for(let e of r){let n=e.split(/\r?\n/).find(e=>e.startsWith(`data:`));n&&t(JSON.parse(n.slice(5).trim()))}if(e)break}}finally{a.releaseLock()}}catch(e){r.signal.aborted||n(e instanceof Error?e.message:`Connection lost`)}})(),()=>r.abort()},M=`libre:models-changed`,N=()=>{window.dispatchEvent(new Event(M))},P={checkHealth:()=>e()?r({status:`offline`},!1):a.get(`/ollama/health`).then(e=>e.data),getSettings:()=>e()?r({enabled:!0,baseUrl:`http://localhost:11434`}):a.get(`/ollama/settings`).then(e=>e.data),updateSettings:t=>e()?r({enabled:!0,baseUrl:`http://localhost:11434`}):a.put(`/ollama/settings`,t).then(e=>e.data),getModels:()=>e()?r(s):a.get(`/ollama/models`).then(e=>e.data),getModelAccess:()=>e()?r({mode:`admins`,allowed:!1}):a.get(`/ollama/models/access`).then(e=>e.data),setModelAccess:t=>e()?r({mode:t}):a.put(`/ollama/models/access`,{mode:t}).then(e=>e.data),getModelVisibility:()=>e()?r({hidden:[],order:[],starred:[],metadata:{}}):a.get(`/ollama/models/visibility`).then(e=>e.data),setModelVisibility:t=>e()?r({hidden:t.hidden??[],order:t.order??[],starred:t.starred??[],metadata:t.metadata??{}}):a.put(`/ollama/models/visibility`,t).then(e=>e.data),pullModel:t=>e()?r(null,!1):a.post(`/ollama/models/pull`,{name:t}).then(e=>(N(),e.data)),pullModelStream:(n,r,i,a)=>{if(e()){let e=0,t=setInterval(()=>{e+=Math.random()*20,e>=100?(e=100,r({status:`success`,total:100,completed:100,percent:100}),clearInterval(t),setTimeout(()=>{N(),i()},500)):r({status:`pulling`,total:100,completed:e,percent:Math.round(e)})},1e3);return()=>clearInterval(t)}let o=new URLSearchParams({model:n});return j(`${t}/ollama/pull/stream?${o.toString()}`,e=>{switch(e.type){case`progress`:r({status:typeof e.status==`string`?e.status:`pulling`,digest:typeof e.digest==`string`?e.digest:void 0,total:typeof e.total==`number`?e.total:void 0,completed:typeof e.completed==`number`?e.completed:void 0,percent:typeof e.percent==`number`?e.percent:void 0});break;case`complete`:N(),i();break;case`error`:a(String(e.error||`Model pull failed`))}},a)},deleteModel:t=>e()?r(null,!1):a.delete(`/ollama/models`,{params:{name:t}}).then(e=>(N(),e.data)),getModelDefaults:e=>a.get(`/ollama/models/${encodeURIComponent(e)}/defaults`).then(e=>e.data),showModel:(t,n=!1)=>{if(e()){let e=s.find(e=>e.name===t);return r(e||null,!!e)}return a.get(`/ollama/models/show`,{params:{name:t,verbose:n}}).then(e=>e.data)},createModel:t=>e()?r(null,!1):a.post(`/ollama/models`,t).then(e=>(N(),e.data)),copyModel:(t,n)=>e()?r(null,!1):a.post(`/ollama/models/copy`,{source:t,destination:n}).then(e=>(N(),e.data)),pushModel:t=>e()?r(null,!1):a.post(`/ollama/models/push`,{name:t}).then(e=>e.data),pullAllModels:()=>e()?r(null,!1):a.post(`/ollama/models/pull-all`).then(e=>e.data),pullAllModelsStream:(n,r,i)=>{if(e()){let e=s,t=0,i=setInterval(()=>{t++,t<=e.length&&n({current:t,total:e.length,modelName:e[t-1]?.name||`demo-model`,status:Math.random()>.1?`success`:`error`,error:Math.random()>.1?void 0:`Demo error`}),t>=e.length&&(clearInterval(i),setTimeout(()=>{N(),r()},500))},1e3);return}j(`${t}/ollama/models/pull-all/stream`,e=>{switch(e.type){case`progress`:{let t=e.status===`success`||e.status===`error`?e.status:`starting`;n({current:typeof e.current==`number`?e.current:0,total:typeof e.total==`number`?e.total:0,modelName:typeof e.modelName==`string`?e.modelName:`unknown`,status:t,error:typeof e.error==`string`?e.error:void 0});break}case`complete`:N(),r();break;case`error`:i(String(e.error||`Model update failed`))}},i)},generateEmbeddings:t=>e()?r({embeddings:[[]]},!1):a.post(`/ollama/embed`,t).then(e=>e.data),listRunningModels:()=>e()?r([]):a.get(`/ollama/running`).then(e=>e.data),unloadModel:t=>e()?r(null):a.post(`/ollama/models/unload`,{name:t}).then(e=>e.data),unloadAllModels:()=>e()?r(null):a.post(`/ollama/models/unload-all`).then(e=>e.data),getVersion:()=>e()?r({version:`demo-mode`},!1):a.get(`/ollama/version`).then(e=>e.data),chatCompletion:t=>e()?r({message:{content:`Demo response`,role:`assistant`}},!1):a.post(`/ollama/chat`,t).then(e=>e.data),checkBlobExists:t=>e()?Promise.resolve(!1):a.head(`/ollama/blobs/${t}`).then(()=>!0).catch(()=>!1),pushBlob:(t,n)=>e()?r(null,!1):a.post(`/ollama/blobs/${t}`,n,{headers:{"Content-Type":`application/octet-stream`}}).then(e=>e.data),generateLegacyEmbeddings:t=>e()?r({embedding:[]},!1):a.post(`/ollama/embeddings`,t).then(e=>e.data),getLibraryModels:t=>{if(e())return t?.category===`cloud`?r([{name:`gpt-oss:cloud`,description:`Demo cloud model using Ollama cloud naming`,category:`cloud`,sizes:[`cloud`],pulls:`Cloud`,tags:[`cloud`]}]):r([{name:`llama3.2`,description:`Meta's latest Llama model`,category:`general`,sizes:[`1b`,`3b`],pulls:`50M+`,tags:[`general`]},{name:`deepseek-r1`,description:`Open reasoning model`,category:`reasoning`,sizes:[`7b`,`14b`,`32b`],pulls:`200M+`,tags:[`reasoning`]}]);let n=new URLSearchParams;t?.search&&n.set(`search`,t.search),t?.sort&&n.set(`sort`,t.sort),t?.category&&n.set(`category`,t.category);let i=n.toString();return a.get(`/ollama/library${i?`?${i}`:``}`).then(e=>e.data)}},F=[[`#2563eb`,`#7c3aed`],[`#0891b2`,`#2563eb`],[`#0f766e`,`#2563eb`],[`#be123c`,`#7c3aed`],[`#ff7b52`,`#dc2626`]],I=e=>{let t=0;for(let n=0;n<e.length;n+=1)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t)},L=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),R=e=>{let t=e.trim().split(/[\s._-]+/).filter(Boolean);return t.length===0?`AI`:t.slice(0,2).map(e=>e[0]?.toUpperCase()).join(``)||`AI`},z=(e,t=128)=>{let n=e.trim()||`AI Persona`,r=I(n),[i,a]=F[r%F.length],o=L(R(n)),s=`persona-avatar-${r}-${t}`,c=t>=96?44:24,l=`
3
5
  <svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 ${t} ${t}" role="img" aria-label="${L(n)} avatar">
4
6
  <defs>
5
7
  <linearGradient id="${s}" x1="0" y1="0" x2="1" y2="1">
@@ -1 +1 @@
1
- import{t as e}from"./chatStore-DpVxt9VX.js";import{d as t}from"./authStore-DjAsRpNL.js";import{n}from"./welcomePrompts-to5mv_gx.js";var r=t=>{n(),e.getState().setCurrentSession(null),sessionStorage.setItem(`forceWelcomeScreen`,`true`),t(`/chat`)},i=t=>{n(),e.getState().setCurrentSession(null),sessionStorage.removeItem(`pendingMessage`),sessionStorage.setItem(`forceWelcomeScreen`,`true`),t(`/chat?incognito=1`)},a=e=>{t.getState().clearError(),e(`/work`)};export{r as n,a as r,i as t};
1
+ import{t as e}from"./chatStore-CVTbkZyb.js";import{d as t}from"./authStore-COgKeTRv.js";import{n}from"./welcomePrompts-to5mv_gx.js";var r=t=>{n(),e.getState().setCurrentSession(null),sessionStorage.setItem(`forceWelcomeScreen`,`true`),t(`/chat`)},i=t=>{n(),e.getState().setCurrentSession(null),sessionStorage.removeItem(`pendingMessage`),sessionStorage.setItem(`forceWelcomeScreen`,`true`),t(`/chat?incognito=1`)},a=e=>{t.getState().clearError(),e(`/work`)};export{r as n,a as r,i as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/api-DRAKhdz7.js","js/client-jaxZzn-I.js","js/logger-BR4forr_.js","js/config-Da1yh9sC.js","js/api-Dcz1G4Ib.js","js/strandsApi-COxSPh_5.js","js/workApi-Ck8nTlJn.js","js/imageGenModels-Dx_QMLJQ.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,i as t,o as n,t as r}from"./logger-BR4forr_.js";import{n as i,t as a}from"./utils-vendor-DPJG-EG_.js";var o={data:``},s=e=>{if(typeof window==`object`){let t=(e?e.querySelector(`#_goober`):window._goober)||Object.assign(document.createElement(`style`),{innerHTML:` `,id:`_goober`});return t.nonce=window.__nonce__,t.parentNode||(e||document.head).appendChild(t),t.firstChild}return e||o},c=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,l=/\/\*[^]*?\*\/| +/g,u=/\n+/g,d=(e,t)=>{let n=``,r=``,i=``;for(let a in e){let o=e[a];a[0]==`@`?a[1]==`i`?n=a+` `+o+`;`:r+=a[1]==`f`?d(o,a):a+`{`+d(o,a[1]==`k`?``:t)+`}`:typeof o==`object`?r+=d(o,t?t.replace(/([^,])+/g,e=>a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+` `+t:t)):a):o!=null&&(a=/^--/.test(a)?a:a.replace(/[A-Z]/g,`-$&`).toLowerCase(),i+=d.p?d.p(a,o):a+`:`+o+`;`)}return n+(t&&i?t+`{`+i+`}`:i)+r},f={},p=e=>{if(typeof e==`object`){let t=``;for(let n in e)t+=n+p(e[n]);return t}return e},m=(e,t,n,r,i)=>{let a=p(e),o=f[a]||(f[a]=(e=>{let t=0,n=11;for(;t<e.length;)n=101*n+e.charCodeAt(t++)>>>0;return`go`+n})(a));if(!f[o]){let t=a===e?(e=>{let t,n,r=[{}];for(;t=c.exec(e.replace(l,``));)t[4]?r.shift():t[3]?(n=t[3].replace(u,` `).trim(),r.unshift(r[0][n]=r[0][n]||{})):r[0][t[1]]=t[2].replace(u,` `).trim();return r[0]})(e):e;f[o]=d(i?{[`@keyframes `+o]:t}:t,n?``:`.`+o)}let s=n&&f.g?f.g:null;return n&&(f.g=f[o]),((e,t,n,r)=>{r?t.data=t.data.replace(r,e):t.data.indexOf(e)===-1&&(t.data=n?e+t.data:t.data+e)})(f[o],t,r,s),o},h=(e,t,n)=>e.reduce((e,r,i)=>{let a=t[i];if(a&&a.call){let e=a(n),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;a=t?`.`+t:e&&typeof e==`object`?e.props?``:d(e,``):!1===e?``:e}return e+r+(a??``)},``);function g(e){let t=this||{},n=e.call?e(t.p):e;return m(n.unshift?n.raw?h(n,[].slice.call(arguments,1),t.p):n.reduce((e,n)=>Object.assign(e,n&&n.call?n(t.p):n),{}):n,s(t.target),t.g,t.o,t.k)}var _,v,y;g.bind({g:1});var ee=g.bind({k:1});function te(e,t,n,r){d.p=t,_=e,v=n,y=r}function ne(e,t){let n=this||{};return function(){let r=arguments;function i(a,o){let s=Object.assign({},a),c=s.className||i.className;n.p=Object.assign({theme:v&&v()},s),n.o=/ *go\d+/.test(c),s.className=g.apply(n,r)+(c?` `+c:``),t&&(s.ref=o);let l=e;return e[0]&&(l=s.as||e,delete s.as),y&&l[0]&&y(s),_(l,s)}return t?t(i):i}}var re=15e3,b=1440,x=(e,t,n)=>Math.min(Math.max(e,t),n),ie=(e,t,n)=>e+(t-e)*n,ae=(e,t,n)=>{let r=(t-e+540)%360-180;return r<-180&&(r+=360),(e+r*n+360)%360},oe=(e,t,n)=>({h:ae(e.h,t.h,n),s:ie(e.s,t.s,n),l:ie(e.l,t.l,n)}),S=(e,t,n)=>({h:e,s:t,l:n}),C=({h:e,s:t,l:n})=>{let r=x(t,0,100)/100,i=x(n,0,100)/100,a=(1-Math.abs(2*i-1))*r,o=(e%360+360)%360,s=a*(1-Math.abs(o/60%2-1)),c=i-a/2,[l,u,d]=o<60?[a,s,0]:o<120?[s,a,0]:o<180?[0,a,s]:o<240?[0,s,a]:o<300?[s,0,a]:[a,0,s];return`#${[l,u,d].map(e=>x(Math.round((e+c)*255),0,255).toString(16).padStart(2,`0`)).join(``)}`},se=e=>e.getHours()*60+e.getMinutes()+e.getSeconds()/60,ce=(e,t=!0)=>{let n=(Math.round(e)%b+b)%b,r=Math.floor(n/60),i=n%60,a=String(i).padStart(2,`0`);return t?`${r%12==0?12:r%12}:${a}${r<12?`am`:`pm`}`:`${String(r).padStart(2,`0`)}:${a}`},le=e=>{let t=new Date(e.getFullYear(),0,0);return Math.floor((e.getTime()-t.getTime())/864e5)},ue=e=>{let t=new Date(e.getFullYear(),0,1).getTimezoneOffset(),n=new Date(e.getFullYear(),6,1).getTimezoneOffset();return e.getTimezoneOffset()<Math.max(t,n)};function de(e,t,n){let r=Math.PI/180,i=le(e),a=23.44*Math.sin(r*(360/365*(284+i))),o=n?n.latitude:45,s=x(n?(Math.sin(r*-.833)-Math.sin(r*o)*Math.sin(r*a))/(Math.cos(r*o)*Math.cos(r*a)):-Math.tan(r*o)*Math.tan(r*a),-1,1),c=2*Math.acos(s)/r/15*60,l;if(n){let t=2*Math.PI*(i-81)/364,r=9.87*Math.sin(2*t)-7.53*Math.cos(t)-1.5*Math.sin(t),a=-e.getTimezoneOffset();l=720-4*n.longitude-r+a,l=(l%b+b)%b}else l=(ue(e)?13:12)*60;let u=l-c/2,d=l+c/2,f=t===void 0?se(e):(t%b+b)%b,p=f>=u&&f<=d,m,h;if(p)h=(f-u)/c,m=Math.sin(Math.PI*h);else{let e=b-c;h=(f>d?f-d:f+(b-d))/e,m=-Math.sin(Math.PI*h)}let g=29.530588853,_=((e.getTime()-Date.UTC(2e3,0,6,18,14))/864e5%g+g)%g/g;return{minutes:f,sunrise:u,sunset:d,solarNoon:l,altitude:m,isDay:p,progress:h,morning:f<l,moonPhase:_}}var fe=[{at:-1,top:S(228,46,8),mid:S(224,40,13),horizon:S(214,34,19)},{at:-.35,top:S(229,44,11),mid:S(225,40,16),horizon:S(216,32,23)},{at:-.12,top:S(228,44,16),mid:S(222,40,26),horizon:S(212,44,36)},{at:0,top:S(220,42,34),mid:S(24,62,62),horizon:S(42,88,70)},{at:.22,top:S(206,58,62),mid:S(196,54,74),horizon:S(46,70,82)},{at:.6,top:S(206,70,58),mid:S(194,58,75),horizon:S(178,40,85)},{at:1,top:S(208,74,55),mid:S(196,60,72),horizon:S(168,36,87)}],pe=[{at:-1,top:S(228,46,8),mid:S(224,40,13),horizon:S(214,34,19)},{at:-.35,top:S(232,44,11),mid:S(236,38,16),horizon:S(252,30,23)},{at:-.12,top:S(234,44,15),mid:S(258,40,26),horizon:S(300,34,34)},{at:0,top:S(226,40,30),mid:S(340,58,56),horizon:S(26,92,60)},{at:.22,top:S(210,56,60),mid:S(24,60,74),horizon:S(38,84,78)},{at:.6,top:S(206,68,58),mid:S(198,56,75),horizon:S(184,38,85)},{at:1,top:S(208,74,55),mid:S(196,60,72),horizon:S(168,36,87)}],me=(e,t)=>{let n=x(t,-1,1),r=0;for(;r<e.length-2&&n>e[r+1].at;)r+=1;let i=e[r],a=e[r+1],o=x((n-i.at)/(a.at-i.at),0,1);return{top:oe(i.top,a.top,o),mid:oe(i.mid,a.mid,o),horizon:oe(i.horizon,a.horizon,o)}},he=[`canvas`,`sidebar`,`surface`,`surface-subtle`,`surface-raised`,`surface-overlay`,`surface-inverse`,`ink`,`ink-muted`,`ink-subtle`,`ink-inverse`,`line`,`line-strong`],ge={canvas:[96,1],sidebar:[94,1],surface:[98,.9],"surface-subtle":[93,1],"surface-raised":[99,.8],"surface-overlay":[100,0],"surface-inverse":[10,.7],ink:[12,.45],"ink-muted":[30,.35],"ink-subtle":[40,.4],"ink-inverse":[98,.4],line:[86,.8],"line-strong":[75,.65]},_e={canvas:[7,.9],sidebar:[9,1],surface:[9,.9],"surface-subtle":[12,1],"surface-raised":[15,1],"surface-overlay":[18,1],"surface-inverse":[96,.35],ink:[95,.3],"ink-muted":[76,.35],"ink-subtle":[62,.4],"ink-inverse":[8,.45],line:[20,.8],"line-strong":[30,.65]},ve=[`25`,`50`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`,`950`],ye={25:99,50:97,100:94,200:88,300:80,400:56,500:38,600:36,700:27,800:18,900:11,950:6},be={25:13,50:4,100:7,200:10,300:16,400:27,500:56,600:74,700:82,800:89,900:95,950:99};function xe(e,t,n={}){let r=de(e,t,n.location),i=me(r.morning?fe:pe,r.altitude),a=r.altitude<-.05,o=x(-r.altitude/.35,0,1),s=x(1-Math.abs(r.altitude-.08)/.3,0,1),c=n.weather??null,l=c?c.cloudCover:0,u=c&&(c.kind===`rain`||c.kind===`thunder`||c.kind===`snow`)?1:0,d=e=>({h:e.h,s:e.s*(1-.6*l),l:a?e.l-2*l:e.l-9*l-4*u+(c?.kind===`snow`?6:0)});c&&(i.top=d(i.top),i.mid=d(i.mid),i.horizon=d(i.horizon));let f=s*(1-.8*l),p=i.mid.h,m=(a?10+8*(1-o):8+10*f)*(1-.5*l),h=a?_e:ge,g=a?-3*o:-3*x(1-r.altitude,0,1),_={};for(let e of he){let[t,n]=h[e],r=e.startsWith(`ink`)||e===`surface-inverse`?t:x(t+g,0,100);_[e]=C(S(p,m*n,r))}let v={},y={};for(let e of ve)v[e]=C(S(p,m*.8,ye[e])),y[e]=C(S(p,m*.8,x(be[e]+g/2,0,100)));return{solar:r,isDark:a,weather:c,cover:l,sky:{top:C(i.top),mid:C(i.mid),horizon:C(i.horizon)},glow:C(S(i.mid.h,x(i.mid.s+10,0,100),a?62:70)),roles:_,gray:v,dark:y,night:o,golden:f}}function Se(e){let{solar:t,night:n,golden:r}=e,i=(e,t)=>({x:8+84*x(e,0,1),y:74-62*x(Math.abs(t),0,1)}),{weather:a,cover:o}=e,s=1-.75*o,c=t.isDay?{...i(t.progress,t.altitude),visible:!0,warmth:r,dim:s}:{x:50,y:100,visible:!1,warmth:0,dim:s},l=t.isDay?{x:50,y:100,visible:!1,phase:t.moonPhase,dim:s}:{...i(t.progress,t.altitude),visible:!0,phase:t.moonPhase,dim:s},u=a?.kind??`none`,d=u===`drizzle`?.35:u===`rain`?.75:+(u===`thunder`),f=a?x(d+Math.min(a.precipitation,4)/8,0,1)*+(d>0):0,p=u===`snow`?x(.5+Math.min(a?.precipitation??0,4)/6,0,1):0,m=+(u===`fog`),h=t.isDay?.55+.25*r:.18;return{sun:c,moon:l,stars:n*(1-.92*o),cloudTint:e.sky.horizon,cloudOpacity:a?x(h*(.3+1.2*o),.05,.95):h,haze:x(1-Math.abs(t.altitude),0,1)+m*.6,rain:f,snow:p,fog:m,thunder:u===`thunder`,wind:a?x(.6+a.windSpeed/25,.6,3):1,weatherKind:u}}var Ce=1e4,we=`https://api.open-meteo.com/v1/forecast`,Te=e=>e===0?`clear`:e<=2?`partly`:e===3?`overcast`:e===45||e===48?`fog`:e>=51&&e<=57?`drizzle`:e>=61&&e<=67||e>=80&&e<=82?`rain`:e>=71&&e<=77||e===85||e===86?`snow`:e>=95?`thunder`:`partly`,Ee=e=>Math.round(e*100)/100,w=e=>!!e&&typeof e.latitude==`number`&&typeof e.longitude==`number`&&Number.isFinite(e.latitude)&&Number.isFinite(e.longitude)&&Math.abs(e.latitude)<=90&&Math.abs(e.longitude)<=180;async function De(e,t){let n=new URL(we);n.searchParams.set(`latitude`,String(e.latitude)),n.searchParams.set(`longitude`,String(e.longitude)),n.searchParams.set(`current`,`weather_code,cloud_cover,precipitation,wind_speed_10m`),n.searchParams.set(`timezone`,`auto`);let r=new AbortController,i=()=>r.abort(t?.reason);t?.aborted?i():t?.addEventListener(`abort`,i,{once:!0});let a=setTimeout(()=>r.abort(new DOMException(`Weather request timed out`,`TimeoutError`)),Ce);try{let e=await fetch(n.toString(),{signal:r.signal});if(!e.ok)throw Error(`weather ${e.status}`);let t=(await e.json())?.current;if(!t||![t.weather_code,t.cloud_cover,t.precipitation,t.wind_speed_10m].every(Number.isFinite))throw Error(`weather missing current conditions`);return{kind:Te(t.weather_code),cloudCover:Math.min(1,Math.max(0,t.cloud_cover/100)),precipitation:Math.max(0,t.precipitation),windSpeed:Math.max(0,t.wind_speed_10m),fetchedAt:Date.now()}}finally{clearTimeout(a),t?.removeEventListener(`abort`,i)}}var Oe=`libre-webui-celestial`,ke=()=>{if(typeof localStorage>`u`)return{};try{let e=localStorage.getItem(Oe),t=e?JSON.parse(e):{};return{location:w(t.location)?t.location:null,weatherEnabled:t.weatherEnabled===!0}}catch{return{}}},Ae=e=>{if(typeof localStorage<`u`)try{localStorage.setItem(Oe,JSON.stringify(e))}catch{}},T=i((e,t)=>{let n=ke(),r=null,i=0,a=15e3,o=()=>{r?.controller.abort(),r=null,i=0,a=15e3};return{active:!1,palette:null,scene:null,previewMinutes:null,location:n.location??null,weatherEnabled:n.weatherEnabled??!1,weather:null,weatherStatus:`idle`,activate:()=>e({active:!0}),refresh:()=>{if(!t().active)return;let{previewMinutes:n,location:r,weatherEnabled:i,weather:a}=t(),o=xe(new Date,n??void 0,{location:r,weather:i&&r?a:null});e({palette:o,scene:Se(o)})},setPreviewMinutes:n=>{e({previewMinutes:n}),t().refresh()},setLocation:n=>{o();let r=w(n)?{latitude:Ee(n.latitude),longitude:Ee(n.longitude)}:null;e({location:r,weather:null,weatherStatus:`idle`}),Ae({location:r,weatherEnabled:t().weatherEnabled}),t().refresh(),r&&t().weatherEnabled&&t().maybeRefreshWeather(!0)},requestBrowserLocation:()=>new Promise(e=>{if(typeof navigator>`u`||!navigator.geolocation){e(!1);return}navigator.geolocation.getCurrentPosition(n=>{t().setLocation({latitude:n.coords.latitude,longitude:n.coords.longitude}),e(!0)},()=>e(!1),{enableHighAccuracy:!1,maximumAge:36e5,timeout:12e3})}),setWeatherEnabled:n=>{n||o(),e({weatherEnabled:n,weatherStatus:n?t().weatherStatus:`idle`}),Ae({location:t().location,weatherEnabled:n}),t().refresh(),n&&t().maybeRefreshWeather(!0)},maybeRefreshWeather:async(n=!1)=>{let{weatherEnabled:o,location:s,weather:c}=t();if(!o||!s)return;let l=c&&Date.now()-c.fetchedAt<9e5;if(!n&&(l||Date.now()<i))return;if(r)return r.promise;let u=new AbortController,d={controller:u,promise:De(s,u.signal).then(n=>{r===d&&(i=0,a=15e3,e({weather:n,weatherStatus:`ready`}),t().refresh())}).catch(()=>{r===d&&(i=Date.now()+a,a=Math.min(a*2,3e5),e({weatherStatus:`error`}))}).finally(()=>{r===d&&(r=null)})};return r=d,e({weatherStatus:`loading`}),d.promise},clear:()=>{o(),e({active:!1,palette:null,scene:null,previewMinutes:null,weatherStatus:t().weather?`ready`:`idle`})}}}),je=`dark`,Me=`blue`,Ne=`#4176e6`,E=[{id:`violet`,label:`Violet`,color:`#7c3aed`,foreground:`#ffffff`},{id:`blue`,label:`Blue`,color:`#4176e6`,foreground:`#ffffff`},{id:`cyan`,label:`Cyan`,color:`#0e7490`,foreground:`#ffffff`},{id:`teal`,label:`Teal`,color:`#0f766e`,foreground:`#ffffff`},{id:`emerald`,label:`Emerald`,color:`#15803d`,foreground:`#ffffff`},{id:`amber`,label:`Coral`,color:`#ff7b52`,foreground:`#3d120c`},{id:`rose`,label:`Rose`,color:`#e11d48`,foreground:`#ffffff`},{id:`slate`,label:`Slate`,color:`#475569`,foreground:`#ffffff`}],D=[`50`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`,`950`],O=[`25`,...D],Pe=[`canvas`,`sidebar`,`surface`,`surface-subtle`,`surface-raised`,`surface-overlay`,`surface-inverse`,`ink`,`ink-muted`,`ink-subtle`,`ink-inverse`,`line`,`line-strong`],Fe={multiplier:.24,minimum:6,maximum:24},Ie={multiplier:.36,minimum:6,maximum:32},Le={25:99,50:97,100:94,200:88,300:80,400:66,500:48,600:36,700:27,800:18,900:11,950:6},Re={25:13,50:4,100:7,200:10,300:16,400:27,500:46,600:65,700:82,800:89,900:95,950:99},ze={25:6,50:0,100:3,200:6,300:12,400:24,500:46,600:65,700:82,800:89,900:95,950:99},Be={canvas:{lightness:96,saturationFactor:1},sidebar:{lightness:94,saturationFactor:1},surface:{lightness:98,saturationFactor:.9},"surface-subtle":{lightness:93,saturationFactor:1},"surface-raised":{lightness:99,saturationFactor:.8},"surface-overlay":{lightness:100,saturationFactor:0},"surface-inverse":{lightness:10,saturationFactor:.7},ink:{lightness:10,saturationFactor:.45},"ink-muted":{lightness:38,saturationFactor:.35},"ink-subtle":{lightness:54,saturationFactor:.4},"ink-inverse":{lightness:98,saturationFactor:.4},line:{lightness:86,saturationFactor:.8},"line-strong":{lightness:75,saturationFactor:.65}},Ve={canvas:{lightness:5,saturationFactor:.9},sidebar:{lightness:8,saturationFactor:1},surface:{lightness:7,saturationFactor:.9},"surface-subtle":{lightness:9,saturationFactor:1},"surface-raised":{lightness:11,saturationFactor:1},"surface-overlay":{lightness:13,saturationFactor:1},"surface-inverse":{lightness:96,saturationFactor:.35},ink:{lightness:96,saturationFactor:.3},"ink-muted":{lightness:67,saturationFactor:.35},"ink-subtle":{lightness:48,saturationFactor:.4},"ink-inverse":{lightness:7,saturationFactor:.45},line:{lightness:18,saturationFactor:.8},"line-strong":{lightness:28,saturationFactor:.65}},He={canvas:{lightness:0,saturationFactor:0},sidebar:{lightness:0,saturationFactor:0},surface:{lightness:0,saturationFactor:0},"surface-subtle":{lightness:4,saturationFactor:1},"surface-raised":{lightness:7,saturationFactor:1},"surface-overlay":{lightness:10,saturationFactor:1},"surface-inverse":{lightness:96,saturationFactor:.35},ink:{lightness:96,saturationFactor:.3},"ink-muted":{lightness:67,saturationFactor:.35},"ink-subtle":{lightness:48,saturationFactor:.4},"ink-inverse":{lightness:0,saturationFactor:0},line:{lightness:11,saturationFactor:.8},"line-strong":{lightness:20,saturationFactor:.65}},Ue={violet:{50:`#f5f3ff`,100:`#ede9fe`,200:`#ddd6fe`,300:`#c4b5fd`,400:`#a78bfa`,500:`#7c3aed`,600:`#6d28d9`,700:`#5b21b6`,800:`#4c1d95`,900:`#3b0764`,950:`#2e1065`},blue:{50:`#edf3fe`,100:`#e4edfd`,200:`#d3e2ff`,300:`#b7c8fe`,400:`#679efe`,500:`#4176e6`,600:`#4868b2`,700:`#2f4c8f`,800:`#34415b`,900:`#283142`,950:`#1e2635`},cyan:{50:`#ecfeff`,100:`#cffafe`,200:`#a5f3fc`,300:`#67e8f9`,400:`#22d3ee`,500:`#0e7490`,600:`#155e75`,700:`#164e63`,800:`#083344`,900:`#092f3f`,950:`#062634`},teal:{50:`#f0fdfa`,100:`#ccfbf1`,200:`#99f6e4`,300:`#5eead4`,400:`#2dd4bf`,500:`#0f766e`,600:`#0f625d`,700:`#115e59`,800:`#134e4a`,900:`#042f2e`,950:`#022c22`},emerald:{50:`#ecfdf5`,100:`#d1fae5`,200:`#a7f3d0`,300:`#6ee7b7`,400:`#34d399`,500:`#15803d`,600:`#166534`,700:`#14532d`,800:`#064e3b`,900:`#052e16`,950:`#022c22`},amber:{50:`#fff5f1`,100:`#ffe8df`,200:`#ffd0c2`,300:`#ffae96`,400:`#ff9273`,500:`#ff7b52`,600:`#c94a27`,700:`#a83a1f`,800:`#87301f`,900:`#70291e`,950:`#3d120c`},rose:{50:`#fff1f2`,100:`#ffe4e6`,200:`#fecdd3`,300:`#fda4af`,400:`#fb7185`,500:`#e11d48`,600:`#be123c`,700:`#9f1239`,800:`#881337`,900:`#4c0519`,950:`#2d0714`},slate:{50:`#f8fafc`,100:`#f1f5f9`,200:`#e2e8f0`,300:`#cbd5e1`,400:`#94a3b8`,500:`#475569`,600:`#334155`,700:`#1e293b`,800:`#0f172a`,900:`#020617`,950:`#010313`}},We={50:97,100:94,200:88,300:76,400:64,500:42,600:34,700:27,800:21,900:16,950:10},k=(e,t,n)=>Math.min(Math.max(e,t),n),A=e=>{if(!e)return null;let t=e.trim().match(/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i);if(!t)return null;let n=t[1];return`#${(n.length===3?n.split(``).map(e=>`${e}${e}`).join(``):n).toLowerCase()}`},j=e=>{let t=A(e)||`#4176e6`,n=parseInt(t.slice(1),16);return{r:n>>16&255,g:n>>8&255,b:n&255}},Ge=(e,t,n)=>`#${[e,t,n].map(e=>k(Math.round(e),0,255).toString(16).padStart(2,`0`)).join(``)}`,Ke=(e,t,n)=>{let r=e/255,i=t/255,a=n/255,o=Math.max(r,i,a),s=Math.min(r,i,a),c=(o+s)/2;if(o===s)return{h:0,s:0,l:c*100};let l=o-s,u=c>.5?l/(2-o-s):l/(o+s),d=0;return d=o===r?(i-a)/l+(i<a?6:0):o===i?(a-r)/l+2:(r-i)/l+4,{h:d*60,s:u*100,l:c*100}},M=(e,t,n)=>{let r=k(t,0,100)/100,i=k(n,0,100)/100,a=(1-Math.abs(2*i-1))*r,o=(e%360+360)%360,s=a*(1-Math.abs(o/60%2-1)),c=i-a/2,l=0,u=0,d=0;return o<60?(l=a,u=s):o<120?(l=s,u=a):o<180?(u=a,d=s):o<240?(u=s,d=a):o<300?(l=s,d=a):(l=a,d=s),Ge((l+c)*255,(u+c)*255,(d+c)*255)},qe=e=>{let{r:t,g:n,b:r}=j(e),i=[t,n,r].map(e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4});return i[0]*.2126+i[1]*.7152+i[2]*.0722},Je=(e,t)=>{let n=qe(e),r=qe(t),i=Math.max(n,r),a=Math.min(n,r);return(i+.05)/(a+.05)},Ye=(e,t,n)=>{let r=n,i=M(e,t,r);for(;Je(`#ffffff`,i)<4.5&&r>12;)r-=2,i=M(e,t,r);return i},Xe=e=>{let{r:t,g:n,b:r}=j(A(e)||`#4176e6`),{h:i,s:a}=Ke(t,n,r),o=a<8?a:k(a,42,88);return D.reduce((e,t)=>{let n=We[t],r=Number(t)<300?o*.72:o;return e[t]=t===`500`||t===`600`?Ye(i,r,n):M(i,r,n),e},{})},N=e=>{let t=e?.mode===`light`?`light`:e?.mode===`amoled`?`amoled`:e?.mode===`celestial`?`celestial`:je,n=e?.accent===`custom`?`custom`:e?.accent,r=E.some(e=>e.id===n)?n:Me,i=A(e?.customAccent)||`#4176e6`;return{mode:t,adaptToAccent:e?.adaptToAccent===!0,accent:n===`custom`?`custom`:r,customAccent:i}},Ze=()=>N({mode:je}),P=[`light`,`dark`,`amoled`,`celestial`],Qe=e=>P[(P.indexOf(e)+1)%P.length],$e=`libre-webui-instance-theme`,et=()=>{if(typeof localStorage>`u`)return null;try{let e=localStorage.getItem($e);if(!e)return null;let t=JSON.parse(e);return t&&typeof t==`object`?N(t):null}catch{return null}},tt=e=>{if(typeof localStorage<`u`)try{localStorage.setItem($e,JSON.stringify(N(e)))}catch{}},nt=()=>et()??Ze(),rt=e=>{let t=N(e);return t.accent===`custom`?Xe(t.customAccent):Ue[t.accent||`blue`]},it=e=>{let t=N(e);return t.accent===`custom`?t.customAccent||`#4176e6`:E.find(e=>e.id===t.accent)?.color||`#4176e6`},at=(e,t,n)=>t===0||e<8?e*t:k(e*n.multiplier*t,n.minimum*t,n.maximum*t),ot=(e,t,n,r)=>O.reduce((i,a)=>(i[a]=M(e,at(t,1,r),n[a]),i),{}),st=(e,t,n,r)=>Pe.reduce((i,a)=>{let o=n[a];return i[a]=M(e,at(t,o.saturationFactor,r),o.lightness),i},{}),F=(e,t,n)=>{let{r,g:i,b:a}=j(n);e.style.setProperty(t,`${r} ${i} ${a}`)},ct=e=>{for(let t of O)e.style.removeProperty(`--color-gray-${t}`),e.style.removeProperty(`--color-dark-${t}`);for(let t of Pe)e.style.removeProperty(`--color-${t}`)},lt=(e,t)=>{let{r:n,g:r,b:i}=j(it(t)),{h:a,s:o}=Ke(n,r,i),s=t.mode===`light`?Ie:Fe,c=ot(a,o,Le,s),l=ot(a,o,t.mode===`amoled`?ze:Re,Fe),u=st(a,o,t.mode===`light`?Be:t.mode===`amoled`?He:Ve,s);for(let t of O)F(e,`--color-gray-${t}`,c[t]),F(e,`--color-dark-${t}`,l[t]);for(let t of Pe)F(e,`--color-${t}`,u[t])},I=null,L=null,R=null,ut=()=>{if(typeof window>`u`)return;let e=window.matchMedia(`(prefers-reduced-motion: reduce)`);if(e.matches)return;let t=document.documentElement,n=new Date,r=n.getHours()*60+n.getMinutes()+n.getSeconds()/60,i=performance.now();R&&cancelAnimationFrame(R),t.setAttribute(`data-sweep`,`true`);let a=()=>{R=null,T.getState().setPreviewMinutes(null),z(),t.removeAttribute(`data-sweep`)},o=t=>{if(e.matches){a();return}let n=Math.min(1,(t-i)/3200),s=1-(1-n)**3;T.getState().setPreviewMinutes(((r-360*(1-s))%1440+1440)%1440),z(),n<1?R=requestAnimationFrame(o):a()};R=requestAnimationFrame(o)},dt=()=>{I&&=(clearInterval(I),null),typeof document<`u`&&document.removeEventListener(`visibilitychange`,ft),T.getState().clear()};function ft(){document.visibilityState===`visible`&&z()}var z=()=>{if(typeof document>`u`)return;let e=T.getState();e.maybeRefreshWeather(),e.refresh();let t=T.getState().palette;if(!t)return;let n=document.documentElement;n.classList.toggle(`dark`,t.isDark),n.style.colorScheme=t.isDark?`dark`:`light`;for(let e of he)F(n,`--color-${e}`,t.roles[e]);for(let e of ve)F(n,`--color-gray-${e}`,t.gray[e]),F(n,`--color-dark-${e}`,t.dark[e]);n.style.setProperty(`--celestial-sky-top`,t.sky.top),n.style.setProperty(`--celestial-sky-mid`,t.sky.mid),n.style.setProperty(`--celestial-sky-horizon`,t.sky.horizon),n.style.setProperty(`--celestial-glow`,t.glow),n.style.setProperty(`--celestial-night`,String(t.night))},pt=()=>{typeof document<`u`&&(T.getState().activate(),z(),I||(I=setInterval(z,re),document.addEventListener(`visibilitychange`,ft)))},mt=e=>{R&&typeof document<`u`&&(cancelAnimationFrame(R),R=null,document.documentElement.removeAttribute(`data-sweep`)),T.getState().setPreviewMinutes(e),I&&z()},ht=e=>{if(typeof document>`u`)return;let t=N(e),n=document.documentElement,r=rt(t);n.classList.remove(`dark`,`amoled`,`ophelia`,`celestial`),t.mode!==`light`&&t.mode!==`celestial`&&n.classList.add(`dark`),t.mode===`amoled`&&n.classList.add(`amoled`),t.mode===`celestial`&&n.classList.add(`celestial`),n.style.colorScheme=t.mode===`light`?`light`:`dark`,n.dataset.accent=t.accent||`blue`,n.dataset.themeStyle=t.adaptToAccent?`accent`:`default`;for(let e of D){let{r:t,g:i,b:a}=j(r[e]),o=`${t} ${i} ${a}`;n.style.setProperty(`--color-primary-${e}`,o),n.style.setProperty(`--color-accent-${e}`,o)}let i=t.mode===`celestial`&&L!==null&&L!==`celestial`;if(L=t.mode,t.mode===`celestial`){pt(),i&&ut();return}R&&(cancelAnimationFrame(R),R=null,n.removeAttribute(`data-sweep`)),dt();for(let e of[`--celestial-sky-top`,`--celestial-sky-mid`,`--celestial-sky-horizon`,`--celestial-glow`,`--celestial-night`])n.style.removeProperty(e);t.adaptToAccent?lt(n,t):ct(n)},B={enabled:!1,imageUrl:``,blurAmount:10,opacity:.6,effect:`dither`},gt=(e,t,n)=>typeof e==`number`&&Number.isFinite(e)?Math.min(n,Math.max(0,e)):t;function _t(e){return{enabled:e?.enabled===!0,imageUrl:typeof e?.imageUrl==`string`?e.imageUrl:``,blurAmount:gt(e?.blurAmount,10,30),opacity:gt(e?.opacity,.6,1),effect:e?.effect===`original`||e?.effect===`blur`?e.effect:`dither`}}var vt=r(`store:app-store`),yt=250,bt=250,V=null,xt=0,St=0,H=0,U=0,W={...B},G=0,K=null,q=null,J=null,Y=null,X=null,Ct=()=>typeof localStorage>`u`?null:localStorage.getItem(`auth-token`),wt=()=>({epoch:xt,token:Ct()}),Z=e=>e.epoch===xt&&e.token===Ct(),Q=()=>new DOMException(`Wallpaper operation superseded`,`AbortError`),Tt=()=>{G+=1,K?.abort(),K=null,q?.(),q=null},Et=e=>At.setState(t=>({backgroundImage:e.imageUrl||null,preferences:{...t.preferences,backgroundSettings:e}})),$=(e,t)=>{let n=e.waiters.splice(0);for(let e of n)t?e.reject(t):e.resolve()},Dt=()=>{J&&clearTimeout(J),J=null,Y&&$(Y,Q()),X&&$(X,Q()),Y=null,X=null,Tt()},Ot=async()=>{if(X||!Y)return;let e=Y;Y=null,X=e;try{let{preferencesApi:t}=await n(async()=>{let{preferencesApi:e}=await import(`./api-DRAKhdz7.js`);return{preferencesApi:e}},__vite__mapDeps([0,1,2,3,4,5,6,7]));if(!Z(e.scope))throw Q();let r=await t.updatePreferences({backgroundSettings:e.settings});if(!Z(e.scope))throw Q();if(!r.success)throw Error(r.error||`Failed to save wallpaper`);e.revision>=U&&(W=e.settings,U=e.revision),$(e)}catch(t){Z(e.scope)&&e.revision===H&&!Y&&Et(W),$(e,t)}finally{X===e&&(X=null,Y&&!J&&Ot())}},kt=()=>{J&&clearTimeout(J),J=setTimeout(()=>{J=null,Ot()},bt)},At=i()(a((r,i)=>({theme:nt(),themeSyncPending:!1,themeSource:`default`,applyInstanceTheme:e=>{if(!e)return;let t=N(e);tt(t),i().themeSource!==`user`&&i().setTheme(t)},syncThemePreference:async t=>{if(V&&=(clearTimeout(V),null),e()||localStorage.getItem(`auth-token`))try{let{preferencesApi:e}=await n(async()=>{let{preferencesApi:e}=await import(`./api-DRAKhdz7.js`);return{preferencesApi:e}},__vite__mapDeps([0,1,2,3,4,5,6,7]));if(!(await e.updatePreferences({theme:t})).success){vt.warn(`Failed to save theme preference to backend`);return}let a=N(i().theme),o=N(t);a.mode===o.mode&&a.adaptToAccent===o.adaptToAccent&&a.accent===o.accent&&a.customAccent===o.customAccent?r({themeSyncPending:!1}):(r({themeSyncPending:!0}),i().scheduleThemePreferenceSync())}catch(e){vt.warn(`Failed to save theme preference to backend:`,e)}},scheduleThemePreferenceSync:()=>{V&&clearTimeout(V),V=setTimeout(()=>{V=null,i().syncThemePreference(N(i().theme))},yt)},setTheme:e=>{let t=N(e);r(e=>({theme:t,preferences:{...e.preferences,theme:t}})),ht(t)},updateTheme:e=>{let t=N(e);i().setTheme(t),r({themeSyncPending:!0,themeSource:`user`}),i().scheduleThemePreferenceSync()},toggleTheme:()=>{let e=i().theme;i().updateTheme({...e,mode:Qe(e.mode)})},sidebarOpen:!0,sidebarCompact:!1,setSidebarOpen:e=>r({sidebarOpen:e}),setSidebarCompact:e=>r({sidebarCompact:e}),toggleSidebar:()=>r(e=>({sidebarOpen:!e.sidebarOpen})),toggleSidebarCompact:()=>r(e=>({sidebarCompact:!e.sidebarCompact})),artifactPanelOpen:!1,artifactPanelArtifact:null,artifactPanelWidth:600,artifactPanelResizing:!1,openArtifactPanel:e=>r({artifactPanelOpen:!0,artifactPanelArtifact:e}),closeArtifactPanel:()=>r({artifactPanelOpen:!1,artifactPanelArtifact:null}),setArtifactPanelWidth:e=>r({artifactPanelWidth:e}),setArtifactPanelResizing:e=>r({artifactPanelResizing:e}),preferences:{theme:Ze(),defaultModel:``,defaultProviderType:null,defaultProviderId:null,visionModel:``,visionProviderType:null,visionProviderId:null,systemMessage:``,generationOptions:{temperature:.7,top_p:.9,top_k:40,num_predict:1024},embeddingSettings:{enabled:!1,model:`nomic-embed-text`,chunkSize:1e3,chunkOverlap:200,similarityThreshold:.3},titleSettings:{autoTitle:!1,taskModel:``,taskProviderType:null,taskProviderId:null},showUsername:!1,hapticFeedbackEnabled:!1,workRemoteProviderDisclosureDismissed:!1,backgroundSettings:{...B}},setPreferences:e=>{let{backgroundSettings:t,...n}=e,i=n.theme?N(n.theme):null;r(e=>({...i&&{theme:i,themeSource:`user`},preferences:{...e.preferences,...n,...i&&{theme:i}}})),i&&ht(i)},loadPreferences:async()=>{let e=wt(),t=++St,r=H,a=!!(Y||X);try{let{preferencesApi:o}=await n(async()=>{let{preferencesApi:e}=await import(`./api-DRAKhdz7.js`);return{preferencesApi:e}},__vite__mapDeps([0,1,2,3,4,5,6,7]));if(!Z(e))return;let s=await o.getPreferences();if(!Z(e)||t!==St)return;if(s.success&&s.data){let e={...s.data};if(!a&&r===H&&!Y&&!X){let t=_t(e.backgroundSettings);W=t,U=++H,Et(t)}let t=i().themeSyncPending?N(i().theme):null;i().setPreferences(t?{...e,theme:t}:e),t&&i().syncThemePreference(t)}}catch(t){Z(e)&&vt.warn(`Failed to load preferences from backend:`,t)}},isGenerating:!1,setIsGenerating:e=>r({isGenerating:e}),pinnedAdminShortcuts:[],toggleAdminShortcut:e=>r(t=>({pinnedAdminShortcuts:t.pinnedAdminShortcuts.includes(e)?t.pinnedAdminShortcuts.filter(t=>t!==e):[...t.pinnedAdminShortcuts,e]})),hasSeenSettingsNotification:!1,markSettingsNotificationAsSeen:()=>r({hasSeenSettingsNotification:!0}),isDemoMode:e(),demoConfig:t(),setDemoMode:e=>{r({isDemoMode:e,demoConfig:t()})},backgroundImage:null,updateBackgroundSettings:e=>{(`imageUrl`in e||e.enabled===!1)&&Tt();let t=_t({...i().preferences.backgroundSettings,...e}),n=wt(),r=++H;return Et(t),new Promise((e,i)=>{let a=Y&&Z(Y.scope)?Y.waiters:[];Y&&a!==Y.waiters&&$(Y,Q()),Y={scope:n,revision:r,settings:t,waiters:[...a,{resolve:e,reject:i}]},kt()})},setBackgroundImage:e=>i().updateBackgroundSettings({imageUrl:e||``,enabled:!!e}),uploadBackgroundImage:e=>{Tt();let t=wt(),n=G,r=new FileReader;return K=r,new Promise((a,o)=>{r.onabort=()=>o(Q()),r.onerror=()=>{K===r&&(K=null),o(r.error||Error(`Failed to read wallpaper`))},r.onload=async()=>{if(K===r&&(K=null),!Z(t)||n!==G){o(Q());return}let e=r.result;if(typeof e!=`string`){o(Error(`Failed to read wallpaper`));return}try{if(await new Promise((t,n)=>{let r=new Image,i=!1,a=e=>{i||(i=!0,r.onload=null,r.onerror=null,q===o&&(q=null),r.src=``,e?n(e):t())},o=()=>a(Q());q=o,r.onload=()=>a(r.naturalWidth>0&&r.naturalHeight>0?void 0:Error(`Wallpaper file is not a valid image`)),r.onerror=()=>a(Error(`Wallpaper file is not a valid image`)),r.src=e}),!Z(t)||n!==G||(await i().setBackgroundImage(e),!Z(t)||i().preferences.backgroundSettings?.imageUrl!==e))throw Q();a()}catch(e){o(e)}},r.readAsDataURL(e)})},removeBackgroundImage:()=>i().updateBackgroundSettings({enabled:!1,imageUrl:``}),clearUserState:()=>{xt+=1,St+=1,H+=1,U=H,W={...B},Dt();let e=nt();V&&=(clearTimeout(V),null),r({theme:e,themeSyncPending:!1,themeSource:`default`,backgroundImage:null,preferences:{theme:e,defaultModel:``,defaultProviderType:null,defaultProviderId:null,visionModel:``,visionProviderType:null,visionProviderId:null,systemMessage:``,generationOptions:{temperature:.7,top_p:.9,top_k:40,num_predict:1024},embeddingSettings:{enabled:!1,model:`nomic-embed-text`,chunkSize:1e3,chunkOverlap:200,similarityThreshold:.3},titleSettings:{autoTitle:!1,taskModel:``,taskProviderType:null,taskProviderId:null},showUsername:!1,workRemoteProviderDisclosureDismissed:!1,backgroundSettings:{...B}}}),ht(e)}}),{name:`libre-webui-app-state`,onRehydrateStorage:()=>e=>{e&&e.setTheme(N(e.theme))},partialize:e=>{let{backgroundSettings:t,...n}=e.preferences;return{theme:e.theme,themeSyncPending:e.themeSyncPending,themeSource:e.themeSource,sidebarOpen:e.sidebarOpen,sidebarCompact:e.sidebarCompact,artifactPanelWidth:e.artifactPanelWidth,pinnedAdminShortcuts:e.pinnedAdminShortcuts,preferences:n,hasSeenSettingsNotification:e.hasSeenSettingsNotification}}}));typeof window<`u`&&(()=>{let{theme:e,setTheme:t}=At.getState();t(e)})();export{ne as _,Ne as a,N as c,w as d,ce as f,g,te as h,Me as i,mt as l,ee as m,_t as n,Qe as o,xe as p,E as r,it as s,At as t,T as u};
@@ -0,0 +1 @@
1
+ function e(e,t=`0.40.0`){return t?.trim()||e?.trim()||``}export{e as t};