libre-webui 0.26.0 → 0.28.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 (395) hide show
  1. package/README.md +57 -29
  2. package/backend/dist/index.d.ts.map +1 -1
  3. package/backend/dist/index.js +7 -0
  4. package/backend/dist/index.js.map +1 -1
  5. package/backend/dist/persistence/postgresAutomationWorkTargetMigration.d.ts +9 -0
  6. package/backend/dist/persistence/postgresAutomationWorkTargetMigration.d.ts.map +1 -0
  7. package/backend/dist/persistence/postgresAutomationWorkTargetMigration.js +44 -0
  8. package/backend/dist/persistence/postgresAutomationWorkTargetMigration.js.map +1 -0
  9. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.d.ts +9 -0
  10. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.d.ts.map +1 -0
  11. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js +107 -0
  12. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js.map +1 -0
  13. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  14. package/backend/dist/persistence/postgresMigrationRegistry.js +8 -0
  15. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  16. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  17. package/backend/dist/persistence/postgresResourceRepositories.js +179 -4
  18. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  19. package/backend/dist/persistence/postgresSecurityRepositories.d.ts.map +1 -1
  20. package/backend/dist/persistence/postgresSecurityRepositories.js +154 -0
  21. package/backend/dist/persistence/postgresSecurityRepositories.js.map +1 -1
  22. package/backend/dist/persistence/postgresWorkComputerMigration.d.ts +8 -0
  23. package/backend/dist/persistence/postgresWorkComputerMigration.d.ts.map +1 -0
  24. package/backend/dist/persistence/postgresWorkComputerMigration.js +37 -0
  25. package/backend/dist/persistence/postgresWorkComputerMigration.js.map +1 -0
  26. package/backend/dist/persistence/postgresWorkTakeoverMigration.d.ts +9 -0
  27. package/backend/dist/persistence/postgresWorkTakeoverMigration.d.ts.map +1 -0
  28. package/backend/dist/persistence/postgresWorkTakeoverMigration.js +38 -0
  29. package/backend/dist/persistence/postgresWorkTakeoverMigration.js.map +1 -0
  30. package/backend/dist/persistence/resourceTypes.d.ts +64 -0
  31. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  32. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  33. package/backend/dist/persistence/securityTypes.d.ts +60 -0
  34. package/backend/dist/persistence/securityTypes.d.ts.map +1 -1
  35. package/backend/dist/persistence/sqliteMigrations.d.ts +4 -0
  36. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  37. package/backend/dist/persistence/sqliteMigrations.js +267 -0
  38. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  39. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  40. package/backend/dist/persistence/sqliteResourceRepositories.js +151 -7
  41. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  42. package/backend/dist/persistence/sqliteSecurityRepositories.d.ts.map +1 -1
  43. package/backend/dist/persistence/sqliteSecurityRepositories.js +140 -0
  44. package/backend/dist/persistence/sqliteSecurityRepositories.js.map +1 -1
  45. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  46. package/backend/dist/persistence/sqliteToPostgresMigration.js +45 -0
  47. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  48. package/backend/dist/platform/jobs/domainJobContracts.d.ts +2 -0
  49. package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
  50. package/backend/dist/platform/jobs/domainJobContracts.js +2 -0
  51. package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
  52. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
  53. package/backend/dist/platform/jobs/domainJobHandlers.js +152 -2
  54. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
  55. package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -1
  56. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +7 -3
  57. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -1
  58. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -1
  59. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +8 -4
  60. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -1
  61. package/backend/dist/platform/workPersistence/types.d.ts +2 -0
  62. package/backend/dist/platform/workPersistence/types.d.ts.map +1 -1
  63. package/backend/dist/platform/workPersistence/types.js.map +1 -1
  64. package/backend/dist/routes/auth.d.ts.map +1 -1
  65. package/backend/dist/routes/auth.js +427 -5
  66. package/backend/dist/routes/auth.js.map +1 -1
  67. package/backend/dist/routes/automations.d.ts.map +1 -1
  68. package/backend/dist/routes/automations.js +5 -0
  69. package/backend/dist/routes/automations.js.map +1 -1
  70. package/backend/dist/routes/documents.d.ts.map +1 -1
  71. package/backend/dist/routes/documents.js +4 -0
  72. package/backend/dist/routes/documents.js.map +1 -1
  73. package/backend/dist/routes/push.d.ts +3 -0
  74. package/backend/dist/routes/push.d.ts.map +1 -0
  75. package/backend/dist/routes/push.js +105 -0
  76. package/backend/dist/routes/push.js.map +1 -0
  77. package/backend/dist/routes/recovery.d.ts +3 -0
  78. package/backend/dist/routes/recovery.d.ts.map +1 -0
  79. package/backend/dist/routes/recovery.js +83 -0
  80. package/backend/dist/routes/recovery.js.map +1 -0
  81. package/backend/dist/routes/users.d.ts.map +1 -1
  82. package/backend/dist/routes/users.js +35 -0
  83. package/backend/dist/routes/users.js.map +1 -1
  84. package/backend/dist/routes/work.d.ts.map +1 -1
  85. package/backend/dist/routes/work.js +205 -1
  86. package/backend/dist/routes/work.js.map +1 -1
  87. package/backend/dist/services/authService.d.ts +8 -0
  88. package/backend/dist/services/authService.d.ts.map +1 -1
  89. package/backend/dist/services/authService.js +29 -0
  90. package/backend/dist/services/authService.js.map +1 -1
  91. package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
  92. package/backend/dist/services/automationSchedulerService.js +31 -0
  93. package/backend/dist/services/automationSchedulerService.js.map +1 -1
  94. package/backend/dist/services/automationService.d.ts +4 -1
  95. package/backend/dist/services/automationService.d.ts.map +1 -1
  96. package/backend/dist/services/automationService.js +27 -0
  97. package/backend/dist/services/automationService.js.map +1 -1
  98. package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
  99. package/backend/dist/services/dataArchiveService.js +3 -0
  100. package/backend/dist/services/dataArchiveService.js.map +1 -1
  101. package/backend/dist/services/documentMediaExtractionService.d.ts +40 -0
  102. package/backend/dist/services/documentMediaExtractionService.d.ts.map +1 -0
  103. package/backend/dist/services/documentMediaExtractionService.js +157 -0
  104. package/backend/dist/services/documentMediaExtractionService.js.map +1 -0
  105. package/backend/dist/services/documentService.d.ts +6 -0
  106. package/backend/dist/services/documentService.d.ts.map +1 -1
  107. package/backend/dist/services/documentService.js +58 -4
  108. package/backend/dist/services/documentService.js.map +1 -1
  109. package/backend/dist/services/encryptionService.d.ts +6 -0
  110. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  111. package/backend/dist/services/encryptionService.js +12 -0
  112. package/backend/dist/services/encryptionService.js.map +1 -1
  113. package/backend/dist/services/mfaService.d.ts +64 -0
  114. package/backend/dist/services/mfaService.d.ts.map +1 -0
  115. package/backend/dist/services/mfaService.js +262 -0
  116. package/backend/dist/services/mfaService.js.map +1 -0
  117. package/backend/dist/services/notificationService.d.ts +5 -0
  118. package/backend/dist/services/notificationService.d.ts.map +1 -1
  119. package/backend/dist/services/notificationService.js +33 -1
  120. package/backend/dist/services/notificationService.js.map +1 -1
  121. package/backend/dist/services/preferencesService.d.ts +1 -1
  122. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  123. package/backend/dist/services/preferencesService.js +1 -0
  124. package/backend/dist/services/preferencesService.js.map +1 -1
  125. package/backend/dist/services/recoveryDrillService.d.ts +57 -0
  126. package/backend/dist/services/recoveryDrillService.d.ts.map +1 -0
  127. package/backend/dist/services/recoveryDrillService.js +363 -0
  128. package/backend/dist/services/recoveryDrillService.js.map +1 -0
  129. package/backend/dist/services/webPushService.d.ts +71 -0
  130. package/backend/dist/services/webPushService.d.ts.map +1 -0
  131. package/backend/dist/services/webPushService.js +328 -0
  132. package/backend/dist/services/webPushService.js.map +1 -0
  133. package/backend/dist/services/webauthnService.d.ts +58 -0
  134. package/backend/dist/services/webauthnService.d.ts.map +1 -0
  135. package/backend/dist/services/webauthnService.js +301 -0
  136. package/backend/dist/services/webauthnService.js.map +1 -0
  137. package/backend/dist/services/websocketTicketService.d.ts +1 -1
  138. package/backend/dist/services/websocketTicketService.d.ts.map +1 -1
  139. package/backend/dist/services/websocketTicketService.js +3 -1
  140. package/backend/dist/services/websocketTicketService.js.map +1 -1
  141. package/backend/dist/services/workAgentGuidance.d.ts +14 -0
  142. package/backend/dist/services/workAgentGuidance.d.ts.map +1 -1
  143. package/backend/dist/services/workAgentGuidance.js +38 -2
  144. package/backend/dist/services/workAgentGuidance.js.map +1 -1
  145. package/backend/dist/services/workAgentService.d.ts +9 -0
  146. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  147. package/backend/dist/services/workAgentService.js +503 -13
  148. package/backend/dist/services/workAgentService.js.map +1 -1
  149. package/backend/dist/services/workComputerSetupService.d.ts +33 -0
  150. package/backend/dist/services/workComputerSetupService.d.ts.map +1 -0
  151. package/backend/dist/services/workComputerSetupService.js +164 -0
  152. package/backend/dist/services/workComputerSetupService.js.map +1 -0
  153. package/backend/dist/services/workComputerTeachService.d.ts +105 -0
  154. package/backend/dist/services/workComputerTeachService.d.ts.map +1 -0
  155. package/backend/dist/services/workComputerTeachService.js +513 -0
  156. package/backend/dist/services/workComputerTeachService.js.map +1 -0
  157. package/backend/dist/services/workKubernetesDriver.d.ts +8 -0
  158. package/backend/dist/services/workKubernetesDriver.d.ts.map +1 -1
  159. package/backend/dist/services/workKubernetesDriver.js +22 -0
  160. package/backend/dist/services/workKubernetesDriver.js.map +1 -1
  161. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  162. package/backend/dist/services/workModelProviderService.js +102 -8
  163. package/backend/dist/services/workModelProviderService.js.map +1 -1
  164. package/backend/dist/services/workPolicyService.d.ts +8 -0
  165. package/backend/dist/services/workPolicyService.d.ts.map +1 -1
  166. package/backend/dist/services/workPolicyService.js +25 -0
  167. package/backend/dist/services/workPolicyService.js.map +1 -1
  168. package/backend/dist/services/workRuntimeDriver.d.ts +32 -0
  169. package/backend/dist/services/workRuntimeDriver.d.ts.map +1 -1
  170. package/backend/dist/services/workRuntimeDriver.js +54 -8
  171. package/backend/dist/services/workRuntimeDriver.js.map +1 -1
  172. package/backend/dist/services/workRuntimeService.d.ts +212 -1
  173. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  174. package/backend/dist/services/workRuntimeService.js +1184 -9
  175. package/backend/dist/services/workRuntimeService.js.map +1 -1
  176. package/backend/dist/services/workRuntimeShared.d.ts +11 -1
  177. package/backend/dist/services/workRuntimeShared.d.ts.map +1 -1
  178. package/backend/dist/services/workRuntimeShared.js +24 -1
  179. package/backend/dist/services/workRuntimeShared.js.map +1 -1
  180. package/backend/dist/services/workScreenControlService.d.ts +60 -0
  181. package/backend/dist/services/workScreenControlService.d.ts.map +1 -0
  182. package/backend/dist/services/workScreenControlService.js +201 -0
  183. package/backend/dist/services/workScreenControlService.js.map +1 -0
  184. package/backend/dist/services/workTaskService.d.ts +11 -0
  185. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  186. package/backend/dist/services/workTaskService.js +31 -0
  187. package/backend/dist/services/workTaskService.js.map +1 -1
  188. package/backend/dist/types/index.d.ts +10 -2
  189. package/backend/dist/types/index.d.ts.map +1 -1
  190. package/backend/dist/types/index.js.map +1 -1
  191. package/backend/dist/types/work.d.ts +13 -0
  192. package/backend/dist/types/work.d.ts.map +1 -1
  193. package/backend/dist/utils/documentExtraction.d.ts +31 -3
  194. package/backend/dist/utils/documentExtraction.d.ts.map +1 -1
  195. package/backend/dist/utils/documentExtraction.js +106 -0
  196. package/backend/dist/utils/documentExtraction.js.map +1 -1
  197. package/backend/dist/utils/toolEgress.d.ts +2 -1
  198. package/backend/dist/utils/toolEgress.d.ts.map +1 -1
  199. package/backend/dist/utils/toolEgress.js +14 -2
  200. package/backend/dist/utils/toolEgress.js.map +1 -1
  201. package/backend/dist/utils/totp.d.ts +19 -0
  202. package/backend/dist/utils/totp.d.ts.map +1 -0
  203. package/backend/dist/utils/totp.js +117 -0
  204. package/backend/dist/utils/totp.js.map +1 -0
  205. package/backend/dist/utils/webauthn.d.ts +47 -0
  206. package/backend/dist/utils/webauthn.d.ts.map +1 -0
  207. package/backend/dist/utils/webauthn.js +323 -0
  208. package/backend/dist/utils/webauthn.js.map +1 -0
  209. package/backend/dist/websocketServer.d.ts.map +1 -1
  210. package/backend/dist/websocketServer.js +9 -0
  211. package/backend/dist/websocketServer.js.map +1 -1
  212. package/backend/dist/workScreenServer.d.ts +12 -0
  213. package/backend/dist/workScreenServer.d.ts.map +1 -0
  214. package/backend/dist/workScreenServer.js +291 -0
  215. package/backend/dist/workScreenServer.js.map +1 -0
  216. package/backend/package.json +1 -1
  217. package/deploy/work-computer/Dockerfile +48 -0
  218. package/deploy/work-computer/README.md +93 -0
  219. package/deploy/work-computer/fonts/fonts.css +335 -0
  220. package/deploy/work-computer/fonts/v16-aFTR7PB1QTsUX8KYvumzEY2tbYf-Vlh3uA.woff2 +0 -0
  221. package/deploy/work-computer/fonts/v16-aFTR7PB1QTsUX8KYvumzEYOtbYf-Vlg.woff2 +0 -0
  222. package/deploy/work-computer/fonts/v16-aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2 +0 -0
  223. package/deploy/work-computer/fonts/v16-aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2 +0 -0
  224. package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggOxSvfedN62Zw.woff2 +0 -0
  225. package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggSxSvfedN62Zw.woff2 +0 -0
  226. package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggexSvfedN4.woff2 +0 -0
  227. package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggixSvfedN62Zw.woff2 +0 -0
  228. package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2 +0 -0
  229. package/deploy/work-computer/fonts/v20-xn7gYHE41ni1AdIRggqxSvfedN62Zw.woff2 +0 -0
  230. package/deploy/work-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb54C_k3HqUtEw.woff2 +0 -0
  231. package/deploy/work-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPb94C_k3HqUtEw.woff2 +0 -0
  232. package/deploy/work-computer/fonts/v22-V8mDoQDjQSkFtoMM3T6r8E7mPbF4C_k3HqU.woff2 +0 -0
  233. package/deploy/work-computer/start-computer.sh +155 -0
  234. package/deploy/work-computer/start-page.html +251 -0
  235. package/deploy/work-computer/tint2rc +76 -0
  236. package/deploy/work-computer/wallpaper.png +0 -0
  237. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  238. package/frontend/dist/assets/index-DGy6mo0B.js +33 -0
  239. package/frontend/dist/assets/index-DqLJKWF-.css +1 -0
  240. package/frontend/dist/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  241. package/frontend/dist/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
  242. package/frontend/dist/fonts/jetbrains-mono.css +24 -0
  243. package/frontend/dist/index.html +40 -18
  244. package/frontend/dist/js/ArtifactContainer-DvIMxleC.js +1 -0
  245. package/frontend/dist/js/{ArtifactDemoPage-D0JEIAbZ.js → ArtifactDemoPage-BqYskFqc.js} +1 -1
  246. package/frontend/dist/js/ArtifactSandboxFrame-9wuufHn6.js +111 -0
  247. package/frontend/dist/js/ArtifactSlideOutPanel-DXESMtPh.js +1 -0
  248. package/frontend/dist/js/AutomationsPage-DByxhIKj.js +1 -0
  249. package/frontend/dist/js/AvatarUpload-DnCGQ46o.js +1 -0
  250. package/frontend/dist/js/{Button-C0r3J9G_.js → Button-CpobxJ2P.js} +1 -1
  251. package/frontend/dist/js/CalendarPage-JywVP-9y.js +1 -0
  252. package/frontend/dist/js/ChannelsPage-B31rcARd.js +1 -0
  253. package/frontend/dist/js/ChatPage-CHXJY8m3.js +14 -0
  254. package/frontend/dist/js/{EvaluationsPage-Bm8FRoeX.js → EvaluationsPage-CcmB5wdF.js} +1 -1
  255. package/frontend/dist/js/FirstTimeSetup-DDU7SowM.js +1 -0
  256. package/frontend/dist/js/GalleryPage-XfX_7iCf.js +1 -0
  257. package/frontend/dist/js/HomePage-DAZAkoAV.js +1 -0
  258. package/frontend/dist/js/LibreClawPage-De0gZmbF.js +1 -0
  259. package/frontend/dist/js/Logo-yKM43xGa.js +1 -0
  260. package/frontend/dist/js/LogoMark-PmpKQOre.js +1 -0
  261. package/frontend/dist/js/{ModelManagerModals-DX9eT5r2.js → ModelManagerModals-hz2cZZ4a.js} +1 -1
  262. package/frontend/dist/js/ModelSelector-BoFehQy-.js +1 -0
  263. package/frontend/dist/js/NotesPage-BGPI3gG6.js +3 -0
  264. package/frontend/dist/js/OptimizedSyntaxHighlighter-DrejdNUm.js +1 -0
  265. package/frontend/dist/js/OptimizedSyntaxHighlighter-hNqZPLiB.js +1 -0
  266. package/frontend/dist/js/PasswordStrengthMeter-RwModpZ1.js +1 -0
  267. package/frontend/dist/js/PersonasPage-BkNRD2wO.js +13 -0
  268. package/frontend/dist/js/PluginUsagePage-Cqt7V2SQ.js +1 -0
  269. package/frontend/dist/js/RichMessageContent-B2QSyX-l.js +1 -0
  270. package/frontend/dist/js/RichMessageContent-CYEhT6uU.js +3 -0
  271. package/frontend/dist/js/SettingsModal-IbIvVyss.js +19 -0
  272. package/frontend/dist/js/{SettingsToggle-BIVyfGjl.js → SettingsToggle-3GxA96E0.js} +1 -1
  273. package/frontend/dist/js/ShareDialog-BoE4OVhV.js +1 -0
  274. package/frontend/dist/js/SystemPage-B5ecz5H3.js +1 -0
  275. package/frontend/dist/js/TurnstileWidget-DHU9IUM1.js +1 -0
  276. package/frontend/dist/js/UserManagementPage-C0VUfbMk.js +1 -0
  277. package/frontend/dist/js/WorkPage-EweYI5Dx.js +74 -0
  278. package/frontend/dist/js/api-Bbh2AHHN.js +1 -0
  279. package/frontend/dist/js/api-F0CnlVH8.js +14 -0
  280. package/frontend/dist/js/appNavigation-DqV69ohR.js +1 -0
  281. package/frontend/dist/js/appStore-SLLBamo2.js +2 -0
  282. package/frontend/dist/js/appVersion-46bF9UkF.js +1 -0
  283. package/frontend/dist/js/ar-C4yo7x5J.js +2 -0
  284. package/frontend/dist/js/artifactHtml-DDmfpcB0.js +41 -0
  285. package/frontend/dist/js/authStore-CcfL8T6T.js +1 -0
  286. package/frontend/dist/js/authStore-DlSQ1TcP.js +4 -0
  287. package/frontend/dist/js/axios-_ZpUYd3e.js +1 -0
  288. package/frontend/dist/js/bn-BeZ6d2qF.js +2 -0
  289. package/frontend/dist/js/chatStore-DI79tEJ-.js +3 -0
  290. package/frontend/dist/js/classPrivateMethodInitSpec-B31Q4d2M.js +1 -0
  291. package/frontend/dist/js/{config-8KdgjtEx.js → config-0QgGZCrI.js} +1 -1
  292. package/frontend/dist/js/cs-9K5LILI5.js +2 -0
  293. package/frontend/dist/js/da-BWbBhLK8.js +2 -0
  294. package/frontend/dist/js/de-BXD9t2uY.js +2 -0
  295. package/frontend/dist/js/es-Dv4wZKlU.js +2 -0
  296. package/frontend/dist/js/{estree-BU5-LV_1.js → estree-WDwviHUZ.js} +1 -1
  297. package/frontend/dist/js/evaluationsApi-wjf0nh5J.js +1 -0
  298. package/frontend/dist/js/fr-BkXGyEei.js +2 -0
  299. package/frontend/dist/js/hi-BS1ldbWk.js +2 -0
  300. package/frontend/dist/js/{html-DeoAy2bo.js → html-Cj0HNcRt.js} +1 -1
  301. package/frontend/dist/js/id-Cr1njx5M.js +2 -0
  302. package/frontend/dist/js/is-BqpNCtDd.js +2 -0
  303. package/frontend/dist/js/it-Dp-iwH27.js +2 -0
  304. package/frontend/dist/js/ja-_e4v_6Mn.js +2 -0
  305. package/frontend/dist/js/ko-CjXf2pIX.js +2 -0
  306. package/frontend/dist/js/{logger-DSXjF4ye.js → logger-CpCQz3Vi.js} +1 -1
  307. package/frontend/dist/js/{markdown-DOLsYkBY.js → markdown-DTahdtRF.js} +1 -1
  308. package/frontend/dist/js/{messageCodeStyles-DhVgizF-.js → messageCodeStyles-COJFoq4P.js} +2 -2
  309. package/frontend/dist/js/ms-xpn-zACj.js +2 -0
  310. package/frontend/dist/js/nl-Baf0a2X0.js +2 -0
  311. package/frontend/dist/js/pl-BEOTrcUv.js +2 -0
  312. package/frontend/dist/js/pt-B5FUaihM.js +2 -0
  313. package/frontend/dist/js/rfb-bJaPz33m.js +5 -0
  314. package/frontend/dist/js/ru-BjzgMmkJ.js +2 -0
  315. package/frontend/dist/js/{standalone-BO5pzI8_.js → standalone-C04jT26m.js} +1 -1
  316. package/frontend/dist/js/sv-DDX_gP1z.js +2 -0
  317. package/frontend/dist/js/{syntax-highlight-DcR9Vhb7.js → syntax-highlight-P2zo9o06.js} +1 -1
  318. package/frontend/dist/js/teamEventStream-CgUkgjFC.js +8 -0
  319. package/frontend/dist/js/th-BXr3KovE.js +2 -0
  320. package/frontend/dist/js/tr-CdqxHEM8.js +2 -0
  321. package/frontend/dist/js/ttsBatching-BfhNT3c5.js +2 -0
  322. package/frontend/dist/js/{typescript-6GJ8APmn.js → typescript-FtGI7Y5P.js} +1 -1
  323. package/frontend/dist/js/ui-DFa2W4QC.js +2 -0
  324. package/frontend/dist/js/ui-vendor-CRZXLK0Q.js +177 -0
  325. package/frontend/dist/js/uk-CotKDP2Q.js +2 -0
  326. package/frontend/dist/js/useChat-BawGm7ua.js +10 -0
  327. package/frontend/dist/js/useQuery-BboI5V5G.js +1 -0
  328. package/frontend/dist/js/{useTranslation-5b5UhAc9.js → useTranslation-D7uLySn1.js} +1 -1
  329. package/frontend/dist/js/{utils-BGrdX9ie.js → utils-sD-qFh8D.js} +1 -1
  330. package/frontend/dist/js/utils-vendor-DTLgmsuc.js +9 -0
  331. package/frontend/dist/js/vi-F2NC1HaJ.js +2 -0
  332. package/frontend/dist/js/webauthnClient-CPSq528Q.js +1 -0
  333. package/frontend/dist/js/workApi-8mBuh_-J.js +6 -0
  334. package/frontend/dist/js/workApi-DJtLOslf.js +1 -0
  335. package/frontend/dist/js/workStatus-CcO9Fg41.js +1 -0
  336. package/frontend/dist/js/zh-DZ-kpEEA.js +2 -0
  337. package/frontend/dist/manifest.webmanifest +32 -0
  338. package/frontend/dist/sw.js +125 -0
  339. package/package.json +4 -2
  340. package/frontend/dist/assets/index-BPsH9FII.js +0 -80
  341. package/frontend/dist/assets/index-BtXF0Oxa.css +0 -1
  342. package/frontend/dist/js/ArtifactContainer-CIoFoMv8.js +0 -1
  343. package/frontend/dist/js/ArtifactSandboxFrame-REazyIrx.js +0 -151
  344. package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +0 -1
  345. package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +0 -1
  346. package/frontend/dist/js/CalendarPage-DLjasZOd.js +0 -1
  347. package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +0 -1
  348. package/frontend/dist/js/ChatPage-BAgBHUES.js +0 -16
  349. package/frontend/dist/js/FirstTimeSetup-BxJapNul.js +0 -1
  350. package/frontend/dist/js/GalleryPage-DHz9DkK7.js +0 -1
  351. package/frontend/dist/js/HomePage-BqNy-FWX.js +0 -1
  352. package/frontend/dist/js/LibreClawPage-BDzDILjY.js +0 -1
  353. package/frontend/dist/js/ModelSelector-ol8mK2ja.js +0 -1
  354. package/frontend/dist/js/NotesPage-DzHEx2O4.js +0 -3
  355. package/frontend/dist/js/OptimizedSyntaxHighlighter-CZNPwN0i.js +0 -1
  356. package/frontend/dist/js/PersonasPage-M_WKH2a9.js +0 -13
  357. package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +0 -1
  358. package/frontend/dist/js/RichMessageContent-BqgafH4p.js +0 -3
  359. package/frontend/dist/js/SettingsModal-R9EDadAV.js +0 -19
  360. package/frontend/dist/js/SystemPage-aOkrSuY7.js +0 -1
  361. package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +0 -1
  362. package/frontend/dist/js/WorkPage-DxZISerQ.js +0 -6
  363. package/frontend/dist/js/api-6bSMtSNh.js +0 -14
  364. package/frontend/dist/js/appStore-CdObhQBb.js +0 -2
  365. package/frontend/dist/js/ar-DT_VLBO3.js +0 -2
  366. package/frontend/dist/js/authStore-DbqqrfZv.js +0 -4
  367. package/frontend/dist/js/bn-BrvEqhGA.js +0 -2
  368. package/frontend/dist/js/chatStore-DbZPJNsu.js +0 -3
  369. package/frontend/dist/js/cs-BthnM_YI.js +0 -2
  370. package/frontend/dist/js/da-DCth-6_j.js +0 -2
  371. package/frontend/dist/js/de-BBWt0gJ_.js +0 -2
  372. package/frontend/dist/js/es-DuslOPqM.js +0 -2
  373. package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +0 -1
  374. package/frontend/dist/js/fr-DZAeg46S.js +0 -2
  375. package/frontend/dist/js/hi-ijDSiY77.js +0 -2
  376. package/frontend/dist/js/id-BS6qS0oq.js +0 -2
  377. package/frontend/dist/js/is-CO2PMDte.js +0 -2
  378. package/frontend/dist/js/it-ChhxT4hs.js +0 -2
  379. package/frontend/dist/js/ja-cyeqUeJN.js +0 -2
  380. package/frontend/dist/js/ko-CfqHTLXj.js +0 -2
  381. package/frontend/dist/js/ms-DZ5pACe1.js +0 -2
  382. package/frontend/dist/js/nl-BsRsnOVp.js +0 -2
  383. package/frontend/dist/js/pl-DXSTAW4M.js +0 -2
  384. package/frontend/dist/js/pt-DmDx0JxB.js +0 -2
  385. package/frontend/dist/js/ru-d2g8EWfY.js +0 -2
  386. package/frontend/dist/js/sv-CIhYUTVQ.js +0 -2
  387. package/frontend/dist/js/th-B3wSxanB.js +0 -2
  388. package/frontend/dist/js/tr-R4UGgPOY.js +0 -2
  389. package/frontend/dist/js/ui-CV0LYmkM.js +0 -2
  390. package/frontend/dist/js/ui-vendor-CWjIBW-z.js +0 -177
  391. package/frontend/dist/js/uk-BzUF4Vkt.js +0 -2
  392. package/frontend/dist/js/utils-vendor-9bQ62WeD.js +0 -9
  393. package/frontend/dist/js/vi-CKc6Fg4h.js +0 -2
  394. package/frontend/dist/js/workApi-BruWTlHM.js +0 -6
  395. package/frontend/dist/js/zh-CXL-kDe8.js +0 -2
