libre-webui 0.36.0 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +59 -0
  2. package/backend/dist/cordis/contracts.d.ts +270 -0
  3. package/backend/dist/cordis/contracts.d.ts.map +1 -0
  4. package/backend/dist/cordis/contracts.js +32 -0
  5. package/backend/dist/cordis/contracts.js.map +1 -0
  6. package/backend/dist/cordis/dsh/chat-model.d.ts +16 -0
  7. package/backend/dist/cordis/dsh/chat-model.d.ts.map +1 -0
  8. package/backend/dist/cordis/dsh/chat-model.js +104 -0
  9. package/backend/dist/cordis/dsh/chat-model.js.map +1 -0
  10. package/backend/dist/cordis/dsh/engine-plugin.d.ts +186 -0
  11. package/backend/dist/cordis/dsh/engine-plugin.d.ts.map +1 -0
  12. package/backend/dist/cordis/dsh/engine-plugin.js +1116 -0
  13. package/backend/dist/cordis/dsh/engine-plugin.js.map +1 -0
  14. package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts +175 -0
  15. package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts.map +1 -0
  16. package/backend/dist/cordis/dsh/librewebui-llm-adapter.js +480 -0
  17. package/backend/dist/cordis/dsh/librewebui-llm-adapter.js.map +1 -0
  18. package/backend/dist/cordis/dsh/model-identity.d.ts +12 -0
  19. package/backend/dist/cordis/dsh/model-identity.d.ts.map +1 -0
  20. package/backend/dist/cordis/dsh/model-identity.js +87 -0
  21. package/backend/dist/cordis/dsh/model-identity.js.map +1 -0
  22. package/backend/dist/cordis/dsh/native-provider-client.d.ts +44 -0
  23. package/backend/dist/cordis/dsh/native-provider-client.d.ts.map +1 -0
  24. package/backend/dist/cordis/dsh/native-provider-client.js +524 -0
  25. package/backend/dist/cordis/dsh/native-provider-client.js.map +1 -0
  26. package/backend/dist/cordis/dsh/native-provider-plugin.d.ts +11 -0
  27. package/backend/dist/cordis/dsh/native-provider-plugin.d.ts.map +1 -0
  28. package/backend/dist/cordis/dsh/native-provider-plugin.js +416 -0
  29. package/backend/dist/cordis/dsh/native-provider-plugin.js.map +1 -0
  30. package/backend/dist/cordis/dsh/native-provider-protocol.d.ts +37 -0
  31. package/backend/dist/cordis/dsh/native-provider-protocol.d.ts.map +1 -0
  32. package/backend/dist/cordis/dsh/native-provider-protocol.js +325 -0
  33. package/backend/dist/cordis/dsh/native-provider-protocol.js.map +1 -0
  34. package/backend/dist/cordis/dsh/provider-handler.d.ts +36 -0
  35. package/backend/dist/cordis/dsh/provider-handler.d.ts.map +1 -0
  36. package/backend/dist/cordis/dsh/provider-handler.js +582 -0
  37. package/backend/dist/cordis/dsh/provider-handler.js.map +1 -0
  38. package/backend/dist/cordis/dsh/session-files.d.ts +9 -0
  39. package/backend/dist/cordis/dsh/session-files.d.ts.map +1 -0
  40. package/backend/dist/cordis/dsh/session-files.js +60 -0
  41. package/backend/dist/cordis/dsh/session-files.js.map +1 -0
  42. package/backend/dist/cordis/dsh/session-settings.d.ts +15 -0
  43. package/backend/dist/cordis/dsh/session-settings.d.ts.map +1 -0
  44. package/backend/dist/cordis/dsh/session-settings.js +51 -0
  45. package/backend/dist/cordis/dsh/session-settings.js.map +1 -0
  46. package/backend/dist/cordis/dsh/work-driver.d.ts +12 -0
  47. package/backend/dist/cordis/dsh/work-driver.d.ts.map +1 -0
  48. package/backend/dist/cordis/dsh/work-driver.js +402 -0
  49. package/backend/dist/cordis/dsh/work-driver.js.map +1 -0
  50. package/backend/dist/cordis/dsh/workspace-policy.d.ts +10 -0
  51. package/backend/dist/cordis/dsh/workspace-policy.d.ts.map +1 -0
  52. package/backend/dist/cordis/dsh/workspace-policy.js +44 -0
  53. package/backend/dist/cordis/dsh/workspace-policy.js.map +1 -0
  54. package/backend/dist/cordis/host/composition.d.ts +73 -0
  55. package/backend/dist/cordis/host/composition.d.ts.map +1 -0
  56. package/backend/dist/cordis/host/composition.js +205 -0
  57. package/backend/dist/cordis/host/composition.js.map +1 -0
  58. package/backend/dist/cordis/host/config.d.ts +159 -0
  59. package/backend/dist/cordis/host/config.d.ts.map +1 -0
  60. package/backend/dist/cordis/host/config.js +184 -0
  61. package/backend/dist/cordis/host/config.js.map +1 -0
  62. package/backend/dist/cordis/host/host.d.ts +74 -0
  63. package/backend/dist/cordis/host/host.d.ts.map +1 -0
  64. package/backend/dist/cordis/host/host.js +420 -0
  65. package/backend/dist/cordis/host/host.js.map +1 -0
  66. package/backend/dist/cordis/host/loader-entry.d.ts +41 -0
  67. package/backend/dist/cordis/host/loader-entry.d.ts.map +1 -0
  68. package/backend/dist/cordis/host/loader-entry.js +52 -0
  69. package/backend/dist/cordis/host/loader-entry.js.map +1 -0
  70. package/backend/dist/cordis/host/model.d.ts +45 -0
  71. package/backend/dist/cordis/host/model.d.ts.map +1 -0
  72. package/backend/dist/cordis/host/model.js +54 -0
  73. package/backend/dist/cordis/host/model.js.map +1 -0
  74. package/backend/dist/cordis/host/privacy.d.ts +8 -0
  75. package/backend/dist/cordis/host/privacy.d.ts.map +1 -0
  76. package/backend/dist/cordis/host/privacy.js +73 -0
  77. package/backend/dist/cordis/host/privacy.js.map +1 -0
  78. package/backend/dist/cordis/index.d.ts +14 -0
  79. package/backend/dist/cordis/index.d.ts.map +1 -0
  80. package/backend/dist/cordis/index.js +30 -0
  81. package/backend/dist/cordis/index.js.map +1 -0
  82. package/backend/dist/cordis/runtime.d.ts +97 -0
  83. package/backend/dist/cordis/runtime.d.ts.map +1 -0
  84. package/backend/dist/cordis/runtime.js +231 -0
  85. package/backend/dist/cordis/runtime.js.map +1 -0
  86. package/backend/dist/cordis/work-model.d.ts +7 -0
  87. package/backend/dist/cordis/work-model.d.ts.map +1 -0
  88. package/backend/dist/cordis/work-model.js +30 -0
  89. package/backend/dist/cordis/work-model.js.map +1 -0
  90. package/backend/dist/db.js +1 -1
  91. package/backend/dist/index.d.ts.map +1 -1
  92. package/backend/dist/index.js +9 -0
  93. package/backend/dist/index.js.map +1 -1
  94. package/backend/dist/main.js +12 -0
  95. package/backend/dist/main.js.map +1 -1
  96. package/backend/dist/persistence/extensionTypes.d.ts +2 -0
  97. package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
  98. package/backend/dist/persistence/extensionTypes.js.map +1 -1
  99. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
  100. package/backend/dist/persistence/postgresExtensionRepositories.js +38 -0
  101. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
  102. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  103. package/backend/dist/persistence/postgresResourceRepositories.js +6 -1
  104. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  105. package/backend/dist/persistence/resourceTypes.d.ts +3 -1
  106. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  107. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  108. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  109. package/backend/dist/persistence/sqliteExtensionRepositories.js +40 -0
  110. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  111. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  112. package/backend/dist/persistence/sqliteResourceRepositories.js +7 -1
  113. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  114. package/backend/dist/routes/agentCli.d.ts.map +1 -1
  115. package/backend/dist/routes/agentCli.js +34 -2
  116. package/backend/dist/routes/agentCli.js.map +1 -1
  117. package/backend/dist/routes/chat.d.ts.map +1 -1
  118. package/backend/dist/routes/chat.js +9 -1
  119. package/backend/dist/routes/chat.js.map +1 -1
  120. package/backend/dist/routes/cordis.d.ts +3 -0
  121. package/backend/dist/routes/cordis.d.ts.map +1 -0
  122. package/backend/dist/routes/cordis.js +440 -0
  123. package/backend/dist/routes/cordis.js.map +1 -0
  124. package/backend/dist/routes/libreClaw.js +1 -1
  125. package/backend/dist/routes/libreClaw.js.map +1 -1
  126. package/backend/dist/routes/work.d.ts.map +1 -1
  127. package/backend/dist/routes/work.js +23 -8
  128. package/backend/dist/routes/work.js.map +1 -1
  129. package/backend/dist/services/agentAccessService.d.ts +4 -0
  130. package/backend/dist/services/agentAccessService.d.ts.map +1 -1
  131. package/backend/dist/services/agentAccessService.js +48 -16
  132. package/backend/dist/services/agentAccessService.js.map +1 -1
  133. package/backend/dist/services/agentCliService.d.ts +42 -1
  134. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  135. package/backend/dist/services/agentCliService.js +206 -7
  136. package/backend/dist/services/agentCliService.js.map +1 -1
  137. package/backend/dist/services/agentCliUsage.d.ts +22 -0
  138. package/backend/dist/services/agentCliUsage.d.ts.map +1 -0
  139. package/backend/dist/services/agentCliUsage.js +192 -0
  140. package/backend/dist/services/agentCliUsage.js.map +1 -0
  141. package/backend/dist/services/authService.d.ts +3 -0
  142. package/backend/dist/services/authService.d.ts.map +1 -1
  143. package/backend/dist/services/authService.js +4 -1
  144. package/backend/dist/services/authService.js.map +1 -1
  145. package/backend/dist/services/chatGenerationService.d.ts +7 -0
  146. package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
  147. package/backend/dist/services/chatGenerationService.js +32 -1
  148. package/backend/dist/services/chatGenerationService.js.map +1 -1
  149. package/backend/dist/services/cordisAccessService.d.ts +56 -0
  150. package/backend/dist/services/cordisAccessService.d.ts.map +1 -0
  151. package/backend/dist/services/cordisAccessService.js +98 -0
  152. package/backend/dist/services/cordisAccessService.js.map +1 -0
  153. package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
  154. package/backend/dist/services/durableChatGenerationService.js +9 -1
  155. package/backend/dist/services/durableChatGenerationService.js.map +1 -1
  156. package/backend/dist/services/emailService.d.ts.map +1 -1
  157. package/backend/dist/services/emailService.js +8 -1
  158. package/backend/dist/services/emailService.js.map +1 -1
  159. package/backend/dist/services/pluginService.d.ts.map +1 -1
  160. package/backend/dist/services/pluginService.js +7 -26
  161. package/backend/dist/services/pluginService.js.map +1 -1
  162. package/backend/dist/services/pluginUsageService.d.ts +52 -0
  163. package/backend/dist/services/pluginUsageService.d.ts.map +1 -1
  164. package/backend/dist/services/pluginUsageService.js +89 -1
  165. package/backend/dist/services/pluginUsageService.js.map +1 -1
  166. package/backend/dist/services/systemSettingsService.d.ts +1 -1
  167. package/backend/dist/services/systemSettingsService.d.ts.map +1 -1
  168. package/backend/dist/services/systemSettingsService.js +1 -1
  169. package/backend/dist/services/systemSettingsService.js.map +1 -1
  170. package/backend/dist/services/thinkingSummaryService.d.ts +3 -0
  171. package/backend/dist/services/thinkingSummaryService.d.ts.map +1 -1
  172. package/backend/dist/services/thinkingSummaryService.js +56 -17
  173. package/backend/dist/services/thinkingSummaryService.js.map +1 -1
  174. package/backend/dist/services/titleGenerationService.d.ts +22 -2
  175. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  176. package/backend/dist/services/titleGenerationService.js +63 -8
  177. package/backend/dist/services/titleGenerationService.js.map +1 -1
  178. package/backend/dist/services/workAgentService.d.ts +1 -1
  179. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  180. package/backend/dist/services/workAgentService.js +76 -12
  181. package/backend/dist/services/workAgentService.js.map +1 -1
  182. package/backend/dist/services/workModelProviderService.d.ts +5 -0
  183. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  184. package/backend/dist/services/workModelProviderService.js +52 -3
  185. package/backend/dist/services/workModelProviderService.js.map +1 -1
  186. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  187. package/backend/dist/services/workRuntimeService.js +4 -1
  188. package/backend/dist/services/workRuntimeService.js.map +1 -1
  189. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  190. package/backend/dist/services/workTaskService.js +6 -6
  191. package/backend/dist/services/workTaskService.js.map +1 -1
  192. package/backend/dist/types/work.d.ts +12 -1
  193. package/backend/dist/types/work.d.ts.map +1 -1
  194. package/backend/dist/utils/pluginStreamAdapter.d.ts.map +1 -1
  195. package/backend/dist/utils/pluginStreamAdapter.js +18 -4
  196. package/backend/dist/utils/pluginStreamAdapter.js.map +1 -1
  197. package/backend/dist/utils/pluginStreaming.d.ts +6 -0
  198. package/backend/dist/utils/pluginStreaming.d.ts.map +1 -1
  199. package/backend/dist/utils/pluginStreaming.js +10 -0
  200. package/backend/dist/utils/pluginStreaming.js.map +1 -1
  201. package/backend/dist/utils/smtpClient.d.ts +5 -1
  202. package/backend/dist/utils/smtpClient.d.ts.map +1 -1
  203. package/backend/dist/utils/smtpClient.js +29 -3
  204. package/backend/dist/utils/smtpClient.js.map +1 -1
  205. package/backend/dist/websocketServer.d.ts.map +1 -1
  206. package/backend/dist/websocketServer.js +4 -0
  207. package/backend/dist/websocketServer.js.map +1 -1
  208. package/backend/package.json +37 -2
  209. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  210. package/frontend/dist/artifact-runtime/framer-motion.js +3 -3
  211. package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
  212. package/frontend/dist/artifact-runtime/react.js +5 -5
  213. package/frontend/dist/artifact-runtime/recharts.js +45 -45
  214. package/frontend/dist/assets/index-BrDSO609.js +20 -0
  215. package/frontend/dist/assets/index-C8_AByBq.css +1 -0
  216. package/frontend/dist/index.html +33 -31
  217. package/frontend/dist/js/{ArtifactContainer-B8tyPtWd.js → ArtifactContainer-B1-GVzVf.js} +1 -1
  218. package/frontend/dist/js/{ArtifactDemoPage-BwRfWoSK.js → ArtifactDemoPage-goftRHdk.js} +1 -1
  219. package/frontend/dist/js/{ArtifactSandboxFrame-Ctcwt_l2.js → ArtifactSandboxFrame-_8RA8_JV.js} +1 -1
  220. package/frontend/dist/js/ArtifactSlideOutPanel-DlkOZI5N.js +1 -0
  221. package/frontend/dist/js/{AutomationModal-mTYs9LrJ.js → AutomationModal-BaaxZF1M.js} +1 -1
  222. package/frontend/dist/js/AutomationsPage-DY2x7zVm.js +1 -0
  223. package/frontend/dist/js/{AvatarUpload-wWUAi3e2.js → AvatarUpload-CH_n1Ef0.js} +1 -1
  224. package/frontend/dist/js/{Button-ZQ6BePid.js → Button-CGMYia4g.js} +1 -1
  225. package/frontend/dist/js/{CalendarPage-Ch4racU2.js → CalendarPage-DLo5nm3Q.js} +1 -1
  226. package/frontend/dist/js/ChannelsPage-DnQI7mzq.js +1 -0
  227. package/frontend/dist/js/ChatPage-BaDkJnEC.js +14 -0
  228. package/frontend/dist/js/ConnectModels-B4dGb5yc.js +1 -0
  229. package/frontend/dist/js/CordisPage-CPiYn2Bx.js +1 -0
  230. package/frontend/dist/js/{EvaluationsPage-DHPnNBkW.js → EvaluationsPage-DpdGpd7x.js} +2 -2
  231. package/frontend/dist/js/{FirstTimeSetup-CoF83yY8.js → FirstTimeSetup-By8OE1JS.js} +1 -1
  232. package/frontend/dist/js/GalleryPage-ByZyIhZQ.js +1 -0
  233. package/frontend/dist/js/HomePage-Btc-Mvin.js +1 -0
  234. package/frontend/dist/js/{LanguageSwitcher-CogfczNm.js → LanguageSwitcher-B3CxRW6J.js} +1 -1
  235. package/frontend/dist/js/LibreClawPage-3Sonm1gu.js +1 -0
  236. package/frontend/dist/js/{Logo-C9fsEUaY.js → Logo-HZvdAk2c.js} +1 -1
  237. package/frontend/dist/js/{LogoMark-Cvu5CQOW.js → LogoMark-GJnfMXsk.js} +1 -1
  238. package/frontend/dist/js/{ModelManagerModals-Bc2Woor7.js → ModelManagerModals-Bk6OQzJI.js} +1 -1
  239. package/frontend/dist/js/NotesPage-lFhfjMqJ.js +3 -0
  240. package/frontend/dist/js/{OptimizedSyntaxHighlighter-aKWyHj_c.js → OptimizedSyntaxHighlighter-CzzV6ONG.js} +1 -1
  241. package/frontend/dist/js/OptimizedSyntaxHighlighter-ajqwyBQm.js +1 -0
  242. package/frontend/dist/js/{PasswordStrengthMeter-BJr4eBbo.js → PasswordStrengthMeter-DasfJa4P.js} +1 -1
  243. package/frontend/dist/js/{PersonasPage-ff5opf9B.js → PersonasPage-nOThOpXp.js} +2 -2
  244. package/frontend/dist/js/PluginUsagePage-BRbHeRf7.js +1 -0
  245. package/frontend/dist/js/{RichMessageContent-BNNylVAb.js → RichMessageContent-BZ7KKJKK.js} +2 -2
  246. package/frontend/dist/js/RichMessageContent-oyydJjgc.js +1 -0
  247. package/frontend/dist/js/SettingsModal-VpsAx2Ns.js +19 -0
  248. package/frontend/dist/js/{SettingsToggle-CKLHOUt-.js → SettingsToggle-oxvw7ulA.js} +1 -1
  249. package/frontend/dist/js/{ShareDialog-DykD70uB.js → ShareDialog-CnxPGPb_.js} +1 -1
  250. package/frontend/dist/js/SystemPage-D2ikvhDp.js +1 -0
  251. package/frontend/dist/js/{TurnstileWidget-BO2ceTt8.js → TurnstileWidget-CVepEMEQ.js} +1 -1
  252. package/frontend/dist/js/{UserManagementPage-Ch-PvYQ9.js → UserManagementPage-2yHv89ZA.js} +1 -1
  253. package/frontend/dist/js/UserManagementPanel-vxpiyiTZ.js +1 -0
  254. package/frontend/dist/js/{WhatsNewModal-Bu4H4MEb.js → WhatsNewModal-DAAFzY0d.js} +1 -1
  255. package/frontend/dist/js/WorkPage-BYpYD9mr.js +8 -0
  256. package/frontend/dist/js/api-C0ligMmL.js +1 -0
  257. package/frontend/dist/js/api-CVUaOaq4.js +14 -0
  258. package/frontend/dist/js/{appNavigation-CVsQuDI1.js → appNavigation-CqtrZ9bm.js} +1 -1
  259. package/frontend/dist/js/{appStore-Din-tTD9.js → appStore-Biw63DtJ.js} +2 -2
  260. package/frontend/dist/js/appVersion-D78eXAb-.js +1 -0
  261. package/frontend/dist/js/ar-Cq-DrSYL.js +2 -0
  262. package/frontend/dist/js/authStore-2DsDTcIu.js +1 -0
  263. package/frontend/dist/js/{authStore-Cm8P6rYs.js → authStore-C5qKrmn4.js} +3 -3
  264. package/frontend/dist/js/bn-BqxLh-KL.js +2 -0
  265. package/frontend/dist/js/chatStore-DQhEqb9F.js +3 -0
  266. package/frontend/dist/js/client-gf5bjBrn.js +2 -0
  267. package/frontend/dist/js/composerStyles-C83jssgZ.js +1 -0
  268. package/frontend/dist/js/{config-DHea4b8N.js → config-CNvgxwAm.js} +1 -1
  269. package/frontend/dist/js/cordisApi-BYjA4EOQ.js +2 -0
  270. package/frontend/dist/js/cs-D2DDNZf-.js +2 -0
  271. package/frontend/dist/js/da-BciY-TSG.js +2 -0
  272. package/frontend/dist/js/de-DjU_eXQ-.js +2 -0
  273. package/frontend/dist/js/es-ChIEs80I.js +2 -0
  274. package/frontend/dist/js/{estree-DCT3Jm65.js → estree-DGmLqopC.js} +17 -17
  275. package/frontend/dist/js/evaluationsApi-Bg12ekHo.js +1 -0
  276. package/frontend/dist/js/fr-Bi8BGRW4.js +2 -0
  277. package/frontend/dist/js/hi-BMsCnWg7.js +2 -0
  278. package/frontend/dist/js/{html-CBXMuS97.js → html-BryNQ_yx.js} +6 -6
  279. package/frontend/dist/js/id-CpcN1vhk.js +2 -0
  280. package/frontend/dist/js/is-DkUy2cmP.js +2 -0
  281. package/frontend/dist/js/it-BglK9DRZ.js +2 -0
  282. package/frontend/dist/js/ja-IrprzwLJ.js +2 -0
  283. package/frontend/dist/js/ko--wwEsMPi.js +2 -0
  284. package/frontend/dist/js/{markdown-Bo71X2X2.js → markdown-CZ1tYEW8.js} +17 -17
  285. package/frontend/dist/js/{markdown-core-BFkBYv2v.js → markdown-core-KjS96SYW.js} +1 -1
  286. package/frontend/dist/js/{markdown-html-CwjnwJbl.js → markdown-html-DQEwrWcf.js} +1 -1
  287. package/frontend/dist/js/{markdown-math-CJvHdD1l.js → markdown-math-CKi32S5d.js} +1 -1
  288. package/frontend/dist/js/{markdownHtml-egpK3_YY.js → markdownHtml-lrXhxBhK.js} +1 -1
  289. package/frontend/dist/js/markdownMath-B0BpyFBS.js +1 -0
  290. package/frontend/dist/js/{messageCodeStyles-euWoxwoo.js → messageCodeStyles-DJZ4QMVq.js} +2 -2
  291. package/frontend/dist/js/ms-BWj59y7-.js +2 -0
  292. package/frontend/dist/js/nl-D-QndW_A.js +2 -0
  293. package/frontend/dist/js/pl-Dw7d7iDV.js +2 -0
  294. package/frontend/dist/js/pt-BI53uHJw.js +2 -0
  295. package/frontend/dist/js/react-vendor-wiHys0m2.js +9 -0
  296. package/frontend/dist/js/router-vendor-HZm4FR0A.js +1 -0
  297. package/frontend/dist/js/ru-JKyTgPg9.js +2 -0
  298. package/frontend/dist/js/{standalone-6z5x8CWe.js → standalone-DbyFjvTU.js} +1 -1
  299. package/frontend/dist/js/sv-BIkBLPSQ.js +2 -0
  300. package/frontend/dist/js/{syntax-highlight-7t8DGG2n.js → syntax-highlight-DNc3FFCa.js} +1 -1
  301. package/frontend/dist/js/{teamEventStream-DGgjrVqw.js → teamEventStream-PXiwR5Kr.js} +1 -1
  302. package/frontend/dist/js/th-CZ_LcCU0.js +2 -0
  303. package/frontend/dist/js/tr-B265byx1.js +2 -0
  304. package/frontend/dist/js/{typescript-CslHIgIJ.js → typescript-DUM5niRM.js} +1 -1
  305. package/frontend/dist/js/{ui-CNcEDQ95.js → ui-DDMjO5dd.js} +2 -2
  306. package/frontend/dist/js/ui-vendor-BhHHyHk3.js +1 -0
  307. package/frontend/dist/js/uk-VTAlChwf.js +2 -0
  308. package/frontend/dist/js/{useChat-YRODF1y1.js → useChat-DaIZ2Dbu.js} +1 -1
  309. package/frontend/dist/js/{useDialogFocus-BQLdAGYH.js → useDialogFocus-BPTG_Zmy.js} +1 -1
  310. package/frontend/dist/js/useDictation-BXyX1U8r.js +1 -0
  311. package/frontend/dist/js/useQuery-hWmQjdLu.js +1 -0
  312. package/frontend/dist/js/{useTranslation-Kn7_iLGj.js → useTranslation-B9kflK9S.js} +1 -1
  313. package/frontend/dist/js/{utils-Dq1w7K0c.js → utils-p8Gt72YP.js} +1 -1
  314. package/frontend/dist/js/{utils-vendor-dx9vGAt3.js → utils-vendor-DISWt2y9.js} +1 -1
  315. package/frontend/dist/js/vi-D8rXh-53.js +2 -0
  316. package/frontend/dist/js/{workStatus-oU04ZrUq.js → work-DmJpVPPO.js} +1 -1
  317. package/frontend/dist/js/workApi-BIS9RxRi.js +1 -0
  318. package/frontend/dist/js/workApi-C3Td_lFD.js +5 -0
  319. package/frontend/dist/js/workModels-MzU2Ab7l.js +1 -0
  320. package/frontend/dist/js/zh-BEGd9iBD.js +2 -0
  321. package/package.json +43 -8
  322. package/scripts/prepare-dsh-provider.mjs +124 -0
  323. package/frontend/dist/assets/index-BXTzjRcS.js +0 -92
  324. package/frontend/dist/assets/index-uzzNXp5R.css +0 -1
  325. package/frontend/dist/js/ArtifactSlideOutPanel-DPWGjHhp.js +0 -1
  326. package/frontend/dist/js/AutomationsPage-DvsLZWtg.js +0 -1
  327. package/frontend/dist/js/ChannelsPage-D252gXwf.js +0 -1
  328. package/frontend/dist/js/ChatPage-D_CzOiHw.js +0 -14
  329. package/frontend/dist/js/ConnectModels-DYOtIOEY.js +0 -1
  330. package/frontend/dist/js/GalleryPage-BpK-vrvd.js +0 -1
  331. package/frontend/dist/js/HomePage-zJkkDNJl.js +0 -1
  332. package/frontend/dist/js/LibreClawPage-CAgNj9GM.js +0 -1
  333. package/frontend/dist/js/NotesPage-CNTqlwNc.js +0 -3
  334. package/frontend/dist/js/OptimizedSyntaxHighlighter-BFjOBavF.js +0 -1
  335. package/frontend/dist/js/PluginUsagePage-Cp4j4-VZ.js +0 -1
  336. package/frontend/dist/js/RichMessageContent-BOY5jqj-.js +0 -1
  337. package/frontend/dist/js/SettingsModal-WAdVG4-g.js +0 -19
  338. package/frontend/dist/js/SystemPage-Dwi8leEQ.js +0 -1
  339. package/frontend/dist/js/UserManagementPanel-CfG67c_k.js +0 -1
  340. package/frontend/dist/js/WorkPage-D_cL9wp4.js +0 -8
  341. package/frontend/dist/js/api-29NO19CP.js +0 -14
  342. package/frontend/dist/js/api-DhafOTdF.js +0 -1
  343. package/frontend/dist/js/appVersion-BNuquyI6.js +0 -1
  344. package/frontend/dist/js/ar-WHne6B0o.js +0 -2
  345. package/frontend/dist/js/authStore-snvjjOuX.js +0 -1
  346. package/frontend/dist/js/bn-BZvCjqwO.js +0 -2
  347. package/frontend/dist/js/chatStore-BPpcL4I5.js +0 -3
  348. package/frontend/dist/js/composerStyles-bNlrIugf.js +0 -1
  349. package/frontend/dist/js/cs-DfSqWQ9V.js +0 -2
  350. package/frontend/dist/js/da-BmMLW4Dl.js +0 -2
  351. package/frontend/dist/js/de-BQMiQwQT.js +0 -2
  352. package/frontend/dist/js/es-DXf6jt4Z.js +0 -2
  353. package/frontend/dist/js/evaluationsApi-Btc9Mg9z.js +0 -1
  354. package/frontend/dist/js/fr-BD6nT1oc.js +0 -2
  355. package/frontend/dist/js/hi-BSuNic-8.js +0 -2
  356. package/frontend/dist/js/id-wodbwt3B.js +0 -2
  357. package/frontend/dist/js/is-CEjw-OJE.js +0 -2
  358. package/frontend/dist/js/it-X_pq8C7q.js +0 -2
  359. package/frontend/dist/js/ja-DWM2HZZd.js +0 -2
  360. package/frontend/dist/js/ko-DFi2khBB.js +0 -2
  361. package/frontend/dist/js/markdownMath-mesq3ZcY.js +0 -1
  362. package/frontend/dist/js/ms-DNQateTR.js +0 -2
  363. package/frontend/dist/js/nl-DSWhi8W8.js +0 -2
  364. package/frontend/dist/js/pl-W9WEDpZ3.js +0 -2
  365. package/frontend/dist/js/pt-DCCGvdNt.js +0 -2
  366. package/frontend/dist/js/react-vendor-D0Ec-185.js +0 -9
  367. package/frontend/dist/js/router-vendor-CM0PhOMl.js +0 -1
  368. package/frontend/dist/js/ru-D-Ww6dXe.js +0 -2
  369. package/frontend/dist/js/sv-B0Iry-H3.js +0 -2
  370. package/frontend/dist/js/th-CEZS0WeE.js +0 -2
  371. package/frontend/dist/js/tr-BFJ8TeYb.js +0 -2
  372. package/frontend/dist/js/ui-vendor-LatG6rFF.js +0 -177
  373. package/frontend/dist/js/uk-BmW3yDel.js +0 -2
  374. package/frontend/dist/js/useQuery-C3O4CZ54.js +0 -1
  375. package/frontend/dist/js/vi-Cu25FXnp.js +0 -2
  376. package/frontend/dist/js/work-DVgm81bJ.js +0 -1
  377. package/frontend/dist/js/workApi-BdUNugC3.js +0 -1
  378. package/frontend/dist/js/workApi-OieM8qEL.js +0 -6
  379. package/frontend/dist/js/zh-CuCAx3oH.js +0 -2
