@purpleschool/gptbot 0.7.32 → 0.7.33

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 (65) hide show
  1. package/api/controllers/http/index.ts +1 -0
  2. package/api/controllers/http/writer.ts +18 -0
  3. package/build/api/controllers/http/index.js +1 -0
  4. package/build/api/controllers/http/writer.js +20 -0
  5. package/build/commands/tools/index.js +1 -0
  6. package/build/commands/tools/writer/create-writer-document.command.js +16 -0
  7. package/build/commands/tools/writer/delete-all-writer-documents.command.js +8 -0
  8. package/build/commands/tools/writer/delete-writer-document-by-uuid.command.js +11 -0
  9. package/build/commands/tools/writer/find-writer-document-by-uuid.command.js +14 -0
  10. package/build/commands/tools/writer/find-writer-documents.command.js +18 -0
  11. package/build/commands/tools/writer/generate-writer-document-contents.command.js +14 -0
  12. package/build/commands/tools/writer/get-writer-tool-config.command.js +11 -0
  13. package/build/commands/tools/writer/index.js +29 -0
  14. package/build/commands/tools/writer/update-writer-document-contents.command.js +18 -0
  15. package/build/commands/tools/writer/update-writer-document-outline.command.js +17 -0
  16. package/build/commands/tools/writer/writer-extend-text.command.js +18 -0
  17. package/build/commands/tools/writer/writer-fix-errors.command.js +18 -0
  18. package/build/commands/tools/writer/writer-paraphrase.command.js +18 -0
  19. package/build/commands/tools/writer/writer-shorten-text.command.js +18 -0
  20. package/build/constants/errors/errors.js +79 -14
  21. package/build/constants/index.js +1 -0
  22. package/build/constants/writer/enums/index.js +20 -0
  23. package/build/constants/writer/enums/writer-ai-action-pricing-type.enum.js +8 -0
  24. package/build/constants/writer/enums/writer-ai-action-type.enum.js +11 -0
  25. package/build/constants/writer/enums/writer-document-section-type.enum.js +9 -0
  26. package/build/constants/writer/enums/writer-document-stage.enum.js +14 -0
  27. package/build/constants/writer/index.js +17 -0
  28. package/build/models/tools/index.js +1 -0
  29. package/build/models/tools/writer/index.js +21 -0
  30. package/build/models/tools/writer/writer-ai-action.schema.js +26 -0
  31. package/build/models/tools/writer/writer-config.schema.js +13 -0
  32. package/build/models/tools/writer/writer-document-outline.schema.js +21 -0
  33. package/build/models/tools/writer/writer-document-type.schema.js +13 -0
  34. package/build/models/tools/writer/writer-document.schema.js +21 -0
  35. package/commands/tools/index.ts +1 -0
  36. package/commands/tools/writer/create-writer-document.command.ts +16 -0
  37. package/commands/tools/writer/delete-all-writer-documents.command.ts +6 -0
  38. package/commands/tools/writer/delete-writer-document-by-uuid.command.ts +11 -0
  39. package/commands/tools/writer/find-writer-document-by-uuid.command.ts +14 -0
  40. package/commands/tools/writer/find-writer-documents.command.ts +18 -0
  41. package/commands/tools/writer/generate-writer-document-contents.command.ts +14 -0
  42. package/commands/tools/writer/get-writer-tool-config.command.ts +10 -0
  43. package/commands/tools/writer/index.ts +13 -0
  44. package/commands/tools/writer/update-writer-document-contents.command.ts +20 -0
  45. package/commands/tools/writer/update-writer-document-outline.command.ts +19 -0
  46. package/commands/tools/writer/writer-extend-text.command.ts +20 -0
  47. package/commands/tools/writer/writer-fix-errors.command.ts +20 -0
  48. package/commands/tools/writer/writer-paraphrase.command.ts +20 -0
  49. package/commands/tools/writer/writer-shorten-text.command.ts +20 -0
  50. package/constants/errors/errors.ts +79 -14
  51. package/constants/index.ts +1 -0
  52. package/constants/writer/enums/index.ts +4 -0
  53. package/constants/writer/enums/writer-ai-action-pricing-type.enum.ts +4 -0
  54. package/constants/writer/enums/writer-ai-action-type.enum.ts +7 -0
  55. package/constants/writer/enums/writer-document-section-type.enum.ts +5 -0
  56. package/constants/writer/enums/writer-document-stage.enum.ts +13 -0
  57. package/constants/writer/index.ts +1 -0
  58. package/models/tools/index.ts +1 -0
  59. package/models/tools/writer/index.ts +5 -0
  60. package/models/tools/writer/writer-ai-action.schema.ts +27 -0
  61. package/models/tools/writer/writer-config.schema.ts +13 -0
  62. package/models/tools/writer/writer-document-outline.schema.ts +28 -0
  63. package/models/tools/writer/writer-document-type.schema.ts +12 -0
  64. package/models/tools/writer/writer-document.schema.ts +21 -0
  65. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriterDocumentOutlineSchema = exports.WriterDocumentOutlineSectionSchema = exports.WriterDocumentOutlineSubsectionSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ exports.WriterDocumentOutlineSubsectionSchema = zod_1.z.object({
7
+ title: zod_1.z
8
+ .string()
9
+ .min(3)
10
+ .max(120)
11
+ .describe(`Concise title of the subsection. Meant to elaborate on its parent section's title.`),
12
+ });
13
+ exports.WriterDocumentOutlineSectionSchema = zod_1.z.object({
14
+ title: zod_1.z.string().min(3).max(120).describe(`Concise title of the paper section.`),
15
+ type: zod_1.z.nativeEnum(constants_1.WRITER_DOCUMENT_SECTION_TYPE),
16
+ subsections: zod_1.z
17
+ .array(exports.WriterDocumentOutlineSubsectionSchema)
18
+ .optional()
19
+ .describe(`Subsections of the paper section. Each subsection is a single idea that is a part of the parent section.`),
20
+ });
21
+ exports.WriterDocumentOutlineSchema = zod_1.z.array(exports.WriterDocumentOutlineSectionSchema);
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriterDocumentTypeSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.WriterDocumentTypeSchema = zod_1.z.object({
6
+ uuid: zod_1.z.string().uuid(),
7
+ title: zod_1.z.string(),
8
+ icon: zod_1.z.string(),
9
+ order: zod_1.z.number(),
10
+ promptInstructions: zod_1.z.string().nullable(),
11
+ createdAt: zod_1.z.date(),
12
+ updatedAt: zod_1.z.date(),
13
+ });
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriterDocumentSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const writer_document_outline_schema_1 = require("./writer-document-outline.schema");
6
+ const constants_1 = require("../../../constants");
7
+ exports.WriterDocumentSchema = zod_1.z.object({
8
+ uuid: zod_1.z.string(),
9
+ prompt: zod_1.z.string(),
10
+ topic: zod_1.z.string(),
11
+ typeId: zod_1.z.string(),
12
+ stage: zod_1.z.nativeEnum(constants_1.WRITER_DOCUMENT_STAGE),
13
+ outline: writer_document_outline_schema_1.WriterDocumentOutlineSchema,
14
+ sourceMd: zod_1.z.string().nullable(),
15
+ finalMd: zod_1.z.string().nullable(),
16
+ userId: zod_1.z.string().nullable(),
17
+ unregisteredUserId: zod_1.z.string().nullable(),
18
+ createdAt: zod_1.z.date(),
19
+ updatedAt: zod_1.z.date(),
20
+ completedAt: zod_1.z.date().nullable(),
21
+ });
@@ -4,4 +4,5 @@ export * from './stt';
4
4
  export * from './tool';
