libre-webui 0.24.1 → 0.26.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 (543) hide show
  1. package/README.md +36 -15
  2. package/backend/dist/index.d.ts.map +1 -1
  3. package/backend/dist/index.js +35 -4
  4. package/backend/dist/index.js.map +1 -1
  5. package/backend/dist/middleware/auth.d.ts +7 -0
  6. package/backend/dist/middleware/auth.d.ts.map +1 -1
  7. package/backend/dist/middleware/auth.js +26 -0
  8. package/backend/dist/middleware/auth.js.map +1 -1
  9. package/backend/dist/middleware/index.d.ts +20 -0
  10. package/backend/dist/middleware/index.d.ts.map +1 -1
  11. package/backend/dist/middleware/index.js +105 -2
  12. package/backend/dist/middleware/index.js.map +1 -1
  13. package/backend/dist/models/personaModel.d.ts.map +1 -1
  14. package/backend/dist/models/personaModel.js +2 -0
  15. package/backend/dist/models/personaModel.js.map +1 -1
  16. package/backend/dist/observability/otel.d.ts +40 -0
  17. package/backend/dist/observability/otel.d.ts.map +1 -0
  18. package/backend/dist/observability/otel.js +337 -0
  19. package/backend/dist/observability/otel.js.map +1 -0
  20. package/backend/dist/observability/requestContext.d.ts +14 -0
  21. package/backend/dist/observability/requestContext.d.ts.map +1 -0
  22. package/backend/dist/observability/requestContext.js +21 -0
  23. package/backend/dist/observability/requestContext.js.map +1 -0
  24. package/backend/dist/persistence/chatGenerationTypes.d.ts +9 -0
  25. package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -1
  26. package/backend/dist/persistence/extensionTypes.d.ts +13 -0
  27. package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
  28. package/backend/dist/persistence/extensionTypes.js.map +1 -1
  29. package/backend/dist/persistence/index.d.ts +1 -1
  30. package/backend/dist/persistence/index.d.ts.map +1 -1
  31. package/backend/dist/persistence/index.js.map +1 -1
  32. package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts +9 -0
  33. package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts.map +1 -0
  34. package/backend/dist/persistence/postgresAgentFoundationMigration.js +164 -0
  35. package/backend/dist/persistence/postgresAgentFoundationMigration.js.map +1 -0
  36. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
  37. package/backend/dist/persistence/postgresExtensionRepositories.js +46 -2
  38. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
  39. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts +10 -0
  40. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts.map +1 -0
  41. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js +148 -0
  42. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js.map +1 -0
  43. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  44. package/backend/dist/persistence/postgresMigrationRegistry.js +12 -0
  45. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  46. package/backend/dist/persistence/postgresNotesV2Migration.d.ts +4 -0
  47. package/backend/dist/persistence/postgresNotesV2Migration.d.ts.map +1 -0
  48. package/backend/dist/persistence/postgresNotesV2Migration.js +57 -0
  49. package/backend/dist/persistence/postgresNotesV2Migration.js.map +1 -0
  50. package/backend/dist/persistence/postgresPersonalAutomationsMigration.d.ts +8 -0
  51. package/backend/dist/persistence/postgresPersonalAutomationsMigration.d.ts.map +1 -0
  52. package/backend/dist/persistence/postgresPersonalAutomationsMigration.js +98 -0
  53. package/backend/dist/persistence/postgresPersonalAutomationsMigration.js.map +1 -0
  54. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  55. package/backend/dist/persistence/postgresResourceRepositories.js +1972 -63
  56. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  57. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts +9 -0
  58. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts.map +1 -0
  59. package/backend/dist/persistence/postgresSkillFilesMigration.js +50 -0
  60. package/backend/dist/persistence/postgresSkillFilesMigration.js.map +1 -0
  61. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts +10 -0
  62. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts.map +1 -0
  63. package/backend/dist/persistence/postgresTeamCollaborationMigration.js +161 -0
  64. package/backend/dist/persistence/postgresTeamCollaborationMigration.js.map +1 -0
  65. package/backend/dist/persistence/resourceTypes.d.ts +622 -3
  66. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  67. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  68. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  69. package/backend/dist/persistence/sqliteExtensionRepositories.js +26 -4
  70. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  71. package/backend/dist/persistence/sqliteMigrations.d.ts +10 -0
  72. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  73. package/backend/dist/persistence/sqliteMigrations.js +1396 -48
  74. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  75. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  76. package/backend/dist/persistence/sqliteResourceRepositories.js +1680 -58
  77. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  78. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  79. package/backend/dist/persistence/sqliteToPostgresMigration.js +297 -2
  80. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  81. package/backend/dist/platform/jobs/domainJobContracts.d.ts +11 -0
  82. package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
  83. package/backend/dist/platform/jobs/domainJobContracts.js +11 -0
  84. package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
  85. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
  86. package/backend/dist/platform/jobs/domainJobHandlers.js +409 -2
  87. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
  88. package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -1
  89. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +4 -2
  90. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -1
  91. package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -1
  92. package/backend/dist/platform/jobs/postgresDurableJobWorker.js +4 -2
  93. package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -1
  94. package/backend/dist/platform/storage/pgVectorStore.d.ts +2 -1
  95. package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -1
  96. package/backend/dist/platform/storage/pgVectorStore.js +51 -0
  97. package/backend/dist/platform/storage/pgVectorStore.js.map +1 -1
  98. package/backend/dist/platform/storage/platformDomainRepositories.d.ts +8 -2
  99. package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -1
  100. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -1
  101. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +25 -4
  102. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -1
  103. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +2 -1
  104. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -1
  105. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +35 -0
  106. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -1
  107. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -1
  108. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +26 -3
  109. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -1
  110. package/backend/dist/platform/storage/vectorStore.d.ts +14 -0
  111. package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -1
  112. package/backend/dist/platform/storage/vectorStore.js.map +1 -1
  113. package/backend/dist/routes/access.d.ts.map +1 -1
  114. package/backend/dist/routes/access.js +84 -3
  115. package/backend/dist/routes/access.js.map +1 -1
  116. package/backend/dist/routes/automations.d.ts +3 -0
  117. package/backend/dist/routes/automations.d.ts.map +1 -0
  118. package/backend/dist/routes/automations.js +232 -0
  119. package/backend/dist/routes/automations.js.map +1 -0
  120. package/backend/dist/routes/calendar.d.ts +3 -0
  121. package/backend/dist/routes/calendar.d.ts.map +1 -0
  122. package/backend/dist/routes/calendar.js +309 -0
  123. package/backend/dist/routes/calendar.js.map +1 -0
  124. package/backend/dist/routes/channels.d.ts +3 -0
  125. package/backend/dist/routes/channels.d.ts.map +1 -0
  126. package/backend/dist/routes/channels.js +447 -0
  127. package/backend/dist/routes/channels.js.map +1 -0
  128. package/backend/dist/routes/chat.d.ts.map +1 -1
  129. package/backend/dist/routes/chat.js +237 -10
  130. package/backend/dist/routes/chat.js.map +1 -1
  131. package/backend/dist/routes/costs.d.ts +3 -0
  132. package/backend/dist/routes/costs.d.ts.map +1 -0
  133. package/backend/dist/routes/costs.js +191 -0
  134. package/backend/dist/routes/costs.js.map +1 -0
  135. package/backend/dist/routes/documents.d.ts.map +1 -1
  136. package/backend/dist/routes/documents.js +64 -21
  137. package/backend/dist/routes/documents.js.map +1 -1
  138. package/backend/dist/routes/evaluations.d.ts +3 -0
  139. package/backend/dist/routes/evaluations.d.ts.map +1 -0
  140. package/backend/dist/routes/evaluations.js +352 -0
  141. package/backend/dist/routes/evaluations.js.map +1 -0
  142. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  143. package/backend/dist/routes/imageGen.js +2 -1
  144. package/backend/dist/routes/imageGen.js.map +1 -1
  145. package/backend/dist/routes/media.d.ts.map +1 -1
  146. package/backend/dist/routes/media.js +228 -7
  147. package/backend/dist/routes/media.js.map +1 -1
  148. package/backend/dist/routes/notes.d.ts.map +1 -1
  149. package/backend/dist/routes/notes.js +149 -36
  150. package/backend/dist/routes/notes.js.map +1 -1
  151. package/backend/dist/routes/notifications.d.ts +3 -0
  152. package/backend/dist/routes/notifications.d.ts.map +1 -0
  153. package/backend/dist/routes/notifications.js +213 -0
  154. package/backend/dist/routes/notifications.js.map +1 -0
  155. package/backend/dist/routes/ollama.d.ts.map +1 -1
  156. package/backend/dist/routes/ollama.js +4 -1
  157. package/backend/dist/routes/ollama.js.map +1 -1
  158. package/backend/dist/routes/openaiCompat.d.ts +3 -0
  159. package/backend/dist/routes/openaiCompat.d.ts.map +1 -0
  160. package/backend/dist/routes/openaiCompat.js +314 -0
  161. package/backend/dist/routes/openaiCompat.js.map +1 -0
  162. package/backend/dist/routes/personas.js +1 -1
  163. package/backend/dist/routes/personas.js.map +1 -1
  164. package/backend/dist/routes/prompts.d.ts +3 -0
  165. package/backend/dist/routes/prompts.d.ts.map +1 -0
  166. package/backend/dist/routes/prompts.js +173 -0
  167. package/backend/dist/routes/prompts.js.map +1 -0
  168. package/backend/dist/routes/search.d.ts.map +1 -1
  169. package/backend/dist/routes/search.js +34 -4
  170. package/backend/dist/routes/search.js.map +1 -1
  171. package/backend/dist/routes/skills.d.ts +3 -0
  172. package/backend/dist/routes/skills.d.ts.map +1 -0
  173. package/backend/dist/routes/skills.js +246 -0
  174. package/backend/dist/routes/skills.js.map +1 -0
  175. package/backend/dist/routes/stt.d.ts.map +1 -1
  176. package/backend/dist/routes/stt.js +2 -1
  177. package/backend/dist/routes/stt.js.map +1 -1
  178. package/backend/dist/routes/tools.d.ts +3 -0
  179. package/backend/dist/routes/tools.d.ts.map +1 -0
  180. package/backend/dist/routes/tools.js +359 -0
  181. package/backend/dist/routes/tools.js.map +1 -0
  182. package/backend/dist/routes/tts.d.ts.map +1 -1
  183. package/backend/dist/routes/tts.js +63 -8
  184. package/backend/dist/routes/tts.js.map +1 -1
  185. package/backend/dist/routes/voiceAccess.d.ts +3 -0
  186. package/backend/dist/routes/voiceAccess.d.ts.map +1 -0
  187. package/backend/dist/routes/voiceAccess.js +102 -0
  188. package/backend/dist/routes/voiceAccess.js.map +1 -0
  189. package/backend/dist/services/apiTokenService.d.ts +2 -2
  190. package/backend/dist/services/apiTokenService.d.ts.map +1 -1
  191. package/backend/dist/services/apiTokenService.js +7 -0
  192. package/backend/dist/services/apiTokenService.js.map +1 -1
  193. package/backend/dist/services/authorizationService.d.ts +8 -4
  194. package/backend/dist/services/authorizationService.d.ts.map +1 -1
  195. package/backend/dist/services/authorizationService.js +31 -1
  196. package/backend/dist/services/authorizationService.js.map +1 -1
  197. package/backend/dist/services/automationSchedulerService.d.ts +28 -0
  198. package/backend/dist/services/automationSchedulerService.d.ts.map +1 -0
  199. package/backend/dist/services/automationSchedulerService.js +221 -0
  200. package/backend/dist/services/automationSchedulerService.js.map +1 -0
  201. package/backend/dist/services/automationService.d.ts +56 -0
  202. package/backend/dist/services/automationService.d.ts.map +1 -0
  203. package/backend/dist/services/automationService.js +247 -0
  204. package/backend/dist/services/automationService.js.map +1 -0
  205. package/backend/dist/services/builtinToolsService.d.ts +20 -0
  206. package/backend/dist/services/builtinToolsService.d.ts.map +1 -0
  207. package/backend/dist/services/builtinToolsService.js +661 -0
  208. package/backend/dist/services/builtinToolsService.js.map +1 -0
  209. package/backend/dist/services/calendarService.d.ts +74 -0
  210. package/backend/dist/services/calendarService.d.ts.map +1 -0
  211. package/backend/dist/services/calendarService.js +339 -0
  212. package/backend/dist/services/calendarService.js.map +1 -0
  213. package/backend/dist/services/channelService.d.ts +195 -0
  214. package/backend/dist/services/channelService.d.ts.map +1 -0
  215. package/backend/dist/services/channelService.js +1057 -0
  216. package/backend/dist/services/channelService.js.map +1 -0
  217. package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
  218. package/backend/dist/services/chatGenerationService.js +7 -1
  219. package/backend/dist/services/chatGenerationService.js.map +1 -1
  220. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  221. package/backend/dist/services/chatRequestService.js +29 -1
  222. package/backend/dist/services/chatRequestService.js.map +1 -1
  223. package/backend/dist/services/chatService.d.ts +62 -1
  224. package/backend/dist/services/chatService.d.ts.map +1 -1
  225. package/backend/dist/services/chatService.js +242 -1
  226. package/backend/dist/services/chatService.js.map +1 -1
  227. package/backend/dist/services/chatToolRuntimeService.d.ts +55 -0
  228. package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -0
  229. package/backend/dist/services/chatToolRuntimeService.js +389 -0
  230. package/backend/dist/services/chatToolRuntimeService.js.map +1 -0
  231. package/backend/dist/services/costGovernanceService.d.ts +102 -0
  232. package/backend/dist/services/costGovernanceService.d.ts.map +1 -0
  233. package/backend/dist/services/costGovernanceService.js +463 -0
  234. package/backend/dist/services/costGovernanceService.js.map +1 -0
  235. package/backend/dist/services/dataArchiveService.d.ts +6 -0
  236. package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
  237. package/backend/dist/services/dataArchiveService.js +23 -4
  238. package/backend/dist/services/dataArchiveService.js.map +1 -1
  239. package/backend/dist/services/documentService.d.ts +58 -1
  240. package/backend/dist/services/documentService.d.ts.map +1 -1
  241. package/backend/dist/services/documentService.js +289 -84
  242. package/backend/dist/services/documentService.js.map +1 -1
  243. package/backend/dist/services/durableChatGenerationService.d.ts +9 -0
  244. package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
  245. package/backend/dist/services/durableChatGenerationService.js +160 -13
  246. package/backend/dist/services/durableChatGenerationService.js.map +1 -1
  247. package/backend/dist/services/evaluationService.d.ts +111 -0
  248. package/backend/dist/services/evaluationService.d.ts.map +1 -0
  249. package/backend/dist/services/evaluationService.js +403 -0
  250. package/backend/dist/services/evaluationService.js.map +1 -0
  251. package/backend/dist/services/galleryService.d.ts +6 -0
  252. package/backend/dist/services/galleryService.d.ts.map +1 -1
  253. package/backend/dist/services/galleryService.js +26 -0
  254. package/backend/dist/services/galleryService.js.map +1 -1
  255. package/backend/dist/services/mcpClientService.d.ts +29 -0
  256. package/backend/dist/services/mcpClientService.d.ts.map +1 -0
  257. package/backend/dist/services/mcpClientService.js +189 -0
  258. package/backend/dist/services/mcpClientService.js.map +1 -0
  259. package/backend/dist/services/noteService.d.ts +71 -0
  260. package/backend/dist/services/noteService.d.ts.map +1 -0
  261. package/backend/dist/services/noteService.js +397 -0
  262. package/backend/dist/services/noteService.js.map +1 -0
  263. package/backend/dist/services/notificationService.d.ts +55 -0
  264. package/backend/dist/services/notificationService.d.ts.map +1 -0
  265. package/backend/dist/services/notificationService.js +308 -0
  266. package/backend/dist/services/notificationService.js.map +1 -0
  267. package/backend/dist/services/ollamaService.d.ts.map +1 -1
  268. package/backend/dist/services/ollamaService.js +3 -1
  269. package/backend/dist/services/ollamaService.js.map +1 -1
  270. package/backend/dist/services/openApiToolService.d.ts +38 -0
  271. package/backend/dist/services/openApiToolService.d.ts.map +1 -0
  272. package/backend/dist/services/openApiToolService.js +254 -0
  273. package/backend/dist/services/openApiToolService.js.map +1 -0
  274. package/backend/dist/services/personaService.d.ts +18 -2
  275. package/backend/dist/services/personaService.d.ts.map +1 -1
  276. package/backend/dist/services/personaService.js +113 -4
  277. package/backend/dist/services/personaService.js.map +1 -1
  278. package/backend/dist/services/pluginImageGenerationService.d.ts +19 -0
  279. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  280. package/backend/dist/services/pluginImageGenerationService.js +121 -0
  281. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  282. package/backend/dist/services/pluginService.d.ts +7 -0
  283. package/backend/dist/services/pluginService.d.ts.map +1 -1
  284. package/backend/dist/services/pluginService.js +8 -2
  285. package/backend/dist/services/pluginService.js.map +1 -1
  286. package/backend/dist/services/promptService.d.ts +74 -0
  287. package/backend/dist/services/promptService.d.ts.map +1 -0
  288. package/backend/dist/services/promptService.js +513 -0
  289. package/backend/dist/services/promptService.js.map +1 -0
  290. package/backend/dist/services/resourceGrantService.d.ts.map +1 -1
  291. package/backend/dist/services/resourceGrantService.js +62 -17
  292. package/backend/dist/services/resourceGrantService.js.map +1 -1
  293. package/backend/dist/services/searchService.d.ts +29 -0
  294. package/backend/dist/services/searchService.d.ts.map +1 -0
  295. package/backend/dist/services/searchService.js +0 -0
  296. package/backend/dist/services/searchService.js.map +1 -0
  297. package/backend/dist/services/securityAuditService.d.ts.map +1 -1
  298. package/backend/dist/services/securityAuditService.js +2 -1
  299. package/backend/dist/services/securityAuditService.js.map +1 -1
  300. package/backend/dist/services/sharedResourceAccess.d.ts +25 -0
  301. package/backend/dist/services/sharedResourceAccess.d.ts.map +1 -0
  302. package/backend/dist/services/sharedResourceAccess.js +59 -0
  303. package/backend/dist/services/sharedResourceAccess.js.map +1 -0
  304. package/backend/dist/services/skillService.d.ts +137 -0
  305. package/backend/dist/services/skillService.d.ts.map +1 -0
  306. package/backend/dist/services/skillService.js +852 -0
  307. package/backend/dist/services/skillService.js.map +1 -0
  308. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  309. package/backend/dist/services/titleGenerationService.js +5 -1
  310. package/backend/dist/services/titleGenerationService.js.map +1 -1
  311. package/backend/dist/services/toolAccessService.d.ts +9 -0
  312. package/backend/dist/services/toolAccessService.d.ts.map +1 -0
  313. package/backend/dist/services/toolAccessService.js +60 -0
  314. package/backend/dist/services/toolAccessService.js.map +1 -0
  315. package/backend/dist/services/toolApprovalService.d.ts +34 -0
  316. package/backend/dist/services/toolApprovalService.d.ts.map +1 -0
  317. package/backend/dist/services/toolApprovalService.js +188 -0
  318. package/backend/dist/services/toolApprovalService.js.map +1 -0
  319. package/backend/dist/services/toolGatewayService.d.ts +53 -0
  320. package/backend/dist/services/toolGatewayService.d.ts.map +1 -0
  321. package/backend/dist/services/toolGatewayService.js +249 -0
  322. package/backend/dist/services/toolGatewayService.js.map +1 -0
  323. package/backend/dist/services/toolServerService.d.ts +57 -0
  324. package/backend/dist/services/toolServerService.d.ts.map +1 -0
  325. package/backend/dist/services/toolServerService.js +521 -0
  326. package/backend/dist/services/toolServerService.js.map +1 -0
  327. package/backend/dist/services/voiceAccessService.d.ts +10 -0
  328. package/backend/dist/services/voiceAccessService.d.ts.map +1 -0
  329. package/backend/dist/services/voiceAccessService.js +74 -0
  330. package/backend/dist/services/voiceAccessService.js.map +1 -0
  331. package/backend/dist/services/voiceProfileService.d.ts +20 -0
  332. package/backend/dist/services/voiceProfileService.d.ts.map +1 -1
  333. package/backend/dist/services/voiceProfileService.js +60 -0
  334. package/backend/dist/services/voiceProfileService.js.map +1 -1
  335. package/backend/dist/services/webSearchPlanService.d.ts +18 -0
  336. package/backend/dist/services/webSearchPlanService.d.ts.map +1 -0
  337. package/backend/dist/services/webSearchPlanService.js +160 -0
  338. package/backend/dist/services/webSearchPlanService.js.map +1 -0
  339. package/backend/dist/services/webSearchService.d.ts +9 -3
  340. package/backend/dist/services/webSearchService.d.ts.map +1 -1
  341. package/backend/dist/services/webSearchService.js +8 -2
  342. package/backend/dist/services/webSearchService.js.map +1 -1
  343. package/backend/dist/storage.d.ts +34 -1
  344. package/backend/dist/storage.d.ts.map +1 -1
  345. package/backend/dist/storage.js +164 -1
  346. package/backend/dist/storage.js.map +1 -1
  347. package/backend/dist/storageMappers.d.ts +2 -2
  348. package/backend/dist/storageMappers.d.ts.map +1 -1
  349. package/backend/dist/storageMappers.js.map +1 -1
  350. package/backend/dist/types/index.d.ts +269 -2
  351. package/backend/dist/types/index.d.ts.map +1 -1
  352. package/backend/dist/types/index.js.map +1 -1
  353. package/backend/dist/types/tools.d.ts +137 -0
  354. package/backend/dist/types/tools.d.ts.map +1 -0
  355. package/backend/dist/types/tools.js +25 -0
  356. package/backend/dist/types/tools.js.map +1 -0
  357. package/backend/dist/utils/automationSchedule.d.ts +26 -0
  358. package/backend/dist/utils/automationSchedule.d.ts.map +1 -0
  359. package/backend/dist/utils/automationSchedule.js +231 -0
  360. package/backend/dist/utils/automationSchedule.js.map +1 -0
  361. package/backend/dist/utils/chatDocumentContext.d.ts +26 -1
  362. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  363. package/backend/dist/utils/chatDocumentContext.js +87 -18
  364. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  365. package/backend/dist/utils/documentExtraction.d.ts +69 -0
  366. package/backend/dist/utils/documentExtraction.d.ts.map +1 -0
  367. package/backend/dist/utils/documentExtraction.js +545 -0
  368. package/backend/dist/utils/documentExtraction.js.map +1 -0
  369. package/backend/dist/utils/hybridRetrieval.d.ts +34 -0
  370. package/backend/dist/utils/hybridRetrieval.d.ts.map +1 -0
  371. package/backend/dist/utils/hybridRetrieval.js +119 -0
  372. package/backend/dist/utils/hybridRetrieval.js.map +1 -0
  373. package/backend/dist/utils/icsCalendar.d.ts +27 -0
  374. package/backend/dist/utils/icsCalendar.d.ts.map +1 -0
  375. package/backend/dist/utils/icsCalendar.js +313 -0
  376. package/backend/dist/utils/icsCalendar.js.map +1 -0
  377. package/backend/dist/utils/imageEditUpload.d.ts +29 -0
  378. package/backend/dist/utils/imageEditUpload.d.ts.map +1 -0
  379. package/backend/dist/utils/imageEditUpload.js +82 -0
  380. package/backend/dist/utils/imageEditUpload.js.map +1 -0
  381. package/backend/dist/utils/logRedaction.d.ts +2 -0
  382. package/backend/dist/utils/logRedaction.d.ts.map +1 -0
  383. package/backend/dist/utils/logRedaction.js +66 -0
  384. package/backend/dist/utils/logRedaction.js.map +1 -0
  385. package/backend/dist/utils/logger.d.ts +3 -0
  386. package/backend/dist/utils/logger.d.ts.map +1 -1
  387. package/backend/dist/utils/logger.js +63 -20
  388. package/backend/dist/utils/logger.js.map +1 -1
  389. package/backend/dist/utils/pluginChatAdapter.d.ts +5 -1
  390. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  391. package/backend/dist/utils/pluginChatAdapter.js +83 -0
  392. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  393. package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
  394. package/backend/dist/utils/resourceLimits.d.ts +68 -2
  395. package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
  396. package/backend/dist/utils/resourceLimits.js +66 -0
  397. package/backend/dist/utils/resourceLimits.js.map +1 -1
  398. package/backend/dist/utils/toolEgress.d.ts +22 -0
  399. package/backend/dist/utils/toolEgress.d.ts.map +1 -0
  400. package/backend/dist/utils/toolEgress.js +157 -0
  401. package/backend/dist/utils/toolEgress.js.map +1 -0
  402. package/backend/dist/utils/websocketMessages.d.ts +6 -0
  403. package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
  404. package/backend/dist/utils/websocketMessages.js +8 -0
  405. package/backend/dist/utils/websocketMessages.js.map +1 -1
  406. package/backend/dist/utils/zipArchive.d.ts +32 -0
  407. package/backend/dist/utils/zipArchive.d.ts.map +1 -0
  408. package/backend/dist/utils/zipArchive.js +171 -0
  409. package/backend/dist/utils/zipArchive.js.map +1 -0
  410. package/backend/dist/websocketServer.d.ts.map +1 -1
  411. package/backend/dist/websocketServer.js +150 -37
  412. package/backend/dist/websocketServer.js.map +1 -1
  413. package/backend/package.json +1 -1
  414. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  415. package/frontend/dist/assets/index-BPsH9FII.js +80 -0
  416. package/frontend/dist/assets/index-BtXF0Oxa.css +1 -0
  417. package/frontend/dist/index.html +18 -18
  418. package/frontend/dist/js/{ArtifactContainer-B-hs0F5K.js → ArtifactContainer-CIoFoMv8.js} +1 -1
  419. package/frontend/dist/js/{ArtifactDemoPage-QFtJw-u4.js → ArtifactDemoPage-D0JEIAbZ.js} +1 -1
  420. package/frontend/dist/js/{ArtifactSandboxFrame-S9g_q47-.js → ArtifactSandboxFrame-REazyIrx.js} +2 -2
  421. package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +1 -0
  422. package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +1 -0
  423. package/frontend/dist/js/{Button-BPf_pOxH.js → Button-C0r3J9G_.js} +1 -1
  424. package/frontend/dist/js/CalendarPage-DLjasZOd.js +1 -0
  425. package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +1 -0
  426. package/frontend/dist/js/ChatPage-BAgBHUES.js +16 -0
  427. package/frontend/dist/js/EvaluationsPage-Bm8FRoeX.js +2 -0
  428. package/frontend/dist/js/FirstTimeSetup-BxJapNul.js +1 -0
  429. package/frontend/dist/js/GalleryPage-DHz9DkK7.js +1 -0
  430. package/frontend/dist/js/HomePage-BqNy-FWX.js +1 -0
  431. package/frontend/dist/js/LibreClawPage-BDzDILjY.js +1 -0
  432. package/frontend/dist/js/{ModelManagerModals-DBmm_slu.js → ModelManagerModals-DX9eT5r2.js} +1 -1
  433. package/frontend/dist/js/ModelSelector-ol8mK2ja.js +1 -0
  434. package/frontend/dist/js/NotesPage-DzHEx2O4.js +3 -0
  435. package/frontend/dist/js/{OptimizedSyntaxHighlighter-Dz7D1LPB.js → OptimizedSyntaxHighlighter-CZNPwN0i.js} +1 -1
  436. package/frontend/dist/js/PersonasPage-M_WKH2a9.js +13 -0
  437. package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +1 -0
  438. package/frontend/dist/js/RichMessageContent-BqgafH4p.js +3 -0
  439. package/frontend/dist/js/SettingsModal-R9EDadAV.js +19 -0
  440. package/frontend/dist/js/{SettingsToggle-woG_WebF.js → SettingsToggle-BIVyfGjl.js} +1 -1
  441. package/frontend/dist/js/{SystemPage-Xr7XJv8c.js → SystemPage-aOkrSuY7.js} +1 -1
  442. package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +1 -0
  443. package/frontend/dist/js/WorkPage-DxZISerQ.js +6 -0
  444. package/frontend/dist/js/api-6bSMtSNh.js +14 -0
  445. package/frontend/dist/js/{appStore-DXlmTjIC.js → appStore-CdObhQBb.js} +2 -2
  446. package/frontend/dist/js/ar-DT_VLBO3.js +2 -0
  447. package/frontend/dist/js/{authStore-B97lJ5Ee.js → authStore-DbqqrfZv.js} +3 -3
  448. package/frontend/dist/js/{babel-D24oDI9y.js → babel-DSqqk5kt.js} +1 -1
  449. package/frontend/dist/js/bn-BrvEqhGA.js +2 -0
  450. package/frontend/dist/js/calendarDates-Co3o_05Y.js +1 -0
  451. package/frontend/dist/js/chatStore-DbZPJNsu.js +3 -0
  452. package/frontend/dist/js/{config-CmEh9o8U.js → config-8KdgjtEx.js} +1 -1
  453. package/frontend/dist/js/cs-BthnM_YI.js +2 -0
  454. package/frontend/dist/js/da-DCth-6_j.js +2 -0
  455. package/frontend/dist/js/de-BBWt0gJ_.js +2 -0
  456. package/frontend/dist/js/es-DuslOPqM.js +2 -0
  457. package/frontend/dist/js/{estree-CZO8RS52.js → estree-BU5-LV_1.js} +7 -7
  458. package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +1 -0
  459. package/frontend/dist/js/fr-DZAeg46S.js +2 -0
  460. package/frontend/dist/js/hi-ijDSiY77.js +2 -0
  461. package/frontend/dist/js/{html-C31pxhBG.js → html-DeoAy2bo.js} +10 -10
  462. package/frontend/dist/js/id-BS6qS0oq.js +2 -0
  463. package/frontend/dist/js/is-CO2PMDte.js +2 -0
  464. package/frontend/dist/js/it-ChhxT4hs.js +2 -0
  465. package/frontend/dist/js/ja-cyeqUeJN.js +2 -0
  466. package/frontend/dist/js/ko-CfqHTLXj.js +2 -0
  467. package/frontend/dist/js/{markdown-C1CEqXpL.js → markdown-DOLsYkBY.js} +6 -6
  468. package/frontend/dist/js/markdown-core-BK7WVOb7.js +32 -0
  469. package/frontend/dist/js/{markdown-math-DK846gXU.js → markdown-math-e1ByS3KY.js} +5 -5
  470. package/frontend/dist/js/{messageCodeStyles-BqQ6kOSU.js → messageCodeStyles-DhVgizF-.js} +2 -2
  471. package/frontend/dist/js/ms-DZ5pACe1.js +2 -0
  472. package/frontend/dist/js/nl-BsRsnOVp.js +2 -0
  473. package/frontend/dist/js/pl-DXSTAW4M.js +2 -0
  474. package/frontend/dist/js/{postcss-Bx9CTcIc.js → postcss-Bg15EcFE.js} +1 -1
  475. package/frontend/dist/js/pt-DmDx0JxB.js +2 -0
  476. package/frontend/dist/js/{react-vendor-C5yShNlM.js → react-vendor-BG_HPV6X.js} +1 -1
  477. package/frontend/dist/js/router-vendor-CbexJIsv.js +1 -0
  478. package/frontend/dist/js/ru-d2g8EWfY.js +2 -0
  479. package/frontend/dist/js/{standalone-Dz0pkxn0.js → standalone-BO5pzI8_.js} +5 -5
  480. package/frontend/dist/js/sv-CIhYUTVQ.js +2 -0
  481. package/frontend/dist/js/{syntax-highlight-3EEX6CGL.js → syntax-highlight-DcR9Vhb7.js} +3 -3
  482. package/frontend/dist/js/th-B3wSxanB.js +2 -0
  483. package/frontend/dist/js/tr-R4UGgPOY.js +2 -0
  484. package/frontend/dist/js/{typescript-DeXPhp90.js → typescript-6GJ8APmn.js} +2 -2
  485. package/frontend/dist/js/ui-CV0LYmkM.js +2 -0
  486. package/frontend/dist/js/ui-vendor-CWjIBW-z.js +177 -0
  487. package/frontend/dist/js/uk-BzUF4Vkt.js +2 -0
  488. package/frontend/dist/js/{useTranslation-Bho4HCyg.js → useTranslation-5b5UhAc9.js} +1 -1
  489. package/frontend/dist/js/{utils-D9W1Lnkn.js → utils-BGrdX9ie.js} +1 -1
  490. package/frontend/dist/js/{utils-vendor-DWh39_3x.js → utils-vendor-9bQ62WeD.js} +1 -1
  491. package/frontend/dist/js/vi-CKc6Fg4h.js +2 -0
  492. package/frontend/dist/js/{workApi-C4QtuhcE.js → workApi-BruWTlHM.js} +2 -2
  493. package/frontend/dist/js/{yaml-DioTxVLA.js → yaml-DUeWcOOH.js} +5 -5
  494. package/frontend/dist/js/zh-CXL-kDe8.js +2 -0
  495. package/package.json +2 -2
  496. package/plugins/openai.json +52 -9
  497. package/frontend/dist/assets/index-CDQ12KBq.js +0 -34
  498. package/frontend/dist/assets/index-DkFWzmFD.css +0 -1
  499. package/frontend/dist/js/ArtifactSlideOutPanel-D0UOo8RW.js +0 -1
  500. package/frontend/dist/js/ChatPage-fdd8500b.js +0 -23
  501. package/frontend/dist/js/FirstTimeSetup-BTjafGOq.js +0 -1
  502. package/frontend/dist/js/GalleryPage-hR9AJ6b-.js +0 -1
  503. package/frontend/dist/js/HomePage-JvTzq-Pp.js +0 -1
  504. package/frontend/dist/js/LibreClawPage-CLJvtXft.js +0 -1
  505. package/frontend/dist/js/ModelSelector-A-viVFEc.js +0 -1
  506. package/frontend/dist/js/ModelsPage-C4Rm-TZF.js +0 -2
  507. package/frontend/dist/js/NotesPage-C7bPU_KF.js +0 -1
  508. package/frontend/dist/js/PersonasPage-DpvxbFzv.js +0 -13
  509. package/frontend/dist/js/PluginUsagePage-laF-M2X9.js +0 -1
  510. package/frontend/dist/js/RichMessageContent-D0mK9vRA.js +0 -3
  511. package/frontend/dist/js/SettingsModal-DNEQ5sTt.js +0 -1
  512. package/frontend/dist/js/UserManagementPage-DGmbGTC2.js +0 -1
  513. package/frontend/dist/js/WorkPage-DNKFD9gS.js +0 -6
  514. package/frontend/dist/js/api-DGVZHSkS.js +0 -14
  515. package/frontend/dist/js/ar-DW79oSyN.js +0 -2
  516. package/frontend/dist/js/bn-BEAmE7VH.js +0 -2
  517. package/frontend/dist/js/chatStore-zilBUd1p.js +0 -3
  518. package/frontend/dist/js/cs-irpRMzRo.js +0 -2
  519. package/frontend/dist/js/da-cgilTVxc.js +0 -2
  520. package/frontend/dist/js/de-BU-eH3gU.js +0 -2
  521. package/frontend/dist/js/es-B2LRpZ0p.js +0 -2
  522. package/frontend/dist/js/fr-Cd5JM-oQ.js +0 -2
  523. package/frontend/dist/js/hi-CvOhdtiK.js +0 -2
  524. package/frontend/dist/js/id-BtRK5nR_.js +0 -2
  525. package/frontend/dist/js/is-CnEqwgRF.js +0 -2
  526. package/frontend/dist/js/it-CI6WjId6.js +0 -2
  527. package/frontend/dist/js/ja-B6gFOHi6.js +0 -2
  528. package/frontend/dist/js/ko-DuAhnmMf.js +0 -2
  529. package/frontend/dist/js/markdown-core-BmPPZiuD.js +0 -31
  530. package/frontend/dist/js/ms-C8BIP7MZ.js +0 -2
  531. package/frontend/dist/js/nl-DnEdspER.js +0 -2
  532. package/frontend/dist/js/pl-Ddyyvbse.js +0 -2
  533. package/frontend/dist/js/pt-BYuzm70F.js +0 -2
  534. package/frontend/dist/js/router-vendor-CbPDks39.js +0 -1
  535. package/frontend/dist/js/ru-CmSPFxPX.js +0 -2
  536. package/frontend/dist/js/sv-Dd6SQ9f1.js +0 -2
  537. package/frontend/dist/js/th-CpH8745B.js +0 -2
  538. package/frontend/dist/js/tr-DuVD75iJ.js +0 -2
  539. package/frontend/dist/js/ui-CO0DPqrI.js +0 -2
  540. package/frontend/dist/js/ui-vendor-mqjSfAaS.js +0 -177
  541. package/frontend/dist/js/uk-B0MU-M8k.js +0 -2
  542. package/frontend/dist/js/vi-BLmFNp_z.js +0 -2
  543. package/frontend/dist/js/zh-BQu0TLhw.js +0 -2
