libre-webui 0.38.0 → 0.39.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 (195) hide show
  1. package/README.md +1 -0
  2. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  3. package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
  4. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  5. package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts +9 -0
  6. package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts.map +1 -0
  7. package/backend/dist/persistence/postgresWorkRunThinkMigration.js +39 -0
  8. package/backend/dist/persistence/postgresWorkRunThinkMigration.js.map +1 -0
  9. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  10. package/backend/dist/persistence/sqliteMigrations.js +20 -0
  11. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  12. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  13. package/backend/dist/persistence/sqliteToPostgresMigration.js +1 -0
  14. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  15. package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -1
  16. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +3 -2
  17. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -1
  18. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -1
  19. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +3 -3
  20. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -1
  21. package/backend/dist/platform/workPersistence/types.d.ts +5 -0
  22. package/backend/dist/platform/workPersistence/types.d.ts.map +1 -1
  23. package/backend/dist/platform/workPersistence/types.js.map +1 -1
  24. package/backend/dist/routes/work.d.ts.map +1 -1
  25. package/backend/dist/routes/work.js +17 -2
  26. package/backend/dist/routes/work.js.map +1 -1
  27. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  28. package/backend/dist/services/agentCliService.js +1 -0
  29. package/backend/dist/services/agentCliService.js.map +1 -1
  30. package/backend/dist/services/followUpService.d.ts +4 -1
  31. package/backend/dist/services/followUpService.d.ts.map +1 -1
  32. package/backend/dist/services/followUpService.js +23 -2
  33. package/backend/dist/services/followUpService.js.map +1 -1
  34. package/backend/dist/services/pluginService.d.ts.map +1 -1
  35. package/backend/dist/services/pluginService.js +10 -6
  36. package/backend/dist/services/pluginService.js.map +1 -1
  37. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  38. package/backend/dist/services/workAgentService.js +3 -0
  39. package/backend/dist/services/workAgentService.js.map +1 -1
  40. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  41. package/backend/dist/services/workModelProviderService.js +43 -13
  42. package/backend/dist/services/workModelProviderService.js.map +1 -1
  43. package/backend/dist/services/workTaskService.d.ts +3 -2
  44. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  45. package/backend/dist/services/workTaskService.js +10 -6
  46. package/backend/dist/services/workTaskService.js.map +1 -1
  47. package/backend/dist/types/work.d.ts +3 -0
  48. package/backend/dist/types/work.d.ts.map +1 -1
  49. package/backend/dist/types/work.js.map +1 -1
  50. package/backend/dist/utils/bedrockMantle.d.ts +46 -0
  51. package/backend/dist/utils/bedrockMantle.d.ts.map +1 -0
  52. package/backend/dist/utils/bedrockMantle.js +206 -0
  53. package/backend/dist/utils/bedrockMantle.js.map +1 -0
  54. package/backend/dist/utils/pluginChatAdapter.d.ts +36 -0
  55. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  56. package/backend/dist/utils/pluginChatAdapter.js +122 -47
  57. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  58. package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
  59. package/backend/dist/utils/pluginDefinitionTrust.js +3 -2
  60. package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
  61. package/backend/dist/utils/pluginValidation.d.ts +1 -1
  62. package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
  63. package/backend/dist/utils/pluginValidation.js +11 -0
  64. package/backend/dist/utils/pluginValidation.js.map +1 -1
  65. package/backend/package.json +3 -3
  66. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  67. package/frontend/dist/artifact-runtime/babel.js +170 -170
  68. package/frontend/dist/artifact-runtime/framer-motion.js +3 -3
  69. package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
  70. package/frontend/dist/artifact-runtime/mathjs.js +1 -1
  71. package/frontend/dist/artifact-runtime/mermaid.js +1 -1
  72. package/frontend/dist/artifact-runtime/plotly.js +1 -1
  73. package/frontend/dist/artifact-runtime/react.js +3 -3
  74. package/frontend/dist/assets/index-D99DS5c6.js +57 -0
  75. package/frontend/dist/assets/index-Dz1JufgZ.css +1 -0
  76. package/frontend/dist/assets/{markdown-math-D1Bj3pDB.css → markdown-math-DzFXvcrH.css} +1 -1
  77. package/frontend/dist/index.html +32 -32
  78. package/frontend/dist/js/{ArtifactContainer-BWTN4QSW.js → ArtifactContainer-Cn7X9HGm.js} +1 -1
  79. package/frontend/dist/js/{ArtifactDemoPage-CCh7lQEw.js → ArtifactDemoPage-Ddpy2O_v.js} +1 -1
  80. package/frontend/dist/js/{ArtifactSandboxFrame-D1ntMsqe.js → ArtifactSandboxFrame-CdsAqv8H.js} +1 -1
  81. package/frontend/dist/js/{ArtifactSlideOutPanel-zPEBPoMh.js → ArtifactSlideOutPanel-cVd9X80o.js} +1 -1
  82. package/frontend/dist/js/{AutomationModal-DN98Eyym.js → AutomationModal-B4UaWjkk.js} +1 -1
  83. package/frontend/dist/js/{AutomationsPage-3DBwRKME.js → AutomationsPage-huCrvLUp.js} +1 -1
  84. package/frontend/dist/js/{AvatarUpload-D5_wGUb5.js → AvatarUpload-CG-w6Mpt.js} +1 -1
  85. package/frontend/dist/js/{Button-CTwi9N3d.js → Button-j68Q8KVh.js} +1 -1
  86. package/frontend/dist/js/{CalendarPage-CUbGH3Tl.js → CalendarPage-CZXT1w99.js} +1 -1
  87. package/frontend/dist/js/ChannelsPage-DbtdHnSL.js +1 -0
  88. package/frontend/dist/js/ChatPage-BZE65kiq.js +14 -0
  89. package/frontend/dist/js/ConnectModels-DD4bLgdq.js +1 -0
  90. package/frontend/dist/js/{EvaluationsPage-BaND2qQM.js → EvaluationsPage-Dq53LaXd.js} +1 -1
  91. package/frontend/dist/js/{FirstTimeSetup-D8ktLJKO.js → FirstTimeSetup-BoJIfuQT.js} +1 -1
  92. package/frontend/dist/js/{GalleryPage-DXQLoU0l.js → GalleryPage-DKwqeB2A.js} +1 -1
  93. package/frontend/dist/js/{HomePage-WVug1vWc.js → HomePage-C8bCJfls.js} +1 -1
  94. package/frontend/dist/js/{LanguageSwitcher-DHHTrDBR.js → LanguageSwitcher-B_YyU5JG.js} +1 -1
  95. package/frontend/dist/js/{Logo-D1o5k_wt.js → Logo-DnfVtjgj.js} +1 -1
  96. package/frontend/dist/js/{LogoMark-lnmc98jv.js → LogoMark-BzObGdA9.js} +1 -1
  97. package/frontend/dist/js/{ModelManagerModals-BPALNMDH.js → ModelManagerModals-BzjZ-QwL.js} +1 -1
  98. package/frontend/dist/js/{NotesPage-CRzX2Wa8.js → NotesPage-CnaAp_w_.js} +1 -1
  99. package/frontend/dist/js/{OptimizedSyntaxHighlighter-CzzV6ONG.js → OptimizedSyntaxHighlighter-B0g8cxZQ.js} +1 -1
  100. package/frontend/dist/js/OptimizedSyntaxHighlighter-B_BbHeO1.js +1 -0
  101. package/frontend/dist/js/{PasswordStrengthMeter-BGrHWG0B.js → PasswordStrengthMeter-DI4RDv67.js} +1 -1
  102. package/frontend/dist/js/{PersonasPage-BRU9151f.js → PersonasPage-CH3GUKph.js} +1 -1
  103. package/frontend/dist/js/{PluginUsagePage-BlhYZq1l.js → PluginUsagePage-d54K2gAj.js} +1 -1
  104. package/frontend/dist/js/{RichMessageContent-OGBLO64L.js → RichMessageContent-BfYbVBFz.js} +2 -2
  105. package/frontend/dist/js/RichMessageContent-CDxxs3Tt.js +1 -0
  106. package/frontend/dist/js/SettingsModal-BvtJcvow.js +19 -0
  107. package/frontend/dist/js/{SettingsToggle-Du2FSUPO.js → SettingsToggle-DrJ0Bapi.js} +1 -1
  108. package/frontend/dist/js/{ShareDialog-DEhxnLfn.js → ShareDialog-DaSxkTKS.js} +1 -1
  109. package/frontend/dist/js/{StrandsPage-DWnUKSb0.js → StrandsPage-BQwz0mWq.js} +1 -1
  110. package/frontend/dist/js/{SystemPage-cqq8lSxB.js → SystemPage-BqNZoFxR.js} +1 -1
  111. package/frontend/dist/js/{TurnstileWidget-CVepEMEQ.js → TurnstileWidget-tI50c7Kc.js} +1 -1
  112. package/frontend/dist/js/{UserManagementPage-2yHv89ZA.js → UserManagementPage-UvPjA9RP.js} +1 -1
  113. package/frontend/dist/js/{UserManagementPanel-NZmoTk6V.js → UserManagementPanel-C3T1ReJJ.js} +1 -1
  114. package/frontend/dist/js/{WhatsNewModal-5SwIdmU1.js → WhatsNewModal-CLcU2Ugk.js} +1 -1
  115. package/frontend/dist/js/WorkPage-BpjGn--1.js +8 -0
  116. package/frontend/dist/js/{api-CnJYEbRz.js → api-BrHW-VGd.js} +1 -1
  117. package/frontend/dist/js/api-K_hhqPdx.js +1 -0
  118. package/frontend/dist/js/{appNavigation-BXNRwrN-.js → appNavigation-B6xYIgLi.js} +1 -1
  119. package/frontend/dist/js/appStore-DkRdQQeY.js +2 -0
  120. package/frontend/dist/js/appVersion-BVtSqLVj.js +1 -0
  121. package/frontend/dist/js/{ar-Bp843BgG.js → ar-XTZGEtBr.js} +1 -1
  122. package/frontend/dist/js/authStore-DBS6Kbvh.js +1 -0
  123. package/frontend/dist/js/{authStore-DwaPsICv.js → authStore-DjAsRpNL.js} +3 -3
  124. package/frontend/dist/js/{bn-DmSGkklY.js → bn-JiK7ZWmy.js} +1 -1
  125. package/frontend/dist/js/{chatStore-j8bGpkeT.js → chatStore-DpVxt9VX.js} +3 -3
  126. package/frontend/dist/js/{client-DQy1iGRM.js → client-DppLngAs.js} +2 -2
  127. package/frontend/dist/js/{config-BbrsmDn2.js → config-4_s8hdqO.js} +1 -1
  128. package/frontend/dist/js/{cs-BcauIRyG.js → cs-D8ju18CO.js} +1 -1
  129. package/frontend/dist/js/{da-CJ14DPJ_.js → da-BJWcAoUc.js} +1 -1
  130. package/frontend/dist/js/{de-ajswyAhq.js → de-CLJLmy69.js} +1 -1
  131. package/frontend/dist/js/{es-rlf8FsMZ.js → es-BvqHEL-3.js} +1 -1
  132. package/frontend/dist/js/{evaluationsApi-KVsH7yXe.js → evaluationsApi-DyuW7IJ_.js} +1 -1
  133. package/frontend/dist/js/{fr-BwkM1wie.js → fr-B8ZoZomI.js} +1 -1
  134. package/frontend/dist/js/{hi-B3eId9-I.js → hi-AzJLALo-.js} +1 -1
  135. package/frontend/dist/js/{id-BcgPFJh2.js → id-DZYGQhvC.js} +1 -1
  136. package/frontend/dist/js/{is-Crvd3K7f.js → is-Da_kvtzW.js} +1 -1
  137. package/frontend/dist/js/{it-DrLx24hb.js → it-B90zSlqn.js} +1 -1
  138. package/frontend/dist/js/{ja-DZMcf-oB.js → ja-DU_K1GOr.js} +1 -1
  139. package/frontend/dist/js/{ko-Cm0NiOE8.js → ko-DicfoO-e.js} +1 -1
  140. package/frontend/dist/js/{markdown-CZ1tYEW8.js → markdown-DU84620G.js} +1 -1
  141. package/frontend/dist/js/{markdown-core-KjS96SYW.js → markdown-core-Cyql92Hg.js} +1 -1
  142. package/frontend/dist/js/{markdown-html-DQEwrWcf.js → markdown-html-CUc2fCgY.js} +1 -1
  143. package/frontend/dist/js/{markdown-math-CKi32S5d.js → markdown-math-DxPfMKvO.js} +1 -1
  144. package/frontend/dist/js/{markdownHtml-lrXhxBhK.js → markdownHtml-KhS0cFNH.js} +1 -1
  145. package/frontend/dist/js/markdownMath-CsfRQAcz.js +1 -0
  146. package/frontend/dist/js/{messageCodeStyles-CDnMKLgo.js → messageCodeStyles-CuQPkfEK.js} +1 -1
  147. package/frontend/dist/js/{ms-ymaG59hx.js → ms-CfH7wjUY.js} +1 -1
  148. package/frontend/dist/js/{nl-CdIdeA9d.js → nl-ELlOz-B3.js} +1 -1
  149. package/frontend/dist/js/{pl-CuO0b605.js → pl-33dayyUk.js} +1 -1
  150. package/frontend/dist/js/{pt-Vy413FG5.js → pt-aIXSQPCT.js} +1 -1
  151. package/frontend/dist/js/react-vendor-CR5VJ85Q.js +9 -0
  152. package/frontend/dist/js/{router-vendor-HZm4FR0A.js → router-vendor-DqMnEJWK.js} +1 -1
  153. package/frontend/dist/js/{ru-D0zOEVrL.js → ru-BSvGtBtW.js} +1 -1
  154. package/frontend/dist/js/{standalone-DbyFjvTU.js → standalone-D_lg5NC9.js} +1 -1
  155. package/frontend/dist/js/{strandsApi-SeoX_IsY.js → strandsApi-BFbeEpAY.js} +1 -1
  156. package/frontend/dist/js/{sv-JoS4krpk.js → sv-B7KOz81W.js} +1 -1
  157. package/frontend/dist/js/{syntax-highlight-DNc3FFCa.js → syntax-highlight-D7dQ5s5-.js} +1 -1
  158. package/frontend/dist/js/{teamEventStream-CZYdpbVw.js → teamEventStream-DsAS6P4m.js} +1 -1
  159. package/frontend/dist/js/{th-afhelaqR.js → th-DgpjGxvA.js} +1 -1
  160. package/frontend/dist/js/{tr-BhSy9UrR.js → tr-BQTbl2h-.js} +1 -1
  161. package/frontend/dist/js/{ui-CW3gJ4Kl.js → ui-Aq8MP7Ph.js} +2 -2
  162. package/frontend/dist/js/{ui-vendor-_fvLnmDx.js → ui-vendor-DVTj_sKN.js} +1 -1
  163. package/frontend/dist/js/{uk-CibXypnZ.js → uk-JLymloot.js} +1 -1
  164. package/frontend/dist/js/{useChat-CBySqLqR.js → useChat-D3ZAGz70.js} +1 -1
  165. package/frontend/dist/js/{useDialogFocus-DbW0oA9H.js → useDialogFocus-zSGHkpE4.js} +1 -1
  166. package/frontend/dist/js/useDictation-B6l8QzeM.js +1 -0
  167. package/frontend/dist/js/{useQuery-hWmQjdLu.js → useQuery-BTKpXudI.js} +1 -1
  168. package/frontend/dist/js/{useTranslation-UHEMTEHd.js → useTranslation-Boi0fB1B.js} +1 -1
  169. package/frontend/dist/js/{utils-DaXuqmQm.js → utils-B-Bhh1pF.js} +1 -1
  170. package/frontend/dist/js/{utils-vendor-CvhktdS_.js → utils-vendor-DPJG-EG_.js} +1 -1
  171. package/frontend/dist/js/{vi-Cg0WKHtb.js → vi-BXdLOJ8q.js} +1 -1
  172. package/frontend/dist/js/workApi-D1xtiG3Q.js +1 -0
  173. package/frontend/dist/js/{workApi-BqkCbCLQ.js → workApi-UPxumrEF.js} +1 -1
  174. package/frontend/dist/js/{zh-DTqys9TE.js → zh-gdUf9sXa.js} +1 -1
  175. package/package.json +3 -3
  176. package/plugins/anthropic.json +3 -1
  177. package/plugins/bedrock.json +86 -0
  178. package/plugins/openrouter.json +2 -0
  179. package/frontend/dist/assets/index-CJHJxwjA.js +0 -68
  180. package/frontend/dist/assets/index-DSHdOZRK.css +0 -1
  181. package/frontend/dist/js/ChannelsPage-B1hC1rRS.js +0 -1
  182. package/frontend/dist/js/ChatPage-B7mEg5z2.js +0 -14
  183. package/frontend/dist/js/ConnectModels-Cby89_Mc.js +0 -1
  184. package/frontend/dist/js/OptimizedSyntaxHighlighter-ajqwyBQm.js +0 -1
  185. package/frontend/dist/js/RichMessageContent-FiuPwDG7.js +0 -1
  186. package/frontend/dist/js/SettingsModal-sLkxG-lW.js +0 -19
  187. package/frontend/dist/js/WorkPage-BIuaVNEC.js +0 -8
  188. package/frontend/dist/js/api-C2k0OqEk.js +0 -1
  189. package/frontend/dist/js/appStore-DULGAJnH.js +0 -2
  190. package/frontend/dist/js/appVersion-DooVk4c_.js +0 -1
  191. package/frontend/dist/js/authStore-CaLdzyAr.js +0 -1
  192. package/frontend/dist/js/markdownMath-B0BpyFBS.js +0 -1
  193. package/frontend/dist/js/react-vendor-wiHys0m2.js +0 -9
  194. package/frontend/dist/js/useDictation-DEAp64eu.js +0 -1
  195. package/frontend/dist/js/workApi-gpxrWwCm.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/authStore-CaLdzyAr.js","js/authStore-DwaPsICv.js","js/logger-BR4forr_.js","js/chatStore-j8bGpkeT.js","js/utils-DaXuqmQm.js","js/utils-vendor-CvhktdS_.js","js/rolldown-runtime-hePW80VL.js","js/react-vendor-wiHys0m2.js","js/ui-vendor-_fvLnmDx.js","js/goober.modern-BaHbaW3_.js","js/api-CnJYEbRz.js","js/config-BbrsmDn2.js","js/strandsApi-SeoX_IsY.js","js/workApi-BqkCbCLQ.js","js/appStore-DULGAJnH.js"])))=>i.map(i=>d[i]);
