libre-webui 0.21.3 → 0.22.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 (945) hide show
  1. package/README.md +308 -328
  2. package/backend/dist/cli/migrateSqliteToPostgres.d.ts +2 -0
  3. package/backend/dist/cli/migrateSqliteToPostgres.d.ts.map +1 -0
  4. package/backend/dist/cli/migrateSqliteToPostgres.js +113 -0
  5. package/backend/dist/cli/migrateSqliteToPostgres.js.map +1 -0
  6. package/backend/dist/cli/recoveryBackup.d.ts +3 -0
  7. package/backend/dist/cli/recoveryBackup.d.ts.map +1 -0
  8. package/backend/dist/cli/recoveryBackup.js +251 -0
  9. package/backend/dist/cli/recoveryBackup.js.map +1 -0
  10. package/backend/dist/cli/recoveryInventory.d.ts +2 -0
  11. package/backend/dist/cli/recoveryInventory.d.ts.map +1 -0
  12. package/backend/dist/cli/recoveryInventory.js +109 -0
  13. package/backend/dist/cli/recoveryInventory.js.map +1 -0
  14. package/backend/dist/db.d.ts +27 -0
  15. package/backend/dist/db.d.ts.map +1 -1
  16. package/backend/dist/db.js +333 -16
  17. package/backend/dist/db.js.map +1 -1
  18. package/backend/dist/env.d.ts.map +1 -1
  19. package/backend/dist/env.js +12 -2
  20. package/backend/dist/env.js.map +1 -1
  21. package/backend/dist/index.d.ts.map +1 -1
  22. package/backend/dist/index.js +235 -47
  23. package/backend/dist/index.js.map +1 -1
  24. package/backend/dist/main.d.ts +2 -0
  25. package/backend/dist/main.d.ts.map +1 -0
  26. package/backend/dist/main.js +137 -0
  27. package/backend/dist/main.js.map +1 -0
  28. package/backend/dist/middleware/auth.d.ts.map +1 -1
  29. package/backend/dist/middleware/auth.js +7 -3
  30. package/backend/dist/middleware/auth.js.map +1 -1
  31. package/backend/dist/middleware/chatCancellationAdmission.d.ts +7 -0
  32. package/backend/dist/middleware/chatCancellationAdmission.d.ts.map +1 -0
  33. package/backend/dist/middleware/chatCancellationAdmission.js +17 -0
  34. package/backend/dist/middleware/chatCancellationAdmission.js.map +1 -0
  35. package/backend/dist/middleware/coordinatedRateLimit.d.ts +18 -0
  36. package/backend/dist/middleware/coordinatedRateLimit.d.ts.map +1 -0
  37. package/backend/dist/middleware/coordinatedRateLimit.js +52 -0
  38. package/backend/dist/middleware/coordinatedRateLimit.js.map +1 -0
  39. package/backend/dist/middleware/sharedRateLimit.d.ts +26 -0
  40. package/backend/dist/middleware/sharedRateLimit.d.ts.map +1 -0
  41. package/backend/dist/middleware/sharedRateLimit.js +99 -0
  42. package/backend/dist/middleware/sharedRateLimit.js.map +1 -0
  43. package/backend/dist/models/personaModel.d.ts +1 -26
  44. package/backend/dist/models/personaModel.d.ts.map +1 -1
  45. package/backend/dist/models/personaModel.js +54 -247
  46. package/backend/dist/models/personaModel.js.map +1 -1
  47. package/backend/dist/models/userModel.d.ts +23 -66
  48. package/backend/dist/models/userModel.d.ts.map +1 -1
  49. package/backend/dist/models/userModel.js +110 -187
  50. package/backend/dist/models/userModel.js.map +1 -1
  51. package/backend/dist/persistence/chatGenerationTypes.d.ts +24 -0
  52. package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -0
  53. package/backend/dist/persistence/chatGenerationTypes.js +7 -0
  54. package/backend/dist/persistence/chatGenerationTypes.js.map +1 -0
  55. package/backend/dist/persistence/extensionTypes.d.ts +185 -0
  56. package/backend/dist/persistence/extensionTypes.d.ts.map +1 -0
  57. package/backend/dist/persistence/extensionTypes.js +13 -0
  58. package/backend/dist/persistence/extensionTypes.js.map +1 -0
  59. package/backend/dist/persistence/identityDeletionTypes.d.ts +16 -0
  60. package/backend/dist/persistence/identityDeletionTypes.d.ts.map +1 -0
  61. package/backend/dist/persistence/identityDeletionTypes.js +7 -0
  62. package/backend/dist/persistence/identityDeletionTypes.js.map +1 -0
  63. package/backend/dist/persistence/index.d.ts +48 -0
  64. package/backend/dist/persistence/index.d.ts.map +1 -0
  65. package/backend/dist/persistence/index.js +159 -0
  66. package/backend/dist/persistence/index.js.map +1 -0
  67. package/backend/dist/persistence/postgresConfig.d.ts +32 -0
  68. package/backend/dist/persistence/postgresConfig.d.ts.map +1 -0
  69. package/backend/dist/persistence/postgresConfig.js +91 -0
  70. package/backend/dist/persistence/postgresConfig.js.map +1 -0
  71. package/backend/dist/persistence/postgresCoreMigration.d.ts +8 -0
  72. package/backend/dist/persistence/postgresCoreMigration.d.ts.map +1 -0
  73. package/backend/dist/persistence/postgresCoreMigration.js +179 -0
  74. package/backend/dist/persistence/postgresCoreMigration.js.map +1 -0
  75. package/backend/dist/persistence/postgresDatabase.d.ts +40 -0
  76. package/backend/dist/persistence/postgresDatabase.d.ts.map +1 -0
  77. package/backend/dist/persistence/postgresDatabase.js +148 -0
  78. package/backend/dist/persistence/postgresDatabase.js.map +1 -0
  79. package/backend/dist/persistence/postgresExtensionMigration.d.ts +4 -0
  80. package/backend/dist/persistence/postgresExtensionMigration.d.ts.map +1 -0
  81. package/backend/dist/persistence/postgresExtensionMigration.js +143 -0
  82. package/backend/dist/persistence/postgresExtensionMigration.js.map +1 -0
  83. package/backend/dist/persistence/postgresExtensionRepositories.d.ts +6 -0
  84. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -0
  85. package/backend/dist/persistence/postgresExtensionRepositories.js +550 -0
  86. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -0
  87. package/backend/dist/persistence/postgresImportState.d.ts +9 -0
  88. package/backend/dist/persistence/postgresImportState.d.ts.map +1 -0
  89. package/backend/dist/persistence/postgresImportState.js +64 -0
  90. package/backend/dist/persistence/postgresImportState.js.map +1 -0
  91. package/backend/dist/persistence/postgresMigrationRegistry.d.ts +4 -0
  92. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -0
  93. package/backend/dist/persistence/postgresMigrationRegistry.js +33 -0
  94. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -0
  95. package/backend/dist/persistence/postgresMigrationTypes.d.ts +24 -0
  96. package/backend/dist/persistence/postgresMigrationTypes.d.ts.map +1 -0
  97. package/backend/dist/persistence/postgresMigrationTypes.js +7 -0
  98. package/backend/dist/persistence/postgresMigrationTypes.js.map +1 -0
  99. package/backend/dist/persistence/postgresMigrations.d.ts +15 -0
  100. package/backend/dist/persistence/postgresMigrations.d.ts.map +1 -0
  101. package/backend/dist/persistence/postgresMigrations.js +333 -0
  102. package/backend/dist/persistence/postgresMigrations.js.map +1 -0
  103. package/backend/dist/persistence/postgresPersistence.d.ts +17 -0
  104. package/backend/dist/persistence/postgresPersistence.d.ts.map +1 -0
  105. package/backend/dist/persistence/postgresPersistence.js +332 -0
  106. package/backend/dist/persistence/postgresPersistence.js.map +1 -0
  107. package/backend/dist/persistence/postgresPluginDefinitionMigration.d.ts +4 -0
  108. package/backend/dist/persistence/postgresPluginDefinitionMigration.d.ts.map +1 -0
  109. package/backend/dist/persistence/postgresPluginDefinitionMigration.js +40 -0
  110. package/backend/dist/persistence/postgresPluginDefinitionMigration.js.map +1 -0
  111. package/backend/dist/persistence/postgresResourceRepositories.d.ts +7 -0
  112. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -0
  113. package/backend/dist/persistence/postgresResourceRepositories.js +776 -0
  114. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -0
  115. package/backend/dist/persistence/postgresSchemaInspector.d.ts +14 -0
  116. package/backend/dist/persistence/postgresSchemaInspector.d.ts.map +1 -0
  117. package/backend/dist/persistence/postgresSchemaInspector.js +817 -0
  118. package/backend/dist/persistence/postgresSchemaInspector.js.map +1 -0
  119. package/backend/dist/persistence/resourceTypes.d.ts +207 -0
  120. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -0
  121. package/backend/dist/persistence/resourceTypes.js +38 -0
  122. package/backend/dist/persistence/resourceTypes.js.map +1 -0
  123. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts +4 -0
  124. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -0
  125. package/backend/dist/persistence/sqliteExtensionRepositories.js +494 -0
  126. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -0
  127. package/backend/dist/persistence/sqliteMigrations.d.ts +93 -0
  128. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -0
  129. package/backend/dist/persistence/sqliteMigrations.js +2232 -0
  130. package/backend/dist/persistence/sqliteMigrations.js.map +1 -0
  131. package/backend/dist/persistence/sqlitePersistence.d.ts +23 -0
  132. package/backend/dist/persistence/sqlitePersistence.d.ts.map +1 -0
  133. package/backend/dist/persistence/sqlitePersistence.js +596 -0
  134. package/backend/dist/persistence/sqlitePersistence.js.map +1 -0
  135. package/backend/dist/persistence/sqliteResourceRepositories.d.ts +4 -0
  136. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -0
  137. package/backend/dist/persistence/sqliteResourceRepositories.js +663 -0
  138. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -0
  139. package/backend/dist/persistence/sqliteSyncExecutor.d.ts +5 -0
  140. package/backend/dist/persistence/sqliteSyncExecutor.d.ts.map +1 -0
  141. package/backend/dist/persistence/sqliteSyncExecutor.js +19 -0
  142. package/backend/dist/persistence/sqliteSyncExecutor.js.map +1 -0
  143. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts +80 -0
  144. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -0
  145. package/backend/dist/persistence/sqliteToPostgresMigration.js +1543 -0
  146. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -0
  147. package/backend/dist/persistence/types.d.ts +131 -0
  148. package/backend/dist/persistence/types.d.ts.map +1 -0
  149. package/backend/dist/persistence/types.js +18 -0
  150. package/backend/dist/persistence/types.js.map +1 -0
  151. package/backend/dist/persistence/voiceProfileNameLookup.d.ts +9 -0
  152. package/backend/dist/persistence/voiceProfileNameLookup.d.ts.map +1 -0
  153. package/backend/dist/persistence/voiceProfileNameLookup.js +15 -0
  154. package/backend/dist/persistence/voiceProfileNameLookup.js.map +1 -0
  155. package/backend/dist/platform/coordination/index.d.ts +7 -0
  156. package/backend/dist/platform/coordination/index.d.ts.map +1 -0
  157. package/backend/dist/platform/coordination/index.js +24 -0
  158. package/backend/dist/platform/coordination/index.js.map +1 -0
  159. package/backend/dist/platform/coordination/localCoordinator.d.ts +49 -0
  160. package/backend/dist/platform/coordination/localCoordinator.d.ts.map +1 -0
  161. package/backend/dist/platform/coordination/localCoordinator.js +380 -0
  162. package/backend/dist/platform/coordination/localCoordinator.js.map +1 -0
  163. package/backend/dist/platform/coordination/redisCoordinator.d.ts +83 -0
  164. package/backend/dist/platform/coordination/redisCoordinator.d.ts.map +1 -0
  165. package/backend/dist/platform/coordination/redisCoordinator.js +726 -0
  166. package/backend/dist/platform/coordination/redisCoordinator.js.map +1 -0
  167. package/backend/dist/platform/coordination/service.d.ts +11 -0
  168. package/backend/dist/platform/coordination/service.d.ts.map +1 -0
  169. package/backend/dist/platform/coordination/service.js +55 -0
  170. package/backend/dist/platform/coordination/service.js.map +1 -0
  171. package/backend/dist/platform/coordination/sharedAdmission.d.ts +53 -0
  172. package/backend/dist/platform/coordination/sharedAdmission.d.ts.map +1 -0
  173. package/backend/dist/platform/coordination/sharedAdmission.js +194 -0
  174. package/backend/dist/platform/coordination/sharedAdmission.js.map +1 -0
  175. package/backend/dist/platform/coordination/types.d.ts +76 -0
  176. package/backend/dist/platform/coordination/types.d.ts.map +1 -0
  177. package/backend/dist/platform/coordination/types.js +32 -0
  178. package/backend/dist/platform/coordination/types.js.map +1 -0
  179. package/backend/dist/platform/events/durableEventGateway.d.ts +54 -0
  180. package/backend/dist/platform/events/durableEventGateway.d.ts.map +1 -0
  181. package/backend/dist/platform/events/durableEventGateway.js +262 -0
  182. package/backend/dist/platform/events/durableEventGateway.js.map +1 -0
  183. package/backend/dist/platform/events/index.d.ts +3 -0
  184. package/backend/dist/platform/events/index.d.ts.map +1 -0
  185. package/backend/dist/platform/events/index.js +8 -0
  186. package/backend/dist/platform/events/index.js.map +1 -0
  187. package/backend/dist/platform/events/service.d.ts +8 -0
  188. package/backend/dist/platform/events/service.d.ts.map +1 -0
  189. package/backend/dist/platform/events/service.js +25 -0
  190. package/backend/dist/platform/events/service.js.map +1 -0
  191. package/backend/dist/platform/jobs/chatGenerationEnqueuer.d.ts +3 -0
  192. package/backend/dist/platform/jobs/chatGenerationEnqueuer.d.ts.map +1 -0
  193. package/backend/dist/platform/jobs/chatGenerationEnqueuer.js +55 -0
  194. package/backend/dist/platform/jobs/chatGenerationEnqueuer.js.map +1 -0
  195. package/backend/dist/platform/jobs/documentIngestionEnqueuer.d.ts +3 -0
  196. package/backend/dist/platform/jobs/documentIngestionEnqueuer.d.ts.map +1 -0
  197. package/backend/dist/platform/jobs/documentIngestionEnqueuer.js +38 -0
  198. package/backend/dist/platform/jobs/documentIngestionEnqueuer.js.map +1 -0
  199. package/backend/dist/platform/jobs/domainJobContracts.d.ts +30 -0
  200. package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -0
  201. package/backend/dist/platform/jobs/domainJobContracts.js +53 -0
  202. package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -0
  203. package/backend/dist/platform/jobs/domainJobHandlers.d.ts +11 -0
  204. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -0
  205. package/backend/dist/platform/jobs/domainJobHandlers.js +612 -0
  206. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -0
  207. package/backend/dist/platform/jobs/durableEventIdentity.d.ts +8 -0
  208. package/backend/dist/platform/jobs/durableEventIdentity.d.ts.map +1 -0
  209. package/backend/dist/platform/jobs/durableEventIdentity.js +33 -0
  210. package/backend/dist/platform/jobs/durableEventIdentity.js.map +1 -0
  211. package/backend/dist/platform/jobs/durableJobRuntime.d.ts +57 -0
  212. package/backend/dist/platform/jobs/durableJobRuntime.d.ts.map +1 -0
  213. package/backend/dist/platform/jobs/durableJobRuntime.js +131 -0
  214. package/backend/dist/platform/jobs/durableJobRuntime.js.map +1 -0
  215. package/backend/dist/platform/jobs/durableJobRuntimeBackend.d.ts +28 -0
  216. package/backend/dist/platform/jobs/durableJobRuntimeBackend.d.ts.map +1 -0
  217. package/backend/dist/platform/jobs/durableJobRuntimeBackend.js +62 -0
  218. package/backend/dist/platform/jobs/durableJobRuntimeBackend.js.map +1 -0
  219. package/backend/dist/platform/jobs/durableJobService.d.ts +85 -0
  220. package/backend/dist/platform/jobs/durableJobService.d.ts.map +1 -0
  221. package/backend/dist/platform/jobs/durableJobService.js +726 -0
  222. package/backend/dist/platform/jobs/durableJobService.js.map +1 -0
  223. package/backend/dist/platform/jobs/durableJobTypes.d.ts +195 -0
  224. package/backend/dist/platform/jobs/durableJobTypes.d.ts.map +1 -0
  225. package/backend/dist/platform/jobs/durableJobTypes.js +72 -0
  226. package/backend/dist/platform/jobs/durableJobTypes.js.map +1 -0
  227. package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts +87 -0
  228. package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -0
  229. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +429 -0
  230. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -0
  231. package/backend/dist/platform/jobs/identityDeletionEnqueuer.d.ts +3 -0
  232. package/backend/dist/platform/jobs/identityDeletionEnqueuer.d.ts.map +1 -0
  233. package/backend/dist/platform/jobs/identityDeletionEnqueuer.js +36 -0
  234. package/backend/dist/platform/jobs/identityDeletionEnqueuer.js.map +1 -0
  235. package/backend/dist/platform/jobs/index.d.ts +18 -0
  236. package/backend/dist/platform/jobs/index.d.ts.map +1 -0
  237. package/backend/dist/platform/jobs/index.js +34 -0
  238. package/backend/dist/platform/jobs/index.js.map +1 -0
  239. package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.d.ts +4 -0
  240. package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.d.ts.map +1 -0
  241. package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.js +25 -0
  242. package/backend/dist/platform/jobs/postgresDurableEventIdempotencyMigration.js.map +1 -0
  243. package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.d.ts +4 -0
  244. package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.d.ts.map +1 -0
  245. package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.js +23 -0
  246. package/backend/dist/platform/jobs/postgresDurableEventReplayIndexMigration.js.map +1 -0
  247. package/backend/dist/platform/jobs/postgresDurableJobMigration.d.ts +11 -0
  248. package/backend/dist/platform/jobs/postgresDurableJobMigration.d.ts.map +1 -0
  249. package/backend/dist/platform/jobs/postgresDurableJobMigration.js +106 -0
  250. package/backend/dist/platform/jobs/postgresDurableJobMigration.js.map +1 -0
  251. package/backend/dist/platform/jobs/postgresDurableJobRepository.d.ts +88 -0
  252. package/backend/dist/platform/jobs/postgresDurableJobRepository.d.ts.map +1 -0
  253. package/backend/dist/platform/jobs/postgresDurableJobRepository.js +1185 -0
  254. package/backend/dist/platform/jobs/postgresDurableJobRepository.js.map +1 -0
  255. package/backend/dist/platform/jobs/postgresDurableJobService.d.ts +86 -0
  256. package/backend/dist/platform/jobs/postgresDurableJobService.d.ts.map +1 -0
  257. package/backend/dist/platform/jobs/postgresDurableJobService.js +696 -0
  258. package/backend/dist/platform/jobs/postgresDurableJobService.js.map +1 -0
  259. package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts +53 -0
  260. package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -0
  261. package/backend/dist/platform/jobs/postgresDurableJobWorker.js +393 -0
  262. package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -0
  263. package/backend/dist/platform/jobs/resourceDeletionEnqueuer.d.ts +3 -0
  264. package/backend/dist/platform/jobs/resourceDeletionEnqueuer.d.ts.map +1 -0
  265. package/backend/dist/platform/jobs/resourceDeletionEnqueuer.js +43 -0
  266. package/backend/dist/platform/jobs/resourceDeletionEnqueuer.js.map +1 -0
  267. package/backend/dist/platform/jobs/sqliteDurableJobRepository.d.ts +166 -0
  268. package/backend/dist/platform/jobs/sqliteDurableJobRepository.d.ts.map +1 -0
  269. package/backend/dist/platform/jobs/sqliteDurableJobRepository.js +1008 -0
  270. package/backend/dist/platform/jobs/sqliteDurableJobRepository.js.map +1 -0
  271. package/backend/dist/platform/jobs/videoGenerationEnqueuer.d.ts +4 -0
  272. package/backend/dist/platform/jobs/videoGenerationEnqueuer.d.ts.map +1 -0
  273. package/backend/dist/platform/jobs/videoGenerationEnqueuer.js +46 -0
  274. package/backend/dist/platform/jobs/videoGenerationEnqueuer.js.map +1 -0
  275. package/backend/dist/platform/jobs/workExecutionEnqueuer.d.ts +3 -0
  276. package/backend/dist/platform/jobs/workExecutionEnqueuer.d.ts.map +1 -0
  277. package/backend/dist/platform/jobs/workExecutionEnqueuer.js +38 -0
  278. package/backend/dist/platform/jobs/workExecutionEnqueuer.js.map +1 -0
  279. package/backend/dist/platform/ollamaRuntimeConfig.d.ts +40 -0
  280. package/backend/dist/platform/ollamaRuntimeConfig.d.ts.map +1 -0
  281. package/backend/dist/platform/ollamaRuntimeConfig.js +72 -0
  282. package/backend/dist/platform/ollamaRuntimeConfig.js.map +1 -0
  283. package/backend/dist/platform/recovery/backupArchive.d.ts +120 -0
  284. package/backend/dist/platform/recovery/backupArchive.d.ts.map +1 -0
  285. package/backend/dist/platform/recovery/backupArchive.js +842 -0
  286. package/backend/dist/platform/recovery/backupArchive.js.map +1 -0
  287. package/backend/dist/platform/recovery/index.d.ts +3 -0
  288. package/backend/dist/platform/recovery/index.d.ts.map +1 -0
  289. package/backend/dist/platform/recovery/index.js +8 -0
  290. package/backend/dist/platform/recovery/index.js.map +1 -0
  291. package/backend/dist/platform/recovery/teamBackupArchive.d.ts +98 -0
  292. package/backend/dist/platform/recovery/teamBackupArchive.d.ts.map +1 -0
  293. package/backend/dist/platform/recovery/teamBackupArchive.js +1203 -0
  294. package/backend/dist/platform/recovery/teamBackupArchive.js.map +1 -0
  295. package/backend/dist/platform/runtimeConfig.d.ts +70 -0
  296. package/backend/dist/platform/runtimeConfig.d.ts.map +1 -0
  297. package/backend/dist/platform/runtimeConfig.js +205 -0
  298. package/backend/dist/platform/runtimeConfig.js.map +1 -0
  299. package/backend/dist/platform/storage/aesGcmKeyring.d.ts +26 -0
  300. package/backend/dist/platform/storage/aesGcmKeyring.d.ts.map +1 -0
  301. package/backend/dist/platform/storage/aesGcmKeyring.js +135 -0
  302. package/backend/dist/platform/storage/aesGcmKeyring.js.map +1 -0
  303. package/backend/dist/platform/storage/blobReferenceRepository.d.ts +36 -0
  304. package/backend/dist/platform/storage/blobReferenceRepository.d.ts.map +1 -0
  305. package/backend/dist/platform/storage/blobReferenceRepository.js +117 -0
  306. package/backend/dist/platform/storage/blobReferenceRepository.js.map +1 -0
  307. package/backend/dist/platform/storage/blobStore.d.ts +111 -0
  308. package/backend/dist/platform/storage/blobStore.d.ts.map +1 -0
  309. package/backend/dist/platform/storage/blobStore.js +46 -0
  310. package/backend/dist/platform/storage/blobStore.js.map +1 -0
  311. package/backend/dist/platform/storage/documentVectorIndex.d.ts +44 -0
  312. package/backend/dist/platform/storage/documentVectorIndex.d.ts.map +1 -0
  313. package/backend/dist/platform/storage/documentVectorIndex.js +110 -0
  314. package/backend/dist/platform/storage/documentVectorIndex.js.map +1 -0
  315. package/backend/dist/platform/storage/durableBlobQuotaPolicy.d.ts +82 -0
  316. package/backend/dist/platform/storage/durableBlobQuotaPolicy.d.ts.map +1 -0
  317. package/backend/dist/platform/storage/durableBlobQuotaPolicy.js +583 -0
  318. package/backend/dist/platform/storage/durableBlobQuotaPolicy.js.map +1 -0
  319. package/backend/dist/platform/storage/index.d.ts +19 -0
  320. package/backend/dist/platform/storage/index.d.ts.map +1 -0
  321. package/backend/dist/platform/storage/index.js +35 -0
  322. package/backend/dist/platform/storage/index.js.map +1 -0
  323. package/backend/dist/platform/storage/localEncryptedBlobStore.d.ts +120 -0
  324. package/backend/dist/platform/storage/localEncryptedBlobStore.d.ts.map +1 -0
  325. package/backend/dist/platform/storage/localEncryptedBlobStore.js +1205 -0
  326. package/backend/dist/platform/storage/localEncryptedBlobStore.js.map +1 -0
  327. package/backend/dist/platform/storage/personaMemoryIndexing.d.ts +12 -0
  328. package/backend/dist/platform/storage/personaMemoryIndexing.d.ts.map +1 -0
  329. package/backend/dist/platform/storage/personaMemoryIndexing.js +25 -0
  330. package/backend/dist/platform/storage/personaMemoryIndexing.js.map +1 -0
  331. package/backend/dist/platform/storage/pgVectorStore.d.ts +37 -0
  332. package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -0
  333. package/backend/dist/platform/storage/pgVectorStore.js +493 -0
  334. package/backend/dist/platform/storage/pgVectorStore.js.map +1 -0
  335. package/backend/dist/platform/storage/platformDomainRepositories.d.ts +244 -0
  336. package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -0
  337. package/backend/dist/platform/storage/platformDomainRepositories.js +7 -0
  338. package/backend/dist/platform/storage/platformDomainRepositories.js.map +1 -0
  339. package/backend/dist/platform/storage/platformStorageRuntime.d.ts +35 -0
  340. package/backend/dist/platform/storage/platformStorageRuntime.d.ts.map +1 -0
  341. package/backend/dist/platform/storage/platformStorageRuntime.js +299 -0
  342. package/backend/dist/platform/storage/platformStorageRuntime.js.map +1 -0
  343. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts +4 -0
  344. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -0
  345. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +1017 -0
  346. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -0
  347. package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.d.ts +4 -0
  348. package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.d.ts.map +1 -0
  349. package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.js +40 -0
  350. package/backend/dist/platform/storage/postgresResourceDeletionLifecycleMigration.js.map +1 -0
  351. package/backend/dist/platform/storage/resourceContentCleanup.d.ts +29 -0
  352. package/backend/dist/platform/storage/resourceContentCleanup.d.ts.map +1 -0
  353. package/backend/dist/platform/storage/resourceContentCleanup.js +100 -0
  354. package/backend/dist/platform/storage/resourceContentCleanup.js.map +1 -0
  355. package/backend/dist/platform/storage/resourceDeletionLifecycle.d.ts +14 -0
  356. package/backend/dist/platform/storage/resourceDeletionLifecycle.d.ts.map +1 -0
  357. package/backend/dist/platform/storage/resourceDeletionLifecycle.js +31 -0
  358. package/backend/dist/platform/storage/resourceDeletionLifecycle.js.map +1 -0
  359. package/backend/dist/platform/storage/s3EncryptedBlobStore.d.ts +140 -0
  360. package/backend/dist/platform/storage/s3EncryptedBlobStore.d.ts.map +1 -0
  361. package/backend/dist/platform/storage/s3EncryptedBlobStore.js +1309 -0
  362. package/backend/dist/platform/storage/s3EncryptedBlobStore.js.map +1 -0
  363. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +71 -0
  364. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -0
  365. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +766 -0
  366. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -0
  367. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts +4 -0
  368. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -0
  369. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +1037 -0
  370. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -0
  371. package/backend/dist/platform/storage/sqliteToTeamStorageMigration.d.ts +25 -0
  372. package/backend/dist/platform/storage/sqliteToTeamStorageMigration.d.ts.map +1 -0
  373. package/backend/dist/platform/storage/sqliteToTeamStorageMigration.js +1292 -0
  374. package/backend/dist/platform/storage/sqliteToTeamStorageMigration.js.map +1 -0
  375. package/backend/dist/platform/storage/storageFactory.d.ts +81 -0
  376. package/backend/dist/platform/storage/storageFactory.d.ts.map +1 -0
  377. package/backend/dist/platform/storage/storageFactory.js +518 -0
  378. package/backend/dist/platform/storage/storageFactory.js.map +1 -0
  379. package/backend/dist/platform/storage/storageSchemaContracts.d.ts +22 -0
  380. package/backend/dist/platform/storage/storageSchemaContracts.d.ts.map +1 -0
  381. package/backend/dist/platform/storage/storageSchemaContracts.js +299 -0
  382. package/backend/dist/platform/storage/storageSchemaContracts.js.map +1 -0
  383. package/backend/dist/platform/storage/vectorStore.d.ts +117 -0
  384. package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -0
  385. package/backend/dist/platform/storage/vectorStore.js +40 -0
  386. package/backend/dist/platform/storage/vectorStore.js.map +1 -0
  387. package/backend/dist/platform/workPersistence/index.d.ts +9 -0
  388. package/backend/dist/platform/workPersistence/index.d.ts.map +1 -0
  389. package/backend/dist/platform/workPersistence/index.js +14 -0
  390. package/backend/dist/platform/workPersistence/index.js.map +1 -0
  391. package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.d.ts +9 -0
  392. package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.d.ts.map +1 -0
  393. package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.js +47 -0
  394. package/backend/dist/platform/workPersistence/postgresWorkLifecycleMigration.js.map +1 -0
  395. package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.d.ts +3 -0
  396. package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.d.ts.map +1 -0
  397. package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.js +28 -0
  398. package/backend/dist/platform/workPersistence/postgresWorkMessageContentMigration.js.map +1 -0
  399. package/backend/dist/platform/workPersistence/postgresWorkMigration.d.ts +3 -0
  400. package/backend/dist/platform/workPersistence/postgresWorkMigration.d.ts.map +1 -0
  401. package/backend/dist/platform/workPersistence/postgresWorkMigration.js +101 -0
  402. package/backend/dist/platform/workPersistence/postgresWorkMigration.js.map +1 -0
  403. package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts +79 -0
  404. package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -0
  405. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +521 -0
  406. package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -0
  407. package/backend/dist/platform/workPersistence/service.d.ts +6 -0
  408. package/backend/dist/platform/workPersistence/service.d.ts.map +1 -0
  409. package/backend/dist/platform/workPersistence/service.js +27 -0
  410. package/backend/dist/platform/workPersistence/service.js.map +1 -0
  411. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts +77 -0
  412. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -0
  413. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +463 -0
  414. package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -0
  415. package/backend/dist/platform/workPersistence/types.d.ts +159 -0
  416. package/backend/dist/platform/workPersistence/types.d.ts.map +1 -0
  417. package/backend/dist/platform/workPersistence/types.js +13 -0
  418. package/backend/dist/platform/workPersistence/types.js.map +1 -0
  419. package/backend/dist/platform/workPersistence/workExecutionTypes.d.ts +13 -0
  420. package/backend/dist/platform/workPersistence/workExecutionTypes.d.ts.map +1 -0
  421. package/backend/dist/platform/workPersistence/workExecutionTypes.js +7 -0
  422. package/backend/dist/platform/workPersistence/workExecutionTypes.js.map +1 -0
  423. package/backend/dist/platform/workPersistence/workMessageContentCodec.d.ts +8 -0
  424. package/backend/dist/platform/workPersistence/workMessageContentCodec.d.ts.map +1 -0
  425. package/backend/dist/platform/workPersistence/workMessageContentCodec.js +25 -0
  426. package/backend/dist/platform/workPersistence/workMessageContentCodec.js.map +1 -0
  427. package/backend/dist/platform/workPersistence/workTextSafety.d.ts +3 -0
  428. package/backend/dist/platform/workPersistence/workTextSafety.d.ts.map +1 -0
  429. package/backend/dist/platform/workPersistence/workTextSafety.js +8 -0
  430. package/backend/dist/platform/workPersistence/workTextSafety.js.map +1 -0
  431. package/backend/dist/routes/agentCli.js +1 -1
  432. package/backend/dist/routes/agentCli.js.map +1 -1
  433. package/backend/dist/routes/artifacts.d.ts.map +1 -1
  434. package/backend/dist/routes/artifacts.js +2 -1
  435. package/backend/dist/routes/artifacts.js.map +1 -1
  436. package/backend/dist/routes/auth.d.ts.map +1 -1
  437. package/backend/dist/routes/auth.js +64 -18
  438. package/backend/dist/routes/auth.js.map +1 -1
  439. package/backend/dist/routes/chat.d.ts.map +1 -1
  440. package/backend/dist/routes/chat.js +519 -85
  441. package/backend/dist/routes/chat.js.map +1 -1
  442. package/backend/dist/routes/documents.d.ts.map +1 -1
  443. package/backend/dist/routes/documents.js +134 -28
  444. package/backend/dist/routes/documents.js.map +1 -1
  445. package/backend/dist/routes/embeddings.d.ts.map +1 -1
  446. package/backend/dist/routes/embeddings.js +2 -1
  447. package/backend/dist/routes/embeddings.js.map +1 -1
  448. package/backend/dist/routes/health.d.ts +3 -0
  449. package/backend/dist/routes/health.d.ts.map +1 -0
  450. package/backend/dist/routes/health.js +52 -0
  451. package/backend/dist/routes/health.js.map +1 -0
  452. package/backend/dist/routes/huggingfaceHub.d.ts.map +1 -1
  453. package/backend/dist/routes/huggingfaceHub.js +2 -1
  454. package/backend/dist/routes/huggingfaceHub.js.map +1 -1
  455. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  456. package/backend/dist/routes/imageGen.js +42 -10
  457. package/backend/dist/routes/imageGen.js.map +1 -1
  458. package/backend/dist/routes/jobs.d.ts +3 -0
  459. package/backend/dist/routes/jobs.d.ts.map +1 -0
  460. package/backend/dist/routes/jobs.js +117 -0
  461. package/backend/dist/routes/jobs.js.map +1 -0
  462. package/backend/dist/routes/libreClaw.d.ts.map +1 -1
  463. package/backend/dist/routes/libreClaw.js +10 -7
  464. package/backend/dist/routes/libreClaw.js.map +1 -1
  465. package/backend/dist/routes/media.d.ts.map +1 -1
  466. package/backend/dist/routes/media.js +523 -77
  467. package/backend/dist/routes/media.js.map +1 -1
  468. package/backend/dist/routes/notes.d.ts.map +1 -1
  469. package/backend/dist/routes/notes.js +21 -21
  470. package/backend/dist/routes/notes.js.map +1 -1
  471. package/backend/dist/routes/ollama.d.ts.map +1 -1
  472. package/backend/dist/routes/ollama.js +40 -12
  473. package/backend/dist/routes/ollama.js.map +1 -1
  474. package/backend/dist/routes/personas.d.ts.map +1 -1
  475. package/backend/dist/routes/personas.js +4 -2
  476. package/backend/dist/routes/personas.js.map +1 -1
  477. package/backend/dist/routes/plugins.d.ts.map +1 -1
  478. package/backend/dist/routes/plugins.js +79 -51
  479. package/backend/dist/routes/plugins.js.map +1 -1
  480. package/backend/dist/routes/preferences.d.ts.map +1 -1
  481. package/backend/dist/routes/preferences.js +290 -25
  482. package/backend/dist/routes/preferences.js.map +1 -1
  483. package/backend/dist/routes/search.d.ts.map +1 -1
  484. package/backend/dist/routes/search.js +23 -14
  485. package/backend/dist/routes/search.js.map +1 -1
  486. package/backend/dist/routes/stt.d.ts +9 -0
  487. package/backend/dist/routes/stt.d.ts.map +1 -0
  488. package/backend/dist/routes/stt.js +217 -0
  489. package/backend/dist/routes/stt.js.map +1 -0
  490. package/backend/dist/routes/systemDiagnostics.d.ts.map +1 -1
  491. package/backend/dist/routes/systemDiagnostics.js +2 -1
  492. package/backend/dist/routes/systemDiagnostics.js.map +1 -1
  493. package/backend/dist/routes/tts.d.ts.map +1 -1
  494. package/backend/dist/routes/tts.js +577 -28
  495. package/backend/dist/routes/tts.js.map +1 -1
  496. package/backend/dist/routes/users.d.ts.map +1 -1
  497. package/backend/dist/routes/users.js +16 -25
  498. package/backend/dist/routes/users.js.map +1 -1
  499. package/backend/dist/routes/work.d.ts.map +1 -1
  500. package/backend/dist/routes/work.js +167 -113
  501. package/backend/dist/routes/work.js.map +1 -1
  502. package/backend/dist/services/agentAccessService.d.ts +2 -2
  503. package/backend/dist/services/agentAccessService.d.ts.map +1 -1
  504. package/backend/dist/services/agentAccessService.js +5 -14
  505. package/backend/dist/services/agentAccessService.js.map +1 -1
  506. package/backend/dist/services/agentCliService.d.ts +3 -2
  507. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  508. package/backend/dist/services/agentCliService.js +44 -16
  509. package/backend/dist/services/agentCliService.js.map +1 -1
  510. package/backend/dist/services/assistantCompletionService.d.ts +2 -1
  511. package/backend/dist/services/assistantCompletionService.d.ts.map +1 -1
  512. package/backend/dist/services/assistantCompletionService.js +7 -3
  513. package/backend/dist/services/assistantCompletionService.js.map +1 -1
  514. package/backend/dist/services/authService.d.ts +7 -2
  515. package/backend/dist/services/authService.d.ts.map +1 -1
  516. package/backend/dist/services/authService.js +23 -10
  517. package/backend/dist/services/authService.js.map +1 -1
  518. package/backend/dist/services/chatGenerationService.d.ts +5 -4
  519. package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
  520. package/backend/dist/services/chatGenerationService.js +23 -17
  521. package/backend/dist/services/chatGenerationService.js.map +1 -1
  522. package/backend/dist/services/chatRequestService.d.ts +4 -3
  523. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  524. package/backend/dist/services/chatRequestService.js +3 -3
  525. package/backend/dist/services/chatRequestService.js.map +1 -1
  526. package/backend/dist/services/chatService.d.ts +66 -16
  527. package/backend/dist/services/chatService.d.ts.map +1 -1
  528. package/backend/dist/services/chatService.js +402 -111
  529. package/backend/dist/services/chatService.js.map +1 -1
  530. package/backend/dist/services/codexOAuthService.d.ts +2 -2
  531. package/backend/dist/services/codexOAuthService.d.ts.map +1 -1
  532. package/backend/dist/services/codexOAuthService.js +63 -7
  533. package/backend/dist/services/codexOAuthService.js.map +1 -1
  534. package/backend/dist/services/dataArchiveService.d.ts +88 -0
  535. package/backend/dist/services/dataArchiveService.d.ts.map +1 -0
  536. package/backend/dist/services/dataArchiveService.js +1027 -0
  537. package/backend/dist/services/dataArchiveService.js.map +1 -0
  538. package/backend/dist/services/documentService.d.ts +67 -14
  539. package/backend/dist/services/documentService.d.ts.map +1 -1
  540. package/backend/dist/services/documentService.js +938 -193
  541. package/backend/dist/services/documentService.js.map +1 -1
  542. package/backend/dist/services/durableChatCompletion.d.ts +16 -0
  543. package/backend/dist/services/durableChatCompletion.d.ts.map +1 -0
  544. package/backend/dist/services/durableChatCompletion.js +34 -0
  545. package/backend/dist/services/durableChatCompletion.js.map +1 -0
  546. package/backend/dist/services/durableChatGenerationService.d.ts +19 -0
  547. package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -0
  548. package/backend/dist/services/durableChatGenerationService.js +341 -0
  549. package/backend/dist/services/durableChatGenerationService.js.map +1 -0
  550. package/backend/dist/services/embeddingService.d.ts +1 -1
  551. package/backend/dist/services/embeddingService.d.ts.map +1 -1
  552. package/backend/dist/services/embeddingService.js +16 -13
  553. package/backend/dist/services/embeddingService.js.map +1 -1
  554. package/backend/dist/services/encryptionService.d.ts +28 -1
  555. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  556. package/backend/dist/services/encryptionService.js +131 -51
  557. package/backend/dist/services/encryptionService.js.map +1 -1
  558. package/backend/dist/services/followUpService.d.ts +1 -1
  559. package/backend/dist/services/followUpService.d.ts.map +1 -1
  560. package/backend/dist/services/followUpService.js +1 -1
  561. package/backend/dist/services/followUpService.js.map +1 -1
  562. package/backend/dist/services/galleryService.d.ts +38 -37
  563. package/backend/dist/services/galleryService.d.ts.map +1 -1
  564. package/backend/dist/services/galleryService.js +356 -251
  565. package/backend/dist/services/galleryService.js.map +1 -1
  566. package/backend/dist/services/healthService.d.ts +65 -0
  567. package/backend/dist/services/healthService.d.ts.map +1 -0
  568. package/backend/dist/services/healthService.js +379 -0
  569. package/backend/dist/services/healthService.js.map +1 -0
  570. package/backend/dist/services/legacyCiphertextIntegrity.d.ts +40 -0
  571. package/backend/dist/services/legacyCiphertextIntegrity.d.ts.map +1 -0
  572. package/backend/dist/services/legacyCiphertextIntegrity.js +406 -0
  573. package/backend/dist/services/legacyCiphertextIntegrity.js.map +1 -0
  574. package/backend/dist/services/mediaGenerationJobService.d.ts +27 -5
  575. package/backend/dist/services/mediaGenerationJobService.d.ts.map +1 -1
  576. package/backend/dist/services/mediaGenerationJobService.js +185 -55
  577. package/backend/dist/services/mediaGenerationJobService.js.map +1 -1
  578. package/backend/dist/services/memoryService.d.ts +7 -83
  579. package/backend/dist/services/memoryService.d.ts.map +1 -1
  580. package/backend/dist/services/memoryService.js +428 -573
  581. package/backend/dist/services/memoryService.js.map +1 -1
  582. package/backend/dist/services/memoryUtils.d.ts.map +1 -1
  583. package/backend/dist/services/memoryUtils.js +8 -1
  584. package/backend/dist/services/memoryUtils.js.map +1 -1
  585. package/backend/dist/services/modelAccessService.d.ts +3 -3
  586. package/backend/dist/services/modelAccessService.d.ts.map +1 -1
  587. package/backend/dist/services/modelAccessService.js +8 -16
  588. package/backend/dist/services/modelAccessService.js.map +1 -1
  589. package/backend/dist/services/mutationEngineService.d.ts +0 -7
  590. package/backend/dist/services/mutationEngineService.d.ts.map +1 -1
  591. package/backend/dist/services/mutationEngineService.js +7 -78
  592. package/backend/dist/services/mutationEngineService.js.map +1 -1
  593. package/backend/dist/services/ollamaService.d.ts +4 -4
  594. package/backend/dist/services/ollamaService.d.ts.map +1 -1
  595. package/backend/dist/services/ollamaService.js +62 -31
  596. package/backend/dist/services/ollamaService.js.map +1 -1
  597. package/backend/dist/services/personaService.d.ts.map +1 -1
  598. package/backend/dist/services/personaService.js +19 -54
  599. package/backend/dist/services/personaService.js.map +1 -1
  600. package/backend/dist/services/pluginActivationService.d.ts +6 -5
  601. package/backend/dist/services/pluginActivationService.d.ts.map +1 -1
  602. package/backend/dist/services/pluginActivationService.js +36 -76
  603. package/backend/dist/services/pluginActivationService.js.map +1 -1
  604. package/backend/dist/services/pluginAudioGenerationService.d.ts +11 -6
  605. package/backend/dist/services/pluginAudioGenerationService.d.ts.map +1 -1
  606. package/backend/dist/services/pluginAudioGenerationService.js +74 -16
  607. package/backend/dist/services/pluginAudioGenerationService.js.map +1 -1
  608. package/backend/dist/services/pluginCacheInvalidation.d.ts +38 -0
  609. package/backend/dist/services/pluginCacheInvalidation.d.ts.map +1 -0
  610. package/backend/dist/services/pluginCacheInvalidation.js +198 -0
  611. package/backend/dist/services/pluginCacheInvalidation.js.map +1 -0
  612. package/backend/dist/services/pluginCapabilityRegistryService.d.ts +3 -3
  613. package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -1
  614. package/backend/dist/services/pluginCapabilityRegistryService.js +11 -7
  615. package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -1
  616. package/backend/dist/services/pluginCredentialsService.d.ts +9 -8
  617. package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
  618. package/backend/dist/services/pluginCredentialsService.js +48 -89
  619. package/backend/dist/services/pluginCredentialsService.js.map +1 -1
  620. package/backend/dist/services/pluginEmbeddingService.d.ts +8 -7
  621. package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -1
  622. package/backend/dist/services/pluginEmbeddingService.js +13 -11
  623. package/backend/dist/services/pluginEmbeddingService.js.map +1 -1
  624. package/backend/dist/services/pluginImageGenerationService.d.ts +10 -8
  625. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  626. package/backend/dist/services/pluginImageGenerationService.js +119 -14
  627. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  628. package/backend/dist/services/pluginSTTService.d.ts +47 -0
  629. package/backend/dist/services/pluginSTTService.d.ts.map +1 -0
  630. package/backend/dist/services/pluginSTTService.js +199 -0
  631. package/backend/dist/services/pluginSTTService.js.map +1 -0
  632. package/backend/dist/services/pluginService.d.ts +94 -40
  633. package/backend/dist/services/pluginService.d.ts.map +1 -1
  634. package/backend/dist/services/pluginService.js +799 -274
  635. package/backend/dist/services/pluginService.js.map +1 -1
  636. package/backend/dist/services/pluginTTSService.d.ts +26 -8
  637. package/backend/dist/services/pluginTTSService.d.ts.map +1 -1
  638. package/backend/dist/services/pluginTTSService.js +277 -25
  639. package/backend/dist/services/pluginTTSService.js.map +1 -1
  640. package/backend/dist/services/pluginUsageService.d.ts +4 -4
  641. package/backend/dist/services/pluginUsageService.d.ts.map +1 -1
  642. package/backend/dist/services/pluginUsageService.js +44 -93
  643. package/backend/dist/services/pluginUsageService.js.map +1 -1
  644. package/backend/dist/services/pluginVariablesService.d.ts +14 -7
  645. package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
  646. package/backend/dist/services/pluginVariablesService.js +116 -81
  647. package/backend/dist/services/pluginVariablesService.js.map +1 -1
  648. package/backend/dist/services/pluginVideoGenerationService.d.ts +19 -8
  649. package/backend/dist/services/pluginVideoGenerationService.d.ts.map +1 -1
  650. package/backend/dist/services/pluginVideoGenerationService.js +116 -20
  651. package/backend/dist/services/pluginVideoGenerationService.js.map +1 -1
  652. package/backend/dist/services/preferencesService.d.ts +31 -21
  653. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  654. package/backend/dist/services/preferencesService.js +104 -102
  655. package/backend/dist/services/preferencesService.js.map +1 -1
  656. package/backend/dist/services/recoveryInventoryService.d.ts +244 -0
  657. package/backend/dist/services/recoveryInventoryService.d.ts.map +1 -0
  658. package/backend/dist/services/recoveryInventoryService.js +1436 -0
  659. package/backend/dist/services/recoveryInventoryService.js.map +1 -0
  660. package/backend/dist/services/simpleGitHubOAuth.js +3 -3
  661. package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
  662. package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
  663. package/backend/dist/services/simpleHuggingFaceOAuth.js +3 -3
  664. package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
  665. package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -1
  666. package/backend/dist/services/systemDiagnosticsService.js +2 -2
  667. package/backend/dist/services/systemDiagnosticsService.js.map +1 -1
  668. package/backend/dist/services/systemSettingsService.d.ts +5 -0
  669. package/backend/dist/services/systemSettingsService.d.ts.map +1 -0
  670. package/backend/dist/services/systemSettingsService.js +24 -0
  671. package/backend/dist/services/systemSettingsService.js.map +1 -0
  672. package/backend/dist/services/titleGenerationService.d.ts +1 -1
  673. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  674. package/backend/dist/services/titleGenerationService.js +1 -1
  675. package/backend/dist/services/titleGenerationService.js.map +1 -1
  676. package/backend/dist/services/voiceProfileService.d.ts +44 -0
  677. package/backend/dist/services/voiceProfileService.d.ts.map +1 -0
  678. package/backend/dist/services/voiceProfileService.js +195 -0
  679. package/backend/dist/services/voiceProfileService.js.map +1 -0
  680. package/backend/dist/services/webSearchService.d.ts +7 -7
  681. package/backend/dist/services/webSearchService.d.ts.map +1 -1
  682. package/backend/dist/services/webSearchService.js +40 -35
  683. package/backend/dist/services/webSearchService.js.map +1 -1
  684. package/backend/dist/services/websocketTicketService.d.ts +39 -0
  685. package/backend/dist/services/websocketTicketService.d.ts.map +1 -0
  686. package/backend/dist/services/websocketTicketService.js +183 -0
  687. package/backend/dist/services/websocketTicketService.js.map +1 -0
  688. package/backend/dist/services/workAccessService.d.ts +3 -3
  689. package/backend/dist/services/workAccessService.d.ts.map +1 -1
  690. package/backend/dist/services/workAccessService.js +8 -16
  691. package/backend/dist/services/workAccessService.js.map +1 -1
  692. package/backend/dist/services/workAdminService.d.ts +3 -3
  693. package/backend/dist/services/workAdminService.d.ts.map +1 -1
  694. package/backend/dist/services/workAdminService.js +4 -4
  695. package/backend/dist/services/workAdminService.js.map +1 -1
  696. package/backend/dist/services/workAgentService.d.ts +25 -1
  697. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  698. package/backend/dist/services/workAgentService.js +294 -126
  699. package/backend/dist/services/workAgentService.js.map +1 -1
  700. package/backend/dist/services/workEventService.d.ts +15 -2
  701. package/backend/dist/services/workEventService.d.ts.map +1 -1
  702. package/backend/dist/services/workEventService.js +201 -3
  703. package/backend/dist/services/workEventService.js.map +1 -1
  704. package/backend/dist/services/workKubernetesDriver.d.ts +8 -7
  705. package/backend/dist/services/workKubernetesDriver.d.ts.map +1 -1
  706. package/backend/dist/services/workKubernetesDriver.js +65 -21
  707. package/backend/dist/services/workKubernetesDriver.js.map +1 -1
  708. package/backend/dist/services/workModelProviderService.d.ts +2 -2
  709. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  710. package/backend/dist/services/workModelProviderService.js +38 -34
  711. package/backend/dist/services/workModelProviderService.js.map +1 -1
  712. package/backend/dist/services/workPolicyService.d.ts +7 -7
  713. package/backend/dist/services/workPolicyService.d.ts.map +1 -1
  714. package/backend/dist/services/workPolicyService.js +50 -51
  715. package/backend/dist/services/workPolicyService.js.map +1 -1
  716. package/backend/dist/services/workPreviewProxyService.d.ts +8 -8
  717. package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -1
  718. package/backend/dist/services/workPreviewProxyService.js +47 -44
  719. package/backend/dist/services/workPreviewProxyService.js.map +1 -1
  720. package/backend/dist/services/workRuntimeDriver.d.ts +21 -18
  721. package/backend/dist/services/workRuntimeDriver.d.ts.map +1 -1
  722. package/backend/dist/services/workRuntimeDriver.js +69 -20
  723. package/backend/dist/services/workRuntimeDriver.js.map +1 -1
  724. package/backend/dist/services/workRuntimeService.d.ts +18 -13
  725. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  726. package/backend/dist/services/workRuntimeService.js +438 -194
  727. package/backend/dist/services/workRuntimeService.js.map +1 -1
  728. package/backend/dist/services/workRuntimeShared.d.ts +2 -0
  729. package/backend/dist/services/workRuntimeShared.d.ts.map +1 -1
  730. package/backend/dist/services/workRuntimeShared.js.map +1 -1
  731. package/backend/dist/services/workTaskService.d.ts +42 -36
  732. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  733. package/backend/dist/services/workTaskService.js +445 -350
  734. package/backend/dist/services/workTaskService.js.map +1 -1
  735. package/backend/dist/services/workTerminalService.d.ts +1 -1
  736. package/backend/dist/services/workTerminalService.d.ts.map +1 -1
  737. package/backend/dist/services/workTerminalService.js +33 -6
  738. package/backend/dist/services/workTerminalService.js.map +1 -1
  739. package/backend/dist/storage.d.ts +72 -40
  740. package/backend/dist/storage.d.ts.map +1 -1
  741. package/backend/dist/storage.js +312 -660
  742. package/backend/dist/storage.js.map +1 -1
  743. package/backend/dist/types/index.d.ts +28 -0
  744. package/backend/dist/types/index.d.ts.map +1 -1
  745. package/backend/dist/types/index.js.map +1 -1
  746. package/backend/dist/types/work.d.ts +7 -2
  747. package/backend/dist/types/work.d.ts.map +1 -1
  748. package/backend/dist/utils/chatCancellation.d.ts +48 -0
  749. package/backend/dist/utils/chatCancellation.d.ts.map +1 -0
  750. package/backend/dist/utils/chatCancellation.js +152 -0
  751. package/backend/dist/utils/chatCancellation.js.map +1 -0
  752. package/backend/dist/utils/chatDocumentContext.d.ts +1 -1
  753. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  754. package/backend/dist/utils/chatDocumentContext.js +11 -5
  755. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  756. package/backend/dist/utils/chatStreamCoalescer.d.ts +15 -0
  757. package/backend/dist/utils/chatStreamCoalescer.d.ts.map +1 -0
  758. package/backend/dist/utils/chatStreamCoalescer.js +59 -0
  759. package/backend/dist/utils/chatStreamCoalescer.js.map +1 -0
  760. package/backend/dist/utils/dataDirectory.d.ts +49 -0
  761. package/backend/dist/utils/dataDirectory.d.ts.map +1 -0
  762. package/backend/dist/utils/dataDirectory.js +291 -0
  763. package/backend/dist/utils/dataDirectory.js.map +1 -0
  764. package/backend/dist/utils/generationUtils.d.ts.map +1 -1
  765. package/backend/dist/utils/generationUtils.js +18 -6
  766. package/backend/dist/utils/generationUtils.js.map +1 -1
  767. package/backend/dist/utils/jwt.d.ts.map +1 -1
  768. package/backend/dist/utils/jwt.js +2 -3
  769. package/backend/dist/utils/jwt.js.map +1 -1
  770. package/backend/dist/utils/ollamaModelDefaults.d.ts.map +1 -1
  771. package/backend/dist/utils/ollamaModelDefaults.js +2 -7
  772. package/backend/dist/utils/ollamaModelDefaults.js.map +1 -1
  773. package/backend/dist/utils/ollamaStreaming.d.ts +2 -1
  774. package/backend/dist/utils/ollamaStreaming.d.ts.map +1 -1
  775. package/backend/dist/utils/ollamaStreaming.js +49 -11
  776. package/backend/dist/utils/ollamaStreaming.js.map +1 -1
  777. package/backend/dist/utils/pluginConnectionVariables.d.ts.map +1 -1
  778. package/backend/dist/utils/pluginConnectionVariables.js +11 -3
  779. package/backend/dist/utils/pluginConnectionVariables.js.map +1 -1
  780. package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
  781. package/backend/dist/utils/pluginDefinitionTrust.js +4 -3
  782. package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
  783. package/backend/dist/utils/pluginStreaming.d.ts +2 -1
  784. package/backend/dist/utils/pluginStreaming.d.ts.map +1 -1
  785. package/backend/dist/utils/pluginStreaming.js +5 -1
  786. package/backend/dist/utils/pluginStreaming.js.map +1 -1
  787. package/backend/dist/utils/pluginUpload.d.ts +1 -0
  788. package/backend/dist/utils/pluginUpload.d.ts.map +1 -1
  789. package/backend/dist/utils/pluginUpload.js +9 -2
  790. package/backend/dist/utils/pluginUpload.js.map +1 -1
  791. package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
  792. package/backend/dist/utils/pluginValidation.js +29 -1
  793. package/backend/dist/utils/pluginValidation.js.map +1 -1
  794. package/backend/dist/utils/sttAudioUpload.d.ts +24 -0
  795. package/backend/dist/utils/sttAudioUpload.d.ts.map +1 -0
  796. package/backend/dist/utils/sttAudioUpload.js +500 -0
  797. package/backend/dist/utils/sttAudioUpload.js.map +1 -0
  798. package/backend/dist/utils/ttsVoiceCloneUpload.d.ts +34 -0
  799. package/backend/dist/utils/ttsVoiceCloneUpload.d.ts.map +1 -0
  800. package/backend/dist/utils/ttsVoiceCloneUpload.js +224 -0
  801. package/backend/dist/utils/ttsVoiceCloneUpload.js.map +1 -0
  802. package/backend/dist/utils/websocketMessages.d.ts +2 -1
  803. package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
  804. package/backend/dist/utils/websocketMessages.js +16 -2
  805. package/backend/dist/utils/websocketMessages.js.map +1 -1
  806. package/backend/dist/websocketServer.d.ts +4 -1
  807. package/backend/dist/websocketServer.d.ts.map +1 -1
  808. package/backend/dist/websocketServer.js +290 -44
  809. package/backend/dist/websocketServer.js.map +1 -1
  810. package/backend/dist/workTerminalServer.d.ts +9 -0
  811. package/backend/dist/workTerminalServer.d.ts.map +1 -1
  812. package/backend/dist/workTerminalServer.js +221 -52
  813. package/backend/dist/workTerminalServer.js.map +1 -1
  814. package/backend/dist/worker.d.ts +2 -0
  815. package/backend/dist/worker.d.ts.map +1 -0
  816. package/backend/dist/worker.js +250 -0
  817. package/backend/dist/worker.js.map +1 -0
  818. package/backend/package.json +19 -9
  819. package/bin/cli.js +126 -99
  820. package/bin/runtime-paths.js +108 -0
  821. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  822. package/frontend/dist/artifact-runtime/framer-motion.js +5 -5
  823. package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
  824. package/frontend/dist/assets/index-CUhEG7E2.js +33 -0
  825. package/frontend/dist/assets/index-kxtZQLV6.css +1 -0
  826. package/frontend/dist/assets/{markdown-math-ClQbWekD.css → markdown-math-ClTedVi7.css} +1 -1
  827. package/frontend/dist/index.html +18 -18
  828. package/frontend/dist/js/{ArtifactContainer-Dy2Q0iIL.js → ArtifactContainer-BTEDhBnv.js} +1 -1
  829. package/frontend/dist/js/{ArtifactDemoPage-K79dWshB.js → ArtifactDemoPage-B0gN3YTl.js} +1 -1
  830. package/frontend/dist/js/{ArtifactSandboxFrame-DhqLNUtY.js → ArtifactSandboxFrame-CLBXQkZs.js} +3 -3
  831. package/frontend/dist/js/{ArtifactSlideOutPanel-Cl8JG7bz.js → ArtifactSlideOutPanel-CfqHPFdE.js} +1 -1
  832. package/frontend/dist/js/{Button-CTXHujOd.js → Button-BV44cTnj.js} +1 -1
  833. package/frontend/dist/js/ChatPage-DIkAXZWA.js +23 -0
  834. package/frontend/dist/js/{FirstTimeSetup-kHhRzGJ8.js → FirstTimeSetup-B8phXGNA.js} +1 -1
  835. package/frontend/dist/js/GalleryPage-W4uI043I.js +1 -0
  836. package/frontend/dist/js/{HomePage-C1L8WAXL.js → HomePage-DlxehbyO.js} +1 -1
  837. package/frontend/dist/js/{LibreClawPage-Dyua8IUu.js → LibreClawPage-CgD0_G_F.js} +1 -1
  838. package/frontend/dist/js/{ModelManagerModals-CuMRGUd-.js → ModelManagerModals-D7jIT3v1.js} +1 -1
  839. package/frontend/dist/js/{ModelSelector-CqHc-Ln4.js → ModelSelector-BYxJU1UV.js} +1 -1
  840. package/frontend/dist/js/ModelsPage-C4XdCKP5.js +2 -0
  841. package/frontend/dist/js/NotesPage-CDECOl4V.js +1 -0
  842. package/frontend/dist/js/{OptimizedSyntaxHighlighter-CWYUn9Oe.js → OptimizedSyntaxHighlighter-XwqZEoTf.js} +1 -1
  843. package/frontend/dist/js/{PersonasPage-D_6WBCH5.js → PersonasPage-CjSLPrgS.js} +2 -2
  844. package/frontend/dist/js/PluginUsagePage-DJOXJuH4.js +1 -0
  845. package/frontend/dist/js/RichMessageContent-Debeh6bi.js +3 -0
  846. package/frontend/dist/js/SettingsModal-cUqAeYUP.js +1 -0
  847. package/frontend/dist/js/{SettingsToggle-DLHlCDBl.js → SettingsToggle-WTa0rgvY.js} +1 -1
  848. package/frontend/dist/js/{SystemPage-BMWEet9e.js → SystemPage-DxPw0GS7.js} +1 -1
  849. package/frontend/dist/js/UserManagementPage-CEdYFe_Z.js +1 -0
  850. package/frontend/dist/js/WorkPage-DDVeuG_9.js +6 -0
  851. package/frontend/dist/js/api-IzobHGND.js +14 -0
  852. package/frontend/dist/js/appStore-DKwC2vgn.js +2 -0
  853. package/frontend/dist/js/ar-xTSvTq05.js +2 -0
  854. package/frontend/dist/js/authStore-OaTuapL7.js +4 -0
  855. package/frontend/dist/js/{babel-CmENXdZw.js → babel-D24oDI9y.js} +1 -1
  856. package/frontend/dist/js/bn-iYAsohEA.js +2 -0
  857. package/frontend/dist/js/chatStore-DXGUVLXD.js +3 -0
  858. package/frontend/dist/js/{config-DkV1ka7I.js → config-DPEEuTAe.js} +1 -1
  859. package/frontend/dist/js/cs-YBHN88Hb.js +2 -0
  860. package/frontend/dist/js/da-D7qlLy_k.js +2 -0
  861. package/frontend/dist/js/de-DV671k2c.js +2 -0
  862. package/frontend/dist/js/es-kyBgzNq-.js +2 -0
  863. package/frontend/dist/js/{estree-D5KP-qbw.js → estree-ChwJsD2w.js} +1 -1
  864. package/frontend/dist/js/fr-Cw1vut7I.js +2 -0
  865. package/frontend/dist/js/hi-DWEFC024.js +2 -0
  866. package/frontend/dist/js/{html-Cm9c2akd.js → html-DFrVjciF.js} +1 -1
  867. package/frontend/dist/js/id-DlMHjjy0.js +2 -0
  868. package/frontend/dist/js/is-B9E_a7dG.js +2 -0
  869. package/frontend/dist/js/it-DawmVbLC.js +2 -0
  870. package/frontend/dist/js/ja-DmVvwY3W.js +2 -0
  871. package/frontend/dist/js/ko-DzOPpkVs.js +2 -0
  872. package/frontend/dist/js/{markdown-B2u7CnKN.js → markdown-FLLx7b67.js} +1 -1
  873. package/frontend/dist/js/markdown-core-BmPPZiuD.js +31 -0
  874. package/frontend/dist/js/{markdown-math-B7FlYsmr.js → markdown-math-mH7AZ_mb.js} +6 -6
  875. package/frontend/dist/js/{messageCodeStyles-DalG2j6U.js → messageCodeStyles-CBkkZY4n.js} +1 -1
  876. package/frontend/dist/js/ms-DpsaOPht.js +2 -0
  877. package/frontend/dist/js/nl-B1d8W22n.js +2 -0
  878. package/frontend/dist/js/pl-nCncRVgt.js +2 -0
  879. package/frontend/dist/js/{postcss-B5WIGhAY.js → postcss-Bx9CTcIc.js} +1 -1
  880. package/frontend/dist/js/pt-DHw8fGuu.js +2 -0
  881. package/frontend/dist/js/{react-vendor-DPNXrO-8.js → react-vendor-C5yShNlM.js} +1 -1
  882. package/frontend/dist/js/{router-vendor-Ca9zqOqT.js → router-vendor-CbPDks39.js} +1 -1
  883. package/frontend/dist/js/ru-Derl_YP_.js +2 -0
  884. package/frontend/dist/js/{standalone-Dwm1daef.js → standalone-i8-5bg5p.js} +1 -1
  885. package/frontend/dist/js/sv-pJAfBVo0.js +2 -0
  886. package/frontend/dist/js/{syntax-highlight-Ca9bHsaz.js → syntax-highlight-3EEX6CGL.js} +3 -3
  887. package/frontend/dist/js/th-C_7fIGnk.js +2 -0
  888. package/frontend/dist/js/tr-CPqsJvaP.js +2 -0
  889. package/frontend/dist/js/{typescript-CwieSptM.js → typescript-CQ3x-Uni.js} +1 -1
  890. package/frontend/dist/js/{ui-BnDZpjfc.js → ui-BHhR3Vok.js} +2 -2
  891. package/frontend/dist/js/ui-vendor-D3Ahl1x5.js +177 -0
  892. package/frontend/dist/js/uk-3o8P_kFi.js +2 -0
  893. package/frontend/dist/js/{useTranslation-CXY69qNk.js → useTranslation-C3ei3mJq.js} +1 -1
  894. package/frontend/dist/js/{utils-BM0_0iFj.js → utils-CuC1beTY.js} +1 -1
  895. package/frontend/dist/js/{utils-vendor-1zob7nK9.js → utils-vendor-BBa8OxtB.js} +1 -1
  896. package/frontend/dist/js/vi-Dv6N7OVD.js +2 -0
  897. package/frontend/dist/js/{workApi-BOS7crs9.js → workApi-Czu69yWS.js} +2 -2
  898. package/frontend/dist/js/{yaml-QD4znPfZ.js → yaml-DioTxVLA.js} +1 -1
  899. package/frontend/dist/js/zh-qg5iqtPi.js +2 -0
  900. package/package.json +16 -5
  901. package/plugins/huggingface.json +12 -3
  902. package/plugins/llama-cpp.json +18 -6
  903. package/plugins/longcat-audiodit.json +114 -0
  904. package/plugins/openai.json +18 -0
  905. package/frontend/dist/assets/index-BBpNbfKW.js +0 -16
  906. package/frontend/dist/assets/index-BLATyFmD.css +0 -1
  907. package/frontend/dist/js/ChatPage-BBayfMLS.js +0 -16
  908. package/frontend/dist/js/GalleryPage-By8VI39Q.js +0 -1
  909. package/frontend/dist/js/ModelsPage-ODeXhDDk.js +0 -2
  910. package/frontend/dist/js/NotesPage-CApzDjOq.js +0 -1
  911. package/frontend/dist/js/PluginUsagePage-kutS6SOd.js +0 -1
  912. package/frontend/dist/js/RichMessageContent-g6WT75Te.js +0 -3
  913. package/frontend/dist/js/SettingsModal-B7z51BCx.js +0 -1
  914. package/frontend/dist/js/UserManagementPage-D08lM51c.js +0 -1
  915. package/frontend/dist/js/WorkPage-DdVLefsK.js +0 -6
  916. package/frontend/dist/js/api-CLEmGcEh.js +0 -14
  917. package/frontend/dist/js/appStore-CGdhvp9P.js +0 -2
  918. package/frontend/dist/js/ar-BTmB2WVm.js +0 -2
  919. package/frontend/dist/js/authStore-Dh3beEOq.js +0 -4
  920. package/frontend/dist/js/bn-CQnH7YVT.js +0 -2
  921. package/frontend/dist/js/chatStore-CDeYWL_q.js +0 -3
  922. package/frontend/dist/js/cs-oTTZkQXr.js +0 -2
  923. package/frontend/dist/js/da-Br0gB6J6.js +0 -2
  924. package/frontend/dist/js/de-DE2iztTF.js +0 -2
  925. package/frontend/dist/js/es-DgthfVtl.js +0 -2
  926. package/frontend/dist/js/fr-BjxjFwPh.js +0 -2
  927. package/frontend/dist/js/hi-D1q7E-9N.js +0 -2
  928. package/frontend/dist/js/id-CDJZqLTF.js +0 -2
  929. package/frontend/dist/js/is-BU7Um_Tq.js +0 -2
  930. package/frontend/dist/js/it-CdAxr8P_.js +0 -2
  931. package/frontend/dist/js/ja-BLbQwz9u.js +0 -2
  932. package/frontend/dist/js/ko-CY5lpkAe.js +0 -2
  933. package/frontend/dist/js/markdown-core-DHnR5Hw8.js +0 -16
  934. package/frontend/dist/js/ms-tQ8AYXEQ.js +0 -2
  935. package/frontend/dist/js/nl-CRNi2oWT.js +0 -2
  936. package/frontend/dist/js/pl-CWtFRS_W.js +0 -2
  937. package/frontend/dist/js/pt-C7SPoLF8.js +0 -2
  938. package/frontend/dist/js/ru-Dz4AX8xc.js +0 -2
  939. package/frontend/dist/js/sv-ETy5-boa.js +0 -2
  940. package/frontend/dist/js/th-DpuMqvxU.js +0 -2
  941. package/frontend/dist/js/tr-C-1AYAqg.js +0 -2
  942. package/frontend/dist/js/ui-vendor-xUzKqAXI.js +0 -177
  943. package/frontend/dist/js/uk-CyS680gr.js +0 -2
  944. package/frontend/dist/js/vi-BG8HuiTz.js +0 -2
  945. package/frontend/dist/js/zh-NCs2mkHj.js +0 -2