5
5
  export * from './tts';
6
6
  export * from './video';
7
+ export * from './writer';
7
8
  export * from './image-editor';
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentSchema } from '../../../models';
3
+
4
+ export namespace CreateWriterDocumentCommand {
5
+ export const RequestSchema = z.object({
6
+ topic: z.string(),
7
+ numPages: z.number(),
8
+ documentTypeId: z.string(),
9
+ });
10
+ export type Request = z.infer<typeof RequestSchema>;
11
+
12
+ export const ResponseSchema = z.object({
13
+ data: WriterDocumentSchema,
14
+ });
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace DeleteAllWriterDocumentsCommand {
4
+ export const ResponseSchema = z.void();
5
+ export type Response = z.infer<typeof ResponseSchema>;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace DeleteWriterDocumentByUUIDCommand {
4
+ export const RequestParamsSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
8
+
9
+ export const ResponseSchema = z.void();
10
+ export type Response = z.infer<typeof ResponseSchema>;
11
+ }
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentSchema } from '../../../models';
3
+
4
+ export namespace FindWriterDocumentByUUIDCommand {
5
+ export const RequestParamsSchema = z.object({
6
+ uuid: z.string().uuid(),
7
+ });
8
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
9
+
10
+ export const ResponseSchema = z.object({
11
+ data: WriterDocumentSchema,
12
+ });
13
+ export type Response = z.infer<typeof ResponseSchema>;
14
+ }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentSchema } from '../../../models';
3
+
4
+ export namespace FindWriterDocumentsCommand {
5
+ export const RequestQuerySchema = z.object({
6
+ limit: z.coerce.number().min(1).optional(),
7
+ offset: z.coerce.number().min(0).default(0).optional(),
8
+ title: z.string().optional(),
9
+ });
10
+ export type RequestQuery = z.infer<typeof RequestQuerySchema>;
11
+
12
+ export const ResponseSchema = z.object({
13
+ data: z.array(WriterDocumentSchema),
14
+ totalPages: z.number(),
15
+ page: z.number(),
16
+ });
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentSchema } from '../../../models';
3
+
4
+ export namespace GenerateWriterDocumentContentsCommand {
5
+ export const RequestParamsSchema = z.object({
6
+ uuid: z.string().uuid(),
7
+ });
8
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
9
+
10
+ export const ResponseSchema = z.object({
11
+ data: WriterDocumentSchema,
12
+ });
13
+ export type Response = z.infer<typeof ResponseSchema>;
14
+ }
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { WriterConfigSchema } from '../../../models';
3
+
4
+ export namespace GetWriterToolConfigCommand {
5
+ export const ResponseSchema = z.object({
6
+ data: WriterConfigSchema,
7
+ });
8
+
9
+ export type Response = z.infer<typeof ResponseSchema>;
10
+ }
@@ -0,0 +1,13 @@
1
+ export * from './get-writer-tool-config.command';
2
+ export * from './create-writer-document.command';
3
+ export * from './find-writer-document-by-uuid.command';
4
+ export * from './find-writer-documents.command';
5
+ export * from './generate-writer-document-contents.command';
6
+ export * from './update-writer-document-outline.command';
7
+ export * from './update-writer-document-contents.command';
8
+ export * from './delete-writer-document-by-uuid.command';
9
+ export * from './delete-all-writer-documents.command';
10
+ export * from './writer-paraphrase.command';
11
+ export * from './writer-extend-text.command';
12
+ export * from './writer-shorten-text.command';
13
+ export * from './writer-fix-errors.command';
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace UpdateWriterDocumentContentsCommand {
4
+ export const RequestParamsSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
8
+
9
+ export const RequestBodySchema = z.object({
10
+ contents: z.string(),
11
+ });
12
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: z.object({
16
+ success: z.boolean(),
17
+ }),
18
+ });
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentOutlineSchema, WriterDocumentOutlineSectionSchema } from '../../../models';
3
+
4
+ export namespace UpdateWriterDocumentOutlineCommand {
5
+ export const RequestBodySchema = z.object({
6
+ data: WriterDocumentOutlineSchema,
7
+ });
8
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
9
+
10
+ export const RequestParamsSchema = z.object({
11
+ uuid: z.string().uuid(),
12
+ });
13
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
14
+
15
+ export const ResponseSchema = z.object({
16
+ data: z.array(WriterDocumentOutlineSectionSchema),
17
+ });
18
+ export type Response = z.infer<typeof ResponseSchema>;
19
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace WriterExtendTextCommand {
4
+ export const RequestParamsSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
8
+
9
+ export const RequestBodySchema = z.object({
10
+ selectionText: z.string(),
11
+ });
12
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: z.object({
16
+ output: z.string(),
17
+ }),
18
+ });
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace WriterFixErrorsCommand {
4
+ export const RequestParamsSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
8
+
9
+ export const RequestBodySchema = z.object({
10
+ selectionText: z.string(),
11
+ });
12
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: z.object({
16
+ output: z.string(),
17
+ }),
18
+ });
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace WriterParaphraseCommand {
4
+ export const RequestParamsSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
8
+
9
+ export const RequestBodySchema = z.object({
10
+ selectionText: z.string(),
11
+ });
12
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: z.object({
16
+ output: z.string(),
17
+ }),
18
+ });
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace WriterShortenTextCommand {
4
+ export const RequestParamsSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
8
+
9
+ export const RequestBodySchema = z.object({
10
+ selectionText: z.string(),
11
+ });
12
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: z.object({
16
+ output: z.string(),
17
+ }),
18
+ });
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -1715,58 +1715,123 @@ export const ERRORS = {
1715
1715
  httpCode: 500,
1716
1716
  },
