libre-webui 0.17.0 → 0.19.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 (438) hide show
  1. package/README.md +30 -17
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +195 -6
  4. package/backend/dist/db.js.map +1 -1
  5. package/backend/dist/index.d.ts.map +1 -1
  6. package/backend/dist/index.js +48 -19
  7. package/backend/dist/index.js.map +1 -1
  8. package/backend/dist/middleware/auth.d.ts.map +1 -1
  9. package/backend/dist/middleware/auth.js +35 -3
  10. package/backend/dist/middleware/auth.js.map +1 -1
  11. package/backend/dist/middleware/index.d.ts.map +1 -1
  12. package/backend/dist/models/personaModel.d.ts.map +1 -1
  13. package/backend/dist/models/personaModel.js.map +1 -1
  14. package/backend/dist/models/userModel.d.ts +24 -0
  15. package/backend/dist/models/userModel.d.ts.map +1 -1
  16. package/backend/dist/models/userModel.js +92 -24
  17. package/backend/dist/models/userModel.js.map +1 -1
  18. package/backend/dist/routes/agentCli.d.ts.map +1 -1
  19. package/backend/dist/routes/agentCli.js +4 -2
  20. package/backend/dist/routes/agentCli.js.map +1 -1
  21. package/backend/dist/routes/auth.d.ts.map +1 -1
  22. package/backend/dist/routes/auth.js +118 -55
  23. package/backend/dist/routes/auth.js.map +1 -1
  24. package/backend/dist/routes/chat.d.ts.map +1 -1
  25. package/backend/dist/routes/chat.js +106 -3
  26. package/backend/dist/routes/chat.js.map +1 -1
  27. package/backend/dist/routes/documents.d.ts.map +1 -1
  28. package/backend/dist/routes/documents.js +179 -41
  29. package/backend/dist/routes/documents.js.map +1 -1
  30. package/backend/dist/routes/embeddings.d.ts.map +1 -1
  31. package/backend/dist/routes/embeddings.js +2 -2
  32. package/backend/dist/routes/embeddings.js.map +1 -1
  33. package/backend/dist/routes/huggingfaceHub.d.ts.map +1 -1
  34. package/backend/dist/routes/huggingfaceHub.js +3 -1
  35. package/backend/dist/routes/huggingfaceHub.js.map +1 -1
  36. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  37. package/backend/dist/routes/imageGen.js +2 -0
  38. package/backend/dist/routes/imageGen.js.map +1 -1
  39. package/backend/dist/routes/libreClaw.d.ts.map +1 -1
  40. package/backend/dist/routes/media.d.ts +3 -0
  41. package/backend/dist/routes/media.d.ts.map +1 -0
  42. package/backend/dist/routes/media.js +429 -0
  43. package/backend/dist/routes/media.js.map +1 -0
  44. package/backend/dist/routes/notes.d.ts +3 -0
  45. package/backend/dist/routes/notes.d.ts.map +1 -0
  46. package/backend/dist/routes/notes.js +121 -0
  47. package/backend/dist/routes/notes.js.map +1 -0
  48. package/backend/dist/routes/ollama.d.ts.map +1 -1
  49. package/backend/dist/routes/ollama.js +17 -85
  50. package/backend/dist/routes/ollama.js.map +1 -1
  51. package/backend/dist/routes/personas.d.ts.map +1 -1
  52. package/backend/dist/routes/personas.js +2 -0
  53. package/backend/dist/routes/personas.js.map +1 -1
  54. package/backend/dist/routes/plugins.d.ts.map +1 -1
  55. package/backend/dist/routes/plugins.js +28 -0
  56. package/backend/dist/routes/plugins.js.map +1 -1
  57. package/backend/dist/routes/preferences.d.ts.map +1 -1
  58. package/backend/dist/routes/systemDiagnostics.d.ts +3 -0
  59. package/backend/dist/routes/systemDiagnostics.d.ts.map +1 -0
  60. package/backend/dist/routes/systemDiagnostics.js +49 -0
  61. package/backend/dist/routes/systemDiagnostics.js.map +1 -0
  62. package/backend/dist/routes/tts.d.ts.map +1 -1
  63. package/backend/dist/routes/tts.js +4 -0
  64. package/backend/dist/routes/tts.js.map +1 -1
  65. package/backend/dist/routes/users.d.ts.map +1 -1
  66. package/backend/dist/routes/users.js +79 -0
  67. package/backend/dist/routes/users.js.map +1 -1
  68. package/backend/dist/routes/work.d.ts.map +1 -1
  69. package/backend/dist/routes/work.js +84 -0
  70. package/backend/dist/routes/work.js.map +1 -1
  71. package/backend/dist/services/agentCliService.d.ts +37 -4
  72. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  73. package/backend/dist/services/agentCliService.js +229 -10
  74. package/backend/dist/services/agentCliService.js.map +1 -1
  75. package/backend/dist/services/assistantCompletionService.d.ts.map +1 -1
  76. package/backend/dist/services/authService.d.ts +15 -9
  77. package/backend/dist/services/authService.d.ts.map +1 -1
  78. package/backend/dist/services/authService.js +39 -29
  79. package/backend/dist/services/authService.js.map +1 -1
  80. package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
  81. package/backend/dist/services/chatGenerationService.js +3 -3
  82. package/backend/dist/services/chatGenerationService.js.map +1 -1
  83. package/backend/dist/services/chatRequestService.d.ts +8 -2
  84. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  85. package/backend/dist/services/chatRequestService.js +30 -3
  86. package/backend/dist/services/chatRequestService.js.map +1 -1
  87. package/backend/dist/services/chatService.d.ts +6 -1
  88. package/backend/dist/services/chatService.d.ts.map +1 -1
  89. package/backend/dist/services/chatService.js +54 -1
  90. package/backend/dist/services/chatService.js.map +1 -1
  91. package/backend/dist/services/codexOAuthService.d.ts +22 -0
  92. package/backend/dist/services/codexOAuthService.d.ts.map +1 -0
  93. package/backend/dist/services/codexOAuthService.js +176 -0
  94. package/backend/dist/services/codexOAuthService.js.map +1 -0
  95. package/backend/dist/services/documentService.d.ts +17 -10
  96. package/backend/dist/services/documentService.d.ts.map +1 -1
  97. package/backend/dist/services/documentService.js +79 -58
  98. package/backend/dist/services/documentService.js.map +1 -1
  99. package/backend/dist/services/embeddingService.d.ts.map +1 -1
  100. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  101. package/backend/dist/services/encryptionService.js +18 -8
  102. package/backend/dist/services/encryptionService.js.map +1 -1
  103. package/backend/dist/services/followUpService.d.ts +44 -0
  104. package/backend/dist/services/followUpService.d.ts.map +1 -0
  105. package/backend/dist/services/followUpService.js +123 -0
  106. package/backend/dist/services/followUpService.js.map +1 -0
  107. package/backend/dist/services/galleryService.d.ts +23 -1
  108. package/backend/dist/services/galleryService.d.ts.map +1 -1
  109. package/backend/dist/services/galleryService.js +125 -8
  110. package/backend/dist/services/galleryService.js.map +1 -1
  111. package/backend/dist/services/libreClawService.d.ts.map +1 -1
  112. package/backend/dist/services/mediaGenerationJobService.d.ts +25 -0
  113. package/backend/dist/services/mediaGenerationJobService.d.ts.map +1 -0
  114. package/backend/dist/services/mediaGenerationJobService.js +82 -0
  115. package/backend/dist/services/mediaGenerationJobService.js.map +1 -0
  116. package/backend/dist/services/memoryService.d.ts.map +1 -1
  117. package/backend/dist/services/memoryService.js.map +1 -1
  118. package/backend/dist/services/mutationEngineService.d.ts.map +1 -1
  119. package/backend/dist/services/oauthSecurity.d.ts +14 -0
  120. package/backend/dist/services/oauthSecurity.d.ts.map +1 -0
  121. package/backend/dist/services/oauthSecurity.js +101 -0
  122. package/backend/dist/services/oauthSecurity.js.map +1 -0
  123. package/backend/dist/services/ollamaService.d.ts +8 -2
  124. package/backend/dist/services/ollamaService.d.ts.map +1 -1
  125. package/backend/dist/services/ollamaService.js +40 -2
  126. package/backend/dist/services/ollamaService.js.map +1 -1
  127. package/backend/dist/services/personaService.d.ts.map +1 -1
  128. package/backend/dist/services/personaService.js.map +1 -1
  129. package/backend/dist/services/pluginActivationService.d.ts.map +1 -1
  130. package/backend/dist/services/pluginActivationService.js.map +1 -1
  131. package/backend/dist/services/pluginAudioGenerationService.d.ts +34 -0
  132. package/backend/dist/services/pluginAudioGenerationService.d.ts.map +1 -0
  133. package/backend/dist/services/pluginAudioGenerationService.js +211 -0
  134. package/backend/dist/services/pluginAudioGenerationService.js.map +1 -0
  135. package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -1
  136. package/backend/dist/services/pluginCapabilityRegistryService.js +6 -0
  137. package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -1
  138. package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
  139. package/backend/dist/services/pluginEmbeddingService.d.ts +2 -0
  140. package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -1
  141. package/backend/dist/services/pluginEmbeddingService.js +66 -35
  142. package/backend/dist/services/pluginEmbeddingService.js.map +1 -1
  143. package/backend/dist/services/pluginImageGenerationService.d.ts +2 -0
  144. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  145. package/backend/dist/services/pluginImageGenerationService.js +63 -38
  146. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  147. package/backend/dist/services/pluginService.d.ts +43 -1
  148. package/backend/dist/services/pluginService.d.ts.map +1 -1
  149. package/backend/dist/services/pluginService.js +441 -71
  150. package/backend/dist/services/pluginService.js.map +1 -1
  151. package/backend/dist/services/pluginTTSService.d.ts +2 -0
  152. package/backend/dist/services/pluginTTSService.d.ts.map +1 -1
  153. package/backend/dist/services/pluginTTSService.js +27 -2
  154. package/backend/dist/services/pluginTTSService.js.map +1 -1
  155. package/backend/dist/services/pluginUsageService.d.ts +100 -0
  156. package/backend/dist/services/pluginUsageService.d.ts.map +1 -0
  157. package/backend/dist/services/pluginUsageService.js +291 -0
  158. package/backend/dist/services/pluginUsageService.js.map +1 -0
  159. package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
  160. package/backend/dist/services/pluginVariablesService.js.map +1 -1
  161. package/backend/dist/services/pluginVideoGenerationService.d.ts +45 -0
  162. package/backend/dist/services/pluginVideoGenerationService.d.ts.map +1 -0
  163. package/backend/dist/services/pluginVideoGenerationService.js +198 -0
  164. package/backend/dist/services/pluginVideoGenerationService.js.map +1 -0
  165. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  166. package/backend/dist/services/preferencesService.js +16 -1
  167. package/backend/dist/services/preferencesService.js.map +1 -1
  168. package/backend/dist/services/registrationPolicy.d.ts +5 -0
  169. package/backend/dist/services/registrationPolicy.d.ts.map +1 -0
  170. package/backend/dist/services/registrationPolicy.js +21 -0
  171. package/backend/dist/services/registrationPolicy.js.map +1 -0
  172. package/backend/dist/services/simpleGitHubOAuth.d.ts +1 -1
  173. package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
  174. package/backend/dist/services/simpleGitHubOAuth.js +13 -13
  175. package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
  176. package/backend/dist/services/simpleHuggingFaceOAuth.d.ts +1 -1
  177. package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
  178. package/backend/dist/services/simpleHuggingFaceOAuth.js +12 -17
  179. package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
  180. package/backend/dist/services/systemDiagnosticsService.d.ts +117 -0
  181. package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -0
  182. package/backend/dist/services/systemDiagnosticsService.js +326 -0
  183. package/backend/dist/services/systemDiagnosticsService.js.map +1 -0
  184. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  185. package/backend/dist/services/turnstileService.d.ts +2 -1
  186. package/backend/dist/services/turnstileService.d.ts.map +1 -1
  187. package/backend/dist/services/turnstileService.js +28 -2
  188. package/backend/dist/services/turnstileService.js.map +1 -1
  189. package/backend/dist/services/userService.d.ts +1 -0
  190. package/backend/dist/services/userService.js +1 -1
  191. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  192. package/backend/dist/services/workAgentService.js.map +1 -1
  193. package/backend/dist/services/workEventService.d.ts.map +1 -1
  194. package/backend/dist/services/workEventService.js.map +1 -1
  195. package/backend/dist/services/workHostWorkspaceService.d.ts.map +1 -1
  196. package/backend/dist/services/workModelProviderService.d.ts +3 -0
  197. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  198. package/backend/dist/services/workModelProviderService.js +67 -10
  199. package/backend/dist/services/workModelProviderService.js.map +1 -1
  200. package/backend/dist/services/workPreviewProxyService.d.ts +27 -0
  201. package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -0
  202. package/backend/dist/services/workPreviewProxyService.js +514 -0
  203. package/backend/dist/services/workPreviewProxyService.js.map +1 -0
  204. package/backend/dist/services/workRuntimeService.d.ts +28 -7
  205. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  206. package/backend/dist/services/workRuntimeService.js +287 -8
  207. package/backend/dist/services/workRuntimeService.js.map +1 -1
  208. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  209. package/backend/dist/services/workTaskService.js.map +1 -1
  210. package/backend/dist/services/workTerminalService.d.ts +1 -1
  211. package/backend/dist/services/workTerminalService.d.ts.map +1 -1
  212. package/backend/dist/services/workTerminalService.js.map +1 -1
  213. package/backend/dist/storage.d.ts +12 -1
  214. package/backend/dist/storage.d.ts.map +1 -1
  215. package/backend/dist/storage.js +183 -9
  216. package/backend/dist/storage.js.map +1 -1
  217. package/backend/dist/storageMappers.d.ts +13 -0
  218. package/backend/dist/storageMappers.d.ts.map +1 -1
  219. package/backend/dist/storageMappers.js +5 -0
  220. package/backend/dist/storageMappers.js.map +1 -1
  221. package/backend/dist/types/index.d.ts +106 -1
  222. package/backend/dist/types/index.d.ts.map +1 -1
  223. package/backend/dist/types/index.js.map +1 -1
  224. package/backend/dist/types/work.d.ts +31 -0
  225. package/backend/dist/types/work.d.ts.map +1 -1
  226. package/backend/dist/utils/chatContext.js.map +1 -1
  227. package/backend/dist/utils/chatDocumentContext.d.ts +1 -1
  228. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  229. package/backend/dist/utils/chatDocumentContext.js +9 -4
  230. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  231. package/backend/dist/utils/chatProviderSelection.d.ts.map +1 -1
  232. package/backend/dist/utils/generationUtils.d.ts.map +1 -1
  233. package/backend/dist/utils/hash.d.ts.map +1 -1
  234. package/backend/dist/utils/hash.js +13 -2
  235. package/backend/dist/utils/hash.js.map +1 -1
  236. package/backend/dist/utils/logger.d.ts +1 -1
  237. package/backend/dist/utils/logger.d.ts.map +1 -1
  238. package/backend/dist/utils/ollamaStreaming.d.ts +6 -2
  239. package/backend/dist/utils/ollamaStreaming.d.ts.map +1 -1
  240. package/backend/dist/utils/ollamaStreaming.js +12 -2
  241. package/backend/dist/utils/ollamaStreaming.js.map +1 -1
  242. package/backend/dist/utils/openAIResponsesAdapter.js.map +1 -1
  243. package/backend/dist/utils/packagePaths.js.map +1 -1
  244. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  245. package/backend/dist/utils/pluginChatAdapter.js +11 -4
  246. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  247. package/backend/dist/utils/pluginChatContext.js.map +1 -1
  248. package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
  249. package/backend/dist/utils/pluginDefinitionTrust.js +2 -1
  250. package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
  251. package/backend/dist/utils/pluginStreamAdapter.d.ts +10 -1
  252. package/backend/dist/utils/pluginStreamAdapter.d.ts.map +1 -1
  253. package/backend/dist/utils/pluginStreamAdapter.js +30 -23
  254. package/backend/dist/utils/pluginStreamAdapter.js.map +1 -1
  255. package/backend/dist/utils/pluginValidation.d.ts +4 -3
  256. package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
  257. package/backend/dist/utils/pluginValidation.js +47 -2
  258. package/backend/dist/utils/pluginValidation.js.map +1 -1
  259. package/backend/dist/utils/resourceLimits.d.ts +10 -0
  260. package/backend/dist/utils/resourceLimits.d.ts.map +1 -0
  261. package/backend/dist/utils/resourceLimits.js +29 -0
  262. package/backend/dist/utils/resourceLimits.js.map +1 -0
  263. package/backend/dist/utils/thinkingPhaseTimer.d.ts +21 -0
  264. package/backend/dist/utils/thinkingPhaseTimer.d.ts.map +1 -0
  265. package/backend/dist/utils/thinkingPhaseTimer.js +84 -0
  266. package/backend/dist/utils/thinkingPhaseTimer.js.map +1 -0
  267. package/backend/dist/utils/webpageFetcher.d.ts +25 -0
  268. package/backend/dist/utils/webpageFetcher.d.ts.map +1 -0
  269. package/backend/dist/utils/webpageFetcher.js +231 -0
  270. package/backend/dist/utils/webpageFetcher.js.map +1 -0
  271. package/backend/dist/utils/websocketMessages.js.map +1 -1
  272. package/backend/dist/utils/workGit.d.ts +14 -0
  273. package/backend/dist/utils/workGit.d.ts.map +1 -0
  274. package/backend/dist/utils/workGit.js +207 -0
  275. package/backend/dist/utils/workGit.js.map +1 -0
  276. package/backend/dist/websocketServer.d.ts +1 -0
  277. package/backend/dist/websocketServer.d.ts.map +1 -1
  278. package/backend/dist/websocketServer.js +110 -25
  279. package/backend/dist/websocketServer.js.map +1 -1
  280. package/backend/dist/workTerminalServer.d.ts.map +1 -1
  281. package/backend/dist/workTerminalServer.js +3 -1
  282. package/backend/dist/workTerminalServer.js.map +1 -1
  283. package/backend/package.json +8 -7
  284. package/bin/cli.js +2 -2
  285. package/frontend/dist/assets/index-CFhy8YLA.css +1 -0
  286. package/frontend/dist/assets/index-_lG_lwU-.js +164 -0
  287. package/frontend/dist/assets/markdown-math-ClQbWekD.css +1 -0
  288. package/frontend/dist/assets/xterm-DHcfr8qj.css +1 -0
  289. package/frontend/dist/index.html +41 -16
  290. package/frontend/dist/js/ArtifactContainer-CjpvtR8G.js +1 -0
  291. package/frontend/dist/js/{ArtifactDemoPage-B4qsvUnF.js → ArtifactDemoPage-yrPXLBQo.js} +1 -1
  292. package/frontend/dist/js/ArtifactSlideOutPanel-DdsL2AOQ.js +1 -0
  293. package/frontend/dist/js/{Button-CRwzOaDZ.js → Button-X9TT9gTD.js} +1 -1
  294. package/frontend/dist/js/ChatPage-D9lWGM8g.js +16 -0
  295. package/frontend/dist/js/FirstTimeSetup-CwLPbHkI.js +1 -0
  296. package/frontend/dist/js/GalleryPage-C9DTdo_-.js +1 -0
  297. package/frontend/dist/js/HomePage-iF44c34e.js +1 -0
  298. package/frontend/dist/js/LibreClawPage-B9wWZIz6.js +1 -0
  299. package/frontend/dist/js/{ModelManagerModals-DMoEav1l.js → ModelManagerModals-D9j9RECi.js} +1 -1
  300. package/frontend/dist/js/ModelSelector-B0RKEJwC.js +1 -0
  301. package/frontend/dist/js/ModelsPage-DJXoIOs8.js +2 -0
  302. package/frontend/dist/js/NotesPage-BTNH6JR2.js +1 -0
  303. package/frontend/dist/js/{OptimizedSyntaxHighlighter-Ci9sRc78.js → OptimizedSyntaxHighlighter-CWYUn9Oe.js} +1 -1
  304. package/frontend/dist/js/PersonasPage--nqoJ-wA.js +13 -0
  305. package/frontend/dist/js/PluginUsagePage-BHwm-BBr.js +1 -0
  306. package/frontend/dist/js/{RichMessageContent-BJ49VN9j.js → RichMessageContent-DYRrXJ75.js} +3 -3
  307. package/frontend/dist/js/SettingsModal-y1Nzg55O.js +1 -0
  308. package/frontend/dist/js/SystemPage-CHez8h3p.js +1 -0
  309. package/frontend/dist/js/UserManagementPage-aJhKXQxG.js +1 -0
  310. package/frontend/dist/js/WorkPage-Ccla0MDm.js +5 -0
  311. package/frontend/dist/js/addon-fit-DIOBYJe3.js +1 -0
  312. package/frontend/dist/js/api-DVP8xiYT.js +19 -0
  313. package/frontend/dist/js/appStore-Cw7PmG-J.js +2 -0
  314. package/frontend/dist/js/ar-ONXFvOB1.js +2 -0
  315. package/frontend/dist/js/artifactHtml-C0Hu9I1u.js +41 -0
  316. package/frontend/dist/js/authStore-gv_MgDKr.js +3 -0
  317. package/frontend/dist/js/babel-CmENXdZw.js +16 -0
  318. package/frontend/dist/js/bn-BLhREPm6.js +2 -0
  319. package/frontend/dist/js/chatStore-DmDbolTg.js +2 -0
  320. package/frontend/dist/js/cs-Bg8E9fG5.js +2 -0
  321. package/frontend/dist/js/da-ODCU8w4x.js +2 -0
  322. package/frontend/dist/js/de-nuGHRJ5N.js +2 -0
  323. package/frontend/dist/js/es-DcN_cwum.js +2 -0
  324. package/frontend/dist/js/estree-DJwQLE88.js +44 -0
  325. package/frontend/dist/js/fr-C-L_xGr5.js +2 -0
  326. package/frontend/dist/js/hi-DUEtwA9G.js +2 -0
  327. package/frontend/dist/js/html-DdAOfeK4.js +25 -0
  328. package/frontend/dist/js/i18n-xir4Zz7C.js +2 -0
  329. package/frontend/dist/js/i18next-DgmgtwsV.js +1 -0
  330. package/frontend/dist/js/id-DNTYhti_.js +2 -0
  331. package/frontend/dist/js/imageGenModels-Dx_QMLJQ.js +1 -0
  332. package/frontend/dist/js/is-Bx28ymbQ.js +2 -0
  333. package/frontend/dist/js/it-BjW-JLlS.js +2 -0
  334. package/frontend/dist/js/ja-uThj4Q1w.js +2 -0
  335. package/frontend/dist/js/ko-DqgmMYXK.js +2 -0
  336. package/frontend/dist/js/logger-DSXjF4ye.js +1 -0
  337. package/frontend/dist/js/markdown-RaVsONor.js +70 -0
  338. package/frontend/dist/js/markdown-core-DHnR5Hw8.js +16 -0
  339. package/frontend/dist/js/markdown-math-B7FlYsmr.js +261 -0
  340. package/frontend/dist/js/messageCodeStyles-cTX0rQGK.js +2 -0
  341. package/frontend/dist/js/ms-R9kt_P0T.js +2 -0
  342. package/frontend/dist/js/nl-BjmtEgpK.js +2 -0
  343. package/frontend/dist/js/pl-C8_gU9r1.js +2 -0
  344. package/frontend/dist/js/postcss-B5WIGhAY.js +62 -0
  345. package/frontend/dist/js/pt-7BJForUD.js +2 -0
  346. package/frontend/dist/js/react-vendor-DPNXrO-8.js +9 -0
  347. package/frontend/dist/js/{rolldown-runtime-QTnfLwEv.js → rolldown-runtime-hePW80VL.js} +1 -1
  348. package/frontend/dist/js/router-vendor-Ca9zqOqT.js +1 -0
  349. package/frontend/dist/js/ru-D2HmhY6Y.js +2 -0
  350. package/frontend/dist/js/{standalone-DmLfI4Qj.js → standalone-B_aPlu7o.js} +8 -8
  351. package/frontend/dist/js/sv-zny3sDBM.js +2 -0
  352. package/frontend/dist/js/syntax-highlight-Ca9bHsaz.js +8 -0
  353. package/frontend/dist/js/th-CAzEKRz8.js +2 -0
  354. package/frontend/dist/js/tr-BmYgtmUo.js +2 -0
  355. package/frontend/dist/js/{typescript-Bcq62agC.js → typescript-Dz4OUZSl.js} +10 -10
  356. package/frontend/dist/js/ui-DDlcz2oy.js +2 -0
  357. package/frontend/dist/js/ui-vendor-D_pYT79f.js +177 -0
  358. package/frontend/dist/js/uk-eiYZ0uRq.js +2 -0
  359. package/frontend/dist/js/useTranslation-CdeLZqSW.js +1 -0
  360. package/frontend/dist/js/utils-BhpNrGnR.js +1 -0
  361. package/frontend/dist/js/utils-vendor-1zob7nK9.js +9 -0
  362. package/frontend/dist/js/vi-C7SVAWpO.js +2 -0
  363. package/frontend/dist/js/welcomePrompts-to5mv_gx.js +1 -0
  364. package/frontend/dist/js/xterm-Da5ppSVt.js +18 -0
  365. package/frontend/dist/js/{yaml-mLy9chOK.js → yaml-QD4znPfZ.js} +20 -20
  366. package/frontend/dist/js/zh-2Q3cQv3s.js +2 -0
  367. package/package.json +20 -13
  368. package/plugins/codex-oauth.json +19 -0
  369. package/plugins/openrouter.json +89 -0
  370. package/backend/dist/services/systemSettingsService.d.ts +0 -12
  371. package/backend/dist/services/systemSettingsService.d.ts.map +0 -1
  372. package/backend/dist/services/systemSettingsService.js +0 -70
  373. package/backend/dist/services/systemSettingsService.js.map +0 -1
  374. package/frontend/dist/assets/index-BqI0kezz.css +0 -1
  375. package/frontend/dist/assets/index-CRC6g6bL.js +0 -3
  376. package/frontend/dist/assets/markdown-math-CYlHEDRF.css +0 -1
  377. package/frontend/dist/assets/xterm-CmMoOwwu.css +0 -1
  378. package/frontend/dist/js/ArtifactContainer-Cdy-973y.js +0 -1
  379. package/frontend/dist/js/ArtifactSlideOutPanel-CmKgQ4eD.js +0 -1
  380. package/frontend/dist/js/ChatPage-CYT69oBR.js +0 -16
  381. package/frontend/dist/js/FirstTimeSetup-C8LdLP5J.js +0 -1
  382. package/frontend/dist/js/GalleryPage-Bm89pnS8.js +0 -1
  383. package/frontend/dist/js/HomePage-CeCYnMUG.js +0 -1
  384. package/frontend/dist/js/LibreClawPage-DGMEV6dm.js +0 -1
  385. package/frontend/dist/js/ModelSelector-DXPdGdQ_.js +0 -1
  386. package/frontend/dist/js/ModelsPage-D-FIy2x-.js +0 -2
  387. package/frontend/dist/js/PersonasPage-CIrEVFo5.js +0 -13
  388. package/frontend/dist/js/SettingsModal-CxtOXPY7.js +0 -1
  389. package/frontend/dist/js/UserManagementPage-BfyYGGFQ.js +0 -1
  390. package/frontend/dist/js/WorkPage-C7bW6Hxx.js +0 -4
  391. package/frontend/dist/js/addon-fit-Cj0_dfHF.js +0 -1
  392. package/frontend/dist/js/api-DCD41-l9.js +0 -19
  393. package/frontend/dist/js/appStore-Bw-8Exsx.js +0 -2
  394. package/frontend/dist/js/ar-BAHlIvy0.js +0 -2
  395. package/frontend/dist/js/artifactHtml-B7Oy2e__.js +0 -27
  396. package/frontend/dist/js/authStore-mOYH_AXI.js +0 -4
  397. package/frontend/dist/js/babel-BnLuavNv.js +0 -16
  398. package/frontend/dist/js/bn-BxquDVbd.js +0 -2
  399. package/frontend/dist/js/cs-C4DoKzRm.js +0 -2
  400. package/frontend/dist/js/da-CFslpGTw.js +0 -2
  401. package/frontend/dist/js/de-ChudoRh2.js +0 -2
  402. package/frontend/dist/js/demoMode-BhEpMVh5.js +0 -1
  403. package/frontend/dist/js/es-B36fefE-.js +0 -2
  404. package/frontend/dist/js/estree-0vwU39qX.js +0 -44
  405. package/frontend/dist/js/fr-BSVeTM5W.js +0 -2
  406. package/frontend/dist/js/hi-BGoFbl5V.js +0 -2
  407. package/frontend/dist/js/html-CApr2Bvi.js +0 -25
  408. package/frontend/dist/js/id-BfYs2p_j.js +0 -2
  409. package/frontend/dist/js/is-DZ1MS-5A.js +0 -2
  410. package/frontend/dist/js/it-CXtrPCG1.js +0 -2
  411. package/frontend/dist/js/ja-FPJ_NK_y.js +0 -2
  412. package/frontend/dist/js/ko-DVwD4ZZF.js +0 -2
  413. package/frontend/dist/js/logger-DbNs3-DK.js +0 -1
  414. package/frontend/dist/js/markdown-C78Qc6xu.js +0 -70
  415. package/frontend/dist/js/markdown-core-GI9BPwrB.js +0 -16
  416. package/frontend/dist/js/markdown-math-E4O1gcxj.js +0 -261
  417. package/frontend/dist/js/ms-PKPP0RX3.js +0 -2
  418. package/frontend/dist/js/nl-DWM5HJZ8.js +0 -2
  419. package/frontend/dist/js/pl-B9va8Tuf.js +0 -2
  420. package/frontend/dist/js/postcss-DSDkwgFE.js +0 -62
  421. package/frontend/dist/js/pt-P0IQi-Zr.js +0 -2
  422. package/frontend/dist/js/react-vendor-DyG_ODzn.js +0 -9
  423. package/frontend/dist/js/router-vendor-BjDI9mRe.js +0 -1
  424. package/frontend/dist/js/ru-Ca2bxYnc.js +0 -2
  425. package/frontend/dist/js/sv-DI4RDwyZ.js +0 -2
  426. package/frontend/dist/js/syntax-highlight-pM1xnNpY.js +0 -8
  427. package/frontend/dist/js/th-DN0bDS9d.js +0 -2
  428. package/frontend/dist/js/tr-ChqMv5Q4.js +0 -2
  429. package/frontend/dist/js/ui-vendor-DohPFHDW.js +0 -177
  430. package/frontend/dist/js/uk-Cr51h_XQ.js +0 -2
  431. package/frontend/dist/js/useBaseQuery-BAOlhjar.js +0 -1
  432. package/frontend/dist/js/useQuery-CcRqxveh.js +0 -1
  433. package/frontend/dist/js/useTranslation-Cs6iTP4m.js +0 -1
  434. package/frontend/dist/js/utils-DmZD5uA3.js +0 -1
  435. package/frontend/dist/js/utils-vendor-Cbaj0BC5.js +0 -9
  436. package/frontend/dist/js/vi-D4OhoVMH.js +0 -2
  437. package/frontend/dist/js/xterm-DKl1QLiw.js +0 -7
  438. package/frontend/dist/js/zh-Bvau7hlR.js +0 -2
