@purpleschool/gptbot 0.8.87-stage-2 → 0.8.87

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 (71) hide show
  1. package/api/controllers/http/community.ts +0 -1
  2. package/api/controllers/http/user.ts +1 -0
  3. package/api/routes.ts +2 -2
  4. package/build/api/controllers/http/community.js +0 -1
  5. package/build/api/controllers/http/user.js +1 -0
  6. package/build/api/routes.js +1 -1
  7. package/build/commands/cabinet/get-user-statistics-by-month.command.js +4 -0
  8. package/build/commands/cabinet/get-user-statistics-overview.command.js +1 -0
  9. package/build/commands/chat/get-chats-config.command.js +0 -1
  10. package/build/commands/community/create-community-post.command.js +1 -1
  11. package/build/commands/message/create-text-message.command.js +1 -1
  12. package/build/commands/tools/writer/update-writer-document-outline.command.js +1 -0
  13. package/build/commands/user/cancel-user-product.command.js +21 -0
  14. package/build/commands/user/index.js +1 -0
  15. package/build/constants/errors/errors.js +19 -99
  16. package/build/constants/file/enums/index.js +0 -1
  17. package/build/constants/index.js +0 -1
  18. package/build/constants/tool/enums/tool-type.enum.js +0 -3
  19. package/build/models/community/community-post-media-data.schema.js +8 -7
  20. package/build/models/index.js +0 -1
  21. package/build/models/tools/image-editor/image-editor-model.schema.js +0 -1
  22. package/build/models/tools/image-generation/image-generation-model.schema.js +1 -1
  23. package/build/models/tools/music/music-job.schema.js +0 -2
  24. package/build/models/tools/music/music-model.schema.js +1 -2
  25. package/build/models/tools/music/music-track.schema.js +2 -0
  26. package/build/models/tools/stt/stt-model.schema.js +0 -1
  27. package/build/models/tools/tts/tts-model.schema.js +0 -1
  28. package/build/models/tools/video/video-job.schema.js +6 -0
  29. package/build/models/tools/video/video-model.schema.js +15 -3
  30. package/build/models/tools/video-editor/video-editor-model.schema.js +1 -2
  31. package/build/models/tools/writer/index.js +1 -0
  32. package/build/models/tools/writer/writer-document-title-page.schema.js +15 -0
  33. package/build/models/tools/writer/writer-document.schema.js +2 -0
  34. package/commands/cabinet/get-user-statistics-by-month.command.ts +7 -0
  35. package/commands/cabinet/get-user-statistics-overview.command.ts +2 -1
  36. package/commands/chat/get-chats-config.command.ts +0 -1
  37. package/commands/community/create-community-post.command.ts +1 -1
  38. package/commands/message/create-text-message.command.ts +2 -2
  39. package/commands/tools/writer/update-writer-document-outline.command.ts +6 -1
  40. package/commands/user/cancel-user-product.command.ts +21 -0
  41. package/commands/user/index.ts +1 -0
  42. package/constants/errors/errors.ts +19 -99
  43. package/constants/file/enums/index.ts +0 -1
  44. package/constants/index.ts +0 -1
  45. package/constants/tool/enums/tool-type.enum.ts +0 -3
  46. package/models/community/community-post-media-data.schema.ts +8 -7
  47. package/models/index.ts +0 -1
  48. package/models/tools/image-editor/image-editor-model.schema.ts +0 -1
  49. package/models/tools/image-generation/image-generation-model.schema.ts +1 -1
  50. package/models/tools/music/music-job.schema.ts +0 -2
  51. package/models/tools/music/music-model.schema.ts +1 -2
  52. package/models/tools/music/music-track.schema.ts +2 -0
  53. package/models/tools/stt/stt-model.schema.ts +0 -1
  54. package/models/tools/tts/tts-model.schema.ts +0 -1
  55. package/models/tools/video/video-job.schema.ts +6 -0
  56. package/models/tools/video/video-model.schema.ts +15 -3
  57. package/models/tools/video-editor/video-editor-model.schema.ts +1 -2
  58. package/models/tools/writer/index.ts +1 -0
  59. package/models/tools/writer/writer-document-title-page.schema.ts +15 -0
  60. package/models/tools/writer/writer-document.schema.ts +2 -0
  61. package/package.json +1 -1
  62. package/build/constants/file/enums/file-usage-mode.enum.js +0 -8
  63. package/build/constants/token-reservation/enums/index.js +0 -17
  64. package/build/constants/token-reservation/enums/token-reservation-status.enum.js +0 -10
  65. package/build/constants/token-reservation/index.js +0 -17
  66. package/build/models/file-attachment.schema.js +0 -18
  67. package/constants/file/enums/file-usage-mode.enum.ts +0 -4
  68. package/constants/token-reservation/enums/index.ts +0 -1
  69. package/constants/token-reservation/enums/token-reservation-status.enum.ts +0 -6
  70. package/constants/token-reservation/index.ts +0 -1
  71. package/models/file-attachment.schema.ts +0 -24