2
- import{a as e,o as t,t as n}from"./logger-BR4forr_.js";import{n as r,t as i}from"./config-BbrsmDn2.js";var a=class extends Error{name=`HttpError`;code;config;response;constructor(e,t,n,r){super(e),this.code=t,this.config=n,this.response=r}},o=e=>e instanceof a,s=/^[a-z][a-z0-9+.-]*:\/\//i,c=(e,t,n)=>{if(n!=null){if(Array.isArray(n)){for(let r of n)c(e,`${t}[]`,r);return}if(n instanceof Date){e.append(t,n.toISOString());return}if(typeof n==`object`){e.append(t,JSON.stringify(n));return}e.append(t,String(n))}},l=(e,t,n)=>{let r=e;if(t&&!s.test(e)){let n=t.replace(/\/+$/,``);r=e?`${n}/${e.replace(/^\/+/,``)}`:n}if(!n)return r;let i=new URLSearchParams;for(let[e,t]of Object.entries(n))c(i,e,t);let a=i.toString();if(!a)return r;let[o,l]=r.split(`#`,2);return`${o}${o.includes(`?`)?`&`:`?`}${a}${l?`#${l}`:``}`},u=e=>typeof e==`string`||typeof FormData<`u`&&e instanceof FormData||typeof Blob<`u`&&e instanceof Blob||typeof URLSearchParams<`u`&&e instanceof URLSearchParams||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof ReadableStream<`u`&&e instanceof ReadableStream,d=(e,t)=>{let n=t.toLowerCase();for(let t of Object.keys(e))if(t.toLowerCase()===n)return t},f=(e,t)=>{if(e==null)return;let n=d(t,`content-type`);return typeof FormData<`u`&&e instanceof FormData?(n&&t[n].toLowerCase().startsWith(`multipart/form-data`)&&delete t[n],e):u(e)?e:(n||(t[`Content-Type`]=`application/json`),JSON.stringify(e))},p=async(e,t)=>{if(e.status===204||e.status===205)return null;switch(t){case`blob`:return e.blob();case`arraybuffer`:return e.arrayBuffer();case`text`:return e.text();default:{let t=await e.text();if(!t)return null;if(!((e.headers.get(`content-type`)||``).includes(`json`)||/^\s*[[{]/.test(t.slice(0,64))))return t;try{return JSON.parse(t)}catch{return t}}}},m=e=>e instanceof Error&&(e.name===`AbortError`||e.name===`TimeoutError`),h=e=>{if(e.length===0)return{signal:void 0,cleanup:()=>{}};if(e.length===1)return{signal:e[0],cleanup:()=>{}};let t=new AbortController,n=[];for(let r of e){if(r.aborted){t.abort(r.reason);break}let e=()=>t.abort(r.reason);r.addEventListener(`abort`,e,{once:!0}),n.push(()=>r.removeEventListener(`abort`,e))}return{signal:t.signal,cleanup:()=>n.forEach(e=>e())}},g=(e={})=>{let t=e.fetch,n=async n=>{let r=e.onRequest?e.onRequest({...n}):{...n},i={...r,baseURL:r.baseURL??e.baseURL,timeout:r.timeout??e.timeout??0,method:(r.method||`GET`).toUpperCase()},o={...i.headers||{}},s=f(i.data,o),c=l(i.url||``,i.baseURL,i.params),u=[];i.signal&&u.push(i.signal);let d,g=!1;if(i.timeout&&i.timeout>0){let e=new AbortController;d=setTimeout(()=>{g=!0,e.abort()},i.timeout),u.push(e.signal)}let _=h(u),v=t=>e.onError?e.onError(t):Promise.reject(t);try{let e;try{e=await(t||fetch)(c,{method:i.method,headers:o,body:s,signal:_.signal})}catch(e){return g?v(new a(`timeout of ${i.timeout}ms exceeded`,`ECONNABORTED`,i)):m(e)?v(new a(`canceled`,`ERR_CANCELED`,i)):v(new a(`Network Error`,`ERR_NETWORK`,i))}let n={data:await p(e,i.responseType||`json`),status:e.status,statusText:e.statusText,headers:e.headers,config:i};return e.status>=200&&e.status<300?n:v(new a(`Request failed with status code ${e.status}`,e.status>=500?`ERR_BAD_RESPONSE`:`ERR_BAD_REQUEST`,i,n))}finally{d&&clearTimeout(d),_.cleanup()}},r=e=>(t,r,i={})=>n({...i,url:t,method:e,data:r}),i=e=>(t,r={})=>n({...r,url:t,method:e});return{request:n,get:i(`GET`),delete:i(`DELETE`),head:i(`HEAD`),post:r(`POST`),put:r(`PUT`),patch:r(`PATCH`)}},_=n(`api`);r(),_.debug(`User agent:`,navigator.userAgent),_.debug(`Demo mode detected:`,e());var v=(e,t=!0)=>new Promise(n=>{setTimeout(()=>{n({success:t,data:e,error:t?void 0:`Demo mode: Backend not available`})},500)}),y=g({baseURL:i,timeout:3e5,onRequest:e=>{let t=localStorage.getItem(`auth-token`);return t&&(e.headers={...e.headers||{},Authorization:`Bearer ${t}`}),e},onError:e=>{if(e.response?.status===401){_.warn(`Session expired or unauthorized, logging out...`),localStorage.removeItem(`auth-token`),t(async()=>{let{useAuthStore:e}=await import(`./authStore-CaLdzyAr.js`);return{useAuthStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])).then(({useAuthStore:e})=>{e.getState().logout()});let e=window.location.protocol===`file:`;throw(e?window.location.hash:window.location.pathname).includes(`/login`)||(window.location.href=e?`#/login`:`/login`),Error(`Session expired`)}throw e.response?.status===403&&(e.config?.url??``).startsWith(`/work`)&&e.config?.url!==`/work/access`&&t(async()=>{let{useAuthStore:e}=await import(`./authStore-CaLdzyAr.js`);return{useAuthStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])).then(({useAuthStore:e})=>{e.getState().refreshWorkAccess()}),_.error(`API Error:`,e),e}});export{o as a,g as i,v as n,_ as r,y as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/authStore-DBS6Kbvh.js","js/authStore-DjAsRpNL.js","js/logger-BR4forr_.js","js/chatStore-DpVxt9VX.js","js/utils-B-Bhh1pF.js","js/utils-vendor-DPJG-EG_.js","js/rolldown-runtime-hePW80VL.js","js/react-vendor-CR5VJ85Q.js","js/ui-vendor-DVTj_sKN.js","js/goober.modern-BaHbaW3_.js","js/api-BrHW-VGd.js","js/config-4_s8hdqO.js","js/strandsApi-BFbeEpAY.js","js/workApi-UPxumrEF.js","js/appStore-DkRdQQeY.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,o as t,t as n}from"./logger-BR4forr_.js";import{n as r,t as i}from"./config-4_s8hdqO.js";var a=class extends Error{name=`HttpError`;code;config;response;constructor(e,t,n,r){super(e),this.code=t,this.config=n,this.response=r}},o=e=>e instanceof a,s=/^[a-z][a-z0-9+.-]*:\/\//i,c=(e,t,n)=>{if(n!=null){if(Array.isArray(n)){for(let r of n)c(e,`${t}[]`,r);return}if(n instanceof Date){e.append(t,n.toISOString());return}if(typeof n==`object`){e.append(t,JSON.stringify(n));return}e.append(t,String(n))}},l=(e,t,n)=>{let r=e;if(t&&!s.test(e)){let n=t.replace(/\/+$/,``);r=e?`${n}/${e.replace(/^\/+/,``)}`:n}if(!n)return r;let i=new URLSearchParams;for(let[e,t]of Object.entries(n))c(i,e,t);let a=i.toString();if(!a)return r;let[o,l]=r.split(`#`,2);return`${o}${o.includes(`?`)?`&`:`?`}${a}${l?`#${l}`:``}`},u=e=>typeof e==`string`||typeof FormData<`u`&&e instanceof FormData||typeof Blob<`u`&&e instanceof Blob||typeof URLSearchParams<`u`&&e instanceof URLSearchParams||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof ReadableStream<`u`&&e instanceof ReadableStream,d=(e,t)=>{let n=t.toLowerCase();for(let t of Object.keys(e))if(t.toLowerCase()===n)return t},f=(e,t)=>{if(e==null)return;let n=d(t,`content-type`);return typeof FormData<`u`&&e instanceof FormData?(n&&t[n].toLowerCase().startsWith(`multipart/form-data`)&&delete t[n],e):u(e)?e:(n||(t[`Content-Type`]=`application/json`),JSON.stringify(e))},p=async(e,t)=>{if(e.status===204||e.status===205)return null;switch(t){case`blob`:return e.blob();case`arraybuffer`:return e.arrayBuffer();case`text`:return e.text();default:{let t=await e.text();if(!t)return null;if(!((e.headers.get(`content-type`)||``).includes(`json`)||/^\s*[[{]/.test(t.slice(0,64))))return t;try{return JSON.parse(t)}catch{return t}}}},m=e=>e instanceof Error&&(e.name===`AbortError`||e.name===`TimeoutError`),h=e=>{if(e.length===0)return{signal:void 0,cleanup:()=>{}};if(e.length===1)return{signal:e[0],cleanup:()=>{}};let t=new AbortController,n=[];for(let r of e){if(r.aborted){t.abort(r.reason);break}let e=()=>t.abort(r.reason);r.addEventListener(`abort`,e,{once:!0}),n.push(()=>r.removeEventListener(`abort`,e))}return{signal:t.signal,cleanup:()=>n.forEach(e=>e())}},g=(e={})=>{let t=e.fetch,n=async n=>{let r=e.onRequest?e.onRequest({...n}):{...n},i={...r,baseURL:r.baseURL??e.baseURL,timeout:r.timeout??e.timeout??0,method:(r.method||`GET`).toUpperCase()},o={...i.headers||{}},s=f(i.data,o),c=l(i.url||``,i.baseURL,i.params),u=[];i.signal&&u.push(i.signal);let d,g=!1;if(i.timeout&&i.timeout>0){let e=new AbortController;d=setTimeout(()=>{g=!0,e.abort()},i.timeout),u.push(e.signal)}let _=h(u),v=t=>e.onError?e.onError(t):Promise.reject(t);try{let e;try{e=await(t||fetch)(c,{method:i.method,headers:o,body:s,signal:_.signal})}catch(e){return g?v(new a(`timeout of ${i.timeout}ms exceeded`,`ECONNABORTED`,i)):m(e)?v(new a(`canceled`,`ERR_CANCELED`,i)):v(new a(`Network Error`,`ERR_NETWORK`,i))}let n={data:await p(e,i.responseType||`json`),status:e.status,statusText:e.statusText,headers:e.headers,config:i};return e.status>=200&&e.status<300?n:v(new a(`Request failed with status code ${e.status}`,e.status>=500?`ERR_BAD_RESPONSE`:`ERR_BAD_REQUEST`,i,n))}finally{d&&clearTimeout(d),_.cleanup()}},r=e=>(t,r,i={})=>n({...i,url:t,method:e,data:r}),i=e=>(t,r={})=>n({...r,url:t,method:e});return{request:n,get:i(`GET`),delete:i(`DELETE`),head:i(`HEAD`),post:r(`POST`),put:r(`PUT`),patch:r(`PATCH`)}},_=n(`api`);r(),_.debug(`User agent:`,navigator.userAgent),_.debug(`Demo mode detected:`,e());var v=(e,t=!0)=>new Promise(n=>{setTimeout(()=>{n({success:t,data:e,error:t?void 0:`Demo mode: Backend not available`})},500)}),y=g({baseURL:i,timeout:3e5,onRequest:e=>{let t=localStorage.getItem(`auth-token`);return t&&(e.headers={...e.headers||{},Authorization:`Bearer ${t}`}),e},onError:e=>{if(e.response?.status===401){_.warn(`Session expired or unauthorized, logging out...`),localStorage.removeItem(`auth-token`),t(async()=>{let{useAuthStore:e}=await import(`./authStore-DBS6Kbvh.js`);return{useAuthStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])).then(({useAuthStore:e})=>{e.getState().logout()});let e=window.location.protocol===`file:`;throw(e?window.location.hash:window.location.pathname).includes(`/login`)||(window.location.href=e?`#/login`:`/login`),Error(`Session expired`)}throw e.response?.status===403&&(e.config?.url??``).startsWith(`/work`)&&e.config?.url!==`/work/access`&&t(async()=>{let{useAuthStore:e}=await import(`./authStore-DBS6Kbvh.js`);return{useAuthStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])).then(({useAuthStore:e})=>{e.getState().refreshWorkAccess()}),_.error(`API Error:`,e),e}});export{o as a,g as i,v as n,_ as r,y as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./logger-BR4forr_.js";var n=t(`config`);function r(e){return e.apiBaseUrl?.trim()?e.apiBaseUrl.trim():e.protocol===`file:`?`http://localhost:3001/api`:`${e.origin}/api`}var i=r({protocol:window.location.protocol,origin:window.location.origin,apiBaseUrl:void 0}),a=e(),o=()=>{a&&(n.debug(`API_BASE_URL configured as:`,i),n.debug(`Window location:`,window.location),n.debug(`Environment variables:`,{BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_APP_VERSION:`0.38.0`}))};export{o as n,i as t};
1
+ import{n as e,t}from"./logger-BR4forr_.js";var n=t(`config`);function r(e){return e.apiBaseUrl?.trim()?e.apiBaseUrl.trim():e.protocol===`file:`?`http://localhost:3001/api`:`${e.origin}/api`}var i=r({protocol:window.location.protocol,origin:window.location.origin,apiBaseUrl:void 0}),a=e(),o=()=>{a&&(n.debug(`API_BASE_URL configured as:`,i),n.debug(`Window location:`,window.location),n.debug(`Environment variables:`,{BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_APP_VERSION:`0.39.0`}))};export{o as n,i as t};