@purpleschool/gptbot 0.7.39 → 0.7.40-texteditor

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 (95) hide show
  1. package/api/controllers/http/index.ts +1 -0
  2. package/api/controllers/http/subscription.ts +2 -0
  3. package/api/controllers/http/writer.ts +20 -0
  4. package/api/routes.ts +4 -0
  5. package/build/api/controllers/http/index.js +1 -0
  6. package/build/api/controllers/http/subscription.js +2 -0
  7. package/build/api/controllers/http/writer.js +22 -0
  8. package/build/api/routes.js +2 -0
  9. package/build/commands/subscription/downgrade-subscription.command.js +44 -0
  10. package/build/commands/subscription/index.js +1 -0
  11. package/build/commands/tools/index.js +1 -0
  12. package/build/commands/tools/writer/create-writer-document.command.js +16 -0
  13. package/build/commands/tools/writer/delete-all-writer-documents.command.js +8 -0
  14. package/build/commands/tools/writer/delete-writer-document-by-uuid.command.js +11 -0
  15. package/build/commands/tools/writer/export-writer-document-as-docx.command.js +15 -0
  16. package/build/commands/tools/writer/find-writer-document-by-uuid.command.js +14 -0
  17. package/build/commands/tools/writer/find-writer-documents.command.js +18 -0
  18. package/build/commands/tools/writer/generate-writer-document-contents.command.js +14 -0
  19. package/build/commands/tools/writer/get-writer-tool-config.command.js +11 -0
  20. package/build/commands/tools/writer/index.js +31 -0
  21. package/build/commands/tools/writer/update-writer-document-contents.command.js +18 -0
  22. package/build/commands/tools/writer/update-writer-document-outline.command.js +17 -0
  23. package/build/commands/tools/writer/writer-extend-text.command.js +18 -0
  24. package/build/commands/tools/writer/writer-fix-errors.command.js +18 -0
  25. package/build/commands/tools/writer/writer-generate-text.command.js +21 -0
  26. package/build/commands/tools/writer/writer-paraphrase.command.js +18 -0
  27. package/build/commands/tools/writer/writer-shorten-text.command.js +18 -0
  28. package/build/constants/errors/errors.js +117 -27
  29. package/build/constants/index.js +1 -0
  30. package/build/constants/order/enums/order-type.enum.js +1 -0
  31. package/build/constants/subscription/enums/subscription-action.enum.js +1 -0
  32. package/build/constants/subscription/enums/subscription-status.enum.js +3 -0
  33. package/build/constants/writer/enums/index.js +20 -0
  34. package/build/constants/writer/enums/writer-ai-action-pricing-type.enum.js +8 -0
  35. package/build/constants/writer/enums/writer-ai-action-type.enum.js +11 -0
  36. package/build/constants/writer/enums/writer-document-section-type.enum.js +9 -0
  37. package/build/constants/writer/enums/writer-document-stage.enum.js +14 -0
  38. package/build/constants/writer/index.js +17 -0
  39. package/build/helpers/index.js +1 -0
  40. package/build/helpers/writer/calculate-page-count.util.js +37 -0
  41. package/build/helpers/writer/calculate-writer-ai-action-price.util.js +16 -0
  42. package/build/helpers/writer/calculate-writer-content-generation-price.util.js +6 -0
  43. package/build/helpers/writer/index.js +19 -0
  44. package/build/models/tools/index.js +1 -0
  45. package/build/models/tools/writer/index.js +21 -0
  46. package/build/models/tools/writer/writer-ai-action.schema.js +26 -0
  47. package/build/models/tools/writer/writer-config.schema.js +11 -0
  48. package/build/models/tools/writer/writer-document-outline.schema.js +21 -0
  49. package/build/models/tools/writer/writer-document-type.schema.js +16 -0
  50. package/build/models/tools/writer/writer-document.schema.js +22 -0
  51. package/build/models/user-to-subscription.schema.js +1 -0
  52. package/commands/subscription/downgrade-subscription.command.ts +50 -0
  53. package/commands/subscription/index.ts +1 -0
  54. package/commands/tools/index.ts +1 -0
  55. package/commands/tools/writer/create-writer-document.command.ts +16 -0
  56. package/commands/tools/writer/delete-all-writer-documents.command.ts +6 -0
  57. package/commands/tools/writer/delete-writer-document-by-uuid.command.ts +11 -0
  58. package/commands/tools/writer/export-writer-document-as-docx.command.ts +15 -0
  59. package/commands/tools/writer/find-writer-document-by-uuid.command.ts +14 -0
  60. package/commands/tools/writer/find-writer-documents.command.ts +18 -0
  61. package/commands/tools/writer/generate-writer-document-contents.command.ts +14 -0
  62. package/commands/tools/writer/get-writer-tool-config.command.ts +10 -0
  63. package/commands/tools/writer/index.ts +15 -0
  64. package/commands/tools/writer/update-writer-document-contents.command.ts +20 -0
  65. package/commands/tools/writer/update-writer-document-outline.command.ts +19 -0
  66. package/commands/tools/writer/writer-extend-text.command.ts +20 -0
  67. package/commands/tools/writer/writer-fix-errors.command.ts +20 -0
  68. package/commands/tools/writer/writer-generate-text.command.ts +23 -0
  69. package/commands/tools/writer/writer-paraphrase.command.ts +20 -0
  70. package/commands/tools/writer/writer-shorten-text.command.ts +20 -0
  71. package/constants/errors/errors.ts +117 -27
  72. package/constants/index.ts +1 -0
  73. package/constants/order/enums/order-type.enum.ts +1 -0
  74. package/constants/subscription/enums/subscription-action.enum.ts +1 -0
  75. package/constants/subscription/enums/subscription-status.enum.ts +3 -0
  76. package/constants/writer/enums/index.ts +4 -0
  77. package/constants/writer/enums/writer-ai-action-pricing-type.enum.ts +4 -0
  78. package/constants/writer/enums/writer-ai-action-type.enum.ts +7 -0
  79. package/constants/writer/enums/writer-document-section-type.enum.ts +5 -0
  80. package/constants/writer/enums/writer-document-stage.enum.ts +13 -0
  81. package/constants/writer/index.ts +1 -0
  82. package/helpers/index.ts +1 -0
  83. package/helpers/writer/calculate-page-count.util.ts +46 -0
  84. package/helpers/writer/calculate-writer-ai-action-price.util.ts +20 -0
  85. package/helpers/writer/calculate-writer-content-generation-price.util.ts +3 -0
  86. package/helpers/writer/index.ts +3 -0
  87. package/models/tools/index.ts +1 -0
  88. package/models/tools/writer/index.ts +5 -0
  89. package/models/tools/writer/writer-ai-action.schema.ts +27 -0
  90. package/models/tools/writer/writer-config.schema.ts +10 -0
  91. package/models/tools/writer/writer-document-outline.schema.ts +28 -0
  92. package/models/tools/writer/writer-document-type.schema.ts +15 -0
  93. package/models/tools/writer/writer-document.schema.ts +21 -0
  94. package/models/user-to-subscription.schema.ts +1 -0
  95. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ import { WRITER_AI_ACTION_PRICING_TYPE } from '../../constants';