@@ -1,9 +1,14 @@
1
1
  import { z } from 'zod';
2
- import { WriterDocumentOutlineSchema, WriterDocumentOutlineSectionSchema } from '../../../models';
2
+ import {
3
+ WriterDocumentOutlineSchema,
4
+ WriterDocumentOutlineSectionSchema,
5
+ WriterDocumentTitlePageSchema,
6
+ } from '../../../models';
3
7
 
4
8
  export namespace UpdateWriterDocumentOutlineCommand {
5
9
  export const RequestBodySchema = z.object({
6
10
  data: WriterDocumentOutlineSchema,
11
+ titlePage: WriterDocumentTitlePageSchema.optional().nullable(),
7
12
  });
8
13
  export type RequestBody = z.infer<typeof RequestBodySchema>;
9
14
 
@@ -0,0 +1,21 @@
1
+ import z from 'zod';
2
+
3
+ export namespace CancelUserProductCommand {
4
+ export const RequestParamSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+
8
+ export type RequestParam = z.infer<typeof RequestParamSchema>;
9
+
10
+ export const RequestSchema = z.object({
11
+ userToProductId: z.string().uuid(),
12
+ });
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: z.object({
16
+ isCancelled: z.boolean(),
17
+ }),
18
+ });
19
+
20
+ export type Response = z.infer<typeof ResponseSchema>;
21
+ }
@@ -11,3 +11,4 @@ export * from './delete-account.command';
11
11
  export * from './get-aggregated-user-data.command';
12
12
  export * from './get-user-payments.command';
13
13
  export * from './cancel-user-subscription.command';
14
+ export * from './cancel-user-product.command';
@@ -2645,129 +2645,49 @@ export const ERRORS = {
2645
2645
  message: 'Произошла ошибка при получении пользователя',
2646
2646
  httpCode: 500,
2647
2647
  },
2648
- FILE_CONTENT_EXCEEDS_CONTEXT_LIMIT: {
2649
- code: 'A538',
2650
- message: 'Размер файла превышает лимит контекста модели',
2651
- httpCode: 400,
2652
- },
2653
2648
  IMAGE_GENERATION_MODEL_FIND_ERROR: {
2654
- code: 'A539',
2649
+ code: 'A538',
2655
2650
  message: 'Произошла ошибка при получении модели для генерации изображений',
2656
2651
  httpCode: 500,
2657
2652
  },