@@ -22,7 +22,9 @@ import { isWebSearchAvailable, userCanUseWebSearch, webSearch, } from './webSear
22
22
  import { userModel } from '../models/userModel.js';
23
23
  import workTaskService, { WORK_MESSAGE_METADATA_MAX_BYTES, WorkConflictError, WorkNotFoundError, } from './workTaskService.js';
24
24
  import { createLogger } from '../utils/logger.js';
25
+ import { getDurableJobRuntime } from '../platform/jobs/durableJobRuntime.js';
25
26
  import { boundedOpenAIResponsesOutputItems, OPENAI_RESPONSES_OUTPUT_ITEMS_METADATA_KEY, OPENAI_RESPONSES_STATE_DROPPED_METADATA_KEY, OPENAI_RESPONSES_STATE_SCOPE_METADATA_KEY, } from '../utils/openAIResponsesAdapter.js';
27
+ import { OWNER_DELETE_CONTENT_JOB_TYPE, WORK_EXECUTE_IDEMPOTENCY_SCOPE, } from '../platform/jobs/domainJobContracts.js';
26
28
  const logger = createLogger('services:work-agent');
27
29
  export const WORK_PROVIDER_STATE_METADATA_KEY = 'workProviderState';
28
30
  export const WORK_EMPTY_MODEL_RESPONSE_METADATA_KEY = 'emptyModelResponse';
