@purpleschool/gptbot 0.7.47 → 0.7.49

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 (97) hide show
  1. package/api/controllers/http/index.ts +1 -0
  2. package/api/controllers/http/writer.ts +20 -0
  3. package/build/api/controllers/http/index.js +1 -0
  4. package/build/api/controllers/http/writer.js +22 -0
  5. package/build/commands/chat/check-limit.command.js +4 -0
  6. package/build/commands/chat/create-chat.command.js +1 -3
  7. package/build/commands/chat/find-chat-by-uuid.command.js +1 -1
  8. package/build/commands/chat/find-chats.command.js +1 -3
  9. package/build/commands/chat/get-last-active-chat-command.js +1 -1
  10. package/build/commands/folder/find-folder-by-uuid-with-chats.command.js +1 -3
  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 +115 -30
  29. package/build/constants/index.js +1 -0
  30. package/build/constants/writer/enums/index.js +20 -0
  31. package/build/constants/writer/enums/writer-ai-action-pricing-type.enum.js +8 -0
  32. package/build/constants/writer/enums/writer-ai-action-type.enum.js +11 -0
  33. package/build/constants/writer/enums/writer-document-section-type.enum.js +9 -0
  34. package/build/constants/writer/enums/writer-document-stage.enum.js +14 -0
  35. package/build/constants/writer/index.js +17 -0
  36. package/build/helpers/index.js +1 -0
  37. package/build/helpers/writer/calculate-page-count.util.js +37 -0
  38. package/build/helpers/writer/calculate-writer-ai-action-price.util.js +16 -0
  39. package/build/helpers/writer/calculate-writer-content-generation-price.util.js +6 -0
  40. package/build/helpers/writer/index.js +19 -0
  41. package/build/models/chat-with-messages.schema.js +9 -0
  42. package/build/models/chat.schema.js +0 -2
  43. package/build/models/index.js +1 -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/commands/chat/check-limit.command.ts +4 -0
  52. package/commands/chat/create-chat.command.ts +2 -4
  53. package/commands/chat/find-chat-by-uuid.command.ts +2 -2
  54. package/commands/chat/find-chats.command.ts +2 -6
  55. package/commands/chat/get-last-active-chat-command.ts +2 -2
  56. package/commands/folder/find-folder-by-uuid-with-chats.command.ts +2 -6
  57. package/commands/tools/index.ts +1 -0
  58. package/commands/tools/writer/create-writer-document.command.ts +16 -0
  59. package/commands/tools/writer/delete-all-writer-documents.command.ts +6 -0
  60. package/commands/tools/writer/delete-writer-document-by-uuid.command.ts +11 -0
  61. package/commands/tools/writer/export-writer-document-as-docx.command.ts +15 -0
  62. package/commands/tools/writer/find-writer-document-by-uuid.command.ts +14 -0
  63. package/commands/tools/writer/find-writer-documents.command.ts +18 -0
  64. package/commands/tools/writer/generate-writer-document-contents.command.ts +14 -0
  65. package/commands/tools/writer/get-writer-tool-config.command.ts +10 -0
  66. package/commands/tools/writer/index.ts +15 -0
  67. package/commands/tools/writer/update-writer-document-contents.command.ts +20 -0
  68. package/commands/tools/writer/update-writer-document-outline.command.ts +19 -0
  69. package/commands/tools/writer/writer-extend-text.command.ts +20 -0
  70. package/commands/tools/writer/writer-fix-errors.command.ts +20 -0
  71. package/commands/tools/writer/writer-generate-text.command.ts +23 -0
  72. package/commands/tools/writer/writer-paraphrase.command.ts +20 -0
  73. package/commands/tools/writer/writer-shorten-text.command.ts +20 -0
  74. package/constants/errors/errors.ts +115 -30
  75. package/constants/index.ts +1 -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/chat-with-messages.schema.ts +7 -0
  88. package/models/chat.schema.ts +0 -2
  89. package/models/index.ts +1 -0
  90. package/models/tools/index.ts +1 -0
  91. package/models/tools/writer/index.ts +5 -0
  92. package/models/tools/writer/writer-ai-action.schema.ts +27 -0
  93. package/models/tools/writer/writer-config.schema.ts +10 -0
  94. package/models/tools/writer/writer-document-outline.schema.ts +28 -0
  95. package/models/tools/writer/writer-document-type.schema.ts +15 -0
  96. package/models/tools/writer/writer-document.schema.ts +21 -0
  97. package/package.json +1 -1