@@ -0,0 +1,440 @@
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
+ * HTTP surface for the embedded Cordis/DSH engine.
19
+ *
20
+ * Everything here consumes the `libreDshEngine` contract only; no handler knows
21
+ * that DSH exists. That is what allows the whole engine to be swapped or
22
+ * removed through the composition document without touching a route.
23
+ *
24
+ * Authentication is not optional: the engine can run tools with real
25
+ * filesystem access, so an unauthenticated endpoint would be a remote code
26
+ * execution surface. Every route requires an authenticated session.
27
+ *
28
+ * @module routes/cordis
29
+ */
30
+ import express from 'express';
31
+ import { authenticate, requireAdmin } from '../middleware/auth.js';
32
+ import { cordisAccessState, getCordisEngine, isCordisBridgeEnabled, stopCordisHost, } from '../cordis/runtime.js';
33
+ import { setCordisEnabled } from '../services/cordisAccessService.js';
34
+ import { getCordisModelCatalog } from '../cordis/dsh/provider-handler.js';
35
+ const router = express.Router();
36
+ /** Status code and payload for a bridge that cannot serve a request. */
37
+ function unavailable(status, detail) {
38
+ if (status === 'disabled') {
39
+ return {
40
+ status: 503,
41
+ body: {
42
+ success: false,
43
+ error: 'The Cordis bridge is not enabled.',
44
+ code: 'CORDIS_DISABLED',
45
+ },
46
+ };
47
+ }
48
+ if (status === 'starting') {
49
+ return {
50
+ status: 503,
51
+ body: {
52
+ success: false,
53
+ error: 'The Cordis bridge is still starting.',
54
+ code: 'CORDIS_STARTING',
55
+ },
56
+ };
57
+ }
58
+ return {
59
+ status: 503,
60
+ body: {
61
+ success: false,
62
+ error: detail ?? 'The Cordis bridge failed to start.',
63
+ code: 'CORDIS_UNAVAILABLE',
64
+ },
65
+ };
66
+ }
67
+ router.use((_req, res, next) => {
68
+ res.setHeader('Cache-Control', 'no-store');
69
+ next();
70
+ });
71
+ // Health is reachable without a session so an operator can tell "disabled"
72
+ // apart from a broken one before they have credentials to hand.
73
+ router.get('/health', async (_req, res) => {
74
+ if (!(await isCordisBridgeEnabled())) {
75
+ res.json({ success: true, enabled: false, ready: false });
76
+ return;
77
+ }
78
+ const result = await getCordisEngine();
79
+ if (!result.ok) {
80
+ const { status, body } = unavailable(result.reason, result.detail);
81
+ res.status(status).json({ enabled: true, ready: false, ...body });
82
+ return;
83
+ }
84
+ res.json({
85
+ success: true,
86
+ enabled: true,
87
+ ready: true,
88
+ services: result.engine.status(),
89
+ });
90
+ });
91
+ /**
92
+ * Read the administrator opt-in.
93
+ *
94
+ * Administrator-only: the answer decides whether the engine's page exists for
95
+ * this deployment, and the setting is a deployment-wide switch rather than a
96
+ * per-user preference.
97
+ */
98
+ router.get('/access', authenticate, requireAdmin, async (_req, res) => {
99
+ const access = await cordisAccessState();
100
+ res.json({ success: true, ...access });
101
+ });
102
+ /**
103
+ * Set the administrator opt-in.
104
+ *
105
+ * Enabling starts the engine on its next request; disabling stops it
106
+ * immediately so the decision takes effect without a restart. Disposal is what
107
+ * withdraws the engine's services and releases its listeners, so turning the
108
+ * feature off does not leave a running engine behind a hidden page.
109
+ */
110
+ router.put('/access', authenticate, requireAdmin, async (req, res) => {
111
+ const { enabled } = req.body ?? {};
112
+ if (typeof enabled !== 'boolean') {
113
+ res
114
+ .status(400)
115
+ .json({ success: false, error: 'enabled must be a boolean.' });
116
+ return;
117
+ }
118
+ const access = await cordisAccessState();
119
+ if (access.lockedByEnv) {
120
+ res.status(409).json({
121
+ success: false,
122
+ error: access.lockedBy === 'env'
123
+ ? 'The Cordis engine is pinned by LIBRE_CORDIS_ENABLED; unset the environment variable to manage it here.'
124
+ : 'The Cordis engine is pinned by features.enabled in cordis.config.yml; remove that key to manage it here.',
125
+ });
126
+ return;
127
+ }
128
+ await setCordisEnabled(enabled);
129
+ if (!enabled)
130
+ await stopCordisHost();
131
+ res.json({ success: true, enabled, lockedByEnv: false });
132
+ });
133
+ // The host engine is an administrator console with deployment-wide sessions.
134
+ // Navigation visibility is not an authorization boundary.
135
+ router.use(authenticate, requireAdmin);
136
+ /** Validate only choices advertised for the authenticated administrator. */
137
+ async function sessionSettings(body, userId) {
138
+ if (body === null || typeof body !== 'object' || Array.isArray(body)) {
139
+ throw new Error('Session settings must be an object.');
140
+ }
141
+ const input = body;
142
+ const settings = {};
143
+ if (input.model !== undefined) {
144
+ if (typeof input.model !== 'string' ||
145
+ !input.model.trim() ||
146
+ input.model.length > 2048) {
147
+ throw new Error('Choose an available engine model.');
148
+ }
149
+ const catalog = await getCordisModelCatalog(userId);
150
+ if (!catalog.models.some(model => model.id === input.model)) {
151
+ throw new Error('The selected engine model is not available to this account.');
152
+ }
153
+ settings.model = input.model;
154
+ }
155
+ if (input.permissionMode !== undefined) {
156
+ if (input.permissionMode !== 'read-only' &&
157
+ input.permissionMode !== 'workspace-write') {
158
+ throw new Error('Permission mode must be read-only or workspace-write.');
159
+ }
160
+ settings.permissionMode = input.permissionMode;
161
+ }
162
+ return settings;
163
+ }
164
+ router.get('/models', async (req, res) => {
165
+ if (!(await isCordisBridgeEnabled())) {
166
+ const response = unavailable('disabled');
167
+ res.status(response.status).json(response.body);
168
+ return;
169
+ }
170
+ const catalog = await getCordisModelCatalog(req.user.userId);
171
+ res.json({ success: true, ...catalog });
172
+ });
173
+ router.get('/sessions', async (_req, res) => {
174
+ const result = await getCordisEngine();
175
+ if (!result.ok) {
176
+ const { status, body } = unavailable(result.reason, result.detail);
177
+ res.status(status).json(body);
178
+ return;
179
+ }
180
+ res.json({ success: true, sessions: await result.engine.listSessions() });
181
+ });
182
+ router.post('/sessions', async (req, res) => {
183
+ const result = await getCordisEngine();
184
+ if (!result.ok) {
185
+ const { status, body } = unavailable(result.reason, result.detail);
186
+ res.status(status).json(body);
187
+ return;
188
+ }
189
+ const cwd = typeof req.body?.cwd === 'string' && req.body.cwd.trim() !== ''
190
+ ? req.body.cwd
191
+ : undefined;
192
+ const title = typeof req.body?.title === 'string' && req.body.title.trim() !== ''
193
+ ? req.body.title
194
+ : undefined;
195
+ try {
196
+ // The engine resolves an omitted cwd to its configured workspace, so the
197
+ // route never invents one.
198
+ const settings = await sessionSettings(req.body ?? {}, req.user.userId);
199
+ const session = await result.engine.createSession({
200
+ cwd: cwd ?? '',
201
+ ...(title === undefined ? {} : { title }),
202
+ ...settings,
203
+ userId: req.user.userId,
204
+ });
205
+ res.status(201).json({ success: true, session });
206
+ }
207
+ catch (error) {
208
+ res.status(400).json({
209
+ success: false,
210
+ error: error instanceof Error ? error.message : String(error),
211
+ });
212
+ }
213
+ });
214
+ router.get('/sessions/:id', async (req, res) => {
215
+ const result = await getCordisEngine();
216
+ if (!result.ok) {
217
+ const { status, body } = unavailable(result.reason, result.detail);
218
+ res.status(status).json(body);
219
+ return;
220
+ }
221
+ const session = await result.engine.getSession(req.params.id);
222
+ if (!session) {
223
+ res.status(404).json({ success: false, error: 'Session not found.' });
224
+ return;
225
+ }
226
+ res.json({ success: true, session });
227
+ });
228
+ router.patch('/sessions/:id/settings', async (req, res) => {
229
+ const result = await getCordisEngine();
230
+ if (!result.ok) {
231
+ const response = unavailable(result.reason, result.detail);
232
+ res.status(response.status).json(response.body);
233
+ return;
234
+ }
235
+ try {
236
+ const settings = await sessionSettings(req.body, req.user.userId);
237
+ if (Object.keys(settings).length === 0) {
238
+ res.status(400).json({
239
+ success: false,
240
+ error: 'Choose a model or permission mode to update.',
241
+ });
242
+ return;
243
+ }
244
+ if (!(await result.engine.getSession(req.params.id))) {
245
+ res.status(404).json({ success: false, error: 'Session not found.' });
246
+ return;
247
+ }
248
+ const session = await result.engine.updateSessionSettings(req.params.id, settings, { userId: req.user.userId });
249
+ res.json({ success: true, session });
250
+ }
251
+ catch (error) {
252
+ const code = error?.code;
253
+ res.status(code === 'CORDIS_SESSION_BUSY' ? 409 : 400).json({
254
+ success: false,
255
+ error: error instanceof Error ? error.message : String(error),
256
+ ...(typeof code === 'string' ? { code } : {}),
257
+ });
258
+ }
259
+ });
260
+ router.post('/sessions/:id/approvals/:approvalId', async (req, res) => {
261
+ const decision = req.body?.decision;
262
+ if (decision !== 'allowed-once' && decision !== 'rejected') {
263
+ res.status(400).json({
264
+ success: false,
265
+ error: 'Choose allow once or reject for this approval.',
266
+ });
267
+ return;
268
+ }
269
+ const result = await getCordisEngine();
270
+ if (!result.ok) {
271
+ const response = unavailable(result.reason, result.detail);
272
+ res.status(response.status).json(response.body);
273
+ return;
274
+ }
275
+ const accepted = await result.engine.decideApproval(req.params.id, req.params.approvalId, decision);
276
+ if (!accepted) {
277
+ res.status(409).json({
278
+ success: false,
279
+ error: 'This approval is no longer pending for this session.',
280
+ });
281
+ return;
282
+ }
283
+ res.json({ success: true });
284
+ });
285
+ router.delete('/sessions/:id', async (req, res) => {
286
+ const result = await getCordisEngine();
287
+ if (!result.ok) {
288
+ const { status, body } = unavailable(result.reason, result.detail);
289
+ res.status(status).json(body);
290
+ return;
291
+ }
292
+ const deleted = await result.engine.deleteSession(req.params.id);
293
+ res.status(deleted ? 200 : 404).json({ success: deleted });
294
+ });
295
+ router.get('/agents', async (_req, res) => {
296
+ const result = await getCordisEngine();
297
+ if (!result.ok) {
298
+ const { status, body } = unavailable(result.reason, result.detail);
299
+ res.status(status).json(body);
300
+ return;
301
+ }
302
+ res.json({ success: true, agents: await result.engine.listAgents() });
303
+ });
304
+ router.get('/tools', async (_req, res) => {
305
+ const result = await getCordisEngine();
306
+ if (!result.ok) {
307
+ const { status, body } = unavailable(result.reason, result.detail);
308
+ res.status(status).json(body);
309
+ return;
310
+ }
311
+ res.json({ success: true, tools: await result.engine.listTools() });
312
+ });
313
+ /**
314
+ * Send a chat message and stream the agent response as newline-delimited JSON.
315
+ *
316
+ * NDJSON is chosen over WebSocket deliberately: an agent turn is a single
317
+ * server-to-client sequence with no client-to-server frames after the request,
318
+ * so a streaming POST keeps the whole turn inside one authenticated request and
319
+ * needs no separate handshake, ticket, or reconnect protocol.
320
+ */
321
+ router.post('/sessions/:id/messages', async (req, res) => {
322
+ const result = await getCordisEngine();
323
+ if (!result.ok) {
324
+ const { status, body } = unavailable(result.reason, result.detail);
325
+ res.status(status).json(body);
326
+ return;
327
+ }
328
+ const text = typeof req.body?.text === 'string' ? req.body.text : '';
329
+ if (text.trim() === '') {
330
+ res
331
+ .status(400)
332
+ .json({ success: false, error: 'A message text is required.' });
333
+ return;
334
+ }
335
+ if (text.length > 100000) {
336
+ res.status(400).json({
337
+ success: false,
338
+ error: 'Message text exceeds 100000 characters.',
339
+ });
340
+ return;
341
+ }
342
+ let disconnected = false;
343
+ const onDisconnect = () => {
344
+ disconnected = true;
345
+ void result.engine.cancel(req.params.id).catch(() => undefined);
346
+ };
347
+ res.once('close', onDisconnect);
348
+ let stream;
349
+ try {
350
+ stream = await result.engine.sendMessage(req.params.id, text, {
351
+ userId: req.user.userId,
352
+ });
353
+ if (disconnected) {
354
+ await result.engine.cancel(req.params.id);
355
+ stream.close();
356
+ return;
357
+ }
358
+ }
359
+ catch (error) {
360
+ // A failure here is caller-visible (unknown session, a turn already in
361
+ // flight, streaming disabled), so it is a request error rather than a
362
+ // bridge outage.
363
+ res.off('close', onDisconnect);
364
+ if (!res.destroyed)
365
+ res.status(400).json({
366
+ success: false,
367
+ error: error instanceof Error ? error.message : String(error),
368
+ });
369
+ return;
370
+ }
371
+ res.setHeader('Content-Type', 'application/x-ndjson');
372
+ res.setHeader('Cache-Control', 'no-store');
373
+ // The response must not be buffered by an intermediary: the point of the
374
+ // endpoint is that chunks reach the client as the model produces them.
375
+ res.setHeader('X-Accel-Buffering', 'no');
376
+ res.flushHeaders?.();
377
+ let closed = false;
378
+ let subscription;
379
+ const finish = () => {
380
+ if (closed)
381
+ return;
382
+ closed = true;
383
+ res.off('close', onDisconnect);
384
+ subscription?.unsubscribe();
385
+ res.end();
386
+ };
387
+ // Subscribing replays whatever the model already produced, so a fast first
388
+ // token cannot be lost between the engine starting the turn and this handler
389
+ // attaching its listener.
390
+ subscription = stream.subscribe(chunk => {
391
+ if (closed)
392
+ return;
393
+ res.write(`${JSON.stringify(chunk)}\n`);
394
+ if (res.writableLength > 1048576) {
395
+ onDisconnect();
396
+ finish();
397
+ return;
398
+ }
399
+ // `done` is the terminal chunk of one turn, so the response ends here
400
+ // rather than waiting for the client to close it.
401
+ if (chunk.type === 'done')
402
+ finish();
403
+ });
404
+ if (closed)
405
+ subscription.unsubscribe();
406
+ // Disconnecting cancels model and tool work, as well as releasing the reader.
407
+ res.on('close', () => {
408
+ if (closed)
409
+ return;
410
+ closed = true;
411
+ subscription?.unsubscribe();
412
+ stream.close();
413
+ });
414
+ });
415
+ router.post('/sessions/:id/cancel', async (req, res) => {
416
+ const result = await getCordisEngine();
417
+ if (!result.ok) {
418
+ const { status, body } = unavailable(result.reason, result.detail);
419
+ res.status(status).json(body);
420
+ return;
421
+ }
422
+ res.json({ success: await result.engine.cancel(req.params.id) });
423
+ });
424
+ // Keep corrupt legacy sessions visible as a recoverable conflict. Never bypass
425
+ // the engine's event validator or discard a transcript to make it readable.
426
+ const sessionErrorHandler = (error, _req, res, next) => {
427
+ if (error instanceof Error &&
428
+ error.name === 'SessionPersistenceCorruptionError') {
429
+ res.status(409).json({
430
+ success: false,
431
+ code: 'CORDIS_SESSION_INVALID',
432
+ error: 'This saved session has an invalid event log. Preserve the original files and use the Cordis session repair tool before reopening it.',
433
+ });
434
+ return;
435
+ }
436
+ next(error);
437
+ };
438
+ router.use(sessionErrorHandler);
439
+ export default router;
440
+ //# sourceMappingURL=cordis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cordis.js","sourceRoot":"","sources":["../../src/routes/cordis.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ router.put('/access', async (req, res) => {
43
43
  if (agentsEnabledLockedByEnv()) {
44
44
  res.status(409).json({
45
45
  success: false,
46
- error: 'The Agents feature is pinned by AGENT_CLI_MODELS_ENABLED; unset the environment variable to manage it here.',
46
+ error: 'Libre Claw is pinned by LIBRE_CLAW_ENABLED; unset the environment variable to manage it here.',
47
47
  });
48
48
  return;
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"libreClaw.js","sourceRoot":"","sources":["../../src/routes/libreClaw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libreClaw.js","sourceRoot":"","sources":["../../src/routes/libreClaw.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../src/routes/work.ts"],"names":[],"mappings":"AA+EA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAw2DjB,MAAM"}
1
+ {"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../src/routes/work.ts"],"names":[],"mappings":"AAgFA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAs3DjB,MAAM"}
@@ -14,6 +14,7 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { nativeDshProviderService } from '../cordis/dsh/native-provider-client.js';
17
18
  import express from 'express';