@@ -60,6 +60,8 @@ export interface StoredNamedResourceRecord {
60
60
  }
61
61
  export interface KnowledgeCollectionRepository {
62
62
  listByOwner(userId: string): Promise<StoredNamedResourceRecord[]>;
63
+ /** Cross-owner read; callers must authorize before returning content. */
64
+ findById(collectionId: string): Promise<StoredNamedResourceRecord | null>;
63
65
  replace(collection: StoredNamedResourceRecord): Promise<void>;
64
66
  deleteAndDetach(collectionId: string, userId: string): Promise<boolean>;
65
67
  }
@@ -68,20 +70,490 @@ export interface StoredNoteRecord {
68
70
  user_id: string;
69
71
  title: string;
70
72
  content: string;
73
+ pinned: number;
71
74
  created_at: number;
72
75
  updated_at: number;
73
76
  }
74
77
  export interface StoredNotePatch {
75
78
  title?: string;
76
79
  content?: string;
80
+ pinned?: number;
77
81
  updated_at: number;
78
82
  }
83
+ export interface StoredNoteRevisionRecord {
84
+ id: string;
85
+ note_id: string;
86
+ title: string;
87
+ content: string;
88
+ created_at: number;
89
+ }
90
+ export interface StoredNoteAttachmentRecord {
91
+ id: string;
92
+ note_id: string;
93
+ blob_id: string;
94
+ filename: string;
95
+ content_type: string;
96
+ size: number;
97
+ created_at: number;
98
+ }
79
99
  export interface NoteRepository {
80
100
  listByOwner(userId: string, maximum: number): Promise<StoredNoteRecord[]>;
81
101
  findByOwner(noteId: string, userId: string): Promise<StoredNoteRecord | null>;
102
+ /** Cross-owner read; callers must authorize before returning content. */
103
+ findById(noteId: string): Promise<StoredNoteRecord | null>;
82
104
  replaceWithLimit(note: StoredNoteRecord, maximum: number): Promise<void>;
83
105
  patchByOwner(noteId: string, userId: string, patch: StoredNotePatch): Promise<StoredNoteRecord | null>;
106
+ /** Cross-owner patch; callers must authorize write before invoking. */
107
+ patchById(noteId: string, patch: StoredNotePatch): Promise<StoredNoteRecord | null>;
84
108
  deleteByOwner(noteId: string, userId: string): Promise<boolean>;
109
+ listRevisions(noteId: string, maximum: number): Promise<StoredNoteRevisionRecord[]>;
110
+ findRevision(revisionId: string): Promise<StoredNoteRevisionRecord | null>;
111
+ /** Inserts a revision and prunes the oldest beyond the per-note cap. */
112
+ insertRevision(revision: StoredNoteRevisionRecord, maximum: number): Promise<void>;
113
+ listAttachments(noteId: string): Promise<StoredNoteAttachmentRecord[]>;
114
+ findAttachment(attachmentId: string): Promise<StoredNoteAttachmentRecord | null>;
115
+ insertAttachmentWithLimit(attachment: StoredNoteAttachmentRecord, maximum: number): Promise<void>;
116
+ deleteAttachment(attachmentId: string): Promise<boolean>;
117
+ }
118
+ export interface StoredCalendarEventRecord {
119
+ id: string;
120
+ user_id: string;
121
+ title: string;
122
+ notes: string | null;
123
+ start_at: number;
124
+ end_at: number | null;
125
+ all_day: number;
126
+ recurrence: string | null;
127
+ calendar_id: string | null;
128
+ reminder_minutes: number | null;
129
+ last_reminded_occurrence: number | null;
130
+ created_at: number;
131
+ updated_at: number;
132
+ }
133
+ export interface StoredCalendarRecord {
134
+ id: string;
135
+ user_id: string;
136
+ name: string;
137
+ color: string | null;
138
+ created_at: number;
139
+ updated_at: number;
140
+ }
141
+ export interface CalendarRepository {
142
+ listByOwner(userId: string, maximum: number): Promise<StoredCalendarRecord[]>;
143
+ findByOwner(calendarId: string, userId: string): Promise<StoredCalendarRecord | null>;
144
+ /** Cross-owner read; callers must authorize before returning content. */
145
+ findById(calendarId: string): Promise<StoredCalendarRecord | null>;
146
+ replaceWithLimit(calendar: StoredCalendarRecord, maximum: number): Promise<void>;
147
+ /** Deletes the calendar and detaches its events back to the default scope. */
148
+ deleteAndDetach(calendarId: string, userId: string): Promise<boolean>;
149
+ }
150
+ export interface CalendarEventRepository {
151
+ listByOwnerBetween(userId: string, from: number, to: number, maximum: number): Promise<StoredCalendarEventRecord[]>;
152
+ listRecurringByOwner(userId: string, maximum: number): Promise<StoredCalendarEventRecord[]>;
153
+ /** Cross-owner reads for shared calendars; callers authorize per calendar. */
154
+ listByCalendarsBetween(calendarIds: readonly string[], from: number, to: number, maximum: number): Promise<StoredCalendarEventRecord[]>;
155
+ listRecurringByCalendars(calendarIds: readonly string[], maximum: number): Promise<StoredCalendarEventRecord[]>;
156
+ findByOwner(eventId: string, userId: string): Promise<StoredCalendarEventRecord | null>;
157
+ /** Cross-owner read; callers must authorize before returning content. */
158
+ findById(eventId: string): Promise<StoredCalendarEventRecord | null>;
159
+ /** Events carrying a reminder offset, for the scheduler sweep. */
160
+ listWithReminders(maximum: number): Promise<StoredCalendarEventRecord[]>;
161
+ /**
162
+ * Record that a reminder fired for the given occurrence start. Only
163
+ * advances forward, so concurrent sweeps notify each occurrence once.
164
+ */
165
+ markReminded(eventId: string, occurrenceStart: number): Promise<boolean>;
166
+ replaceWithLimit(event: StoredCalendarEventRecord, maximum: number): Promise<void>;
167
+ deleteByOwner(eventId: string, userId: string): Promise<boolean>;
168
+ }
169
+ export interface StoredChannelRecord {
170
+ id: string;
171
+ type: string;
172
+ name: string;
173
+ description: string | null;
174
+ dm_key: string | null;
175
+ created_by: string | null;
176
+ created_at: number;
177
+ updated_at: number;
178
+ archived_at: number | null;
179
+ }
180
+ export interface StoredChannelMemberRecord {
181
+ channel_id: string;
182
+ user_id: string;
183
+ role: string;
184
+ joined_at: number;
185
+ last_read_at: number;
186
+ }
187
+ export interface StoredChannelMembershipView {
188
+ channel: StoredChannelRecord;
189
+ member: StoredChannelMemberRecord;
190
+ }
191
+ export interface StoredChannelUnreadRow {
192
+ channel_id: string;
193
+ unread_count: number;
194
+ latest_message_at: number | null;
195
+ }
196
+ export interface StoredChannelMessageRecord {
197
+ id: string;
198
+ channel_id: string;
199
+ user_id: string | null;
200
+ parent_id: string | null;
201
+ author_kind: string;
202
+ model: string | null;
203
+ content: string;
204
+ metadata: string | null;
205
+ created_at: number;
206
+ updated_at: number;
207
+ edited_at: number | null;
208
+ deleted_at: number | null;
209
+ pinned_at: number | null;
210
+ pinned_by: string | null;
211
+ }
212
+ export interface StoredChannelReactionRecord {
213
+ id: string;
214
+ message_id: string;
215
+ user_id: string;
216
+ emoji: string;
217
+ created_at: number;
218
+ }
219
+ export interface StoredChannelAttachmentRecord {
220
+ id: string;
221
+ message_id: string;
222
+ channel_id: string;
223
+ blob_id: string;
224
+ filename: string;
225
+ content_type: string;
226
+ size: number;
227
+ created_by: string | null;
228
+ created_at: number;
229
+ }
230
+ export interface ChannelTimelineCursor {
231
+ created_at: number;
232
+ id: string;
233
+ }
234
+ export interface ChannelRepository {
235
+ /** Creates the channel and its owner membership atomically. */
236
+ insertWithOwner(channel: StoredChannelRecord, owner: StoredChannelMemberRecord, maximumPerUser: number): Promise<void>;
237
+ findById(channelId: string): Promise<StoredChannelRecord | null>;
238
+ findByDmKey(dmKey: string): Promise<StoredChannelRecord | null>;
239
+ listForUser(userId: string, maximum: number): Promise<StoredChannelMembershipView[]>;
240
+ listPublic(maximum: number): Promise<StoredChannelRecord[]>;
241
+ update(channel: StoredChannelRecord): Promise<void>;
242
+ delete(channelId: string): Promise<boolean>;
243
+ upsertMember(member: StoredChannelMemberRecord, maximumMembers: number): Promise<void>;
244
+ findMember(channelId: string, userId: string): Promise<StoredChannelMemberRecord | null>;
245
+ listMembers(channelId: string, maximum: number): Promise<StoredChannelMemberRecord[]>;
246
+ removeMember(channelId: string, userId: string): Promise<boolean>;
247
+ /** Advances the read cursor monotonically; never moves it backwards. */
248
+ advanceLastRead(channelId: string, userId: string, lastReadAt: number): Promise<boolean>;
249
+ /** Per-channel unread counts for every channel the user belongs to. */
250
+ unreadSummaryForUser(userId: string): Promise<StoredChannelUnreadRow[]>;
251
+ }
252
+ export interface ChannelMessageRepository {
253
+ /**
254
+ * Idempotent append: when the id already exists the stored row is
255
+ * returned unchanged and `inserted` is false, so client retries and
256
+ * duplicate deliveries never duplicate timeline entries.
257
+ */
258
+ insertIfAbsent(message: StoredChannelMessageRecord, attachments: readonly StoredChannelAttachmentRecord[], maximumPerChannel: number): Promise<{
259
+ stored: StoredChannelMessageRecord;
260
+ inserted: boolean;
261
+ }>;
262
+ findById(messageId: string): Promise<StoredChannelMessageRecord | null>;
263
+ listPage(channelId: string, options: {
264
+ before?: ChannelTimelineCursor;
265
+ after?: ChannelTimelineCursor;
266
+ parentId?: string | null;
267
+ limit: number;
268
+ }): Promise<StoredChannelMessageRecord[]>;
269
+ listThread(parentId: string, maximum: number): Promise<StoredChannelMessageRecord[]>;
270
+ countThreadReplies(parentIds: readonly string[]): Promise<Record<string, number>>;
271
+ /** Cross-owner patch; callers must authorize before invoking. */
272
+ update(message: StoredChannelMessageRecord): Promise<void>;
273
+ listPinned(channelId: string, maximum: number): Promise<StoredChannelMessageRecord[]>;
274
+ /** Recent decryptable candidates for in-process search scoring. */
275
+ listRecentForChannels(channelIds: readonly string[], maximum: number): Promise<StoredChannelMessageRecord[]>;
276
+ addReaction(reaction: StoredChannelReactionRecord, maximumPerMessage: number): Promise<boolean>;
277
+ removeReaction(messageId: string, userId: string, emoji: string): Promise<boolean>;
278
+ listReactionsForMessages(messageIds: readonly string[]): Promise<StoredChannelReactionRecord[]>;
279
+ findAttachment(attachmentId: string): Promise<StoredChannelAttachmentRecord | null>;
280
+ listAttachmentsForMessages(messageIds: readonly string[]): Promise<StoredChannelAttachmentRecord[]>;
281
+ /** Blob references of a channel's attachments, for deletion hygiene. */
282
+ listAttachmentBlobIds(channelId: string): Promise<Array<{
283
+ blob_id: string;
284
+ created_by: string | null;
285
+ }>>;
286
+ }
287
+ export interface StoredNotificationRecord {
288
+ id: string;
289
+ user_id: string;
290
+ type: string;
291
+ title: string;
292
+ body: string | null;
293
+ href: string | null;
294
+ source_key: string | null;
295
+ created_at: number;
296
+ read_at: number | null;
297
+ }
298
+ export interface NotificationRepository {
299
+ /**
300
+ * Inserts unless the (user, source_key) pair already exists; prunes the
301
+ * oldest rows beyond the per-user cap in the same transaction. Returns
302
+ * false when deduplicated.
303
+ */
304
+ insertWithLimit(notification: StoredNotificationRecord, maximumPerUser: number): Promise<boolean>;
305
+ listByOwner(userId: string, options: {
306
+ before?: number;
307
+ limit: number;
308
+ unreadOnly?: boolean;
309
+ }): Promise<StoredNotificationRecord[]>;
310
+ countUnread(userId: string): Promise<number>;
311
+ markRead(notificationId: string, userId: string, readAt: number): Promise<boolean>;
312
+ markAllRead(userId: string, readAt: number): Promise<number>;
313
+ deleteByOwner(notificationId: string, userId: string): Promise<boolean>;
314
+ }
315
+ export interface StoredWebhookTargetRecord {
316
+ id: string;
317
+ name: string;
318
+ url: string;
319
+ secret: string | null;
320
+ events: string;
321
+ enabled: number;
322
+ created_by: string | null;
323
+ created_at: number;
324
+ updated_at: number;
325
+ }
326
+ export interface WebhookTargetRepository {
327
+ list(maximum: number): Promise<StoredWebhookTargetRecord[]>;
328
+ findById(targetId: string): Promise<StoredWebhookTargetRecord | null>;
329
+ replaceWithLimit(target: StoredWebhookTargetRecord, maximum: number): Promise<void>;
330
+ delete(targetId: string): Promise<boolean>;
331
+ }
332
+ export interface StoredAutomationRecord {
333
+ id: string;
334
+ user_id: string;
335
+ name: string;
336
+ instructions: string;
337
+ triggers: string;
338
+ provider: string | null;
339
+ model: string | null;
340
+ notify: string;
341
+ status: string;
342
+ next_run_at: number | null;
343
+ last_run_at: number | null;
344
+ created_at: number;
345
+ updated_at: number;
346
+ }
347
+ export interface StoredAutomationRunRecord {
348
+ id: string;
349
+ automation_id: string;
350
+ user_id: string;
351
+ scheduled_for: number;
352
+ started_at: number | null;
353
+ finished_at: number | null;
354
+ status: string;
355
+ session_id: string | null;
356
+ assistant_message_id: string | null;
357
+ error: string | null;
358
+ seen_at: number | null;
359
+ created_at: number;
360
+ }
361
+ export interface AutomationRepository {
362
+ listByOwner(userId: string, maximum: number): Promise<StoredAutomationRecord[]>;
363
+ findByOwner(automationId: string, userId: string): Promise<StoredAutomationRecord | null>;
364
+ findById(automationId: string): Promise<StoredAutomationRecord | null>;
365
+ replaceWithLimit(automation: StoredAutomationRecord, maximum: number): Promise<void>;
366
+ /** Claim due automations: read active rows whose next_run_at is at or before now. */
367
+ listDue(now: number, maximum: number): Promise<StoredAutomationRecord[]>;
368
+ /**
369
+ * Advance scheduling state only when the row still carries the observed
370
+ * next_run_at, so concurrent ticks fire each occurrence exactly once.
371
+ */
372
+ advanceNextRun(automationId: string, observedNextRunAt: number, nextRunAt: number | null, lastRunAt: number): Promise<boolean>;
373
+ setStatus(automationId: string, userId: string, status: string, nextRunAt: number | null, updatedAt: number): Promise<boolean>;
374
+ deleteByOwner(automationId: string, userId: string): Promise<boolean>;
375
+ }
376
+ export interface AutomationRunRepository {
377
+ insert(run: StoredAutomationRunRecord): Promise<void>;
378
+ findByOwner(runId: string, userId: string): Promise<StoredAutomationRunRecord | null>;
379
+ listByOwner(userId: string, options: {
380
+ automationId?: string;
381
+ from?: number;
382
+ to?: number;
383
+ maximum: number;
384
+ }): Promise<StoredAutomationRunRecord[]>;
385
+ listUnfinished(maximum: number): Promise<StoredAutomationRunRecord[]>;
386
+ markStarted(runId: string, sessionId: string, assistantMessageId: string, startedAt: number): Promise<boolean>;
387
+ finalize(runId: string, status: string, finishedAt: number, error: string | null): Promise<boolean>;
388
+ countUnseenFinished(userId: string): Promise<number>;
389
+ markSeenBefore(userId: string, seenAt: number): Promise<number>;
390
+ }
391
+ export interface StoredToolServerRecord {
392
+ id: string;
393
+ user_id: string;
394
+ name: string;
395
+ description: string | null;
396
+ kind: string;
397
+ base_url: string;
398
+ spec: string | null;
399
+ spec_digest: string | null;
400
+ spec_revision: number;
401
+ auth_mode: string;
402
+ auth_header: string | null;
403
+ access_mode: string;
404
+ enabled: number;
405
+ timeout_ms: number;
406
+ max_response_bytes: number;
407
+ created_at: number;
408
+ updated_at: number;
409
+ }
410
+ export interface StoredToolServerToolRecord {
411
+ id: string;
412
+ server_id: string;
413
+ name: string;
414
+ description: string | null;
415
+ params_schema: string | null;
416
+ detail: string | null;
417
+ side_effect: number;
418
+ enabled: number;
419
+ created_at: number;
420
+ updated_at: number;
421
+ }
422
+ export interface StoredToolServerCredentialRecord {
423
+ id: string;
424
+ server_id: string;
425
+ user_id: string;
426
+ secret: string;
427
+ created_at: number;
428
+ updated_at: number;
429
+ }
430
+ export interface StoredToolApprovalRecord {
431
+ id: string;
432
+ user_id: string;
433
+ session_id: string | null;
434
+ server_id: string | null;
435
+ tool_name: string;
436
+ call_id: string | null;
437
+ arguments_digest: string | null;
438
+ scope: string;
439
+ status: string;
440
+ created_at: number;
441
+ resolved_at: number | null;
442
+ expires_at: number | null;
443
+ }
444
+ export interface ToolServerRepository {
445
+ list(maximum: number): Promise<StoredToolServerRecord[]>;
446
+ findById(serverId: string): Promise<StoredToolServerRecord | null>;
447
+ replaceWithLimit(server: StoredToolServerRecord, maximum: number): Promise<void>;
448
+ delete(serverId: string): Promise<boolean>;
449
+ }
450
+ export interface ToolServerToolRepository {
451
+ listByServer(serverId: string): Promise<StoredToolServerToolRecord[]>;
452
+ /** Re-pin a server's tool inventory atomically, preserving admin overrides by tool name. */
453
+ replaceAllForServer(serverId: string, tools: readonly StoredToolServerToolRecord[]): Promise<void>;
454
+ updateOverrides(serverId: string, toolName: string, overrides: {
455
+ enabled?: number;
456
+ side_effect?: number;
457
+ }, updatedAt: number): Promise<StoredToolServerToolRecord | null>;
458
+ }
459
+ export interface ToolServerCredentialRepository {
460
+ find(serverId: string, userId: string): Promise<StoredToolServerCredentialRecord | null>;
461
+ upsert(credential: StoredToolServerCredentialRecord): Promise<void>;
462
+ delete(serverId: string, userId: string): Promise<boolean>;
463
+ }
464
+ export interface ToolApprovalRepository {
465
+ insert(approval: StoredToolApprovalRecord): Promise<void>;
466
+ findByOwner(approvalId: string, userId: string): Promise<StoredToolApprovalRecord | null>;
467
+ /**
468
+ * Find a standing decision covering this tool: an approved `always` grant,
469
+ * or an approved `session` grant bound to the given session.
470
+ */
471
+ findStanding(userId: string, serverId: string | null, toolName: string, sessionId: string | null): Promise<StoredToolApprovalRecord | null>;
472
+ /** Resolve a pending approval exactly once; returns null when it is no longer pending. */
473
+ resolvePending(approvalId: string, userId: string, status: string, scope: string, resolvedAt: number): Promise<StoredToolApprovalRecord | null>;
474
+ listPendingByOwner(userId: string, maximum: number): Promise<StoredToolApprovalRecord[]>;
475
+ listStandingByOwner(userId: string, maximum: number): Promise<StoredToolApprovalRecord[]>;
476
+ expirePending(now: number): Promise<number>;
477
+ deleteByOwner(approvalId: string, userId: string): Promise<boolean>;
478
+ }
479
+ export interface StoredPromptRecord {
480
+ id: string;
481
+ user_id: string;
482
+ slug: string;
483
+ title: string;
484
+ description: string | null;
485
+ content: string;
486
+ variables: string | null;
487
+ tags: string | null;
488
+ version: number;
489
+ created_at: number;
490
+ updated_at: number;
491
+ }
492
+ export interface StoredPromptVersionRecord {
493
+ id: string;
494
+ prompt_id: string;
495
+ version: number;
496
+ content: string;
497
+ variables: string | null;
498
+ created_at: number;
499
+ }
500
+ export interface PromptRepository {
501
+ listByOwner(userId: string, maximum: number): Promise<StoredPromptRecord[]>;
502
+ findByOwner(promptId: string, userId: string): Promise<StoredPromptRecord | null>;
503
+ findById(promptId: string): Promise<StoredPromptRecord | null>;
504
+ findBySlug(userId: string, slug: string): Promise<StoredPromptRecord | null>;
505
+ /** Upsert the prompt and archive the given prior revision in one transaction. */
506
+ replaceWithLimit(prompt: StoredPromptRecord, maximum: number, archivedVersion: StoredPromptVersionRecord | null): Promise<void>;
507
+ listVersions(promptId: string, maximum: number): Promise<StoredPromptVersionRecord[]>;
508
+ findVersion(promptId: string, version: number): Promise<StoredPromptVersionRecord | null>;
509
+ deleteByOwner(promptId: string, userId: string): Promise<boolean>;
510
+ }
511
+ export interface StoredSkillRecord {
512
+ id: string;
513
+ user_id: string;
514
+ slug: string;
515
+ name: string;
516
+ description: string;
517
+ instructions: string;
518
+ enabled: number;
519
+ version: number;
520
+ created_at: number;
521
+ updated_at: number;
522
+ }
523
+ export interface StoredSkillVersionRecord {
524
+ id: string;
525
+ skill_id: string;
526
+ version: number;
527
+ instructions: string;
528
+ created_at: number;
529
+ }
530
+ export interface StoredSkillFileRecord {
531
+ id: string;
532
+ skill_id: string;
533
+ path: string;
534
+ content: string;
535
+ size: number;
536
+ created_at: number;
537
+ updated_at: number;
538
+ }
539
+ export interface SkillFileRepository {
540
+ listBySkill(skillId: string): Promise<StoredSkillFileRecord[]>;
541
+ find(skillId: string, path: string): Promise<StoredSkillFileRecord | null>;
542
+ upsert(file: StoredSkillFileRecord, maximumPerSkill: number): Promise<void>;
543
+ /** Replace a skill's whole bundle atomically (imports and full saves). */
544
+ replaceAllForSkill(skillId: string, files: readonly StoredSkillFileRecord[]): Promise<void>;
545
+ delete(skillId: string, path: string): Promise<boolean>;
546
+ }
547
+ export interface SkillRepository {
548
+ listByOwner(userId: string, maximum: number): Promise<StoredSkillRecord[]>;
549
+ findByOwner(skillId: string, userId: string): Promise<StoredSkillRecord | null>;
550
+ findById(skillId: string): Promise<StoredSkillRecord | null>;
551
+ findBySlug(userId: string, slug: string): Promise<StoredSkillRecord | null>;
552
+ /** Upsert the skill and archive the given prior revision in one transaction. */
553
+ replaceWithLimit(skill: StoredSkillRecord, maximum: number, archivedVersion: StoredSkillVersionRecord | null): Promise<void>;
554
+ listVersions(skillId: string, maximum: number): Promise<StoredSkillVersionRecord[]>;
555
+ findVersion(skillId: string, version: number): Promise<StoredSkillVersionRecord | null>;
556
+ deleteByOwner(skillId: string, userId: string): Promise<boolean>;
85
557
  }