@@ -33,6 +35,7 @@ const WORK_EMPTY_ROUND_NUDGE_LIMIT = 2;
33
35
  // Cross-run replay only needs the shape of past tool calls, not full
34
36
  // write_file payloads; bound each persisted argument set.
35
37
  const WORK_CHAT_TOOL_CALL_ARGUMENTS_MAX_BYTES = 4096;
38
+ const INTERRUPTED_TOOL_RESULT = 'Tool execution was interrupted; outcome unknown. Inspect the workspace before retrying.';
36
39
  export const WORK_TOOL_SCHEMAS = [
37
40
  functionTool('list_files', 'List direct children of a workspace directory.', {
38
41
  path: stringProperty('Relative directory path. Defaults to workspace root.'),
@@ -79,10 +82,10 @@ export const WORK_WEB_SEARCH_TOOL_SCHEMA = functionTool('web_search', 'Search th
79
82
  description: "Optional result count. Defaults to 5, capped by the server's configured limit.",
80
83
  },
81
84
  }, ['query']);
82
- export function workToolSchemasForTask(task) {
85
+ export async function workToolSchemasForTask(task) {
83
86
  return task.networkEnabled &&
84
- isWebSearchAvailable() &&
85
- userCanUseWebSearch(userModel.getUserById(task.userId))
87
+ (await isWebSearchAvailable()) &&
88
+ (await userCanUseWebSearch(await userModel.getUserById(task.userId)))
86
89
  ? [...WORK_TOOL_SCHEMAS, WORK_WEB_SEARCH_TOOL_SCHEMA]
87
90
  : WORK_TOOL_SCHEMAS;
88
91
  }
@@ -105,8 +108,99 @@ export class WorkAgentService {
105
108
  this.executions.set(runId, execution);
106
109
  });
107
110
  }
