libre-webui 0.37.2 → 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 (432) hide show
  1. package/README.md +29 -65
  2. package/backend/dist/db.js +1 -1
  3. package/backend/dist/index.d.ts.map +1 -1
  4. package/backend/dist/index.js +13 -36
  5. package/backend/dist/index.js.map +1 -1
  6. package/backend/dist/main.js +0 -12
  7. package/backend/dist/main.js.map +1 -1
  8. package/backend/dist/middleware/cors.d.ts.map +1 -1
  9. package/backend/dist/middleware/cors.js +5 -0
  10. package/backend/dist/middleware/cors.js.map +1 -1
  11. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
  12. package/backend/dist/persistence/postgresExtensionRepositories.js +2 -4
  13. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
  14. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  15. package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
  16. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  17. package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts +9 -0
  18. package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts.map +1 -0
  19. package/backend/dist/persistence/postgresWorkRunThinkMigration.js +39 -0
  20. package/backend/dist/persistence/postgresWorkRunThinkMigration.js.map +1 -0
  21. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  22. package/backend/dist/persistence/sqliteExtensionRepositories.js +2 -4
  23. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  24. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  25. package/backend/dist/persistence/sqliteMigrations.js +20 -0
  26. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  27. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  28. package/backend/dist/persistence/sqliteToPostgresMigration.js +1 -0
  29. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  30. package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -1
  31. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +3 -2
  32. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -1
  33. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -1
  34. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +3 -3
  35. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -1
  36. package/backend/dist/platform/workPersistence/types.d.ts +5 -0
  37. package/backend/dist/platform/workPersistence/types.d.ts.map +1 -1
  38. package/backend/dist/platform/workPersistence/types.js.map +1 -1
  39. package/backend/dist/routes/agentCli.d.ts.map +1 -1
  40. package/backend/dist/routes/agentCli.js +8 -3
  41. package/backend/dist/routes/agentCli.js.map +1 -1
  42. package/backend/dist/routes/{cordis.d.ts → strands.d.ts} +1 -1
  43. package/backend/dist/routes/strands.d.ts.map +1 -0
  44. package/backend/dist/routes/strands.js +300 -0
  45. package/backend/dist/routes/strands.js.map +1 -0
  46. package/backend/dist/routes/work.d.ts.map +1 -1
  47. package/backend/dist/routes/work.js +26 -23
  48. package/backend/dist/routes/work.js.map +1 -1
  49. package/backend/dist/services/agentAccessService.d.ts +0 -5
  50. package/backend/dist/services/agentAccessService.d.ts.map +1 -1
  51. package/backend/dist/services/agentAccessService.js +7 -35
  52. package/backend/dist/services/agentAccessService.js.map +1 -1
  53. package/backend/dist/services/agentCliService.d.ts +16 -23
  54. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  55. package/backend/dist/services/agentCliService.js +85 -112
  56. package/backend/dist/services/agentCliService.js.map +1 -1
  57. package/backend/dist/services/authService.d.ts +3 -3
  58. package/backend/dist/services/authService.d.ts.map +1 -1
  59. package/backend/dist/services/authService.js +3 -4
  60. package/backend/dist/services/authService.js.map +1 -1
  61. package/backend/dist/services/authorizationService.d.ts +1 -1
  62. package/backend/dist/services/authorizationService.d.ts.map +1 -1
  63. package/backend/dist/services/authorizationService.js +17 -8
  64. package/backend/dist/services/authorizationService.js.map +1 -1
  65. package/backend/dist/services/followUpService.d.ts +4 -1
  66. package/backend/dist/services/followUpService.d.ts.map +1 -1
  67. package/backend/dist/services/followUpService.js +23 -2
  68. package/backend/dist/services/followUpService.js.map +1 -1
  69. package/backend/dist/services/pluginService.d.ts.map +1 -1
  70. package/backend/dist/services/pluginService.js +10 -6
  71. package/backend/dist/services/pluginService.js.map +1 -1
  72. package/backend/dist/services/pluginUsageService.d.ts +0 -34
  73. package/backend/dist/services/pluginUsageService.d.ts.map +1 -1
  74. package/backend/dist/services/pluginUsageService.js +0 -62
  75. package/backend/dist/services/pluginUsageService.js.map +1 -1
  76. package/backend/dist/services/strandsAccessService.d.ts +26 -0
  77. package/backend/dist/services/strandsAccessService.d.ts.map +1 -0
  78. package/backend/dist/services/strandsAccessService.js +95 -0
  79. package/backend/dist/services/strandsAccessService.js.map +1 -0
  80. package/backend/dist/services/thinkingSummaryService.d.ts +2 -3
  81. package/backend/dist/services/thinkingSummaryService.d.ts.map +1 -1
  82. package/backend/dist/services/thinkingSummaryService.js +13 -27
  83. package/backend/dist/services/thinkingSummaryService.js.map +1 -1
  84. package/backend/dist/services/titleGenerationService.d.ts +7 -18
  85. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  86. package/backend/dist/services/titleGenerationService.js +15 -36
  87. package/backend/dist/services/titleGenerationService.js.map +1 -1
  88. package/backend/dist/services/workAgentService.d.ts +1 -1
  89. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  90. package/backend/dist/services/workAgentService.js +17 -60
  91. package/backend/dist/services/workAgentService.js.map +1 -1
  92. package/backend/dist/services/workModelProviderService.d.ts +1 -4
  93. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  94. package/backend/dist/services/workModelProviderService.js +60 -50
  95. package/backend/dist/services/workModelProviderService.js.map +1 -1
  96. package/backend/dist/services/workTaskService.d.ts +3 -2
  97. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  98. package/backend/dist/services/workTaskService.js +11 -7
  99. package/backend/dist/services/workTaskService.js.map +1 -1
  100. package/backend/dist/strands/catalog.d.ts +57 -0
  101. package/backend/dist/strands/catalog.d.ts.map +1 -0
  102. package/backend/dist/strands/catalog.js +241 -0
  103. package/backend/dist/strands/catalog.js.map +1 -0
  104. package/backend/dist/strands/engine.d.ts +131 -0
  105. package/backend/dist/strands/engine.d.ts.map +1 -0
  106. package/backend/dist/strands/engine.js +477 -0
  107. package/backend/dist/strands/engine.js.map +1 -0
  108. package/backend/dist/strands/harness.d.ts +14 -0
  109. package/backend/dist/strands/harness.d.ts.map +1 -0
  110. package/backend/dist/strands/harness.js +41 -0
  111. package/backend/dist/strands/harness.js.map +1 -0
  112. package/backend/dist/strands/model.d.ts +24 -0
  113. package/backend/dist/strands/model.d.ts.map +1 -0
  114. package/backend/dist/strands/model.js +381 -0
  115. package/backend/dist/strands/model.js.map +1 -0
  116. package/backend/dist/strands/runtime.d.ts +4 -0
  117. package/backend/dist/strands/runtime.d.ts.map +1 -0
  118. package/backend/dist/{cordis/work-model.js → strands/runtime.js} +16 -12
  119. package/backend/dist/strands/runtime.js.map +1 -0
  120. package/backend/dist/strands/sandbox.d.ts +24 -0
  121. package/backend/dist/strands/sandbox.d.ts.map +1 -0
  122. package/backend/dist/strands/sandbox.js +156 -0
  123. package/backend/dist/strands/sandbox.js.map +1 -0
  124. package/backend/dist/strands/work-driver.d.ts +11 -0
  125. package/backend/dist/strands/work-driver.d.ts.map +1 -0
  126. package/backend/dist/strands/work-driver.js +443 -0
  127. package/backend/dist/strands/work-driver.js.map +1 -0
  128. package/backend/dist/strands/work-model.d.ts +7 -0
  129. package/backend/dist/strands/work-model.d.ts.map +1 -0
  130. package/backend/dist/strands/work-model.js +42 -0
  131. package/backend/dist/strands/work-model.js.map +1 -0
  132. package/backend/dist/types/work.d.ts +7 -11
  133. package/backend/dist/types/work.d.ts.map +1 -1
  134. package/backend/dist/types/work.js.map +1 -1
  135. package/backend/dist/utils/bedrockMantle.d.ts +46 -0
  136. package/backend/dist/utils/bedrockMantle.d.ts.map +1 -0
  137. package/backend/dist/utils/bedrockMantle.js +206 -0
  138. package/backend/dist/utils/bedrockMantle.js.map +1 -0
  139. package/backend/dist/utils/corsOriginPolicy.d.ts +10 -0
  140. package/backend/dist/utils/corsOriginPolicy.d.ts.map +1 -0
  141. package/backend/dist/utils/corsOriginPolicy.js +70 -0
  142. package/backend/dist/utils/corsOriginPolicy.js.map +1 -0
  143. package/backend/dist/utils/pluginChatAdapter.d.ts +36 -0
  144. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  145. package/backend/dist/utils/pluginChatAdapter.js +122 -47
  146. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  147. package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
  148. package/backend/dist/utils/pluginDefinitionTrust.js +3 -2
  149. package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
  150. package/backend/dist/utils/pluginValidation.d.ts +1 -1
  151. package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
  152. package/backend/dist/utils/pluginValidation.js +11 -0
  153. package/backend/dist/utils/pluginValidation.js.map +1 -1
  154. package/backend/package.json +6 -36
  155. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  156. package/frontend/dist/artifact-runtime/babel.js +170 -170
  157. package/frontend/dist/artifact-runtime/framer-motion.js +3 -3
  158. package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
  159. package/frontend/dist/artifact-runtime/mathjs.js +1 -1
  160. package/frontend/dist/artifact-runtime/mermaid.js +1 -1
  161. package/frontend/dist/artifact-runtime/plotly.js +1 -1
  162. package/frontend/dist/artifact-runtime/react.js +3 -3
  163. package/frontend/dist/assets/index-D99DS5c6.js +57 -0
  164. package/frontend/dist/assets/index-Dz1JufgZ.css +1 -0
  165. package/frontend/dist/assets/{markdown-math-D1Bj3pDB.css → markdown-math-DzFXvcrH.css} +1 -1
  166. package/frontend/dist/index.html +34 -34
  167. package/frontend/dist/js/{ArtifactContainer-D4v4l15L.js → ArtifactContainer-Cn7X9HGm.js} +1 -1
  168. package/frontend/dist/js/{ArtifactDemoPage-B2uaVpsi.js → ArtifactDemoPage-Ddpy2O_v.js} +1 -1
  169. package/frontend/dist/js/{ArtifactSandboxFrame-DlWJHI-r.js → ArtifactSandboxFrame-CdsAqv8H.js} +1 -1
  170. package/frontend/dist/js/{ArtifactSlideOutPanel-laZ98QKB.js → ArtifactSlideOutPanel-cVd9X80o.js} +1 -1
  171. package/frontend/dist/js/AutomationModal-B4UaWjkk.js +1 -0
  172. package/frontend/dist/js/AutomationsPage-huCrvLUp.js +1 -0
  173. package/frontend/dist/js/{AvatarUpload-KaBaTKoG.js → AvatarUpload-CG-w6Mpt.js} +1 -1
  174. package/frontend/dist/js/{Button-CGMYia4g.js → Button-j68Q8KVh.js} +1 -1
  175. package/frontend/dist/js/{CalendarPage-Dc7r-86c.js → CalendarPage-CZXT1w99.js} +1 -1
  176. package/frontend/dist/js/ChannelsPage-DbtdHnSL.js +1 -0
  177. package/frontend/dist/js/ChatPage-BZE65kiq.js +14 -0
  178. package/frontend/dist/js/ConnectModels-DD4bLgdq.js +1 -0
  179. package/frontend/dist/js/{EvaluationsPage-BB7sPhIR.js → EvaluationsPage-Dq53LaXd.js} +2 -2
  180. package/frontend/dist/js/{FirstTimeSetup-elqSi9JH.js → FirstTimeSetup-BoJIfuQT.js} +1 -1
  181. package/frontend/dist/js/GalleryPage-DKwqeB2A.js +1 -0
  182. package/frontend/dist/js/HomePage-C8bCJfls.js +1 -0
  183. package/frontend/dist/js/LanguageSwitcher-B_YyU5JG.js +1 -0
  184. package/frontend/dist/js/{Logo-HZvdAk2c.js → Logo-DnfVtjgj.js} +1 -1
  185. package/frontend/dist/js/{LogoMark-GJnfMXsk.js → LogoMark-BzObGdA9.js} +1 -1
  186. package/frontend/dist/js/{ModelManagerModals-Bk6OQzJI.js → ModelManagerModals-BzjZ-QwL.js} +1 -1
  187. package/frontend/dist/js/NotesPage-CnaAp_w_.js +3 -0
  188. package/frontend/dist/js/{OptimizedSyntaxHighlighter-CzzV6ONG.js → OptimizedSyntaxHighlighter-B0g8cxZQ.js} +1 -1
  189. package/frontend/dist/js/OptimizedSyntaxHighlighter-B_BbHeO1.js +1 -0
  190. package/frontend/dist/js/{PasswordStrengthMeter-DasfJa4P.js → PasswordStrengthMeter-DI4RDv67.js} +1 -1
  191. package/frontend/dist/js/{PersonasPage-CIJINcQK.js → PersonasPage-CH3GUKph.js} +2 -2
  192. package/frontend/dist/js/PluginUsagePage-d54K2gAj.js +1 -0
  193. package/frontend/dist/js/{RichMessageContent-DxCHlUlY.js → RichMessageContent-BfYbVBFz.js} +2 -2
  194. package/frontend/dist/js/RichMessageContent-CDxxs3Tt.js +1 -0
  195. package/frontend/dist/js/SettingsModal-BvtJcvow.js +19 -0
  196. package/frontend/dist/js/{SettingsToggle-oxvw7ulA.js → SettingsToggle-DrJ0Bapi.js} +1 -1
  197. package/frontend/dist/js/{ShareDialog-Bhpt_Y1N.js → ShareDialog-DaSxkTKS.js} +1 -1
  198. package/frontend/dist/js/StrandsPage-BQwz0mWq.js +1 -0
  199. package/frontend/dist/js/{SystemPage-BfhVXqar.js → SystemPage-BqNZoFxR.js} +1 -1
  200. package/frontend/dist/js/{TurnstileWidget-CVepEMEQ.js → TurnstileWidget-tI50c7Kc.js} +1 -1
  201. package/frontend/dist/js/{UserManagementPage-2yHv89ZA.js → UserManagementPage-UvPjA9RP.js} +1 -1
  202. package/frontend/dist/js/UserManagementPanel-C3T1ReJJ.js +1 -0
  203. package/frontend/dist/js/{WhatsNewModal-Dl69bG2T.js → WhatsNewModal-CLcU2Ugk.js} +1 -1
  204. package/frontend/dist/js/WorkPage-BpjGn--1.js +8 -0
  205. package/frontend/dist/js/api-BrHW-VGd.js +14 -0
  206. package/frontend/dist/js/api-K_hhqPdx.js +1 -0
  207. package/frontend/dist/js/{appNavigation-R8iKverf.js → appNavigation-B6xYIgLi.js} +1 -1
  208. package/frontend/dist/js/appStore-DkRdQQeY.js +2 -0
  209. package/frontend/dist/js/appVersion-BVtSqLVj.js +1 -0
  210. package/frontend/dist/js/ar-XTZGEtBr.js +2 -0
  211. package/frontend/dist/js/authStore-DBS6Kbvh.js +1 -0
  212. package/frontend/dist/js/{authStore-D8fc-Hl0.js → authStore-DjAsRpNL.js} +3 -3
  213. package/frontend/dist/js/bn-JiK7ZWmy.js +2 -0
  214. package/frontend/dist/js/chatStore-DpVxt9VX.js +3 -0
  215. package/frontend/dist/js/{client-BeJbHHWx.js → client-DppLngAs.js} +2 -2
  216. package/frontend/dist/js/{config-D6Kcp5n3.js → config-4_s8hdqO.js} +1 -1
  217. package/frontend/dist/js/cs-D8ju18CO.js +2 -0
  218. package/frontend/dist/js/da-BJWcAoUc.js +2 -0
  219. package/frontend/dist/js/de-CLJLmy69.js +2 -0
  220. package/frontend/dist/js/es-BvqHEL-3.js +2 -0
  221. package/frontend/dist/js/{evaluationsApi-2YwZBPk5.js → evaluationsApi-DyuW7IJ_.js} +1 -1
  222. package/frontend/dist/js/fr-B8ZoZomI.js +2 -0
  223. package/frontend/dist/js/hi-AzJLALo-.js +2 -0
  224. package/frontend/dist/js/id-DZYGQhvC.js +2 -0
  225. package/frontend/dist/js/is-Da_kvtzW.js +2 -0
  226. package/frontend/dist/js/it-B90zSlqn.js +2 -0
  227. package/frontend/dist/js/ja-DU_K1GOr.js +2 -0
  228. package/frontend/dist/js/ko-DicfoO-e.js +2 -0
  229. package/frontend/dist/js/{markdown-CZ1tYEW8.js → markdown-DU84620G.js} +1 -1
  230. package/frontend/dist/js/{markdown-core-KjS96SYW.js → markdown-core-Cyql92Hg.js} +1 -1
  231. package/frontend/dist/js/{markdown-html-DQEwrWcf.js → markdown-html-CUc2fCgY.js} +1 -1
  232. package/frontend/dist/js/{markdown-math-CKi32S5d.js → markdown-math-DxPfMKvO.js} +1 -1
  233. package/frontend/dist/js/{markdownHtml-lrXhxBhK.js → markdownHtml-KhS0cFNH.js} +1 -1
  234. package/frontend/dist/js/markdownMath-CsfRQAcz.js +1 -0
  235. package/frontend/dist/js/{messageCodeStyles-D4haBw80.js → messageCodeStyles-CuQPkfEK.js} +1 -1
  236. package/frontend/dist/js/ms-CfH7wjUY.js +2 -0
  237. package/frontend/dist/js/nl-ELlOz-B3.js +2 -0
  238. package/frontend/dist/js/pl-33dayyUk.js +2 -0
  239. package/frontend/dist/js/pt-aIXSQPCT.js +2 -0
  240. package/frontend/dist/js/react-vendor-CR5VJ85Q.js +9 -0
  241. package/frontend/dist/js/{router-vendor-HZm4FR0A.js → router-vendor-DqMnEJWK.js} +1 -1
  242. package/frontend/dist/js/ru-BSvGtBtW.js +2 -0
  243. package/frontend/dist/js/{standalone-DbyFjvTU.js → standalone-D_lg5NC9.js} +1 -1
  244. package/frontend/dist/js/strandsApi-BFbeEpAY.js +2 -0
  245. package/frontend/dist/js/sv-B7KOz81W.js +2 -0
  246. package/frontend/dist/js/{syntax-highlight-DNc3FFCa.js → syntax-highlight-D7dQ5s5-.js} +1 -1
  247. package/frontend/dist/js/{teamEventStream-omPy51va.js → teamEventStream-DsAS6P4m.js} +1 -1
  248. package/frontend/dist/js/th-DgpjGxvA.js +2 -0
  249. package/frontend/dist/js/tr-BQTbl2h-.js +2 -0
  250. package/frontend/dist/js/{ui-D5-4niRk.js → ui-Aq8MP7Ph.js} +2 -2
  251. package/frontend/dist/js/ui-vendor-DVTj_sKN.js +1 -0
  252. package/frontend/dist/js/uk-JLymloot.js +2 -0
  253. package/frontend/dist/js/{useChat-DnGClJeX.js → useChat-D3ZAGz70.js} +4 -4
  254. package/frontend/dist/js/useDialogFocus-zSGHkpE4.js +1 -0
  255. package/frontend/dist/js/useDictation-B6l8QzeM.js +1 -0
  256. package/frontend/dist/js/{useQuery-hWmQjdLu.js → useQuery-BTKpXudI.js} +1 -1
  257. package/frontend/dist/js/{useTranslation-B9kflK9S.js → useTranslation-Boi0fB1B.js} +1 -1
  258. package/frontend/dist/js/utils-B-Bhh1pF.js +1 -0
  259. package/frontend/dist/js/utils-vendor-DPJG-EG_.js +1 -0
  260. package/frontend/dist/js/vi-BXdLOJ8q.js +2 -0
  261. package/frontend/dist/js/{work-DmJpVPPO.js → work-CdbmBok5.js} +1 -1
  262. package/frontend/dist/js/workApi-D1xtiG3Q.js +1 -0
  263. package/frontend/dist/js/{workApi-C5InfT8x.js → workApi-UPxumrEF.js} +1 -1
  264. package/frontend/dist/js/workModels-BM2Zyiba.js +1 -0
  265. package/frontend/dist/js/zh-gdUf9sXa.js +2 -0
  266. package/package.json +11 -40
  267. package/plugins/anthropic.json +3 -1
  268. package/plugins/bedrock.json +86 -0
  269. package/plugins/openrouter.json +2 -0
  270. package/backend/dist/cordis/contracts.d.ts +0 -270
  271. package/backend/dist/cordis/contracts.d.ts.map +0 -1
  272. package/backend/dist/cordis/contracts.js +0 -32
  273. package/backend/dist/cordis/contracts.js.map +0 -1
  274. package/backend/dist/cordis/dsh/chat-model.d.ts +0 -16
  275. package/backend/dist/cordis/dsh/chat-model.d.ts.map +0 -1
  276. package/backend/dist/cordis/dsh/chat-model.js +0 -104
  277. package/backend/dist/cordis/dsh/chat-model.js.map +0 -1
  278. package/backend/dist/cordis/dsh/engine-plugin.d.ts +0 -186
  279. package/backend/dist/cordis/dsh/engine-plugin.d.ts.map +0 -1
  280. package/backend/dist/cordis/dsh/engine-plugin.js +0 -1116
  281. package/backend/dist/cordis/dsh/engine-plugin.js.map +0 -1
  282. package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts +0 -175
  283. package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts.map +0 -1
  284. package/backend/dist/cordis/dsh/librewebui-llm-adapter.js +0 -480
  285. package/backend/dist/cordis/dsh/librewebui-llm-adapter.js.map +0 -1
  286. package/backend/dist/cordis/dsh/model-identity.d.ts +0 -12
  287. package/backend/dist/cordis/dsh/model-identity.d.ts.map +0 -1
  288. package/backend/dist/cordis/dsh/model-identity.js +0 -87
  289. package/backend/dist/cordis/dsh/model-identity.js.map +0 -1
  290. package/backend/dist/cordis/dsh/native-provider-client.d.ts +0 -44
  291. package/backend/dist/cordis/dsh/native-provider-client.d.ts.map +0 -1
  292. package/backend/dist/cordis/dsh/native-provider-client.js +0 -524
  293. package/backend/dist/cordis/dsh/native-provider-client.js.map +0 -1
  294. package/backend/dist/cordis/dsh/native-provider-plugin.d.ts +0 -11
  295. package/backend/dist/cordis/dsh/native-provider-plugin.d.ts.map +0 -1
  296. package/backend/dist/cordis/dsh/native-provider-plugin.js +0 -416
  297. package/backend/dist/cordis/dsh/native-provider-plugin.js.map +0 -1
  298. package/backend/dist/cordis/dsh/native-provider-protocol.d.ts +0 -37
  299. package/backend/dist/cordis/dsh/native-provider-protocol.d.ts.map +0 -1
  300. package/backend/dist/cordis/dsh/native-provider-protocol.js +0 -325
  301. package/backend/dist/cordis/dsh/native-provider-protocol.js.map +0 -1
  302. package/backend/dist/cordis/dsh/provider-handler.d.ts +0 -36
  303. package/backend/dist/cordis/dsh/provider-handler.d.ts.map +0 -1
  304. package/backend/dist/cordis/dsh/provider-handler.js +0 -582
  305. package/backend/dist/cordis/dsh/provider-handler.js.map +0 -1
  306. package/backend/dist/cordis/dsh/session-files.d.ts +0 -9
  307. package/backend/dist/cordis/dsh/session-files.d.ts.map +0 -1
  308. package/backend/dist/cordis/dsh/session-files.js +0 -60
  309. package/backend/dist/cordis/dsh/session-files.js.map +0 -1
  310. package/backend/dist/cordis/dsh/session-settings.d.ts +0 -15
  311. package/backend/dist/cordis/dsh/session-settings.d.ts.map +0 -1
  312. package/backend/dist/cordis/dsh/session-settings.js +0 -51
  313. package/backend/dist/cordis/dsh/session-settings.js.map +0 -1
  314. package/backend/dist/cordis/dsh/work-driver.d.ts +0 -12
  315. package/backend/dist/cordis/dsh/work-driver.d.ts.map +0 -1
  316. package/backend/dist/cordis/dsh/work-driver.js +0 -402
  317. package/backend/dist/cordis/dsh/work-driver.js.map +0 -1
  318. package/backend/dist/cordis/dsh/workspace-policy.d.ts +0 -10
  319. package/backend/dist/cordis/dsh/workspace-policy.d.ts.map +0 -1
  320. package/backend/dist/cordis/dsh/workspace-policy.js +0 -44
  321. package/backend/dist/cordis/dsh/workspace-policy.js.map +0 -1
  322. package/backend/dist/cordis/host/composition.d.ts +0 -73
  323. package/backend/dist/cordis/host/composition.d.ts.map +0 -1
  324. package/backend/dist/cordis/host/composition.js +0 -205
  325. package/backend/dist/cordis/host/composition.js.map +0 -1
  326. package/backend/dist/cordis/host/config.d.ts +0 -159
  327. package/backend/dist/cordis/host/config.d.ts.map +0 -1
  328. package/backend/dist/cordis/host/config.js +0 -184
  329. package/backend/dist/cordis/host/config.js.map +0 -1
  330. package/backend/dist/cordis/host/host.d.ts +0 -74
  331. package/backend/dist/cordis/host/host.d.ts.map +0 -1
  332. package/backend/dist/cordis/host/host.js +0 -420
  333. package/backend/dist/cordis/host/host.js.map +0 -1
  334. package/backend/dist/cordis/host/loader-entry.d.ts +0 -41
  335. package/backend/dist/cordis/host/loader-entry.d.ts.map +0 -1
  336. package/backend/dist/cordis/host/loader-entry.js +0 -52
  337. package/backend/dist/cordis/host/loader-entry.js.map +0 -1
  338. package/backend/dist/cordis/host/model.d.ts +0 -45
  339. package/backend/dist/cordis/host/model.d.ts.map +0 -1
  340. package/backend/dist/cordis/host/model.js +0 -54
  341. package/backend/dist/cordis/host/model.js.map +0 -1
  342. package/backend/dist/cordis/host/privacy.d.ts +0 -8
  343. package/backend/dist/cordis/host/privacy.d.ts.map +0 -1
  344. package/backend/dist/cordis/host/privacy.js +0 -73
  345. package/backend/dist/cordis/host/privacy.js.map +0 -1
  346. package/backend/dist/cordis/index.d.ts +0 -14
  347. package/backend/dist/cordis/index.d.ts.map +0 -1
  348. package/backend/dist/cordis/index.js +0 -30
  349. package/backend/dist/cordis/index.js.map +0 -1
  350. package/backend/dist/cordis/runtime.d.ts +0 -97
  351. package/backend/dist/cordis/runtime.d.ts.map +0 -1
  352. package/backend/dist/cordis/runtime.js +0 -231
  353. package/backend/dist/cordis/runtime.js.map +0 -1
  354. package/backend/dist/cordis/work-model.d.ts +0 -7
  355. package/backend/dist/cordis/work-model.d.ts.map +0 -1
  356. package/backend/dist/cordis/work-model.js.map +0 -1
  357. package/backend/dist/routes/cordis.d.ts.map +0 -1
  358. package/backend/dist/routes/cordis.js +0 -440
  359. package/backend/dist/routes/cordis.js.map +0 -1
  360. package/backend/dist/routes/libreClaw.d.ts +0 -3
  361. package/backend/dist/routes/libreClaw.d.ts.map +0 -1
  362. package/backend/dist/routes/libreClaw.js +0 -200
  363. package/backend/dist/routes/libreClaw.js.map +0 -1
  364. package/backend/dist/services/cordisAccessService.d.ts +0 -56
  365. package/backend/dist/services/cordisAccessService.d.ts.map +0 -1
  366. package/backend/dist/services/cordisAccessService.js +0 -98
  367. package/backend/dist/services/cordisAccessService.js.map +0 -1
  368. package/backend/dist/services/libreClawService.d.ts +0 -105
  369. package/backend/dist/services/libreClawService.d.ts.map +0 -1
  370. package/backend/dist/services/libreClawService.js +0 -169
  371. package/backend/dist/services/libreClawService.js.map +0 -1
  372. package/frontend/dist/assets/index-C8_AByBq.css +0 -1
  373. package/frontend/dist/assets/index-DWLnkKwj.js +0 -16
  374. package/frontend/dist/js/AutomationModal-CjjiEZFA.js +0 -1
  375. package/frontend/dist/js/AutomationsPage-jnWmD58y.js +0 -1
  376. package/frontend/dist/js/ChannelsPage-DHPabX1e.js +0 -1
  377. package/frontend/dist/js/ChatPage-ZvGp-iqV.js +0 -14
  378. package/frontend/dist/js/ConnectModels-aUTD6s9B.js +0 -1
  379. package/frontend/dist/js/CordisPage-DZKcpPVj.js +0 -1
  380. package/frontend/dist/js/GalleryPage-CrlNRnkn.js +0 -1
  381. package/frontend/dist/js/HomePage-lR9h7_a1.js +0 -1
  382. package/frontend/dist/js/LanguageSwitcher-CWkbzpxT.js +0 -1
  383. package/frontend/dist/js/LibreClawPage-P19FnNlu.js +0 -1
  384. package/frontend/dist/js/NotesPage-DopG0M4B.js +0 -3
  385. package/frontend/dist/js/OptimizedSyntaxHighlighter-ajqwyBQm.js +0 -1
  386. package/frontend/dist/js/PluginUsagePage-Cj0mUxD8.js +0 -1
  387. package/frontend/dist/js/RichMessageContent-BZndQSJU.js +0 -1
  388. package/frontend/dist/js/SettingsModal-wAuFQOE4.js +0 -19
  389. package/frontend/dist/js/UserManagementPanel-BU95ZPOv.js +0 -1
  390. package/frontend/dist/js/WorkPage-CSderbeT.js +0 -8
  391. package/frontend/dist/js/api-CU-JXx2u.js +0 -1
  392. package/frontend/dist/js/api-DPXCtanG.js +0 -14
  393. package/frontend/dist/js/appStore-BD70bvas.js +0 -2
  394. package/frontend/dist/js/appVersion-C7sxqgMd.js +0 -1
  395. package/frontend/dist/js/ar-Cq-DrSYL.js +0 -2
  396. package/frontend/dist/js/authStore-FNKLFUQp.js +0 -1
  397. package/frontend/dist/js/bn-BqxLh-KL.js +0 -2
  398. package/frontend/dist/js/chatStore-CK5ojwft.js +0 -3
  399. package/frontend/dist/js/cordisApi-BS8QMSV4.js +0 -2
  400. package/frontend/dist/js/cs-D2DDNZf-.js +0 -2
  401. package/frontend/dist/js/da-BciY-TSG.js +0 -2
  402. package/frontend/dist/js/de-DjU_eXQ-.js +0 -2
  403. package/frontend/dist/js/es-ChIEs80I.js +0 -2
  404. package/frontend/dist/js/fr-Bi8BGRW4.js +0 -2
  405. package/frontend/dist/js/hi-BMsCnWg7.js +0 -2
  406. package/frontend/dist/js/i18next-DOICz7ZY.js +0 -1
  407. package/frontend/dist/js/id-CpcN1vhk.js +0 -2
  408. package/frontend/dist/js/is-DkUy2cmP.js +0 -2
  409. package/frontend/dist/js/it-BglK9DRZ.js +0 -2
  410. package/frontend/dist/js/ja-IrprzwLJ.js +0 -2
  411. package/frontend/dist/js/ko--wwEsMPi.js +0 -2
  412. package/frontend/dist/js/markdownMath-B0BpyFBS.js +0 -1
  413. package/frontend/dist/js/ms-BWj59y7-.js +0 -2
  414. package/frontend/dist/js/nl-D-QndW_A.js +0 -2
  415. package/frontend/dist/js/pl-Dw7d7iDV.js +0 -2
  416. package/frontend/dist/js/pt-BI53uHJw.js +0 -2
  417. package/frontend/dist/js/react-vendor-wiHys0m2.js +0 -9
  418. package/frontend/dist/js/ru-JKyTgPg9.js +0 -2
  419. package/frontend/dist/js/sv-BIkBLPSQ.js +0 -2
  420. package/frontend/dist/js/th-CZ_LcCU0.js +0 -2
  421. package/frontend/dist/js/tr-B265byx1.js +0 -2
  422. package/frontend/dist/js/ui-vendor-BhHHyHk3.js +0 -1
  423. package/frontend/dist/js/uk-VTAlChwf.js +0 -2
  424. package/frontend/dist/js/useDialogFocus-BPTG_Zmy.js +0 -1
  425. package/frontend/dist/js/useDictation-D7zVBjDJ.js +0 -1
  426. package/frontend/dist/js/utils-p8Gt72YP.js +0 -1
  427. package/frontend/dist/js/utils-vendor-DISWt2y9.js +0 -1
  428. package/frontend/dist/js/vi-D8rXh-53.js +0 -2
  429. package/frontend/dist/js/workApi-FV75LKJn.js +0 -1
  430. package/frontend/dist/js/workModels-MzU2Ab7l.js +0 -1
  431. package/frontend/dist/js/zh-BEGd9iBD.js +0 -2
  432. package/scripts/prepare-dsh-provider.mjs +0 -124