@@ -0,0 +1,301 @@
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
+ * Passkey (WebAuthn) registration and passwordless sign-in.
19
+ *
20
+ * Attestation policy is 'none' (statements are not evaluated), credentials
21
+ * are discoverable with user verification required, and ES256/EdDSA are the
22
+ * accepted algorithms. Credential ids are stored as keyed one-way lookup
23
+ * tokens with the key material encrypted at rest. Challenges are one-use
24
+ * through the coordinator cache and carried in a signed token using a secret
25
+ * derived from (but distinct from) the session JWT secret.
26
+ */
27
+ import jwt from 'jsonwebtoken';
28
+ import { createHmac, randomBytes, randomUUID } from 'node:crypto';
29
+ import { getPersistence } from '../persistence/index.js';
30
+ import { encryptionService } from './encryptionService.js';
31
+ import { JWT_SECRET } from './authService.js';
32
+ import { getCoordinator } from '../platform/coordination/service.js';
33
+ import { WebAuthnError, extractPublicKey, originMatchesRpId, parseAttestationObject, parseAuthenticatorData, parseClientDataJson, sha256, verifyAssertionSignature, } from '../utils/webauthn.js';
34
+ const credentialRepository = () => getPersistence(encryptionService).repositories.security.webauthnCredentials;
35
+ const CHALLENGE_TTL_MS = 5 * 60 * 1000;
36
+ const MAX_CREDENTIALS_PER_USER = 10;
37
+ const CHALLENGE_SECRET = createHmac('sha256', JWT_SECRET)
38
+ .update('libre:webauthn-challenge:v1')
39
+ .digest();
40
+ export class PasskeyError extends Error {
41
+ constructor(message, statusCode = 400) {
42
+ super(message);
43
+ this.statusCode = statusCode;
44
+ }
45
+ }
46
+ const credentialLookup = (credentialIdBase64Url) => encryptionService.purposeLookupToken('webauthn-credential', credentialIdBase64Url);
47
+ const decodeBase64Url = (value, name) => {
48
+ if (typeof value !== 'string' ||
49
+ value.length === 0 ||
50
+ value.length > 200000) {
51
+ throw new PasskeyError(`${name} is required`);
52
+ }
53
+ return Buffer.from(value, 'base64url');
54
+ };
55
+ /** The relying-party id and origin policy for a request host. */
56
+ export const resolveRelyingParty = (requestHost) => {
57
+ const pinned = process.env.WEBAUTHN_RP_ID?.trim();
58
+ if (pinned)
59
+ return { rpId: pinned };
60
+ const hostname = requestHost.split(':')[0]?.trim().toLowerCase();
61
+ if (!hostname) {
62
+ throw new PasskeyError('Cannot determine the relying-party id', 500);
63
+ }
64
+ return { rpId: hostname };
65
+ };
66
+ const assertAcceptableOrigin = (origin, rpId) => {
67
+ if (!originMatchesRpId(origin, rpId)) {
68
+ throw new PasskeyError('This passkey response came from another site', 401);
69
+ }
70
+ let url;
71
+ try {
72
+ url = new URL(origin);
73
+ }
74
+ catch {
75
+ throw new PasskeyError('This passkey response came from another site', 401);
76
+ }
77
+ const localhost = url.hostname === 'localhost' || url.hostname === '127.0.0.1';
78
+ if (url.protocol !== 'https:' && !localhost) {
79
+ throw new PasskeyError('Passkeys require a secure (HTTPS) origin', 401);
80
+ }
81
+ };
82
+ const issueChallenge = async (purpose, userId) => {
83
+ const challenge = randomBytes(32).toString('base64url');
84
+ const jti = randomUUID();
85
+ await getCoordinator().setCache(`webauthn-challenge:${jti}`, { purpose }, CHALLENGE_TTL_MS);
86
+ const token = jwt.sign({ sub: userId, purpose, challenge, jti }, CHALLENGE_SECRET, { expiresIn: Math.floor(CHALLENGE_TTL_MS / 1000) });
87
+ return { token, challenge };
88
+ };
89
+ /** Verify and burn a challenge token; each token authorizes one ceremony. */
90
+ const consumeChallenge = async (token, purpose) => {
91
+ let claims;
92
+ try {
93
+ claims = jwt.verify(token, CHALLENGE_SECRET);
94
+ }
95
+ catch {
96
+ throw new PasskeyError('This passkey challenge has expired', 401);
97
+ }
98
+ if (claims.purpose !== purpose || !claims.challenge || !claims.jti) {
99
+ throw new PasskeyError('This passkey challenge is not valid', 401);
100
+ }
101
+ const cached = await getCoordinator().consumeCache(`webauthn-challenge:${claims.jti}`);
102
+ if (!cached) {
103
+ throw new PasskeyError('This passkey challenge was already used', 401);
104
+ }
105
+ return {
106
+ ...(claims.sub ? { userId: claims.sub } : {}),
107
+ challenge: claims.challenge,
108
+ };
109
+ };
110
+ const toPublic = (record) => ({
111
+ id: record.id,
112
+ name: record.name,
113
+ createdAt: record.created_at,
114
+ lastUsedAt: record.last_used_at,
115
+ });
116
+ export const listPasskeys = async (userId) => (await credentialRepository().listByUser(userId)).map(toPublic);
117
+ export const deletePasskey = async (userId, passkeyId) => credentialRepository().delete(passkeyId, userId);
118
+ export const deleteAllPasskeys = async (userId) => credentialRepository().deleteForUser(userId);
119
+ export const registrationOptions = async (user, requestHost) => {
120
+ const { rpId } = resolveRelyingParty(requestHost);
121
+ const { token, challenge } = await issueChallenge('webauthn-register', user.id);
122
+ const existing = await credentialRepository().listByUser(user.id);
123
+ const excludeCredentials = existing
124
+ .map(record => {
125
+ try {
126
+ const data = encryptionService.decryptObject(record.credential_data);
127
+ return { type: 'public-key', id: data.credentialId };
128
+ }
129
+ catch {
130
+ return null;
131
+ }
132
+ })
133
+ .filter(Boolean);
134
+ return {
135
+ challengeToken: token,
136
+ publicKey: {
137
+ challenge,
138
+ rp: { id: rpId, name: 'Libre WebUI' },
139
+ user: {
140
+ id: Buffer.from(user.id, 'utf8').toString('base64url'),
141
+ name: user.username,
142
+ displayName: user.username,
143
+ },
144
+ pubKeyCredParams: [
145
+ { type: 'public-key', alg: -7 },
146
+ { type: 'public-key', alg: -8 },
147
+ { type: 'public-key', alg: -257 },
148
+ ],
149
+ authenticatorSelection: {
150
+ residentKey: 'required',
151
+ userVerification: 'required',
152
+ },
153
+ attestation: 'none',
154
+ timeout: 120000,
155
+ excludeCredentials,
156
+ },
157
+ };
158
+ };
159
+ export const registerPasskey = async (userId, submission, requestHost) => {
160
+ const { rpId } = resolveRelyingParty(requestHost);
161
+ const consumed = await consumeChallenge(submission.challengeToken, 'webauthn-register');
162
+ if (consumed.userId !== userId) {
163
+ throw new PasskeyError('This passkey challenge belongs to another sign-in', 401);
164
+ }
165
+ const clientDataJson = decodeBase64Url(submission.credential?.response?.clientDataJSON, 'clientDataJSON');
166
+ const clientData = parseClientDataJson(clientDataJson);
167
+ if (clientData.type !== 'webauthn.create') {
168
+ throw new PasskeyError('Unexpected passkey ceremony type', 401);
169
+ }
170
+ if (clientData.challenge !== consumed.challenge) {
171
+ throw new PasskeyError('Passkey challenge mismatch', 401);
172
+ }
173
+ assertAcceptableOrigin(clientData.origin, rpId);
174
+ let authData;
175
+ let parsed;
176
+ let publicKey;
177
+ try {
178
+ authData = parseAttestationObject(decodeBase64Url(submission.credential?.response?.attestationObject, 'attestationObject'));
179
+ parsed = parseAuthenticatorData(authData);
180
+ if (!parsed.publicKey || !parsed.credentialId) {
181
+ throw new WebAuthnError('Attested credential data is missing');
182
+ }
183
+ publicKey = extractPublicKey(parsed.publicKey);
184
+ }
185
+ catch (error) {
186
+ if (error instanceof WebAuthnError) {
187
+ throw new PasskeyError(`Passkey registration failed: ${error.message}`);
188
+ }
189
+ throw error;
190
+ }
191
+ if (!parsed.rpIdHash.equals(sha256(rpId))) {
192
+ throw new PasskeyError('This passkey was created for another site', 401);
193
+ }
194
+ if (!parsed.userPresent || !parsed.userVerified) {
195
+ throw new PasskeyError('Passkeys require user verification', 401);
196
+ }
197
+ const credentialId = parsed.credentialId.toString('base64url');
198
+ const rawId = submission.credential.rawId;
199
+ if (typeof rawId === 'string' && rawId !== credentialId) {
200
+ throw new PasskeyError('Credential id mismatch', 401);
201
+ }
202
+ const lookup = credentialLookup(credentialId);
203
+ if (await credentialRepository().findByLookup(lookup)) {
204
+ throw new PasskeyError('This passkey is already registered', 409);
205
+ }
206
+ if ((await credentialRepository().countForUser(userId)) >=
207
+ MAX_CREDENTIALS_PER_USER) {
208
+ throw new PasskeyError(`You can register at most ${MAX_CREDENTIALS_PER_USER} passkeys`, 409);
209
+ }
210
+ const transports = Array.isArray(submission.credential.response.transports)
211
+ ? submission.credential.response.transports
212
+ .filter((entry) => typeof entry === 'string')
213
+ .slice(0, 8)
214
+ : [];
215
+ const name = submission.name?.trim().slice(0, 64) || null;
216
+ const record = {
217
+ id: randomUUID(),
218
+ user_id: userId,
219
+ credential_lookup: lookup,
220
+ credential_data: encryptionService.encryptObject({
221
+ credentialId,
222
+ publicKey,
223
+ transports,
224
+ }),
225
+ name,
226
+ sign_count: parsed.signCount,
227
+ created_at: Date.now(),
228
+ last_used_at: null,
229
+ };
230
+ await credentialRepository().insert(record);
231
+ return toPublic(record);
232
+ };
233
+ export const loginOptions = async (requestHost) => {
234
+ const { rpId } = resolveRelyingParty(requestHost);
235
+ const { token, challenge } = await issueChallenge('webauthn-login');
236
+ return {
237
+ challengeToken: token,
238
+ publicKey: {
239
+ challenge,
240
+ rpId,
241
+ userVerification: 'required',
242
+ timeout: 120000,
243
+ },
244
+ };
245
+ };
246
+ /** Verify a passwordless sign-in assertion; returns the credential owner. */
247
+ export const verifyPasskeyLogin = async (submission, requestHost) => {
248
+ const { rpId } = resolveRelyingParty(requestHost);
249
+ const consumed = await consumeChallenge(submission.challengeToken, 'webauthn-login');
250
+ const clientDataJson = decodeBase64Url(submission.credential?.response?.clientDataJSON, 'clientDataJSON');
251
+ const clientData = parseClientDataJson(clientDataJson);
252
+ if (clientData.type !== 'webauthn.get') {
253
+ throw new PasskeyError('Unexpected passkey ceremony type', 401);
254
+ }
255
+ if (clientData.challenge !== consumed.challenge) {
256
+ throw new PasskeyError('Passkey challenge mismatch', 401);
257
+ }
258
+ assertAcceptableOrigin(clientData.origin, rpId);
259
+ const rawId = decodeBase64Url(submission.credential?.rawId, 'credential id');
260
+ const record = await credentialRepository().findByLookup(credentialLookup(rawId.toString('base64url')));
261
+ if (!record) {
262
+ throw new PasskeyError('This passkey is not registered here', 401);
263
+ }
264
+ let data;
265
+ try {
266
+ data = encryptionService.decryptObject(record.credential_data);
267
+ }
268
+ catch {
269
+ throw new PasskeyError('This passkey is not usable', 401);
270
+ }
271
+ const authData = decodeBase64Url(submission.credential?.response?.authenticatorData, 'authenticatorData');
272
+ let parsed;
273
+ try {
274
+ parsed = parseAuthenticatorData(authData);
275
+ }
276
+ catch (error) {
277
+ if (error instanceof WebAuthnError) {
278
+ throw new PasskeyError(`Passkey sign-in failed: ${error.message}`, 401);
279
+ }
280
+ throw error;
281
+ }
282
+ if (!parsed.rpIdHash.equals(sha256(rpId))) {
283
+ throw new PasskeyError('This passkey belongs to another site', 401);
284
+ }
285
+ if (!parsed.userPresent || !parsed.userVerified) {
286
+ throw new PasskeyError('Passkeys require user verification', 401);
287
+ }
288
+ const signature = decodeBase64Url(submission.credential?.response?.signature, 'signature');
289
+ if (!verifyAssertionSignature(data.publicKey, authData, clientDataJson, signature)) {
290
+ throw new PasskeyError('Passkey signature verification failed', 401);
291
+ }
292
+ // A nonzero counter that does not advance suggests a cloned authenticator.
293
+ if (parsed.signCount !== 0 &&
294
+ record.sign_count !== 0 &&
295
+ parsed.signCount <= record.sign_count) {
296
+ throw new PasskeyError('This passkey failed a clone check', 401);
297
+ }
298
+ await credentialRepository().updateSignCount(record.id, Math.max(parsed.signCount, record.sign_count), Date.now());
299
+ return { userId: record.user_id, passkeyId: record.id };
300
+ };
301
+ //# sourceMappingURL=webauthnService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webauthnService.js","sourceRoot":"","sources":["../../src/services/webauthnService.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export interface ConsumedWebSocketTicket {
9
9
  /** Auth session backing the ticket; used to close sockets on revocation. */
