@purpleschool/gptbot 0.7.2 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/api/controllers/http/index.ts +1 -0
  2. package/api/controllers/http/video.ts +14 -0
  3. package/build/api/controllers/http/index.js +1 -0
  4. package/build/api/controllers/http/video.js +16 -0
  5. package/build/commands/tools/index.js +1 -0
  6. package/build/commands/tools/video/delete-all-video-jobs.command.js +8 -0
  7. package/build/commands/tools/video/delete-video-job-by-uuid.command.js +11 -0
  8. package/build/commands/tools/video/find-video-job-by-uuid.command.js +14 -0
  9. package/build/commands/tools/video/find-video-jobs.command.js +18 -0
  10. package/build/commands/tools/video/get-video-tool-config.command.js +11 -0
  11. package/build/commands/tools/video/index.js +25 -0
  12. package/build/commands/tools/video/retry-video-job.command.js +14 -0
  13. package/build/commands/tools/video/set-reaction-to-video-job.command.js +18 -0
  14. package/build/commands/tools/video/update-video-job-title.command.js +17 -0
  15. package/build/commands/tools/video/video.command.js +19 -0
  16. package/build/constants/errors/errors.js +54 -0
  17. package/build/constants/index.js +1 -0
  18. package/build/constants/tool-video/enums/index.js +24 -0
  19. package/build/constants/tool-video/enums/veo-aspect-ratio.enum.js +8 -0
  20. package/build/constants/tool-video/enums/veo-audio-support.enum.js +8 -0
  21. package/build/constants/tool-video/enums/veo-input-modality.enum.js +8 -0
  22. package/build/constants/tool-video/enums/veo-job-params-type.enum.js +8 -0
  23. package/build/constants/tool-video/enums/veo-person-allow.enum.js +9 -0
  24. package/build/constants/tool-video/enums/video-model-type.enum.js +8 -0
  25. package/build/constants/tool-video/enums/video-resolution.enum.js +8 -0
  26. package/build/constants/tool-video/enums/video-strategy.enum.js +7 -0
  27. package/build/constants/tool-video/index.js +17 -0
  28. package/build/constants/tool-video/videoMaxDuration.js +4 -0
  29. package/build/helpers/index.js +1 -0
  30. package/build/helpers/video/calculate-video-price.helper.js +8 -0
  31. package/build/helpers/video/index.js +17 -0
  32. package/build/models/ai-model.schema.js +1 -0
  33. package/build/models/tools/index.js +1 -0
  34. package/build/models/tools/video/index.js +19 -0
  35. package/build/models/tools/video/video-config.schema.js +8 -0
  36. package/build/models/tools/video/video-job.schema.js +18 -0
  37. package/build/models/tools/video/video-model.schema.js +28 -0
  38. package/commands/tools/index.ts +1 -0
  39. package/commands/tools/video/delete-all-video-jobs.command.ts +6 -0
  40. package/commands/tools/video/delete-video-job-by-uuid.command.ts +11 -0
  41. package/commands/tools/video/find-video-job-by-uuid.command.ts +16 -0
  42. package/commands/tools/video/find-video-jobs.command.ts +18 -0
  43. package/commands/tools/video/get-video-tool-config.command.ts +10 -0
  44. package/commands/tools/video/index.ts +9 -0
  45. package/commands/tools/video/retry-video-job.command.ts +14 -0
  46. package/commands/tools/video/set-reaction-to-video-job.command.ts +20 -0
  47. package/commands/tools/video/update-video-job-title.command.ts +19 -0
  48. package/commands/tools/video/video.command.ts +20 -0
  49. package/constants/errors/errors.ts +54 -0
  50. package/constants/index.ts +1 -0
  51. package/constants/tool-video/enums/index.ts +8 -0
  52. package/constants/tool-video/enums/veo-aspect-ratio.enum.ts +4 -0
  53. package/constants/tool-video/enums/veo-audio-support.enum.ts +4 -0
  54. package/constants/tool-video/enums/veo-input-modality.enum.ts +4 -0
  55. package/constants/tool-video/enums/veo-job-params-type.enum.ts +4 -0
  56. package/constants/tool-video/enums/veo-person-allow.enum.ts +5 -0
  57. package/constants/tool-video/enums/video-model-type.enum.ts +4 -0
  58. package/constants/tool-video/enums/video-resolution.enum.ts +4 -0
  59. package/constants/tool-video/enums/video-strategy.enum.ts +3 -0
  60. package/constants/tool-video/index.ts +1 -0
  61. package/constants/tool-video/videoMaxDuration.ts +1 -0
  62. package/helpers/index.ts +1 -0
  63. package/helpers/video/calculate-video-price.helper.ts +6 -0
  64. package/helpers/video/index.ts +1 -0
  65. package/models/ai-model.schema.ts +1 -0
  66. package/models/tools/index.ts +1 -0
  67. package/models/tools/video/index.ts +3 -0
  68. package/models/tools/video/video-config.schema.ts +6 -0
  69. package/models/tools/video/video-job.schema.ts +21 -0
  70. package/models/tools/video/video-model.schema.ts +27 -0
  71. package/package.json +1 -1