1717
1717
  DAILY_REWARD_COLLECT_ERROR: {
1718
- code: 'A353',
1718
+ code: 'A362',
1719
1719
  message: 'Ошибка при получении ежедневной награды',
1720
1720
  httpCode: 500,
1721
1721
  },
1722
1722
  DAILY_STREAK_CREATE_ERROR: {
1723
- code: 'A354',
1723
+ code: 'A363',
1724
1724
  message: 'Ошибка при создании ежедневного стрика',
1725
1725
  httpCode: 500,
1726
1726
  },
1727
1727
  DAILY_STREAK_FIND_ERROR: {
1728
- code: 'A355',
1728
+ code: 'A364',
1729
1729
  message: 'Ошибка при поиске ежедневного стрика',
1730
1730
  httpCode: 500,
1731
1731
  },
1732
1732
  DAILY_STREAK_PROMOCODE_ALREADY_EXISTS_ERROR: {
1733
- code: 'A356',
1733
+ code: 'A365',
1734
1734
  message: 'Промокод для ежедневного стрика уже существует',
1735
1735
  httpCode: 409,
1736
1736
  },
1737
1737
  DAILY_REWARD_NOT_READY_ERROR: {
1738
- code: 'A357',
1738
+ code: 'A366',
1739
1739
  message: 'Запрашиваемая награда ещё недоступна для получения',
1740
1740
  httpCode: 429,
1741
1741
  },