86
558
  export interface SessionFolderRepository {
87
559
  listByOwner(userId: string, maximum: number): Promise<StoredNamedResourceRecord[]>;
@@ -117,6 +589,13 @@ export interface SystemSettingRepository {
117
589
  }
118
590
  export type ArchiveOwnedResource = 'session' | 'session-folder' | 'note' | 'knowledge-collection' | 'document' | 'persona';
119
591
  export type ArchiveNestedResource = 'session-message' | 'document-chunk';
592
+ /**
593
+ * Resources that can carry access grants. Archive-owned resources are always
594
+ * grantable; prompts, skills, and tool servers are grantable without being
595
+ * part of the portable user archive (tool servers are instance-level, and
596
+ * prompt/skill portability uses their dedicated import/export surfaces).
597
+ */
598
+ export type GrantableResource = ArchiveOwnedResource | 'prompt' | 'skill' | 'tool-server' | 'calendar';
120
599
  export interface ArchiveNestedOwner {
121
600
  userId: string;
122
601
  parentId: string;
@@ -176,21 +655,161 @@ export interface DataArchiveApplyPlan {
176
655
  documents: StoredArchiveDocumentAggregate[];
177
656
  }
178
657
  export interface DataArchiveRepository {
179
- ownerOf(resource: ArchiveOwnedResource, id: string): Promise<string | null>;
658
+ ownerOf(resource: GrantableResource, id: string): Promise<string | null>;
180
659
  nestedOwnerOf(resource: ArchiveNestedResource, id: string): Promise<ArchiveNestedOwner | null>;
181
660
  countByOwner(resource: 'session-folder' | 'note', userId: string): Promise<number>;
182
661
  resourceDeletionReserved(resource: 'document', id: string): Promise<boolean>;
183
662
  /** Apply every included archive section in one database transaction. */
184
663
  applyImport(plan: DataArchiveApplyPlan): Promise<void>;
185
664
  }
665
+ export interface StoredModelTariffRecord {
666
+ id: string;
667
+ plugin_id: string;
668
+ model: string | null;
669
+ input_per_million: number | null;
670
+ output_per_million: number | null;
671
+ unit_price: number | null;
672
+ currency: string;
673
+ effective_from: number;
674
+ created_by: string | null;
675
+ created_at: number;
676
+ }
677
+ export interface ModelTariffRepository {
678
+ listAll(maximum: number): Promise<StoredModelTariffRecord[]>;
679
+ insert(tariff: StoredModelTariffRecord): Promise<void>;
680
+ deleteById(tariffId: string): Promise<boolean>;
681
+ }
682
+ export interface StoredUsageBudgetRecord {
683
+ id: string;
684
+ name: string;
685
+ principal_type: 'instance' | 'user' | 'group';
686
+ principal_id: string | null;
687
+ period: 'daily' | 'weekly' | 'monthly';
688
+ amount_usd: number;
689
+ mode: 'observe' | 'soft' | 'hard';
690
+ created_by: string | null;
691
+ created_at: number;
692
+ updated_at: number;
693
+ }
694
+ export interface UsageBudgetRepository {
695
+ listAll(maximum: number): Promise<StoredUsageBudgetRecord[]>;
696
+ findById(budgetId: string): Promise<StoredUsageBudgetRecord | null>;
697
+ replace(budget: StoredUsageBudgetRecord): Promise<void>;
698
+ deleteById(budgetId: string): Promise<boolean>;
699
+ }
700
+ export interface StoredMessageFeedbackRecord {
701
+ id: string;
702
+ user_id: string;
703
+ session_id: string;
704
+ message_id: string;
705
+ rating: number;
706
+ /** Plain JSON array of short topic tags. */
707
+ tags: string | null;
708
+ /** Encrypted free-text comment. */
709
+ comment: string | null;
710
+ model: string | null;
711
+ plugin_id: string | null;
712
+ /** Encrypted JSON snapshot of the rated exchange. */
713
+ snapshot: string | null;
714
+ created_at: number;
715
+ updated_at: number;
716
+ }
717
+ export interface MessageFeedbackRepository {
718
+ /** Insert or update the caller's feedback for one message. */
719
+ upsertByMessage(feedback: StoredMessageFeedbackRecord): Promise<void>;
720
+ deleteByMessage(userId: string, messageId: string): Promise<boolean>;
721
+ listByOwner(userId: string, maximum: number): Promise<StoredMessageFeedbackRecord[]>;
722
+ /** Instance-wide feedback for administrators, newest first. */
723
+ listAll(maximum: number): Promise<StoredMessageFeedbackRecord[]>;
724
+ }
725
+ export interface StoredArenaVoteRecord {
726
+ id: string;
727
+ user_id: string;
728
+ compare_group: string;
729
+ model_a: string;
730
+ model_b: string;
731
+ winner: 'a' | 'b' | 'tie' | 'both-bad';
732
+ created_at: number;
733
+ }
734
+ export interface ArenaVoteRepository {
735
+ /** Returns false when this user already voted on the comparison. */
736
+ insertOnce(vote: StoredArenaVoteRecord): Promise<boolean>;
737
+ /** Deterministic replay order (created_at, id) for rating computation. */
738
+ listAllOrdered(maximum: number): Promise<StoredArenaVoteRecord[]>;
739
+ }
740
+ export interface StoredEvalSetRecord {
741
+ id: string;
742
+ user_id: string;
743
+ name: string;
744
+ description: string | null;
745
+ /** Encrypted JSON array of evaluation items. */
746
+ items: string;
747
+ created_at: number;
748
+ updated_at: number;
749
+ }
750
+ export interface EvalSetRepository {
751
+ listByOwner(userId: string, maximum: number): Promise<StoredEvalSetRecord[]>;
752
+ findByOwner(setId: string, userId: string): Promise<StoredEvalSetRecord | null>;
753
+ replaceWithLimit(set: StoredEvalSetRecord, maximum: number): Promise<void>;
754
+ deleteByOwner(setId: string, userId: string): Promise<boolean>;
755
+ }
756
+ export interface StoredEvalRunRecord {
757
+ id: string;
758
+ set_id: string;
759
+ user_id: string;
760
+ label: string | null;
761
+ plugin_id: string | null;
762
+ model: string;
763
+ status: 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';
764
+ /** Encrypted JSON array of per-item results. */
765
+ results: string | null;
766
+ error: string | null;
767
+ created_at: number;
768
+ updated_at: number;
769
+ completed_at: number | null;
770
+ }
771
+ export interface EvalRunRepository {
772
+ listByOwner(userId: string, maximum: number): Promise<StoredEvalRunRecord[]>;
773
+ listBySet(setId: string, userId: string, maximum: number): Promise<StoredEvalRunRecord[]>;
774
+ findByOwner(runId: string, userId: string): Promise<StoredEvalRunRecord | null>;
775
+ insert(run: StoredEvalRunRecord): Promise<void>;
776
+ update(runId: string, userId: string, changes: {
777
+ status: StoredEvalRunRecord['status'];
778
+ results?: string | null;
779
+ error?: string | null;
780
+ updated_at: number;
781
+ completed_at?: number | null;
782
+ }): Promise<boolean>;
783
+ }
186
784
  export interface ApplicationResourceRepositories {
187
785
  chatSessions: ChatSessionRepository;
188
786
  knowledgeCollections: KnowledgeCollectionRepository;
189
787
  notes: NoteRepository;
788
+ calendars: CalendarRepository;
789
+ calendarEvents: CalendarEventRepository;
790
+ channels: ChannelRepository;
791
+ channelMessages: ChannelMessageRepository;
792
+ notifications: NotificationRepository;
793
+ webhookTargets: WebhookTargetRepository;
794
+ automations: AutomationRepository;
795
+ automationRuns: AutomationRunRepository;
796
+ toolServers: ToolServerRepository;
797
+ toolServerTools: ToolServerToolRepository;
798
+ toolServerCredentials: ToolServerCredentialRepository;
799
+ toolApprovals: ToolApprovalRepository;
800
+ prompts: PromptRepository;
801
+ skills: SkillRepository;
802
+ skillFiles: SkillFileRepository;
190
803
  sessionFolders: SessionFolderRepository;
191
804
  preferences: PreferenceRepository;
192
805
  systemSettings: SystemSettingRepository;
193
806
  archive: DataArchiveRepository;
807
+ modelTariffs: ModelTariffRepository;
808
+ usageBudgets: UsageBudgetRepository;
809
+ messageFeedback: MessageFeedbackRepository;
810
+ arenaVotes: ArenaVoteRepository;
811
+ evalSets: EvalSetRepository;
812
+ evalRuns: EvalRunRepository;
194
813
  }
195
814
  export declare class PersistenceResourceConflictError extends Error {
196
815
  constructor();
@@ -200,8 +819,8 @@ export declare class PersistenceResourceDeletionReservedError extends Error {
200
819
  constructor(resourceId: string);
201
820
  }
202
821
  export declare class PersistenceResourceLimitError extends Error {
203
- readonly resource: 'note' | 'session-folder';
822
+ readonly resource: 'note' | 'session-folder' | 'calendar-event' | 'calendar' | 'automation' | 'tool-server' | 'prompt' | 'skill' | 'skill-file' | 'note-attachment' | 'channel' | 'channel-member' | 'channel-message' | 'channel-reaction' | 'notification' | 'webhook-target' | 'eval-set';
204
823
  readonly maximum: number;
205
- constructor(resource: 'note' | 'session-folder', maximum: number);
824
+ constructor(resource: 'note' | 'session-folder' | 'calendar-event' | 'calendar' | 'automation' | 'tool-server' | 'prompt' | 'skill' | 'skill-file' | 'note-attachment' | 'channel' | 'channel-member' | 'channel-message' | 'channel-reaction' | 'notification' | 'webhook-target' | 'eval-set', maximum: number);
206
825
  }
207
826
  //# sourceMappingURL=resourceTypes.d.ts.map