@purpleschool/gptbot-tools 0.0.34 → 0.0.36

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 (53) hide show
  1. package/build/common/errors/errors.js +106 -0
  2. package/build/index.js +3 -0
  3. package/build/writer/commands/create-writer-document.command.js +17 -0
  4. package/build/writer/commands/delete-all-user-writer-documents.command.js +18 -0
  5. package/build/writer/commands/delete-writer-document.command.js +14 -0
  6. package/build/writer/commands/generate-document-contents.command.js +15 -0
  7. package/build/writer/commands/index.js +21 -0
  8. package/build/writer/commands/update-writer-document-outline.command.js +16 -0
  9. package/build/writer/enums/index.js +20 -0
  10. package/build/writer/enums/writer-ai-operation-pricing-type.enum.js +8 -0
  11. package/build/writer/enums/writer-ai-operation-type.enum.js +9 -0
  12. package/build/writer/enums/writer-document-section-type.enum.js +9 -0
  13. package/build/writer/enums/writer-document-stage.enum.js +14 -0
  14. package/build/writer/index.js +21 -0
  15. package/build/writer/models/index.js +21 -0
  16. package/build/writer/models/writer-ai-operation.schema.js +26 -0
  17. package/build/writer/models/writer-config.schema.js +13 -0
  18. package/build/writer/models/writer-document-outline.schema.js +21 -0
  19. package/build/writer/models/writer-document-type.schema.js +13 -0
  20. package/build/writer/models/writer-document.schema.js +22 -0
  21. package/build/writer/queries/find-writer-document-by-uuid.query.js +11 -0
  22. package/build/writer/queries/find-writer-documents.query.js +21 -0
  23. package/build/writer/queries/get-writer-config.query.js +9 -0
  24. package/build/writer/queries/index.js +19 -0
  25. package/build/writer/routes/index.js +17 -0
  26. package/build/writer/routes/writer.routes.js +13 -0
  27. package/common/errors/errors.ts +106 -0
  28. package/index.ts +3 -0
  29. package/package.json +1 -1
  30. package/writer/commands/create-writer-document.command.ts +17 -0
  31. package/writer/commands/delete-all-user-writer-documents.command.ts +18 -0
  32. package/writer/commands/delete-writer-document.command.ts +14 -0
  33. package/writer/commands/generate-document-contents.command.ts +15 -0
  34. package/writer/commands/index.ts +5 -0
  35. package/writer/commands/update-writer-document-outline.command.ts +16 -0
  36. package/writer/enums/index.ts +4 -0
  37. package/writer/enums/writer-ai-operation-pricing-type.enum.ts +4 -0
  38. package/writer/enums/writer-ai-operation-type.enum.ts +5 -0
  39. package/writer/enums/writer-document-section-type.enum.ts +5 -0
  40. package/writer/enums/writer-document-stage.enum.ts +13 -0
  41. package/writer/index.ts +5 -0
  42. package/writer/models/index.ts +5 -0
  43. package/writer/models/writer-ai-operation.schema.ts +27 -0
  44. package/writer/models/writer-config.schema.ts +12 -0
  45. package/writer/models/writer-document-outline.schema.ts +27 -0
  46. package/writer/models/writer-document-type.schema.ts +12 -0
  47. package/writer/models/writer-document.schema.ts +21 -0
  48. package/writer/queries/find-writer-document-by-uuid.query.ts +11 -0
  49. package/writer/queries/find-writer-documents.query.ts +24 -0
  50. package/writer/queries/get-writer-config.query.ts +8 -0
  51. package/writer/queries/index.ts +3 -0
  52. package/writer/routes/index.ts +1 -0
  53. package/writer/routes/writer.routes.ts +10 -0
@@ -529,6 +529,112 @@ exports.ERRORS = {
529
529
  httpCode: 500,
530
530
  },
531
531
  },