2
+ import { WriterAiActionPricingRules } from '../../models';
3
+
4
+ export function calculateWriterAiActionPrice(
5
+ pricingRules: WriterAiActionPricingRules,
6
+ selectionText: string,
7
+ ): number {
8
+ switch (pricingRules.type) {
9
+ case WRITER_AI_ACTION_PRICING_TYPE.PER_CHARACTER:
10
+ const characterCount = selectionText.length;
11
+ const price = characterCount * pricingRules.price;
12
+ return Math.max(1, Math.ceil(price));
13
+
14
+ case WRITER_AI_ACTION_PRICING_TYPE.FLAT:
15
+ return Math.max(1, Math.ceil(pricingRules.price));
16
+
17
+ default:
18
+ throw new Error(`Unknown pricing type`);
19
+ }
20
+ }
@@ -0,0 +1,3 @@
1
+ export function calculateWriterContentGenerationPrice(pages: number): number {
2
+ return Math.max(1, pages);
3
+ }
@@ -0,0 +1,3 @@
1
+ export * from './calculate-writer-ai-action-price.util';
2
+ export * from './calculate-writer-content-generation-price.util';
3
+ export * from './calculate-page-count.util';
@@ -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,10 @@
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
+ maxPromptLength: z.number(),
7
+ documentTypes: z.array(WriterDocumentTypeSchema),
8
+ aiActions: z.array(WriterAiActionSchema),
9
+ });
10
+ 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,15 @@
1
+ import { z } from 'zod';
2
+ import { IconVariantsSchema } from '../../icon-variants.schema';
3
+
4
+ export const WriterDocumentTypeSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ title: z.string(),
7
+ icons: IconVariantsSchema,
8
+ order: z.number(),
9
+ minPages: z.number(),
10
+ maxPages: z.number(),
11
+ pageRange: z.array(z.number()),
12
+ createdAt: z.date(),
13
+ updatedAt: z.date(),
14
+ });
15
+ 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().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
+ pages: z.number(),
17
+ createdAt: z.date(),
18
+ updatedAt: z.date(),
19
+ completedAt: z.date().nullable(),
20
+ });
21
+ export type WriterDocument = z.infer<typeof WriterDocumentSchema>;
@@ -9,6 +9,7 @@ export const UserToSubscriptionSchema = z.object({
9
9
  active: z.boolean(),
10
10
  tokenBalance: z.number(),
11
11
  status: z.string(),
12
+ startDate: z.date().nullable(),
12
13
  endDate: z.date().nullable(),
13
14
  marks: z.array(z.string()),
14
15
  intervalEndDate: z.date().nullable(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.7.39",
3
+ "version": "0.7.40-texteditor",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",