1742
1742
  DAILY_REWARD_ALREADY_COLLECTED_ERROR: {
1743
- code: 'A358',
1743
+ code: 'A367',
1744
1744
  message: 'Запрашиваемая награда уже получена',
1745
1745
  httpCode: 429,
1746
1746
  },
1747
1747
  DAILY_STREAK_UPDATE_ERROR: {
1748
- code: 'A359',
1748
+ code: 'A368',
1749
1749
  message: 'Ошибка при обновлении ежедневного стрика',
1750
1750
  httpCode: 500,
1751
1751
  },
1752
+ WRITER_CONFIG_ERROR: {
1753
+ code: 'A369',
1754
+ message: 'Произошла ошибка при получении конфигурации Writer',
1755
+ httpCode: 500,
1756
+ },
1757
+ WRITER_CREATE_DOCUMENT_ERROR: {
1758
+ code: 'A370',
1759
+ message: 'Произошла ошибка при создании документа',
1760
+ httpCode: 500,
1761
+ },
1762
+ WRITER_DOCUMENT_FIND_ERROR: {
1763
+ code: 'A371',
1764
+ message: 'Произошла ошибка при поиске документа',
1765
+ httpCode: 500,
1766
+ },
1767
+ WRITER_DOCUMENTS_FIND_ERROR: {
1768
+ code: 'A372',
1769
+ message: 'Произошла ошибка при поиске документов',
1770
+ httpCode: 500,
1771
+ },
1772
+ WRITER_DELETE_DOCUMENT_ERROR: {
1773
+ code: 'A373',
1774
+ message: 'Произошла ошибка при удалении документа',
1775
+ httpCode: 500,
1776
+ },
1777
+ WRITER_DELETE_ALL_DOCUMENTS_ERROR: {
1778
+ code: 'A374',
1779
+ message: 'Произошла ошибка при удалении всех документов пользователя',
1780
+ httpCode: 500,
1781
+ },
1782
+ WRITER_UPDATE_DOCUMENT_OUTLINE_ERROR: {
1783
+ code: 'A375',
1784
+ message: 'Произошла ошибка при обновлении структуры документа',
1785
+ httpCode: 500,
1786
+ },
1787
+ WRITER_GENERATE_DOCUMENT_CONTENTS_ERROR: {
1788
+ code: 'A376',
1789
+ message: 'Произошла ошибка при генерации содержимого документа',
1790
+ httpCode: 500,
1791
+ },
1752
1792
  ACCOUNT_DELETE_ERROR: {
1753
- code: 'A360',
1793
+ code: 'A377',
1754
1794
  message: 'Аккаунт не был удалён',
1755
1795
  httpCode: 500,
1756
1796
  },
1757
1797
  ACCOUNT_DELETED: {
1758
- code: 'A361',
1798
+ code: 'A378',
1759
1799
  message: 'Операция невозможна, аккаунт был удалён',
1760
1800
  httpCode: 400,
1761
1801
  },