@@ -42,3 +42,4 @@ export * from './prompt';
42
42
  export * from './folder';
43
43
  export * from './user-to-product';
44
44
  export * from './user-to-subscription';
45
+ export * from './video';
@@ -0,0 +1,14 @@
1
+ export const VIDEO_CONTROLLER_PRIVATE = 'private/tools/video' as const;
2
+ export const VIDEO_CONTROLLER_PUBLIC = 'public/tools/video' as const;
3
+
4
+ export const VIDEO_ROUTES = {
5
+ CONFIG: 'config',
6
+ EXECUTE: 'execute',
7
+ GET_JOBS: 'jobs',
8
+ GET_JOB: (uuid: string) => `jobs/${uuid}`,
9
+ UPDATE: (uuid: string) => `jobs/${uuid}`,
10
+ SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
11
+ DELETE: (uuid: string) => `jobs/${uuid}`,
12
+ DELETE_ALL: 'jobs',
13
+ RETRY: (uuid: string) => `jobs/${uuid}/retry`,
14
+ } as const;
@@ -58,3 +58,4 @@ __exportStar(require("./prompt"), exports);
58
58
  __exportStar(require("./folder"), exports);
59
59
  __exportStar(require("./user-to-product"), exports);
60
60
  __exportStar(require("./user-to-subscription"), exports);