2658
- COMMUNITY_POST_TRACK_INDEX_REQUIRED: {
2659
- code: 'A540',
2660
- message: 'Индекс трека обязателен для музыкального поста',
2661
- httpCode: 400,
2662
- },
2663
- COMMUNITY_POST_TRACK_INDEX_OUT_OF_RANGE: {
2664
- code: 'A541',
2665
- message: 'Индекс трека выходит за пределы допустимого диапазона',
2653
+ COMMUNITY_POST_TRACK_ID_REQUIRED: {
2654
+ code: 'A539',
2655
+ message: 'ID трека обязателен для музыкального поста',
2666
2656
  httpCode: 400,
2667
2657
  },
2668
- TOKEN_RESERVATION_CREATE_ERROR: {
2669
- code: 'A542',
2670
- message: 'Произошла ошибка при создании записи об удержании токенов',
2671
- httpCode: 500,
2672
- },
2673
- TOKEN_RESERVATION_NOT_FOUND: {
2674
- code: 'A543',
2675
- message: 'Запись об удержании токенов не найдена',
2658
+ COMMUNITY_POST_TRACK_NOT_FOUND: {
2659
+ code: 'A540',
2660
+ message: 'Трек не найден',
2676
2661
  httpCode: 404,
2677
2662
  },
2678
- TOKEN_RESERVATION_COMMIT_ERROR: {
2679
- code: 'A544',
2680
- message: 'Произошла ошибка при подтверждении записи об удержании токенов',
2681
- httpCode: 500,
2682
- },
2683
- TOKEN_RESERVATION_RELEASE_ERROR: {
2684
- code: 'A545',
2685
- message: 'Произошла ошибка при освобождении записи об удержании токенов',
2686
- httpCode: 500,
2687
- },
2688
- TOKEN_RESERVATION_INSUFFICIENT_BALANCE: {
2689
- code: 'A546',
2690
- message: 'Недостаточно токенов для выполнения операции',
2691
- httpCode: 400,
2692
- },
2693
- TOKEN_RESERVATION_INVALID_STATUS: {
2694
- code: 'A547',
2695
- message: 'Запись об удержании токенов находится в недопустимом статусе',
2696
- httpCode: 400,
2697
- },
2698
- MUSIC_PRICE_ERROR: {
2699
- code: 'A548',
2700
- message: 'Произошла ошибка при получении цены для генерации музыки',
2701
- httpCode: 500,
2702
- },
2703
- IMAGE_GENERATION_PRICE_ERROR: {
2704
- code: 'A549',
2705
- message: 'Произошла ошибка при получении цены для генерации изображения',
2706
- httpCode: 500,
2707
- },
2708
- IMAGE_EDITOR_PRICE_ERROR: {
2709
- code: 'A550',
2710
- message: 'Произошла ошибка при получении цены для редактирования изображения',
2711
- httpCode: 500,
2712
- },
2713
- STT_PRICE_ERROR: {
2714
- code: 'A551',
2715
- message: 'Произошла ошибка при получении цены для транскрибации аудио',
2716
- httpCode: 500,
2717
- },
2718
- TTS_PRICE_ERROR: {
2719
- code: 'A552',
2720
- message: 'Произошла ошибка при получении цены для синтеза речи',
2721
- httpCode: 500,
2722
- },
2723
- VIDEO_PRICE_ERROR: {
2724
- code: 'A553',
2725
- message: 'Произошла ошибка при получении цены для генерации видео',
2726
- httpCode: 500,
2727
- },
2728
- VIDEO_EDITOR_PRICE_ERROR: {
2729
- code: 'A554',
2730
- message: 'Произошла ошибка при получении цены для редактирования видео',
2731
- httpCode: 500,
2732
- },
2733
- PARAPHRASE_PRICE_ERROR: {
2734
- code: 'A555',
2735
- message: 'Произошла ошибка при получении цены для парафразирования',
2736
- httpCode: 500,
2737
- },
2738
- PRESENTATION_SLIDES_GENERATION_PRICE_ERROR: {
2739
- code: 'A556',
2740
- message: 'Произошла ошибка при получении цены для генерации слайдов презентации',
2741
- httpCode: 500,
2742
- },
2743
- WRITER_CONTENT_GENERATION_PRICE_ERROR: {
2744
- code: 'A557',
2745
- message: 'Произошла ошибка при получении цены для генерации текста',
2746
- httpCode: 500,
2747
- },
2748
2663
  COMMUNITY_POST_EXISTANCE_CHECK_ERROR: {
2749
- code: 'A558',
2664
+ code: 'A561',
2750
2665
  message: 'Произошла ошибка при проверке существования поста.',
2751
2666
  httpCode: 500,
2752
2667
  },
2753
2668
  COMMUNITY_POST_ALREADY_EXISTS_ERROR: {
2754
- code: 'A559',
2669
+ code: 'A562',
2755
2670
  message: 'Данная работа уже опубликована в сообществе.',
2756
2671
  httpCode: 400,
2757
2672
  },
2758
2673
  MARK_JOB_PUBLISHED_STATUS_ERROR: {
2759
- code: 'A560',
2674
+ code: 'A563',
2760
2675
  message: 'Произошла ошибка при отметке работы как опубликованной.',
2761
2676
  httpCode: 500,
2762
2677
  },
2763
2678
  TASK_COMMUNITY_POST_NOT_PUBLISHED: {
2764
- code: 'A561',
2679
+ code: 'A564',
2765
2680
  message: 'Для получения награды опубликуйте работу в сообществе',
2766
2681
  httpCode: 400,
2767
2682
  },
2768
- TOKEN_RESERVATION_EXPIRED: {
2769
- code: 'A562',
2770
- message: 'Запись об удержании токенов устарела',
2683
+ PRODUCT_OWNERSHIP_ERROR: {
2684
+ code: 'A565',
2685
+ message: 'Пользователь не является владельцем продукта',
2686
+ httpCode: 400,
2687
+ },
2688
+ PRODUCT_CANCEL_ERROR: {
2689
+ code: 'A566',
2690
+ message: 'Нельзя отменить пакет, которым юзер начал пользоваться',
2771
2691
  httpCode: 400,
2772
2692
  },
2773
2693
  };
@@ -1,2 +1 @@
1
1
  export * from './file-type.enum';
2
- export * from './file-usage-mode.enum';
@@ -44,4 +44,3 @@ export * from './tool-music';
44
44
  export * from './community';
45
45
  export * from './user-profile';
46
46
  export * from './model';
47
- export * from './token-reservation';
@@ -2,7 +2,4 @@ export enum TOOL_TYPE {
2
2
  PARAPHRASE = 'paraphrase',
3
3
  TTS = 'tts',
4
4
  STT = 'stt',
5
- IMAGE_GENERATION = 'image_generation',
6
- IMAGE_EDITOR = 'image_editor',
7
- MUSIC = 'music',
8
5
  }
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  import { COMMUNITY_POST_TYPE } from '../../constants';
3
- import { MusicTrackSchema } from '../tools/music/music-track.schema';
4
3
  import { VideoJobParamsSchema } from '../tools/video/video-job.schema';
5
4
  import { FileSchema } from '../file.schema';
6
5
  import { MusicJobParamsSchema } from '../tools';
@@ -23,6 +22,7 @@ export const VideoCommunityMediaSchema = z.object({
23
22
  title: z.string(),
24
23
  prompt: z.string(),
25
24
  videoUrl: z.string().nullable(),
25
+ previewUrl: z.string().nullable(),
26
26
  params: VideoJobParamsSchema,
27
27
  });
28
28
 
@@ -38,12 +38,13 @@ export const MusicCommunityMediaSchema = z.object({
38
38
  type: z.literal(COMMUNITY_POST_TYPE.MUSIC),
39
39
  params: MusicJobParamsSchema,
40
40
  prompt: z.string(),
41
- track: MusicTrackSchema.pick({
42
- audioUrl: true,
43
- coverUrl: true,
44
- duration: true,
45
- title: true,
46
- tags: true,
41
+ track: z.object({
42
+ uuid: z.string().optional(), // Опционально для backward compatibility
43
+ audioUrl: z.string(),
44
+ coverUrl: z.string(),
45
+ duration: z.number(),
46
+ title: z.string(),
47
+ tags: z.string(),
47
48
  }),
48
49
  });
49
50
 
package/models/index.ts CHANGED
@@ -12,7 +12,6 @@ export * from './course.schema';
12
12
  export * from './date.schema';
13
13
  export * from './feedback.schema';
14
14
  export * from './file.schema';
15
- export * from './file-attachment.schema';
16
15
  export * from './key-value.schema';
17
16
  export * from './form-submission.schema';
18
17
  export * from './icon-variants.schema';
@@ -39,7 +39,6 @@ export const ImageEditorModelSchema = z.object({
39
39
  pricingRules: ImageEditorModelPricingRulesSchema,
40
40
  unlockedBy: UnlockedBySchema.nullable(),
41
41
  canUse: z.boolean(),
42
- status: z.string(),
43
42
  });
44
43
 
45
44
  export type ImageEditorModel = z.infer<typeof ImageEditorModelSchema>;
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { IMAGE_GENERATION_RESOLUTION } from '../../../constants';
3
2
  import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
3
+ import { IMAGE_GENERATION_RESOLUTION } from '../../../constants';
4
4
 
5
5
  export const ImageGenerationModelParamsSchema = z.object({
6
6
  aspectRatio: z.record(
@@ -37,8 +37,6 @@ export const MusicJobSchema = ToolJobSchema.extend({
37
37
  params: MusicJobParamsSchema,
38
38
  externalId: z.string().nullable(),
39
39
  modelId: z.string(),
40
- isPublished: z.boolean(),
41
- postId: z.string().nullable(),
42
40
  });
43
41
 
44
42
  export type MusicJob = z.infer<typeof MusicJobSchema>;
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { MUSIC_VOCAL_GENDER } from '../../../constants';
3
2
  import { IconVariantsSchema } from '../../icon-variants.schema';
4
3
  import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
+ import { MUSIC_VOCAL_GENDER } from '../../../constants';
5
5
 
6
6
  export const MusicModelParamsSchema = z.object({
7
7
  vocalGender: z.object({
@@ -30,5 +30,4 @@ export const MusicModelSchema = z.object({
30
30
  params: MusicModelParamsSchema,
31
31
  unlockedBy: UnlockedBySchema.nullable(),
32
32
  canUse: z.boolean(),
33
- status: z.string(),
34
33
  });
@@ -9,6 +9,8 @@ export const MusicTrackSchema = z.object({
9
9
  prompt: z.string().nullable(),
10
10
  tags: z.string(),
11
11
  duration: z.number(),
12
+ isPublished: z.boolean(),
13
+ postId: z.string().nullable(),
12
14
 
13
15
  genJobId: z.string().nullable().optional(),
14
16
  editorJobId: z.string().nullable().optional(),
@@ -13,7 +13,6 @@ export const STTModelSchema = z.object({
13
13
  maxSizeMB: z.number(),
14
14
  unlockedBy: UnlockedBySchema.nullable(),
15
15
  canUse: z.boolean(),
16
- status: z.string(),
17
16
  });
18
17
 
19
18
  export type STTModel = z.infer<typeof STTModelSchema>;
@@ -52,5 +52,4 @@ export const TTSModelSchema = z.object({
52
52
  voices: z.array(TTSVoiceSchema),
53
53
  unlockedBy: UnlockedBySchema.nullable(),
54
54
  canUse: z.boolean(),
55
- status: z.string(),
56
55
  });
@@ -23,6 +23,12 @@ export const VideoJobSchema = ToolJobSchema.extend({
23
23
  url: z.string(),
24
24
  })
25
25
  .nullable(),
26
+ preview: z
27
+ .object({
28
+ uuid: z.string(),
29
+ url: z.string(),
30
+ })
31
+ .nullable(),
26
32
  params: VideoJobParamsSchema,
27
33
  modelId: z.string(),
28
34
  isPublished: z.boolean(),
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { VIDEO_PRICING_RULE_TYPE } from '../../../constants';
3
- import { VIDEO_GENERATION_MODEL_LIMITATION } from '../../../constants/tool-video/enums/video-generation-model-limitation.enum';
4
2
  import { IconVariantsSchema } from '../../icon-variants.schema';
5
3
  import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
+ import { VIDEO_PRICING_RULE_TYPE } from '../../../constants';
5
+ import { VIDEO_GENERATION_MODEL_LIMITATION } from '../../../constants/tool-video/enums/video-generation-model-limitation.enum';
6
6
 
7
7
  export const VideoModelParamsSchema = z.object({
8
8
  imageAttachment: z.object({
@@ -23,6 +23,16 @@ export const VideoModelParamsSchema = z.object({
23
23
  options: z.array(z.string()),
24
24
  })
25
25
  .optional(),
26
+ sound: z
27
+ .object({
28
+ options: z.array(z.boolean()),
29
+ })
30
+ .optional(),
31
+ multiShots: z
32
+ .object({
33
+ options: z.array(z.boolean()),
34
+ })
35
+ .optional(),
26
36
  });
27
37
 
28
38
  export const VideoGenerationRequestParamsSchema = z.object({
@@ -31,12 +41,15 @@ export const VideoGenerationRequestParamsSchema = z.object({
31
41
  aspectRatio: z.string().optional(),
32
42
  quality: z.string().optional(),
33
43
  resolution: z.string().optional(),
44
+ sound: z.boolean().optional(),
45
+ multiShots: z.boolean().optional(),
34
46
  });
35
47
  export type VideoGenerationRequestParams = z.infer<typeof VideoGenerationRequestParamsSchema>;
36
48
 
37
49
  export const VideoModelPricingRuleConditionSchema = z.object({
38
50
  aspectRatio: z.string().optional(),
39
51
  resolution: z.string().optional(),
52
+ sound: z.boolean().optional(),
40
53
  });
41
54
  export type VideoModelPricingRuleCondition = z.infer<typeof VideoModelPricingRuleConditionSchema>;
42
55
 
@@ -63,5 +76,4 @@ export const VideoModelSchema = z.object({
63
76
  unlockedBy: UnlockedBySchema.nullable(),
64
77
  limitations: z.array(z.nativeEnum(VIDEO_GENERATION_MODEL_LIMITATION)),
65
78
  canUse: z.boolean(),
66
- status: z.string(),
67
79
  });
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { VIDEO_EDITOR_MODEL_LIMITATION } from '../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum';
3
2
  import { IconVariantsSchema } from '../../icon-variants.schema';
4
3
  import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
+ import { VIDEO_EDITOR_MODEL_LIMITATION } from '../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum';
5
5
 
6
6
  export const VideoEditorModelParamsSchema = z.object({
7
7
  supportedFormats: z.array(z.string()),
@@ -24,5 +24,4 @@ export const VideoEditorModelSchema = z.object({
24
24
  unlockedBy: UnlockedBySchema.nullable(),
25
25
  limitations: z.array(z.nativeEnum(VIDEO_EDITOR_MODEL_LIMITATION)),
26
26
  canUse: z.boolean(),
27
- status: z.string(),
28
27
  });
@@ -3,3 +3,4 @@ export * from './writer-ai-action.schema';
3
3
  export * from './writer-document-outline.schema';
4
4
  export * from './writer-document.schema';
5
5
  export * from './writer-document-type.schema';
6
+ export * from './writer-document-title-page.schema';
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+
3
+ export const WriterDocumentTitlePageSchema = z
4
+ .object({
5
+ fullName: z.string().min(1).max(200).optional().nullable(),
6
+ city: z.string().min(1).max(200).optional().nullable(),
7
+ institution: z.string().min(1).max(300).optional().nullable(),
8
+ faculty: z.string().min(1).max(200).optional().nullable(),
9
+ specialty: z.string().min(1).max(200).optional().nullable(),
10
+ group: z.string().min(1).max(100).optional().nullable(),
11
+ subject: z.string().min(1).max(200).optional().nullable(),
12
+ })
13
+ .nullable();
14
+
15
+ export type WriterDocumentTitlePage = z.infer<typeof WriterDocumentTitlePageSchema>;
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { WriterDocumentOutlineSchema } from './writer-document-outline.schema';
3
3
  import { USER_REACTION, WRITER_DOCUMENT_STAGE } from '../../../constants';
4
+ import { WriterDocumentTitlePageSchema } from './writer-document-title-page.schema';
4
5
 
5
6
  export const WriterDocumentSchema = z.object({
6
7
  uuid: z.string().uuid(),
@@ -9,6 +10,7 @@ export const WriterDocumentSchema = z.object({
9
10
  typeId: z.string(),
10
11
  stage: z.nativeEnum(WRITER_DOCUMENT_STAGE),
11
12
  outline: WriterDocumentOutlineSchema,
13
+ titlePage: WriterDocumentTitlePageSchema,
12
14
  sourceMd: z.string().nullable(),
13
15
  finalMd: z.string().nullable(),
14
16
  userId: z.string().nullable(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.8.87-stage-2",
3
+ "version": "0.8.87",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FILE_USAGE_MODE = void 0;
4
- var FILE_USAGE_MODE;
5
- (function (FILE_USAGE_MODE) {
6
- FILE_USAGE_MODE["SEARCH"] = "search";
7
- FILE_USAGE_MODE["CONTEXT"] = "context";
8
- })(FILE_USAGE_MODE || (exports.FILE_USAGE_MODE = FILE_USAGE_MODE = {}));
@@ -1,17 +0,0 @@
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("./token-reservation-status.enum"), exports);
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOKEN_RESERVATION_STATUS = void 0;
4
- var TOKEN_RESERVATION_STATUS;
5
- (function (TOKEN_RESERVATION_STATUS) {
6
- TOKEN_RESERVATION_STATUS["PENDING"] = "pending";
7
- TOKEN_RESERVATION_STATUS["COMMITTED"] = "committed";
8
- TOKEN_RESERVATION_STATUS["RELEASED"] = "released";
9
- TOKEN_RESERVATION_STATUS["EXPIRED"] = "expired";
10
- })(TOKEN_RESERVATION_STATUS || (exports.TOKEN_RESERVATION_STATUS = TOKEN_RESERVATION_STATUS = {}));
@@ -1,17 +0,0 @@
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("./enums"), exports);
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileAttachmentSchema = exports.ImageFileAttachmentSchema = exports.TextFileAttachmentSchema = void 0;
4
- const zod_1 = require("zod");
5
- const constants_1 = require("../constants");
6
- exports.TextFileAttachmentSchema = zod_1.z.object({
7
- fileId: zod_1.z.string().uuid(),
8
- type: zod_1.z.enum([constants_1.FILE_TYPE.TEXT, constants_1.FILE_TYPE.DOCUMENT]),
9
- usageMode: zod_1.z.nativeEnum(constants_1.FILE_USAGE_MODE),
10
- });
11
- exports.ImageFileAttachmentSchema = zod_1.z.object({
12
- fileId: zod_1.z.string().uuid(),
13
- type: zod_1.z.literal(constants_1.FILE_TYPE.IMAGE),
14
- });
15
- exports.FileAttachmentSchema = zod_1.z.discriminatedUnion('type', [
16
- exports.TextFileAttachmentSchema,
17
- exports.ImageFileAttachmentSchema,
18
- ]);
@@ -1,4 +0,0 @@
1
- export enum FILE_USAGE_MODE {
2
- SEARCH = 'search',
3
- CONTEXT = 'context',
4
- }
@@ -1 +0,0 @@
1
- export * from './token-reservation-status.enum';
@@ -1,6 +0,0 @@
1
- export enum TOKEN_RESERVATION_STATUS {
2
- PENDING = 'pending',
3
- COMMITTED = 'committed',
4
- RELEASED = 'released',
5
- EXPIRED = 'expired',
6
- }
@@ -1 +0,0 @@
1
- export * from './enums';
@@ -1,24 +0,0 @@
1
- import { z } from 'zod';
2
- import { FILE_TYPE, FILE_USAGE_MODE } from '../constants';
3
-
4
- export const TextFileAttachmentSchema = z.object({
5
- fileId: z.string().uuid(),
6
- type: z.enum([FILE_TYPE.TEXT, FILE_TYPE.DOCUMENT]),
7
- usageMode: z.nativeEnum(FILE_USAGE_MODE),
8
- });
9
-
10
- export type TextFileAttachment = z.infer<typeof TextFileAttachmentSchema>;
11
-
12
- export const ImageFileAttachmentSchema = z.object({
13
- fileId: z.string().uuid(),
14
- type: z.literal(FILE_TYPE.IMAGE),
15
- });
16
-
17
- export type ImageFileAttachment = z.infer<typeof ImageFileAttachmentSchema>;
18
-
19
- export const FileAttachmentSchema = z.discriminatedUnion('type', [
20
- TextFileAttachmentSchema,
21
- ImageFileAttachmentSchema,
22
- ]);
23
-
24
- export type FileAttachment = z.infer<typeof FileAttachmentSchema>;