@multiplayer-app/sandbox 0.0.8 → 0.0.10

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 (273) hide show
  1. package/dist/agents/content-generator.agent.d.ts +4 -0
  2. package/dist/agents/content-generator.agent.d.ts.map +1 -0
  3. package/dist/agents/content-generator.agent.js +41 -0
  4. package/dist/agents/content-generator.agent.js.map +1 -0
  5. package/dist/agents/html-generator.agent.d.ts +1 -3
  6. package/dist/agents/html-generator.agent.d.ts.map +1 -1
  7. package/dist/agents/html-generator.agent.js +4 -90
  8. package/dist/agents/html-generator.agent.js.map +1 -1
  9. package/dist/agents/markdown-generator.agent.d.ts.map +1 -1
  10. package/dist/agents/markdown-generator.agent.js +10 -5
  11. package/dist/agents/markdown-generator.agent.js.map +1 -1
  12. package/dist/agents/shared/content-generator-system-prompt.d.ts +3 -0
  13. package/dist/agents/shared/content-generator-system-prompt.d.ts.map +1 -0
  14. package/dist/agents/shared/content-generator-system-prompt.js +32 -0
  15. package/dist/agents/shared/content-generator-system-prompt.js.map +1 -0
  16. package/dist/agents/shared/get-session-artifact-content.tool.d.ts +7 -0
  17. package/dist/agents/shared/get-session-artifact-content.tool.d.ts.map +1 -0
  18. package/dist/agents/shared/get-session-artifact-content.tool.js +44 -0
  19. package/dist/agents/shared/get-session-artifact-content.tool.js.map +1 -0
  20. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts +5 -0
  21. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts.map +1 -0
  22. package/dist/agents/shared/list-session-artifact-paths.tool.js +37 -0
  23. package/dist/agents/shared/list-session-artifact-paths.tool.js.map +1 -0
  24. package/dist/agents/shared/publish-session-artifacts.tool.d.ts +1 -10
  25. package/dist/agents/shared/publish-session-artifacts.tool.d.ts.map +1 -1
  26. package/dist/agents/shared/publish-session-artifacts.tool.js +96 -81
  27. package/dist/agents/shared/publish-session-artifacts.tool.js.map +1 -1
  28. package/dist/agents/shared/update-session-artifacts.tool.d.ts +18 -0
  29. package/dist/agents/shared/update-session-artifacts.tool.d.ts.map +1 -0
  30. package/dist/agents/shared/update-session-artifacts.tool.js +146 -0
  31. package/dist/agents/shared/update-session-artifacts.tool.js.map +1 -0
  32. package/dist/agents/shared/validate-artifact-content.tools.d.ts +12 -0
  33. package/dist/agents/shared/validate-artifact-content.tools.d.ts.map +1 -0
  34. package/dist/agents/shared/validate-artifact-content.tools.js +131 -0
  35. package/dist/agents/shared/validate-artifact-content.tools.js.map +1 -0
  36. package/dist/agents.d.ts.map +1 -1
  37. package/dist/agents.js +6 -4
  38. package/dist/agents.js.map +1 -1
  39. package/dist/ai-agent.service.d.ts.map +1 -1
  40. package/dist/ai-agent.service.js +0 -2
  41. package/dist/ai-agent.service.js.map +1 -1
  42. package/dist/create-builder-api.d.ts +4 -0
  43. package/dist/create-builder-api.d.ts.map +1 -1
  44. package/dist/create-builder-api.js.map +1 -1
  45. package/dist/index.d.ts +5 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +15 -5
  48. package/dist/index.js.map +1 -1
  49. package/dist/lib/chat-access.d.ts +19 -0
  50. package/dist/lib/chat-access.d.ts.map +1 -0
  51. package/dist/lib/chat-access.js +75 -0
  52. package/dist/lib/chat-access.js.map +1 -0
  53. package/dist/lib/list-user-chats.d.ts +22 -0
  54. package/dist/lib/list-user-chats.d.ts.map +1 -0
  55. package/dist/lib/list-user-chats.js +48 -0
  56. package/dist/lib/list-user-chats.js.map +1 -0
  57. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts +3 -0
  58. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts.map +1 -0
  59. package/dist/lib/session-artifacts/apply-hashline-edits.js +25 -0
  60. package/dist/lib/session-artifacts/apply-hashline-edits.js.map +1 -0
  61. package/dist/lib/session-artifacts/artifact-text-edit.d.ts +8 -0
  62. package/dist/lib/session-artifacts/artifact-text-edit.d.ts.map +1 -0
  63. package/dist/lib/session-artifacts/artifact-text-edit.js +23 -0
  64. package/dist/lib/session-artifacts/artifact-text-edit.js.map +1 -0
  65. package/dist/lib/session-artifacts/hashline-diff-guide.d.ts +3 -0
  66. package/dist/lib/session-artifacts/hashline-diff-guide.d.ts.map +1 -0
  67. package/dist/lib/session-artifacts/hashline-diff-guide.js +19 -0
  68. package/dist/lib/session-artifacts/hashline-diff-guide.js.map +1 -0
  69. package/dist/lib/session-artifacts/hashline-tag.d.ts +33 -0
  70. package/dist/lib/session-artifacts/hashline-tag.d.ts.map +1 -0
  71. package/dist/lib/session-artifacts/hashline-tag.js +80 -0
  72. package/dist/lib/session-artifacts/hashline-tag.js.map +1 -0
  73. package/dist/lib/session-artifacts/parse-hashline-diff.d.ts +10 -0
  74. package/dist/lib/session-artifacts/parse-hashline-diff.d.ts.map +1 -0
  75. package/dist/lib/session-artifacts/parse-hashline-diff.js +33 -0
  76. package/dist/lib/session-artifacts/parse-hashline-diff.js.map +1 -0
  77. package/dist/lib/session-pages/artifact-storage-paths.d.ts +13 -0
  78. package/dist/lib/session-pages/artifact-storage-paths.d.ts.map +1 -0
  79. package/dist/lib/session-pages/artifact-storage-paths.js +46 -0
  80. package/dist/lib/session-pages/artifact-storage-paths.js.map +1 -0
  81. package/dist/lib/session-pages/artifact-storage.d.ts +8 -0
  82. package/dist/lib/session-pages/artifact-storage.d.ts.map +1 -0
  83. package/dist/lib/session-pages/artifact-storage.js +113 -0
  84. package/dist/lib/session-pages/artifact-storage.js.map +1 -0
  85. package/dist/lib/session-pages/delete-session-artifact.d.ts +5 -0
  86. package/dist/lib/session-pages/delete-session-artifact.d.ts.map +1 -0
  87. package/dist/lib/session-pages/delete-session-artifact.js +56 -0
  88. package/dist/lib/session-pages/delete-session-artifact.js.map +1 -0
  89. package/dist/lib/session-pages/index.d.ts +3 -3
  90. package/dist/lib/session-pages/index.d.ts.map +1 -1
  91. package/dist/lib/session-pages/index.js +6 -6
  92. package/dist/lib/session-pages/index.js.map +1 -1
  93. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts +3 -0
  94. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts.map +1 -0
  95. package/dist/lib/session-pages/inject-preview-error-reporter.js +30 -0
  96. package/dist/lib/session-pages/inject-preview-error-reporter.js.map +1 -0
  97. package/dist/lib/session-pages/list-session-artifacts.d.ts.map +1 -1
  98. package/dist/lib/session-pages/list-session-artifacts.js +19 -3
  99. package/dist/lib/session-pages/list-session-artifacts.js.map +1 -1
  100. package/dist/lib/session-pages/paths.d.ts +0 -1
  101. package/dist/lib/session-pages/paths.d.ts.map +1 -1
  102. package/dist/lib/session-pages/paths.js +0 -8
  103. package/dist/lib/session-pages/paths.js.map +1 -1
  104. package/dist/lib/session-pages/read-session-artifacts.d.ts +9 -0
  105. package/dist/lib/session-pages/read-session-artifacts.d.ts.map +1 -0
  106. package/dist/lib/session-pages/read-session-artifacts.js +56 -0
  107. package/dist/lib/session-pages/read-session-artifacts.js.map +1 -0
  108. package/dist/lib/session-pages/session-pico-css.d.ts +5 -0
  109. package/dist/lib/session-pages/session-pico-css.d.ts.map +1 -0
  110. package/dist/lib/session-pages/session-pico-css.js +11 -0
  111. package/dist/lib/session-pages/session-pico-css.js.map +1 -0
  112. package/dist/lib/session-pages/write-session-artifacts.d.ts +0 -10
  113. package/dist/lib/session-pages/write-session-artifacts.d.ts.map +1 -1
  114. package/dist/lib/session-pages/write-session-artifacts.js +9 -57
  115. package/dist/lib/session-pages/write-session-artifacts.js.map +1 -1
  116. package/dist/lib/socket/artifact-events.d.ts +1 -1
  117. package/dist/lib/socket/artifact-events.d.ts.map +1 -1
  118. package/dist/lib/socket/artifact-events.js.map +1 -1
  119. package/dist/middleware/index.d.ts +2 -0
  120. package/dist/middleware/index.d.ts.map +1 -0
  121. package/dist/middleware/index.js +38 -0
  122. package/dist/middleware/index.js.map +1 -0
  123. package/dist/middleware/validation/activity.validation.d.ts +5 -0
  124. package/dist/middleware/validation/activity.validation.d.ts.map +1 -0
  125. package/dist/middleware/validation/activity.validation.js +19 -0
  126. package/dist/middleware/validation/activity.validation.js.map +1 -0
  127. package/dist/middleware/validation/agent.validation.d.ts +4 -0
  128. package/dist/middleware/validation/agent.validation.d.ts.map +1 -0
  129. package/dist/middleware/validation/agent.validation.js +25 -0
  130. package/dist/middleware/validation/agent.validation.js.map +1 -0
  131. package/dist/middleware/validation/chat.validation.d.ts +12 -0
  132. package/dist/middleware/validation/chat.validation.d.ts.map +1 -0
  133. package/dist/middleware/validation/chat.validation.js +94 -0
  134. package/dist/middleware/validation/chat.validation.js.map +1 -0
  135. package/dist/middleware/validation/index.d.ts +4 -0
  136. package/dist/middleware/validation/index.d.ts.map +1 -0
  137. package/dist/middleware/validation/index.js +40 -0
  138. package/dist/middleware/validation/index.js.map +1 -0
  139. package/dist/middleware/validation/zod-validate.d.ts +5 -0
  140. package/dist/middleware/validation/zod-validate.d.ts.map +1 -0
  141. package/dist/middleware/validation/zod-validate.js +25 -0
  142. package/dist/middleware/validation/zod-validate.js.map +1 -0
  143. package/dist/realtime/reset-session-artifact-y-docs.d.ts.map +1 -1
  144. package/dist/realtime/reset-session-artifact-y-docs.js +6 -1
  145. package/dist/realtime/reset-session-artifact-y-docs.js.map +1 -1
  146. package/dist/realtime/session-artifact-document-id.d.ts.map +1 -1
  147. package/dist/realtime/session-artifact-document-id.js +0 -2
  148. package/dist/realtime/session-artifact-document-id.js.map +1 -1
  149. package/dist/realtime/session-artifact-y-socket-io.d.ts.map +1 -1
  150. package/dist/realtime/session-artifact-y-socket-io.js +0 -11
  151. package/dist/realtime/session-artifact-y-socket-io.js.map +1 -1
  152. package/dist/realtime/session-artifact-yjs-store.d.ts +24 -3
  153. package/dist/realtime/session-artifact-yjs-store.d.ts.map +1 -1
  154. package/dist/realtime/session-artifact-yjs-store.js +123 -41
  155. package/dist/realtime/session-artifact-yjs-store.js.map +1 -1
  156. package/dist/routes/activities/get.d.ts +3 -0
  157. package/dist/routes/activities/get.d.ts.map +1 -0
  158. package/dist/routes/activities/get.js +28 -0
  159. package/dist/routes/activities/get.js.map +1 -0
  160. package/dist/routes/activities/index.d.ts +2 -0
  161. package/dist/routes/activities/index.d.ts.map +1 -0
  162. package/dist/routes/activities/index.js +16 -0
  163. package/dist/routes/activities/index.js.map +1 -0
  164. package/dist/routes/activities/list.d.ts +3 -0
  165. package/dist/routes/activities/list.d.ts.map +1 -0
  166. package/dist/routes/activities/list.js +41 -0
  167. package/dist/routes/activities/list.js.map +1 -0
  168. package/dist/routes/activities/source-types.d.ts +3 -0
  169. package/dist/routes/activities/source-types.d.ts.map +1 -0
  170. package/dist/routes/activities/source-types.js +33 -0
  171. package/dist/routes/activities/source-types.js.map +1 -0
  172. package/dist/routes/activities/summary.d.ts +3 -0
  173. package/dist/routes/activities/summary.d.ts.map +1 -0
  174. package/dist/routes/activities/summary.js +38 -0
  175. package/dist/routes/activities/summary.js.map +1 -0
  176. package/dist/routes/agents/getConfig.d.ts +3 -0
  177. package/dist/routes/agents/getConfig.d.ts.map +1 -0
  178. package/dist/routes/agents/getConfig.js +16 -0
  179. package/dist/routes/agents/getConfig.js.map +1 -0
  180. package/dist/routes/agents/index.d.ts +2 -0
  181. package/dist/routes/agents/index.d.ts.map +1 -0
  182. package/dist/routes/agents/index.js +13 -0
  183. package/dist/routes/agents/index.js.map +1 -0
  184. package/dist/routes/agents/upsertPreferences.d.ts +4 -0
  185. package/dist/routes/agents/upsertPreferences.d.ts.map +1 -0
  186. package/dist/routes/agents/upsertPreferences.js +42 -0
  187. package/dist/routes/agents/upsertPreferences.js.map +1 -0
  188. package/dist/routes/chats/abort.d.ts +2 -2
  189. package/dist/routes/chats/abort.d.ts.map +1 -1
  190. package/dist/routes/chats/abort.js +10 -5
  191. package/dist/routes/chats/abort.js.map +1 -1
  192. package/dist/routes/chats/actions.d.ts +2 -2
  193. package/dist/routes/chats/actions.d.ts.map +1 -1
  194. package/dist/routes/chats/actions.js +12 -12
  195. package/dist/routes/chats/actions.js.map +1 -1
  196. package/dist/routes/chats/artifacts.d.ts +2 -2
  197. package/dist/routes/chats/artifacts.d.ts.map +1 -1
  198. package/dist/routes/chats/artifacts.js +15 -4
  199. package/dist/routes/chats/artifacts.js.map +1 -1
  200. package/dist/routes/chats/chat-route-errors.d.ts +3 -0
  201. package/dist/routes/chats/chat-route-errors.d.ts.map +1 -0
  202. package/dist/routes/chats/chat-route-errors.js +23 -0
  203. package/dist/routes/chats/chat-route-errors.js.map +1 -0
  204. package/dist/routes/chats/delete.d.ts +2 -2
  205. package/dist/routes/chats/delete.d.ts.map +1 -1
  206. package/dist/routes/chats/delete.js +12 -3
  207. package/dist/routes/chats/delete.js.map +1 -1
  208. package/dist/routes/chats/get.d.ts +2 -2
  209. package/dist/routes/chats/get.d.ts.map +1 -1
  210. package/dist/routes/chats/get.js +8 -4
  211. package/dist/routes/chats/get.js.map +1 -1
  212. package/dist/routes/chats/getStream.d.ts +2 -2
  213. package/dist/routes/chats/getStream.d.ts.map +1 -1
  214. package/dist/routes/chats/getStream.js +16 -8
  215. package/dist/routes/chats/getStream.js.map +1 -1
  216. package/dist/routes/chats/index.d.ts.map +1 -1
  217. package/dist/routes/chats/index.js +19 -13
  218. package/dist/routes/chats/index.js.map +1 -1
  219. package/dist/routes/chats/invite-participants.d.ts +3 -0
  220. package/dist/routes/chats/invite-participants.d.ts.map +1 -0
  221. package/dist/routes/chats/invite-participants.js +56 -0
  222. package/dist/routes/chats/invite-participants.js.map +1 -0
  223. package/dist/routes/chats/list.d.ts +2 -2
  224. package/dist/routes/chats/list.d.ts.map +1 -1
  225. package/dist/routes/chats/list.js +22 -25
  226. package/dist/routes/chats/list.js.map +1 -1
  227. package/dist/routes/chats/messages.d.ts +2 -2
  228. package/dist/routes/chats/messages.d.ts.map +1 -1
  229. package/dist/routes/chats/messages.js +13 -6
  230. package/dist/routes/chats/messages.js.map +1 -1
  231. package/dist/routes/chats/multiUserMessages.d.ts +2 -2
  232. package/dist/routes/chats/multiUserMessages.d.ts.map +1 -1
  233. package/dist/routes/chats/multiUserMessages.js +19 -19
  234. package/dist/routes/chats/multiUserMessages.js.map +1 -1
  235. package/dist/routes/chats/remove-participants.d.ts +3 -0
  236. package/dist/routes/chats/remove-participants.d.ts.map +1 -0
  237. package/dist/routes/chats/remove-participants.js +46 -0
  238. package/dist/routes/chats/remove-participants.js.map +1 -0
  239. package/dist/routes/chats/stream.d.ts +2 -2
  240. package/dist/routes/chats/stream.d.ts.map +1 -1
  241. package/dist/routes/chats/stream.js +28 -11
  242. package/dist/routes/chats/stream.js.map +1 -1
  243. package/dist/routes/chats/title.d.ts +2 -2
  244. package/dist/routes/chats/title.d.ts.map +1 -1
  245. package/dist/routes/chats/title.js +14 -8
  246. package/dist/routes/chats/title.js.map +1 -1
  247. package/dist/routes/chats/updateToolCall.d.ts +2 -2
  248. package/dist/routes/chats/updateToolCall.d.ts.map +1 -1
  249. package/dist/routes/chats/updateToolCall.js +16 -20
  250. package/dist/routes/chats/updateToolCall.js.map +1 -1
  251. package/dist/routes/route-errors.d.ts +3 -0
  252. package/dist/routes/route-errors.d.ts.map +1 -0
  253. package/dist/routes/route-errors.js +13 -0
  254. package/dist/routes/route-errors.js.map +1 -0
  255. package/dist/routes/schemas.d.ts +80 -0
  256. package/dist/routes/schemas.d.ts.map +1 -1
  257. package/dist/routes/schemas.js +95 -1
  258. package/dist/routes/schemas.js.map +1 -1
  259. package/dist/routes/sessions.d.ts.map +1 -1
  260. package/dist/routes/sessions.js +77 -9
  261. package/dist/routes/sessions.js.map +1 -1
  262. package/dist/routes/tenants/credentials.d.ts +5 -0
  263. package/dist/routes/tenants/credentials.d.ts.map +1 -0
  264. package/dist/routes/tenants/credentials.js +50 -0
  265. package/dist/routes/tenants/credentials.js.map +1 -0
  266. package/dist/routes/tenants/index.d.ts +2 -0
  267. package/dist/routes/tenants/index.d.ts.map +1 -0
  268. package/dist/routes/tenants/index.js +10 -0
  269. package/dist/routes/tenants/index.js.map +1 -0
  270. package/dist/server.d.ts.map +1 -1
  271. package/dist/server.js +6 -0
  272. package/dist/server.js.map +1 -1
  273. package/package.json +5 -4
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upsertAgentPreferencesBatch = exports.upsertAgentPreferences = void 0;
4
+ const zod_1 = require("zod");
5
+ const context_1 = require("../../context");
6
+ const chat_access_1 = require("../../lib/chat-access");
7
+ const schemas_1 = require("../schemas");
8
+ const route_errors_1 = require("../route-errors");
9
+ const upsertValidatedSchema = zod_1.z.object({
10
+ params: schemas_1.agentRouteParamsSchema,
11
+ body: schemas_1.upsertAgentPreferencesSchema,
12
+ });
13
+ const batchValidatedSchema = zod_1.z.object({ body: schemas_1.upsertAgentPreferencesBatchSchema });
14
+ const upsertAgentPreferences = async (req, res) => {
15
+ try {
16
+ const { params, body } = upsertValidatedSchema.parse(req.validated);
17
+ const userId = (0, chat_access_1.requireUserId)(req);
18
+ const preference = await (0, context_1.getAgentService)()
19
+ .getAgentProcessor()
20
+ .upsertUserPreferences(userId, params.agentName, body.tools);
21
+ res.status(200).json(preference);
22
+ }
23
+ catch (error) {
24
+ (0, route_errors_1.respondRouteError)(res, error);
25
+ }
26
+ };
27
+ exports.upsertAgentPreferences = upsertAgentPreferences;
28
+ const upsertAgentPreferencesBatch = async (req, res) => {
29
+ try {
30
+ const { body } = batchValidatedSchema.parse(req.validated);
31
+ const userId = (0, chat_access_1.requireUserId)(req);
32
+ const items = body.preferences;
33
+ const processor = (0, context_1.getAgentService)().getAgentProcessor();
34
+ const results = await Promise.all(items.map(({ agentName, tools }) => processor.upsertUserPreferences(userId, agentName, tools)));
35
+ res.status(200).json({ preferences: results });
36
+ }
37
+ catch (error) {
38
+ (0, route_errors_1.respondRouteError)(res, error);
39
+ }
40
+ };
41
+ exports.upsertAgentPreferencesBatch = upsertAgentPreferencesBatch;
42
+ //# sourceMappingURL=upsertPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsertPreferences.js","sourceRoot":"","sources":["../../../src/routes/agents/upsertPreferences.ts"],"names":[],"mappings":";;;AAEA,6BAAuB;AACvB,2CAA+C;AAC/C,uDAAqD;AACrD,wCAImB;AACnB,kDAAmD;AAEnD,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,gCAAsB;IAC9B,IAAI,EAAE,sCAA4B;CACnC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,2CAAiC,EAAE,CAAC,CAAA;AAE3E,MAAM,sBAAsB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QAEjC,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAe,GAAE;aACvC,iBAAiB,EAAE;aACnB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAE9D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,gCAAiB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC,CAAA;AAbY,QAAA,sBAAsB,0BAalC;AAEM,MAAM,2BAA2B,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC/E,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QAEjC,MAAM,KAAK,GAAsD,IAAI,CAAC,WAAW,CAAA;QAEjF,MAAM,SAAS,GAAG,IAAA,yBAAe,GAAE,CAAC,iBAAiB,EAAE,CAAA;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAC/F,CAAA;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,gCAAiB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC,CAAA;AAhBY,QAAA,2BAA2B,+BAgBvC"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
2
- export declare const abortMessage: RequestHandler;
1
+ import type { Request, Response } from 'express';
2
+ export declare const abortMessage: (req: Request, res: Response) => Promise<void>;
3
3
  //# sourceMappingURL=abort.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/abort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,YAAY,EAAE,cAQ1B,CAAA"}
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/abort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAShD,eAAO,MAAM,YAAY,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAU7D,CAAA"}
@@ -1,17 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.abortMessage = void 0;
4
- const schemas_1 = require("../schemas");
4
+ const zod_1 = require("zod");
5
5
  const context_1 = require("../../context");