61
+ __exportStar(require("./video"), exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VIDEO_ROUTES = exports.VIDEO_CONTROLLER_PUBLIC = exports.VIDEO_CONTROLLER_PRIVATE = void 0;
4
+ exports.VIDEO_CONTROLLER_PRIVATE = 'private/tools/video';
5
+ exports.VIDEO_CONTROLLER_PUBLIC = 'public/tools/video';
6
+ exports.VIDEO_ROUTES = {
7
+ CONFIG: 'config',
8
+ EXECUTE: 'execute',
9
+ GET_JOBS: 'jobs',
10
+ GET_JOB: (uuid) => `jobs/${uuid}`,
11
+ UPDATE: (uuid) => `jobs/${uuid}`,
12
+ SET_REACTION: (uuid) => `jobs/${uuid}/reaction`,
13
+ DELETE: (uuid) => `jobs/${uuid}`,
14
+ DELETE_ALL: 'jobs',
15
+ RETRY: (uuid) => `jobs/${uuid}/retry`,
16
+ };
@@ -18,3 +18,4 @@ __exportStar(require("./paraphrase"), exports);
18
18
  __exportStar(require("./stt"), exports);
19
19
  __exportStar(require("./tool"), exports);
20
20
  __exportStar(require("./tts"), exports);
21
+ __exportStar(require("./video"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteAllVideoJobsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ var DeleteAllVideoJobsCommand;
6
+ (function (DeleteAllVideoJobsCommand) {
7
+ DeleteAllVideoJobsCommand.ResponseSchema = zod_1.z.void();
8
+ })(DeleteAllVideoJobsCommand || (exports.DeleteAllVideoJobsCommand = DeleteAllVideoJobsCommand = {}));
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteVideoJobByUUIDCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ var DeleteVideoJobByUUIDCommand;
6
+ (function (DeleteVideoJobByUUIDCommand) {
7
+ DeleteVideoJobByUUIDCommand.RequestParamsSchema = zod_1.z.object({
8
+ uuid: zod_1.z.string().uuid(),
9
+ });
10
+ DeleteVideoJobByUUIDCommand.ResponseSchema = zod_1.z.void();
11
+ })(DeleteVideoJobByUUIDCommand || (exports.DeleteVideoJobByUUIDCommand = DeleteVideoJobByUUIDCommand = {}));
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindVideoJobByUUIDCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var FindVideoJobByUUIDCommand;
7
+ (function (FindVideoJobByUUIDCommand) {
8
+ FindVideoJobByUUIDCommand.RequestParamsSchema = models_1.ToolJobSchema.pick({
9
+ uuid: true,
10
+ });
11
+ FindVideoJobByUUIDCommand.ResponseSchema = zod_1.z.object({
12
+ data: models_1.VideoJobSchema,
13
+ });
14
+ })(FindVideoJobByUUIDCommand || (exports.FindVideoJobByUUIDCommand = FindVideoJobByUUIDCommand = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindVideoJobsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var FindVideoJobsCommand;
7
+ (function (FindVideoJobsCommand) {
8
+ FindVideoJobsCommand.RequestQuerySchema = zod_1.z.object({
9
+ limit: zod_1.z.coerce.number().min(1).optional(),
10
+ offset: zod_1.z.coerce.number().min(0).default(0).optional(),
11
+ title: zod_1.z.string().optional(),
12
+ });
13
+ FindVideoJobsCommand.ResponseSchema = zod_1.z.object({
14
+ data: zod_1.z.array(models_1.VideoJobSchema),
15
+ totalPages: zod_1.z.number(),
16
+ page: zod_1.z.number(),
17
+ });
18
+ })(FindVideoJobsCommand || (exports.FindVideoJobsCommand = FindVideoJobsCommand = {}));
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetVideoToolConfigCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var GetVideoToolConfigCommand;
7
+ (function (GetVideoToolConfigCommand) {
8
+ GetVideoToolConfigCommand.ResponseSchema = zod_1.z.object({
9
+ data: models_1.VideoConfigSchema,
10
+ });
11
+ })(GetVideoToolConfigCommand || (exports.GetVideoToolConfigCommand = GetVideoToolConfigCommand = {}));
@@ -0,0 +1,25 @@
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("./delete-all-video-jobs.command"), exports);
18
+ __exportStar(require("./delete-video-job-by-uuid.command"), exports);
19
+ __exportStar(require("./find-video-job-by-uuid.command"), exports);
20
+ __exportStar(require("./find-video-jobs.command"), exports);
21
+ __exportStar(require("./get-video-tool-config.command"), exports);
22
+ __exportStar(require("./retry-video-job.command"), exports);
23
+ __exportStar(require("./set-reaction-to-video-job.command"), exports);
24
+ __exportStar(require("./video.command"), exports);
25
+ __exportStar(require("./update-video-job-title.command"), exports);
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RetryVideoJobCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var RetryVideoJobCommand;
7
+ (function (RetryVideoJobCommand) {
8
+ RetryVideoJobCommand.RequestParamsSchema = zod_1.z.object({
9
+ uuid: zod_1.z.string().uuid(),
10
+ });
11
+ RetryVideoJobCommand.ResponseSchema = zod_1.z.object({
12
+ data: models_1.VideoJobSchema,
13
+ });
14
+ })(RetryVideoJobCommand || (exports.RetryVideoJobCommand = RetryVideoJobCommand = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetReactionToVideoJobCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ const constants_1 = require("../../../constants");
7
+ var SetReactionToVideoJobCommand;
8
+ (function (SetReactionToVideoJobCommand) {
9
+ SetReactionToVideoJobCommand.RequestSchema = zod_1.z.object({
10
+ reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
11
+ });
12
+ SetReactionToVideoJobCommand.RequestParamsSchema = zod_1.z.object({
13
+ uuid: zod_1.z.string().uuid(),
14
+ });
15
+ SetReactionToVideoJobCommand.ResponseSchema = zod_1.z.object({
16
+ data: models_1.VideoJobSchema,
17
+ });
18
+ })(SetReactionToVideoJobCommand || (exports.SetReactionToVideoJobCommand = SetReactionToVideoJobCommand = {}));
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateVideoJobTitleCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var UpdateVideoJobTitleCommand;
7
+ (function (UpdateVideoJobTitleCommand) {
8
+ UpdateVideoJobTitleCommand.RequestSchema = zod_1.z.object({
9
+ title: zod_1.z.string().min(1).max(40).trim(),
10
+ });
11
+ UpdateVideoJobTitleCommand.RequestParamsSchema = zod_1.z.object({
12
+ uuid: zod_1.z.string().uuid(),
13
+ });
14
+ UpdateVideoJobTitleCommand.ResponseSchema = zod_1.z.object({
15
+ data: models_1.VideoJobSchema,
16
+ });
17
+ })(UpdateVideoJobTitleCommand || (exports.UpdateVideoJobTitleCommand = UpdateVideoJobTitleCommand = {}));
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VideoCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var VideoCommand;
7
+ (function (VideoCommand) {
8
+ VideoCommand.RequestSchema = zod_1.z.object({
9
+ modelId: zod_1.z.string().uuid(),
10
+ prompt: zod_1.z.string(),
11
+ params: zod_1.z.object({
12
+ imageUrls: zod_1.z.array(zod_1.z.string()).optional(),
13
+ duration: zod_1.z.number(),
14
+ }),
15
+ });
16
+ VideoCommand.ResponseSchema = zod_1.z.object({
17
+ data: models_1.ToolJobSchema,
18
+ });
19
+ })(VideoCommand || (exports.VideoCommand = VideoCommand = {}));
@@ -1508,4 +1508,58 @@ exports.ERRORS = {
1508
1508
  message: 'Произошла ошибка при загрузке объекта из хранилища',
1509
1509
  httpCode: 500,
1510
1510
  },
1511
+ VIDEO_CONFIG_ERROR: {
1512
+ code: 'A323',
1513
+ message: 'Произошла ошибка при получении конфигурации инструмента для генерации видео',
1514
+ httpCode: 500,
1515
+ },
1516
+ VIDEO_SEND_REQUEST_ERROR: {
1517
+ code: 'A324',
1518
+ message: 'Произошла ошибка при отправке запроса на генерацию видео',
1519
+ httpCode: 500,
1520
+ },
1521
+ VIDEO_MODEL_NOT_FOUND: {
1522
+ code: 'A325',
1523
+ message: 'Не удалось найти указанную модель для генерации видео',
1524
+ httpCode: 400,
1525
+ },
1526
+ VIDEO_MAX_SYMBOLS_EXCEEDED: {
1527
+ code: 'A326',
1528
+ message: 'Превышена максимальная количество символов',
1529
+ },
1530
+ VIDEO_SET_REACTION_ERROR: {
1531
+ code: 'A327',
1532
+ message: 'Произошла ошибка при установке оценке сообщения',
1533
+ httpCode: 500,
1534
+ },
1535
+ VIDEO_UPDATE_TITLE_ERROR: {
1536
+ code: 'A328',
1537
+ message: 'Произошла ошибка при обновлении названия чата',
1538
+ httpCode: 500,
1539
+ },
1540
+ VIDEO_JOB_DELETE_ERROR: {
1541
+ code: 'A329',
1542
+ message: 'Произошла ошибка при удалении сообщения',
1543
+ httpCode: 500,
1544
+ },
1545
+ VIDEO_RETRY_REQUEST_ERROR: {
1546
+ code: 'A330',
1547
+ message: 'Произошла ошибка при повторном запросе на генерацию видео',
1548
+ httpCode: 500,
1549
+ },
1550
+ VIDEO_MODEL_NOT_AVAILABLE: {
1551
+ code: 'A331',
1552
+ message: 'Данная модель для генерации видео недоступна',
1553
+ httpCode: 401,
1554
+ },
1555
+ TOO_MANY_FILES_ATTACHED: {
1556
+ code: 'A332',
1557
+ message: 'Превышено доступное количество вложенных файлов',
1558
+ httpCode: 400,
1559
+ },
1560
+ VIDEO_INVALID_DURATION: {
1561
+ code: 'A333',
1562
+ message: 'Выбрана Неверная продолжительность видео',
1563
+ httpCode: 400,
1564
+ },
1511
1565
  };
@@ -45,3 +45,4 @@ __exportStar(require("./user"), exports);
45
45
  __exportStar(require("./promocode"), exports);
46
46
  __exportStar(require("./ui-notification"), exports);
47
47
  __exportStar(require("./review"), exports);
48
+ __exportStar(require("./tool-video"), exports);
@@ -0,0 +1,24 @@
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("./video-model-type.enum"), exports);
18
+ __exportStar(require("./video-strategy.enum"), exports);
19
+ __exportStar(require("./veo-input-modality.enum"), exports);
20
+ __exportStar(require("./veo-audio-support.enum"), exports);
21
+ __exportStar(require("./veo-aspect-ratio.enum"), exports);
22
+ __exportStar(require("./veo-person-allow.enum"), exports);
23
+ __exportStar(require("./veo-job-params-type.enum"), exports);
24
+ __exportStar(require("./video-resolution.enum"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VEO_ASPECT_RATIO = void 0;
4
+ var VEO_ASPECT_RATIO;
5
+ (function (VEO_ASPECT_RATIO) {
6
+ VEO_ASPECT_RATIO["HORIZONTAL"] = "16:9";
7
+ VEO_ASPECT_RATIO["VERTICAL"] = "9:16";
8
+ })(VEO_ASPECT_RATIO || (exports.VEO_ASPECT_RATIO = VEO_ASPECT_RATIO = {}));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VEO_AUDIO_SUPPORT = void 0;
4
+ var VEO_AUDIO_SUPPORT;
5
+ (function (VEO_AUDIO_SUPPORT) {
6
+ VEO_AUDIO_SUPPORT["NONE"] = "NONE";
7
+ VEO_AUDIO_SUPPORT["NATIVE"] = "NATIVE";
8
+ })(VEO_AUDIO_SUPPORT || (exports.VEO_AUDIO_SUPPORT = VEO_AUDIO_SUPPORT = {}));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VEO_INPUT_MODALITY = void 0;
4
+ var VEO_INPUT_MODALITY;
5
+ (function (VEO_INPUT_MODALITY) {
6
+ VEO_INPUT_MODALITY["TEXT"] = "TEXT_TO_VIDEO";
7
+ VEO_INPUT_MODALITY["TEXT_IMAGE"] = "TEXT_IMAGE_TO_VIDEO";
8
+ })(VEO_INPUT_MODALITY || (exports.VEO_INPUT_MODALITY = VEO_INPUT_MODALITY = {}));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VEO_JOB_PARAMS_TYPE = void 0;
4
+ var VEO_JOB_PARAMS_TYPE;
5
+ (function (VEO_JOB_PARAMS_TYPE) {
6
+ VEO_JOB_PARAMS_TYPE["VEO2"] = "veo2";
7
+ VEO_JOB_PARAMS_TYPE["VEO3"] = "veo3";
8
+ })(VEO_JOB_PARAMS_TYPE || (exports.VEO_JOB_PARAMS_TYPE = VEO_JOB_PARAMS_TYPE = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VEO_PERSON_ALLOW = void 0;
4
+ var VEO_PERSON_ALLOW;
5
+ (function (VEO_PERSON_ALLOW) {
6
+ VEO_PERSON_ALLOW["ALLOW_ALL"] = "allow_all";
7
+ VEO_PERSON_ALLOW["ALLOW_ADULT"] = "allow_adult";
8
+ VEO_PERSON_ALLOW["DONT_ALLOW"] = "dont_allow";
9
+ })(VEO_PERSON_ALLOW || (exports.VEO_PERSON_ALLOW = VEO_PERSON_ALLOW = {}));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VEO_MODEL_TYPE = void 0;
4
+ var VEO_MODEL_TYPE;
5
+ (function (VEO_MODEL_TYPE) {
6
+ VEO_MODEL_TYPE["VEO_3"] = "veo3";
7
+ VEO_MODEL_TYPE["VEO_3_FAST"] = "veo3_fast";
8
+ })(VEO_MODEL_TYPE || (exports.VEO_MODEL_TYPE = VEO_MODEL_TYPE = {}));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VIDEO_RESOLUTION = void 0;
4
+ var VIDEO_RESOLUTION;
5
+ (function (VIDEO_RESOLUTION) {
6
+ VIDEO_RESOLUTION["STANDART"] = "720p";
7
+ VIDEO_RESOLUTION["HIGH"] = "1080p";
8
+ })(VIDEO_RESOLUTION || (exports.VIDEO_RESOLUTION = VIDEO_RESOLUTION = {}));
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VIDEO_GENERATION_STRATEGY = void 0;
4
+ var VIDEO_GENERATION_STRATEGY;
5
+ (function (VIDEO_GENERATION_STRATEGY) {
6
+ VIDEO_GENERATION_STRATEGY["VEO"] = "VEO";
7
+ })(VIDEO_GENERATION_STRATEGY || (exports.VIDEO_GENERATION_STRATEGY = VIDEO_GENERATION_STRATEGY = {}));
@@ -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);
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.videoMaxDuration = void 0;
4
+ exports.videoMaxDuration = 8;
@@ -18,3 +18,4 @@ __exportStar(require("./ai-model"), exports);
18
18
  __exportStar(require("./stt"), exports);
19
19
  __exportStar(require("./subscription"), exports);
20
20
  __exportStar(require("./tts"), exports);
21
+ __exportStar(require("./video"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateVideoPrice = calculateVideoPrice;
4
+ const videoMaxDuration_1 = require("../../constants/tool-video/videoMaxDuration");
5
+ function calculateVideoPrice(pricePerSecond) {
6
+ const rawCost = videoMaxDuration_1.videoMaxDuration * pricePerSecond;
7
+ return Math.ceil(rawCost);
8
+ }
@@ -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("./calculate-video-price.helper"), exports);
@@ -9,6 +9,7 @@ exports.AiModelSchema = zod_1.z.object({
9
9
  title: zod_1.z.string(),
10
10
  description: zod_1.z.nullable(zod_1.z.string()),
11
11
  isPremium: zod_1.z.boolean(),
12
+ isNew: zod_1.z.boolean(),
12
13
  tokenMultiplicator: zod_1.z.number(),
13
14
  freeTokenMultiplicator: zod_1.z.number(),
14
15
  order: zod_1.z.number(),
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./paraphrase"), exports);
18
18
  __exportStar(require("./stt"), exports);
19
19
  __exportStar(require("./tts"), exports);
20
+ __exportStar(require("./video"), exports);
@@ -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("./video-config.schema"), exports);
18
+ __exportStar(require("./video-job.schema"), exports);
19
+ __exportStar(require("./video-model.schema"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VideoConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const video_model_schema_1 = require("./video-model.schema");
6
+ exports.VideoConfigSchema = zod_1.z.object({
7
+ models: zod_1.z.array(video_model_schema_1.VideoModelSchema),
8
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VideoJobSchema = exports.VideoJobParamsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const tool_job_schema_1 = require("../../tool-job.schema");
6
+ const constants_1 = require("../../../constants");
7
+ exports.VideoJobParamsSchema = zod_1.z.object({
8
+ imageUrls: zod_1.z.string().array().optional(),
9
+ duration: zod_1.z.number().optional(),
10
+ });
11
+ exports.VideoJobSchema = tool_job_schema_1.ToolJobSchema.extend({
12
+ title: zod_1.z.string(),
13
+ prompt: zod_1.z.string(),
14
+ reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
15
+ videoUrl: zod_1.z.string().nullable(),
16
+ params: exports.VideoJobParamsSchema,
17
+ modelId: zod_1.z.string(),
18
+ });
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VideoModelSchema = exports.VideoModelParamsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const icon_variants_schema_1 = require("../../icon-variants.schema");
6
+ const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
7
+ exports.VideoModelParamsSchema = zod_1.z.object({
8
+ imageAttachment: zod_1.z.object({
9
+ supported: zod_1.z.boolean(),
10
+ maxImages: zod_1.z.number(),
11
+ }),
12
+ duration: zod_1.z.object({
13
+ options: zod_1.z.array(zod_1.z.number()),
14
+ }),
15
+ });
16
+ exports.VideoModelSchema = zod_1.z.object({
17
+ uuid: zod_1.z.string(),
18
+ title: zod_1.z.string(),
19
+ description: zod_1.z.string(),
20
+ pricePerSecond: zod_1.z.number(),
21
+ order: zod_1.z.number(),
22
+ icons: icon_variants_schema_1.IconVariantsSchema,
23
+ maxInputLength: zod_1.z.number(),
24
+ maxNegativeInputLength: zod_1.z.number(),
25
+ params: exports.VideoModelParamsSchema,
26
+ unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
27
+ canUse: zod_1.z.boolean(),
28
+ });
@@ -2,3 +2,4 @@ export * from './paraphrase';
2
2
  export * from './stt';
3
3
  export * from './tool';
4
4
  export * from './tts';
5
+ export * from './video';
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace DeleteAllVideoJobsCommand {
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 DeleteVideoJobByUUIDCommand {
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,16 @@
1
+ import { z } from 'zod';
2
+ import { VideoJobSchema, ToolJobSchema } from '../../../models';
3
+
4
+ export namespace FindVideoJobByUUIDCommand {
5
+ export const RequestParamsSchema = ToolJobSchema.pick({
6
+ uuid: true,
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestParamsSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ data: VideoJobSchema,
13
+ });
14
+
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { VideoJobSchema } from '../../../models';
3
+
4
+ export namespace FindVideoJobsCommand {
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(VideoJobSchema),
14
+ totalPages: z.number(),
15
+ page: z.number(),
16
+ });
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { VideoConfigSchema } from '../../../models';
3
+
4
+ export namespace GetVideoToolConfigCommand {
5
+ export const ResponseSchema = z.object({
6
+ data: VideoConfigSchema,
7
+ });
8
+
9
+ export type Response = z.infer<typeof ResponseSchema>;
10
+ }
@@ -0,0 +1,9 @@
1
+ export * from './delete-all-video-jobs.command';
2
+ export * from './delete-video-job-by-uuid.command';
3
+ export * from './find-video-job-by-uuid.command';
4
+ export * from './find-video-jobs.command';
5
+ export * from './get-video-tool-config.command';
6
+ export * from './retry-video-job.command';
7
+ export * from './set-reaction-to-video-job.command';
8
+ export * from './video.command';
9
+ export * from './update-video-job-title.command';
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { VideoJobSchema } from '../../../models';
3
+
4
+ export namespace RetryVideoJobCommand {
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: VideoJobSchema,
12
+ });
13
+ export type Response = z.infer<typeof ResponseSchema>;
14
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import { VideoJobSchema } from '../../../models';
3
+ import { USER_REACTION } from '../../../constants';
4
+
5
+ export namespace SetReactionToVideoJobCommand {
6
+ export const RequestSchema = z.object({
7
+ reaction: z.nativeEnum(USER_REACTION).nullable(),
8
+ });
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const RequestParamsSchema = z.object({
12
+ uuid: z.string().uuid(),
13
+ });
14
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
15
+
16
+ export const ResponseSchema = z.object({
17
+ data: VideoJobSchema,
18
+ });
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { VideoJobSchema } from '../../../models';
3
+
4
+ export namespace UpdateVideoJobTitleCommand {
5
+ export const RequestSchema = z.object({
6
+ title: z.string().min(1).max(40).trim(),
7
+ });
8
+ export type Request = z.infer<typeof RequestSchema>;
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: VideoJobSchema,
17
+ });
18
+ export type Response = z.infer<typeof ResponseSchema>;
19
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import { ToolJobSchema } from '../../../models';
3
+ export namespace VideoCommand {
4
+ export const RequestSchema = z.object({
5
+ modelId: z.string().uuid(),
6
+ prompt: z.string(),
7
+ params: z.object({
8
+ imageUrls: z.array(z.string()).optional(),
9
+ duration: z.number(),
10
+ }),
11
+ });
12
+
13
+ export type Request = z.infer<typeof RequestSchema>;
14
+
15
+ export const ResponseSchema = z.object({
16
+ data: ToolJobSchema,
17
+ });
18
+
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -1515,4 +1515,58 @@ export const ERRORS = {
1515
1515
  message: 'Произошла ошибка при загрузке объекта из хранилища',
1516
1516
  httpCode: 500,
1517
1517
  },
1518
+ VIDEO_CONFIG_ERROR: {
1519
+ code: 'A323',
1520
+ message: 'Произошла ошибка при получении конфигурации инструмента для генерации видео',
1521
+ httpCode: 500,
1522
+ },
1523
+ VIDEO_SEND_REQUEST_ERROR: {
1524
+ code: 'A324',
1525
+ message: 'Произошла ошибка при отправке запроса на генерацию видео',
1526
+ httpCode: 500,
1527
+ },
1528
+ VIDEO_MODEL_NOT_FOUND: {
1529
+ code: 'A325',
1530
+ message: 'Не удалось найти указанную модель для генерации видео',
1531
+ httpCode: 400,
1532
+ },
1533
+ VIDEO_MAX_SYMBOLS_EXCEEDED: {
1534
+ code: 'A326',
1535
+ message: 'Превышена максимальная количество символов',
1536
+ },
1537
+ VIDEO_SET_REACTION_ERROR: {
1538
+ code: 'A327',
1539
+ message: 'Произошла ошибка при установке оценке сообщения',
1540
+ httpCode: 500,
1541
+ },
1542
+ VIDEO_UPDATE_TITLE_ERROR: {
1543
+ code: 'A328',
1544
+ message: 'Произошла ошибка при обновлении названия чата',
1545
+ httpCode: 500,
1546
+ },
1547
+ VIDEO_JOB_DELETE_ERROR: {
1548
+ code: 'A329',
1549
+ message: 'Произошла ошибка при удалении сообщения',
1550
+ httpCode: 500,
1551
+ },
1552
+ VIDEO_RETRY_REQUEST_ERROR: {
1553
+ code: 'A330',
1554
+ message: 'Произошла ошибка при повторном запросе на генерацию видео',
1555
+ httpCode: 500,
1556
+ },
1557
+ VIDEO_MODEL_NOT_AVAILABLE: {
1558
+ code: 'A331',
1559
+ message: 'Данная модель для генерации видео недоступна',
1560
+ httpCode: 401,
1561
+ },
1562
+ TOO_MANY_FILES_ATTACHED: {
1563
+ code: 'A332',
1564
+ message: 'Превышено доступное количество вложенных файлов',
1565
+ httpCode: 400,
1566
+ },
1567
+ VIDEO_INVALID_DURATION: {
1568
+ code: 'A333',
1569
+ message: 'Выбрана Неверная продолжительность видео',
1570
+ httpCode: 400,
1571
+ },
1518
1572
  };
@@ -29,3 +29,4 @@ export * from './user';
29
29
  export * from './promocode';
30
30
  export * from './ui-notification';
31
31
  export * from './review';
32
+ export * from './tool-video';
@@ -0,0 +1,8 @@
1
+ export * from './video-model-type.enum';
2
+ export * from './video-strategy.enum';
3
+ export * from './veo-input-modality.enum';
4
+ export * from './veo-audio-support.enum';
5
+ export * from './veo-aspect-ratio.enum';
6
+ export * from './veo-person-allow.enum';
7
+ export * from './veo-job-params-type.enum';
8
+ export * from './video-resolution.enum';
@@ -0,0 +1,4 @@
1
+ export enum VEO_ASPECT_RATIO {
2
+ HORIZONTAL = '16:9',
3
+ VERTICAL = '9:16',
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum VEO_AUDIO_SUPPORT {
2
+ NONE = 'NONE',
3
+ NATIVE = 'NATIVE',
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum VEO_INPUT_MODALITY {
2
+ TEXT = 'TEXT_TO_VIDEO',
3
+ TEXT_IMAGE = 'TEXT_IMAGE_TO_VIDEO',
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum VEO_JOB_PARAMS_TYPE {
2
+ VEO2 = 'veo2',
3
+ VEO3 = 'veo3',
4
+ }
@@ -0,0 +1,5 @@
1
+ export enum VEO_PERSON_ALLOW {
2
+ ALLOW_ALL = 'allow_all',
3
+ ALLOW_ADULT = 'allow_adult',
4
+ DONT_ALLOW = 'dont_allow',
5
+ }
@@ -0,0 +1,4 @@
1
+ export enum VEO_MODEL_TYPE {
2
+ VEO_3 = 'veo3',
3
+ VEO_3_FAST = 'veo3_fast',
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum VIDEO_RESOLUTION {
2
+ STANDART = '720p',
3
+ HIGH = '1080p',
4
+ }
@@ -0,0 +1,3 @@
1
+ export enum VIDEO_GENERATION_STRATEGY {
2
+ VEO = 'VEO',
3
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -0,0 +1 @@
1
+ export const videoMaxDuration = 8;
package/helpers/index.ts CHANGED
@@ -2,3 +2,4 @@ export * from './ai-model';
2
2
  export * from './stt';
3
3
  export * from './subscription';
4
4
  export * from './tts';
5
+ export * from './video';
@@ -0,0 +1,6 @@
1
+ import { videoMaxDuration } from '../../constants/tool-video/videoMaxDuration';
2
+
3
+ export function calculateVideoPrice(pricePerSecond: number): number {
4
+ const rawCost = videoMaxDuration * pricePerSecond;
5
+ return Math.ceil(rawCost);
6
+ }
@@ -0,0 +1 @@
1
+ export * from './calculate-video-price.helper';
@@ -12,6 +12,7 @@ export const AiModelSchema = z.object({
12
12
  title: z.string(),
13
13
  description: z.nullable(z.string()),
14
14
  isPremium: z.boolean(),
15
+ isNew: z.boolean(),
15
16
  tokenMultiplicator: z.number(),
16
17
  freeTokenMultiplicator: z.number(),
17
18
  order: z.number(),
@@ -1,3 +1,4 @@
1
1
  export * from './paraphrase';
2
2
  export * from './stt';
3
3
  export * from './tts';
4
+ export * from './video';
@@ -0,0 +1,3 @@
1
+ export * from './video-config.schema';
2
+ export * from './video-job.schema';
3
+ export * from './video-model.schema';
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { VideoModelSchema } from './video-model.schema';
3
+
4
+ export const VideoConfigSchema = z.object({
5
+ models: z.array(VideoModelSchema),
6
+ });
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ import { ToolJobSchema } from '../../tool-job.schema';
3
+ import { USER_REACTION } from '../../../constants';
4
+
5
+ export const VideoJobParamsSchema = z.object({
6
+ imageUrls: z.string().array().optional(),
7
+ duration: z.number().optional(),
8
+ });
9
+
10
+ export type VideoJobParams = z.infer<typeof VideoJobParamsSchema>;
11
+
12
+ export const VideoJobSchema = ToolJobSchema.extend({
13
+ title: z.string(),
14
+ prompt: z.string(),
15
+ reaction: z.nativeEnum(USER_REACTION).nullable(),
16
+ videoUrl: z.string().nullable(),
17
+ params: VideoJobParamsSchema,
18
+ modelId: z.string(),
19
+ });
20
+
21
+ export type VideoJob = z.infer<typeof VideoJobSchema>;
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ import { IconVariantsSchema } from '../../icon-variants.schema';
3
+ import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
+
5
+ export const VideoModelParamsSchema = z.object({
6
+ imageAttachment: z.object({
7
+ supported: z.boolean(),
8
+ maxImages: z.number(),
9
+ }),
10
+ duration: z.object({
11
+ options: z.array(z.number()),
12
+ }),
13
+ });
14
+
15
+ export const VideoModelSchema = z.object({
16
+ uuid: z.string(),
17
+ title: z.string(),
18
+ description: z.string(),
19
+ pricePerSecond: z.number(),
20
+ order: z.number(),
21
+ icons: IconVariantsSchema,
22
+ maxInputLength: z.number(),
23
+ maxNegativeInputLength: z.number(),
24
+ params: VideoModelParamsSchema,
25
+ unlockedBy: UnlockedBySchema.nullable(),
26
+ canUse: z.boolean(),
27
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",