18
19
  import { authenticate, requireAdmin, } from '../middleware/auth.js';
19
20
  import { userModel } from '../models/userModel.js';
@@ -104,11 +105,14 @@ router.put('/access', requireAdmin, async (req, res) => {
104
105
  router.use(requireWorkAccess);
105
106
  router.get('/capabilities', async (req, res) => {
106
107
  const userId = requireUserId(req);
107
- const [runtimeAvailable, providers] = await Promise.all([
108
+ const [runtimeAvailable, providers, nativeDsh] = await Promise.all([
108
109
  workRuntimeService.isRuntimeAvailable(),
109
110
  workModelProviderService.availability(userId),
111
+ nativeDshProviderService.catalog(userId),
110
112
  ]);
111
- const providerAvailable = providers.ollamaAvailable || providers.pluginAvailable;
113
+ const providerAvailable = providers.ollamaAvailable ||
114
+ providers.pluginAvailable ||
115
+ (nativeDsh.status === 'ready' && nativeDsh.models.length > 0);
112
116
  const recoveryPending = workRuntimeService.recoveryPending;
113
117
  const recoveryPendingCount = workRuntimeService.recoveryPendingCount;
114
118
  const available = runtimeAvailable && !recoveryPending && providerAvailable;
@@ -118,7 +122,7 @@ router.get('/capabilities', async (req, res) => {
118
122
  ? workRuntimeService.runtimeUnavailableReason ||
119
123
  `The ${workRuntimeService.runtimeKind} runtime is not available to the Libre WebUI backend.`
120
124
  : !providerAvailable
121
- ? 'No Ollama or configured plugin model provider is available.'
125
+ ? 'No configured Work model provider is available.'
122
126
  : undefined;
123
127
  sendSuccess(res, {
124
128
  available,
@@ -127,6 +131,17 @@ router.get('/capabilities', async (req, res) => {
127
131
  runtimeAvailable,
128
132
  ollamaAvailable: providers.ollamaAvailable,
129
133
  pluginAvailable: providers.pluginAvailable,
134
+ nativeDsh: {
135
+ status: nativeDsh.status,
136
+ models: nativeDsh.models.map(model => ({
137
+ model: model.model,
138
+ providerType: 'dsh',
139
+ providerId: model.providerId,
140
+ key: `dsh:${encodeURIComponent(model.providerId)}:${encodeURIComponent(model.model)}`,
141
+ label: `${model.name} · ${model.providerName}`,
142
+ remote: true,
143
+ })),
144
+ },
130
145
  runtimeImage: workRuntimeService.image,
131
146
  reason,
132
147
  // Structured alongside `reason` so the interface can say how many
@@ -1195,25 +1210,25 @@ async function requireIdleGitTask(req) {
1195
1210
  function readProviderSelection(body, fallback) {
1196
1211
  const record = body && typeof body === 'object' ? body : {};
1197
1212
  const rawType = record.providerType ?? fallback?.providerType ?? 'ollama';
1198
- if (rawType !== 'ollama' && rawType !== 'plugin') {
1199
- throw new WorkRouteError('Field "providerType" must be "ollama" or "plugin".', 400);
1213
+ if (rawType !== 'ollama' && rawType !== 'plugin' && rawType !== 'dsh') {
1214
+ throw new WorkRouteError('Field "providerType" must be "ollama", "plugin", or "dsh".', 400);
1200
1215
  }
1201
1216
  if (rawType === 'ollama') {
1202
1217
  if (record.providerId !== undefined &&
1203
1218
  record.providerId !== null &&
1204
1219
  String(record.providerId).trim()) {
1205
- throw new WorkRouteError('Field "providerId" is only valid for plugin providers.', 400);
1220
+ throw new WorkRouteError('Field "providerId" is only valid for plugin or native DSH providers.', 400);
1206
1221
  }
1207
1222
  return { providerType: 'ollama' };
1208
1223
  }
1209
1224
  const rawProviderId = record.providerId ?? fallback?.providerId;
1210
1225
  if (typeof rawProviderId !== 'string' || !rawProviderId.trim()) {
1211
- throw new WorkRouteError('Field "providerId" is required for plugin providers.', 400);
1226
+ throw new WorkRouteError('Field "providerId" is required for plugin or native DSH providers.', 400);
1212
1227
  }
1213
1228
  if (rawProviderId.length > 200) {
1214
1229
  throw new WorkRouteError('Field "providerId" exceeds the 200 character limit.', 413);
1215
1230
  }
1216
- return { providerType: 'plugin', providerId: rawProviderId.trim() };
1231
+ return { providerType: rawType, providerId: rawProviderId.trim() };
1217
1232
  }
1218
1233
  function requireBodyString(value, name, maxLength) {
1219
1234
  if (typeof value !== 'string' || !value.trim()) {