@purpleschool/gptbot-tools 0.1.134 → 0.2.0-stage

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 (274) hide show
  1. package/account-merge/commands/index.ts +1 -0
  2. package/account-merge/commands/transfer-user-jobs.command.ts +13 -0
  3. package/account-merge/index.ts +2 -0
  4. package/account-merge/routes/account-merge.amqp.routes.ts +3 -0
  5. package/account-merge/routes/index.ts +1 -0
  6. package/analytics/index.ts +1 -0
  7. package/analytics/job-model-analytics/commands/get-job-model-analytics.command.ts +12 -0
  8. package/analytics/job-model-analytics/commands/index.ts +1 -0
  9. package/analytics/job-model-analytics/index.ts +2 -0
  10. package/analytics/job-model-analytics/routes/index.ts +1 -0
  11. package/analytics/job-model-analytics/routes/job-model-analytics.http.routes.ts +5 -0
  12. package/build/account-merge/commands/index.js +17 -0
  13. package/build/account-merge/commands/transfer-user-jobs.command.js +13 -0
  14. package/build/account-merge/index.js +18 -0
  15. package/build/account-merge/routes/account-merge.amqp.routes.js +6 -0
  16. package/build/account-merge/routes/index.js +17 -0
  17. package/build/analytics/index.js +17 -0
  18. package/build/analytics/job-model-analytics/commands/get-job-model-analytics.command.js +11 -0
  19. package/build/analytics/job-model-analytics/commands/index.js +17 -0
  20. package/build/analytics/job-model-analytics/index.js +18 -0
  21. package/build/analytics/job-model-analytics/routes/index.js +17 -0
  22. package/build/analytics/job-model-analytics/routes/job-model-analytics.http.routes.js +7 -0
  23. package/build/common/enums/file-type.enum.js +8 -0
  24. package/build/common/enums/index.js +1 -0
  25. package/build/common/enums/reasoning-effort.enum.js +6 -1
  26. package/build/image-editor/commands/image-editor.command.js +1 -0
  27. package/build/image-editor/models/image-editor-job.schema.js +2 -0
  28. package/build/image-editor/models/image-editor-model.schema.js +6 -0
  29. package/build/image-generation/models/image-generation-job.schema.js +1 -0
  30. package/build/image-generation/models/image-generation-model.schema.js +1 -0
  31. package/build/image-generation/queries/find-image-generation-jobs.query.js +2 -0
  32. package/build/index.js +15 -0
  33. package/build/marketplace-card/commands/execute-marketplace-card.command.js +7 -0
  34. package/build/marketplace-card/commands/index.js +2 -0
  35. package/build/marketplace-card/commands/soft-delete-all-marketplace-card-jobs.command.js +13 -0
  36. package/build/marketplace-card/commands/update-title-marketplace-card-job.command.js +16 -0
  37. package/build/marketplace-card/models/index.js +1 -0
  38. package/build/marketplace-card/models/marketplace-card-config.schema.js +2 -0
  39. package/build/marketplace-card/routes/marketplace-card.amqp.routes.js +2 -0
  40. package/build/presentation/commands/create-presentation.command.js +3 -0
  41. package/build/presentation/commands/generate-slides.command.js +1 -0
  42. package/build/presentation/commands/get-presentation-slides-generation-price.command.js +1 -0
  43. package/build/presentation/commands/index.js +1 -0
  44. package/build/presentation/commands/reposition-slide.command.js +16 -0
  45. package/build/presentation/enums/index.js +1 -0
  46. package/build/presentation/enums/presentation-target-audience.enum.js +10 -0
  47. package/build/presentation/models/index.js +1 -0
  48. package/build/presentation/models/presentation-template.schema.js +2 -0
  49. package/build/presentation/models/presentation-title-page.schema.js +9 -0
  50. package/build/presentation/models/presentation.schema.js +4 -0
  51. package/build/presentation/models/slide-content-edit.schema.js +24 -12
  52. package/build/presentation/models/slide-content.schema.js +215 -73
  53. package/build/presentation/routes/presentation.routes.js +4 -1
  54. package/build/solving-edu-task/commands/delete-all-solving-edu-task-jobs.command.js +13 -0
  55. package/build/solving-edu-task/commands/delete-solving-edu-task-job-by-uuid.command.js +14 -0
  56. package/build/solving-edu-task/commands/get-solving-edu-task-price.command.js +15 -0
  57. package/build/solving-edu-task/commands/index.js +23 -0
  58. package/build/solving-edu-task/commands/retry-solving-edu-task-job.command.js +25 -0
  59. package/build/solving-edu-task/commands/set-reaction-to-solving-edu-task-job.command.js +27 -0
  60. package/build/solving-edu-task/commands/solving-edu-task.command.js +22 -0
  61. package/build/solving-edu-task/commands/update-solving-edu-task-job-title.command.js +16 -0
  62. package/build/solving-edu-task/index.js +20 -0
  63. package/build/solving-edu-task/models/index.js +19 -0
  64. package/build/solving-edu-task/models/solving-edu-task-config.schema.js +8 -0
  65. package/build/solving-edu-task/models/solving-edu-task-job.schema.js +32 -0
  66. package/build/solving-edu-task/models/solving-edu-task-model.schema.js +27 -0
  67. package/build/solving-edu-task/queries/find-solving-edu-task-job-by-id.query.js +15 -0
  68. package/build/solving-edu-task/queries/find-solving-edu-task-jobs.query.js +28 -0
  69. package/build/solving-edu-task/queries/get-solving-edu-task-config.query.js +11 -0
  70. package/build/solving-edu-task/queries/index.js +19 -0
  71. package/build/solving-edu-task/routes/index.js +17 -0
  72. package/build/solving-edu-task/routes/solving-edu-task.amqp.routes.js +15 -0
  73. package/build/spell-corrector/commands/delete-all-spell-corrector-jobs.command.js +13 -0
  74. package/build/spell-corrector/commands/delete-spell-corrector-job-by-uuid.command.js +14 -0
  75. package/build/spell-corrector/commands/get-spell-corrector-price.command.js +15 -0
  76. package/build/spell-corrector/commands/index.js +23 -0
  77. package/build/spell-corrector/commands/retry-spell-corrector-job.command.js +17 -0
  78. package/build/spell-corrector/commands/set-reaction-to-spell-corrector-job.command.js +27 -0
  79. package/build/spell-corrector/commands/spell-corrector.command.js +18 -0
  80. package/build/spell-corrector/commands/update-spell-corrector-job-title.command.js +16 -0
  81. package/build/spell-corrector/index.js +20 -0
  82. package/build/spell-corrector/models/index.js +19 -0
  83. package/build/spell-corrector/models/spell-corrector-job.schema.js +25 -0
  84. package/build/spell-corrector/models/spell-corrector-model.schema.js +18 -0
  85. package/build/spell-corrector/models/spell-corrector-tool-config.schema.js +9 -0
  86. package/build/spell-corrector/queries/find-spell-corrector-job-by-uuid.query.js +10 -0
  87. package/build/spell-corrector/queries/find-spell-corrector-jobs.query.js +28 -0
  88. package/build/spell-corrector/queries/get-spell-corrector-tool-config.query.js +9 -0
  89. package/build/spell-corrector/queries/index.js +19 -0
  90. package/build/spell-corrector/routes/index.js +17 -0
  91. package/build/spell-corrector/routes/spell-corrector.amqp.routes.js +15 -0
  92. package/build/stt/models/stt-response.schema.js +2 -0
  93. package/build/tool-workspace/commands/index.js +18 -0
  94. package/build/tool-workspace/commands/soft-delete-tool-workspace.command.js +21 -0
  95. package/build/tool-workspace/commands/update-tool-workspace.command.js +26 -0
  96. package/build/tool-workspace/enums/index.js +18 -0
  97. package/build/tool-workspace/enums/tool-workspace-item-slot.enum.js +9 -0
  98. package/build/tool-workspace/enums/tool-workspace-status.enum.js +8 -0
  99. package/build/tool-workspace/index.js +21 -0
  100. package/build/tool-workspace/models/index.js +20 -0
  101. package/build/tool-workspace/models/tool-workspace-contents.schema.js +10 -0
  102. package/build/tool-workspace/models/tool-workspace-item.schema.js +17 -0
  103. package/build/tool-workspace/models/tool-workspace-job.schema.js +17 -0
  104. package/build/tool-workspace/models/tool-workspace.schema.js +17 -0
  105. package/build/tool-workspace/queries/find-tool-workspace-by-uuid.query.js +22 -0
  106. package/build/tool-workspace/queries/find-tool-workspaces.query.js +30 -0
  107. package/build/tool-workspace/queries/index.js +18 -0
  108. package/build/tool-workspace/routes/index.js +17 -0
  109. package/build/tool-workspace/routes/tool-workspace.amqp.routes.js +9 -0
  110. package/build/tools/enums/tool-content-type.enum.js +3 -1
  111. package/build/tools/enums/tool-type.enum.js +2 -0
  112. package/build/tools/models/global-tools-config.schema.js +4 -0
  113. package/build/tools/models/tools-with-configs.schema.js +10 -0
  114. package/build/video/commands/video.command.js +7 -0
  115. package/build/video/const/videoMaxDuration.js +1 -1
  116. package/build/video/enums/video-resolution.enum.js +1 -0
  117. package/build/video/enums/video-strategy.enum.js +1 -0
  118. package/build/video/models/video-config.schema.js +2 -0
  119. package/build/video/models/video-model.schema.js +1 -0
  120. package/build/video-editor/commands/edit-video.command.js +1 -0
  121. package/build/video-editor/commands/get-video-editor-price.command.js +2 -0
  122. package/build/video-editor/commands/retry-video-editor-job.command.js +1 -0
  123. package/build/video-editor/enums/index.js +1 -0
  124. package/build/video-editor/enums/video-editor-pricing-rule-type.enum.js +8 -0
  125. package/build/video-editor/models/video-editor-job.schema.js +7 -1
  126. package/build/video-editor/models/video-editor-model.schema.js +28 -1
  127. package/build/video-editor/utils/calculate-video-editing-price.js +24 -2
  128. package/build/writer/commands/collect-sources.command.js +15 -0
  129. package/build/writer/commands/confirm-source-citation-metadata.command.js +18 -0
  130. package/build/writer/commands/discard-writer-source.command.js +16 -0
  131. package/build/writer/commands/generate-document-outline.command.js +17 -0
  132. package/build/writer/commands/index.js +5 -0
  133. package/build/writer/commands/update-writer-document-outline.command.js +1 -0
  134. package/build/writer/commands/upload-writer-source.command.js +18 -0
  135. package/build/writer/enums/index.js +3 -0
  136. package/build/writer/enums/writer-document-stage.enum.js +6 -0
  137. package/build/writer/enums/writer-source-origin.enum.js +8 -0
  138. package/build/writer/enums/writer-source-status.enum.js +9 -0
  139. package/build/writer/enums/writer-source-type.enum.js +8 -0
  140. package/build/writer/models/index.js +2 -0
  141. package/build/writer/models/writer-document-type.schema.js +1 -1
  142. package/build/writer/models/writer-document.schema.js +3 -0
  143. package/build/writer/models/writer-source-bibliographic-metadata.schema.js +27 -0
  144. package/build/writer/models/writer-source.schema.js +22 -0
  145. package/build/writer/queries/get-writer-document-sources.query.js +15 -0
  146. package/build/writer/queries/index.js +1 -0
  147. package/build/writer/routes/writer.routes.js +6 -0
  148. package/common/enums/file-type.enum.ts +4 -0
  149. package/common/enums/index.ts +1 -0
  150. package/common/enums/reasoning-effort.enum.ts +5 -0
  151. package/image-editor/commands/image-editor.command.ts +1 -0
  152. package/image-editor/models/image-editor-job.schema.ts +2 -0
  153. package/image-editor/models/image-editor-model.schema.ts +9 -0
  154. package/image-generation/models/image-generation-job.schema.ts +2 -1
  155. package/image-generation/models/image-generation-model.schema.ts +1 -0
  156. package/image-generation/queries/find-image-generation-jobs.query.ts +2 -0
  157. package/index.ts +15 -0
  158. package/marketplace-card/commands/execute-marketplace-card.command.ts +7 -0
  159. package/marketplace-card/commands/index.ts +2 -0
  160. package/marketplace-card/commands/soft-delete-all-marketplace-card-jobs.command.ts +13 -0
  161. package/marketplace-card/commands/update-title-marketplace-card-job.command.ts +16 -0
  162. package/marketplace-card/models/index.ts +1 -0
  163. package/marketplace-card/models/marketplace-card-config.schema.ts +2 -0
  164. package/marketplace-card/models/marketplace-card-job.schema.ts +1 -1
  165. package/marketplace-card/routes/marketplace-card.amqp.routes.ts +2 -0
  166. package/package.json +1 -1
  167. package/presentation/commands/create-presentation.command.ts +3 -0
  168. package/presentation/commands/generate-slides.command.ts +2 -1
  169. package/presentation/commands/get-presentation-slides-generation-price.command.ts +1 -0
  170. package/presentation/commands/index.ts +1 -0
  171. package/presentation/commands/reposition-slide.command.ts +16 -0
  172. package/presentation/enums/index.ts +1 -0
  173. package/presentation/enums/presentation-target-audience.enum.ts +6 -0
  174. package/presentation/models/index.ts +1 -0
  175. package/presentation/models/presentation-template.schema.ts +2 -0
  176. package/presentation/models/presentation-title-page.schema.ts +9 -0
  177. package/presentation/models/presentation.schema.ts +5 -1
  178. package/presentation/models/slide-content-edit.schema.ts +36 -24
  179. package/presentation/models/slide-content.schema.ts +294 -90
  180. package/presentation/routes/presentation.routes.ts +4 -0
  181. package/solving-edu-task/commands/delete-all-solving-edu-task-jobs.command.ts +13 -0
  182. package/solving-edu-task/commands/delete-solving-edu-task-job-by-uuid.command.ts +14 -0
  183. package/solving-edu-task/commands/get-solving-edu-task-price.command.ts +17 -0
  184. package/solving-edu-task/commands/index.ts +7 -0
  185. package/solving-edu-task/commands/retry-solving-edu-task-job.command.ts +25 -0
  186. package/solving-edu-task/commands/set-reaction-to-solving-edu-task-job.command.ts +31 -0
  187. package/solving-edu-task/commands/solving-edu-task.command.ts +22 -0
  188. package/solving-edu-task/commands/update-solving-edu-task-job-title.command.ts +16 -0
  189. package/solving-edu-task/index.ts +4 -0
  190. package/solving-edu-task/models/index.ts +3 -0
  191. package/solving-edu-task/models/solving-edu-task-config.schema.ts +8 -0
  192. package/solving-edu-task/models/solving-edu-task-job.schema.ts +35 -0
  193. package/solving-edu-task/models/solving-edu-task-model.schema.ts +30 -0
  194. package/solving-edu-task/queries/find-solving-edu-task-job-by-id.query.ts +16 -0
  195. package/solving-edu-task/queries/find-solving-edu-task-jobs.query.ts +33 -0
  196. package/solving-edu-task/queries/get-solving-edu-task-config.query.ts +11 -0
  197. package/solving-edu-task/queries/index.ts +3 -0
  198. package/solving-edu-task/routes/index.ts +1 -0
  199. package/solving-edu-task/routes/solving-edu-task.amqp.routes.ts +12 -0
  200. package/spell-corrector/commands/delete-all-spell-corrector-jobs.command.ts +13 -0
  201. package/spell-corrector/commands/delete-spell-corrector-job-by-uuid.command.ts +14 -0
  202. package/spell-corrector/commands/get-spell-corrector-price.command.ts +16 -0
  203. package/spell-corrector/commands/index.ts +7 -0
  204. package/spell-corrector/commands/retry-spell-corrector-job.command.ts +17 -0
  205. package/spell-corrector/commands/set-reaction-to-spell-corrector-job.command.ts +30 -0
  206. package/spell-corrector/commands/spell-corrector.command.ts +18 -0
  207. package/spell-corrector/commands/update-spell-corrector-job-title.command.ts +16 -0
  208. package/spell-corrector/index.ts +4 -0
  209. package/spell-corrector/models/index.ts +3 -0
  210. package/spell-corrector/models/spell-corrector-job.schema.ts +25 -0
  211. package/spell-corrector/models/spell-corrector-model.schema.ts +18 -0
  212. package/spell-corrector/models/spell-corrector-tool-config.schema.ts +9 -0
  213. package/spell-corrector/queries/find-spell-corrector-job-by-uuid.query.ts +11 -0
  214. package/spell-corrector/queries/find-spell-corrector-jobs.query.ts +33 -0
  215. package/spell-corrector/queries/get-spell-corrector-tool-config.query.ts +8 -0
  216. package/spell-corrector/queries/index.ts +3 -0
  217. package/spell-corrector/routes/index.ts +1 -0
  218. package/spell-corrector/routes/spell-corrector.amqp.routes.ts +12 -0
  219. package/stt/models/stt-response.schema.ts +2 -0
  220. package/tool-workspace/commands/index.ts +2 -0
  221. package/tool-workspace/commands/soft-delete-tool-workspace.command.ts +25 -0
  222. package/tool-workspace/commands/update-tool-workspace.command.ts +30 -0
  223. package/tool-workspace/enums/index.ts +2 -0
  224. package/tool-workspace/enums/tool-workspace-item-slot.enum.ts +5 -0
  225. package/tool-workspace/enums/tool-workspace-status.enum.ts +4 -0
  226. package/tool-workspace/index.ts +5 -0
  227. package/tool-workspace/models/index.ts +4 -0
  228. package/tool-workspace/models/tool-workspace-contents.schema.ts +10 -0
  229. package/tool-workspace/models/tool-workspace-item.schema.ts +17 -0
  230. package/tool-workspace/models/tool-workspace-job.schema.ts +17 -0
  231. package/tool-workspace/models/tool-workspace.schema.ts +17 -0
  232. package/tool-workspace/queries/find-tool-workspace-by-uuid.query.ts +26 -0
  233. package/tool-workspace/queries/find-tool-workspaces.query.ts +37 -0
  234. package/tool-workspace/queries/index.ts +2 -0
  235. package/tool-workspace/routes/index.ts +1 -0
  236. package/tool-workspace/routes/tool-workspace.amqp.routes.ts +6 -0
  237. package/tools/enums/tool-content-type.enum.ts +3 -1
  238. package/tools/enums/tool-type.enum.ts +2 -0
  239. package/tools/models/global-tools-config.schema.ts +4 -0
  240. package/tools/models/tools-with-configs.schema.ts +14 -0
  241. package/video/commands/video.command.ts +7 -0
  242. package/video/const/videoMaxDuration.ts +1 -1
  243. package/video/enums/video-resolution.enum.ts +1 -0
  244. package/video/enums/video-strategy.enum.ts +1 -0
  245. package/video/models/video-config.schema.ts +2 -0
  246. package/video/models/video-model.schema.ts +1 -0
  247. package/video-editor/commands/edit-video.command.ts +2 -1
  248. package/video-editor/commands/get-video-editor-price.command.ts +2 -0
  249. package/video-editor/commands/retry-video-editor-job.command.ts +5 -1
  250. package/video-editor/enums/index.ts +1 -0
  251. package/video-editor/enums/video-editor-pricing-rule-type.enum.ts +4 -0
  252. package/video-editor/models/video-editor-job.schema.ts +9 -0
  253. package/video-editor/models/video-editor-model.schema.ts +45 -1
  254. package/video-editor/utils/calculate-video-editing-price.ts +45 -2
  255. package/writer/commands/collect-sources.command.ts +15 -0
  256. package/writer/commands/confirm-source-citation-metadata.command.ts +18 -0
  257. package/writer/commands/discard-writer-source.command.ts +18 -0
  258. package/writer/commands/generate-document-outline.command.ts +17 -0
  259. package/writer/commands/index.ts +5 -0
  260. package/writer/commands/update-writer-document-outline.command.ts +1 -0
  261. package/writer/commands/upload-writer-source.command.ts +18 -0
  262. package/writer/enums/index.ts +3 -0
  263. package/writer/enums/writer-document-stage.enum.ts +8 -0
  264. package/writer/enums/writer-source-origin.enum.ts +4 -0
  265. package/writer/enums/writer-source-status.enum.ts +5 -0
  266. package/writer/enums/writer-source-type.enum.ts +4 -0
  267. package/writer/models/index.ts +2 -0
  268. package/writer/models/writer-document-type.schema.ts +1 -1
  269. package/writer/models/writer-document.schema.ts +3 -0
  270. package/writer/models/writer-source-bibliographic-metadata.schema.ts +31 -0
  271. package/writer/models/writer-source.schema.ts +22 -0
  272. package/writer/queries/get-writer-document-sources.query.ts +15 -0
  273. package/writer/queries/index.ts +1 -0
  274. package/writer/routes/writer.routes.ts +6 -0