532
+ WRITER_DOCUMENT: {
533
+ SAVE_ERROR: {
534
+ code: 'WRITER_DOCUMENT.SAVE_ERROR',
535
+ message: 'Произошла ошибка при сохранении документа',
536
+ httpCode: 500,
537
+ },
538
+ FIND_ERROR: {
539
+ code: 'WRITER_DOCUMENT.FIND_ERROR',
540
+ message: 'Произошла ошибка при поиске документа',
541
+ httpCode: 500,
542
+ },
543
+ NOT_FOUND: {
544
+ code: 'WRITER_DOCUMENT.NOT_FOUND',
545
+ message: 'Документ не найден',
546
+ httpCode: 404,
547
+ },
548
+ DELETE_ERROR: {
549
+ code: 'WRITER_DOCUMENT.DELETE_ERROR',
550
+ message: 'Произошла ошибка при удалении документа',
551
+ httpCode: 500,
552
+ },
553
+ GENERATE_OUTLINE_ERROR: {
554
+ code: 'WRITER_DOCUMENT.GENERATE_OUTLINE_AI_ERROR',
555
+ message: 'Произошла ошибка при генерации макета документа',
556
+ httpCode: 500,
557
+ },
558
+ GENERATE_CONTENT_ERROR: {
559
+ code: 'WRITER_DOCUMENT.GENERATE_CONTENT_ERROR',
560
+ message: 'Произошла ошибка при генерации содержимого документа',
561
+ httpCode: 500,
562
+ },
563
+ GENERATE_CONTENT_AI_ERROR: {
564
+ code: 'WRITER_DOCUMENT.GENERATE_CONTENT_AI_ERROR',
565
+ message: 'Произошла ошибка во время запроса к ИИ при генерации содержимого',
566
+ httpCode: 500,
567
+ },
568
+ OUTLINE_UPDATE_ERROR: {
569
+ code: 'WRITER_DOCUMENT.OUTLINE_UPDATE_ERROR',
570
+ message: 'Произошла ошибка при обновлении макета документа',
571
+ httpCode: 500,
572
+ },
573
+ STAGE_OUTLINE_GENERATED_REQUIRED: {
574
+ code: 'WRITER_DOCUMENT.STAGE_OUTLINE_GENERATED_REQUIRED',
575
+ message: 'Данная операция доступна только сразу же после этапа генерации макета',
576
+ httpCode: 400,
577
+ },
578
+ NOT_AN_OWNER: {
579
+ code: 'WRITER_DOCUMENT.NOT_AN_OWNER',
580
+ message: 'Пользователь не является владельцем документа',
581
+ httpCode: 403,
582
+ },
583
+ TOO_MANY_PAGES: {
584
+ code: 'WRITER_DOCUMENT.TOO_MANY_PAGES',
585
+ message: 'Превышено максимальное количество страниц',
586
+ httpCode: 400,
587
+ },
588
+ TOO_FEW_PAGES: {
589
+ code: 'WRITER_DOCUMENT.TOO_FEW_PAGES',
590
+ message: 'Минимальное количество страниц не достигнуто',
591
+ httpCode: 400,
592
+ },
593
+ TOPIC_TOO_LONG: {
594
+ code: 'WRITER_DOCUMENT.TOPIC_TOO_LONG',
595
+ message: 'Тема слишком длинная',
596
+ httpCode: 400,
597
+ },
598
+ DOCUMENT_TYPE_NOT_FOUND: {
599
+ code: 'WRITER_DOCUMENT.DOCUMENT_TYPE_NOT_FOUND',
600
+ message: 'Тип документа не найден',
601
+ httpCode: 404,
602
+ },
603
+ },
604
+ WRITER_AI_OPERATION: {
605
+ SAVE_ERROR: {
606
+ code: 'WRITER_AI_OPERATION.SAVE_ERROR',
607
+ message: 'Произошла ошибка при сохранении операции',
608
+ httpCode: 500,
609
+ },
610
+ FIND_ERROR: {
611
+ code: 'WRITER_AI_OPERATION.FIND_ERROR',
612
+ message: 'Произошла ошибка при поиске операции',
613
+ httpCode: 500,
614
+ },
615
+ NOT_FOUND: {
616
+ code: 'WRITER_AI_OPERATION.NOT_FOUND',
617
+ message: 'Операция не найдена',
618
+ httpCode: 404,
619
+ },
620
+ },
621
+ WRITER_AI_OPERATION_CALL: {
622
+ SAVE_ERROR: {
623
+ code: 'WRITER_AI_OPERATION_CALL.SAVE_ERROR',
624
+ message: 'Произошла ошибка при сохранении вызова операции',
625
+ httpCode: 500,
626
+ },
627
+ FIND_ERROR: {
628
+ code: 'WRITER_AI_OPERATION_CALL.FIND_ERROR',
629
+ message: 'Произошла ошибка при поиске вызова операции',
630
+ httpCode: 500,
631
+ },
632
+ NOT_FOUND: {
633
+ code: 'WRITER_AI_OPERATION_CALL.NOT_FOUND',
634
+ message: 'Вызов операции не найден',
635
+ httpCode: 404,
636
+ },
637
+ },
532
638
  PROMPT_MODERATION: {
533
639
  AI_ERROR: {
534
640
  code: 'PROMPT_MODERATION.AI_ERROR',
package/build/index.js CHANGED
@@ -44,6 +44,7 @@ __exportStar(require("./stt"), exports);
44
44
  __exportStar(require("./tts"), exports);
45
45
  __exportStar(require("./language"), exports);
46
46
  __exportStar(require("./video"), exports);
47
+ __exportStar(require("./writer"), exports);
47
48
  const common = __importStar(require("./common"));
48
49
  const paraphrase = __importStar(require("./paraphrase"));
49
50
  const tools = __importStar(require("./tools"));
@@ -52,6 +53,7 @@ const tts = __importStar(require("./tts"));
52
53
  const presentation = __importStar(require("./presentation"));
53
54
  const language = __importStar(require("./language"));
54
55
  const video = __importStar(require("./video"));
56
+ const writer = __importStar(require("./writer"));
55
57
  var ToolService;
56
58
  (function (ToolService) {
57
59
  ToolService.Common = common;
@@ -62,4 +64,5 @@ var ToolService;
62
64
  ToolService.Presentation = presentation;
63
65
  ToolService.Language = language;
64
66
  ToolService.Video = video;
67
+ ToolService.Writer = writer;
65
68
  })(ToolService || (exports.ToolService = ToolService = {}));
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateWriterDocumentCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const models_1 = require("../models");
7
+ var CreateWriterDocumentCommand;
8
+ (function (CreateWriterDocumentCommand) {
9
+ CreateWriterDocumentCommand.RequestSchema = zod_1.z.object({
10
+ userId: zod_1.z.string().uuid().nullable().optional(),
11
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
12
+ topic: zod_1.z.string(),
13
+ numPages: zod_1.z.number(),
14
+ documentTypeId: zod_1.z.string().uuid(),
15
+ });
16
+ CreateWriterDocumentCommand.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.WriterDocumentSchema);
17
+ })(CreateWriterDocumentCommand || (exports.CreateWriterDocumentCommand = CreateWriterDocumentCommand = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteAllUserWriterDocumentsCommandContract = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ var DeleteAllUserWriterDocumentsCommandContract;
7
+ (function (DeleteAllUserWriterDocumentsCommandContract) {
8
+ DeleteAllUserWriterDocumentsCommandContract.RequestSchema = zod_1.z
9
+ .object({
10
+ userId: zod_1.z.string().uuid().nullable().optional(),
11
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
12
+ })
13
+ .refine((v) => !!v.userId !== !!v.unregisteredUserId, {
14
+ message: 'Provide either userId or unregisteredUserId',
15
+ path: ['userId', 'unregisteredUserId'],
16
+ });
17
+ DeleteAllUserWriterDocumentsCommandContract.ResponseSchema = (0, common_1.ICommandResponseSchema)(zod_1.z.boolean());
18
+ })(DeleteAllUserWriterDocumentsCommandContract || (exports.DeleteAllUserWriterDocumentsCommandContract = DeleteAllUserWriterDocumentsCommandContract = {}));
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteWriterDocumentCommandContract = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ var DeleteWriterDocumentCommandContract;
7
+ (function (DeleteWriterDocumentCommandContract) {
8
+ DeleteWriterDocumentCommandContract.RequestSchema = zod_1.z.object({
9
+ documentId: zod_1.z.string().uuid(),
10
+ userId: zod_1.z.string().uuid().nullable().optional(),
11
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
12
+ });
13
+ DeleteWriterDocumentCommandContract.ResponseSchema = (0, common_1.ICommandResponseSchema)(zod_1.z.boolean());
14
+ })(DeleteWriterDocumentCommandContract || (exports.DeleteWriterDocumentCommandContract = DeleteWriterDocumentCommandContract = {}));
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenerateWriterDocumentContentsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const models_1 = require("../models");
7
+ var GenerateWriterDocumentContentsCommand;
8
+ (function (GenerateWriterDocumentContentsCommand) {
9
+ GenerateWriterDocumentContentsCommand.RequestSchema = zod_1.z.object({
10
+ documentId: zod_1.z.string().uuid(),
11
+ userId: zod_1.z.string().uuid().nullable().optional(),
12
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
13
+ });
14
+ GenerateWriterDocumentContentsCommand.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.WriterDocumentSchema);
15
+ })(GenerateWriterDocumentContentsCommand || (exports.GenerateWriterDocumentContentsCommand = GenerateWriterDocumentContentsCommand = {}));
@@ -0,0 +1,21 @@
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("./create-writer-document.command"), exports);
18
+ __exportStar(require("./delete-writer-document.command"), exports);
19
+ __exportStar(require("./delete-all-user-writer-documents.command"), exports);
20
+ __exportStar(require("./update-writer-document-outline.command"), exports);
21
+ __exportStar(require("./generate-document-contents.command"), exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateWriterDocumentOutlineCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const models_1 = require("../models");
7
+ var UpdateWriterDocumentOutlineCommand;
8
+ (function (UpdateWriterDocumentOutlineCommand) {
9
+ UpdateWriterDocumentOutlineCommand.RequestSchema = zod_1.z.object({
10
+ userId: zod_1.z.string().uuid().nullable().optional(),
11
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
12
+ documentId: zod_1.z.string().uuid(),
13
+ data: models_1.WriterDocumentOutlineSchema,
14
+ });
15
+ UpdateWriterDocumentOutlineCommand.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.WriterDocumentOutlineSchema);
16
+ })(UpdateWriterDocumentOutlineCommand || (exports.UpdateWriterDocumentOutlineCommand = UpdateWriterDocumentOutlineCommand = {}));
@@ -0,0 +1,20 @@
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("./writer-ai-operation-pricing-type.enum"), exports);
18
+ __exportStar(require("./writer-ai-operation-type.enum"), exports);
19
+ __exportStar(require("./writer-document-section-type.enum"), exports);
20
+ __exportStar(require("./writer-document-stage.enum"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITER_AI_OPERATION_PRICING_TYPE = void 0;
4
+ var WRITER_AI_OPERATION_PRICING_TYPE;
5
+ (function (WRITER_AI_OPERATION_PRICING_TYPE) {
6
+ WRITER_AI_OPERATION_PRICING_TYPE["PER_CHARACTER"] = "PER_CHARACTER";
7
+ WRITER_AI_OPERATION_PRICING_TYPE["FLAT"] = "FLAT";
8
+ })(WRITER_AI_OPERATION_PRICING_TYPE || (exports.WRITER_AI_OPERATION_PRICING_TYPE = WRITER_AI_OPERATION_PRICING_TYPE = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITER_AI_OPERATION_TYPE = void 0;
4
+ var WRITER_AI_OPERATION_TYPE;
5
+ (function (WRITER_AI_OPERATION_TYPE) {
6
+ WRITER_AI_OPERATION_TYPE["PARAPHRASE"] = "PARAPHRASE";
7
+ WRITER_AI_OPERATION_TYPE["EXTEND_TEXT"] = "EXTEND_TEXT";
8
+ WRITER_AI_OPERATION_TYPE["GENERATE_TEXT"] = "GENERATE_TEXT";
9
+ })(WRITER_AI_OPERATION_TYPE || (exports.WRITER_AI_OPERATION_TYPE = WRITER_AI_OPERATION_TYPE = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITER_DOCUMENT_SECTION_TYPE = void 0;
4
+ var WRITER_DOCUMENT_SECTION_TYPE;
5
+ (function (WRITER_DOCUMENT_SECTION_TYPE) {
6
+ WRITER_DOCUMENT_SECTION_TYPE["INTRODUCTION"] = "introduction";
7
+ WRITER_DOCUMENT_SECTION_TYPE["CONCLUSION"] = "conclusion";
8
+ WRITER_DOCUMENT_SECTION_TYPE["SECTION"] = "section";
9
+ })(WRITER_DOCUMENT_SECTION_TYPE || (exports.WRITER_DOCUMENT_SECTION_TYPE = WRITER_DOCUMENT_SECTION_TYPE = {}));
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITER_DOCUMENT_STAGE = void 0;
4
+ var WRITER_DOCUMENT_STAGE;
5
+ (function (WRITER_DOCUMENT_STAGE) {
6
+ WRITER_DOCUMENT_STAGE["CREATED"] = "CREATED";
7
+ WRITER_DOCUMENT_STAGE["GENERATING_OUTLINE"] = "GENERATING_OUTLINE";
8
+ WRITER_DOCUMENT_STAGE["OUTLINE_GENERATED"] = "OUTLINE_GENERATED";
9
+ WRITER_DOCUMENT_STAGE["OUTLINE_GENERATION_FAILED"] = "OUTLINE_GENERATION_FAILED";
10
+ WRITER_DOCUMENT_STAGE["GENERATING_CONTENT"] = "GENERATING_CONTENT";
11
+ WRITER_DOCUMENT_STAGE["CONTENT_GENERATED"] = "CONTENT_GENERATED";
12
+ WRITER_DOCUMENT_STAGE["CONTENT_GENERATION_FAILED"] = "CONTENT_GENERATION_FAILED";
13
+ WRITER_DOCUMENT_STAGE["DELETED"] = "DELETED";
14
+ })(WRITER_DOCUMENT_STAGE || (exports.WRITER_DOCUMENT_STAGE = WRITER_DOCUMENT_STAGE = {}));
@@ -0,0 +1,21 @@
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("./commands"), exports);
18
+ __exportStar(require("./models"), exports);
19
+ __exportStar(require("./queries"), exports);
20
+ __exportStar(require("./enums"), exports);
21
+ __exportStar(require("./routes"), exports);
@@ -0,0 +1,21 @@
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("./writer-config.schema"), exports);
18
+ __exportStar(require("./writer-ai-operation.schema"), exports);
19
+ __exportStar(require("./writer-document-outline.schema"), exports);
20
+ __exportStar(require("./writer-document.schema"), exports);
21
+ __exportStar(require("./writer-document-type.schema"), exports);
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriterAiOperationSchema = exports.WriterAiOperationPricingRulesSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const enums_1 = require("../enums");
6
+ exports.WriterAiOperationPricingRulesSchema = zod_1.z.discriminatedUnion('type', [
7
+ zod_1.z.object({
8
+ type: zod_1.z.literal(enums_1.WRITER_AI_OPERATION_PRICING_TYPE.PER_CHARACTER),
9
+ price: zod_1.z.number(),
10
+ }),
11
+ zod_1.z.object({
12
+ type: zod_1.z.literal(enums_1.WRITER_AI_OPERATION_PRICING_TYPE.FLAT),
13
+ price: zod_1.z.number(),
14
+ }),
15
+ ]);
16
+ exports.WriterAiOperationSchema = zod_1.z.object({
17
+ uuid: zod_1.z.string(),
18
+ type: zod_1.z.nativeEnum(enums_1.WRITER_AI_OPERATION_TYPE),
19
+ pricingRules: exports.WriterAiOperationPricingRulesSchema,
20
+ maxPromptLength: zod_1.z.number(),
21
+ title: zod_1.z.string(),
22
+ icon: zod_1.z.string(),
23
+ order: zod_1.z.number(),
24
+ createdAt: zod_1.z.date(),
25
+ updatedAt: zod_1.z.date(),
26
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriterConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const writer_document_type_schema_1 = require("./writer-document-type.schema");
6
+ const writer_ai_operation_schema_1 = require("./writer-ai-operation.schema");
7
+ exports.WriterConfigSchema = zod_1.z.object({
8
+ minPages: zod_1.z.number(),
9
+ maxPages: zod_1.z.number(),
10
+ maxTopicLength: zod_1.z.number(),
11
+ documentTypes: zod_1.z.array(writer_document_type_schema_1.WriterDocumentTypeSchema),
12
+ aiOperations: zod_1.z.array(writer_ai_operation_schema_1.WriterAiOperationSchema),
13
+ });
@@ -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 enums_1 = require("../enums");
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(enums_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,22 @@
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 enums_1 = require("../enums");
7
+ exports.WriterDocumentSchema = zod_1.z.object({
8
+ uuid: zod_1.z.string().uuid(),
9
+ prompt: zod_1.z.string(),
10
+ topic: zod_1.z.string(),
11
+ typeId: zod_1.z.string(),
12
+ stage: zod_1.z.nativeEnum(enums_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
+ isDeleted: zod_1.z.boolean(),
19
+ createdAt: zod_1.z.date(),
20
+ updatedAt: zod_1.z.date(),
21
+ completedAt: zod_1.z.date().nullable(),
22
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindWriterDocumentByUuidQueryContract = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const models_1 = require("../models");
7
+ var FindWriterDocumentByUuidQueryContract;
8
+ (function (FindWriterDocumentByUuidQueryContract) {
9
+ FindWriterDocumentByUuidQueryContract.RequestSchema = zod_1.z.object({ uuid: zod_1.z.string().uuid() });
10
+ FindWriterDocumentByUuidQueryContract.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.WriterDocumentSchema);
11
+ })(FindWriterDocumentByUuidQueryContract || (exports.FindWriterDocumentByUuidQueryContract = FindWriterDocumentByUuidQueryContract = {}));
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindWriterDocumentsQuery = 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
+ var FindWriterDocumentsQuery;
8
+ (function (FindWriterDocumentsQuery) {
9
+ FindWriterDocumentsQuery.RequestSchema = zod_1.z.object({
10
+ userId: zod_1.z.string().uuid().optional(),
11
+ unregisteredUserId: zod_1.z.string().uuid().optional(),
12
+ title: zod_1.z.string().optional(),
13
+ limit: zod_1.z.coerce.number().min(1).optional(),
14
+ offset: zod_1.z.coerce.number().min(0).optional(),
15
+ });
16
+ FindWriterDocumentsQuery.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(zod_1.z.object({
17
+ data: zod_1.z.array(models_1.WriterDocumentSchema),
18
+ page: zod_1.z.number(),
19
+ totalPages: zod_1.z.number(),
20
+ }));
21
+ })(FindWriterDocumentsQuery || (exports.FindWriterDocumentsQuery = FindWriterDocumentsQuery = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetWriterConfigQuery = void 0;
4
+ const common_1 = require("../../common");
5
+ const models_1 = require("../models");
6
+ var GetWriterConfigQuery;
7
+ (function (GetWriterConfigQuery) {
8
+ GetWriterConfigQuery.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.WriterConfigSchema);
9
+ })(GetWriterConfigQuery || (exports.GetWriterConfigQuery = GetWriterConfigQuery = {}));
@@ -0,0 +1,19 @@
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("./find-writer-documents.query"), exports);
18
+ __exportStar(require("./get-writer-config.query"), exports);
19
+ __exportStar(require("./find-writer-document-by-uuid.query"), exports);
@@ -0,0 +1,17 @@
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("./writer.routes"), exports);
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITER_AMQP_ROUTES = void 0;
4
+ exports.WRITER_AMQP_ROUTES = {
5
+ CONFIG: 'tools.writer.config.rpc',
6
+ CREATE_DOCUMENT: 'tools.writer.create-document.rpc',
7
+ FIND_BY_UUID: 'tools.writer.find-by-uuid.rpc',
8
+ FIND_DOCUMENTS: 'tools.writer.find-documents.rpc',
9
+ DELETE_DOCUMENT: 'tools.writer.delete-document.rpc',
10
+ DELETE_ALL_USER_DOCUMENTS: 'tools.writer.delete-all-user-documents.rpc',
11
+ UPDATE_DOCUMENT_OUTLINE: 'tools.writer.update-document-outline.rpc',
12
+ GENERATE_DOCUMENT_CONTENTS: 'tools.writer.generate-document-contents.rpc',
13
+ };
@@ -528,6 +528,112 @@ export const ERRORS = {
528
528
  httpCode: 500,
529
529
  },
530
530
  },
531
+ WRITER_DOCUMENT: {
532
+ SAVE_ERROR: {
533
+ code: 'WRITER_DOCUMENT.SAVE_ERROR',
534
+ message: 'Произошла ошибка при сохранении документа',
535
+ httpCode: 500,
536
+ },
537
+ FIND_ERROR: {
538
+ code: 'WRITER_DOCUMENT.FIND_ERROR',
539
+ message: 'Произошла ошибка при поиске документа',
540
+ httpCode: 500,
541
+ },
542
+ NOT_FOUND: {
543
+ code: 'WRITER_DOCUMENT.NOT_FOUND',
544
+ message: 'Документ не найден',
545
+ httpCode: 404,
546
+ },
547
+ DELETE_ERROR: {
548
+ code: 'WRITER_DOCUMENT.DELETE_ERROR',
549
+ message: 'Произошла ошибка при удалении документа',
550
+ httpCode: 500,
551
+ },
552
+ GENERATE_OUTLINE_ERROR: {
553
+ code: 'WRITER_DOCUMENT.GENERATE_OUTLINE_AI_ERROR',
554
+ message: 'Произошла ошибка при генерации макета документа',
555
+ httpCode: 500,
556
+ },
557
+ GENERATE_CONTENT_ERROR: {
558
+ code: 'WRITER_DOCUMENT.GENERATE_CONTENT_ERROR',
559
+ message: 'Произошла ошибка при генерации содержимого документа',
560
+ httpCode: 500,
561
+ },
562
+ GENERATE_CONTENT_AI_ERROR: {
563
+ code: 'WRITER_DOCUMENT.GENERATE_CONTENT_AI_ERROR',
564
+ message: 'Произошла ошибка во время запроса к ИИ при генерации содержимого',
565
+ httpCode: 500,
566
+ },
567
+ OUTLINE_UPDATE_ERROR: {
568
+ code: 'WRITER_DOCUMENT.OUTLINE_UPDATE_ERROR',
569
+ message: 'Произошла ошибка при обновлении макета документа',
570
+ httpCode: 500,
571
+ },
572
+ STAGE_OUTLINE_GENERATED_REQUIRED: {
573
+ code: 'WRITER_DOCUMENT.STAGE_OUTLINE_GENERATED_REQUIRED',
574
+ message: 'Данная операция доступна только сразу же после этапа генерации макета',
575
+ httpCode: 400,
576
+ },
577
+ NOT_AN_OWNER: {
578
+ code: 'WRITER_DOCUMENT.NOT_AN_OWNER',
579
+ message: 'Пользователь не является владельцем документа',
580
+ httpCode: 403,
581
+ },
582
+ TOO_MANY_PAGES: {
583
+ code: 'WRITER_DOCUMENT.TOO_MANY_PAGES',
584
+ message: 'Превышено максимальное количество страниц',
585
+ httpCode: 400,
586
+ },
587
+ TOO_FEW_PAGES: {
588
+ code: 'WRITER_DOCUMENT.TOO_FEW_PAGES',
589
+ message: 'Минимальное количество страниц не достигнуто',
590
+ httpCode: 400,
591
+ },
592
+ TOPIC_TOO_LONG: {
593
+ code: 'WRITER_DOCUMENT.TOPIC_TOO_LONG',
594
+ message: 'Тема слишком длинная',
595
+ httpCode: 400,
596
+ },
597
+ DOCUMENT_TYPE_NOT_FOUND: {
598
+ code: 'WRITER_DOCUMENT.DOCUMENT_TYPE_NOT_FOUND',
599
+ message: 'Тип документа не найден',
600
+ httpCode: 404,
601
+ },
602
+ },
603
+ WRITER_AI_OPERATION: {
604
+ SAVE_ERROR: {
605
+ code: 'WRITER_AI_OPERATION.SAVE_ERROR',
606
+ message: 'Произошла ошибка при сохранении операции',
607
+ httpCode: 500,
608
+ },
609
+ FIND_ERROR: {
610
+ code: 'WRITER_AI_OPERATION.FIND_ERROR',
611
+ message: 'Произошла ошибка при поиске операции',
612
+ httpCode: 500,
613
+ },
614
+ NOT_FOUND: {
615
+ code: 'WRITER_AI_OPERATION.NOT_FOUND',
616
+ message: 'Операция не найдена',
617
+ httpCode: 404,
618
+ },
619
+ },
620
+ WRITER_AI_OPERATION_CALL: {
621
+ SAVE_ERROR: {
622
+ code: 'WRITER_AI_OPERATION_CALL.SAVE_ERROR',
623
+ message: 'Произошла ошибка при сохранении вызова операции',
624
+ httpCode: 500,
625
+ },
626
+ FIND_ERROR: {
627
+ code: 'WRITER_AI_OPERATION_CALL.FIND_ERROR',
628
+ message: 'Произошла ошибка при поиске вызова операции',
629
+ httpCode: 500,
630
+ },
631
+ NOT_FOUND: {
632
+ code: 'WRITER_AI_OPERATION_CALL.NOT_FOUND',
633
+ message: 'Вызов операции не найден',
634
+ httpCode: 404,
635
+ },
636
+ },
531
637
  PROMPT_MODERATION: {
532
638
  AI_ERROR: {
533
639
  code: 'PROMPT_MODERATION.AI_ERROR',
package/index.ts CHANGED
@@ -5,6 +5,7 @@ export * from './stt';
5
5
  export * from './tts';
6
6
  export * from './language';
7
7
  export * from './video';
8
+ export * from './writer';
8
9
 
9
10
  import * as common from './common';
10
11
  import * as paraphrase from './paraphrase';
@@ -14,6 +15,7 @@ import * as tts from './tts';
14
15
  import * as presentation from './presentation';
15
16
  import * as language from './language';
16
17
  import * as video from './video';
18
+ import * as writer from './writer';
17
19
 
18
20
  export namespace ToolService {
19
21
  export import Common = common;
@@ -24,4 +26,5 @@ export namespace ToolService {
24
26
  export import Presentation = presentation;
25
27
  export import Language = language;
26
28
  export import Video = video;
29
+ export import Writer = writer;
27
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot-tools",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "scripts": {
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { WriterDocumentSchema } from '../models';
4
+
5
+ export namespace CreateWriterDocumentCommand {
6
+ export const RequestSchema = z.object({
7
+ userId: z.string().uuid().nullable().optional(),
8
+ unregisteredUserId: z.string().uuid().nullable().optional(),
9
+ topic: z.string(),
10
+ numPages: z.number(),
11
+ documentTypeId: z.string().uuid(),
12
+ });
13
+ export type Request = z.infer<typeof RequestSchema>;
14
+
15
+ export const ResponseSchema = ICommandResponseSchema(WriterDocumentSchema);
16
+ export type Response = z.infer<typeof ResponseSchema>;
17
+ }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+
4
+ export namespace DeleteAllUserWriterDocumentsCommandContract {
5
+ export const RequestSchema = z
6
+ .object({
7
+ userId: z.string().uuid().nullable().optional(),
8
+ unregisteredUserId: z.string().uuid().nullable().optional(),
9
+ })
10
+ .refine((v) => !!v.userId !== !!v.unregisteredUserId, {
11
+ message: 'Provide either userId or unregisteredUserId',
12
+ path: ['userId', 'unregisteredUserId'],
13
+ });
14
+ export type Request = z.infer<typeof RequestSchema>;
15
+
16
+ export const ResponseSchema = ICommandResponseSchema(z.boolean());
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+
4
+ export namespace DeleteWriterDocumentCommandContract {
5
+ export const RequestSchema = z.object({
6
+ documentId: z.string().uuid(),
7
+ userId: z.string().uuid().nullable().optional(),
8
+ unregisteredUserId: z.string().uuid().nullable().optional(),
9
+ });
10
+ export type Request = z.infer<typeof RequestSchema>;
11
+
12
+ export const ResponseSchema = ICommandResponseSchema(z.boolean());
13
+ export type Response = z.infer<typeof ResponseSchema>;
14
+ }
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { WriterDocumentSchema } from '../models';
4
+
5
+ export namespace GenerateWriterDocumentContentsCommand {
6
+ export const RequestSchema = z.object({
7
+ documentId: z.string().uuid(),
8
+ userId: z.string().uuid().nullable().optional(),
9
+ unregisteredUserId: z.string().uuid().nullable().optional(),
10
+ });
11
+ export type Request = z.infer<typeof RequestSchema>;
12
+
13
+ export const ResponseSchema = ICommandResponseSchema(WriterDocumentSchema);
14
+ export type Response = z.infer<typeof ResponseSchema>;
15
+ }
@@ -0,0 +1,5 @@
1
+ export * from './create-writer-document.command';
2
+ export * from './delete-writer-document.command';
3
+ export * from './delete-all-user-writer-documents.command';
4
+ export * from './update-writer-document-outline.command';
5
+ export * from './generate-document-contents.command';
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { WriterDocumentOutlineSchema } from '../models';
4
+
5
+ export namespace UpdateWriterDocumentOutlineCommand {
6
+ export const RequestSchema = z.object({
7
+ userId: z.string().uuid().nullable().optional(),
8
+ unregisteredUserId: z.string().uuid().nullable().optional(),
9
+ documentId: z.string().uuid(),
10
+ data: WriterDocumentOutlineSchema,
11
+ });
12
+ export type Request = z.infer<typeof RequestSchema>;
13
+
14
+ export const ResponseSchema = ICommandResponseSchema(WriterDocumentOutlineSchema);
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,4 @@
1
+ export * from './writer-ai-operation-pricing-type.enum';
2
+ export * from './writer-ai-operation-type.enum';
3
+ export * from './writer-document-section-type.enum';
4
+ export * from './writer-document-stage.enum';
@@ -0,0 +1,4 @@
1
+ export enum WRITER_AI_OPERATION_PRICING_TYPE {
2
+ PER_CHARACTER = 'PER_CHARACTER',
3
+ FLAT = 'FLAT',
4
+ }
@@ -0,0 +1,5 @@
1
+ export enum WRITER_AI_OPERATION_TYPE {
2
+ PARAPHRASE = 'PARAPHRASE',
3
+ EXTEND_TEXT = 'EXTEND_TEXT',
4
+ GENERATE_TEXT = 'GENERATE_TEXT',
5
+ }
@@ -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,5 @@
1
+ export * from './commands';
2
+ export * from './models';
3
+ export * from './queries';
4
+ export * from './enums';
5
+ export * from './routes';
@@ -0,0 +1,5 @@
1
+ export * from './writer-config.schema';
2
+ export * from './writer-ai-operation.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_OPERATION_PRICING_TYPE, WRITER_AI_OPERATION_TYPE } from '../enums';
3
+
4
+ export const WriterAiOperationPricingRulesSchema = z.discriminatedUnion('type', [
5
+ z.object({
6
+ type: z.literal(WRITER_AI_OPERATION_PRICING_TYPE.PER_CHARACTER),
7
+ price: z.number(),
8
+ }),
9
+ z.object({
10
+ type: z.literal(WRITER_AI_OPERATION_PRICING_TYPE.FLAT),
11
+ price: z.number(),
12
+ }),
13
+ ]);
14
+
15
+ export const WriterAiOperationSchema = z.object({
16
+ uuid: z.string(),
17
+ type: z.nativeEnum(WRITER_AI_OPERATION_TYPE),
18
+ pricingRules: WriterAiOperationPricingRulesSchema,
19
+ maxPromptLength: z.number(),
20
+ title: z.string(),
21
+ icon: z.string(),
22
+ order: z.number(),
23
+ createdAt: z.date(),
24
+ updatedAt: z.date(),
25
+ });
26
+
27
+ export type WriterAiOperation = z.infer<typeof WriterAiOperationSchema>;
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { WriterDocumentTypeSchema } from './writer-document-type.schema';
3
+ import { WriterAiOperationSchema } from './writer-ai-operation.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
+ aiOperations: z.array(WriterAiOperationSchema),
11
+ });
12
+ export type PresentationConfig = z.infer<typeof WriterConfigSchema>;
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ import { WRITER_DOCUMENT_SECTION_TYPE } from '../enums';
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
+ 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 '../enums';
4
+
5
+ export const WriterDocumentSchema = z.object({
6
+ uuid: z.string().uuid(),
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
+ isDeleted: z.boolean(),
17
+ createdAt: z.date(),
18
+ updatedAt: z.date(),
19
+ completedAt: z.date().nullable(),
20
+ });
21
+ export type WriterDocument = z.infer<typeof WriterDocumentSchema>;
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { WriterDocumentSchema } from '../models';
4
+
5
+ export namespace FindWriterDocumentByUuidQueryContract {
6
+ export const RequestSchema = z.object({ uuid: z.string().uuid() });
7
+ export type Request = z.infer<typeof RequestSchema>;
8
+
9
+ export const ResponseSchema = ICommandResponseSchema(WriterDocumentSchema);
10
+ export type Response = z.infer<typeof ResponseSchema>;
11
+ }
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common/models/command-response.schema';
3
+ import { WriterDocumentSchema } from '../models';
4
+
5
+ export namespace FindWriterDocumentsQuery {
6
+ export const RequestSchema = z.object({
7
+ userId: z.string().uuid().optional(),
8
+ unregisteredUserId: z.string().uuid().optional(),
9
+ title: z.string().optional(),
10
+ limit: z.coerce.number().min(1).optional(),
11
+ offset: z.coerce.number().min(0).optional(),
12
+ });
13
+
14
+ export type Request = z.infer<typeof RequestSchema>;
15
+
16
+ export const ResponseSchema = ICommandResponseSchema(
17
+ z.object({
18
+ data: z.array(WriterDocumentSchema),
19
+ page: z.number(),
20
+ totalPages: z.number(),
21
+ }),
22
+ );
23
+ export type Response = z.infer<typeof ResponseSchema>;
24
+ }
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { WriterConfigSchema } from '../models';
4
+
5
+ export namespace GetWriterConfigQuery {
6
+ export const ResponseSchema = ICommandResponseSchema(WriterConfigSchema);
7
+ export type Response = z.infer<typeof ResponseSchema>;
8
+ }
@@ -0,0 +1,3 @@
1
+ export * from './find-writer-documents.query';
2
+ export * from './get-writer-config.query';
3
+ export * from './find-writer-document-by-uuid.query';
@@ -0,0 +1 @@
1
+ export * from './writer.routes';
@@ -0,0 +1,10 @@
1
+ export const WRITER_AMQP_ROUTES = {
2
+ CONFIG: 'tools.writer.config.rpc',
3
+ CREATE_DOCUMENT: 'tools.writer.create-document.rpc',
4
+ FIND_BY_UUID: 'tools.writer.find-by-uuid.rpc',
5
+ FIND_DOCUMENTS: 'tools.writer.find-documents.rpc',
6
+ DELETE_DOCUMENT: 'tools.writer.delete-document.rpc',
7
+ DELETE_ALL_USER_DOCUMENTS: 'tools.writer.delete-all-user-documents.rpc',
8
+ UPDATE_DOCUMENT_OUTLINE: 'tools.writer.update-document-outline.rpc',
9
+ GENERATE_DOCUMENT_CONTENTS: 'tools.writer.generate-document-contents.rpc',
10
+ } as const;