@purpleschool/student-works 0.0.23 → 1.0.0
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.
- package/api/controller/http/index.ts +1 -0
- package/api/controller/http/solving-edu-task.ts +14 -0
- package/api/routes.ts +32 -0
- package/build/api/controller/http/index.js +1 -0
- package/build/api/controller/http/solving-edu-task.js +16 -0
- package/build/api/routes.js +22 -0
- package/build/commands/index.js +1 -0
- package/build/commands/solving-edu-task/delete-all-solving-edu-task-jobs.command.js +10 -0
- package/build/commands/solving-edu-task/delete-solving-edu-task-job-by-uuid.command.js +13 -0
- package/build/commands/solving-edu-task/execute-solving-edu-task.command.js +30 -0
- package/build/commands/solving-edu-task/find-solving-edu-task-job-by-uuid.command.js +14 -0
- package/build/commands/solving-edu-task/find-solving-edu-task-jobs.command.js +18 -0
- package/build/commands/solving-edu-task/get-solving-edu-task-config.command.js +11 -0
- package/build/commands/solving-edu-task/index.js +25 -0
- package/build/commands/solving-edu-task/retry-solving-edu-task-job.command.js +23 -0
- package/build/commands/solving-edu-task/set-reaction-to-solving-edu-task-job.command.js +28 -0
- package/build/commands/solving-edu-task/update-solving-edu-task-job-title.command.js +17 -0
- package/build/constants/common/enums/ai-model-status.enum.js +8 -0
- package/build/constants/common/enums/index.js +18 -0
- package/build/constants/common/enums/job-status.enum.js +9 -0
- package/build/constants/common/index.js +17 -0
- package/build/constants/errors/errors.js +61 -0
- package/build/constants/files/enums/file-type.enum.js +1 -0
- package/build/constants/files/file.constants.js +7 -1
- package/build/constants/index.js +1 -0
- package/build/models/index.js +1 -0
- package/build/models/solving-edu-task/attached-file.schema.js +12 -0
- package/build/models/solving-edu-task/index.js +20 -0
- package/build/models/solving-edu-task/solving-edu-task-config.schema.js +8 -0
- package/build/models/solving-edu-task/solving-edu-task-job.schema.js +24 -0
- package/build/models/solving-edu-task/solving-edu-task-model.schema.js +24 -0
- package/commands/index.ts +1 -0
- package/commands/solving-edu-task/delete-all-solving-edu-task-jobs.command.ts +8 -0
- package/commands/solving-edu-task/delete-solving-edu-task-job-by-uuid.command.ts +13 -0
- package/commands/solving-edu-task/execute-solving-edu-task.command.ts +31 -0
- package/commands/solving-edu-task/find-solving-edu-task-job-by-uuid.command.ts +14 -0
- package/commands/solving-edu-task/find-solving-edu-task-jobs.command.ts +18 -0
- package/commands/solving-edu-task/get-solving-edu-task-config.command.ts +9 -0
- package/commands/solving-edu-task/index.ts +9 -0
- package/commands/solving-edu-task/retry-solving-edu-task-job.command.ts +25 -0
- package/commands/solving-edu-task/set-reaction-to-solving-edu-task-job.command.ts +33 -0
- package/commands/solving-edu-task/update-solving-edu-task-job-title.command.ts +19 -0
- package/constants/common/enums/ai-model-status.enum.ts +4 -0
- package/constants/common/enums/index.ts +2 -0
- package/constants/common/enums/job-status.enum.ts +5 -0
- package/constants/common/index.ts +1 -0
- package/constants/errors/errors.ts +61 -0
- package/constants/files/enums/file-type.enum.ts +1 -0
- package/constants/files/file.constants.ts +6 -0
- package/constants/index.ts +1 -0
- package/models/index.ts +1 -0
- package/models/solving-edu-task/attached-file.schema.ts +12 -0
- package/models/solving-edu-task/index.ts +4 -0
- package/models/solving-edu-task/solving-edu-task-config.schema.ts +8 -0
- package/models/solving-edu-task/solving-edu-task-job.schema.ts +27 -0
- package/models/solving-edu-task/solving-edu-task-model.schema.ts +27 -0
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const SOLVING_EDU_TASK_CONTROLLER_PRIVATE = 'private/solving-edu-task' as const;
|
|
2
|
+
export const SOLVING_EDU_TASK_CONTROLLER_PUBLIC = 'public/solving-edu-task' as const;
|
|
3
|
+
|
|
4
|
+
export const SOLVING_EDU_TASK_ROUTES = {
|
|
5
|
+
CONFIG: 'config',
|
|
6
|
+
EXECUTE: 'execute',
|
|
7
|
+
RETRY: (uuid: string) => `jobs/${uuid}/retry`,
|
|
8
|
+
GET_JOB: (uuid: string) => `jobs/${uuid}`,
|
|
9
|
+
GET_JOBS: 'jobs',
|
|
10
|
+
SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
|
|
11
|
+
UPDATE: (uuid: string) => `jobs/${uuid}`,
|
|
12
|
+
DELETE: (uuid: string) => `jobs/${uuid}`,
|
|
13
|
+
DELETE_ALL: 'jobs',
|
|
14
|
+
} as const;
|
package/api/routes.ts
CHANGED
|
@@ -207,4 +207,36 @@ export const REST_API = {
|
|
|
207
207
|
DELETE: (uuid: string) =>
|
|
208
208
|
`${ROOT}/${CONTROLLERS.FILE_PUBLIC_CONTROLLER}/${CONTROLLERS.FILE_ROUTES.DELETE(uuid)}`,
|
|
209
209
|
},
|
|
210
|
+
SOLVING_EDU_TASK_PRIVATE: {
|
|
211
|
+
CONFIG: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.CONFIG}`,
|
|
212
|
+
EXECUTE: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.EXECUTE}`,
|
|
213
|
+
GET_JOBS: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOBS}`,
|
|
214
|
+
GET_JOB: (uuid: string) =>
|
|
215
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOB(uuid)}`,
|
|
216
|
+
UPDATE: (uuid: string) =>
|
|
217
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.UPDATE(uuid)}`,
|
|
218
|
+
SET_REACTION: (uuid: string) =>
|
|
219
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.SET_REACTION(uuid)}`,
|
|
220
|
+
DELETE: (uuid: string) =>
|
|
221
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE(uuid)}`,
|
|
222
|
+
DELETE_ALL: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE_ALL}`,
|
|
223
|
+
RETRY: (uuid: string) =>
|
|
224
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.RETRY(uuid)}`,
|
|
225
|
+
},
|
|
226
|
+
SOLVING_EDU_TASK_PUBLIC: {
|
|
227
|
+
CONFIG: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.CONFIG}`,
|
|
228
|
+
EXECUTE: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.EXECUTE}`,
|
|
229
|
+
GET_JOBS: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOBS}`,
|
|
230
|
+
GET_JOB: (uuid: string) =>
|
|
231
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOB(uuid)}`,
|
|
232
|
+
UPDATE: (uuid: string) =>
|
|
233
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.UPDATE(uuid)}`,
|
|
234
|
+
SET_REACTION: (uuid: string) =>
|
|
235
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.SET_REACTION(uuid)}`,
|
|
236
|
+
DELETE: (uuid: string) =>
|
|
237
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE(uuid)}`,
|
|
238
|
+
DELETE_ALL: `${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE_ALL}`,
|
|
239
|
+
RETRY: (uuid: string) =>
|
|
240
|
+
`${ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.RETRY(uuid)}`,
|
|
241
|
+
},
|
|
210
242
|
} as const;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SOLVING_EDU_TASK_ROUTES = exports.SOLVING_EDU_TASK_CONTROLLER_PUBLIC = exports.SOLVING_EDU_TASK_CONTROLLER_PRIVATE = void 0;
|
|
4
|
+
exports.SOLVING_EDU_TASK_CONTROLLER_PRIVATE = 'private/solving-edu-task';
|
|
5
|
+
exports.SOLVING_EDU_TASK_CONTROLLER_PUBLIC = 'public/solving-edu-task';
|
|
6
|
+
exports.SOLVING_EDU_TASK_ROUTES = {
|
|
7
|
+
CONFIG: 'config',
|
|
8
|
+
EXECUTE: 'execute',
|
|
9
|
+
RETRY: (uuid) => `jobs/${uuid}/retry`,
|
|
10
|
+
GET_JOB: (uuid) => `jobs/${uuid}`,
|
|
11
|
+
GET_JOBS: 'jobs',
|
|
12
|
+
SET_REACTION: (uuid) => `jobs/${uuid}/reaction`,
|
|
13
|
+
UPDATE: (uuid) => `jobs/${uuid}`,
|
|
14
|
+
DELETE: (uuid) => `jobs/${uuid}`,
|
|
15
|
+
DELETE_ALL: 'jobs',
|
|
16
|
+
};
|
package/build/api/routes.js
CHANGED
|
@@ -179,4 +179,26 @@ exports.REST_API = {
|
|
|
179
179
|
UPLOAD: `${exports.ROOT}/${CONTROLLERS.FILE_PUBLIC_CONTROLLER}/${CONTROLLERS.FILE_ROUTES.UPLOAD}`,
|
|
180
180
|
DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.FILE_PUBLIC_CONTROLLER}/${CONTROLLERS.FILE_ROUTES.DELETE(uuid)}`,
|
|
181
181
|
},
|
|
182
|
+
SOLVING_EDU_TASK_PRIVATE: {
|
|
183
|
+
CONFIG: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.CONFIG}`,
|
|
184
|
+
EXECUTE: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.EXECUTE}`,
|
|
185
|
+
GET_JOBS: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOBS}`,
|
|
186
|
+
GET_JOB: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOB(uuid)}`,
|
|
187
|
+
UPDATE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.UPDATE(uuid)}`,
|
|
188
|
+
SET_REACTION: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.SET_REACTION(uuid)}`,
|
|
189
|
+
DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE(uuid)}`,
|
|
190
|
+
DELETE_ALL: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE_ALL}`,
|
|
191
|
+
RETRY: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PRIVATE}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.RETRY(uuid)}`,
|
|
192
|
+
},
|
|
193
|
+
SOLVING_EDU_TASK_PUBLIC: {
|
|
194
|
+
CONFIG: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.CONFIG}`,
|
|
195
|
+
EXECUTE: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.EXECUTE}`,
|
|
196
|
+
GET_JOBS: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOBS}`,
|
|
197
|
+
GET_JOB: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.GET_JOB(uuid)}`,
|
|
198
|
+
UPDATE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.UPDATE(uuid)}`,
|
|
199
|
+
SET_REACTION: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.SET_REACTION(uuid)}`,
|
|
200
|
+
DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE(uuid)}`,
|
|
201
|
+
DELETE_ALL: `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.DELETE_ALL}`,
|
|
202
|
+
RETRY: (uuid) => `${exports.ROOT}/${CONTROLLERS.SOLVING_EDU_TASK_CONTROLLER_PUBLIC}/${CONTROLLERS.SOLVING_EDU_TASK_ROUTES.RETRY(uuid)}`,
|
|
203
|
+
},
|
|
182
204
|
};
|
package/build/commands/index.js
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteAllSolvingEduTaskJobsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var DeleteAllSolvingEduTaskJobsCommand;
|
|
6
|
+
(function (DeleteAllSolvingEduTaskJobsCommand) {
|
|
7
|
+
DeleteAllSolvingEduTaskJobsCommand.ResponseSchema = zod_1.z.object({
|
|
8
|
+
data: zod_1.z.boolean(),
|
|
9
|
+
});
|
|
10
|
+
})(DeleteAllSolvingEduTaskJobsCommand || (exports.DeleteAllSolvingEduTaskJobsCommand = DeleteAllSolvingEduTaskJobsCommand = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteSolvingEduTaskJobByUUIDCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var DeleteSolvingEduTaskJobByUUIDCommand;
|
|
6
|
+
(function (DeleteSolvingEduTaskJobByUUIDCommand) {
|
|
7
|
+
DeleteSolvingEduTaskJobByUUIDCommand.RequestParamsSchema = zod_1.z.object({
|
|
8
|
+
uuid: zod_1.z.string().uuid(),
|
|
9
|
+
});
|
|
10
|
+
DeleteSolvingEduTaskJobByUUIDCommand.ResponseSchema = zod_1.z.object({
|
|
11
|
+
data: zod_1.z.boolean(),
|
|
12
|
+
});
|
|
13
|
+
})(DeleteSolvingEduTaskJobByUUIDCommand || (exports.DeleteSolvingEduTaskJobByUUIDCommand = DeleteSolvingEduTaskJobByUUIDCommand = {}));
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExecuteSolvingEduTaskCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var ExecuteSolvingEduTaskCommand;
|
|
7
|
+
(function (ExecuteSolvingEduTaskCommand) {
|
|
8
|
+
ExecuteSolvingEduTaskCommand.RequestSchema = zod_1.z
|
|
9
|
+
.object({
|
|
10
|
+
prompt: zod_1.z.string().optional(),
|
|
11
|
+
modelId: zod_1.z.string().uuid(),
|
|
12
|
+
params: zod_1.z.object({
|
|
13
|
+
attachedFiles: zod_1.z.array(zod_1.z.string().uuid()),
|
|
14
|
+
}),
|
|
15
|
+
})
|
|
16
|
+
.superRefine((data, ctx) => {
|
|
17
|
+
const hasPrompt = typeof data.prompt === 'string' && data.prompt.length > 0;
|
|
18
|
+
const hasAttachedFiles = data.params.attachedFiles.length > 0;
|
|
19
|
+
if (!hasAttachedFiles && !hasPrompt) {
|
|
20
|
+
ctx.addIssue({
|
|
21
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
22
|
+
message: 'prompt is required when no attachedFiles provided',
|
|
23
|
+
path: ['prompt'],
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
ExecuteSolvingEduTaskCommand.ResponseSchema = zod_1.z.object({
|
|
28
|
+
data: models_1.SolvingEduTaskJobSchema,
|
|
29
|
+
});
|
|
30
|
+
})(ExecuteSolvingEduTaskCommand || (exports.ExecuteSolvingEduTaskCommand = ExecuteSolvingEduTaskCommand = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindSolvingEduTaskJobByUUIDCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var FindSolvingEduTaskJobByUUIDCommand;
|
|
7
|
+
(function (FindSolvingEduTaskJobByUUIDCommand) {
|
|
8
|
+
FindSolvingEduTaskJobByUUIDCommand.RequestParamsSchema = zod_1.z.object({
|
|
9
|
+
uuid: zod_1.z.string().uuid(),
|
|
10
|
+
});
|
|
11
|
+
FindSolvingEduTaskJobByUUIDCommand.ResponseSchema = zod_1.z.object({
|
|
12
|
+
data: models_1.SolvingEduTaskJobSchema,
|
|
13
|
+
});
|
|
14
|
+
})(FindSolvingEduTaskJobByUUIDCommand || (exports.FindSolvingEduTaskJobByUUIDCommand = FindSolvingEduTaskJobByUUIDCommand = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindSolvingEduTaskJobsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var FindSolvingEduTaskJobsCommand;
|
|
7
|
+
(function (FindSolvingEduTaskJobsCommand) {
|
|
8
|
+
FindSolvingEduTaskJobsCommand.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
|
+
FindSolvingEduTaskJobsCommand.ResponseSchema = zod_1.z.object({
|
|
14
|
+
data: zod_1.z.array(models_1.SolvingEduTaskJobSchema),
|
|
15
|
+
totalPages: zod_1.z.number(),
|
|
16
|
+
page: zod_1.z.number(),
|
|
17
|
+
});
|
|
18
|
+
})(FindSolvingEduTaskJobsCommand || (exports.FindSolvingEduTaskJobsCommand = FindSolvingEduTaskJobsCommand = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetSolvingEduTaskConfigCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var GetSolvingEduTaskConfigCommand;
|
|
7
|
+
(function (GetSolvingEduTaskConfigCommand) {
|
|
8
|
+
GetSolvingEduTaskConfigCommand.ResponseSchema = zod_1.z.object({
|
|
9
|
+
data: models_1.SolvingEduTaskConfigSchema,
|
|
10
|
+
});
|
|
11
|
+
})(GetSolvingEduTaskConfigCommand || (exports.GetSolvingEduTaskConfigCommand = GetSolvingEduTaskConfigCommand = {}));
|
|
@@ -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("./execute-solving-edu-task.command"), exports);
|
|
18
|
+
__exportStar(require("./retry-solving-edu-task-job.command"), exports);
|
|
19
|
+
__exportStar(require("./find-solving-edu-task-job-by-uuid.command"), exports);
|
|
20
|
+
__exportStar(require("./find-solving-edu-task-jobs.command"), exports);
|
|
21
|
+
__exportStar(require("./get-solving-edu-task-config.command"), exports);
|
|
22
|
+
__exportStar(require("./set-reaction-to-solving-edu-task-job.command"), exports);
|
|
23
|
+
__exportStar(require("./update-solving-edu-task-job-title.command"), exports);
|
|
24
|
+
__exportStar(require("./delete-solving-edu-task-job-by-uuid.command"), exports);
|
|
25
|
+
__exportStar(require("./delete-all-solving-edu-task-jobs.command"), exports);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RetrySolvingEduTaskJobCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var RetrySolvingEduTaskJobCommand;
|
|
7
|
+
(function (RetrySolvingEduTaskJobCommand) {
|
|
8
|
+
RetrySolvingEduTaskJobCommand.RequestParamsSchema = zod_1.z.object({
|
|
9
|
+
uuid: zod_1.z.string().uuid(),
|
|
10
|
+
});
|
|
11
|
+
RetrySolvingEduTaskJobCommand.RequestBodySchema = zod_1.z.object({
|
|
12
|
+
prompt: zod_1.z.string().optional(),
|
|
13
|
+
modelId: zod_1.z.string().uuid().optional(),
|
|
14
|
+
params: zod_1.z
|
|
15
|
+
.object({
|
|
16
|
+
attachedFiles: zod_1.z.array(zod_1.z.string().uuid()),
|
|
17
|
+
})
|
|
18
|
+
.optional(),
|
|
19
|
+
});
|
|
20
|
+
RetrySolvingEduTaskJobCommand.ResponseSchema = zod_1.z.object({
|
|
21
|
+
data: models_1.SolvingEduTaskJobSchema,
|
|
22
|
+
});
|
|
23
|
+
})(RetrySolvingEduTaskJobCommand || (exports.RetrySolvingEduTaskJobCommand = RetrySolvingEduTaskJobCommand = {}));
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetReactionToSolvingEduTaskJobCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
var SetReactionToSolvingEduTaskJobCommand;
|
|
8
|
+
(function (SetReactionToSolvingEduTaskJobCommand) {
|
|
9
|
+
SetReactionToSolvingEduTaskJobCommand.RequestSchema = zod_1.z
|
|
10
|
+
.object({
|
|
11
|
+
reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
|
|
12
|
+
dislikeReason: zod_1.z.string().nullable().default(null),
|
|
13
|
+
})
|
|
14
|
+
.refine((data) => {
|
|
15
|
+
if (data.reaction !== constants_1.USER_REACTION.DISLIKED && data.dislikeReason) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}, {
|
|
20
|
+
message: 'Dislike reason is not allowed when reaction is not DISLIKED',
|
|
21
|
+
});
|
|
22
|
+
SetReactionToSolvingEduTaskJobCommand.RequestParamsSchema = zod_1.z.object({
|
|
23
|
+
uuid: zod_1.z.string().uuid(),
|
|
24
|
+
});
|
|
25
|
+
SetReactionToSolvingEduTaskJobCommand.ResponseSchema = zod_1.z.object({
|
|
26
|
+
data: models_1.SolvingEduTaskJobSchema,
|
|
27
|
+
});
|
|
28
|
+
})(SetReactionToSolvingEduTaskJobCommand || (exports.SetReactionToSolvingEduTaskJobCommand = SetReactionToSolvingEduTaskJobCommand = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateSolvingEduTaskJobTitleCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var UpdateSolvingEduTaskJobTitleCommand;
|
|
7
|
+
(function (UpdateSolvingEduTaskJobTitleCommand) {
|
|
8
|
+
UpdateSolvingEduTaskJobTitleCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
title: zod_1.z.string(),
|
|
10
|
+
});
|
|
11
|
+
UpdateSolvingEduTaskJobTitleCommand.RequestParamsSchema = zod_1.z.object({
|
|
12
|
+
uuid: zod_1.z.string().uuid(),
|
|
13
|
+
});
|
|
14
|
+
UpdateSolvingEduTaskJobTitleCommand.ResponseSchema = zod_1.z.object({
|
|
15
|
+
data: models_1.SolvingEduTaskJobSchema,
|
|
16
|
+
});
|
|
17
|
+
})(UpdateSolvingEduTaskJobTitleCommand || (exports.UpdateSolvingEduTaskJobTitleCommand = UpdateSolvingEduTaskJobTitleCommand = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AI_MODEL_STATUS = void 0;
|
|
4
|
+
var AI_MODEL_STATUS;
|
|
5
|
+
(function (AI_MODEL_STATUS) {
|
|
6
|
+
AI_MODEL_STATUS["ACTIVE"] = "active";
|
|
7
|
+
AI_MODEL_STATUS["INACTIVE"] = "inactive";
|
|
8
|
+
})(AI_MODEL_STATUS || (exports.AI_MODEL_STATUS = AI_MODEL_STATUS = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./job-status.enum"), exports);
|
|
18
|
+
__exportStar(require("./ai-model-status.enum"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JOB_STATUS = void 0;
|
|
4
|
+
var JOB_STATUS;
|
|
5
|
+
(function (JOB_STATUS) {
|
|
6
|
+
JOB_STATUS["PENDING"] = "pending";
|
|
7
|
+
JOB_STATUS["COMPLETED"] = "completed";
|
|
8
|
+
JOB_STATUS["FAILED"] = "failed";
|
|
9
|
+
})(JOB_STATUS || (exports.JOB_STATUS = JOB_STATUS = {}));
|
|
@@ -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);
|
|
@@ -1112,4 +1112,65 @@ exports.ERRORS = {
|
|
|
1112
1112
|
code: 'PAGE_QUESTION_006',
|
|
1113
1113
|
httpCode: 500,
|
|
1114
1114
|
},
|
|
1115
|
+
// SOLVING_EDU_TASK
|
|
1116
|
+
SOLVING_EDU_TASK_MODEL_NOT_FOUND: {
|
|
1117
|
+
message: 'Модель решения задач не найдена',
|
|
1118
|
+
code: 'SOLVING_EDU_TASK_001',
|
|
1119
|
+
httpCode: 404,
|
|
1120
|
+
},
|
|
1121
|
+
SOLVING_EDU_TASK_MODEL_INACTIVE: {
|
|
1122
|
+
message: 'Модель решения задач неактивна',
|
|
1123
|
+
code: 'SOLVING_EDU_TASK_002',
|
|
1124
|
+
httpCode: 400,
|
|
1125
|
+
},
|
|
1126
|
+
SOLVING_EDU_TASK_JOB_NOT_FOUND: {
|
|
1127
|
+
message: 'Задача решения не найдена',
|
|
1128
|
+
code: 'SOLVING_EDU_TASK_003',
|
|
1129
|
+
httpCode: 404,
|
|
1130
|
+
},
|
|
1131
|
+
SOLVING_EDU_TASK_JOB_CREATE_ERROR: {
|
|
1132
|
+
message: 'Ошибка при создании задачи решения',
|
|
1133
|
+
code: 'SOLVING_EDU_TASK_004',
|
|
1134
|
+
httpCode: 500,
|
|
1135
|
+
},
|
|
1136
|
+
SOLVING_EDU_TASK_JOB_FIND_ERROR: {
|
|
1137
|
+
message: 'Ошибка при поиске задачи решения',
|
|
1138
|
+
code: 'SOLVING_EDU_TASK_005',
|
|
1139
|
+
httpCode: 500,
|
|
1140
|
+
},
|
|
1141
|
+
SOLVING_EDU_TASK_JOB_SAVE_ERROR: {
|
|
1142
|
+
message: 'Ошибка при сохранении задачи решения',
|
|
1143
|
+
code: 'SOLVING_EDU_TASK_006',
|
|
1144
|
+
httpCode: 500,
|
|
1145
|
+
},
|
|
1146
|
+
SOLVING_EDU_TASK_JOB_DELETE_ERROR: {
|
|
1147
|
+
message: 'Ошибка при удалении задачи решения',
|
|
1148
|
+
code: 'SOLVING_EDU_TASK_007',
|
|
1149
|
+
httpCode: 500,
|
|
1150
|
+
},
|
|
1151
|
+
SOLVING_EDU_TASK_PROMPT_TOO_LONG: {
|
|
1152
|
+
message: 'Текст задачи слишком длинный',
|
|
1153
|
+
code: 'SOLVING_EDU_TASK_008',
|
|
1154
|
+
httpCode: 400,
|
|
1155
|
+
},
|
|
1156
|
+
SOLVING_EDU_TASK_AI_REQUEST_ERROR: {
|
|
1157
|
+
message: 'Ошибка при запросе к AI для решения задачи',
|
|
1158
|
+
code: 'SOLVING_EDU_TASK_009',
|
|
1159
|
+
httpCode: 500,
|
|
1160
|
+
},
|
|
1161
|
+
SOLVING_EDU_TASK_RETRY_INVALID_STATUS: {
|
|
1162
|
+
message: 'Невозможно повторить задачу с текущим статусом',
|
|
1163
|
+
code: 'SOLVING_EDU_TASK_010',
|
|
1164
|
+
httpCode: 400,
|
|
1165
|
+
},
|
|
1166
|
+
SOLVING_EDU_TASK_INVALID_IMAGE_FILE_TYPE: {
|
|
1167
|
+
message: 'Неподдерживаемый тип изображения. Разрешены только JPEG, PNG и WebP',
|
|
1168
|
+
code: 'SOLVING_EDU_TASK_011',
|
|
1169
|
+
httpCode: 400,
|
|
1170
|
+
},
|
|
1171
|
+
SOLVING_EDU_TASK_TOO_MANY_IMAGES: {
|
|
1172
|
+
message: 'Превышено максимальное количество изображений',
|
|
1173
|
+
code: 'SOLVING_EDU_TASK_012',
|
|
1174
|
+
httpCode: 400,
|
|
1175
|
+
},
|
|
1115
1176
|
};
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SUPPORTED_FILES = exports.MAX_DOCX_UPLOAD_SIZE = exports.MAX_PDF_UPLOAD_SIZE = void 0;
|
|
3
|
+
exports.SUPPORTED_FILES = exports.MAX_IMAGE_UPLOAD_SIZE = exports.MAX_DOCX_UPLOAD_SIZE = exports.MAX_PDF_UPLOAD_SIZE = void 0;
|
|
4
4
|
const enums_1 = require("./enums");
|
|
5
5
|
exports.MAX_PDF_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
6
6
|
exports.MAX_DOCX_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
7
|
+
exports.MAX_IMAGE_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
7
8
|
exports.SUPPORTED_FILES = new Map([
|
|
8
9
|
['application/pdf', { type: enums_1.FILE_TYPE.PDF, size: exports.MAX_PDF_UPLOAD_SIZE }],
|
|
9
10
|
[
|
|
10
11
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
11
12
|
{ type: enums_1.FILE_TYPE.DOCX, size: exports.MAX_DOCX_UPLOAD_SIZE },
|
|
12
13
|
],
|
|
14
|
+
// Image formats
|
|
15
|
+
['image/jpeg', { type: enums_1.FILE_TYPE.IMAGE, size: exports.MAX_IMAGE_UPLOAD_SIZE }],
|
|
16
|
+
['image/jpg', { type: enums_1.FILE_TYPE.IMAGE, size: exports.MAX_IMAGE_UPLOAD_SIZE }],
|
|
17
|
+
['image/png', { type: enums_1.FILE_TYPE.IMAGE, size: exports.MAX_IMAGE_UPLOAD_SIZE }],
|
|
18
|
+
['image/webp', { type: enums_1.FILE_TYPE.IMAGE, size: exports.MAX_IMAGE_UPLOAD_SIZE }],
|
|
13
19
|
]);
|
package/build/constants/index.js
CHANGED
package/build/models/index.js
CHANGED
|
@@ -37,3 +37,4 @@ __exportStar(require("./subscription-upgrade-schema"), exports);
|
|
|
37
37
|
__exportStar(require("./referral-bonus.schema"), exports);
|
|
38
38
|
__exportStar(require("./user-referrals.schema"), exports);
|
|
39
39
|
__exportStar(require("./file.schema"), exports);
|
|
40
|
+
__exportStar(require("./solving-edu-task"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AttachedFileSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.AttachedFileSchema = zod_1.z.object({
|
|
6
|
+
uuid: zod_1.z.string().uuid(),
|
|
7
|
+
url: zod_1.z.string(),
|
|
8
|
+
name: zod_1.z.string(),
|
|
9
|
+
mimeType: zod_1.z.string(),
|
|
10
|
+
type: zod_1.z.string(),
|
|
11
|
+
size: zod_1.z.number(),
|
|
12
|
+
});
|
|
@@ -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("./solving-edu-task-model.schema"), exports);
|
|
18
|
+
__exportStar(require("./solving-edu-task-job.schema"), exports);
|
|
19
|
+
__exportStar(require("./solving-edu-task-config.schema"), exports);
|
|
20
|
+
__exportStar(require("./attached-file.schema"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SolvingEduTaskConfigSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const solving_edu_task_model_schema_1 = require("./solving-edu-task-model.schema");
|
|
6
|
+
exports.SolvingEduTaskConfigSchema = zod_1.z.object({
|
|
7
|
+
models: zod_1.z.array(solving_edu_task_model_schema_1.SolvingEduTaskModelSchema),
|
|
8
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SolvingEduTaskJobSchema = exports.SolvingEduTaskJobParamsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../constants");
|
|
6
|
+
const attached_file_schema_1 = require("./attached-file.schema");
|
|
7
|
+
exports.SolvingEduTaskJobParamsSchema = zod_1.z.object({
|
|
8
|
+
attachedFiles: zod_1.z.array(attached_file_schema_1.AttachedFileSchema),
|
|
9
|
+
});
|
|
10
|
+
exports.SolvingEduTaskJobSchema = zod_1.z.object({
|
|
11
|
+
uuid: zod_1.z.string().uuid(),
|
|
12
|
+
prompt: zod_1.z.string(),
|
|
13
|
+
aiOutput: zod_1.z.string().nullable().optional(),
|
|
14
|
+
reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
|
|
15
|
+
title: zod_1.z.string(),
|
|
16
|
+
status: zod_1.z.nativeEnum(constants_1.JOB_STATUS),
|
|
17
|
+
modelId: zod_1.z.string().uuid(),
|
|
18
|
+
price: zod_1.z.number(),
|
|
19
|
+
params: exports.SolvingEduTaskJobParamsSchema,
|
|
20
|
+
error: zod_1.z.string().nullable(),
|
|
21
|
+
userId: zod_1.z.string().uuid().nullable().optional(),
|
|
22
|
+
createdAt: zod_1.z.date(),
|
|
23
|
+
updatedAt: zod_1.z.date(),
|
|
24
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SolvingEduTaskModelSchema = exports.SolvingEduTaskModelParamsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../constants");
|
|
6
|
+
const icon_variants_schema_1 = require("../icon-variants.schema");
|
|
7
|
+
exports.SolvingEduTaskModelParamsSchema = zod_1.z.object({
|
|
8
|
+
imageAttachment: zod_1.z.object({
|
|
9
|
+
supported: zod_1.z.boolean(),
|
|
10
|
+
maxImages: zod_1.z.number(),
|
|
11
|
+
acceptedTypes: zod_1.z.array(zod_1.z.string()),
|
|
12
|
+
}),
|
|
13
|
+
});
|
|
14
|
+
exports.SolvingEduTaskModelSchema = zod_1.z.object({
|
|
15
|
+
uuid: zod_1.z.string().uuid(),
|
|
16
|
+
title: zod_1.z.string(),
|
|
17
|
+
description: zod_1.z.string(),
|
|
18
|
+
price: zod_1.z.number(),
|
|
19
|
+
order: zod_1.z.number(),
|
|
20
|
+
status: zod_1.z.nativeEnum(constants_1.AI_MODEL_STATUS),
|
|
21
|
+
maxPromptLength: zod_1.z.number(),
|
|
22
|
+
params: exports.SolvingEduTaskModelParamsSchema,
|
|
23
|
+
icons: icon_variants_schema_1.IconVariantsSchema,
|
|
24
|
+
});
|
package/commands/index.ts
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export namespace DeleteSolvingEduTaskJobByUUIDCommand {
|
|
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.object({
|
|
10
|
+
data: z.boolean(),
|
|
11
|
+
});
|
|
12
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskJobSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace ExecuteSolvingEduTaskCommand {
|
|
5
|
+
export const RequestSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
prompt: z.string().optional(),
|
|
8
|
+
modelId: z.string().uuid(),
|
|
9
|
+
params: z.object({
|
|
10
|
+
attachedFiles: z.array(z.string().uuid()),
|
|
11
|
+
}),
|
|
12
|
+
})
|
|
13
|
+
.superRefine((data, ctx) => {
|
|
14
|
+
const hasPrompt = typeof data.prompt === 'string' && data.prompt.length > 0;
|
|
15
|
+
const hasAttachedFiles = data.params.attachedFiles.length > 0;
|
|
16
|
+
|
|
17
|
+
if (!hasAttachedFiles && !hasPrompt) {
|
|
18
|
+
ctx.addIssue({
|
|
19
|
+
code: z.ZodIssueCode.custom,
|
|
20
|
+
message: 'prompt is required when no attachedFiles provided',
|
|
21
|
+
path: ['prompt'],
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
26
|
+
|
|
27
|
+
export const ResponseSchema = z.object({
|
|
28
|
+
data: SolvingEduTaskJobSchema,
|
|
29
|
+
});
|
|
30
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskJobSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindSolvingEduTaskJobByUUIDCommand {
|
|
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: SolvingEduTaskJobSchema,
|
|
12
|
+
});
|
|
13
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskJobSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindSolvingEduTaskJobsCommand {
|
|
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(SolvingEduTaskJobSchema),
|
|
14
|
+
totalPages: z.number(),
|
|
15
|
+
page: z.number(),
|
|
16
|
+
});
|
|
17
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskConfigSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace GetSolvingEduTaskConfigCommand {
|
|
5
|
+
export const ResponseSchema = z.object({
|
|
6
|
+
data: SolvingEduTaskConfigSchema,
|
|
7
|
+
});
|
|
8
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './execute-solving-edu-task.command';
|
|
2
|
+
export * from './retry-solving-edu-task-job.command';
|
|
3
|
+
export * from './find-solving-edu-task-job-by-uuid.command';
|
|
4
|
+
export * from './find-solving-edu-task-jobs.command';
|
|
5
|
+
export * from './get-solving-edu-task-config.command';
|
|
6
|
+
export * from './set-reaction-to-solving-edu-task-job.command';
|
|
7
|
+
export * from './update-solving-edu-task-job-title.command';
|
|
8
|
+
export * from './delete-solving-edu-task-job-by-uuid.command';
|
|
9
|
+
export * from './delete-all-solving-edu-task-jobs.command';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskJobSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace RetrySolvingEduTaskJobCommand {
|
|
5
|
+
export const RequestParamsSchema = z.object({
|
|
6
|
+
uuid: z.string().uuid(),
|
|
7
|
+
});
|
|
8
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
9
|
+
|
|
10
|
+
export const RequestBodySchema = z.object({
|
|
11
|
+
prompt: z.string().optional(),
|
|
12
|
+
modelId: z.string().uuid().optional(),
|
|
13
|
+
params: z
|
|
14
|
+
.object({
|
|
15
|
+
attachedFiles: z.array(z.string().uuid()),
|
|
16
|
+
})
|
|
17
|
+
.optional(),
|
|
18
|
+
});
|
|
19
|
+
export type RequestBody = z.infer<typeof RequestBodySchema>;
|
|
20
|
+
|
|
21
|
+
export const ResponseSchema = z.object({
|
|
22
|
+
data: SolvingEduTaskJobSchema,
|
|
23
|
+
});
|
|
24
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskJobSchema } from '../../models';
|
|
3
|
+
import { USER_REACTION } from '../../constants';
|
|
4
|
+
|
|
5
|
+
export namespace SetReactionToSolvingEduTaskJobCommand {
|
|
6
|
+
export const RequestSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
reaction: z.nativeEnum(USER_REACTION).nullable(),
|
|
9
|
+
dislikeReason: z.string().nullable().default(null),
|
|
10
|
+
})
|
|
11
|
+
.refine(
|
|
12
|
+
(data) => {
|
|
13
|
+
if (data.reaction !== USER_REACTION.DISLIKED && data.dislikeReason) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
message: 'Dislike reason is not allowed when reaction is not DISLIKED',
|
|
20
|
+
},
|
|
21
|
+
);
|
|
22
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
23
|
+
|
|
24
|
+
export const RequestParamsSchema = z.object({
|
|
25
|
+
uuid: z.string().uuid(),
|
|
26
|
+
});
|
|
27
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
28
|
+
|
|
29
|
+
export const ResponseSchema = z.object({
|
|
30
|
+
data: SolvingEduTaskJobSchema,
|
|
31
|
+
});
|
|
32
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskJobSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace UpdateSolvingEduTaskJobTitleCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
title: z.string(),
|
|
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: SolvingEduTaskJobSchema,
|
|
17
|
+
});
|
|
18
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './enums';
|
|
@@ -1116,4 +1116,65 @@ export const ERRORS = {
|
|
|
1116
1116
|
code: 'PAGE_QUESTION_006',
|
|
1117
1117
|
httpCode: 500,
|
|
1118
1118
|
},
|
|
1119
|
+
// SOLVING_EDU_TASK
|
|
1120
|
+
SOLVING_EDU_TASK_MODEL_NOT_FOUND: {
|
|
1121
|
+
message: 'Модель решения задач не найдена',
|
|
1122
|
+
code: 'SOLVING_EDU_TASK_001',
|
|
1123
|
+
httpCode: 404,
|
|
1124
|
+
},
|
|
1125
|
+
SOLVING_EDU_TASK_MODEL_INACTIVE: {
|
|
1126
|
+
message: 'Модель решения задач неактивна',
|
|
1127
|
+
code: 'SOLVING_EDU_TASK_002',
|
|
1128
|
+
httpCode: 400,
|
|
1129
|
+
},
|
|
1130
|
+
SOLVING_EDU_TASK_JOB_NOT_FOUND: {
|
|
1131
|
+
message: 'Задача решения не найдена',
|
|
1132
|
+
code: 'SOLVING_EDU_TASK_003',
|
|
1133
|
+
httpCode: 404,
|
|
1134
|
+
},
|
|
1135
|
+
SOLVING_EDU_TASK_JOB_CREATE_ERROR: {
|
|
1136
|
+
message: 'Ошибка при создании задачи решения',
|
|
1137
|
+
code: 'SOLVING_EDU_TASK_004',
|
|
1138
|
+
httpCode: 500,
|
|
1139
|
+
},
|
|
1140
|
+
SOLVING_EDU_TASK_JOB_FIND_ERROR: {
|
|
1141
|
+
message: 'Ошибка при поиске задачи решения',
|
|
1142
|
+
code: 'SOLVING_EDU_TASK_005',
|
|
1143
|
+
httpCode: 500,
|
|
1144
|
+
},
|
|
1145
|
+
SOLVING_EDU_TASK_JOB_SAVE_ERROR: {
|
|
1146
|
+
message: 'Ошибка при сохранении задачи решения',
|
|
1147
|
+
code: 'SOLVING_EDU_TASK_006',
|
|
1148
|
+
httpCode: 500,
|
|
1149
|
+
},
|
|
1150
|
+
SOLVING_EDU_TASK_JOB_DELETE_ERROR: {
|
|
1151
|
+
message: 'Ошибка при удалении задачи решения',
|
|
1152
|
+
code: 'SOLVING_EDU_TASK_007',
|
|
1153
|
+
httpCode: 500,
|
|
1154
|
+
},
|
|
1155
|
+
SOLVING_EDU_TASK_PROMPT_TOO_LONG: {
|
|
1156
|
+
message: 'Текст задачи слишком длинный',
|
|
1157
|
+
code: 'SOLVING_EDU_TASK_008',
|
|
1158
|
+
httpCode: 400,
|
|
1159
|
+
},
|
|
1160
|
+
SOLVING_EDU_TASK_AI_REQUEST_ERROR: {
|
|
1161
|
+
message: 'Ошибка при запросе к AI для решения задачи',
|
|
1162
|
+
code: 'SOLVING_EDU_TASK_009',
|
|
1163
|
+
httpCode: 500,
|
|
1164
|
+
},
|
|
1165
|
+
SOLVING_EDU_TASK_RETRY_INVALID_STATUS: {
|
|
1166
|
+
message: 'Невозможно повторить задачу с текущим статусом',
|
|
1167
|
+
code: 'SOLVING_EDU_TASK_010',
|
|
1168
|
+
httpCode: 400,
|
|
1169
|
+
},
|
|
1170
|
+
SOLVING_EDU_TASK_INVALID_IMAGE_FILE_TYPE: {
|
|
1171
|
+
message: 'Неподдерживаемый тип изображения. Разрешены только JPEG, PNG и WebP',
|
|
1172
|
+
code: 'SOLVING_EDU_TASK_011',
|
|
1173
|
+
httpCode: 400,
|
|
1174
|
+
},
|
|
1175
|
+
SOLVING_EDU_TASK_TOO_MANY_IMAGES: {
|
|
1176
|
+
message: 'Превышено максимальное количество изображений',
|
|
1177
|
+
code: 'SOLVING_EDU_TASK_012',
|
|
1178
|
+
httpCode: 400,
|
|
1179
|
+
},
|
|
1119
1180
|
};
|
|
@@ -2,6 +2,7 @@ import { FILE_TYPE } from './enums';
|
|
|
2
2
|
|
|
3
3
|
export const MAX_PDF_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
4
4
|
export const MAX_DOCX_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
5
|
+
export const MAX_IMAGE_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
5
6
|
|
|
6
7
|
export const SUPPORTED_FILES = new Map<
|
|
7
8
|
string,
|
|
@@ -15,4 +16,9 @@ export const SUPPORTED_FILES = new Map<
|
|
|
15
16
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
16
17
|
{ type: FILE_TYPE.DOCX, size: MAX_DOCX_UPLOAD_SIZE },
|
|
17
18
|
],
|
|
19
|
+
// Image formats
|
|
20
|
+
['image/jpeg', { type: FILE_TYPE.IMAGE, size: MAX_IMAGE_UPLOAD_SIZE }],
|
|
21
|
+
['image/jpg', { type: FILE_TYPE.IMAGE, size: MAX_IMAGE_UPLOAD_SIZE }],
|
|
22
|
+
['image/png', { type: FILE_TYPE.IMAGE, size: MAX_IMAGE_UPLOAD_SIZE }],
|
|
23
|
+
['image/webp', { type: FILE_TYPE.IMAGE, size: MAX_IMAGE_UPLOAD_SIZE }],
|
|
18
24
|
]);
|
package/constants/index.ts
CHANGED
package/models/index.ts
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export const AttachedFileSchema = z.object({
|
|
4
|
+
uuid: z.string().uuid(),
|
|
5
|
+
url: z.string(),
|
|
6
|
+
name: z.string(),
|
|
7
|
+
mimeType: z.string(),
|
|
8
|
+
type: z.string(),
|
|
9
|
+
size: z.number(),
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export type AttachedFile = z.infer<typeof AttachedFileSchema>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolvingEduTaskModelSchema } from './solving-edu-task-model.schema';
|
|
3
|
+
|
|
4
|
+
export const SolvingEduTaskConfigSchema = z.object({
|
|
5
|
+
models: z.array(SolvingEduTaskModelSchema),
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
export type SolvingEduTaskConfig = z.infer<typeof SolvingEduTaskConfigSchema>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { USER_REACTION, JOB_STATUS } from '../../constants';
|
|
3
|
+
import { AttachedFileSchema } from './attached-file.schema';
|
|
4
|
+
|
|
5
|
+
export const SolvingEduTaskJobParamsSchema = z.object({
|
|
6
|
+
attachedFiles: z.array(AttachedFileSchema),
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type SolvingEduTaskJobParams = z.infer<typeof SolvingEduTaskJobParamsSchema>;
|
|
10
|
+
|
|
11
|
+
export const SolvingEduTaskJobSchema = z.object({
|
|
12
|
+
uuid: z.string().uuid(),
|
|
13
|
+
prompt: z.string(),
|
|
14
|
+
aiOutput: z.string().nullable().optional(),
|
|
15
|
+
reaction: z.nativeEnum(USER_REACTION).nullable(),
|
|
16
|
+
title: z.string(),
|
|
17
|
+
status: z.nativeEnum(JOB_STATUS),
|
|
18
|
+
modelId: z.string().uuid(),
|
|
19
|
+
price: z.number(),
|
|
20
|
+
params: SolvingEduTaskJobParamsSchema,
|
|
21
|
+
error: z.string().nullable(),
|
|
22
|
+
userId: z.string().uuid().nullable().optional(),
|
|
23
|
+
createdAt: z.date(),
|
|
24
|
+
updatedAt: z.date(),
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export type SolvingEduTaskJob = z.infer<typeof SolvingEduTaskJobSchema>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AI_MODEL_STATUS } from '../../constants';
|
|
3
|
+
import { IconVariantsSchema } from '../icon-variants.schema';
|
|
4
|
+
|
|
5
|
+
export const SolvingEduTaskModelParamsSchema = z.object({
|
|
6
|
+
imageAttachment: z.object({
|
|
7
|
+
supported: z.boolean(),
|
|
8
|
+
maxImages: z.number(),
|
|
9
|
+
acceptedTypes: z.array(z.string()),
|
|
10
|
+
}),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export type SolvingEduTaskModelParams = z.infer<typeof SolvingEduTaskModelParamsSchema>;
|
|
14
|
+
|
|
15
|
+
export const SolvingEduTaskModelSchema = z.object({
|
|
16
|
+
uuid: z.string().uuid(),
|
|
17
|
+
title: z.string(),
|
|
18
|
+
description: z.string(),
|
|
19
|
+
price: z.number(),
|
|
20
|
+
order: z.number(),
|
|
21
|
+
status: z.nativeEnum(AI_MODEL_STATUS),
|
|
22
|
+
maxPromptLength: z.number(),
|
|
23
|
+
params: SolvingEduTaskModelParamsSchema,
|
|
24
|
+
icons: IconVariantsSchema,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export type SolvingEduTaskModel = z.infer<typeof SolvingEduTaskModelSchema>;
|