@@ -10,35 +10,47 @@ const slide_content_schema_1 = require("./slide-content.schema");
10
10
  exports.CoverSlideDataUserEditSchema = zod_1.default.object({
11
11
  contentType: zod_1.default.literal(enums_1.SLIDE_CONTENT_TYPE.COVER),
12
12
  title: zod_1.default.string().min(1).max(500),
13
- author: zod_1.default.object({
13
+ author: zod_1.default
14
+ .object({
14
15
  label: zod_1.default.string().min(1).max(100),
15
16
  value: zod_1.default.string().min(1).max(200),
16
- }),
17
- date: zod_1.default.object({
17
+ })
18
+ .optional(),
19
+ date: zod_1.default
20
+ .object({
18
21
  label: zod_1.default.string().min(1).max(100),
19
22
  value: zod_1.default.string().min(1).max(200),
20
- }),
21
- email: zod_1.default.object({
23
+ })
24
+ .optional(),
25
+ email: zod_1.default
26
+ .object({
22
27
  label: zod_1.default.string().min(1).max(100),
23
28
  value: zod_1.default.string().min(1).max(200),
24
- }),
29
+ })
30
+ .optional(),
25
31
  version: zod_1.default.literal(1),
26
32
  });
27
33
  exports.ThankYouSlideDataUserEditSchema = zod_1.default.object({
28
34
  contentType: zod_1.default.literal(enums_1.SLIDE_CONTENT_TYPE.THANK_YOU),
29
35
  title: zod_1.default.string().min(1).max(500),
30
- author: zod_1.default.object({
36
+ author: zod_1.default
37
+ .object({
31
38
  label: zod_1.default.string().min(1).max(100),
32
39
  value: zod_1.default.string().min(1).max(200),
33
- }),
34
- date: zod_1.default.object({
40
+ })
41
+ .optional(),
42
+ date: zod_1.default
43
+ .object({
35
44
  label: zod_1.default.string().min(1).max(100),
36
45
  value: zod_1.default.string().min(1).max(200),
37
- }),
38
- email: zod_1.default.object({
46
+ })
47
+ .optional(),
48
+ email: zod_1.default
49
+ .object({
39
50
  label: zod_1.default.string().min(1).max(100),
40
51
  value: zod_1.default.string().min(1).max(200),
41
- }),
52
+ })
53
+ .optional(),
42
54
  version: zod_1.default.literal(1),
43
55
  });