1802
+ TOOL_NOT_FOUND_ERROR: {
1803
+ code: 'A379',
1804
+ message: 'Инструмент не найден',
1805
+ httpCode: 404,
1806
+ },
1762
1807
  TELEGRAM_PROFILE_DELETE_ERROR: {
1763
- code: 'A362',
1808
+ code: 'A380',
1764
1809
  message: 'Произошла ошибка при удалении Telegram профиля',
1765
1810
  httpCode: 500,
1766
1811
  },
1767
- TOOL_NOT_FOUND_ERROR: {
1768
- code: 'A363',
1769
- message: 'Инструмент не найден',
1770
- httpCode: 404,
1812
+ WRITER_PARAPHRASE_ERROR: {
1813
+ code: 'A381',
1814
+ message: 'Произошла ошибка при перефразировании текста',
1815
+ httpCode: 500,
1816
+ },
1817
+ WRITER_EXTEND_TEXT_ERROR: {
1818
+ code: 'A382',
1819
+ message: 'Произошла ошибка при расширении текста',
1820
+ httpCode: 500,
1821
+ },
1822
+ WRITER_SHORTEN_TEXT_ERROR: {
1823
+ code: 'A383',
1824
+ message: 'Произошла ошибка при сокращении текста',
1825
+ httpCode: 500,
1826
+ },
1827
+ WRITER_FIX_ERRORS_ERROR: {
1828
+ code: 'A384',
1829
+ message: 'Произошла ошибка при исправлении ошибок в тексте',
1830
+ httpCode: 500,
1831
+ },
1832
+ WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: {
1833
+ code: 'A385',
1834
+ message: 'Произошла ошибка при обновлении содержимого документа',
1835
+ httpCode: 500,
1771
1836
  },
1772
1837
  };
@@ -31,6 +31,7 @@ export * from './promocode';
31
31
  export * from './ui-notification';
32
32
  export * from './review';
33
33
  export * from './tool-video';
34
+ export * from './writer';
34
35
  export * from './tool-image-editor';
35
36
  export * from './feedback';
36
37
  export * from './daily-streak';