6
+ const chat_access_1 = require("../../lib/chat-access");
7
+ const schemas_1 = require("../schemas");
8
+ const chat_route_errors_1 = require("./chat-route-errors");
9
+ const validatedSchema = zod_1.z.object({ params: schemas_1.getStreamSchema });
6
10
  const abortMessage = async (req, res) => {
7
- var _a;
8
11
  try {
9
- const { chatId } = schemas_1.getStreamSchema.parse((_a = req.params) !== null && _a !== void 0 ? _a : {});
10
- await (0, context_1.getAgentService)().stopAgentProcess(chatId);
12
+ const { params } = validatedSchema.parse(req.validated);
13
+ const userId = (0, chat_access_1.requireUserId)(req);
14
+ await (0, chat_access_1.loadChatForUser)(params.chatId, userId);
15
+ await (0, context_1.getAgentService)().stopAgentProcess(params.chatId);
11
16
  res.json({ message: 'Agent process stop requested successfully' });
12
17
  }
13
18
  catch (error) {
14
- res.status(400).json({ error: error.message });
19
+ (0, chat_route_errors_1.respondChatRouteError)(res, error);
15
20
  }
16
21
  };
17
22
  exports.abortMessage = abortMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../src/routes/chats/abort.ts"],"names":[],"mappings":";;;AACA,wCAA4C;AAC5C,2CAA+C;AAExC,MAAM,YAAY,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;;IAC7D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAe,CAAC,KAAK,CAAC,MAAA,GAAG,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAA;QAC1D,MAAM,IAAA,yBAAe,GAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAChD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC,CAAA;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB"}
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../src/routes/chats/abort.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAA+C;AAC/C,uDAAsE;AACtE,wCAA4C;AAC5C,2DAA2D;AAE3D,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,yBAAe,EAAE,CAAC,CAAA;AAEtD,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QACjC,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5C,MAAM,IAAA,yBAAe,GAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC,CAAA;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yCAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
2
- export declare const postChatAction: RequestHandler;
1
+ import type { Request, Response } from 'express';
2
+ export declare const postChatAction: (req: Request, res: Response) => Promise<void>;
3
3
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAc7C,eAAO,MAAM,cAAc,EAAE,cAoB5B,CAAA"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAahD,eAAO,MAAM,cAAc,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAqB/D,CAAA"}
@@ -3,33 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.postChatAction = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const context_1 = require("../../context");
6
+ const chat_access_1 = require("../../lib/chat-access");
6
7
  const socketIdFromRequest_1 = require("../../lib/socketIdFromRequest");