@@ -0,0 +1,42 @@
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
+ /** Engine selection stored alongside the model in Work records. */
18
+ export const WORK_STRANDS_MODEL_PREFIX = 'strands:';
19
+ /**
20
+ * Work records written before the Strands engine replaced the DeepSeek
21
+ * Harness used this prefix. They run on the Strands driver now, so stored
22
+ * tasks keep working without a data migration.
23
+ */
24
+ const LEGACY_ENGINE_MODEL_PREFIXES = ['dsh:'];
25
+ function enginePrefix(model) {
26
+ const selected = model.trim();
27
+ if (selected.startsWith(WORK_STRANDS_MODEL_PREFIX)) {
28
+ return WORK_STRANDS_MODEL_PREFIX;
29
+ }
30
+ return LEGACY_ENGINE_MODEL_PREFIXES.find(prefix => selected.startsWith(prefix));
31
+ }
32
+ /** Whether Work should use the Strands driver for this model selection. */
33
+ export function isWorkStrandsModel(model) {
34
+ return enginePrefix(model) !== undefined;
35
+ }
36
+ /** Recover the provider's exact model id without changing provider identity. */
37
+ export function workProviderModel(model) {
38
+ const selected = model.trim();
39
+ const prefix = enginePrefix(selected);
40
+ return prefix ? selected.slice(prefix.length).trim() : selected;
41
+ }
42
+ //# sourceMappingURL=work-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-model.js","sourceRoot":"","sources":["../../src/strands/work-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AAEpD;;;;GAIG;AACH,MAAM,4BAA4B,GAAG,CAAC,MAAM,CAAU,CAAC;AAEvD,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACnD,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,OAAO,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAChD,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC"}
@@ -1,10 +1,11 @@
1
+ import type { ThinkingPreference } from '../utils/thinkingOptions.js';
1
2
  export type WorkTaskStatus = 'idle' | 'preparing' | 'running' | 'completed' | 'needs_input' | 'failed' | 'cancelled';