@@ -0,0 +1,4 @@
1
+ export * from './writer-document-section-type.enum';
2
+ export * from './writer-document-stage.enum';
3
+ export * from './writer-ai-action-pricing-type.enum';
4
+ export * from './writer-ai-action-type.enum';
@@ -0,0 +1,4 @@
1
+ export enum WRITER_AI_ACTION_PRICING_TYPE {
2
+ PER_CHARACTER = 'PER_CHARACTER',
3
+ FLAT = 'FLAT',
4
+ }
@@ -0,0 +1,7 @@
1
+ export enum WRITER_AI_ACTION_TYPE {
2
+ PARAPHRASE = 'PARAPHRASE',
3
+ EXTEND_TEXT = 'EXTEND_TEXT',
4
+ SHORTEN_TEXT = 'SHORTEN_TEXT',
5
+ GENERATE_TEXT = 'GENERATE_TEXT',
6
+ FIX_ERRORS = 'FIX_ERRORS',
7
+ }
@@ -0,0 +1,5 @@
1
+ export enum WRITER_DOCUMENT_SECTION_TYPE {
2
+ INTRODUCTION = 'introduction',
3
+ CONCLUSION = 'conclusion',
4
+ SECTION = 'section',
5
+ }
@@ -0,0 +1,13 @@
1
+ export enum WRITER_DOCUMENT_STAGE {
2
+ CREATED = 'CREATED',
3
+
4
+ GENERATING_OUTLINE = 'GENERATING_OUTLINE',
5
+ OUTLINE_GENERATED = 'OUTLINE_GENERATED',
6
+ OUTLINE_GENERATION_FAILED = 'OUTLINE_GENERATION_FAILED',
7
+
8
+ GENERATING_CONTENT = 'GENERATING_CONTENT',
9
+ CONTENT_GENERATED = 'CONTENT_GENERATED',
10
+ CONTENT_GENERATION_FAILED = 'CONTENT_GENERATION_FAILED',
11
+
12
+ DELETED = 'DELETED',
13
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -3,4 +3,5 @@ export * from './paraphrase';
3
3
  export * from './stt';
4
4
  export * from './tts';
5
5
  export * from './video';
6
+ export * from './writer';
6
7
  export * from './image-editor';
@@ -0,0 +1,5 @@
1
+ export * from './writer-config.schema';
2
+ export * from './writer-ai-action.schema';
3
+ export * from './writer-document-outline.schema';
4
+ export * from './writer-document.schema';
5
+ export * from './writer-document-type.schema';
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ import { WRITER_AI_ACTION_PRICING_TYPE, WRITER_AI_ACTION_TYPE } from '../../../constants';
3
+
4
+ export const WriterAiActionPricingRulesSchema = z.discriminatedUnion('type', [
5
+ z.object({
6
+ type: z.literal(WRITER_AI_ACTION_PRICING_TYPE.PER_CHARACTER),
7
+ price: z.number(),
8
+ }),
9
+ z.object({
10
+ type: z.literal(WRITER_AI_ACTION_PRICING_TYPE.FLAT),
11
+ price: z.number(),
12
+ }),
13
+ ]);
14
+ export type WriterAiActionPricingRules = z.infer<typeof WriterAiActionPricingRulesSchema>;
15
+
16
+ export const WriterAiActionSchema = z.object({
17
+ uuid: z.string(),
18
+ type: z.nativeEnum(WRITER_AI_ACTION_TYPE),
19
+ pricingRules: WriterAiActionPricingRulesSchema,
20
+ maxPromptLength: z.number(),
21
+ title: z.string(),
22
+ icon: z.string(),
23
+ order: z.number(),
24
+ createdAt: z.date(),
25
+ updatedAt: z.date(),
26
+ });
27
+ export type WriterAiAction = z.infer<typeof WriterAiActionSchema>;
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentTypeSchema } from './writer-document-type.schema';
3
+ import { WriterAiActionSchema } from './writer-ai-action.schema';
4
+
5
+ export const WriterConfigSchema = z.object({
6
+ minPages: z.number(),
7
+ maxPages: z.number(),
8
+ maxTopicLength: z.number(),
9
+ documentTypes: z.array(WriterDocumentTypeSchema),
10
+ aiActions: z.array(WriterAiActionSchema),
11
+ });
12
+
13
+ export type WriterConfig = z.infer<typeof WriterConfigSchema>;
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ import { WRITER_DOCUMENT_SECTION_TYPE } from '../../../constants';
3
+
4
+ export const WriterDocumentOutlineSubsectionSchema = z.object({
5
+ title: z
6
+ .string()
7
+ .min(3)
8
+ .max(120)
9
+ .describe(
10
+ `Concise title of the subsection. Meant to elaborate on its parent section's title.`,
11
+ ),
12
+ });
13
+ export type WriterDocumentOutlineSubsection = z.infer<typeof WriterDocumentOutlineSubsectionSchema>;
14
+
15
+ export const WriterDocumentOutlineSectionSchema = z.object({
16
+ title: z.string().min(3).max(120).describe(`Concise title of the paper section.`),
17
+ type: z.nativeEnum(WRITER_DOCUMENT_SECTION_TYPE),
18
+ subsections: z
19
+ .array(WriterDocumentOutlineSubsectionSchema)
20
+ .optional()
21
+ .describe(
22
+ `Subsections of the paper section. Each subsection is a single idea that is a part of the parent section.`,
23
+ ),
24
+ });
25
+
26
+ export const WriterDocumentOutlineSchema = z.array(WriterDocumentOutlineSectionSchema);
27
+
28
+ export type WriterDocumentOutline = z.infer<typeof WriterDocumentOutlineSchema>;
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+
3
+ export const WriterDocumentTypeSchema = z.object({
4
+ uuid: z.string().uuid(),
5
+ title: z.string(),
6
+ icon: z.string(),
7
+ order: z.number(),
8
+ promptInstructions: z.string().nullable(),
9
+ createdAt: z.date(),
10
+ updatedAt: z.date(),
11
+ });
12
+ export type WriterDocumentType = z.infer<typeof WriterDocumentTypeSchema>;
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentOutlineSchema } from './writer-document-outline.schema';
3
+ import { WRITER_DOCUMENT_STAGE } from '../../../constants';
4
+
5
+ export const WriterDocumentSchema = z.object({
6
+ uuid: z.string(),
7
+ prompt: z.string(),
8
+ topic: z.string(),
9
+ typeId: z.string(),
10
+ stage: z.nativeEnum(WRITER_DOCUMENT_STAGE),
11
+ outline: WriterDocumentOutlineSchema,
12
+ sourceMd: z.string().nullable(),
13
+ finalMd: z.string().nullable(),
14
+ userId: z.string().nullable(),
15
+ unregisteredUserId: z.string().nullable(),
16
+ createdAt: z.date(),
17
+ updatedAt: z.date(),
18
+ completedAt: z.date().nullable(),
19
+ });
20
+
21
+ export type WriterDocument = z.infer<typeof WriterDocumentSchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.7.32",
3
+ "version": "0.7.33",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",