111
+ /**
112
+ * Durable worker entrypoint. An interrupted active run is moved back to the
113
+ * queue while its persisted provider/tool transcript is retained. Missing
114
+ * tool results are restored as "outcome unknown", so the exact external
115
+ * call is not blindly replayed after a worker crash.
116
+ */
117
+ async executeDurable(taskId, runId, userId) {
118
+ const task = await workTaskService.requireTaskRecord(taskId, userId);
119
+ const run = await workTaskService.getRun(runId);
120
+ if (!run || run.taskId !== taskId) {
121
+ throw new WorkNotFoundError('Work run not found.');
122
+ }
123
+ if (!isActiveRunStatus(run.status))
124
+ return;
125
+ if (run.status !== 'queued') {
126
+ // A worker can disappear while its sandbox continues running. Fence all
127
+ // other lifecycle operations, stop that unknown execution, and only then
128
+ // reconcile the durable transcript. Replaying against the old container
129
+ // would allow both workers to mutate one workspace concurrently.
130
+ workRuntimeService.beginTaskSuspension(taskId);
131
+ try {
132
+ await workRuntimeService.interruptContainer(task);
133
+ }
134
+ finally {
135
+ workRuntimeService.releaseTaskSuspension(taskId);
136
+ }
137
+ await this.reconcileInterruptedToolCalls(taskId, runId);
138
+ await workTaskService.updateRun(runId, 'queued');
139
+ // Tasks deliberately have no queued state: idle means durable work is
140
+ // admitted but no container/provider side effect has started yet.
141
+ await workTaskService.updateTaskStatus(taskId, 'idle');
142
+ }
143
+ await this.execute(taskId, runId, userId);
144
+ }
145
+ /**
146
+ * Materialize every tool intent whose worker disappeared before its result
147
+ * commit. This must run while the caller owns the durable job lease. The
148
+ * persisted result is both user-visible and part of the next model request;
149
+ * checking the transcript first makes a crash after the insert safe to
150
+ * reclaim without duplicating the result.
151
+ */
152
+ async reconcileInterruptedToolCalls(taskId, runId) {
153
+ const messages = await workTaskService.getMessages(taskId);
154
+ const settled = new Set(messages
155
+ .filter(message => message.runId === runId &&
156
+ message.role === 'tool' &&
157
+ message.kind === 'tool_result')
158
+ .map(message => message.metadata?.toolCallId)
159
+ .filter((value) => Boolean(typeof value === 'string' && value)));
160
+ const pending = new Map();
161
+ for (const message of messages) {
162
+ if (message.runId !== runId || message.kind !== 'tool_call')
163
+ continue;
164
+ const toolCallId = message.metadata?.toolCallId;
165
+ const name = message.metadata?.name;
166
+ if (typeof toolCallId !== 'string' ||
167
+ !toolCallId ||
168
+ typeof name !== 'string' ||
169
+ !name ||
170
+ settled.has(toolCallId)) {
171
+ continue;
172
+ }
173
+ pending.set(toolCallId, { name, message });
174
+ }
175
+ let reconciled = 0;
176
+ for (const [toolCallId, { name }] of pending) {
177
+ if (settled.has(toolCallId))
178
+ continue;
179
+ const metadata = {
180
+ name,
181
+ toolName: name,
182
+ toolCallId,
183
+ error: true,
184
+ outcomeUnknown: true,
185
+ interrupted: true,
186
+ };
187
+ const result = await workTaskService.addMessage(taskId, runId, 'tool', 'tool_result', INTERRUPTED_TOOL_RESULT, metadata);
188
+ settled.add(toolCallId);
189
+ reconciled += 1;
190
+ await workEventService.publish(taskId, runId, 'tool_result', {
191
+ toolCallId,
192
+ name,
193
+ phase: 'failed',
194
+ content: INTERRUPTED_TOOL_RESULT,
195
+ error: true,
196
+ outcomeUnknown: true,
197
+ message: result,
198
+ }, `message:${result.id}`);
199
+ }
200
+ return reconciled;
201
+ }
108
202
  async cancel(taskId, userId) {
109
- const task = workTaskService.requireMutableTaskRecord(taskId, userId);
203
+ const task = await workTaskService.requireMutableTaskRecord(taskId, userId);
110
204
  return this.cancelTask(task, userId);
111
205
  }