10
10
  sessionId?: string;
11
11
  }
12
- export type WebSocketTicketAudience = 'chat' | 'work-terminal';
12
+ export type WebSocketTicketAudience = 'chat' | 'work-terminal' | 'work-screen';
13
13
  export declare class WebSocketTicketRateLimitError extends Error {
14
14
  constructor();
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"websocketTicketService.d.ts","sourceRoot":"","sources":["../../src/services/websocketTicketService.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAkBrE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,eAAe,CAAC;AAE/D,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,cAGC;CACF;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB,YAAY,KAAK,CAAC,EAAE,OAAO,EAI1B;CACF;AAqCD;;;;;GAKG;AACH,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IANrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,YACmB,KAAK,SAA0B,EAC/B,GAAG,GAAE,MAAM,MAAiB,EAC5B,mBAAmB,CAAC,GAAE,MAAM,WAAW,aAAA,EACvC,kBAAkB,SAA2C,EAC5E;IAEE,KAAK,CACT,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,uBAAuB,EACjC,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC,CA8DhC;IAEK,OAAO,CACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,uBAAuB,EACjC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA+BzC;IAED,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,iBAAiB;CAa1B;AAED,eAAO,MAAM,sBAAsB,wBAIlC,CAAC"}
1
+ {"version":3,"file":"websocketTicketService.d.ts","sourceRoot":"","sources":["../../src/services/websocketTicketService.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAkBrE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;AAE/E,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,cAGC;CACF;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB,YAAY,KAAK,CAAC,EAAE,OAAO,EAI1B;CACF;AAuCD;;;;;GAKG;AACH,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IANrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,YACmB,KAAK,SAA0B,EAC/B,GAAG,GAAE,MAAM,MAAiB,EAC5B,mBAAmB,CAAC,GAAE,MAAM,WAAW,aAAA,EACvC,kBAAkB,SAA2C,EAC5E;IAEE,KAAK,CACT,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,uBAAuB,EACjC,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC,CA8DhC;IAEK,OAAO,CACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,uBAAuB,EACjC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA+BzC;IAED,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,iBAAiB;CAa1B;AAED,eAAO,MAAM,sBAAsB,wBAIlC,CAAC"}
@@ -48,7 +48,9 @@ const isTicketRecord = (value) => {
48
48
  const record = value;
49
49
  return (typeof record.userId === 'string' &&
50
50
  record.userId.length > 0 &&
51
- (record.audience === 'chat' || record.audience === 'work-terminal') &&
51
+ (record.audience === 'chat' ||
52
+ record.audience === 'work-terminal' ||
53
+ record.audience === 'work-screen') &&
52
54
  (record.resourceId === undefined ||
53
55
  typeof record.resourceId === 'string') &&
54
56
  (record.sessionId === undefined || typeof record.sessionId === 'string') &&
@@ -1 +1 @@
1
- {"version":3,"file":"websocketTicketService.js","sourceRoot":"","sources":["../../src/services/websocketTicketService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocketTicketService.js","sourceRoot":"","sources":["../../src/services/websocketTicketService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  export interface WorkAgentGuidanceContext {
2
2
  networkEnabled: boolean;
3
+ computerAvailable: boolean;
4
+ /** User-demonstrated Work Computer procedures loaded into this run. */
5
+ taughtSkills?: readonly {
6
+ name: string;
7
+ instructions: string;
8
+ }[];
3
9
  previewPort: number;
4
10
  roundBudget: number;
5
11
  commandTimeoutMs: number;
@@ -19,7 +25,15 @@ export declare const WORK_WRITE_FILE_RECOMMENDED_CHARS = 8000;
19
25
  */
20
26
  export declare const WORK_AGENT_SKILLS: readonly WorkAgentSkill[];
21
27
  export declare function workToolCallBudget(roundBudget: number): number;
28
+ /**
29
+ * The skills a specific run actually loads. Guidance for a capability the
30
+ * task cannot use (a computer without a GUI policy) would only invite the
31
+ * model to call tools that are not offered.
32
+ */
33
+ export declare function workAgentSkillsForContext(context: Pick<WorkAgentGuidanceContext, 'computerAvailable'>): readonly WorkAgentSkill[];
22
34
  export declare function buildWorkAgentSystemPrompt(context: WorkAgentGuidanceContext): string;
23
35
  export declare function buildWorkEmptyRoundNudgePrompt(): string;
36
+ export declare function buildWorkComputerStallPrompt(subgoal?: string): string;
37
+ export declare function buildWorkComputerAmbiguityPrompt(subgoal?: string): string;
24
38
  export declare function buildWorkBudgetExhaustionPrompt(): string;
25
39
  //# sourceMappingURL=workAgentGuidance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workAgentGuidance.d.ts","sourceRoot":"","sources":["../../src/services/workAgentGuidance.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAID,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAiD7C,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,wBAAwB,GAChC,MAAM,CA4BR;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAQxD"}
1
+ {"version":3,"file":"workAgentGuidance.d.ts","sourceRoot":"","sources":["../../src/services/workAgentGuidance.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,YAAY,CAAC,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAID,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAgE7C,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,GAC3D,SAAS,cAAc,EAAE,CAI3B;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,wBAAwB,GAChC,MAAM,CAoCR;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,wBAAgB,4BAA4B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAQxD"}
@@ -63,6 +63,21 @@ export const WORK_AGENT_SKILLS = [
63
63
  'start_preview is the only supported way to keep a process alive. Background processes started by run_command are cleaned up when that command finishes.',
64
64
  ],
65
65
  },
66
+ {
67
+ id: 'computer',
68
+ title: 'Computer control',
69
+ instructions: [
70
+ 'This task has a virtual computer with a Chromium browser. computer_observe returns the current screenshot with the cursor position, active window, page URL, and focused element; computer_act performs batched mouse and keyboard actions and returns the screenshot after they settle.',
71
+ 'Coordinates are absolute pixels on the returned screenshot. Observe before the first action, act on what the screenshot actually shows, and re-observe instead of assuming an action worked.',
72
+ 'Batch related actions into one computer_act call: move, click, double_click, right_click, type, key, scroll, scroll_until, wait. The screen settles adaptively after a batch, so results show the finished state. A batch stops early when the window, title, or window count changes mid-batch — that is protection, not an error: the remaining coordinates targeted the previous screen, so observe and continue from what you see.',
73
+ 'Before typing into a specific field, set "focus" on the type action (text the focused element, URL, or window title must contain). If the result says keyboard focus is in the browser UI rather than the page, click the intended field first — typed text would go to the omnibox.',
74
+ 'Declare "expect" on consequential batches (titleContains, urlContains, or regionChanged) so the runtime verifies the outcome, and name each batch\'s "subgoal" so recovery prompts and the run record know what you were doing. A "pending" verdict means not observed before the deadline — re-observe before treating it as failure; asynchronous pages often finish late.',
75
+ 'Read the receipts in each result: a click that reports "NO visible change nearby" probably missed or hit inert space, and the since-last-observation diff tells you whether anything happened at all. To reach something below the fold, use scroll_until with the target text instead of guessing scroll amounts — its receipt says whether the target became visible.',
76
+ 'run_command can stop the sandbox when it finishes unless the screen is being watched; the computer session then restarts on the next computer tool call and the browser profile persists, but open pages are lost — finish a browser workflow before running commands.',
77
+ 'Never enter credentials, complete a CAPTCHA or 2FA challenge, or work around an authentication wall. Call request_takeover with a concrete reason instead — the user drives the real screen, the password never passes through you.',
78
+ 'While the user holds control your computer tools are blocked. When request_takeover reports control was handed back, computer_observe first; if no one takes over in time, report the exact blocker in your response.',
79
+ ],
80
+ },
66
81
  {
67
82
  id: 'budget-discipline',
68
83
  title: 'Budget discipline',
@@ -76,13 +91,28 @@ export const WORK_AGENT_SKILLS = [
76
91
  export function workToolCallBudget(roundBudget) {
77
92
  return Math.max(128, positiveInteger(roundBudget, 'roundBudget') * 8);
78
93
  }
94
+ /**
95
+ * The skills a specific run actually loads. Guidance for a capability the
96
+ * task cannot use (a computer without a GUI policy) would only invite the
97
+ * model to call tools that are not offered.
98
+ */
99
+ export function workAgentSkillsForContext(context) {
100
+ return WORK_AGENT_SKILLS.filter(skill => skill.id !== 'computer' || context.computerAvailable);
101
+ }
79
102
  export function buildWorkAgentSystemPrompt(context) {
80
103
  validateGuidanceContext(context);
81
104
  const toolBudget = workToolCallBudget(context.roundBudget);
82
105
  const networkGuidance = context.networkEnabled
83
106
  ? 'Network access is enabled. Download dependencies only when the task needs them and respect the project lockfile.'
84
107
  : 'Network access is disabled. Downloads and remote services will fail; do not repeatedly retry them.';
85
- const skills = WORK_AGENT_SKILLS.map(skill => `## ${skill.title}\n${skill.instructions.map(item => `- ${item}`).join('\n')}`).join('\n\n');
108
+ const skills = workAgentSkillsForContext(context)
109
+ .map(skill => `## ${skill.title}\n${skill.instructions.map(item => `- ${item}`).join('\n')}`)
110
+ .join('\n\n');
111
+ const taughtSkills = context.computerAvailable && context.taughtSkills?.length
112
+ ? `\n\n## Taught procedures\nThe user demonstrated these procedures on this task's computer. When the request matches one, follow its playbook.\n\n${context.taughtSkills
113
+ .map(skill => `### ${skill.name}\n${skill.instructions}`)
114
+ .join('\n\n')}`
115
+ : '';
86
116
  return `You are Libre WebUI Work, an autonomous implementation agent.
87
117
  Deliver a working result inside this task's isolated workspace, not a plan-only answer.
88
118
 
@@ -97,13 +127,19 @@ Deliver a working result inside this task's isolated workspace, not a plan-only
97
127
  - This run has a provider-agnostic budget of ${formatInteger(context.roundBudget)} model rounds and ${formatInteger(toolBudget)} tool calls.
98
128
  - A browser preview must listen on 0.0.0.0:${context.previewPort}.
99
129
 
100
- ${skills}
130
+ ${skills}${taughtSkills}
101
131
 
102
132
  Finish with a concise summary of what changed and the checks that actually ran.`;
103
133
  }
104
134
  export function buildWorkEmptyRoundNudgePrompt() {
105
135
  return `Your last turn contained no reply and no tool calls, so nothing happened. Continue the task now: either call the tools you need, or reply with your findings and the next step.`;
106
136
  }
137
+ export function buildWorkComputerStallPrompt(subgoal) {
138
+ return `Your last three computer actions were identical and the screen did not change at all (the screenshot hash is unchanged) — the current approach is not working.${subgoal ? ` Your declared subgoal was: "${subgoal}".` : ''} Do not repeat the same action again. Re-observe and reconsider: check the focused element, page URL, and window; try different coordinates or scroll the target into view; take an alternative route to the goal; or call request_takeover if a human needs to intervene. If no alternative exists, stop and state the exact blocker.`;
139
+ }
140
+ export function buildWorkComputerAmbiguityPrompt(subgoal) {
141
+ return `Several consecutive computer batches ended with their declared expectation still pending — you are acting on outcomes that were never verified, and that uncertainty compounds.${subgoal ? ` Your declared subgoal was: "${subgoal}".` : ''} Stop and re-ground before continuing: computer_observe the current state, verify a different way (check the URL, window title, or a region that must have changed), or reconsider whether the earlier steps actually succeeded. If the state cannot be verified, say exactly what is uncertain instead of continuing optimistically.`;
142
+ }
107
143
  export function buildWorkBudgetExhaustionPrompt() {
108
144
  return `The autonomous execution budget is exhausted. Do not call any more tools.
109
145
  Return a concise final response that states:
@@ -1 +1 @@
1
- {"version":3,"file":"workAgentGuidance.js","sourceRoot":"","sources":["../../src/services/workAgentGuidance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workAgentGuidance.js","sourceRoot":"","sources":["../../src/services/workAgentGuidance.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,11 @@ export declare const WORK_PROVIDER_STATE_METADATA_KEY = "workProviderState";
4
4
  export declare const WORK_EMPTY_MODEL_RESPONSE_METADATA_KEY = "emptyModelResponse";
5
5
  export declare const WORK_TOOL_SCHEMAS: Record<string, unknown>[];
6
6
  export declare const WORK_WEB_SEARCH_TOOL_SCHEMA: Record<string, unknown>;
7
+ export declare const WORK_COMPUTER_TOOL_SCHEMAS: Record<string, unknown>[];
7
8
  export declare function workToolSchemasForTask(task: {
8
9
  networkEnabled: boolean;
9
10
  userId: string;
11
+ policyId?: string | null;
10
12
  }): Promise<Record<string, unknown>[]>;
11
13
  export declare class WorkAgentService {
12
14
  private controllers;
@@ -52,6 +54,13 @@ export declare class WorkAgentService {
52
54
  private assertStableProviderRouting;
53
55
  private contextMessages;
54
56
  private executeTool;
57
+ private assertComputerToolsAvailable;
58
+ /**
59
+ * While a human holds the control lease, the agent's eyes and hands are
60
+ * both off: acting would fight the user's input, and observing could
61
+ * capture usernames or one-time codes typed during a sign-in.
62
+ */
63
+ private assertComputerNotHumanControlled;
55
64
  private throwIfCancelled;
56
65
  }
57
66
  export declare class WorkAgentHttpError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"workAgentService.d.ts","sourceRoot":"","sources":["../../src/services/workAgentService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workAgentService.d.ts","sourceRoot":"","sources":["../../src/services/workAgentService.ts"],"names":[],"mappings":"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"}