44
56
  exports.TextSlideDataUserEditSchema = zod_1.default.object({
@@ -12,7 +12,17 @@ exports.ImageSlotSchema = zod_1.z.object({
12
12
  .string()
13
13
  .uuid()
14
14
  .describe('Generate a valid uuid for image slot, that will be used for future lookups'),
15
- prompt: zod_1.z.string().describe('Image prompt for slide'),
15
+ prompt: zod_1.z
16
+ .string()
17
+ .describe('Image generation prompt. MUST be written in ENGLISH regardless of the presentation language. ' +
18
+ 'AI image generators excel at: atmospheric scenes, landscapes, cityscapes, architecture, nature, abstract light and texture, anonymous silhouettes, artistic photography. ' +
19
+ 'AI fundamentally cannot render accurately: legible text on any surface, complex diagrams or flowcharts, data charts/graphs, specific product logos, clocks, precise mechanical parts. ' +
20
+ 'Choose scene types from the first category. Avoid anything in the second. ' +
21
+ 'Structure: [subject/scene] → [mood/atmosphere] → [lighting] → [visual style]. ' +
22
+ 'Evoke the emotional register of the slide — do not illustrate the topic literally. ' +
23
+ 'MODERATION: if the slide topic involves conflict, suffering, politics, or crime, redirect to abstract/atmospheric imagery (fog, ruins, empty landscapes) rather than depicting the subject directly — flagged prompts produce empty placeholders. ' +
24
+ 'GOOD: "A lone figure on an observation deck at dusk gazing over an illuminated city. Cinematic wide-angle, golden-hour light, photorealistic." ' +
25
+ 'BAD: "A bar chart showing quarterly growth. A robot at a laptop with code on the screen."'),
16
26
  });
17
27
  exports.IconSlotSchema = zod_1.z.object({
18
28
  uuid: zod_1.z
@@ -24,22 +34,26 @@ exports.IconSlotSchema = zod_1.z.object({
24
34
  exports.CoverSlideDataSchema = zod_1.z.object({
25
35
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.COVER),
26
36
  title: zod_1.z.string().describe('Slide title in about 6 words').min(10).max(150),
27
- author: zod_1.z.object({
37
+ author: zod_1.z
38
+ .object({
28
39
  label: zod_1.z.string().describe('Literal "Author" in presentation\'s language'),
29
- value: zod_1.z
30
- .string()
31
- .describe('Literal "Author of the presentation" in presentation\'s language'),
32
- }),
33
- date: zod_1.z.object({
40
+ value: zod_1.z.string().describe('Author value from titlePage if provided'),
41
+ })
42
+ .optional(),
43
+ date: zod_1.z
44
+ .object({
34
45
  label: zod_1.z.string().describe('Literal "Date" in presentation\'s language'),
35
46
  value: zod_1.z
36
47
  .string()
37
- .describe('Date of the presentation in the "dd month yyyy" format in presentation\'s locale'),
38
- }),
39
- email: zod_1.z.object({
40
- label: zod_1.z.string().describe('Just default word "Email"'),
41
- value: zod_1.z.string().describe('Just default "email@example.com"'),
42
- }),
48
+ .describe('Date from titlePage in the "dd month yyyy" format in presentation\'s locale'),
49
+ })
50
+ .optional(),
51
+ email: zod_1.z
52
+ .object({
53
+ label: zod_1.z.string().describe('Localized contact/email label'),
54
+ value: zod_1.z.string().describe('Email value from titlePage if provided'),
55
+ })
56
+ .optional(),
43
57
  version: zod_1.z.literal(1),
44
58
  });
45
59
  exports.ThankYouSlideDataSchema = zod_1.z.object({
@@ -49,46 +63,73 @@ exports.ThankYouSlideDataSchema = zod_1.z.object({
49
63
  .describe('"Thank you for your attention" in presentation\'s language')
50
64
  .min(10)
51
65
  .max(150),
52
- author: zod_1.z.object({
53
- label: zod_1.z.string().describe('"Author" in presentation\'s language'),
54
- value: zod_1.z.string().describe('"Author of the presentation" in presentation\'s language'),
55
- }),
56
- date: zod_1.z.object({
57
- label: zod_1.z.string().describe('"Date" in presentation\'s language'),
66
+ author: zod_1.z
67
+ .object({
68
+ label: zod_1.z.string().describe('Literal "Author" in presentation\'s language'),
69
+ value: zod_1.z.string().describe('Author value from titlePage if provided'),
70
+ })
71
+ .optional(),
72
+ date: zod_1.z
73
+ .object({
74
+ label: zod_1.z.string().describe('Literal "Date" in presentation\'s language'),
58
75
  value: zod_1.z
59
76
  .string()
60
- .describe('Date of the presentation in the "dd month yyyy" format in presentation\'s locale'),
61
- }),
62
- email: zod_1.z.object({
63
- label: zod_1.z.string().describe('Just default word "Email"'),
64
- value: zod_1.z.string().describe('Just default "email@example.com"'),
65
- }),
77
+ .describe('Date from titlePage in the "dd month yyyy" format in presentation\'s locale'),
78
+ })
79
+ .optional(),
80
+ email: zod_1.z
81
+ .object({
82
+ label: zod_1.z.string().describe('Localized contact/email label'),
83
+ value: zod_1.z.string().describe('Email value from titlePage if provided'),
84
+ })
85
+ .optional(),
66
86
  version: zod_1.z.literal(1),
67
87
  });
68
88
  exports.StructuredListSlideDataSchema = zod_1.z.object({
69
89
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.STRUCTURED_LIST),
70
- title: zod_1.z.string().describe('Slide title, 2–6 words').max(150),
71
- description: zod_1.z.string().describe('One short framing sentence'),
90
+ title: zod_1.z
91
+ .string()
92
+ .describe('Slide headline — 2–4 words naming the group. A noun phrase, NOT a full sentence. Displayed in very large font on the left panel.')
93
+ .min(5)
94
+ .max(40),
95
+ description: zod_1.z
96
+ .string()
97
+ .describe('One framing sentence answering "What are these 4 things about?". Displayed in small text below the title on the left panel.')
98
+ .min(30)
99
+ .max(80),
72
100
  list: zod_1.z
73
101
  .array(zod_1.z.object({
74
- title: zod_1.z.string().describe('2–4 words, concrete'),
102
+ title: zod_1.z
103
+ .string()
104
+ .describe('2–4 concrete words. A noun phrase or short verb phrase. All 4 titles MUST be grammatically parallel. Displayed in bold next to a large number (01–04).')
105
+ .min(3)
106
+ .max(30),
75
107
  description: zod_1.z
76
108
  .string()
77
- .describe("One clear short framing sentence. DON'T CUT THE TEXT SHORT MID WORD/SENTENCE!. Generate less content if that happened")
109
+ .describe('ONE complete sentence that expands on the title with a specific fact or benefit. NEVER just restate the title. NEVER cut short mid-word or mid-sentence. All 4 descriptions must be roughly equal in length.')
78
110
  .min(50)
79
- .max(120),
111
+ .max(100),
80
112
  }))
81
113
  .length(4),
82
114
  version: zod_1.z.literal(1),
83
115
  });
84
116
  exports.TextSlideDataSchema = zod_1.z.object({
85
117
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.TEXT),
86
- title: zod_1.z.string().describe('Slide title in about 6 words').min(10).max(150),
118
+ title: zod_1.z
119
+ .string()
120
+ .describe('Slide headline rendered in very large bold font. Keep to 3–7 words (max 70 characters). It should name the topic or thesis — not summarise all content.')
121
+ .min(10)
122
+ .max(70),
87
123
  description: zod_1.z
88
124
  .string()
89
- .describe("Fairly long textual description of the point presented in the title. A couple of paragraphs. Consider maximum amount of text to be 600 characters. Don't cut the text short.")
125
+ .describe('Expository prose split into 2–3 paragraphs separated by \\n\\n (double newline). Total length 300–800 characters. ' +
126
+ 'Use **bold** to highlight 1–3 key terms per paragraph (NOT entire sentences). ' +
127
+ 'Use *italics* for definitions, counter-points, or light emphasis (1 per paragraph max). ' +
128
+ 'NO bullet points, NO markdown headers, NO numbered lists. ' +
129
+ 'Each paragraph covers ONE focused idea: e.g. context → main argument → implication. ' +
130
+ 'Do NOT start consecutive paragraphs with the same word. Do NOT cut text short mid-sentence.')
90
131
  .min(300)
91
- .max(600),
132
+ .max(800),
92
133
  version: zod_1.z.literal(1),
93
134
  });
94
135
  exports.ContentsSlideDataSchema = zod_1.z.object({
@@ -110,43 +151,92 @@ exports.ContentsSlideDataSchema = zod_1.z.object({
110
151
  exports.ImageSlideDataSchema = zod_1.z
111
152
  .object({
112
153
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.TEXT_WITH_IMAGE),
113
- title: zod_1.z.string().describe('Slide title in about 6 words').min(10).max(200),
114
- description: zod_1.z
154
+ title: zod_1.z
115
155
  .string()
116
- .describe("Text that elaborates on the title and doesn't just describe the image")
156
+ .describe('Slide headline rendered in very large bold font on the LEFT column. Keep to 3–7 words (max 70 characters). Aim for under 50 characters to avoid overflow. A noun phrase or short declarative phrase — NOT a full sentence.')
117
157
  .min(10)
158
+ .max(70),
159
+ description: zod_1.z
160
+ .string()
161
+ .describe('Expository prose in 2 paragraphs separated by \\n\\n (double newline). Total length 150–500 characters. ' +
162
+ 'Use **bold** for 1–2 key terms per paragraph (NOT entire sentences). ' +
163
+ 'Use *italics* for definitions or emphasis at most once per paragraph. ' +
164
+ 'NO bullet points, NO headers, NO numbered lists. ' +
165
+ 'Each paragraph covers ONE focused idea. NEVER reference or describe the image in the text. ' +
166
+ 'The image provides visual atmosphere — the text must stand alone as complete, readable prose.')
167
+ .min(150)
118
168
  .max(500),
119
169
  imageSlot: exports.ImageSlotSchema,
120
170
  version: zod_1.z.literal(1),
121
171
  })
122
- .describe('Slide that contains a title, description of the title');
172
+ .describe('Slide with a large title and prose description on the left, and a full-bleed supporting image on the right.');
123
173
  exports.SectionBreakSlideDataSchema = zod_1.z.object({
124
174
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.SECTION_BREAK),
125
- title: zod_1.z.string().describe('Slide title in about 6 words').min(10).max(200),
126
- description: zod_1.z.string().describe('Description of the slide in about 6 words').min(10).max(200),
175
+ title: zod_1.z
176
+ .string()
177
+ .describe('The section name — a clean noun phrase of 3–6 words that names the thematic block which follows. ' +
178
+ 'NEVER prefix with "Раздел:", "Section:", "Part:", "Глава:", or any structural label. ' +
179
+ 'NEVER include numbers. Just the name itself. ' +
180
+ 'GOOD: "Технологические достижения". BAD: "Раздел 2: Технологические достижения".')
181
+ .min(5)
182
+ .max(60),
183
+ description: zod_1.z
184
+ .string()
185
+ .describe('One sentence (up to 100 characters) that briefly hints at the content of the upcoming section. ' +
186
+ 'Should complement the title without repeating it. No markdown, no labels.')
187
+ .min(10)
188
+ .max(120),
127
189
  version: zod_1.z.literal(1),
128
190
  });
129
191
  exports.TableSlideDataSchema = zod_1.z.object({
130
192
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.TABLE),
131
193
  title: zod_1.z
132
194
  .string()
133
- .describe('Slide title and table title at the same time in a couple of words')
195
+ .describe('Table name 2–4 words rendered as large bold heading above the table. ' +
196
+ 'Doubles as both the slide title and the table heading. Keep concise.')
197
+ .min(5)
198
+ .max(55),
199
+ description: zod_1.z
200
+ .string()
201
+ .describe('One short sentence (max 80 characters) describing what the table shows. ' +
202
+ 'Rendered in small gray text below the title. No markdown.')
134
203
  .min(10)
135
- .max(200),
136
- description: zod_1.z.string().describe('Description of the table represents').min(10).max(200),
204
+ .max(100),
137
205
  table: zod_1.z.object({
138
206
  columnHeaders: zod_1.z
139
- .array(zod_1.z.string().min(1).max(50))
207
+ .array(zod_1.z
208
+ .string()
140
209
  .min(1)
141
- .max(10)
142
- .describe('Array of column header labels'),
210
+ .max(20)
211
+ .describe('Column label. Keep SHORT — 1–3 words. Include units here (e.g., "Сумма, ₽"), not in cells. ' +
212
+ 'When hasRowHeaders is true, the first header should be a single space " " or a short category label.'))
213
+ .min(2)
214
+ .max(5)
215
+ .describe('Column header labels. MAXIMUM 5 columns total. Recommended 3–4 data columns. ' +
216
+ 'More columns will overflow the slide — NEVER exceed 5.'),
143
217
  rows: zod_1.z
144
- .array(zod_1.z.array(zod_1.z.string().min(1).max(75)))
145
- .min(3)
218
+ .array(zod_1.z
219
+ .array(zod_1.z
220
+ .string()
221
+ .min(1)
222
+ .max(40)
223
+ .describe('Cell content. NUMERIC tables: numbers only (e.g., "1 200", "85%"). ' +
224
+ 'TEXTUAL tables: 1–3 words maximum — keywords or short phrases ONLY, NEVER full sentences. ' +
225
+ 'Row header cells (first cell when hasRowHeaders=true): category label, max 22 characters.'))
226
+ .describe('One row. Cell count MUST equal columnHeaders length exactly.'))
227
+ .min(2)
146
228
  .max(4)
147
- .describe('Table rows; each row must have exactly the same number of cells as columnHeaders'),
148
- hasRowHeaders: zod_1.z.boolean().describe('If table needs special row headers, set this to true'),
149
- hasSummaryRow: zod_1.z.boolean().describe('If table needs a summary row, set this to true'),
229
+ .describe('Table rows. Max 4 rows total. ' +
230
+ 'When hasSummaryRow is true, the LAST row is the summary row — so at most 3 regular rows + 1 summary = 4 total. ' +
231
+ 'NEVER exceed 4 rows.'),
232
+ hasRowHeaders: zod_1.z
233
+ .boolean()
234
+ .describe('True when the first cell of each row is a descriptive label or category (pivot table). ' +
235
+ 'False for plain data tables where all cells are equivalent data.'),
236
+ hasSummaryRow: zod_1.z
237
+ .boolean()
238
+ .describe('True when the last row contains totals, averages, or aggregated values. ' +
239
+ 'That summary row must be the last element of the rows array.'),
150
240
  }),
151
241
  version: zod_1.z.literal(1),
152
242
  });
@@ -154,61 +244,113 @@ exports.TableSlideDataSchema = zod_1.z.object({
154
244
  exports.BarChartSlideDataSchema = zod_1.z.object({
155
245
  type: zod_1.z.literal(SLIDE_CHART_TYPE.BAR),
156
246
  categories: zod_1.z
157
- .array(zod_1.z.string())
158
- .min(1)
159
- .max(12)
160
- .describe('Category labels (e.g., months, products, regions)'),
247
+ .array(zod_1.z.string().min(1).max(20))
248
+ .min(3)
249
+ .max(10)
250
+ .describe('Category labels (e.g., months, product names, departments). ' +
251
+ 'Recommended: 4–8 items. Keep each label SHORT — 1–3 words, max 15 characters. ' +
252
+ 'Categories work best when naturally ordered: time periods, rankings, or comparable groups.'),
161
253
  series: zod_1.z
162
254
  .array(zod_1.z.object({
163
255
  name: zod_1.z
164
256
  .string()
165
- .describe('Series name for legend. Try to include measurements if needed'),
166
- data: zod_1.z.array(zod_1.z.number()).describe('Values corresponding to categories'),
257
+ .max(40)
258
+ .describe('Series name shown in the chart legend. Do NOT include units here — units belong in the unit field. ' +
259
+ 'GOOD: "Рост продаж". BAD: "Рост продаж (%)" or "Выручка (₽)".'),
260
+ data: zod_1.z
261
+ .array(zod_1.z.number())
262
+ .min(3)
263
+ .describe('Numeric values corresponding to categories. ' +
264
+ 'MUST have EXACTLY the same number of values as categories — mismatch will break the chart. ' +
265
+ 'Use round numbers or simple approximations. NEVER hallucinate precise figures. ' +
266
+ 'Values should show meaningful variation — avoid all bars being the same height.'),
167
267
  type: zod_1.z
168
268
  .number()
169
269
  .min(0)
170
270
  .max(11)
171
- .describe('Series type. Used to discriminate colors when applying theme'),
271
+ .describe('Color index from the theme palette. ALWAYS use 0 (primary blue). Never change this value.'),
172
272
  }))
173
273
  .min(1)
174
274
  .max(1)
175
- .describe('Data series for the chart. Only one series is supported'),
176
- yAxisLabel: zod_1.z.string().max(40).optional().describe('Y-axis label'),
177
- unit: zod_1.z.string().max(10).optional().describe('Unit symbol (%, $, etc.)'),
275
+ .describe('Data series. Only ONE series is supported. Never add more than one.'),
276
+ yAxisLabel: zod_1.z
277
+ .string()
278
+ .max(30)
279
+ .optional()
280
+ .describe('Y-axis label. Include ONLY when the axis needs a descriptor that is not already covered by the unit field. ' +
281
+ 'GOOD use: "Количество студентов" (when there is no unit symbol). ' +
282
+ 'OMIT when unit is set (e.g., "%", "₽") — the unit already contextualises the values.'),
283
+ unit: zod_1.z
284
+ .string()
285
+ .max(10)
286
+ .optional()
287
+ .describe('Unit symbol displayed with each bar value (e.g., "%", "₽", "шт.", "млн"). ' +
288
+ 'ALWAYS include when values represent percentages, currency, or any measurable quantity with a unit. ' +
289
+ 'Omit only for dimensionless counts that are self-explanatory (e.g., raw ranking scores without a fixed scale).'),
178
290
  version: zod_1.z.literal(1),
179
291
  });
180
292
  exports.ChartSlideDataSchema = zod_1.z.object({
181
293
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.CHART),
182
- title: zod_1.z.string().describe('Slide title in about 2-6 words').max(100),
183
- description: zod_1.z.string().describe("Information on slide's topic").max(600),
294
+ title: zod_1.z
295
+ .string()
296
+ .describe('Chart name — 2–4 words rendered as large bold heading on the LEFT panel of the slide. ' +
297
+ 'Keep short: the left panel is narrow and the title font is very large.')
298
+ .min(5)
299
+ .max(50),
300
+ description: zod_1.z
301
+ .string()
302
+ .describe('1–2 sentences (max 120 characters) explaining what the chart shows. ' +
303
+ 'Rendered in small gray text below the title on the LEFT panel. No markdown.')
304
+ .min(10)
305
+ .max(150),
184
306
  chart: zod_1.z.discriminatedUnion('type', [exports.BarChartSlideDataSchema]),
185
307
  version: zod_1.z.literal(1),
186
308
  });
187
309
  exports.TimelineSlideDataSchema = zod_1.z.object({
188
310
  contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.TIMELINE),
189
- title: zod_1.z.string().describe('Slide title in about 6 words').min(10).max(150),
190
- description: zod_1.z.string().describe('Brief context for the timeline').min(10).max(200),
311
+ title: zod_1.z
312
+ .string()
313
+ .describe('Timeline name — 2–5 words, rendered as large bold heading above the timeline. ' +
314
+ 'Names the subject or scope of the chronological sequence.')
315
+ .min(5)
316
+ .max(65),
317
+ description: zod_1.z
318
+ .string()
319
+ .describe('One sentence (max 100 characters) providing context for the timeline. ' +
320
+ 'Rendered in small gray text below the title. No markdown.')
321
+ .min(10)
322
+ .max(120),
191
323
  timeline: zod_1.z.object({
192
324
  events: zod_1.z
193
325
  .array(zod_1.z.object({
194
326
  date: zod_1.z
195
327
  .string()
196
- .describe('Date or time period label. MUST be general/approximate if exact date unknown (e.g., "Early 2020s", "Mid-1990s", "Recent years")')
328
+ .describe('Temporal label displayed inside the arrow/chevron shape at the top of each column. ' +
329
+ 'MUST be SHORT — max 20 characters — to fit inside the arrow. ' +
330
+ 'Use a year ("2015"), a range ("2010–2015"), a quarter ("Q1 2023"), ' +
331
+ 'an approximate period ("Early 2020s", "Середина 2010-х"), ' +
332
+ 'or a phase label ("Этап 1", "Запуск") for process timelines. ' +
333
+ 'NEVER fabricate specific dates you are not certain about.')
197
334
  .min(2)
198
- .max(50),
335
+ .max(25),
199
336
  title: zod_1.z
200
337
  .string()
201
- .describe('Event title. Prefer 2 words, max 3 words. Keep it short and punchy.')
202
- .min(5)
203
- .max(60),
338
+ .describe('Event name in bold below the arrow. 2–3 words maximum. ' +
339
+ 'Short and punchy — the column is narrow, long titles wrap to many lines. ' +
340
+ 'GOOD: "Первый запуск", "Выход на рынок". BAD: "Успешный выход компании на международный рынок".')
341
+ .min(3)
342
+ .max(35),
204
343
  description: zod_1.z
205
344
  .string()
206
- .describe('Brief description of the event or milestone')
345
+ .describe('Brief description below the event title. 1–2 sentences, max 100 characters. ' +
346
+ 'The column is narrow — text wraps to ~5 lines at this limit. ' +
347
+ 'Do NOT exceed 100 characters or the description will overflow off the slide.')
207
348
  .min(20)
208
- .max(150),
349
+ .max(110),
209
350
  }))
210
- .length(4)
211
- .describe('Timeline must contain exactly 4 chronological events'),
351
+ .length(5)
352
+ .describe('Exactly 5 chronological events in sequential order (oldest → newest). ' +
353
+ 'The template renders exactly 5 equal columns — NEVER generate fewer or more.'),
212
354
  }),
213
355
  version: zod_1.z.literal(1),
214
356
  });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PRESENTATION_SLIDE_OUTLINE_AMQP_ROUTES = exports.PRESENTATION_AMQP_ROUTES = void 0;
3
+ exports.PRESENTATION_SLIDE_AMQP_ROUTES = exports.PRESENTATION_SLIDE_OUTLINE_AMQP_ROUTES = exports.PRESENTATION_AMQP_ROUTES = void 0;
4
4
  exports.PRESENTATION_AMQP_ROUTES = {
5
5
  CONFIG: 'tools.presentation.config.rpc',
6
6
  CREATE: 'tools.presentation.create.rpc',
@@ -29,3 +29,6 @@ exports.PRESENTATION_SLIDE_OUTLINE_AMQP_ROUTES = {
29
29
  UPDATE: 'tools.presentation.slide-outline.update-slide-outline.rpc',
30
30
  DELETE: 'tools.presentation.slide-outline.delete-slide-outline.rpc',
31
31
  };
32
+ exports.PRESENTATION_SLIDE_AMQP_ROUTES = {
33
+ REPOSITION: 'tools.presentation.slide.reposition-slide.rpc',
34
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteAllSolvingEduTaskJobsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ var DeleteAllSolvingEduTaskJobsCommand;
7
+ (function (DeleteAllSolvingEduTaskJobsCommand) {
8
+ DeleteAllSolvingEduTaskJobsCommand.RequestSchema = zod_1.z.object({
9
+ userId: zod_1.z.string().uuid().nullable().optional(),
10
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
11
+ });
12
+ DeleteAllSolvingEduTaskJobsCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(zod_1.z.boolean());
13
+ })(DeleteAllSolvingEduTaskJobsCommand || (exports.DeleteAllSolvingEduTaskJobsCommand = DeleteAllSolvingEduTaskJobsCommand = {}));
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteSolvingEduTaskJobByUuidCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ var DeleteSolvingEduTaskJobByUuidCommand;
7
+ (function (DeleteSolvingEduTaskJobByUuidCommand) {
8
+ DeleteSolvingEduTaskJobByUuidCommand.RequestSchema = zod_1.z.object({
9
+ userId: zod_1.z.string().uuid().nullable().optional(),
10
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
11
+ uuid: zod_1.z.string().uuid(),
12
+ });
13
+ DeleteSolvingEduTaskJobByUuidCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(zod_1.z.boolean());
14
+ })(DeleteSolvingEduTaskJobByUuidCommand || (exports.DeleteSolvingEduTaskJobByUuidCommand = DeleteSolvingEduTaskJobByUuidCommand = {}));
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetSolvingEduTaskPriceCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ var GetSolvingEduTaskPriceCommand;
7
+ (function (GetSolvingEduTaskPriceCommand) {
8
+ GetSolvingEduTaskPriceCommand.RequestSchema = zod_1.z.object({
9
+ modelId: zod_1.z.string().uuid(),
10
+ });
11
+ GetSolvingEduTaskPriceCommand.ResponseDataSchema = zod_1.z.object({
12
+ price: zod_1.z.number(),
13
+ });
14
+ GetSolvingEduTaskPriceCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(GetSolvingEduTaskPriceCommand.ResponseDataSchema);
15
+ })(GetSolvingEduTaskPriceCommand || (exports.GetSolvingEduTaskPriceCommand = GetSolvingEduTaskPriceCommand = {}));
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./delete-all-solving-edu-task-jobs.command"), exports);
18
+ __exportStar(require("./delete-solving-edu-task-job-by-uuid.command"), exports);
19
+ __exportStar(require("./get-solving-edu-task-price.command"), exports);
20
+ __exportStar(require("./retry-solving-edu-task-job.command"), exports);
21
+ __exportStar(require("./set-reaction-to-solving-edu-task-job.command"), exports);
22
+ __exportStar(require("./solving-edu-task.command"), exports);
23
+ __exportStar(require("./update-solving-edu-task-job-title.command"), exports);
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RetrySolvingEduTaskJobCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ const models_1 = require("../models");
7
+ const common_1 = require("../../common");
8
+ var RetrySolvingEduTaskJobCommand;
9
+ (function (RetrySolvingEduTaskJobCommand) {
10
+ RetrySolvingEduTaskJobCommand.RequestSchema = zod_1.z.object({
11
+ uuid: zod_1.z.string().uuid(),
12
+ tokenReservationId: zod_1.z.string().uuid().optional(),
13
+ precalculatedPrice: zod_1.z.number().optional(),
14
+ userId: zod_1.z.string().uuid().nullable().optional(),
15
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
16
+ prompt: zod_1.z.string().optional(),
17
+ modelId: zod_1.z.string().uuid().optional(),
18
+ params: zod_1.z
19
+ .object({
20
+ attachedFiles: zod_1.z.array(common_1.AttachedFileSchema),
21
+ })
22
+ .optional(),
23
+ });
24
+ RetrySolvingEduTaskJobCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(models_1.SolvingEduTaskJobSchema);
25
+ })(RetrySolvingEduTaskJobCommand || (exports.RetrySolvingEduTaskJobCommand = RetrySolvingEduTaskJobCommand = {}));
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetReactionToSolvingEduTaskJobCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
7
+ const models_1 = require("../models");
8
+ var SetReactionToSolvingEduTaskJobCommand;
9
+ (function (SetReactionToSolvingEduTaskJobCommand) {
10
+ SetReactionToSolvingEduTaskJobCommand.RequestSchema = zod_1.z
11
+ .object({
12
+ userId: zod_1.z.string().uuid().nullable().optional(),
13
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
14
+ uuid: zod_1.z.string().uuid(),
15
+ reaction: zod_1.z.nativeEnum(common_1.USER_REACTION).nullable(),
16
+ dislikeReason: zod_1.z.string().nullable().default(null),
17
+ })
18
+ .refine((data) => {
19
+ if (data.reaction !== common_1.USER_REACTION.DISLIKED && data.dislikeReason) {
20
+ return false;
21
+ }
22
+ return true;
23
+ }, {
24
+ message: 'Dislike reason is not allowed when reaction is not disliked',
25
+ });
26
+ SetReactionToSolvingEduTaskJobCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(models_1.SolvingEduTaskJobSchema);
27
+ })(SetReactionToSolvingEduTaskJobCommand || (exports.SetReactionToSolvingEduTaskJobCommand = SetReactionToSolvingEduTaskJobCommand = {}));
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SolvingEduTaskCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ const models_1 = require("../models");
7
+ const common_1 = require("../../common");
8
+ var SolvingEduTaskCommand;
9
+ (function (SolvingEduTaskCommand) {
10
+ SolvingEduTaskCommand.RequestSchema = zod_1.z.object({
11
+ userId: zod_1.z.string().uuid().nullable().optional(),
12
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
13
+ prompt: zod_1.z.string(),
14
+ modelId: zod_1.z.string().uuid(),
15
+ params: zod_1.z.object({
16
+ attachedFiles: zod_1.z.array(common_1.AttachedFileSchema),
17
+ }),
18
+ tokenReservationId: zod_1.z.string().uuid().optional(),
19
+ precalculatedPrice: zod_1.z.number().optional(),
20
+ });
21
+ SolvingEduTaskCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(models_1.SolvingEduTaskJobSchema);
22
+ })(SolvingEduTaskCommand || (exports.SolvingEduTaskCommand = SolvingEduTaskCommand = {}));