112
206
  async removeTask(taskId, userId) {
@@ -114,43 +208,112 @@ export class WorkAgentService {
114
208
  }
115
209
  async cancelTask(task, userId) {
116
210
  const taskId = task.id;
117
- const run = workTaskService.getActiveRun(taskId);
211
+ const run = await workTaskService.getActiveRun(taskId);
118
212
  if (!run) {
119
213
  throw new WorkConflictError('This Work task has no active run.');
120
214
  }
121
215
  this.controllers.get(run.id)?.abort();
122
216
  await workRuntimeService.stopContainer(task);
123
217
  await this.executions.get(run.id);
124
- if (isActiveRunStatus(workTaskService.getRun(run.id)?.status)) {
125
- workTaskService.updateRun(run.id, 'cancelled', {
218
+ if (isActiveRunStatus((await workTaskService.getRun(run.id))?.status)) {
219
+ await workTaskService.updateRun(run.id, 'cancelled', {
126
220
  error: 'Cancelled by user.',
127
221
  finished: true,
128
222
  });
129
- workTaskService.updateTaskStatus(taskId, 'cancelled');
130
- workTaskService.updatePreview(taskId, 'stopped');
131
- workEventService.publish(taskId, run.id, 'done', {
223
+ await workTaskService.updateTaskStatus(taskId, 'cancelled');
224
+ await workTaskService.updatePreview(taskId, 'stopped');
225
+ await workEventService.publish(taskId, run.id, 'done', {
132
226
  status: 'cancelled',
133
227
  error: 'Cancelled by user.',
134
- });
228
+ }, 'terminal:cancelled');
135
229
  }
136
230
  return workTaskService.requireTaskDetail(taskId, userId);
137
231
  }
138
232
  async removeTasksForUser(userId) {
139
- workTaskService.beginUserRetirement(userId);
140
- try {
141
- const tasks = workTaskService.listTaskRecords(userId);
142
- for (const task of tasks) {
143
- await this.removeTaskInternal(task.id, userId, true);
233
+ await workTaskService.withUserLifecycleLease(userId, async (assertHeld) => {
234
+ workTaskService.beginUserRetirement(userId);
235
+ try {
236
+ await this.removeTasksWithRetirementHeld(userId, assertHeld);
237
+ }
238
+ finally {
239
+ workTaskService.releaseUserRetirement(userId);
144
240
  }
241
+ });
242
+ }
243
+ /**
244
+ * Persist a cross-replica account fence before deleting external state.
245
+ * A failed drain deliberately leaves the account `retiring`, so a retry can
246
+ * continue while authentication and all new Work admission stay denied.
247
+ */
248
+ async retireAndDeleteUser(userId, actorUserId) {
249
+ return workTaskService.withUserLifecycleLease(userId, async (assertHeld) => {
250
+ workTaskService.beginUserRetirement(userId);
251
+ try {
252
+ await assertHeld();
253
+ if (!(await userModel.beginUserRetirement(userId)))
254
+ return false;
255
+ await this.drainDurableJobsForUser(userId);
256
+ await this.removeTasksWithRetirementHeld(userId, assertHeld);
257
+ // Catch a request admitted before retirement that committed its job
258
+ // after the first zero observation. Retiring actors cannot be claimed,
259
+ // and this pass terminalizes any such late queue entry.
260
+ await this.drainDurableJobsForUser(userId);
261
+ await assertHeld();
262
+ return userModel.deleteUserAndEnqueueCleanup(userId, actorUserId);
263
+ }
264
+ finally {
265
+ workTaskService.releaseUserRetirement(userId);
266
+ }
267
+ });
268
+ }
269
+ async removeTasksWithRetirementHeld(userId, assertHeld = async () => undefined) {
270
+ const tasks = await workTaskService.listTaskRecords(userId);
271
+ for (const task of tasks) {
272
+ await assertHeld();
273
+ await this.removeTaskInternal(task.id, userId, true);
145
274
  }
146
- catch (error) {
147
- workTaskService.releaseUserRetirement(userId);
148
- throw error;
275
+ }
276
+ async drainDurableJobsForUser(userId) {
277
+ const service = getDurableJobRuntime().service;
278
+ const deadline = Date.now() + 60000;
279
+ while (true) {
280
+ // Cleanup jobs initiated by this actor protect other already-deleted
281
+ // owners. They retain audit attribution to the actor and must reach
282
+ // success before this identity can disappear; cancelling them strands
283
+ // the other owner's vectors/blobs forever.
284
+ await service.cancelAllForActor(userId, 'actor-revoked', {
285
+ excludeJobTypes: [OWNER_DELETE_CONTENT_JOB_TYPE],
286
+ });
287
+ const ordinaryActive = await service.countActiveForActor(userId, {
288
+ excludeJobTypes: [OWNER_DELETE_CONTENT_JOB_TYPE],
289
+ });
290
+ const cleanupActive = await service.countActiveForActor(userId, {
291
+ jobTypes: [OWNER_DELETE_CONTENT_JOB_TYPE],
292
+ });
293
+ const cleanupNotSucceeded = await service.countNonSucceededForActor(userId, {
294
+ jobTypes: [OWNER_DELETE_CONTENT_JOB_TYPE],
295
+ excludeHandledLifecycleJobs: true,
296
+ });
297
+ if (ordinaryActive === 0 &&
298
+ cleanupActive === 0 &&
299
+ cleanupNotSucceeded === 0) {
300
+ return;
301
+ }
302
+ if (cleanupActive === 0 && cleanupNotSucceeded > 0) {
303
+ throw new WorkConflictError('This account remains retired because an initiated owner cleanup did not succeed.');
304
+ }
305
+ if (Date.now() >= deadline) {
306
+ throw new WorkConflictError('This account remains retired while its jobs and initiated owner cleanups finish draining.');
307
+ }
308
+ await new Promise(resolve => setTimeout(resolve, 100));
149
309
  }
150
310
  }
151
311
  async revokeWorkAccessForUser(userId, revoke) {
312
+ return workTaskService.withUserLifecycleLease(userId, assertHeld => this.revokeWorkAccessWithLeaseHeld(userId, revoke, assertHeld));
313
+ }
314
+ async revokeWorkAccessWithLeaseHeld(userId, revoke, assertHeld) {
152
315
  workTaskService.beginUserRetirement(userId);
153
- const tasks = workTaskService.listTaskRecords(userId);
316
+ const tasks = await workTaskService.listTaskRecords(userId);
154
317
  const suspendedTaskIds = [];
155
318
  try {
156
319
  for (const task of tasks) {
@@ -160,8 +323,9 @@ export class WorkAgentService {
160
323
  // Persist revocation before depending on Docker cleanup. Even when a
161
324
  // daemon outage prevents teardown, current-role authorization denies
162
325
  // every subsequent Work request and a retry/restart can finish cleanup.
326
+ await assertHeld();
163
327
  const result = await revoke();
164
- const activeRuns = new Map(tasks.map(task => [task.id, workTaskService.getActiveRun(task.id)]));
328
+ const activeRuns = new Map(await Promise.all(tasks.map(async (task) => [task.id, await workTaskService.getActiveRun(task.id)])));
165
329
  for (const run of activeRuns.values()) {
166
330
  if (run)
167
331
  this.controllers.get(run.id)?.abort();
@@ -179,18 +343,18 @@ export class WorkAgentService {
179
343
  }
180
344
  await workRuntimeService.stopContainer(task);
181
345
  if (run &&
182
- isActiveRunStatus(workTaskService.getRun(run.id)?.status)) {
183
- workTaskService.updateRun(run.id, 'cancelled', {
346
+ isActiveRunStatus((await workTaskService.getRun(run.id))?.status)) {
347
+ await workTaskService.updateRun(run.id, 'cancelled', {
184
348
  error: 'Administrator access was revoked.',
185
349
  finished: true,
186
350
  });
187
- workTaskService.updateTaskStatus(task.id, 'cancelled');
188
- workEventService.publish(task.id, run.id, 'done', {
351
+ await workTaskService.updateTaskStatus(task.id, 'cancelled');
352
+ await workEventService.publish(task.id, run.id, 'done', {
189
353
  status: 'cancelled',
190
354
  error: 'Administrator access was revoked.',
191
- });
355
+ }, 'terminal:cancelled');
192
356
  }
193
- workTaskService.updatePreview(task.id, 'stopped');
357
+ await workTaskService.updatePreview(task.id, 'stopped');
194
358
  if (run)
195
359
  await this.executions.get(run.id);
196
360
  }));
@@ -211,14 +375,14 @@ export class WorkAgentService {
211
375
  workTaskService.releaseUserRetirement(userId);
212
376
  }
213
377
  async removeTaskInternal(taskId, userId, allowRetiringUser) {
214
- const task = workTaskService.beginTaskRetirement(taskId, userId, allowRetiringUser);
378
+ const task = await workTaskService.beginTaskRetirement(taskId, userId, allowRetiringUser);
215
379
  try {
216
- if (workTaskService.getActiveRun(taskId)) {
380
+ if (await workTaskService.getActiveRun(taskId)) {
217
381
  await this.cancelTask(task, userId);
218
382
  }
219
383
  await workRuntimeService.removeTask(task, allowRetiringUser);
220
384
  try {
221
- workTaskService.deleteTask(taskId, userId);
385
+ await workTaskService.deleteTask(taskId, userId);
222
386
  }
223
387
  finally {
224
388
  workRuntimeService.finalizeTaskRemoval(taskId);
@@ -235,7 +399,7 @@ export class WorkAgentService {
235
399
  for (const controller of this.controllers.values()) {
236
400
  controller.abort();
237
401
  }
238
- const tasks = workTaskService.listAllTaskRecords();
402
+ const tasks = await workTaskService.listAllTaskRecords();
239
403
  const results = await Promise.allSettled(tasks.map(task => workRuntimeService.stopContainer(task)));
240
404
  await Promise.allSettled(this.executions.values());
241
405
  return {
@@ -245,6 +409,7 @@ export class WorkAgentService {
245
409
  }
246
410
  async execute(taskId, runId, userId) {
247
411
  const controller = new AbortController();
412
+ const durableAttemptIdentity = String((await getDurableJobRuntime().service.getByIdempotency(userId, WORK_EXECUTE_IDEMPOTENCY_SCOPE, runId))?.attemptCount ?? 0);
248
413
  this.controllers.set(runId, controller);
249
414
  let task;
250
415
  let releaseExecutionLease;
@@ -256,8 +421,8 @@ export class WorkAgentService {
256
421
  executionContainerSettled = true;
257
422
  };
258
423
  try {
259
- task = workTaskService.requireTaskRecord(taskId, userId);
260
- const run = workTaskService.getRun(runId);
424
+ task = await workTaskService.requireTaskRecord(taskId, userId);
425
+ const run = await workTaskService.getRun(runId);
261
426
  if (!run || run.taskId !== taskId) {
262
427
  throw new WorkNotFoundError('Work run not found.');
263
428
  }
@@ -266,32 +431,32 @@ export class WorkAgentService {
266
431
  if (run.status !== 'queued') {
267
432
  return;
268
433
  }
269
- workTaskService.updateRun(runId, 'preparing', { started: true });
270
- workTaskService.updateTaskStatus(taskId, 'preparing');
271
- workEventService.publish(taskId, runId, 'run_state', {
434
+ await workTaskService.updateRun(runId, 'preparing', { started: true });
435
+ await workTaskService.updateTaskStatus(taskId, 'preparing');
436
+ await workEventService.publish(taskId, runId, 'run_state', {
272
437
  status: 'preparing',
273
438
  phase: 'preparing',
274
- });
439
+ }, 'transition:preparing', durableAttemptIdentity);
275
440
  for (const skill of WORK_AGENT_SKILLS) {
276
- workEventService.publish(taskId, runId, 'skill_loaded', {
441
+ await workEventService.publish(taskId, runId, 'skill_loaded', {
277
442
  id: skill.id,
278
443
  name: skill.title,
279
444
  description: skill.instructions[0],
280
- });
445
+ }, `skill:${skill.id}`, durableAttemptIdentity);
281
446
  }
282
447
  releaseExecutionLease = await workRuntimeService.prepare(task, controller.signal);
283
- this.throwIfCancelled(runId, controller);
284
- workTaskService.updateRun(runId, 'running', { started: true });
285
- workTaskService.updateTaskStatus(taskId, 'running');
448
+ await this.throwIfCancelled(runId, controller);
449
+ await workTaskService.updateRun(runId, 'running', { started: true });
450
+ await workTaskService.updateTaskStatus(taskId, 'running');
286
451
  const roundLimit = workRuntimeService.limits.maxRounds;
287
452
  const toolCallLimit = workToolCallBudget(roundLimit);
288
453
  const providerSelection = {
289
454
  providerType: run.providerType,
290
455
  providerId: run.providerId,
291
456
  };
292
- const providerRoutingFingerprint = workModelProviderService.getRoutingFingerprint(run.model, providerSelection, userId);
293
- const providerStateScope = workModelProviderService.getResponsesStateScope(run.model, providerSelection, userId);
294
- const messages = this.contextMessages(task, roundLimit, providerStateScope, run);
457
+ const providerRoutingFingerprint = await workModelProviderService.getRoutingFingerprint(run.model, providerSelection, userId);
458
+ const providerStateScope = await workModelProviderService.getResponsesStateScope(run.model, providerSelection, userId);
459
+ const messages = await this.contextMessages(task, roundLimit, providerStateScope, run);
295
460
  let totalToolCalls = 0;
296
461
  let accumulatedInputTokens = 0;
297
462
  let accumulatedOutputTokens = 0;
@@ -300,25 +465,25 @@ export class WorkAgentService {
300
465
  let budgetReason = 'round';
301
466
  let emptyRoundNudges = 0;
302
467
  roundLoop: for (let round = 0; round < roundLimit; round++) {
303
- this.throwIfCancelled(runId, controller);
304
- workEventService.publish(taskId, runId, 'run_state', {
468
+ await this.throwIfCancelled(runId, controller);
469
+ await workEventService.publish(taskId, runId, 'run_state', {
305
470
  status: 'running',
306
471
  phase: 'thinking',
307
472
  round: round + 1,
308
473
  roundLimit,
309
- });
310
- const contentStream = new WorkDeltaPublisher(taskId, runId, 'assistant_delta', streamedAssistantTotal);
311
- const reasoningStream = new WorkDeltaPublisher(taskId, runId, 'reasoning_delta', streamedReasoningTotal);
474
+ }, `round:${round + 1}:thinking`, durableAttemptIdentity);
475
+ const contentStream = new WorkDeltaPublisher(taskId, runId, 'assistant_delta', streamedAssistantTotal, `round:${round + 1}`, durableAttemptIdentity);
476
+ const reasoningStream = new WorkDeltaPublisher(taskId, runId, 'reasoning_delta', streamedReasoningTotal, `round:${round + 1}`, durableAttemptIdentity);
312
477
  let roundInputTokens = 0;
313
478
  let roundOutputTokens = 0;
314
479
  const roundStartedAt = Date.now();
315
480
  let response;
316
481
  try {
317
- this.assertStableProviderRouting(run, userId, providerRoutingFingerprint);
482
+ await this.assertStableProviderRouting(run, userId, providerRoutingFingerprint);
318
483
  response = await workModelProviderService.generateChatStreamResponse({
319
484
  model: run.model,
320
485
  messages,
321
- tools: workToolSchemasForTask(task),
486
+ tools: await workToolSchemasForTask(task),
322
487
  stream: true,
323
488
  }, providerSelection, userId, {
324
489
  onContent: delta => contentStream.push(delta),
@@ -326,7 +491,7 @@ export class WorkAgentService {
326
491
  onUsage: usage => {
327
492
  roundInputTokens = usage.promptTokens ?? roundInputTokens;
328
493
  roundOutputTokens = usage.completionTokens ?? roundOutputTokens;
329
- workEventService.publish(taskId, runId, 'usage', {
494
+ void workEventService.publish(taskId, runId, 'usage', {
330
495
  inputTokens: accumulatedInputTokens + roundInputTokens,
331
496
  outputTokens: accumulatedOutputTokens + roundOutputTokens,
332
497
  totalTokens: accumulatedInputTokens +
@@ -344,7 +509,7 @@ export class WorkAgentService {
344
509
  streamedAssistantTotal = contentStream.currentTotal;
345
510
  streamedReasoningTotal = reasoningStream.currentTotal;
346
511
  }
347
- this.throwIfCancelled(runId, controller);
512
+ await this.throwIfCancelled(runId, controller);
348
513
  assertCompleteProviderResponse(response);
349
514
  accumulatedInputTokens += roundInputTokens;
350
515
  accumulatedOutputTokens += roundOutputTokens;
@@ -377,7 +542,7 @@ export class WorkAgentService {
377
542
  const assistantContent = boundUtf8(response.message?.content?.trim() || '', 100000);
378
543
  const reasoningContent = boundUtf8(response.message?.thinking?.trim() || '', 100000);
379
544
  if (reasoningContent) {
380
- workTaskService.addMessage(taskId, runId, 'assistant', 'reasoning', reasoningContent, { providerExposed: true, round: round + 1 });
545
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'reasoning', reasoningContent, { providerExposed: true, round: round + 1 });
381
546
  }
382
547
  if (toolCalls.length === 0) {
383
548
  if (!assistantContent &&
@@ -394,7 +559,7 @@ export class WorkAgentService {
394
559
  });
395
560
  }
396
561
  if (providerStateMetadata) {
397
- workTaskService.addMessage(taskId, runId, 'assistant', 'provider_state', '', providerStateMetadata);
562
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'provider_state', '', providerStateMetadata);
398
563
  }
399
564
  messages.push({
400
565
  role: 'user',
@@ -404,7 +569,7 @@ export class WorkAgentService {
404
569
  }
405
570
  const finalContent = assistantContent ||
406
571
  'The model completed without returning a text response.';
407
- workTaskService.addMessage(taskId, runId, 'assistant', 'message', finalContent, assistantContent
572
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'message', finalContent, assistantContent
408
573
  ? providerStateMetadata
409
574
  : {
410
575
  // The placeholder tells the user what happened, but it is
@@ -417,15 +582,17 @@ export class WorkAgentService {
417
582
  // stopped or been retained for a verified live preview. Consumers
418
583
  // can then refresh files immediately without racing teardown.
419
584
  await settleExecutionContainer();
420
- this.throwIfCancelled(runId, controller);
421
- if (!isActiveRunStatus(workTaskService.getRun(runId)?.status)) {
585
+ await this.throwIfCancelled(runId, controller);
586
+ if (!isActiveRunStatus((await workTaskService.getRun(runId))?.status)) {
422
587
  return;
423
588
  }
424
- workTaskService.updateRun(runId, 'completed', { finished: true });
425
- workTaskService.updateTaskStatus(taskId, 'completed');
426
- workEventService.publish(taskId, runId, 'done', {
427
- status: 'completed',
589
+ await workTaskService.updateRun(runId, 'completed', {
590
+ finished: true,
428
591
  });
592
+ await workTaskService.updateTaskStatus(taskId, 'completed');
593
+ await workEventService.publish(taskId, runId, 'done', {
594
+ status: 'completed',
595
+ }, 'terminal:completed');
429
596
  return;
430
597
  }
431
598
  const toolValidationErrors = new Map();
@@ -448,29 +615,29 @@ export class WorkAgentService {
448
615
  // restored context keeps the tool history instead of dropping it.
449
616
  const persistedAssistantMetadata = providerStateMetadata ?? toPersistedWorkChatToolCalls(run, toolCalls);
450
617
  if (assistantContent) {
451
- workTaskService.addMessage(taskId, runId, 'assistant', 'message', assistantContent, persistedAssistantMetadata);
618
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'message', assistantContent, persistedAssistantMetadata);
452
619
  }
453
620
  else if (persistedAssistantMetadata) {
454
- workTaskService.addMessage(taskId, runId, 'assistant', 'provider_state', '', persistedAssistantMetadata);
621
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'provider_state', '', persistedAssistantMetadata);
455
622
  }
456
623
  for (const call of toolCalls) {
457
- this.throwIfCancelled(runId, controller);
624
+ await this.throwIfCancelled(runId, controller);
458
625
  const toolCallMetadata = summarizeToolCall(call);
459
- const toolCallMessage = workTaskService.addMessage(taskId, runId, 'assistant', 'tool_call', `Calling ${call.function.name}`, toolCallMetadata);
460
- workEventService.publish(taskId, runId, 'run_state', {
626
+ const toolCallMessage = await workTaskService.addMessage(taskId, runId, 'assistant', 'tool_call', `Calling ${call.function.name}`, toolCallMetadata);
627
+ await workEventService.publish(taskId, runId, 'run_state', {
461
628
  status: 'running',
462
629
  phase: 'using_tool',
463
630
  round: round + 1,
464
631
  roundLimit,
465
- });
466
- workEventService.publish(taskId, runId, 'tool_call', {
632
+ }, `tool:${call.id}:state`, durableAttemptIdentity);
633
+ await workEventService.publish(taskId, runId, 'tool_call', {
467
634
  toolCallId: call.id,
468
635
  name: call.function.name,
469
636
  arguments: toolCallMetadata,
470
637
  metadata: toolCallMetadata,
471
638
  phase: 'running',
472
639
  message: toolCallMessage,
473
- });
640
+ }, `message:${toolCallMessage.id}`);
474
641
  let toolOutput;
475
642
  let toolMetadata = {
476
643
  name: call.function.name,
@@ -501,15 +668,15 @@ export class WorkAgentService {
501
668
  toolMetadata.outputTruncated = true;
502
669
  toolOutput = boundedOutput;
503
670
  }
504
- const toolResultMessage = workTaskService.addMessage(taskId, runId, 'tool', 'tool_result', toolOutput, toolMetadata);
505
- workEventService.publish(taskId, runId, 'tool_result', {
671
+ const toolResultMessage = await workTaskService.addMessage(taskId, runId, 'tool', 'tool_result', toolOutput, toolMetadata);
672
+ await workEventService.publish(taskId, runId, 'tool_result', {
506
673
  toolCallId: call.id,
507
674
  name: call.function.name,
508
675
  phase: toolMetadata.error ? 'failed' : 'completed',
509
676
  content: toolOutput,
510
677
  error: toolMetadata.error === true,
511
678
  message: toolResultMessage,
512
- });
679
+ }, `message:${toolResultMessage.id}`);
513
680
  messages.push({
514
681
  role: 'tool',
515
682
  content: toolOutput,
@@ -518,22 +685,22 @@ export class WorkAgentService {
518
685
  });
519
686
  }
520
687
  }
521
- this.throwIfCancelled(runId, controller);
522
- workEventService.publish(taskId, runId, 'run_state', {
688
+ await this.throwIfCancelled(runId, controller);
689
+ await workEventService.publish(taskId, runId, 'run_state', {
523
690
  status: 'running',
524
691
  phase: 'responding',
525
692
  round: roundLimit,
526
693
  roundLimit,
527
- });
528
- const handoffContentStream = new WorkDeltaPublisher(taskId, runId, 'assistant_delta', streamedAssistantTotal);
529
- const handoffReasoningStream = new WorkDeltaPublisher(taskId, runId, 'reasoning_delta', streamedReasoningTotal);
694
+ }, 'handoff:responding', durableAttemptIdentity);
695
+ const handoffContentStream = new WorkDeltaPublisher(taskId, runId, 'assistant_delta', streamedAssistantTotal, 'handoff', durableAttemptIdentity);
696
+ const handoffReasoningStream = new WorkDeltaPublisher(taskId, runId, 'reasoning_delta', streamedReasoningTotal, 'handoff', durableAttemptIdentity);
530
697
  let handoffInputTokens = 0;
531
698
  let handoffOutputTokens = 0;
532
699
  const handoffStartedAt = Date.now();
533
700
  let handoffResponse;
534
701
  try {
535
702
  try {
536
- this.assertStableProviderRouting(run, userId, providerRoutingFingerprint);
703
+ await this.assertStableProviderRouting(run, userId, providerRoutingFingerprint);
537
704
  handoffResponse =
538
705
  await workModelProviderService.generateChatStreamResponse({
539
706
  model: run.model,
@@ -556,7 +723,7 @@ export class WorkAgentService {
556
723
  handoffInputTokens = usage.promptTokens ?? handoffInputTokens;
557
724
  handoffOutputTokens =
558
725
  usage.completionTokens ?? handoffOutputTokens;
559
- workEventService.publish(taskId, runId, 'usage', {
726
+ void workEventService.publish(taskId, runId, 'usage', {
560
727
  inputTokens: accumulatedInputTokens + handoffInputTokens,
561
728
  outputTokens: accumulatedOutputTokens + handoffOutputTokens,
562
729
  totalTokens: accumulatedInputTokens +
@@ -589,48 +756,48 @@ export class WorkAgentService {
589
756
  handoffContentStream.flush();
590
757
  handoffReasoningStream.flush();
591
758
  }
592
- this.throwIfCancelled(runId, controller);
759
+ await this.throwIfCancelled(runId, controller);
593
760
  const handoffReasoning = boundUtf8(handoffResponse.message?.thinking?.trim() || '', 100000);
594
761
  if (handoffReasoning) {
595
- workTaskService.addMessage(taskId, runId, 'assistant', 'reasoning', handoffReasoning, { providerExposed: true, budgetHandoff: true });
762
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'reasoning', handoffReasoning, { providerExposed: true, budgetHandoff: true });
596
763
  }
597
764
  const handoffContent = boundUtf8(handoffResponse.message?.content?.trim() ||
598
765
  `The run reached its ${budgetReason} budget. Start a follow-up run to continue in the same workspace.`, 100000);
599
766
  const handoffProviderStateMetadata = toPersistedWorkProviderState(run, handoffResponse.message.providerMetadata);
600
- workTaskService.addMessage(taskId, runId, 'assistant', 'message', handoffContent, {
767
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'message', handoffContent, {
601
768
  budgetHandoff: true,
602
769
  budgetReason,
603
770
  ...handoffProviderStateMetadata,
604
771
  });
605
772
  await settleExecutionContainer();
606
- this.throwIfCancelled(runId, controller);
607
- if (!isActiveRunStatus(workTaskService.getRun(runId)?.status))
773
+ await this.throwIfCancelled(runId, controller);
774
+ if (!isActiveRunStatus((await workTaskService.getRun(runId))?.status))
608
775
  return;
609
- workTaskService.updateRun(runId, 'needs_input', { finished: true });
610
- workTaskService.updateTaskStatus(taskId, 'needs_input');
611
- workEventService.publish(taskId, runId, 'done', {
776
+ await workTaskService.updateRun(runId, 'needs_input', { finished: true });
777
+ await workTaskService.updateTaskStatus(taskId, 'needs_input');
778
+ await workEventService.publish(taskId, runId, 'done', {
612
779
  status: 'needs_input',
613
780
  budgetReason,
614
- });
781
+ }, 'terminal:needs_input');
615
782
  }
616
783
  catch (error) {
617
- const currentRun = workTaskService.getRun(runId);
784
+ const currentRun = await workTaskService.getRun(runId);
618
785
  if (currentRun?.status === 'cancelled' || controller.signal.aborted) {
619
786
  if (task) {
620
787
  try {
621
788
  await workRuntimeService.stopContainer(task);
622
789
  executionContainerSettled = true;
623
- if (isActiveRunStatus(workTaskService.getRun(runId)?.status)) {
624
- workTaskService.updateRun(runId, 'cancelled', {
790
+ if (isActiveRunStatus((await workTaskService.getRun(runId))?.status)) {
791
+ await workTaskService.updateRun(runId, 'cancelled', {
625
792
  error: 'Cancelled by user.',
626
793
  finished: true,
627
794
  });
628
- workTaskService.updateTaskStatus(taskId, 'cancelled');
629
- workTaskService.updatePreview(taskId, 'stopped');
630
- workEventService.publish(taskId, runId, 'done', {
795
+ await workTaskService.updateTaskStatus(taskId, 'cancelled');
796
+ await workTaskService.updatePreview(taskId, 'stopped');
797
+ await workEventService.publish(taskId, runId, 'done', {
631
798
  status: 'cancelled',
632
799
  error: 'Cancelled by user.',
633
- });
800
+ }, 'terminal:cancelled');
634
801
  }
635
802
  }
636
803
  catch (cleanupError) {
@@ -643,39 +810,39 @@ export class WorkAgentService {
643
810
  ? error.message
644
811
  : 'Work run failed unexpectedly.';
645
812
  await settleExecutionContainer();
646
- const settledRun = workTaskService.getRun(runId);
813
+ const settledRun = await workTaskService.getRun(runId);
647
814
  if (controller.signal.aborted || settledRun?.status === 'cancelled') {
648
815
  if (isActiveRunStatus(settledRun?.status)) {
649
- workTaskService.updateRun(runId, 'cancelled', {
816
+ await workTaskService.updateRun(runId, 'cancelled', {
650
817
  error: 'Cancelled by user.',
651
818
  finished: true,
652
819
  });
653
- workTaskService.updateTaskStatus(taskId, 'cancelled');
654
- workTaskService.updatePreview(taskId, 'stopped');
655
- workEventService.publish(taskId, runId, 'done', {
820
+ await workTaskService.updateTaskStatus(taskId, 'cancelled');
821
+ await workTaskService.updatePreview(taskId, 'stopped');
822
+ await workEventService.publish(taskId, runId, 'done', {
656
823
  status: 'cancelled',
657
824
  error: 'Cancelled by user.',
658
- });
825
+ }, 'terminal:cancelled');
659
826
  }
660
827
  return;
661
828
  }
662
829
  if (!isActiveRunStatus(settledRun?.status)) {
663
830
  return;
664
831
  }
665
- workTaskService.addMessage(taskId, runId, 'assistant', 'error', message);
666
- workTaskService.updateRun(runId, 'failed', {
832
+ await workTaskService.addMessage(taskId, runId, 'assistant', 'error', message);
833
+ await workTaskService.updateRun(runId, 'failed', {
667
834
  error: message,
668
835
  finished: true,
669
836
  });
670
- workTaskService.updateTaskStatus(taskId, 'failed');
671
- workEventService.publish(taskId, runId, 'error', {
837
+ await workTaskService.updateTaskStatus(taskId, 'failed');
838
+ await workEventService.publish(taskId, runId, 'error', {
672
839
  message,
673
840
  code: error instanceof WorkAgentHttpError ? error.code : undefined,
674
- });
675
- workEventService.publish(taskId, runId, 'done', {
841
+ }, 'terminal:error');
842
+ await workEventService.publish(taskId, runId, 'done', {
676
843
  status: 'failed',
677
844
  error: message,
678
- });
845
+ }, 'terminal:failed');
679
846
  }
680
847
  finally {
681
848
  this.controllers.delete(runId);
@@ -701,8 +868,8 @@ export class WorkAgentService {
701
868
  }
702
869
  try {
703
870
  await workRuntimeService.stopContainer(task);
704
- if (workTaskService.getTaskRecord(task.id, task.userId)) {
705
- workTaskService.updatePreview(task.id, 'stopped');
871
+ if (await workTaskService.getTaskRecord(task.id, task.userId)) {
872
+ await workTaskService.updatePreview(task.id, 'stopped');
706
873
  }
707
874
  }
708
875
  catch (error) {
@@ -711,8 +878,8 @@ export class WorkAgentService {
711
878
  logger.error(`Could not stop idle Work container ${task.containerName}:`, error);
712
879
  }
713
880
  }
714
- assertStableProviderRouting(run, userId, expectedFingerprint) {
715
- const currentFingerprint = workModelProviderService.getRoutingFingerprint(run.model, {
881
+ async assertStableProviderRouting(run, userId, expectedFingerprint) {
882
+ const currentFingerprint = await workModelProviderService.getRoutingFingerprint(run.model, {
716
883
  providerType: run.providerType,
717
884
  providerId: run.providerId,
718
885
  }, userId);
@@ -720,8 +887,8 @@ export class WorkAgentService {
720
887
  throw new WorkAgentHttpError('The provider routing changed while this Work run was active. Start a new run with the updated provider configuration.', 409, 'WORK_PROVIDER_ROUTING_CHANGED');
721
888
  }
722
889
  }
723
- contextMessages(task, roundLimit, providerStateScope, provider = task) {
724
- const persisted = restorePersistedWorkContext(workTaskService.getRecentModelContextMessages(task.id, 30), provider, providerStateScope);
890
+ async contextMessages(task, roundLimit, providerStateScope, provider = task) {
891
+ const persisted = restorePersistedWorkContext(await workTaskService.getRecentModelContextMessages(task.id, 30), provider, providerStateScope);
725
892
  return [
726
893
  {
727
894
  role: 'system',
@@ -779,8 +946,8 @@ export class WorkAgentService {
779
946
  }
780
947
  case 'web_search': {
781
948
  if (!task.networkEnabled ||
782
- !isWebSearchAvailable() ||
783
- !userCanUseWebSearch(userModel.getUserById(task.userId))) {
949
+ !(await isWebSearchAvailable()) ||
950
+ !(await userCanUseWebSearch(await userModel.getUserById(task.userId)))) {
784
951
  throw new WorkAgentHttpError('Web search is not available for this task.', 403, 'WORK_WEB_SEARCH_UNAVAILABLE');
785
952
  }
786
953
  const query = requiredString(args.query, 'query');
@@ -803,7 +970,7 @@ export class WorkAgentService {
803
970
  case 'start_preview': {
804
971
  const url = await workRuntimeService.startPreview(task, optionalString(args.command), {
805
972
  onStarting: () => workTaskService.beginPreview(task.id, task.userId, true),
806
- onRunning: previewUrl => workTaskService.updatePreview(task.id, 'running', previewUrl),
973
+ onRunning: (previewUrl, endpoint) => workTaskService.updatePreview(task.id, 'running', previewUrl, endpoint),
807
974
  onFailed: () => workTaskService.updatePreview(task.id, 'failed'),
808
975
  });
809
976
  return {
@@ -820,21 +987,24 @@ export class WorkAgentService {
820
987
  throw new WorkAgentHttpError(`Unknown tool: ${call.function.name}`, 400, 'WORK_UNKNOWN_TOOL');
821
988
  }
822
989
  }
823
- throwIfCancelled(runId, controller) {
990
+ async throwIfCancelled(runId, controller) {
824
991
  if (controller.signal.aborted ||
825
- workTaskService.getRun(runId)?.status === 'cancelled') {
992
+ (await workTaskService.getRun(runId))?.status === 'cancelled') {
826
993
  throw new WorkAgentHttpError('Work run was cancelled.', 409, 'WORK_RUN_CANCELLED');
827
994
  }
828
995
  }
829
996
  }
830
997
  class WorkDeltaPublisher {
831
- constructor(taskId, runId, type, initialTotal = '') {
998
+ constructor(taskId, runId, type, initialTotal = '', occurrenceScope = 'stream', attemptIdentity = '0') {
832
999
  this.taskId = taskId;
833
1000
  this.runId = runId;
834
1001
  this.type = type;
1002
+ this.occurrenceScope = occurrenceScope;
1003
+ this.attemptIdentity = attemptIdentity;
835
1004
  this.pending = '';
836
1005
  this.total = '';
837
1006
  this.separatorPending = '';
1007
+ this.sequence = 0;
838
1008
  this.total = initialTotal;
839
1009
  this.separatorPending = initialTotal ? '\n\n' : '';
840
1010
  }
@@ -862,9 +1032,7 @@ class WorkDeltaPublisher {
862
1032
  return;
863
1033
  const delta = this.pending;
864
1034
  this.pending = '';
865
- workEventService.publish(this.taskId, this.runId, this.type, {
866
- delta,
867
- });
1035
+ workEventService.publish(this.taskId, this.runId, this.type, { delta, total: this.total }, `${this.occurrenceScope}:${++this.sequence}`, this.attemptIdentity);
868
1036
  }
869
1037
  }
870
1038
  export class WorkAgentHttpError extends Error {
@@ -1009,7 +1177,7 @@ export function restorePersistedWorkContext(messages, provider, expectedStateSco
1009
1177
  continue;
1010
1178
  restored.push({
1011
1179
  role: 'tool',
1012
- content: 'Tool execution was interrupted; outcome unknown. Inspect the workspace before retrying.',
1180
+ content: INTERRUPTED_TOOL_RESULT,
1013
1181
  tool_name: call.name,
1014
1182
  tool_call_id: call.id,
1015
1183
  });