2
3
  /** Statuses after which a task needs an explicit reopen before its preview or screen starts. */
3
4
  export declare const FINISHED_WORK_STATUSES: readonly WorkTaskStatus[];
4
5
  export declare const isFinishedWorkStatus: (status: WorkTaskStatus) => boolean;
5
6
  export type WorkRunStatus = 'queued' | 'preparing' | 'running' | 'completed' | 'needs_input' | 'failed' | 'cancelled';
6
7
  export type WorkPreviewStatus = 'stopped' | 'starting' | 'running' | 'failed';
7
- export type WorkProviderType = 'ollama' | 'plugin' | 'dsh';
8
+ export type WorkProviderType = 'ollama' | 'plugin';
8
9
  export interface WorkProviderSelection {
9
10
  providerType: WorkProviderType;
10
11
  providerId?: string;
@@ -39,6 +40,8 @@ export interface WorkRun {
39
40
  changedFiles?: string[];
40
41
  /** Short machine reason for the terminal transition. */
41
42
  exitState?: string;
43
+ /** Requested reasoning level; unset means the model's own default. */
44
+ think?: ThinkingPreference;
42
45
  createdAt: number;
43
46
  startedAt?: number;
44
47
  finishedAt?: number;
@@ -271,16 +274,9 @@ export interface WorkCapabilities {
271
274
  ollamaAvailable: boolean;
272
275
  pluginAvailable: boolean;
273
276
  runtimeImage: string;
274
- nativeDsh?: {
275
- status: 'disabled' | 'unavailable' | 'ready';
276
- models: Array<{
277
- model: string;
278
- providerType: 'dsh';
279
- providerId: string;
280
- key: string;
281
- label: string;
282
- remote: true;
283
- }>;
277
+ /** Whether this user may run Work tasks on the Strands agent engine. */
278
+ strands?: {
279
+ enabled: boolean;
284
280
  };
285
281
  reason?: string;
286
282
  limits: {
@@ -1 +1 @@
1
- {"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../src/types/work.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../src/types/work.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/types/work.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,gGAAgG;AAChG,MAAM,CAAC,MAAM,sBAAsB,GAA8B;IAC/D,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAsB,EAAW,EAAE,CACtE,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/types/work.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAaH,gGAAgG;AAChG,MAAM,CAAC,MAAM,sBAAsB,GAA8B;IAC/D,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAsB,EAAW,EAAE,CACtE,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { Plugin } from '../types/index.js';
2
+ /**
3
+ * Amazon Bedrock through its Mantle endpoint, which takes a Bedrock API key as
4
+ * a bearer token and lists every model the account can call from one
5
+ * `/v1/models` route. Chat is split across three routes on the same host:
6
+ * Claude only answers the Anthropic Messages API, and the remaining models
7
+ * answer Chat Completions on either `/v1` or `/openai/v1` with no field in the
8
+ * catalog saying which. Claude is routed by its ID; the other two are tried in
9
+ * order and the route that answers is remembered per model.
10
+ */
11
+ export declare const BEDROCK_PLUGIN_ID = "bedrock";
12
+ export declare const BEDROCK_DEFAULT_REGION = "us-east-1";
13
+ /** Commercial Regions that publish a bedrock-mantle endpoint. */
14
+ export declare const BEDROCK_MANTLE_REGIONS: readonly string[];
15
+ export type BedrockChatRoute = 'anthropic' | 'mantle' | 'openai';
16
+ export declare function isBedrockPlugin(plugin: Pick<Plugin, 'id'>): boolean;
17
+ export declare function isBedrockAnthropicModel(model: string): boolean;
18
+ /** The Claude model name without the Bedrock provider prefix. */
19
+ export declare function bedrockAnthropicModelName(model: string): string;
20
+ export declare function isBedrockMantleRegion(value: unknown): value is string;
21
+ /**
22
+ * Point a Mantle endpoint at the chosen Region. Only Mantle hosts are
23
+ * rewritten, and only to another listed Region, so the setting can never send
24
+ * the key anywhere except bedrock-mantle.<region>.api.aws.
25
+ */
26
+ export declare function applyBedrockRegion(endpoint: string, region: unknown): string;
27
+ export declare function bedrockChatRoute(endpoint: string, model: string): BedrockChatRoute;
28
+ export declare function bedrockRouteEndpoint(endpoint: string, route: BedrockChatRoute): string;
29
+ /** Test hook: forget every remembered route. */
30
+ export declare function resetBedrockRoutes(): void;
31
+ /** The URL a chat request for this model goes to. */
32
+ export declare function pluginChatEndpoint(plugin: Pick<Plugin, 'id'>, endpoint: string, model: string): string;
33
+ /** Which wire format a plugin speaks for a given model. */
34
+ export declare function pluginChatProtocol(plugin: Pick<Plugin, 'id'>, model: string): 'anthropic' | 'gemini' | 'openai';
35
+ export declare function isBedrockRouteMismatch(status: number, body: unknown): boolean;
36
+ /**
37
+ * Send a chat request, retrying once on the other Chat Completions route when
38
+ * Mantle says the model lives there. `send` is called with the final URL; for
39
+ * any other plugin it runs exactly once against `pluginChatEndpoint`.
40
+ */
41
+ export declare function sendPluginChat<T>(plugin: Pick<Plugin, 'id'>, endpoint: string, model: string, send: (url: string) => Promise<T>, mismatch: (result: T | undefined, error: unknown) => Promise<boolean>): Promise<T>;
42
+ /** `sendPluginChat` for fetch callers that read the Response themselves. */
43
+ export declare function fetchPluginChat(plugin: Pick<Plugin, 'id'>, endpoint: string, model: string, init: RequestInit, fetchImpl?: typeof fetch): Promise<Response>;
44
+ /** `sendPluginChat` for callers whose client throws on a non-2xx status. */
45
+ export declare function requestPluginChat<T>(plugin: Pick<Plugin, 'id'>, endpoint: string, model: string, send: (url: string) => Promise<T>): Promise<T>;
46
+ //# sourceMappingURL=bedrockMantle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrockMantle.d.ts","sourceRoot":"","sources":["../../src/utils/bedrockMantle.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;GAQG;AAEH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAkBnD,CAAC;AAOF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAcjE,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAEnE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,iEAAiE;AACjE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAErE;AAcD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAM5E;AAOD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,gBAAgB,CAQlB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,gBAAgB,GACtB,MAAM,CAIR;AAiBD,gDAAgD;AAChD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAGR;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1B,KAAK,EAAE,MAAM,GACZ,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAOnC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAI7E;AAMD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAwBZ;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,WAAW,EACjB,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAWnB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CAUZ"}
@@ -0,0 +1,206 @@
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
+ /**
18
+ * Amazon Bedrock through its Mantle endpoint, which takes a Bedrock API key as
19
+ * a bearer token and lists every model the account can call from one
20
+ * `/v1/models` route. Chat is split across three routes on the same host:
21
+ * Claude only answers the Anthropic Messages API, and the remaining models
22
+ * answer Chat Completions on either `/v1` or `/openai/v1` with no field in the
23
+ * catalog saying which. Claude is routed by its ID; the other two are tried in
24
+ * order and the route that answers is remembered per model.
25
+ */
26
+ export const BEDROCK_PLUGIN_ID = 'bedrock';
27
+ export const BEDROCK_DEFAULT_REGION = 'us-east-1';
28
+ /** Commercial Regions that publish a bedrock-mantle endpoint. */
29
+ export const BEDROCK_MANTLE_REGIONS = [
30
+ 'us-east-1',
31
+ 'us-east-2',
32
+ 'us-west-2',
33
+ 'sa-east-1',
34
+ 'eu-west-1',
35
+ 'eu-west-2',
36
+ 'eu-central-1',
37
+ 'eu-central-2',
38
+ 'eu-north-1',
39
+ 'eu-south-1',
40
+ 'ap-northeast-1',
41
+ 'ap-northeast-2',
42
+ 'ap-south-1',
43
+ 'ap-southeast-1',
44
+ 'ap-southeast-2',
45
+ 'ap-southeast-3',
46
+ 'ap-southeast-4',
47
+ ];
48
+ const MANTLE_HOST = /^bedrock-mantle\.([a-z0-9-]+)\.api\.aws$/;
49
+ const ANTHROPIC_MODEL = /^(?:[a-z]{2,6}\.)?anthropic\./;
50
+ const ROUTE_MISMATCH = /(?:isn't|is not|not) supported on this route/i;
51
+ const ROUTE_CACHE_LIMIT = 512;
52
+ const ROUTE_PATHS = {
53
+ anthropic: '/anthropic/v1/messages',
54
+ mantle: '/v1/chat/completions',
55
+ openai: '/openai/v1/chat/completions',
56
+ };
57
+ // Families Mantle serves only on /openai/v1, so the first call skips a 400.
58
+ const OPENAI_ROUTE_MODELS = [/^xai\./, /^google\.gemma-4/];
59
+ const learnedRoutes = new Map();
60
+ export function isBedrockPlugin(plugin) {
61
+ return plugin.id === BEDROCK_PLUGIN_ID;
62
+ }
63
+ export function isBedrockAnthropicModel(model) {
64
+ return ANTHROPIC_MODEL.test(model.trim().toLowerCase());
65
+ }
66
+ /** The Claude model name without the Bedrock provider prefix. */
67
+ export function bedrockAnthropicModelName(model) {
68
+ return model.trim().replace(ANTHROPIC_MODEL, '');
69
+ }
70
+ export function isBedrockMantleRegion(value) {
71
+ return typeof value === 'string' && BEDROCK_MANTLE_REGIONS.includes(value);
72
+ }
73
+ function mantleOrigin(endpoint) {
74
+ try {
75
+ const url = new URL(endpoint);
76
+ if (url.protocol !== 'https:' || !MANTLE_HOST.test(url.hostname)) {
77
+ return undefined;
78
+ }
79
+ return url;
80
+ }
81
+ catch {
82
+ return undefined;
83
+ }
84
+ }
85
+ /**
86
+ * Point a Mantle endpoint at the chosen Region. Only Mantle hosts are
87
+ * rewritten, and only to another listed Region, so the setting can never send
88
+ * the key anywhere except bedrock-mantle.<region>.api.aws.
89
+ */
90
+ export function applyBedrockRegion(endpoint, region) {
91
+ if (!isBedrockMantleRegion(region))
92
+ return endpoint;
93
+ const url = mantleOrigin(endpoint);
94
+ if (!url)
95
+ return endpoint;
96
+ url.hostname = `bedrock-mantle.${region}.api.aws`;
97
+ return url.toString();
98
+ }
99
+ function routeKey(endpoint, model) {
100
+ const url = mantleOrigin(endpoint);
101
+ return url ? `${url.host}\n${model.trim()}` : undefined;
102
+ }
103
+ export function bedrockChatRoute(endpoint, model) {
104
+ if (isBedrockAnthropicModel(model))
105
+ return 'anthropic';
106
+ const key = routeKey(endpoint, model);
107
+ const learned = key ? learnedRoutes.get(key) : undefined;
108
+ if (learned)
109
+ return learned;
110
+ return OPENAI_ROUTE_MODELS.some(pattern => pattern.test(model.trim()))
111
+ ? 'openai'
112
+ : 'mantle';
113
+ }
114
+ export function bedrockRouteEndpoint(endpoint, route) {
115
+ const url = mantleOrigin(endpoint);
116
+ if (!url)
117
+ return endpoint;
118
+ return `${url.origin}${ROUTE_PATHS[route]}`;
119
+ }
120
+ function rememberRoute(endpoint, model, route) {
121
+ const key = routeKey(endpoint, model);
122
+ if (!key)
123
+ return;
124
+ learnedRoutes.delete(key);
125
+ learnedRoutes.set(key, route);
126
+ if (learnedRoutes.size > ROUTE_CACHE_LIMIT) {
127
+ const oldest = learnedRoutes.keys().next().value;
128
+ if (oldest !== undefined)
129
+ learnedRoutes.delete(oldest);
130
+ }
131
+ }
132
+ /** Test hook: forget every remembered route. */
133
+ export function resetBedrockRoutes() {
134
+ learnedRoutes.clear();
135
+ }
136
+ /** The URL a chat request for this model goes to. */
137
+ export function pluginChatEndpoint(plugin, endpoint, model) {
138
+ if (!isBedrockPlugin(plugin))
139
+ return endpoint;
140
+ return bedrockRouteEndpoint(endpoint, bedrockChatRoute(endpoint, model));
141
+ }
142
+ /** Which wire format a plugin speaks for a given model. */
143
+ export function pluginChatProtocol(plugin, model) {
144
+ if (plugin.id === 'anthropic')
145
+ return 'anthropic';
146
+ if (plugin.id === 'gemini')
147
+ return 'gemini';
148
+ if (isBedrockPlugin(plugin) && isBedrockAnthropicModel(model)) {
149
+ return 'anthropic';
150
+ }
151
+ return 'openai';
152
+ }
153
+ export function isBedrockRouteMismatch(status, body) {
154
+ if (status !== 400)
155
+ return false;
156
+ const text = typeof body === 'string' ? body : JSON.stringify(body ?? '');
157
+ return ROUTE_MISMATCH.test(text);
158
+ }
159
+ function alternateRoute(route) {
160
+ return route === 'mantle' ? 'openai' : 'mantle';
161
+ }
162
+ /**
163
+ * Send a chat request, retrying once on the other Chat Completions route when
164
+ * Mantle says the model lives there. `send` is called with the final URL; for
165
+ * any other plugin it runs exactly once against `pluginChatEndpoint`.
166
+ */
167
+ export async function sendPluginChat(plugin, endpoint, model, send, mismatch) {
168
+ const route = isBedrockPlugin(plugin)
169
+ ? bedrockChatRoute(endpoint, model)
170
+ : undefined;
171
+ if (!route || route === 'anthropic' || !mantleOrigin(endpoint)) {
172
+ return send(pluginChatEndpoint(plugin, endpoint, model));
173
+ }
174
+ let result;
175
+ let failure;
176
+ try {
177
+ result = await send(bedrockRouteEndpoint(endpoint, route));
178
+ }
179
+ catch (error) {
180
+ failure = error;
181
+ }
182
+ if (!(await mismatch(result, failure))) {
183
+ if (failure !== undefined)
184
+ throw failure;
185
+ return result;
186
+ }
187
+ const next = alternateRoute(route);
188
+ const retried = await send(bedrockRouteEndpoint(endpoint, next));
189
+ rememberRoute(endpoint, model, next);
190
+ return retried;
191
+ }
192
+ /** `sendPluginChat` for fetch callers that read the Response themselves. */
193
+ export function fetchPluginChat(plugin, endpoint, model, init, fetchImpl = fetch) {
194
+ return sendPluginChat(plugin, endpoint, model, url => fetchImpl(url, init), async (response) => response !== undefined &&
195
+ response.status === 400 &&
196
+ isBedrockRouteMismatch(400, await response.clone().text()));
197
+ }
198
+ /** `sendPluginChat` for callers whose client throws on a non-2xx status. */
199
+ export function requestPluginChat(plugin, endpoint, model, send) {
200
+ return sendPluginChat(plugin, endpoint, model, send, async (_, error) => {
201
+ const response = error?.response;
202
+ return (typeof response?.status === 'number' &&
203
+ isBedrockRouteMismatch(response.status, response.data));
204
+ });
205
+ }
206
+ //# sourceMappingURL=bedrockMantle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrockMantle.js","sourceRoot":"","sources":["../../src/utils/bedrockMantle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface CorsOriginPolicyOptions {
2
+ allowedOrigins: readonly string[];
3
+ allowNetworkOrigins: boolean;
4
+ }
5
+ /**
6
+ * Build the application's CORS policy without importing its stateful server.
7
+ * Origin headers are serialized origins, not arbitrary URLs or origin lists.
8
+ */
9
+ export declare function createCorsOriginPolicy({ allowedOrigins, allowNetworkOrigins, }: CorsOriginPolicyOptions): (origin: unknown) => boolean;
10
+ //# sourceMappingURL=corsOriginPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corsOriginPolicy.d.ts","sourceRoot":"","sources":["../../src/utils/corsOriginPolicy.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAgBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,cAAc,EACd,mBAAmB,GACpB,EAAE,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAgCxD"}
@@ -0,0 +1,70 @@
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 { isIPv4 } from 'node:net';
18
+ /** Match the existing Docker/development network policy against literal hosts. */
19
+ function isNetworkHostname(hostname) {
20
+ if (hostname === 'localhost')
21
+ return true;
22
+ if (!isIPv4(hostname))
23
+ return false;
24
+ const [first, second] = hostname.split('.').map(Number);
25
+ return (first === 127 ||
26
+ first === 10 ||
27
+ (first === 172 && second >= 16 && second <= 31) ||
28
+ (first === 192 && second === 168) ||
29
+ (first === 100 && second >= 64 && second <= 127));
30
+ }
31
+ /**
32
+ * Build the application's CORS policy without importing its stateful server.
33
+ * Origin headers are serialized origins, not arbitrary URLs or origin lists.
34
+ */
35
+ export function createCorsOriginPolicy({ allowedOrigins, allowNetworkOrigins, }) {
36
+ const configured = new Set(allowedOrigins);
37
+ return (origin) => {
38
+ // Native clients may omit Origin; an empty or malformed header is different.
39
+ if (origin === undefined)
40
+ return true;
41
+ if (typeof origin !== 'string')
42
+ return false;
43
+ // Opaque origins remain an explicit operator choice, never a LAN exception.
44
+ if (origin === 'null')
45
+ return configured.has('*') || configured.has(origin);
46
+ let parsed;
47
+ try {
48
+ parsed = new URL(origin);
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ // Node treats extension schemes as opaque; their explicitly configured
54
+ // browser origins still have a scheme and authority. They never gain the
55
+ // automatic HTTP(S) network exception below.
56
+ const serializedOrigin = parsed.origin === 'null'
57
+ ? `${parsed.protocol}//${parsed.host}`
58
+ : parsed.origin;
59
+ // Reject credentials, paths, query/fragment components, multiple origins,
60
+ // and alternate IP spellings instead of normalizing them into trusted hosts.
61
+ if (!parsed.host || serializedOrigin !== origin)
62
+ return false;
63
+ if (configured.has('*') || configured.has(origin))
64
+ return true;
65
+ return (allowNetworkOrigins &&
66
+ (parsed.protocol === 'http:' || parsed.protocol === 'https:') &&
67
+ isNetworkHostname(parsed.hostname));
68
+ };
69
+ }
70
+ //# sourceMappingURL=corsOriginPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corsOriginPolicy.js","sourceRoot":"","sources":["../../src/utils/corsOriginPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOlC,kFAAkF;AAClF,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,CACL,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,EAAE;QACZ,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;QAC/C,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;QACjC,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,GAAG,CAAC,CACjD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,EACrC,cAAc,EACd,mBAAmB,GACK;IACxB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAe,EAAW,EAAE;QAClC,6EAA6E;QAC7E,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC7C,4EAA4E;QAC5E,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE5E,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,uEAAuE;QACvE,yEAAyE;QACzE,6CAA6C;QAC7C,MAAM,gBAAgB,GACpB,MAAM,CAAC,MAAM,KAAK,MAAM;YACtB,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;YACtC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACpB,0EAA0E;QAC1E,6EAA6E;QAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,gBAAgB,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/D,OAAO,CACL,mBAAmB;YACnB,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;YAC7D,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CACnC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -54,6 +54,42 @@ export declare function toOpenAICompatibleMessages(messages: ChatMessage[], opti
54
54
  tool_calls?: ChatMessage['tool_calls'];
55
55
  tool_call_id?: string;
56
56
  }>;
57
+ /**
58
+ * Anthropic prices thinking in tokens and takes it as its own block. The
59
+ * budget has to fit inside max_tokens with room left for the answer; an
60
+ * explicit user ceiling shrinks the budget rather than being raised, and the
61
+ * model's own documented ceiling bounds them both. Adaptive models take no
62
+ * budget, so max_tokens is left to the user or a roomy default. Chat and Work
63
+ * both build Anthropic requests from this, so the two cannot drift.
64
+ */
65
+ export declare function resolveAnthropicThinking(model: string, think: unknown, requestedMaxTokens: number | undefined,
66
+ /** Ceiling for a non-adaptive request that asked for no budget. */
67
+ defaultMaxTokens?: number): {
68
+ maxTokens: number;
69
+ /** Set when a manual budget went out; sampling parameters must then stay off. */
70
+ budgetTokens?: number;
71
+ fields: Record<string, unknown>;
72
+ };
73
+ /**
74
+ * Gemini takes a thinking budget inside the generation config. Only an
75
+ * enabled setting is sent: a zero budget is rejected by the models that
76
+ * always reason, so switching thinking off is left to the model. Thinking
77
+ * tokens count against maxOutputTokens, so the ceiling has to hold the budget
78
+ * plus the answer or the reply arrives empty at MAX_TOKENS.
79
+ */
80
+ export declare function resolveGeminiThinking(think: unknown, requestedMaxTokens: number | undefined): {
81
+ maxOutputTokens: number;
82
+ thinkingConfig?: Record<string, unknown>;
83
+ };
84
+ /**
85
+ * Reasoning fields for OpenAI-compatible Chat Completions. OpenAI and the
86
+ * providers that copy its shape name the levels instead of budgeting tokens.
87
+ * Nothing is sent unless thinking was asked for: the field is unknown to
88
+ * models that do not reason. DeepSeek documents low, high and max only; its
89
+ * middle is the provider default, so a plain "thinking on" preference sends
90
+ * no effort at all, and it toggles thinking with its own object.
91
+ */
92
+ export declare function openAICompatibleReasoningFields(plugin: Pick<Plugin, 'id'>, think: unknown): Record<string, unknown>;
57
93
  export declare function buildPluginChatPayload(plugin: Plugin, model: string, messages: ChatMessage[], options?: GenerationOptions, pluginVars?: PluginVariables, streamOverride?: boolean, apiMode?: PluginApiMode, providerStateScope?: string): PluginChatPayloadResult;
58
94
  export declare function convertAnthropicResponse(anthropicResponse: Record<string, unknown>, model: string): PluginResponse;
59
95
  export declare function convertGeminiResponse(geminiResponse: Record<string, unknown>, model: string): PluginResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"pluginChatAdapter.d.ts","sourceRoot":"","sources":["../../src/utils/pluginChatAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginChatAdapter.d.ts","sourceRoot":"","sources":["../../src/utils/pluginChatAdapter.ts"],"names":[],"mappings":"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"}