@@ -93,7 +93,7 @@ class ChatGenerationService {
93
93
  if (target.providerType === 'agent' && target.providerId) {
94
94
  let assistantContent = '';
95
95
  let providerMetadata;
96
- for await (const chunk of agentCliService.executeAgentStreamRequest(target.providerId, pluginMessages, userId)) {
96
+ for await (const chunk of agentCliService.executeAgentStreamRequest(target.providerId, pluginMessages, userId, { model: target.actualModelName })) {
97
97
  if (chunk.type === 'content' && chunk.content) {
98
98
  assistantContent += chunk.content;
99
99
  }
@@ -127,7 +127,7 @@ class ChatGenerationService {
127
127
  target.providerType !== undefined) {
128
128
  throw pluginError;
129
129
  }
130
- const response = await ollamaService.generateChatResponse(chatRequest);
130
+ const response = await ollamaService.generateChatResponse(chatRequest, undefined, { userId });
131
131
  return {
132
132
  response,
133
133
  assistantContent: response.message.content,
@@ -136,7 +136,7 @@ class ChatGenerationService {
136
136
  };
137
137
  }
138
138
  }
139
- const response = await ollamaService.generateChatResponse(chatRequest);
139
+ const response = await ollamaService.generateChatResponse(chatRequest, undefined, { userId });
140
140
  return {
141
141
  response,
142
142
  assistantContent: response.message.content,
@@ -1 +1 @@
1
- {"version":3,"file":"chatGenerationService.js","sourceRoot":"","sources":["../../src/services/chatGenerationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatGenerationService.js","sourceRoot":"","sources":["../../src/services/chatGenerationService.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,20 @@
1
1
  import { type ChatContextMessage } from '../utils/chatContext.js';
2
2
  import { type PluginVariables } from '../utils/pluginChatContext.js';
3
3
  import type { GenerationTarget } from './chatGenerationService.js';
4
- import type { ChatMessage, ChatProviderSelection, ChatSession, GenerationOptions, OllamaChatMessage, Persona } from '../types/index.js';
4
+ import type { ChatMessage, ChatProviderSelection, ChatSession, GenerationOptions, OllamaChatMessage, Persona, UserPreferences } from '../types/index.js';
5
5
  export interface ChatGenerationTargetService {
6
6
  prepareGenerationTarget(sessionModel: string, userId: string, options?: GenerationOptions, providerSelection?: ChatProviderSelection): Promise<GenerationTarget>;
7
7
  }
8
8
  export interface ChatPersonaLookupService {
9
9
  getPersonaById(id: string, userId?: string): Promise<Persona | null>;
10
10
  }
11
+ export interface ChatPreferencesLookupService {
12
+ getPreferences(userId?: string): Pick<UserPreferences, 'visionModel' | 'visionProviderType' | 'visionProviderId'>;
13
+ }
11
14
  export interface ChatRequestServiceDependencies {
12
15
  chatGenerationService: ChatGenerationTargetService;
13
16
  personaService?: ChatPersonaLookupService;
17
+ preferencesService?: ChatPreferencesLookupService;
14
18
  }
15
19
  export interface PrepareGenerationMessagesOptions {
16
20
  isPrivate?: boolean;
@@ -45,12 +49,14 @@ export interface PrepareChatGenerationRequestOptions extends Omit<PrepareGenerat
45
49
  export interface PreparedChatGenerationRequest extends PreparedGenerationMessages, GenerationTarget {
46
50
  target: GenerationTarget;
47
51
  }
52
+ export declare function generationContextContainsImages({ images, persistedMessages, messageHistory, }: Pick<PrepareGenerationMessagesOptions, 'images' | 'persistedMessages' | 'messageHistory'>): boolean;
48
53
  export declare function buildDocumentEnhancedContent(content: string, relevantContext: readonly string[]): string;
49
54
  export declare function prepareGenerationMessages({ isPrivate, persistedMessages, messageHistory, regenerate, content, images, hasRelevantContext, enhancedContent, personaSystemPrompt, pluginVariables, now, }: PrepareGenerationMessagesOptions): PreparedGenerationMessages;
50
55
  export declare class ChatRequestService {
51
56
  private readonly chatGenerationService;
52
57
  private readonly personaService?;
53
- constructor({ chatGenerationService, personaService, }: ChatRequestServiceDependencies);
58
+ private readonly preferencesService?;
59
+ constructor({ chatGenerationService, personaService, preferencesService, }: ChatRequestServiceDependencies);
54
60
  resolvePersonaSystemPrompt(session: Pick<ChatSession, 'personaId'>, userId: string): Promise<string | undefined>;
55
61
  prepareGenerationRequest({ session, userId, options, providerType, providerId, personaSystemPrompt, includePersonaPrompt, ...messageOptions }: PrepareChatGenerationRequestOptions): Promise<PreparedChatGenerationRequest>;
56
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chatRequestService.d.ts","sourceRoot":"","sources":["../../src/services/chatRequestService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatRequestService.d.ts","sourceRoot":"","sources":["../../src/services/chatRequestService.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,16 @@
17
17
  import { toOllamaMessages, withSystemPrompt, } from '../utils/chatContext.js';
18
18
  import { preparePluginChatContext, } from '../utils/pluginChatContext.js';
19
19
  import { createLogger } from '../utils/logger.js';
20
- import { normalizeChatProviderSelection } from '../utils/chatProviderSelection.js';
20
+ import { ChatProviderSelectionError, normalizeChatProviderSelection, } from '../utils/chatProviderSelection.js';
21
21
  const logger = createLogger('services:chat-request-service');
22
+ function messagesContainImages(messages) {
23
+ return messages.some(message => (message.images?.length ?? 0) > 0);
24
+ }
25
+ export function generationContextContainsImages({ images, persistedMessages, messageHistory = [], }) {
26
+ return ((images?.length ?? 0) > 0 ||
27
+ messagesContainImages(persistedMessages) ||
28
+ messagesContainImages(messageHistory));
29
+ }
22
30
  export function buildDocumentEnhancedContent(content, relevantContext) {
23
31
  if (relevantContext.length === 0) {
24
32
  return content;
@@ -66,9 +74,10 @@ export function prepareGenerationMessages({ isPrivate = false, persistedMessages
66
74
  };
67
75
  }
68
76
  export class ChatRequestService {
69
- constructor({ chatGenerationService, personaService, }) {
77
+ constructor({ chatGenerationService, personaService, preferencesService, }) {
70
78
  this.chatGenerationService = chatGenerationService;
71
79
  this.personaService = personaService;
80
+ this.preferencesService = preferencesService;
72
81
  }
73
82
  async resolvePersonaSystemPrompt(session, userId) {
74
83
  if (!session.personaId || !this.personaService) {
@@ -91,7 +100,25 @@ export class ChatRequestService {
91
100
  const providerSelection = messageOptions.isPrivate
92
101
  ? (sessionProviderSelection ?? requestProviderSelection)
93
102
  : sessionProviderSelection;
94
- const target = await this.chatGenerationService.prepareGenerationTarget(session.model, userId, options, providerSelection);
103
+ let generationModel = session.model;
104
+ let generationProviderSelection = providerSelection;
105
+ if (this.preferencesService &&
106
+ generationContextContainsImages(messageOptions)) {
107
+ const preferences = this.preferencesService.getPreferences(userId);
108
+ const visionModel = preferences.visionModel?.trim();
109
+ if (visionModel) {
110
+ const visionProviderSelection = normalizeChatProviderSelection({
111
+ providerType: preferences.visionProviderType,
112
+ providerId: preferences.visionProviderId,
113
+ });
114
+ if (!visionProviderSelection) {
115
+ throw new ChatProviderSelectionError('The configured vision model has no provider identity. Re-select it in Settings > Model > Vision Model.');
116
+ }
117
+ generationModel = visionModel;
118
+ generationProviderSelection = visionProviderSelection;
119
+ }
120
+ }
121
+ const target = await this.chatGenerationService.prepareGenerationTarget(generationModel, userId, options, generationProviderSelection);
95
122
  const resolvedPersonaSystemPrompt = personaSystemPrompt ??
96
123
  (includePersonaPrompt
97
124
  ? await this.resolvePersonaSystemPrompt(session, userId)
@@ -1 +1 @@
1
- {"version":3,"file":"chatRequestService.js","sourceRoot":"","sources":["../../src/services/chatRequestService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatRequestService.js","sourceRoot":"","sources":["../../src/services/chatRequestService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ChatSession, ChatMessage, ChatProviderSelection } from '../types/index.js';
1
+ import { ChatSession, ChatMessage, ChatProviderSelection, SessionFolder } from '../types/index.js';
2
2
  declare class ChatService {
3
3
  private sessions;
4
4
  constructor();
@@ -13,6 +13,11 @@ declare class ChatService {
13
13
  }, userId?: string): ChatMessage | undefined;
14
14
  updateMessage(sessionId: string, messageId: string, updates: Partial<ChatMessage>, userId?: string): ChatMessage | undefined;
15
15
  deleteSession(sessionId: string, userId?: string): boolean;
16
+ getSessionFolders(userId?: string): SessionFolder[];
17
+ createSessionFolder(name: unknown, userId?: string): SessionFolder;
18
+ renameSessionFolder(folderId: string, name: unknown, userId?: string): SessionFolder | undefined;
19
+ private normalizeSessionFolderName;
20
+ deleteSessionFolder(folderId: string, userId?: string): boolean;
16
21
  clearAllSessions(userId?: string): void;
17
22
  getMessagesForContext(sessionId: string, maxMessages?: number): ChatMessage[];
18
23
  private updateSystemMessageForPersona;
@@ -1 +1 @@
1
- {"version":3,"file":"chatService.d.ts","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,WAAW,EACX,WAAW,EACX,qBAAqB,EAGtB,MAAM,mBAAmB,CAAC;AAgB3B,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAuC;;IAMvD,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAKd,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,GAAE,MAAkB,EAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,qBAAqB,GACxC,OAAO,CAAC,WAAW,CAAC;IAmEvB,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAwB1B,cAAc,CAAC,MAAM,GAAE,MAAkB,GAAG,WAAW,EAAE;IAanD,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,GAAE,MAAkB,GACzB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IA0DnC,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EAChE,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAsE1B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAkC1B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAkB,GAAG,OAAO;IAYrE,gBAAgB,CAAC,MAAM,GAAE,MAAkB,GAAG,IAAI;IAelD,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,WAAW,EAAE;YAS3D,6BAA6B;IA6B3C,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;YACW,iCAAiC;IAuE/C;;OAEG;YACW,+BAA+B;IAuG7C;;OAEG;YACW,8BAA8B;IAuC5C;;;OAGG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EACnE,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAgD1B;;OAEG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IA6B1B;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAkB,GACzB,WAAW,EAAE;CAcjB;;AAED,wBAAiC"}
1
+ {"version":3,"file":"chatService.d.ts","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import { mutationEngineService } from './mutationEngineService.js';
23
23
  import { createLogger } from '../utils/logger.js';
24
24
  import { normalizeChatProviderSelection } from '../utils/chatProviderSelection.js';
25
25
  import { sanitizeChatMessageProviderState, selectChatMessagesForContext, } from '../utils/chatContext.js';
26
+ import { MAX_SESSION_FOLDER_NAME_LENGTH, ResourcePolicyError, } from '../utils/resourceLimits.js';
26
27
  const logger = createLogger('chat-service');
27
28
  class ChatService {
28
29
  constructor() {
@@ -240,7 +241,11 @@ class ChatService {
240
241
  const updatedMessage = sanitizeChatMessageProviderState({
241
242
  ...session.messages[messageIndex],
242
243
  ...updates,
243
- timestamp: Date.now(), // Always update timestamp
244
+ // Only content edits move the timestamp; metadata updates (e.g. rating)
245
+ // keep the message's place in time.
246
+ timestamp: updates.content !== undefined
247
+ ? Date.now()
248
+ : session.messages[messageIndex].timestamp,
244
249
  });
245
250
  session.messages[messageIndex] = updatedMessage;
246
251
  session.updatedAt = Date.now();
@@ -260,6 +265,54 @@ class ChatService {
260
265
  }
261
266
  return deleted;
262
267
  }
268
+ getSessionFolders(userId = 'default') {
269
+ return storageService.getSessionFolders(userId);
270
+ }
271
+ createSessionFolder(name, userId = 'default') {
272
+ const normalizedName = this.normalizeSessionFolderName(name);
273
+ const now = Date.now();
274
+ const folder = {
275
+ id: uuidv4(),
276
+ name: normalizedName,
277
+ createdAt: now,
278
+ updatedAt: now,
279
+ };
280
+ storageService.saveSessionFolder(folder, userId);
281
+ return folder;
282
+ }
283
+ renameSessionFolder(folderId, name, userId = 'default') {
284
+ const normalizedName = this.normalizeSessionFolderName(name);
285
+ const folder = storageService
286
+ .getSessionFolders(userId)
287
+ .find(item => item.id === folderId);
288
+ if (!folder)
289
+ return undefined;
290
+ const updated = { ...folder, name: normalizedName, updatedAt: Date.now() };
291
+ storageService.saveSessionFolder(updated, userId);
292
+ return updated;
293
+ }
294
+ normalizeSessionFolderName(name) {
295
+ if (typeof name !== 'string' || !name.trim()) {
296
+ throw new ResourcePolicyError('Name is required', 400);
297
+ }
298
+ const normalizedName = name.trim();
299
+ if (normalizedName.length > MAX_SESSION_FOLDER_NAME_LENGTH) {
300
+ throw new ResourcePolicyError(`Name exceeds the maximum length of ${MAX_SESSION_FOLDER_NAME_LENGTH} characters`, 400);
301
+ }
302
+ return normalizedName;
303
+ }
304
+ deleteSessionFolder(folderId, userId = 'default') {
305
+ const deleted = storageService.deleteSessionFolder(folderId, userId);
306
+ if (deleted) {
307
+ // Keep the in-memory cache consistent with the cleared folder links.
308
+ for (const session of this.getAllSessions(userId)) {
309
+ if (session.folderId === folderId) {
310
+ this.sessions.set(session.id, { ...session, folderId: undefined });
311
+ }
312
+ }
313
+ }
314
+ return deleted;
315
+ }
263
316
  clearAllSessions(userId = 'default') {
264
317
  // Get all sessions for the user first
265
318
  const userSessions = this.getAllSessions(userId);
@@ -1 +1 @@
1
- {"version":3,"file":"chatService.js","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,cAAc,MAAM,eAAe,CAAC;AAC3C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAE5C,MAAM,WAAW;IAGf;QAFQ,aAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC;QAGrD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CACrB,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CACpD,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,UAAU,aAAa,CAAC,MAAM,wBAAwB,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,wGAAwG;QACxG,4DAA4D;IAC9D,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,KAAc,EACd,SAAiB,SAAS,EAC1B,SAAkB,EAClB,iBAAyC;QAEzC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,kBAAkB,GACtB,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,KAAK,IAAI,UAAU;YAC1B,QAAQ,EAAE,EAAE;YACZ,KAAK;YACL,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS;YACT,GAAG,kBAAkB;SACtB,CAAC;QAEF,gFAAgF;QAChF,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,gEAAgE;QAChE,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACzD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAE/D,0EAA0E;gBAC1E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CACjD,kBAAkB,EAClB,MAAM,CACP,CAAC;gBAEF,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;oBACjD,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtD,aAAa,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,SAAS,GAAgB;gBAC7B,EAAE,EAAE,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,GAAG;aACf,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,+BAA+B;QAC/B,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CACR,SAAiB,EACjB,SAAiB,SAAS;QAE1B,qCAAqC;QACrC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3C,qEAAqE;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,0EAA0E;YAC1E,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,8EAA8E;gBAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,SAAiB,SAAS;QACvC,4DAA4D;QAC5D,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5D,kDAAkD;QAClD,4EAA4E;QAC5E,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,OAA6B,EAC7B,SAAiB,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,gBAAgB,GACpB,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC5B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC;gBACE,GAAG,OAAO;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gCAAgC,CAAC;aACjE,CAAC;QACR,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO;YACV,GAAG,gBAAgB;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,MAAM,iBAAiB,GACrB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;YAC7D,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,OAAO,CAC1B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CACjD,CAAC;QAEF,IAAI,iBAAiB,IAAI,YAAY,EAAE,CAAC;YACtC,MAAM,kBAAkB,GAAG,iBAAiB;gBAC1C,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC;YACd,cAAc,CAAC,YAAY,GAAG,kBAAkB,EAAE,YAAY,CAAC;YAC/D,cAAc,CAAC,UAAU,GAAG,kBAAkB,EAAE,UAAU,CAAC;QAC7D,CAAC;QAED,4FAA4F;QAC5F,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAExD,mBAAmB;gBACnB,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;gBAErC,qDAAqD;gBACrD,MAAM,IAAI,CAAC,6BAA6B,CACtC,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,sGAAsG;gBACtG,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;gBACrC,IAAI,CAAC,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7C,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,UAAU,CACR,SAAiB,EACjB,OAAgE,EAChE,SAAiB,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAEzC,qEAAqE;QACrE,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC3E,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,UAAU,GAAG,gCAAgC,CAAc;YAC/D,GAAG,OAAO;YACV,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,sEAAsE;QACtE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YAErC,+DAA+D;YAC/D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;gBACnE,IAAI,SAAS,EAAE,CAAC;oBACd,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACrB,6DAA6D;oBAC7D,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBAClC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;oBACtB,CAAC;oBACD,uCAAuC;oBACvC,GAAG,CAAC,YAAY,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,kDAAkD;QAClD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,iCAAiC,CACpC,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,OAAO,CAAC,OAAO,EACf,OAAO,CACR,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACzB,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAC1D,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,8BAA8B,CACjC,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,OAAO,CAAC,OAAO,CAChB,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACzB,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CACX,SAAiB,EACjB,SAAiB,EACjB,OAA6B,EAC7B,SAAiB,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAC7C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAC5B,CAAC;QACF,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,MAAM,cAAc,GAAG,gCAAgC,CAAc;YACnE,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YACjC,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,0BAA0B;SAClD,CAAC,CAAC;QAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;QAChD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,SAAiB,SAAS;QACzD,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,SAAiB,SAAS;QACzC,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEjD,gCAAgC;QAChC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,SAAiB,EAAE,WAAW,GAAG,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,OAAO,4BAA4B,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG,CACpE,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,OAAoB,EACpB,SAAiB,EACjB,MAAc;QAEd,IAAI,CAAC;YACH,0EAA0E;YAC1E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;gBACjD,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAEjE,uCAAuC;gBACvC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,qCAAqC;gBACrC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,0DAA0D,EAC1D,SAAS,EACT,KAAK,CACN,CAAC;YACF,qCAAqC;YACrC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,4BAA4B,CAClC,OAAoB,EACpB,MAAc;QAEd,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IAEO,oBAAoB,CAC1B,OAAoB,EACpB,gBAAwB;QAExB,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CACnD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC7B,CAAC;QAEF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9B,iCAAiC;YACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;gBACrC,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACvC,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,aAAa,GAAgB;gBACjC,EAAE,EAAE,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iCAAiC,CAC7C,SAAiB,EACjB,MAAc,EACd,WAAmB,EACnB,OAAoB;QAEpB,IAAI,CAAC;YACH,yGAAyG;YACzG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,4EAA4E;YAC5E,MAAM,mBAAmB,GACvB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;YAErD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,wBAAwB;YACxB,MAAM,cAAc,GAClB,OAAO,CAAC,eAAe;gBACvB,kBAAkB,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAEtD,wCAAwC;YACxC,MAAM,aAAa,CAAC,WAAW,CAC7B,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,mBAAmB;aACxB,CAAC;YAEF,kCAAkC;YAClC,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,cAAc,CACzD,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,CAAC,EAAE,OAAO;YACV,GAAG,CAAC,uBAAuB;aAC5B,CAAC;YAEF,0DAA0D;YAC1D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,qBAAqB,CAAC,eAAe,CACzC,WAAW,EACX,OAAkB,EAAE,sCAAsC;gBAC1D,MAAM,EACN,gBAAgB,CACjB,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,+BAA+B,CACxC,OAAO,EACP,OAAkB,EAClB,gBAAgB,EAChB,MAAM,CACP,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,+BAA+B,CAC3C,OAAoB,EACpB,OAAgB,EAChB,QAA8B,EAC9B,MAAc;QAEd,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC;YAEjE,gFAAgF;YAChF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,eAAe,CACtD,MAAM,EACN,OAAO,CAAC,EAAE,EACV,CAAC,CACF,CAAC;YAEF,sEAAsE;YACtE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,kBAAkB,GAAG,QAAQ;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACrC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEf,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzE,gCAAgC;YAChC,IAAI,aAAa,GAAG,EAAE,CAAC;YAEvB,0CAA0C;YAC1C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,aAAa,IAAI,0BAA0B,CAAC;gBAC5C,aAAa,IAAI,YAAY;qBAC1B,GAAG,CAAC,MAAM,CAAC,EAAE;oBACZ,MAAM,IAAI,GACP,MAAmC,CAAC,WAAW,IAAI,SAAS,CAAC;oBAChE,MAAM,SAAS,GACb,IAAI,KAAK,MAAM;wBACb,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,IAAI,KAAK,YAAY;4BACrB,CAAC,CAAC,YAAY;4BACd,CAAC,CAAC,IAAI,KAAK,aAAa;gCACtB,CAAC,CAAC,aAAa;gCACf,CAAC,CAAC,MAAM,CAAC;oBACjB,OAAO,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5C,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,aAAa,IAAI,MAAM,CAAC;YAC1B,CAAC;YAED,0DAA0D;YAC1D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,aAAa,IAAI,4BAA4B,CAAC;gBAC9C,aAAa,IAAI,kBAAkB;qBAChC,GAAG,CAAC,MAAM,CAAC,EAAE;oBACZ,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC7D,OAAO,IAAI,SAAS,YAAY,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzD,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAED,MAAM,oBAAoB,GAAG,GAAG,gBAAgB;;;;;EAKpD,aAAa,CAAC,IAAI,EAAE;;;;;;;qBAOD,CAAC;YAEhB,4BAA4B;YAC5B,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CACnD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC7B,CAAC;YAEF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;oBACrC,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;oBACvC,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,MAAM,aAAa,GAAgB;oBACjC,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;gBACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YAED,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACvC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,8BAA8B,CAC1C,SAAiB,EACjB,MAAc,EACd,gBAAwB;QAExB,IAAI,CAAC;YACH,yGAAyG;YACzG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,mBAAmB,GACvB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;YAErD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,wBAAwB;YACxB,MAAM,cAAc,GAClB,OAAO,CAAC,eAAe;gBACvB,kBAAkB,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAEtD,8DAA8D;YAC9D,MAAM,aAAa,CAAC,WAAW,CAC7B,MAAM,EACN,SAAS,EACT,uBAAuB,gBAAgB,EAAE,EACzC,cAAc,EACd,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,+CAA+C;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,SAAiB,EACjB,iBAAyB,EACzB,UAAmE,EACnE,SAAiB,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC3C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,iBAAiB,CACpC,CAAC;QACF,IAAI,CAAC,eAAe;YAAE,OAAO,SAAS,CAAC;QAEvC,gGAAgG;QAChG,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QAE/D,sDAAsD;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACtC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACxD,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QAEvC,wCAAwC;QACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,gCAAgC,CAAc;YACrE,GAAG,UAAU;YACb,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,cAAc,GAAG,CAAC;SACjC,CAAC,CAAC;QAEH,iDAAiD;QACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,mBAAmB,CACjB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,SAAiB,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,yCAAyC;QACzC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,kEAAkE;QAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,IAAI,SAAS,CAAC;QAErD,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACtC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACxD,CAAC;QAEF,gEAAgE;QAChE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAChB,SAAiB,EACjB,SAAiB,EACjB,SAAiB,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;QAE/C,4DAA4D;QAC5D,OAAO,OAAO,CAAC,QAAQ;aACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAED,eAAe,IAAI,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"chatService.js","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,cAAc,MAAM,eAAe,CAAC;AAC3C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAE5C,MAAM,WAAW;IAGf;QAFQ,aAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC;QAGrD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CACrB,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CACpD,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,UAAU,aAAa,CAAC,MAAM,wBAAwB,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,wGAAwG;QACxG,4DAA4D;IAC9D,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,KAAc,EACd,MAAM,GAAW,SAAS,EAC1B,SAAkB,EAClB,iBAAyC;QAEzC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,kBAAkB,GACtB,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,KAAK,IAAI,UAAU;YAC1B,QAAQ,EAAE,EAAE;YACZ,KAAK;YACL,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS;YACT,GAAG,kBAAkB;SACtB,CAAC;QAEF,gFAAgF;QAChF,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,gEAAgE;QAChE,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACzD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAE/D,0EAA0E;gBAC1E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CACjD,kBAAkB,EAClB,MAAM,CACP,CAAC;gBAEF,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;oBACjD,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtD,aAAa,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,SAAS,GAAgB;gBAC7B,EAAE,EAAE,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,GAAG;aACf,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,+BAA+B;QAC/B,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CACR,SAAiB,EACjB,MAAM,GAAW,SAAS;QAE1B,qCAAqC;QACrC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3C,qEAAqE;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,0EAA0E;YAC1E,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,8EAA8E;gBAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,MAAM,GAAW,SAAS;QACvC,4DAA4D;QAC5D,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5D,kDAAkD;QAClD,4EAA4E;QAC5E,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,OAA6B,EAC7B,MAAM,GAAW,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,gBAAgB,GACpB,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC5B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC;gBACE,GAAG,OAAO;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gCAAgC,CAAC;aACjE,CAAC;QACR,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO;YACV,GAAG,gBAAgB;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,MAAM,iBAAiB,GACrB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;YAC7D,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,OAAO,CAC1B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CACjD,CAAC;QAEF,IAAI,iBAAiB,IAAI,YAAY,EAAE,CAAC;YACtC,MAAM,kBAAkB,GAAG,iBAAiB;gBAC1C,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC;YACd,cAAc,CAAC,YAAY,GAAG,kBAAkB,EAAE,YAAY,CAAC;YAC/D,cAAc,CAAC,UAAU,GAAG,kBAAkB,EAAE,UAAU,CAAC;QAC7D,CAAC;QAED,4FAA4F;QAC5F,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACrD,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAExD,mBAAmB;gBACnB,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;gBAErC,qDAAqD;gBACrD,MAAM,IAAI,CAAC,6BAA6B,CACtC,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,sGAAsG;gBACtG,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;gBACrC,IAAI,CAAC,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7C,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,UAAU,CACR,SAAiB,EACjB,OAAgE,EAChE,MAAM,GAAW,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAEzC,qEAAqE;QACrE,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC3E,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,UAAU,GAAG,gCAAgC,CAAc;YAC/D,GAAG,OAAO;YACV,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,sEAAsE;QACtE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YAErC,+DAA+D;YAC/D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;gBACnE,IAAI,SAAS,EAAE,CAAC;oBACd,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACrB,6DAA6D;oBAC7D,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBAClC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;oBACtB,CAAC;oBACD,uCAAuC;oBACvC,GAAG,CAAC,YAAY,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,kDAAkD;QAClD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,iCAAiC,CACpC,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,OAAO,CAAC,OAAO,EACf,OAAO,CACR,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACzB,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAC1D,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,8BAA8B,CACjC,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,OAAO,CAAC,OAAO,CAChB,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACzB,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CACX,SAAiB,EACjB,SAAiB,EACjB,OAA6B,EAC7B,MAAM,GAAW,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAC7C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAC5B,CAAC;QACF,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,MAAM,cAAc,GAAG,gCAAgC,CAAc;YACnE,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YACjC,GAAG,OAAO;YACV,wEAAwE;YACxE,oCAAoC;YACpC,SAAS,EACP,OAAO,CAAC,OAAO,KAAK,SAAS;gBAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACZ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS;SAC/C,CAAC,CAAC;QAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;QAChD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,MAAM,GAAW,SAAS;QACzD,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,MAAM,GAAW,SAAS;QAC1C,OAAO,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,mBAAmB,CACjB,IAAa,EACb,MAAM,GAAW,SAAS;QAE1B,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,MAAM,EAAE;YACZ,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC;QACF,cAAc,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mBAAmB,CACjB,QAAgB,EAChB,IAAa,EACb,MAAM,GAAW,SAAS;QAE1B,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,cAAc;aAC1B,iBAAiB,CAAC,MAAM,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC3E,cAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,0BAA0B,CAAC,IAAa;QAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,cAAc,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;YAC3D,MAAM,IAAI,mBAAmB,CAC3B,sCAAsC,8BAA8B,aAAa,EACjF,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,mBAAmB,CAAC,QAAgB,EAAE,MAAM,GAAW,SAAS;QAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE,CAAC;YACZ,qEAAqE;YACrE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,MAAM,GAAW,SAAS;QACzC,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEjD,gCAAgC;QAChC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,SAAiB,EAAE,WAAW,GAAG,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,OAAO,4BAA4B,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG,CACpE,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,OAAoB,EACpB,SAAiB,EACjB,MAAc;QAEd,IAAI,CAAC;YACH,0EAA0E;YAC1E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;gBACjD,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAEjE,uCAAuC;gBACvC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,qCAAqC;gBACrC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,0DAA0D,EAC1D,SAAS,EACT,KAAK,CACN,CAAC;YACF,qCAAqC;YACrC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,4BAA4B,CAClC,OAAoB,EACpB,MAAc;QAEd,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IAEO,oBAAoB,CAC1B,OAAoB,EACpB,gBAAwB;QAExB,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CACnD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC7B,CAAC;QAEF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9B,iCAAiC;YACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;gBACrC,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACvC,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,aAAa,GAAgB;gBACjC,EAAE,EAAE,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iCAAiC,CAC7C,SAAiB,EACjB,MAAc,EACd,WAAmB,EACnB,OAAoB;QAEpB,IAAI,CAAC;YACH,yGAAyG;YACzG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,4EAA4E;YAC5E,MAAM,mBAAmB,GACvB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;YAErD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,wBAAwB;YACxB,MAAM,cAAc,GAClB,OAAO,CAAC,eAAe;gBACvB,kBAAkB,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAEtD,wCAAwC;YACxC,MAAM,aAAa,CAAC,WAAW,CAC7B,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,mBAAmB;aACxB,CAAC;YAEF,kCAAkC;YAClC,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,cAAc,CACzD,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,CAAC,EAAE,OAAO;YACV,GAAG,CAAC,uBAAuB;aAC5B,CAAC;YAEF,0DAA0D;YAC1D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,qBAAqB,CAAC,eAAe,CACzC,WAAW,EACX,OAAkB,EAAE,sCAAsC;gBAC1D,MAAM,EACN,gBAAgB,CACjB,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,+BAA+B,CACxC,OAAO,EACP,OAAkB,EAClB,gBAAgB,EAChB,MAAM,CACP,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,+BAA+B,CAC3C,OAAoB,EACpB,OAAgB,EAChB,QAA8B,EAC9B,MAAc;QAEd,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC;YAEjE,gFAAgF;YAChF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,eAAe,CACtD,MAAM,EACN,OAAO,CAAC,EAAE,EACV,CAAC,CACF,CAAC;YAEF,sEAAsE;YACtE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,kBAAkB,GAAG,QAAQ;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACrC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEf,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzE,gCAAgC;YAChC,IAAI,aAAa,GAAG,EAAE,CAAC;YAEvB,0CAA0C;YAC1C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,aAAa,IAAI,0BAA0B,CAAC;gBAC5C,aAAa,IAAI,YAAY;qBAC1B,GAAG,CAAC,MAAM,CAAC,EAAE;oBACZ,MAAM,IAAI,GACP,MAAmC,CAAC,WAAW,IAAI,SAAS,CAAC;oBAChE,MAAM,SAAS,GACb,IAAI,KAAK,MAAM;wBACb,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,IAAI,KAAK,YAAY;4BACrB,CAAC,CAAC,YAAY;4BACd,CAAC,CAAC,IAAI,KAAK,aAAa;gCACtB,CAAC,CAAC,aAAa;gCACf,CAAC,CAAC,MAAM,CAAC;oBACjB,OAAO,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5C,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,aAAa,IAAI,MAAM,CAAC;YAC1B,CAAC;YAED,0DAA0D;YAC1D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,aAAa,IAAI,4BAA4B,CAAC;gBAC9C,aAAa,IAAI,kBAAkB;qBAChC,GAAG,CAAC,MAAM,CAAC,EAAE;oBACZ,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC7D,OAAO,IAAI,SAAS,YAAY,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzD,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAED,MAAM,oBAAoB,GAAG,GAAG,gBAAgB;;;;;EAKpD,aAAa,CAAC,IAAI,EAAE;;;;;;;qBAOD,CAAC;YAEhB,4BAA4B;YAC5B,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CACnD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC7B,CAAC;YAEF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;oBACrC,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;oBACvC,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,MAAM,aAAa,GAAgB;oBACjC,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;gBACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YAED,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACvC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,8BAA8B,CAC1C,SAAiB,EACjB,MAAc,EACd,gBAAwB;QAExB,IAAI,CAAC;YACH,yGAAyG;YACzG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,mBAAmB,GACvB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;YAErD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,wBAAwB;YACxB,MAAM,cAAc,GAClB,OAAO,CAAC,eAAe;gBACvB,kBAAkB,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAEtD,8DAA8D;YAC9D,MAAM,aAAa,CAAC,WAAW,CAC7B,MAAM,EACN,SAAS,EACT,uBAAuB,gBAAgB,EAAE,EACzC,cAAc,EACd,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,+CAA+C;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,SAAiB,EACjB,iBAAyB,EACzB,UAAmE,EACnE,MAAM,GAAW,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC3C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,iBAAiB,CACpC,CAAC;QACF,IAAI,CAAC,eAAe;YAAE,OAAO,SAAS,CAAC;QAEvC,gGAAgG;QAChG,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QAE/D,sDAAsD;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACtC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACxD,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QAEvC,wCAAwC;QACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,gCAAgC,CAAc;YACrE,GAAG,UAAU;YACb,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,cAAc,GAAG,CAAC;SACjC,CAAC,CAAC;QAEH,iDAAiD;QACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,mBAAmB,CACjB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,MAAM,GAAW,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,yCAAyC;QACzC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,kEAAkE;QAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,IAAI,SAAS,CAAC;QAErD,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACtC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACxD,CAAC;QAEF,gEAAgE;QAChE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAChB,SAAiB,EACjB,SAAiB,EACjB,MAAM,GAAW,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;QAE/C,4DAA4D;QAC5D,OAAO,OAAO,CAAC,QAAQ;aACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAED,eAAe,IAAI,WAAW,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ export declare const CODEX_OAUTH_PLUGIN_ID = "codex-oauth";
2
+ export declare class CodexOAuthService {
3
+ private cachedAccessToken;
4
+ private cachedAccountId;
5
+ private cachedExpiryMs;
6
+ private refreshPromise;
7
+ /** Whether the Codex CLI sign-in exists on this server. */
8
+ isAvailable(): boolean;
9
+ /**
10
+ * Last known access token, for synchronous header building. Call
11
+ * ensureFreshToken() on the async request path first.
12
+ */
13
+ getCachedAccessToken(): string | null;
14
+ getCachedAccountId(): string | undefined;
15
+ /** Refresh the access token when missing or near expiry (single flight). */
16
+ ensureFreshToken(): Promise<void>;
17
+ private loadFromDisk;
18
+ private refresh;
19
+ }
20
+ declare const codexOAuthService: CodexOAuthService;
21
+ export default codexOAuthService;
22
+ //# sourceMappingURL=codexOAuthService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexOAuthService.d.ts","sourceRoot":"","sources":["../../src/services/codexOAuthService.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AA8CnD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAA8B;IAEpD,2DAA2D;IAC3D,WAAW,IAAI,OAAO,CAUrB;IAED;;;OAGG;IACH,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpC;IAED,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAGvC;IAED,4EAA4E;IACtE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAetC;IAED,OAAO,CAAC,YAAY;YAiBN,OAAO;CAkEtB;AAED,QAAA,MAAM,iBAAiB,mBAA0B,CAAC;eACnC,iBAAiB"}
@@ -0,0 +1,176 @@
1
+ /*
2
+ * Libre WebUI
3
+ * Copyright (C) 2025 Kroonen AI, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at:
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import axios from 'axios';
18
+ import fs from 'fs';
19
+ import os from 'os';
20
+ import path from 'path';
21
+ import { createLogger } from '../utils/logger.js';
22
+ const logger = createLogger('codex-oauth');
23
+ /**
24
+ * Reuses the Codex CLI's ChatGPT sign-in for the bundled "codex-oauth"
25
+ * provider plugin. Tokens live in the CLI's own auth file; this service only
26
+ * reads them, refreshes them through the same public OAuth client the CLI
27
+ * uses, and writes refreshed tokens back so the CLI keeps working too.
28
+ * Token values are never logged.
29
+ */
30
+ const OAUTH_CLIENT_ID = 'app_EMoamEEZ73f0CkXaXp7hrann';
31
+ /** Overridable for tests only; production always talks to auth.openai.com. */
32
+ const oauthTokenUrl = () => process.env.CODEX_OAUTH_TOKEN_URL || 'https://auth.openai.com/oauth/token';
33
+ /** Refresh slightly early so an in-flight request never carries a dead token. */
34
+ const EXPIRY_MARGIN_MS = 60000;
35
+ export const CODEX_OAUTH_PLUGIN_ID = 'codex-oauth';
36
+ const codexEnabled = () => process.env.CODEX_OAUTH_MODELS_ENABLED !== 'false';
37
+ function authFilePath() {
38
+ const home = process.env.CODEX_HOME || path.join(os.homedir(), '.codex');
39
+ return path.join(home, 'auth.json');
40
+ }
41
+ function decodeJwtClaims(token) {
42
+ const parts = token.split('.');
43
+ if (parts.length !== 3)
44
+ return null;
45
+ try {
46
+ return JSON.parse(Buffer.from(parts[1], 'base64url').toString('utf8'));
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ }
52
+ function accountIdFromClaims(claims) {
53
+ return (claims?.chatgpt_account_id ||
54
+ claims?.['https://api.openai.com/auth']?.chatgpt_account_id);
55
+ }
56
+ export class CodexOAuthService {
57
+ constructor() {
58
+ this.cachedAccessToken = null;
59
+ this.cachedExpiryMs = 0;
60
+ this.refreshPromise = null;
61
+ }
62
+ /** Whether the Codex CLI sign-in exists on this server. */
63
+ isAvailable() {
64
+ if (!codexEnabled())
65
+ return false;
66
+ try {
67
+ const parsed = JSON.parse(fs.readFileSync(authFilePath(), 'utf8'));
68
+ return Boolean(parsed.tokens?.refresh_token);
69
+ }
70
+ catch {
71
+ return false;
72
+ }
73
+ }
74
+ /**
75
+ * Last known access token, for synchronous header building. Call
76
+ * ensureFreshToken() on the async request path first.
77
+ */
78
+ getCachedAccessToken() {
79
+ if (!this.cachedAccessToken)
80
+ this.loadFromDisk();
81
+ return this.cachedAccessToken;
82
+ }
83
+ getCachedAccountId() {
84
+ if (!this.cachedAccessToken)
85
+ this.loadFromDisk();
86
+ return this.cachedAccountId;
87
+ }
88
+ /** Refresh the access token when missing or near expiry (single flight). */
89
+ async ensureFreshToken() {
90
+ if (!codexEnabled())
91
+ return;
92
+ if (!this.cachedAccessToken)
93
+ this.loadFromDisk();
94
+ if (this.cachedAccessToken &&
95
+ Date.now() < this.cachedExpiryMs - EXPIRY_MARGIN_MS) {
96
+ return;
97
+ }
98
+ if (!this.refreshPromise) {
99
+ this.refreshPromise = this.refresh().finally(() => {
100
+ this.refreshPromise = null;
101
+ });
102
+ }
103
+ await this.refreshPromise;
104
+ }
105
+ loadFromDisk() {
106
+ try {
107
+ const parsed = JSON.parse(fs.readFileSync(authFilePath(), 'utf8'));
108
+ const accessToken = parsed.tokens?.access_token;
109
+ if (!accessToken)
110
+ return;
111
+ const claims = decodeJwtClaims(accessToken);
112
+ this.cachedAccessToken = accessToken;
113
+ this.cachedAccountId =
114
+ parsed.tokens?.account_id || accountIdFromClaims(claims);
115
+ this.cachedExpiryMs = claims?.exp ? claims.exp * 1000 : 0;
116
+ }
117
+ catch {
118
+ // Unavailable or unreadable; isAvailable() reports this state.
119
+ }
120
+ }
121
+ async refresh() {
122
+ const file = authFilePath();
123
+ let parsed;
124
+ try {
125
+ parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
126
+ }
127
+ catch {
128
+ throw new Error('Codex sign-in not found on this server. Run "codex login" as the server user.');
129
+ }
130
+ const refreshToken = parsed.tokens?.refresh_token;
131
+ if (!refreshToken) {
132
+ throw new Error('Codex auth file has no refresh token. Run "codex login" as the server user.');
133
+ }
134
+ const response = await axios.post(oauthTokenUrl(), new URLSearchParams({
135
+ grant_type: 'refresh_token',
136
+ refresh_token: refreshToken,
137
+ client_id: OAUTH_CLIENT_ID,
138
+ }).toString(), {
139
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
140
+ timeout: 30000,
141
+ });
142
+ const tokens = response.data;
143
+ if (!tokens.access_token) {
144
+ throw new Error('Codex token refresh returned no access token.');
145
+ }
146
+ const claims = decodeJwtClaims(tokens.access_token);
147
+ this.cachedAccessToken = tokens.access_token;
148
+ this.cachedAccountId =
149
+ accountIdFromClaims(claims) || parsed.tokens?.account_id;
150
+ this.cachedExpiryMs = claims?.exp
151
+ ? claims.exp * 1000
152
+ : Date.now() + (tokens.expires_in ?? 3600) * 1000;
153
+ const updated = {
154
+ ...parsed,
155
+ tokens: {
156
+ ...parsed.tokens,
157
+ id_token: tokens.id_token ?? parsed.tokens?.id_token,
158
+ access_token: tokens.access_token,
159
+ refresh_token: tokens.refresh_token ?? refreshToken,
160
+ ...(this.cachedAccountId ? { account_id: this.cachedAccountId } : {}),
161
+ },
162
+ last_refresh: new Date().toISOString(),
163
+ };
164
+ try {
165
+ fs.writeFileSync(file, JSON.stringify(updated, null, 2), { mode: 0o600 });
166
+ }
167
+ catch (error) {
168
+ // The in-memory token still works for this process.
169
+ logger.warn('Could not persist refreshed Codex tokens:', error);
170
+ }
171
+ logger.info('Refreshed Codex OAuth access token.');
172
+ }
173
+ }
174
+ const codexOAuthService = new CodexOAuthService();
175
+ export default codexOAuthService;
176
+ //# sourceMappingURL=codexOAuthService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexOAuthService.js","sourceRoot":"","sources":["../../src/services/codexOAuthService.ts"],"names":[],"mappings":"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"}