@@ -1741,78 +1741,118 @@ exports.ERRORS = {
1741
1741
  message: 'Ошибка при обновлении ежедневного стрика',
1742
1742
  httpCode: 500,
1743
1743
  },
1744
- ACCOUNT_DELETE_ERROR: {
1744
+ WRITER_CONFIG_ERROR: {
1745
1745
  code: 'A362',
1746
+ message: 'Произошла ошибка при получении конфигурации Writer',
1747
+ httpCode: 500,
1748
+ },
1749
+ WRITER_CREATE_DOCUMENT_ERROR: {
1750
+ code: 'A363',
1751
+ message: 'Произошла ошибка при создании документа',
1752
+ httpCode: 500,
1753
+ },
1754
+ WRITER_DOCUMENT_FIND_ERROR: {
1755
+ code: 'A364',
1756
+ message: 'Произошла ошибка при поиске документа',
1757
+ httpCode: 500,
1758
+ },
1759
+ WRITER_DOCUMENTS_FIND_ERROR: {
1760
+ code: 'A365',
1761
+ message: 'Произошла ошибка при поиске документов',
1762
+ httpCode: 500,
1763
+ },
1764
+ WRITER_DELETE_DOCUMENT_ERROR: {
1765
+ code: 'A366',
1766
+ message: 'Произошла ошибка при удалении документа',
1767
+ httpCode: 500,
1768
+ },
1769
+ WRITER_DELETE_ALL_DOCUMENTS_ERROR: {
1770
+ code: 'A367',
1771
+ message: 'Произошла ошибка при удалении всех документов пользователя',
1772
+ httpCode: 500,
1773
+ },
1774
+ WRITER_UPDATE_DOCUMENT_OUTLINE_ERROR: {
1775
+ code: 'A368',
1776
+ message: 'Произошла ошибка при обновлении структуры документа',
1777
+ httpCode: 500,
1778
+ },
1779
+ WRITER_GENERATE_DOCUMENT_CONTENTS_ERROR: {
1780
+ code: 'A369',
1781
+ message: 'Произошла ошибка при генерации содержимого документа',
1782
+ httpCode: 500,
1783
+ },
1784
+ ACCOUNT_DELETE_ERROR: {
1785
+ code: 'A370',
1746
1786
  message: 'Аккаунт не был удалён',
1747
1787
  httpCode: 500,
1748
1788
  },
1749
1789
  ACCOUNT_DELETED: {
1750
- code: 'A363',
1790
+ code: 'A371',
1751
1791
  message: 'Операция невозможна, аккаунт был удалён',
1752
1792
  httpCode: 400,
1753
1793
  },
1754
1794
  TELEGRAM_PROFILE_DELETE_ERROR: {
1755
- code: 'A364',
1795
+ code: 'A372',
1756
1796
  message: 'Произошла ошибка при удалении Telegram профиля',
1757
1797
  httpCode: 500,
1758
1798
  },
1759
1799
  TOOL_NOT_FOUND_ERROR: {
1760
- code: 'A365',
1800
+ code: 'A373',
1761
1801
  message: 'Инструмент не найден',
1762
1802
  httpCode: 404,
1763
1803
  },
1764
1804
  ORDER_CHECK_FIRST_PURCHASE_ERROR: {
1765
- code: 'A366',
1805
+ code: 'A374',
1766
1806
  message: 'Произошла ошибка при проверке первой покупки',
1767
1807
  httpCode: 500,
1768
1808
  },
1769
1809
  ORDER_CURRENT_ORDER_NOT_FOUND_ERROR: {
1770
- code: 'A367',
1810
+ code: 'A375',
1771
1811
  message: 'Текущий заказ не найден',
1772
1812
  httpCode: 404,
1773
1813
  },
1774
1814
  ORDER_GET_USER_ORDERS_ERROR: {
1775
- code: 'A368',
1815
+ code: 'A376',
1776
1816
  message: 'Произошла ошибка при получении заказов пользователя',
1777
1817
  httpCode: 500,
1778
1818
  },
1779
1819
  ORDER_NO_SUBSCRIPTION_ID_OR_PRODUCT_ID_PROVIDED_ERROR: {
1780
- code: 'A369',
1820
+ code: 'A377',
1781
1821
  message: 'Не указан subscriptionId или productId',
1782
1822
  httpCode: 400,
1783
1823
  },
1784
1824
  FILE_TO_MD_FORMAT_ERROR: {
1785
- code: 'A370',
1825
+ code: 'A378',
1786
1826
  message: 'Неверный формат файла, варианты: .xlsx, .docx, .pdf',
1787
1827
  httpCode: 400,
1788
1828
  },
1789
1829
  FILE_TO_MD_ERROR: {
1790
- code: 'A371',
1830
+ code: 'A379',
1791
1831
  message: 'Произошла ошибка при конвертации файла в markdown',
1792
1832
  httpCode: 500,
1793
1833
  },
1794
1834
  FILE_TO_MD_CONVERT_ERROR: {
1795
- code: 'A372',
1835
+ code: 'A380',
1796
1836
  message: 'Не получилось конвертировать файл в markdown, возможно файл пуст, поврежден или невалиден',
1797
1837
  httpCode: 400,
1798
1838
  },
1799
1839
  IMAGE_EDITOR_MODEL_INACTIVE: {
1800
- code: 'A373',
1840
+ code: 'A381',
1801
1841
  message: 'Модель редактирования картинок архивирована и недоступна для пользования',
1802
1842
  httpCode: 403,
1803
1843
  },
1804
1844
  TTS_MODEL_INACTIVE: {
1805
- code: 'A374',
1845
+ code: 'A382',
1806
1846
  message: 'Модель генерации текста в голос архивирована и недоступна для пользования',
1807
1847
  httpCode: 403,
1808
1848
  },
1809
1849
  STT_MODEL_INACTIVE: {
1810
- code: 'A375',
1850
+ code: 'A383',
1811
1851
  message: 'Модель генерации голоса в текст архивирована и недоступна для пользования',
1812
1852
  httpCode: 403,
1813
1853
  },
1814
1854
  VIDEO_MODEL_INACTIVE: {
1815
- code: 'A376',
1855
+ code: 'A384',
1816
1856
  message: 'Модель генерации видео архивирована и недоступна для пользования',
1817
1857
  httpCode: 403,
1818
1858
  },
@@ -1822,17 +1862,17 @@ exports.ERRORS = {
1822
1862
  httpCode: 500,
1823
1863
  },
1824
1864
  VK_GET_ACCESS_TOKEN_ERROR: {
1825
- code: 'A377',
1865
+ code: 'A385',
1826
1866
  message: 'Ошибка при получении кода доступа от ВК',
1827
1867
  httpCode: 500,
1828
1868
  },
1829
1869
  VK_GET_USER_INFO_ERROR: {
1830
- code: 'A378',
1870
+ code: 'A386',
1831
1871
  message: 'Ошибка при получении данных об юзере из ВК',
1832
1872
  httpCode: 500,
1833
1873
  },
1834
1874
  USER_NOT_VK_ID: {
1835
- code: 'A379',
1875
+ code: 'A387',
1836
1876
  message: 'Произошла ошибка при поиске пользователя по vkId',
1837
1877
  httpCode: 500,
1838
1878
  },
@@ -1842,12 +1882,12 @@ exports.ERRORS = {
1842
1882
  httpCode: 409,
1843
1883
  },
1844
1884
  YANDEX_GET_USER_INFO_ERROR: {
1845
- code: 'A380',
1885
+ code: 'A388',
1846
1886
  message: 'Ошибка при получении данных об юзере из Яндекса',
1847
1887
  httpCode: 500,
1848
1888
  },
1849
1889
  USER_NOT_YANDEX_ID: {
1850
- code: 'A381',
1890
+ code: 'A389',
1851
1891
  message: 'Произошла ошибка при поиске пользователя по yandexId',
1852
1892
  httpCode: 500,
1853
1893
  },
@@ -1857,52 +1897,97 @@ exports.ERRORS = {
1857
1897
  httpCode: 409,
1858
1898
  },
1859
1899
  PDF_TO_MD_CONVERT_ERROR: {
1860
- code: 'A382',
1900
+ code: 'A390',
1861
1901
  message: 'Не получилось конвертировать pdf в markdown, возможно вы прикрепили скан или картинку, не имеющую текста',
1862
1902
  httpCode: 400,
1863
1903
  },
1864
1904
  SUBSCRIPTION_DOWNGRADE_INVALID: {
1865
- code: 'A383',
1905
+ code: 'A391',
1866
1906
  message: 'Невозможно понизить подписку до указанного уровня',
1867
1907
  httpCode: 400,
1868
1908
  },
1869
1909
  SUBSCRIPTION_DOWNGRADE_ERROR: {
1870
- code: 'A384',
1910
+ code: 'A392',
1871
1911
  message: 'Не удалось понизить подписку',
1872
1912
  httpCode: 500,
1873
1913
  },
1874
1914
  SUBSCRIPTIONS_GET_DOWNGRADE_ERROR: {
1875
- code: 'A385',
1915
+ code: 'A393',
1876
1916
  message: 'Не удалось получить список возможных понижений для подписок',
1877
1917
  httpCode: 500,
1878
1918
  },
1919
+ WRITER_PARAPHRASE_ERROR: {
1920
+ code: 'A394',
1921
+ message: 'Произошла ошибка при перефразировании текста',
1922
+ httpCode: 500,
1923
+ },
1924
+ WRITER_EXTEND_TEXT_ERROR: {
1925
+ code: 'A395',
1926
+ message: 'Произошла ошибка при расширении текста',
1927
+ httpCode: 500,
1928
+ },
1929
+ WRITER_SHORTEN_TEXT_ERROR: {
1930
+ code: 'A396',
1931
+ message: 'Произошла ошибка при сокращении текста',
1932
+ httpCode: 500,
1933
+ },
1934
+ WRITER_FIX_ERRORS_ERROR: {
1935
+ code: 'A397',
1936
+ message: 'Произошла ошибка при исправлении ошибок в тексте',
1937
+ httpCode: 500,
1938
+ },
1939
+ WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: {
1940
+ code: 'A398',
1941
+ message: 'Произошла ошибка при обновлении содержимого документа',
1942
+ httpCode: 500,
1943
+ },
1944
+ WRITER_GENERATE_TEXT_ERROR: {
1945
+ code: 'A399',
1946
+ message: 'Произошла ошибка при генерации текста',
1947
+ httpCode: 500,
1948
+ },
1949
+ WRITER_EXPORT_DOCX_ERROR: {
1950
+ code: 'A400',
1951
+ message: 'Произошла ошибка при экспорте документа в DOCX',
1952
+ httpCode: 500,
1953
+ },
1954
+ AI_MODEL_SUGGESTIONS_INVALID_PROMPT_LENGTH: {
1955
+ code: 'A401',
1956
+ message: 'Промпт не подходит для генерации предложений',
1957
+ httpCode: 400,
1958
+ },
1959
+ AI_MODEL_SUGGESTIONS_GENERATION_ERROR: {
1960
+ code: 'A402',
1961
+ message: 'Ошибка генерации предложения',
1962
+ httpCode: 500,
1963
+ },
1879
1964
  VK_STATE_ERROR: {
1880
- code: 'A388',
1965
+ code: 'A403',
1881
1966
  message: 'Получен неверный state в ответе от API ВК',
1882
1967
  httpCode: 400,
1883
1968
  },
1884
1969
  YANDEX_GET_ACCESS_TOKEN_ERROR: {
1885
- code: 'A389',
1970
+ code: 'A404',
1886
1971
  message: 'Ошибка при получении кода доступа от Яндекса',
1887
1972
  httpCode: 500,
1888
1973
  },
1889
1974
  KIE_MIDJOURNEY_TASK_ERROR: {
1890
- code: 'A390',
1975
+ code: 'A405',
1891
1976
  message: 'Произошла ошибка при получении задачи Midjourney',
1892
1977
  httpCode: 500,
1893
1978
  },
1894
1979
  KIE_MIDJOURNEY_GENERATION_ERROR: {
1895
- code: 'A391',
1980
+ code: 'A406',
1896
1981
  message: 'Произошла ошибка при генерации видео от Midjourney',
1897
1982
  httpCode: 500,
1898
1983
  },
1899
1984
  KIE_MIDJOURNEY_NO_RESPONSE: {
1900
- code: 'A392',
1985
+ code: 'A407',
1901
1986
  message: 'Нет ответа от Midjourney, попробуйте позже',
1902
1987
  httpCode: 503,
1903
1988
  },
1904
1989
  KIE_CONTENT_POLICY_VIOLATION: {
1905
- code: 'A393',
1990
+ code: 'A408',
1906
1991
  message: 'Запрос был отклонен, т.к. может не соответствовать политике безопасности сервиса',
1907
1992
  httpCode: 400,
1908
1993
  },
@@ -47,6 +47,7 @@ __exportStar(require("./promocode"), exports);
47
47
  __exportStar(require("./ui-notification"), exports);
48
48
  __exportStar(require("./review"), exports);
49
49
  __exportStar(require("./tool-video"), exports);
50
+ __exportStar(require("./writer"), exports);
50
51
  __exportStar(require("./tool-image-editor"), exports);
51
52
  __exportStar(require("./feedback"), exports);
52
53
  __exportStar(require("./daily-streak"), exports);
@@ -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-document-section-type.enum"), exports);
18
+ __exportStar(require("./writer-document-stage.enum"), exports);
19
+ __exportStar(require("./writer-ai-action-pricing-type.enum"), exports);
20
+ __exportStar(require("./writer-ai-action-type.enum"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITER_AI_ACTION_PRICING_TYPE = void 0;
4
+ var WRITER_AI_ACTION_PRICING_TYPE;
5
+ (function (WRITER_AI_ACTION_PRICING_TYPE) {
6
+ WRITER_AI_ACTION_PRICING_TYPE["PER_CHARACTER"] = "PER_CHARACTER";
7
+ WRITER_AI_ACTION_PRICING_TYPE["FLAT"] = "FLAT";
8
+ })(WRITER_AI_ACTION_PRICING_TYPE || (exports.WRITER_AI_ACTION_PRICING_TYPE = WRITER_AI_ACTION_PRICING_TYPE = {}));
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITER_AI_ACTION_TYPE = void 0;
4
+ var WRITER_AI_ACTION_TYPE;
5
+ (function (WRITER_AI_ACTION_TYPE) {
6
+ WRITER_AI_ACTION_TYPE["PARAPHRASE"] = "PARAPHRASE";
7
+ WRITER_AI_ACTION_TYPE["EXTEND_TEXT"] = "EXTEND_TEXT";
8
+ WRITER_AI_ACTION_TYPE["SHORTEN_TEXT"] = "SHORTEN_TEXT";
9
+ WRITER_AI_ACTION_TYPE["GENERATE_TEXT"] = "GENERATE_TEXT";
10
+ WRITER_AI_ACTION_TYPE["FIX_ERRORS"] = "FIX_ERRORS";
11
+ })(WRITER_AI_ACTION_TYPE || (exports.WRITER_AI_ACTION_TYPE = WRITER_AI_ACTION_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,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("./enums"), exports);
@@ -19,3 +19,4 @@ __exportStar(require("./stt"), exports);
19
19
  __exportStar(require("./subscription"), exports);
20
20
  __exportStar(require("./tts"), exports);
21
21
  __exportStar(require("./video"), exports);
22
+ __exportStar(require("./writer"), exports);
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CHARACTERS_PER_PAGE = void 0;
4
+ exports.pagesToCharacters = pagesToCharacters;
5
+ exports.charactersToPages = charactersToPages;
6
+ const WORD_FONT_SIZE_PT = 14;
7
+ const WORD_LINE_SPACING = 1.5;
8
+ const A4_WIDTH_MM = 210;
9
+ const A4_HEIGHT_MM = 297;
10
+ const MARGIN_TOP_MM = 20;
11
+ const MARGIN_BOTTOM_MM = 20;
12
+ const MARGIN_LEFT_MM = 30;
13
+ const MARGIN_RIGHT_MM = 10;
14
+ const FIRST_LINE_INDENT_MM = 12.5;
15
+ const MM_PER_POINT = 0.3527777778;
16
+ const TEXT_WIDTH_MM = A4_WIDTH_MM - MARGIN_LEFT_MM - MARGIN_RIGHT_MM;
17
+ const TEXT_HEIGHT_MM = A4_HEIGHT_MM - MARGIN_TOP_MM - MARGIN_BOTTOM_MM;
18
+ const LINE_HEIGHT_MM = WORD_FONT_SIZE_PT * WORD_LINE_SPACING * MM_PER_POINT;
19
+ const LINES_PER_PAGE = Math.floor(TEXT_HEIGHT_MM / LINE_HEIGHT_MM);
20
+ const AVG_CHAR_WIDTH_EM = 0.58;
21
+ const AVG_CHAR_WIDTH_MM = WORD_FONT_SIZE_PT * AVG_CHAR_WIDTH_EM * MM_PER_POINT;
22
+ const CHARS_PER_LINE = Math.floor(TEXT_WIDTH_MM / AVG_CHAR_WIDTH_MM);
23
+ const AVG_PARAGRAPHS_PER_PAGE = 4; // average paragraph count across typical student papers
24
+ const INDENT_CHARS_LOSS = Math.round((FIRST_LINE_INDENT_MM / AVG_CHAR_WIDTH_MM) * AVG_PARAGRAPHS_PER_PAGE);
25
+ const LAYOUT_FUDGE_FACTOR = 0.96;
26
+ exports.CHARACTERS_PER_PAGE = Math.round((LINES_PER_PAGE * CHARS_PER_LINE - INDENT_CHARS_LOSS) * LAYOUT_FUDGE_FACTOR);
27
+ function pagesToCharacters(pages) {
28
+ if (!Number.isFinite(pages) || pages <= 0)
29
+ return 0;
30
+ return Math.max(0, Math.round(pages * exports.CHARACTERS_PER_PAGE));
31
+ }
32
+ function charactersToPages(characters) {
33
+ if (!Number.isFinite(characters) || characters <= 0)
34
+ return 0;
35
+ const raw = characters / exports.CHARACTERS_PER_PAGE;
36
+ return Math.max(0, Math.ceil(raw));
37
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateWriterAiActionPrice = calculateWriterAiActionPrice;
4
+ const constants_1 = require("../../constants");
5
+ function calculateWriterAiActionPrice(pricingRules, selectionText) {
6
+ switch (pricingRules.type) {
7
+ case constants_1.WRITER_AI_ACTION_PRICING_TYPE.PER_CHARACTER:
8
+ const characterCount = selectionText.length;
9
+ const price = characterCount * pricingRules.price;
10
+ return Math.max(1, Math.ceil(price));
11
+ case constants_1.WRITER_AI_ACTION_PRICING_TYPE.FLAT:
12
+ return Math.max(1, Math.ceil(pricingRules.price));
13
+ default:
14
+ throw new Error(`Unknown pricing type`);
15
+ }
16
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateWriterContentGenerationPrice = calculateWriterContentGenerationPrice;
4
+ function calculateWriterContentGenerationPrice(pages) {
5
+ return Math.max(1, pages);
6
+ }
@@ -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("./calculate-writer-ai-action-price.util"), exports);
18
+ __exportStar(require("./calculate-writer-content-generation-price.util"), exports);
19
+ __exportStar(require("./calculate-page-count.util"), exports);
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatWithMessagesSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const chat_schema_1 = require("./chat.schema");
6
+ const message_schema_1 = require("./message.schema");
7
+ exports.ChatWithMessagesSchema = chat_schema_1.ChatSchema.extend({
8
+ messages: zod_1.z.array(message_schema_1.MessageSchema),
9
+ });
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChatSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const constants_1 = require("../constants");
6
- const message_schema_1 = require("./message.schema");
7
6
  exports.ChatSchema = zod_1.z.object({
8
7
  uuid: zod_1.z.string().uuid(),
9
8
  userId: zod_1.z.nullable(zod_1.z.string().uuid()),
@@ -12,7 +11,6 @@ exports.ChatSchema = zod_1.z.object({
12
11
  aIModelId: zod_1.z.string().uuid(),
13
12
  title: zod_1.z.string(),
14
13
  chatStatus: zod_1.z.enum(Object.values(constants_1.CHAT_STATUS_ENUM)),
15
- messages: zod_1.z.array(message_schema_1.MessageSchema),
16
14
  folderId: zod_1.z.string().nullable(),
17
15
  createdAt: zod_1.z.date(),
18
16
  updatedAt: zod_1.z.date(),
@@ -20,6 +20,7 @@ __exportStar(require("./ai-model-formatted.schema"), exports);
20
20
  __exportStar(require("./ai-model.schema"), exports);
21
21
  __exportStar(require("./ai-vendor.schema"), exports);
22
22
  __exportStar(require("./category.schema"), exports);
23
+ __exportStar(require("./chat-with-messages.schema"), exports);
23
24
  __exportStar(require("./chat.schema"), exports);
24
25
  __exportStar(require("./cloud-payments-receipt.schema"), exports);
25
26
  __exportStar(require("./course-author.schema"), exports);
@@ -19,4 +19,5 @@ __exportStar(require("./paraphrase"), exports);
19
19
  __exportStar(require("./stt"), exports);
20
20
  __exportStar(require("./tts"), exports);
21
21
  __exportStar(require("./video"), exports);
22
+ __exportStar(require("./writer"), exports);
22
23
  __exportStar(require("./image-editor"), 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-action.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.WriterAiActionSchema = exports.WriterAiActionPricingRulesSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ exports.WriterAiActionPricingRulesSchema = zod_1.z.discriminatedUnion('type', [
7
+ zod_1.z.object({
8
+ type: zod_1.z.literal(constants_1.WRITER_AI_ACTION_PRICING_TYPE.PER_CHARACTER),
9
+ price: zod_1.z.number(),
10
+ }),
11
+ zod_1.z.object({
12
+ type: zod_1.z.literal(constants_1.WRITER_AI_ACTION_PRICING_TYPE.FLAT),
13
+ price: zod_1.z.number(),
14
+ }),
15
+ ]);
16
+ exports.WriterAiActionSchema = zod_1.z.object({
17
+ uuid: zod_1.z.string(),
18
+ type: zod_1.z.nativeEnum(constants_1.WRITER_AI_ACTION_TYPE),
19
+ pricingRules: exports.WriterAiActionPricingRulesSchema,
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,11 @@
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_action_schema_1 = require("./writer-ai-action.schema");
7
+ exports.WriterConfigSchema = zod_1.z.object({
8
+ maxPromptLength: zod_1.z.number(),
9
+ documentTypes: zod_1.z.array(writer_document_type_schema_1.WriterDocumentTypeSchema),
10
+ aiActions: zod_1.z.array(writer_ai_action_schema_1.WriterAiActionSchema),
11
+ });
@@ -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,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriterDocumentTypeSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const icon_variants_schema_1 = require("../../icon-variants.schema");
6
+ exports.WriterDocumentTypeSchema = zod_1.z.object({
7
+ uuid: zod_1.z.string().uuid(),
8
+ title: zod_1.z.string(),
9
+ icons: icon_variants_schema_1.IconVariantsSchema,
10
+ order: zod_1.z.number(),
11
+ minPages: zod_1.z.number(),
12
+ maxPages: zod_1.z.number(),
13
+ pageRange: zod_1.z.array(zod_1.z.number()),
14
+ createdAt: zod_1.z.date(),
15
+ updatedAt: zod_1.z.date(),
16
+ });
@@ -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 constants_1 = require("../../../constants");
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(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
+ pages: zod_1.z.number(),
19
+ createdAt: zod_1.z.date(),
20
+ updatedAt: zod_1.z.date(),
21
+ completedAt: zod_1.z.date().nullable(),
22
+ });
@@ -4,6 +4,10 @@ export namespace CheckLimitCommand {
4
4
  export const ResponseSchema = z.object({
5
5
  data: z.object({
6
6
  totalTokenBalance: z.number(),
7
+ tokenBonusBalance: z.number(),
8
+ subscriptionBalance: z.number(),
9
+ productBalance: z.number(),
10
+ referralBonusBalance: z.number(),
7
11
  }),
8
12
  });
9
13
  export type Response = z.infer<typeof ResponseSchema>;