7
8
  const schemas_1 = require("../schemas");
8
- const toolCallActionSchema = zod_1.z.object({
9
- kind: zod_1.z.literal('toolCall'),
10
- toolCallId: zod_1.z.string().min(1),
11
- action: zod_1.z.string().min(1),
12
- data: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
13
- systemMessage: zod_1.z.string().min(1).max(2000).optional(),
9
+ const chat_route_errors_1 = require("./chat-route-errors");
10
+ const validatedSchema = zod_1.z.object({
11
+ params: schemas_1.chatRouteParamsSchema,
12
+ body: schemas_1.toolCallActionSchema,
14
13
  });
15
14
  const postChatAction = async (req, res) => {
16
- var _a, _b;
15
+ var _a;
17
16
  try {
18
- const { chatId } = schemas_1.chatRouteParamsSchema.parse(req.params);
19
- const payload = toolCallActionSchema.parse((_a = req.body) !== null && _a !== void 0 ? _a : {});
17
+ const { params, body: payload } = validatedSchema.parse(req.validated);
18
+ const userId = (0, chat_access_1.requireUserId)(req);
19
+ await (0, chat_access_1.loadChatForUser)(params.chatId, userId);
20
20
  const excludeSocketId = (0, socketIdFromRequest_1.socketIdFromRequest)(req);
21
21
  const result = await (0, context_1.getAgentService)().getChatProcessor().recordToolCallAction({
22
- chatId,
22
+ chatId: params.chatId,
23
23
  toolCallId: payload.toolCallId,
24
24
  action: payload.action,
25
- data: (_b = payload.data) !== null && _b !== void 0 ? _b : {},
25
+ data: (_a = payload.data) !== null && _a !== void 0 ? _a : {},
26
26
  systemMessage: payload.systemMessage,
27
27
  excludeSocketId,
28
28
  });
29
29
  res.json(result !== null && result !== void 0 ? result : { ok: true });
30
30
  }
31
31
  catch (error) {
32
- res.status(400).json({ message: error.message });
32
+ (0, chat_route_errors_1.respondChatRouteError)(res, error);
33
33
  }
34
34
  };
35
35
  exports.postChatAction = postChatAction;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/routes/chats/actions.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAA+C;AAC/C,uEAAmE;AACnE,wCAAkD;AAElD,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAA;AAEK,MAAM,cAAc,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;;IAC/D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,+BAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAA;QAE1D,MAAM,eAAe,GAAG,IAAA,yCAAmB,EAAC,GAAG,CAAC,CAAA;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,oBAAoB,CAAC;YAC7E,MAAM;YACN,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,eAAe;SAChB,CAAC,CAAA;QAEF,GAAG,CAAC,IAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC,CAAA;AApBY,QAAA,cAAc,kBAoB1B"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/routes/chats/actions.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAA+C;AAC/C,uDAAsE;AACtE,uEAAmE;AACnE,wCAAwE;AACxE,2DAA2D;AAE3D,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,+BAAqB;IAC7B,IAAI,EAAE,8BAAoB;CAC3B,CAAC,CAAA;AAEK,MAAM,cAAc,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;;IAClE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtE,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QACjC,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAE5C,MAAM,eAAe,GAAG,IAAA,yCAAmB,EAAC,GAAG,CAAC,CAAA;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,oBAAoB,CAAC;YAC7E,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,eAAe;SAChB,CAAC,CAAA;QAEF,GAAG,CAAC,IAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yCAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;AACH,CAAC,CAAA;AArBY,QAAA,cAAc,kBAqB1B"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
2
- export declare const getArtifacts: RequestHandler;
1
+ import type { Request, Response } from 'express';
2
+ export declare const getArtifacts: (req: Request, res: Response) => Promise<void>;
3
3
  //# sourceMappingURL=artifacts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,YAAY,EAAE,cAI1B,CAAA"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAShD,eAAO,MAAM,YAAY,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAU7D,CAAA"}
@@ -1,12 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getArtifacts = void 0;
4
+ const zod_1 = require("zod");
4
5
  const context_1 = require("../../context");
6
+ const chat_access_1 = require("../../lib/chat-access");
5
7
  const schemas_1 = require("../schemas");
6
- const getArtifacts = (req, res) => {
7
- const { chatId } = schemas_1.chatRouteParamsSchema.parse(req.params);
8
- const items = (0, context_1.getAgentService)().getChatProcessor().listArtifacts(chatId);
9
- res.json(items);
8
+ const chat_route_errors_1 = require("./chat-route-errors");
9
+ const validatedSchema = zod_1.z.object({ params: schemas_1.chatRouteParamsSchema });
10
+ const getArtifacts = async (req, res) => {
11
+ try {
12
+ const { params } = validatedSchema.parse(req.validated);
13
+ const userId = (0, chat_access_1.requireUserId)(req);
14
+ await (0, chat_access_1.loadChatForUser)(params.chatId, userId);
15
+ const items = (0, context_1.getAgentService)().getChatProcessor().listArtifacts(params.chatId);
16
+ res.json(items);
17
+ }
18
+ catch (error) {
19
+ (0, chat_route_errors_1.respondChatRouteError)(res, error);
20
+ }
10
21
  };
11
22
  exports.getArtifacts = getArtifacts;
12
23
  //# sourceMappingURL=artifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/routes/chats/artifacts.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,wCAAkD;AAE3C,MAAM,YAAY,GAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,+BAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IACxE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjB,CAAC,CAAA;AAJY,QAAA,YAAY,gBAIxB"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/routes/chats/artifacts.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAA+C;AAC/C,uDAAsE;AACtE,wCAAkD;AAClD,2DAA2D;AAE3D,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,+BAAqB,EAAE,CAAC,CAAA;AAE5D,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QACjC,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/E,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yCAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB"}
@@ -0,0 +1,3 @@
1
+ import type { Response } from 'express';
2
+ export declare function respondChatRouteError(res: Response, error: unknown): void;
3
+ //# sourceMappingURL=chat-route-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-route-errors.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/chat-route-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAWvC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAuBzE"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.respondChatRouteError = respondChatRouteError;
4
+ const chat_access_1 = require("../../lib/chat-access");
5
+ function respondChatRouteError(res, error) {
6
+ const message = error instanceof Error ? error.message : String(error);
7
+ if ((0, chat_access_1.isUnauthorizedUserError)(error)) {
8
+ res.status(401).json({ message });
9
+ return;
10
+ }
11
+ if ((0, chat_access_1.isChatNotFoundError)(error) || message === chat_access_1.CHAT_NOT_FOUND) {
12
+ res.status(404).json({ message: chat_access_1.CHAT_NOT_FOUND });
13
+ return;
14
+ }
15
+ if (message === chat_access_1.OWNER_INVITE_REQUIRED_MESSAGE
16
+ || message === chat_access_1.OWNER_REMOVE_PARTICIPANTS_MESSAGE
17
+ || message === chat_access_1.OWNER_DELETE_REQUIRED_MESSAGE) {
18
+ res.status(400).json({ message });
19
+ return;
20
+ }
21
+ res.status(400).json({ message });
22
+ }
23
+ //# sourceMappingURL=chat-route-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-route-errors.js","sourceRoot":"","sources":["../../../src/routes/chats/chat-route-errors.ts"],"names":[],"mappings":";;AAWA,sDAuBC;AAjCD,uDAQ8B;AAE9B,SAAgB,qBAAqB,CAAC,GAAa,EAAE,KAAc;IACjE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEtE,IAAI,IAAA,qCAAuB,EAAC,KAAK,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QACjC,OAAM;IACR,CAAC;IAED,IAAI,IAAA,iCAAmB,EAAC,KAAK,CAAC,IAAI,OAAO,KAAK,4BAAc,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,4BAAc,EAAE,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,IACE,OAAO,KAAK,2CAA6B;WACtC,OAAO,KAAK,+CAAiC;WAC7C,OAAO,KAAK,2CAA6B,EAC5C,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QACjC,OAAM;IACR,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;AACnC,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
2
- export declare const deleteChat: RequestHandler;
1
+ import type { Request, Response } from 'express';
2
+ export declare const deleteChat: (req: Request, res: Response) => Promise<void>;
3
3
  //# sourceMappingURL=delete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,UAAU,EAAE,cAQxB,CAAA"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAchD,eAAO,MAAM,UAAU,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAa3D,CAAA"}
@@ -1,16 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deleteChat = void 0;
4
+ const zod_1 = require("zod");
4
5
  const context_1 = require("../../context");
6
+ const chat_access_1 = require("../../lib/chat-access");
5
7
  const schemas_1 = require("../schemas");
8
+ const chat_route_errors_1 = require("./chat-route-errors");
9
+ const validatedSchema = zod_1.z.object({ params: schemas_1.chatRouteParamsSchema });
6
10
  const deleteChat = async (req, res) => {
7
11
  try {
8
- const { chatId } = schemas_1.chatRouteParamsSchema.parse(req.params);
9
- await (0, context_1.getAgentService)().getChatProcessor().deleteChat(chatId);
12
+ const { params } = validatedSchema.parse(req.validated);
13
+ const userId = (0, chat_access_1.requireUserId)(req);
14
+ const chat = await (0, chat_access_1.loadChatForUser)(params.chatId, userId);
15
+ if (!(0, chat_access_1.isChatOwner)(chat, userId)) {
16
+ throw new Error(chat_access_1.OWNER_DELETE_REQUIRED_MESSAGE);
17
+ }
18
+ await (0, context_1.getAgentService)().getChatProcessor().deleteChat(params.chatId);
10
19
  res.status(204).end();
11
20
  }
12
21
  catch (error) {
13
- res.status(404).json({ message: error.message });
22
+ (0, chat_route_errors_1.respondChatRouteError)(res, error);
14
23
  }
15
24
  };
16
25
  exports.deleteChat = deleteChat;
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/routes/chats/delete.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,wCAAkD;AAE3C,MAAM,UAAU,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,+BAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC,CAAA;AARY,QAAA,UAAU,cAQtB"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/routes/chats/delete.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAA+C;AAC/C,uDAK8B;AAC9B,wCAAkD;AAClD,2DAA2D;AAE3D,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,+BAAqB,EAAE,CAAC,CAAA;AAE5D,MAAM,UAAU,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC9D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,IAAA,yBAAW,EAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2CAA6B,CAAC,CAAA;QAChD,CAAC;QACD,MAAM,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yCAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;AACH,CAAC,CAAA;AAbY,QAAA,UAAU,cAatB"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
2
- export declare const getChat: RequestHandler;
1
+ import type { Request, Response } from 'express';
2
+ export declare const getChat: (req: Request, res: Response) => Promise<void>;
3
3
  //# sourceMappingURL=get.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,OAAO,EAAE,cAQrB,CAAA"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAQhD,eAAO,MAAM,OAAO,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBASxD,CAAA"}
@@ -1,16 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getChat = void 0;
4
- const context_1 = require("../../context");
4
+ const zod_1 = require("zod");
5
+ const chat_access_1 = require("../../lib/chat-access");
5
6
  const schemas_1 = require("../schemas");
7
+ const chat_route_errors_1 = require("./chat-route-errors");
8
+ const validatedSchema = zod_1.z.object({ params: schemas_1.chatRouteParamsSchema });
6
9
  const getChat = async (req, res) => {
7
10
  try {
8
- const { chatId } = schemas_1.chatRouteParamsSchema.parse(req.params);
9
- const chat = await (0, context_1.getAgentService)().getChatProcessor().getChat(chatId);
11
+ const { params } = validatedSchema.parse(req.validated);
12
+ const userId = (0, chat_access_1.requireUserId)(req);
13
+ const chat = await (0, chat_access_1.loadChatForUser)(params.chatId, userId);
10
14
  res.json(chat);
11
15
  }
12
16
  catch (error) {
13
- res.status(404).json({ message: error.message });
17
+ (0, chat_route_errors_1.respondChatRouteError)(res, error);
14
18
  }
15
19
  };
16
20
  exports.getChat = getChat;
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/routes/chats/get.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,wCAAkD;AAE3C,MAAM,OAAO,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACxD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,+BAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACvE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC,CAAA;AARY,QAAA,OAAO,WAQnB"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/routes/chats/get.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,uDAAsE;AACtE,wCAAkD;AAClD,2DAA2D;AAE3D,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,+BAAqB,EAAE,CAAC,CAAA;AAE5D,MAAM,OAAO,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACzD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yCAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;AACH,CAAC,CAAA;AATY,QAAA,OAAO,WASnB"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
2
- export declare const getStream: RequestHandler;
1
+ import type { Request, Response } from 'express';
2
+ export declare const getStream: (req: Request, res: Response) => Promise<void>;
3
3
  //# sourceMappingURL=getStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getStream.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/getStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,SAAS,EAAE,cAsDvB,CAAA"}
1
+ {"version":3,"file":"getStream.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/getStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAShD,eAAO,MAAM,SAAS,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBA2D1D,CAAA"}
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getStream = void 0;
4
- const schemas_1 = require("../schemas");
4
+ const zod_1 = require("zod");
5
5
  const context_1 = require("../../context");
6
- const getStream = (req, res) => {
7
- var _a;
6
+ const chat_access_1 = require("../../lib/chat-access");
7
+ const schemas_1 = require("../schemas");
8
+ const chat_route_errors_1 = require("./chat-route-errors");
9
+ const validatedSchema = zod_1.z.object({ params: schemas_1.getStreamSchema });
10
+ const getStream = async (req, res) => {
8
11
  let chatId;
9
12
  try {
10
- chatId = schemas_1.getStreamSchema.parse((_a = req.params) !== null && _a !== void 0 ? _a : {}).chatId;
13
+ const { params } = validatedSchema.parse(req.validated);
14
+ chatId = params.chatId;
15
+ const userId = (0, chat_access_1.requireUserId)(req);
16
+ await (0, chat_access_1.loadChatForUser)(chatId, userId);
11
17
  }
12
- catch (_b) {
13
- res.status(400).json({ message: 'Invalid chat id' });
18
+ catch (error) {
19
+ if (!res.headersSent) {
20
+ (0, chat_route_errors_1.respondChatRouteError)(res, error);
21
+ }
14
22
  return;
15
23
  }
16
24
  const origin = req.headers.origin;
@@ -42,12 +50,12 @@ const getStream = (req, res) => {
42
50
  stream.on('end', removeListeners);
43
51
  stream.on('error', removeListeners);
44
52
  }
45
- catch (_c) {
53
+ catch (_a) {
46
54
  if (!res.destroyed && !res.writableEnded) {
47
55
  try {
48
56
  res.end();
49
57
  }
50
- catch (_d) {
58
+ catch (_b) {
51
59
  /* ignore */
52
60
  }
53
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getStream.js","sourceRoot":"","sources":["../../../src/routes/chats/getStream.ts"],"names":[],"mappings":";;;AACA,wCAA4C;AAC5C,2CAA+C;AAExC,MAAM,SAAS,GAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;IACpD,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,yBAAe,CAAC,KAAK,CAAC,MAAA,GAAG,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IACzD,CAAC;IAAC,WAAM,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACpD,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;IACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;QACpD,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAA;IAEzD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAA;IAClD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAC1C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IACzC,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAE5E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEhB,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QAED,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QAED,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC/B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAE7B,MAAM,eAAe,GAAG,GAAG,EAAE;YAC3B,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAC3C,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC3C,CAAC,CAAA;QAED,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QACnC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACrC,CAAC;IAAC,WAAM,CAAC;QACP,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,GAAG,CAAC,GAAG,EAAE,CAAA;YACX,CAAC;YAAC,WAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAtDY,QAAA,SAAS,aAsDrB"}
1
+ {"version":3,"file":"getStream.js","sourceRoot":"","sources":["../../../src/routes/chats/getStream.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAA+C;AAC/C,uDAAsE;AACtE,wCAA4C;AAC5C,2DAA2D;AAE3D,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,yBAAe,EAAE,CAAC,CAAA;AAEtD,MAAM,SAAS,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC7D,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QACjC,MAAM,IAAA,6BAAe,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,IAAA,yCAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;QACD,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;IACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;QACpD,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAA;IAEzD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAA;IAClD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAC1C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IACzC,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAE5E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEhB,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QAED,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QAED,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC/B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAE7B,MAAM,eAAe,GAAG,GAAG,EAAE;YAC3B,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAC3C,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC3C,CAAC,CAAA;QAED,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QACnC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACrC,CAAC;IAAC,WAAM,CAAC;QACP,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,GAAG,CAAC,GAAG,EAAE,CAAA;YACX,CAAC;YAAC,WAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AA3DY,QAAA,SAAS,aA2DrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,UAAU,4CAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/index.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,UAAU,4CAAW,CAAA"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.chatRoutes = void 0;
4
4
  const express_1 = require("express");
5
+ const middleware_1 = require("../../middleware");
5
6
  const abort_1 = require("./abort");
6
7
  const actions_1 = require("./actions");
7
8
  const artifacts_1 = require("./artifacts");
@@ -14,18 +15,23 @@ const list_1 = require("./list");
14
15
  const stream_1 = require("./stream");
15
16
  const title_1 = require("./title");
16
17
  const updateToolCall_1 = require("./updateToolCall");
18
+ const invite_participants_1 = require("./invite-participants");
19
+ const remove_participants_1 = require("./remove-participants");
20
+ const { ChatValidationMiddleware } = middleware_1.ValidationMiddleware;
17
21
  exports.chatRoutes = (0, express_1.Router)();
18
- exports.chatRoutes.get('/chats', list_1.listChats);
19
- exports.chatRoutes.get('/chats/:chatId/stream', getStream_1.getStream);
20
- exports.chatRoutes.get('/chats/:chatId/messages', messages_1.getMessages);
21
- exports.chatRoutes.get('/chats/:chatId', get_1.getChat);
22
- exports.chatRoutes.delete('/chats/:chatId', delete_1.deleteChat);
23
- exports.chatRoutes.post('/chats/stream', stream_1.streamMessage);
24
- exports.chatRoutes.post('/chats/multi-user/messages', multiUserMessages_1.postMultiUserMessage);
25
- exports.chatRoutes.post('/chats/:chatId/messages', multiUserMessages_1.postMultiUserMessage);
26
- exports.chatRoutes.post('/chats/title', title_1.generateTitle);
27
- exports.chatRoutes.get('/chats/:chatId/artifacts', artifacts_1.getArtifacts);
28
- exports.chatRoutes.post('/chats/:chatId/abort', abort_1.abortMessage);
29
- exports.chatRoutes.post('/chats/:chatId/actions', actions_1.postChatAction);
30
- exports.chatRoutes.patch('/chats/:chatId/messages/:messageId/tool-calls/:toolCallId', updateToolCall_1.patchToolCall);
22
+ exports.chatRoutes.get('/chats', ChatValidationMiddleware.validateListChats, list_1.listChats);
23
+ exports.chatRoutes.get('/chats/:chatId/stream', ChatValidationMiddleware.validateGetStream, getStream_1.getStream);
24
+ exports.chatRoutes.get('/chats/:chatId/messages', ChatValidationMiddleware.validateGetMessages, messages_1.getMessages);
25
+ exports.chatRoutes.get('/chats/:chatId', ChatValidationMiddleware.validateChatRouteParams, get_1.getChat);
26
+ exports.chatRoutes.delete('/chats/:chatId', ChatValidationMiddleware.validateChatRouteParams, delete_1.deleteChat);
27
+ exports.chatRoutes.post('/chats/stream', ChatValidationMiddleware.validateSendMessage, stream_1.streamMessage);
28
+ exports.chatRoutes.post('/chats/multi-user/messages', ChatValidationMiddleware.validateMultiUserMessage, multiUserMessages_1.postMultiUserMessage);
29
+ exports.chatRoutes.post('/chats/:chatId/messages', ChatValidationMiddleware.validateMultiUserMessage, multiUserMessages_1.postMultiUserMessage);
30
+ exports.chatRoutes.post('/chats/title', ChatValidationMiddleware.validateGenerateTitle, title_1.generateTitle);
31
+ exports.chatRoutes.get('/chats/:chatId/artifacts', ChatValidationMiddleware.validateChatRouteParams, artifacts_1.getArtifacts);
32
+ exports.chatRoutes.post('/chats/:chatId/abort', ChatValidationMiddleware.validateGetStream, abort_1.abortMessage);
33
+ exports.chatRoutes.post('/chats/:chatId/actions', ChatValidationMiddleware.validatePostChatAction, actions_1.postChatAction);
34
+ exports.chatRoutes.patch('/chats/:chatId/messages/:messageId/tool-calls/:toolCallId', ChatValidationMiddleware.validatePatchToolCall, updateToolCall_1.patchToolCall);
35
+ exports.chatRoutes.post('/chats/:chatId/participants', ChatValidationMiddleware.validateInviteParticipants, invite_participants_1.inviteParticipants);
36
+ exports.chatRoutes.delete('/chats/:chatId/participants', ChatValidationMiddleware.validateRemoveParticipants, remove_participants_1.removeParticipants);
31
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/chats/index.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAChC,mCAAsC;AACtC,uCAA0C;AAC1C,2CAA0C;AAC1C,qCAAqC;AACrC,+BAA+B;AAC/B,2CAAuC;AACvC,yCAAwC;AACxC,2DAA0D;AAC1D,iCAAkC;AAClC,qCAAwC;AACxC,mCAAuC;AACvC,qDAAgD;AAEnC,QAAA,UAAU,GAAG,IAAA,gBAAM,GAAE,CAAA;AAElC,kBAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAS,CAAC,CAAA;AACnC,kBAAU,CAAC,GAAG,CAAC,uBAAuB,EAAE,qBAAS,CAAC,CAAA;AAClD,kBAAU,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAW,CAAC,CAAA;AACtD,kBAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAO,CAAC,CAAA;AACzC,kBAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,mBAAU,CAAC,CAAA;AAC/C,kBAAU,CAAC,IAAI,CAAC,eAAe,EAAE,sBAAa,CAAC,CAAA;AAC/C,kBAAU,CAAC,IAAI,CAAC,4BAA4B,EAAE,wCAAoB,CAAC,CAAA;AACnE,kBAAU,CAAC,IAAI,CAAC,yBAAyB,EAAE,wCAAoB,CAAC,CAAA;AAChE,kBAAU,CAAC,IAAI,CAAC,cAAc,EAAE,qBAAa,CAAC,CAAA;AAC9C,kBAAU,CAAC,GAAG,CAAC,0BAA0B,EAAE,wBAAY,CAAC,CAAA;AACxD,kBAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,oBAAY,CAAC,CAAA;AACrD,kBAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,wBAAc,CAAC,CAAA;AACzD,kBAAU,CAAC,KAAK,CAAC,2DAA2D,EAAE,8BAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/chats/index.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAChC,iDAAuD;AACvD,mCAAsC;AACtC,uCAA0C;AAC1C,2CAA0C;AAC1C,qCAAqC;AACrC,+BAA+B;AAC/B,2CAAuC;AACvC,yCAAwC;AACxC,2DAA0D;AAC1D,iCAAkC;AAClC,qCAAwC;AACxC,mCAAuC;AACvC,qDAAgD;AAChD,+DAA0D;AAC1D,+DAA0D;AAE1D,MAAM,EAAE,wBAAwB,EAAE,GAAG,iCAAoB,CAAA;AAE5C,QAAA,UAAU,GAAG,IAAA,gBAAM,GAAE,CAAA;AAElC,kBAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC,iBAAiB,EAAE,gBAAS,CAAC,CAAA;AAC/E,kBAAU,CAAC,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,iBAAiB,EAAE,qBAAS,CAAC,CAAA;AAC9F,kBAAU,CAAC,GAAG,CACZ,yBAAyB,EACzB,wBAAwB,CAAC,mBAAmB,EAC5C,sBAAW,CACZ,CAAA;AACD,kBAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,uBAAuB,EAAE,aAAO,CAAC,CAAA;AAC3F,kBAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,uBAAuB,EAAE,mBAAU,CAAC,CAAA;AACjG,kBAAU,CAAC,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC,mBAAmB,EAAE,sBAAa,CAAC,CAAA;AAC7F,kBAAU,CAAC,IAAI,CAAC,4BAA4B,EAAE,wBAAwB,CAAC,wBAAwB,EAAE,wCAAoB,CAAC,CAAA;AACtH,kBAAU,CAAC,IAAI,CACb,yBAAyB,EACzB,wBAAwB,CAAC,wBAAwB,EACjD,wCAAoB,CACrB,CAAA;AACD,kBAAU,CAAC,IAAI,CAAC,cAAc,EAAE,wBAAwB,CAAC,qBAAqB,EAAE,qBAAa,CAAC,CAAA;AAC9F,kBAAU,CAAC,GAAG,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,uBAAuB,EAAE,wBAAY,CAAC,CAAA;AAC1G,kBAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,iBAAiB,EAAE,oBAAY,CAAC,CAAA;AACjG,kBAAU,CAAC,IAAI,CACb,wBAAwB,EACxB,wBAAwB,CAAC,sBAAsB,EAC/C,wBAAc,CACf,CAAA;AACD,kBAAU,CAAC,KAAK,CACd,2DAA2D,EAC3D,wBAAwB,CAAC,qBAAqB,EAC9C,8BAAa,CACd,CAAA;AACD,kBAAU,CAAC,IAAI,CACb,6BAA6B,EAC7B,wBAAwB,CAAC,0BAA0B,EACnD,wCAAkB,CACnB,CAAA;AACD,kBAAU,CAAC,MAAM,CACf,6BAA6B,EAC7B,wBAAwB,CAAC,0BAA0B,EACnD,wCAAkB,CACnB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Request, Response } from 'express';
2
+ export declare const inviteParticipants: (req: Request, res: Response) => Promise<void>;
3
+ //# sourceMappingURL=invite-participants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite-participants.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/invite-participants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAmBhD,eAAO,MAAM,kBAAkB,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAgDnE,CAAA"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inviteParticipants = void 0;
4
+ const zod_1 = require("zod");
5
+ const context_1 = require("../../context");
6
+ const chat_access_1 = require("../../lib/chat-access");
7
+ const schemas_1 = require("../schemas");
8
+ const chat_route_errors_1 = require("./chat-route-errors");
9
+ const validatedSchema = zod_1.z.object({
10
+ params: schemas_1.chatRouteParamsSchema,
11
+ body: schemas_1.inviteParticipantsSchema,
12
+ });
13
+ const inviteParticipants = async (req, res) => {
14
+ var _a;
15
+ try {
16
+ const { params, body } = validatedSchema.parse(req.validated);
17
+ const userId = (0, chat_access_1.requireUserId)(req);
18
+ const chat = await (0, chat_access_1.loadChatForUser)(params.chatId, userId);
19
+ if (!(0, chat_access_1.isChatOwner)(chat, userId)) {
20
+ throw new Error(chat_access_1.OWNER_INVITE_REQUIRED_MESSAGE);
21
+ }
22
+ if (!req.hasAccountAccess) {
23
+ res.status(501).json({ message: chat_access_1.ACCOUNT_ACCESS_MIDDLEWARE_REQUIRED });
24
+ return;
25
+ }
26
+ const existing = new Set((0, chat_access_1.getChatParticipantIds)(chat));
27
+ const toAdd = [];
28
+ for (const targetUserId of body.userIds) {
29
+ if (existing.has(targetUserId)) {
30
+ continue;
31
+ }
32
+ const allowed = await req.hasAccountAccess(targetUserId);
33
+ if (!allowed) {
34
+ throw new Error(`User ${targetUserId} does not belong to this account`);
35
+ }
36
+ toAdd.push(targetUserId);
37
+ }
38
+ if (toAdd.length === 0) {
39
+ res.json(chat);
40
+ return;
41
+ }
42
+ const participantIds = Array.from(new Set([...((_a = chat.participantIds) !== null && _a !== void 0 ? _a : []), ...toAdd]));
43
+ const { chatRepository } = (0, context_1.getBuilderApiRepositories)();
44
+ const updated = await chatRepository.update(params.chatId, { participantIds });
45
+ if (!updated) {
46
+ res.status(404).json({ message: 'Chat not found' });
47
+ return;
48
+ }
49
+ res.json(updated);
50
+ }
51
+ catch (error) {
52
+ (0, chat_route_errors_1.respondChatRouteError)(res, error);
53
+ }
54
+ };
55
+ exports.inviteParticipants = inviteParticipants;
56
+ //# sourceMappingURL=invite-participants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite-participants.js","sourceRoot":"","sources":["../../../src/routes/chats/invite-participants.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAAyD;AACzD,uDAO8B;AAC9B,wCAA4E;AAC5E,2DAA2D;AAE3D,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,+BAAqB;IAC7B,IAAI,EAAE,kCAAwB;CAC/B,CAAC,CAAA;AAEK,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;;IACtE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;QAEjC,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,IAAA,yBAAW,EAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2CAA6B,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gDAAkC,EAAE,CAAC,CAAA;YACrE,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAA,mCAAqB,EAAC,IAAI,CAAC,CAAC,CAAA;QACrD,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,SAAQ;YACV,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;YACxD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,QAAQ,YAAY,kCAAkC,CAAC,CAAA;YACzE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,OAAM;QACR,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,cAAc,mCAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CACpD,CAAA;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,mCAAyB,GAAE,CAAA;QACtD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAA;QAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAA;YACnD,OAAM;QACR,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yCAAqB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;AACH,CAAC,CAAA;AAhDY,QAAA,kBAAkB,sBAgD9B"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
2
- export declare const listChats: RequestHandler;
1
+ import type { Request, Response } from 'express';
2
+ export declare const listChats: (req: Request, res: Response) => Promise<void>;
3
3
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,SAAS,EAAE,cAmCvB,CAAA"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/routes/chats/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAUhD,eAAO,MAAM,SAAS,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBAuB1D,CAAA"}