@purpleschool/gptbot-tools 0.2.7-stage → 0.2.8-stage

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/build/html-page-builder/commands/create-html-page-builder-session.command.js +26 -0
  2. package/build/html-page-builder/commands/get-html-page-builder-price.command.js +15 -0
  3. package/build/html-page-builder/commands/html-page-builder-execute.command.js +31 -0
  4. package/build/html-page-builder/commands/index.js +22 -0
  5. package/build/html-page-builder/commands/soft-delete-all-html-page-builder-sessions.command.js +20 -0
  6. package/build/html-page-builder/commands/soft-delete-html-page-builder-session-by-uuid.command.js +14 -0
  7. package/build/html-page-builder/commands/update-html-page-builder-session-title.command.js +16 -0
  8. package/build/html-page-builder/enums/html-page-builder-session-stage.enum.js +8 -0
  9. package/build/html-page-builder/enums/index.js +17 -0
  10. package/build/html-page-builder/index.js +21 -0
  11. package/build/html-page-builder/models/html-page-builder-config.schema.js +8 -0
  12. package/build/html-page-builder/models/html-page-builder-job.schema.js +34 -0
  13. package/build/html-page-builder/models/html-page-builder-model.schema.js +18 -0
  14. package/build/html-page-builder/models/html-page-builder-session.schema.js +18 -0
  15. package/build/html-page-builder/models/index.js +20 -0
  16. package/build/html-page-builder/queries/find-html-page-builder-session-by-id.query.js +24 -0
  17. package/build/html-page-builder/queries/find-html-page-builder-sessions.query.js +28 -0
  18. package/build/html-page-builder/queries/get-html-page-builder-config.query.js +11 -0
  19. package/build/html-page-builder/queries/index.js +19 -0
  20. package/build/html-page-builder/routes/html-page-builder.amqp.routes.js +14 -0
  21. package/build/html-page-builder/routes/index.js +17 -0
  22. package/build/index.js +3 -0
  23. package/build/tools/enums/tool-content-type.enum.js +1 -0
  24. package/build/tools/enums/tool-type.enum.js +1 -0
  25. package/build/tools/models/global-tools-config.schema.js +2 -0
  26. package/build/tools/models/tools-with-configs.schema.js +5 -0
  27. package/html-page-builder/commands/create-html-page-builder-session.command.ts +29 -0
  28. package/html-page-builder/commands/get-html-page-builder-price.command.ts +17 -0
  29. package/html-page-builder/commands/html-page-builder-execute.command.ts +34 -0
  30. package/html-page-builder/commands/index.ts +6 -0
  31. package/html-page-builder/commands/soft-delete-all-html-page-builder-sessions.command.ts +23 -0
  32. package/html-page-builder/commands/soft-delete-html-page-builder-session-by-uuid.command.ts +14 -0
  33. package/html-page-builder/commands/update-html-page-builder-session-title.command.ts +16 -0
  34. package/html-page-builder/enums/html-page-builder-session-stage.enum.ts +4 -0
  35. package/html-page-builder/enums/index.ts +1 -0
  36. package/html-page-builder/index.ts +5 -0
  37. package/html-page-builder/models/html-page-builder-config.schema.ts +8 -0
  38. package/html-page-builder/models/html-page-builder-job.schema.ts +37 -0
  39. package/html-page-builder/models/html-page-builder-model.schema.ts +18 -0
  40. package/html-page-builder/models/html-page-builder-session.schema.ts +18 -0
  41. package/html-page-builder/models/index.ts +4 -0
  42. package/html-page-builder/queries/find-html-page-builder-session-by-id.query.ts +25 -0
  43. package/html-page-builder/queries/find-html-page-builder-sessions.query.ts +33 -0
  44. package/html-page-builder/queries/get-html-page-builder-config.query.ts +11 -0
  45. package/html-page-builder/queries/index.ts +3 -0
  46. package/html-page-builder/routes/html-page-builder.amqp.routes.ts +11 -0
  47. package/html-page-builder/routes/index.ts +1 -0
  48. package/index.ts +3 -0
  49. package/package.json +1 -1
  50. package/tools/enums/tool-content-type.enum.ts +1 -0
  51. package/tools/enums/tool-type.enum.ts +1 -0
  52. package/tools/models/global-tools-config.schema.ts +2 -0
  53. package/tools/models/tools-with-configs.schema.ts +7 -0
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateHtmlPageBuilderSessionCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ const models_1 = require("../models");
7
+ var CreateHtmlPageBuilderSessionCommand;
8
+ (function (CreateHtmlPageBuilderSessionCommand) {
9
+ CreateHtmlPageBuilderSessionCommand.RequestSchema = zod_1.z
10
+ .object({
11
+ userId: zod_1.z.string().uuid().nullable().optional(),
12
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
13
+ title: zod_1.z.string().optional(),
14
+ })
15
+ .refine((data) => {
16
+ return !(data.userId && data.unregisteredUserId);
17
+ }, {
18
+ message: 'userId and unregisteredUserId cannot be used together',
19
+ path: ['userId', 'unregisteredUserId'],
20
+ })
21
+ .refine((data) => { var _a; return Boolean((_a = data.userId) !== null && _a !== void 0 ? _a : data.unregisteredUserId); }, {
22
+ message: 'userId or unregisteredUserId is required',
23
+ path: ['userId', 'unregisteredUserId'],
24
+ });
25
+ CreateHtmlPageBuilderSessionCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(models_1.HtmlPageBuilderSessionSchema);
26
+ })(CreateHtmlPageBuilderSessionCommand || (exports.CreateHtmlPageBuilderSessionCommand = CreateHtmlPageBuilderSessionCommand = {}));
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetHtmlPageBuilderPriceCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ var GetHtmlPageBuilderPriceCommand;
7
+ (function (GetHtmlPageBuilderPriceCommand) {
8
+ GetHtmlPageBuilderPriceCommand.RequestSchema = zod_1.z.object({
9
+ modelId: zod_1.z.string().uuid(),
10
+ });
11
+ GetHtmlPageBuilderPriceCommand.ResponseDataSchema = zod_1.z.object({
12
+ price: zod_1.z.number(),
13
+ });
14
+ GetHtmlPageBuilderPriceCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(GetHtmlPageBuilderPriceCommand.ResponseDataSchema);
15
+ })(GetHtmlPageBuilderPriceCommand || (exports.GetHtmlPageBuilderPriceCommand = GetHtmlPageBuilderPriceCommand = {}));
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HtmlPageBuilderExecuteCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ const models_1 = require("../models");
7
+ var HtmlPageBuilderExecuteCommand;
8
+ (function (HtmlPageBuilderExecuteCommand) {
9
+ HtmlPageBuilderExecuteCommand.RequestSchema = zod_1.z
10
+ .object({
11
+ userId: zod_1.z.string().uuid().nullable().optional(),
12
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
13
+ sessionId: zod_1.z.string().uuid().optional(),
14
+ userPrompt: zod_1.z.string(),
15
+ modelId: zod_1.z.string().uuid(),
16
+ params: models_1.HtmlPageBuilderJobParamsSchema,
17
+ tokenReservationId: zod_1.z.string().uuid().optional(),
18
+ precalculatedPrice: zod_1.z.number().optional(),
19
+ })
20
+ .refine((data) => {
21
+ return !(data.userId && data.unregisteredUserId);
22
+ }, {
23
+ message: 'userId and unregisteredUserId cannot be used together',
24
+ path: ['userId', 'unregisteredUserId'],
25
+ })
26
+ .refine((data) => { var _a; return Boolean((_a = data.userId) !== null && _a !== void 0 ? _a : data.unregisteredUserId); }, {
27
+ message: 'userId or unregisteredUserId is required',
28
+ path: ['userId', 'unregisteredUserId'],
29
+ });
30
+ HtmlPageBuilderExecuteCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(models_1.HtmlPageBuilderSessionSchema);
31
+ })(HtmlPageBuilderExecuteCommand || (exports.HtmlPageBuilderExecuteCommand = HtmlPageBuilderExecuteCommand = {}));
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./create-html-page-builder-session.command"), exports);
18
+ __exportStar(require("./get-html-page-builder-price.command"), exports);
19
+ __exportStar(require("./html-page-builder-execute.command"), exports);
20
+ __exportStar(require("./soft-delete-all-html-page-builder-sessions.command"), exports);
21
+ __exportStar(require("./soft-delete-html-page-builder-session-by-uuid.command"), exports);
22
+ __exportStar(require("./update-html-page-builder-session-title.command"), exports);
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SoftDeleteAllHtmlPageBuilderSessionsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ var SoftDeleteAllHtmlPageBuilderSessionsCommand;
7
+ (function (SoftDeleteAllHtmlPageBuilderSessionsCommand) {
8
+ SoftDeleteAllHtmlPageBuilderSessionsCommand.RequestSchema = zod_1.z
9
+ .object({
10
+ userId: zod_1.z.string().uuid().optional(),
11
+ unregisteredUserId: zod_1.z.string().uuid().optional(),
12
+ })
13
+ .refine((data) => {
14
+ return !(data.userId && data.unregisteredUserId);
15
+ }, {
16
+ message: 'userId and unregisteredUserId cannot be used together',
17
+ path: ['userId', 'unregisteredUserId'],
18
+ });
19
+ SoftDeleteAllHtmlPageBuilderSessionsCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(zod_1.z.boolean());
20
+ })(SoftDeleteAllHtmlPageBuilderSessionsCommand || (exports.SoftDeleteAllHtmlPageBuilderSessionsCommand = SoftDeleteAllHtmlPageBuilderSessionsCommand = {}));
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SoftDeleteHtmlPageBuilderSessionByUuidCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ var SoftDeleteHtmlPageBuilderSessionByUuidCommand;
7
+ (function (SoftDeleteHtmlPageBuilderSessionByUuidCommand) {
8
+ SoftDeleteHtmlPageBuilderSessionByUuidCommand.RequestSchema = zod_1.z.object({
9
+ userId: zod_1.z.string().uuid().nullable().optional(),
10
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
11
+ uuid: zod_1.z.string().uuid(),
12
+ });
13
+ SoftDeleteHtmlPageBuilderSessionByUuidCommand.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(zod_1.z.boolean());
14
+ })(SoftDeleteHtmlPageBuilderSessionByUuidCommand || (exports.SoftDeleteHtmlPageBuilderSessionByUuidCommand = SoftDeleteHtmlPageBuilderSessionByUuidCommand = {}));
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateHtmlPageBuilderSessionTitleCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const models_1 = require("../models");
7
+ var UpdateHtmlPageBuilderSessionTitleCommand;
8
+ (function (UpdateHtmlPageBuilderSessionTitleCommand) {
9
+ UpdateHtmlPageBuilderSessionTitleCommand.RequestSchema = zod_1.z.object({
10
+ userId: zod_1.z.string().uuid().nullable().optional(),
11
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
12
+ uuid: zod_1.z.string().uuid(),
13
+ title: zod_1.z.string(),
14
+ });
15
+ UpdateHtmlPageBuilderSessionTitleCommand.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.HtmlPageBuilderSessionSchema);
16
+ })(UpdateHtmlPageBuilderSessionTitleCommand || (exports.UpdateHtmlPageBuilderSessionTitleCommand = UpdateHtmlPageBuilderSessionTitleCommand = {}));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTML_PAGE_BUILDER_SESSION_STAGE = void 0;
4
+ var HTML_PAGE_BUILDER_SESSION_STAGE;
5
+ (function (HTML_PAGE_BUILDER_SESSION_STAGE) {
6
+ HTML_PAGE_BUILDER_SESSION_STAGE["BUILD"] = "BUILD";
7
+ HTML_PAGE_BUILDER_SESSION_STAGE["REFINE"] = "REFINE";
8
+ })(HTML_PAGE_BUILDER_SESSION_STAGE || (exports.HTML_PAGE_BUILDER_SESSION_STAGE = HTML_PAGE_BUILDER_SESSION_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("./html-page-builder-session-stage.enum"), 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("./commands"), exports);
18
+ __exportStar(require("./enums"), exports);
19
+ __exportStar(require("./models"), exports);
20
+ __exportStar(require("./queries"), exports);
21
+ __exportStar(require("./routes"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HtmlPageBuilderConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const html_page_builder_model_schema_1 = require("./html-page-builder-model.schema");
6
+ exports.HtmlPageBuilderConfigSchema = zod_1.z.object({
7
+ models: zod_1.z.array(html_page_builder_model_schema_1.HtmlPageBuilderModelSchema),
8
+ });
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HtmlPageBuilderJobSchema = exports.HtmlPageBuilderJobParamsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const tools_1 = require("../../tools");
6
+ const common_1 = require("../../common");
7
+ exports.HtmlPageBuilderJobParamsSchema = zod_1.z.object({
8
+ attachedFiles: zod_1.z.array(common_1.AttachedFileSchema),
9
+ });
10
+ exports.HtmlPageBuilderJobSchema = zod_1.z.object({
11
+ uuid: zod_1.z.string(),
12
+ sessionId: zod_1.z.string(),
13
+ modelId: zod_1.z.string(),
14
+ userPrompt: zod_1.z.string(),
15
+ title: zod_1.z.string(),
16
+ generatedHtml: zod_1.z.string().nullable().optional(),
17
+ status: zod_1.z.nativeEnum(tools_1.JOB_STATUS),
18
+ error: zod_1.z.string().nullable(),
19
+ internalError: zod_1.z.string().nullable().optional(),
20
+ price: zod_1.z.number(),
21
+ reaction: zod_1.z.nativeEnum(common_1.USER_REACTION).nullable(),
22
+ dislikeReason: zod_1.z.string().nullable(),
23
+ inputTokens: zod_1.z.number().nullable().optional(),
24
+ outputTokens: zod_1.z.number().nullable().optional(),
25
+ totalTokens: zod_1.z.number().nullable().optional(),
26
+ tokenReservationId: zod_1.z.string().nullable().optional(),
27
+ userId: zod_1.z.string().nullable().optional(),
28
+ unregisteredUserId: zod_1.z.string().nullable().optional(),
29
+ params: exports.HtmlPageBuilderJobParamsSchema,
30
+ isDeleted: zod_1.z.boolean(),
31
+ createdAt: zod_1.z.date(),
32
+ completedAt: zod_1.z.date().nullable().optional(),
33
+ updatedAt: zod_1.z.date(),
34
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HtmlPageBuilderModelSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ exports.HtmlPageBuilderModelSchema = zod_1.z.object({
7
+ uuid: zod_1.z.string(),
8
+ title: zod_1.z.string(),
9
+ description: zod_1.z.string(),
10
+ aiModel: zod_1.z.string(),
11
+ price: zod_1.z.number(),
12
+ order: zod_1.z.number(),
13
+ status: zod_1.z.nativeEnum(common_1.TOOL_MODEL_STATUS),
14
+ icons: common_1.IconVariantsSchema,
15
+ maxPromptLength: zod_1.z.number(),
16
+ createdAt: zod_1.z.date(),
17
+ updatedAt: zod_1.z.date(),
18
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HtmlPageBuilderSessionSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const tools_1 = require("../../tools");
6
+ const enums_1 = require("../enums");
7
+ exports.HtmlPageBuilderSessionSchema = zod_1.z.object({
8
+ uuid: zod_1.z.string(),
9
+ title: zod_1.z.string(),
10
+ status: zod_1.z.nativeEnum(tools_1.JOB_STATUS),
11
+ stage: zod_1.z.nativeEnum(enums_1.HTML_PAGE_BUILDER_SESSION_STAGE),
12
+ currentHtml: zod_1.z.string().nullable().optional(),
13
+ userId: zod_1.z.string().nullable().optional(),
14
+ unregisteredUserId: zod_1.z.string().nullable().optional(),
15
+ isDeleted: zod_1.z.boolean(),
16
+ createdAt: zod_1.z.date(),
17
+ updatedAt: zod_1.z.date(),
18
+ });
@@ -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("./html-page-builder-config.schema"), exports);
18
+ __exportStar(require("./html-page-builder-job.schema"), exports);
19
+ __exportStar(require("./html-page-builder-model.schema"), exports);
20
+ __exportStar(require("./html-page-builder-session.schema"), exports);
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindHtmlPageBuilderSessionByIdQuery = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const models_1 = require("../models");
7
+ var FindHtmlPageBuilderSessionByIdQuery;
8
+ (function (FindHtmlPageBuilderSessionByIdQuery) {
9
+ FindHtmlPageBuilderSessionByIdQuery.RequestSchema = zod_1.z
10
+ .object({
11
+ uuid: zod_1.z.string().uuid(),
12
+ userId: zod_1.z.string().uuid().nullable().optional(),
13
+ unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
14
+ })
15
+ .refine((data) => { var _a; return Boolean((_a = data.userId) !== null && _a !== void 0 ? _a : data.unregisteredUserId); }, {
16
+ message: 'userId or unregisteredUserId is required',
17
+ path: ['userId', 'unregisteredUserId'],
18
+ })
19
+ .refine((data) => !(data.userId && data.unregisteredUserId), {
20
+ message: 'userId and unregisteredUserId cannot be used together',
21
+ path: ['userId', 'unregisteredUserId'],
22
+ });
23
+ FindHtmlPageBuilderSessionByIdQuery.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.HtmlPageBuilderSessionSchema);
24
+ })(FindHtmlPageBuilderSessionByIdQuery || (exports.FindHtmlPageBuilderSessionByIdQuery = FindHtmlPageBuilderSessionByIdQuery = {}));
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindHtmlPageBuilderSessionsQuery = void 0;
4
+ const zod_1 = require("zod");
5
+ const command_response_schema_1 = require("../../common/models/command-response.schema");
6
+ const models_1 = require("../models");
7
+ var FindHtmlPageBuilderSessionsQuery;
8
+ (function (FindHtmlPageBuilderSessionsQuery) {
9
+ FindHtmlPageBuilderSessionsQuery.RequestSchema = zod_1.z
10
+ .object({
11
+ userId: zod_1.z.string().uuid().optional(),
12
+ unregisteredUserId: zod_1.z.string().uuid().optional(),
13
+ title: zod_1.z.string().optional(),
14
+ limit: zod_1.z.coerce.number().min(1).optional(),
15
+ offset: zod_1.z.coerce.number().min(0).default(0).optional(),
16
+ })
17
+ .refine((data) => {
18
+ return !(data.userId && data.unregisteredUserId);
19
+ }, {
20
+ message: 'userId and unregisteredUserId cannot be used together',
21
+ path: ['userId', 'unregisteredUserId'],
22
+ });
23
+ FindHtmlPageBuilderSessionsQuery.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(zod_1.z.object({
24
+ data: zod_1.z.array(models_1.HtmlPageBuilderSessionSchema),
25
+ page: zod_1.z.number(),
26
+ totalPages: zod_1.z.number(),
27
+ }));
28
+ })(FindHtmlPageBuilderSessionsQuery || (exports.FindHtmlPageBuilderSessionsQuery = FindHtmlPageBuilderSessionsQuery = {}));
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetHtmlPageBuilderConfigQuery = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const models_1 = require("../models");
7
+ var GetHtmlPageBuilderConfigQuery;
8
+ (function (GetHtmlPageBuilderConfigQuery) {
9
+ GetHtmlPageBuilderConfigQuery.RequestSchema = zod_1.z.object({});
10
+ GetHtmlPageBuilderConfigQuery.ResponseSchema = (0, common_1.ICommandResponseSchema)(models_1.HtmlPageBuilderConfigSchema);
11
+ })(GetHtmlPageBuilderConfigQuery || (exports.GetHtmlPageBuilderConfigQuery = GetHtmlPageBuilderConfigQuery = {}));
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./find-html-page-builder-session-by-id.query"), exports);
18
+ __exportStar(require("./find-html-page-builder-sessions.query"), exports);
19
+ __exportStar(require("./get-html-page-builder-config.query"), exports);
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTML_PAGE_BUILDER_AMQP_ROUTES = void 0;
4
+ exports.HTML_PAGE_BUILDER_AMQP_ROUTES = {
5
+ CONFIG: 'tools.html-page-builder.config.rpc',
6
+ EXECUTE: 'tools.html-page-builder.execute.rpc',
7
+ GET_PRICE: 'tools.html-page-builder.get-price.rpc',
8
+ CREATE_SESSION: 'tools.html-page-builder.sessions.create.rpc',
9
+ LIST_SESSIONS: 'tools.html-page-builder.sessions.list.rpc',
10
+ GET_SESSION: 'tools.html-page-builder.sessions.get.rpc',
11
+ UPDATE_SESSION_TITLE: 'tools.html-page-builder.sessions.update-title.rpc',
12
+ SOFT_DELETE_SESSION: 'tools.html-page-builder.sessions.soft-delete.rpc',
13
+ SOFT_DELETE_ALL_SESSIONS: 'tools.html-page-builder.sessions.soft-delete-all.rpc',
14
+ };
@@ -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("./html-page-builder.amqp.routes"), exports);
package/build/index.js CHANGED
@@ -57,6 +57,7 @@ __exportStar(require("./marketplace-card"), exports);
57
57
  __exportStar(require("./analytics"), exports);
58
58
  __exportStar(require("./solving-edu-task"), exports);
59
59
  __exportStar(require("./spell-corrector"), exports);
60
+ __exportStar(require("./html-page-builder"), exports);
60
61
  __exportStar(require("./tool-workspace"), exports);
61
62
  const common = __importStar(require("./common"));
62
63
  const paraphrase = __importStar(require("./paraphrase"));
@@ -77,6 +78,7 @@ const marketplaceCard = __importStar(require("./marketplace-card"));
77
78
  const analytics = __importStar(require("./analytics"));
78
79
  const solvingEduTask = __importStar(require("./solving-edu-task"));
79
80
  const spellCorrector = __importStar(require("./spell-corrector"));
81
+ const htmlPageBuilder = __importStar(require("./html-page-builder"));
80
82
  const accountMerge = __importStar(require("./account-merge"));
81
83
  const toolWorkspace = __importStar(require("./tool-workspace"));
82
84
  var ToolService;
@@ -100,6 +102,7 @@ var ToolService;
100
102
  ToolService.Analytics = analytics;
101
103
  ToolService.SolvingEduTask = solvingEduTask;
102
104
  ToolService.SpellCorrector = spellCorrector;
105
+ ToolService.HtmlPageBuilder = htmlPageBuilder;
103
106
  ToolService.AccountMerge = accountMerge;
104
107
  ToolService.ToolWorkspace = toolWorkspace;
105
108
  })(ToolService || (exports.ToolService = ToolService = {}));
@@ -18,4 +18,5 @@ var TOOL_CONTENT_TYPE;
18
18
  TOOL_CONTENT_TYPE["MARKETPLACE_CARD_GENERATION"] = "MARKETPLACE_CARD";
19
19
  TOOL_CONTENT_TYPE["SOLVING_EDU_TASK"] = "SOLVING_EDU_TASK";
20
20
  TOOL_CONTENT_TYPE["SPELL_CORRECTOR"] = "SPELL_CORRECTOR";
21
+ TOOL_CONTENT_TYPE["HTML_PAGE_BUILDER"] = "HTML_PAGE_BUILDER";
21
22
  })(TOOL_CONTENT_TYPE || (exports.TOOL_CONTENT_TYPE = TOOL_CONTENT_TYPE = {}));
@@ -20,4 +20,5 @@ var TOOL_TYPE;
20
20
  TOOL_TYPE["INTERIOR_DESIGN"] = "INTERIOR_DESIGN";
21
21
  TOOL_TYPE["SPELL_CORRECTOR"] = "SPELL_CORRECTOR";
22
22
  TOOL_TYPE["SOLVING_EDU_TASK"] = "SOLVING_EDU_TASK";
23
+ TOOL_TYPE["HTML_PAGE_BUILDER"] = "HTML_PAGE_BUILDER";
23
24
  })(TOOL_TYPE || (exports.TOOL_TYPE = TOOL_TYPE = {}));
@@ -17,6 +17,7 @@ const models_1 = require("../../marketplace-card/models");
17
17
  const interior_design_1 = require("../../interior-design");
18
18
  const solving_edu_task_1 = require("../../solving-edu-task");
19
19
  const spell_corrector_1 = require("../../spell-corrector");
20
+ const models_2 = require("../../html-page-builder/models");
20
21
  exports.GlobalToolsConfigSchema = zod_1.z.object({
21
22
  [enums_1.TOOL_CONTENT_TYPE.VIDEO]: video_1.VideoConfigSchema,
22
23
  [enums_1.TOOL_CONTENT_TYPE.MUSIC]: music_1.MusicConfigSchema,
@@ -32,4 +33,5 @@ exports.GlobalToolsConfigSchema = zod_1.z.object({
32
33
  [enums_1.TOOL_CONTENT_TYPE.INTERIOR_DESIGN]: interior_design_1.InteriorDesignConfigSchema,
33
34
  [enums_1.TOOL_CONTENT_TYPE.SOLVING_EDU_TASK]: solving_edu_task_1.SolvingEduTaskConfigSchema,
34
35
  [enums_1.TOOL_CONTENT_TYPE.SPELL_CORRECTOR]: spell_corrector_1.SpellCorrectorToolConfigSchema,
36
+ [enums_1.TOOL_CONTENT_TYPE.HTML_PAGE_BUILDER]: models_2.HtmlPageBuilderConfigSchema,
35
37
  });
@@ -18,6 +18,7 @@ const tool_schema_1 = require("./tool.schema");
18
18
  const interior_design_1 = require("../../interior-design");
19
19
  const solving_edu_task_1 = require("../../solving-edu-task");
20
20
  const spell_corrector_1 = require("../../spell-corrector");
21
+ const models_2 = require("../../html-page-builder/models");
21
22
  // Discriminated union array: Tools with their configs
22
23
  exports.ToolWithConfigSchema = zod_1.z.discriminatedUnion('contentType', [
23
24
  tool_schema_1.ToolSchema.merge(zod_1.z.object({
@@ -76,5 +77,9 @@ exports.ToolWithConfigSchema = zod_1.z.discriminatedUnion('contentType', [
76
77
  contentType: zod_1.z.literal(enums_1.TOOL_CONTENT_TYPE.SPELL_CORRECTOR),
77
78
  config: spell_corrector_1.SpellCorrectorToolConfigSchema,
78
79
  })),
80
+ tool_schema_1.ToolSchema.merge(zod_1.z.object({
81
+ contentType: zod_1.z.literal(enums_1.TOOL_CONTENT_TYPE.HTML_PAGE_BUILDER),
82
+ config: models_2.HtmlPageBuilderConfigSchema,
83
+ })),
79
84
  ]);
80
85
  exports.ToolsWithConfigsSchema = zod_1.z.array(exports.ToolWithConfigSchema);
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common/models/command-response.schema';
3
+ import { HtmlPageBuilderSessionSchema } from '../models';
4
+
5
+ export namespace CreateHtmlPageBuilderSessionCommand {
6
+ export const RequestSchema = z
7
+ .object({
8
+ userId: z.string().uuid().nullable().optional(),
9
+ unregisteredUserId: z.string().uuid().nullable().optional(),
10
+ title: z.string().optional(),
11
+ })
12
+ .refine(
13
+ (data) => {
14
+ return !(data.userId && data.unregisteredUserId);
15
+ },
16
+ {
17
+ message: 'userId and unregisteredUserId cannot be used together',
18
+ path: ['userId', 'unregisteredUserId'],
19
+ },
20
+ )
21
+ .refine((data) => Boolean(data.userId ?? data.unregisteredUserId), {
22
+ message: 'userId or unregisteredUserId is required',
23
+ path: ['userId', 'unregisteredUserId'],
24
+ });
25
+ export type Request = z.infer<typeof RequestSchema>;
26
+
27
+ export const ResponseSchema = ICommandResponseSchema(HtmlPageBuilderSessionSchema);
28
+ export type Response = z.infer<typeof ResponseSchema>;
29
+ }
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common/models/command-response.schema';
3
+
4
+ export namespace GetHtmlPageBuilderPriceCommand {
5
+ export const RequestSchema = z.object({
6
+ modelId: z.string().uuid(),
7
+ });
8
+ export type Request = z.infer<typeof RequestSchema>;
9
+
10
+ export const ResponseDataSchema = z.object({
11
+ price: z.number(),
12
+ });
13
+ export type ResponseData = z.infer<typeof ResponseDataSchema>;
14
+
15
+ export const ResponseSchema = ICommandResponseSchema(ResponseDataSchema);
16
+ export type Response = z.infer<typeof ResponseSchema>;
17
+ }
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common/models/command-response.schema';
3
+ import { HtmlPageBuilderJobParamsSchema, HtmlPageBuilderSessionSchema } from '../models';
4
+
5
+ export namespace HtmlPageBuilderExecuteCommand {
6
+ export const RequestSchema = z
7
+ .object({
8
+ userId: z.string().uuid().nullable().optional(),
9
+ unregisteredUserId: z.string().uuid().nullable().optional(),
10
+ sessionId: z.string().uuid().optional(),
11
+ userPrompt: z.string(),
12
+ modelId: z.string().uuid(),
13
+ params: HtmlPageBuilderJobParamsSchema,
14
+ tokenReservationId: z.string().uuid().optional(),
15
+ precalculatedPrice: z.number().optional(),
16
+ })
17
+ .refine(
18
+ (data) => {
19
+ return !(data.userId && data.unregisteredUserId);
20
+ },
21
+ {
22
+ message: 'userId and unregisteredUserId cannot be used together',
23
+ path: ['userId', 'unregisteredUserId'],
24
+ },
25
+ )
26
+ .refine((data) => Boolean(data.userId ?? data.unregisteredUserId), {
27
+ message: 'userId or unregisteredUserId is required',
28
+ path: ['userId', 'unregisteredUserId'],
29
+ });
30
+ export type Request = z.infer<typeof RequestSchema>;
31
+
32
+ export const ResponseSchema = ICommandResponseSchema(HtmlPageBuilderSessionSchema);
33
+ export type Response = z.infer<typeof ResponseSchema>;
34
+ }
@@ -0,0 +1,6 @@
1
+ export * from './create-html-page-builder-session.command';
2
+ export * from './get-html-page-builder-price.command';
3
+ export * from './html-page-builder-execute.command';
4
+ export * from './soft-delete-all-html-page-builder-sessions.command';
5
+ export * from './soft-delete-html-page-builder-session-by-uuid.command';
6
+ export * from './update-html-page-builder-session-title.command';
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common/models/command-response.schema';
3
+
4
+ export namespace SoftDeleteAllHtmlPageBuilderSessionsCommand {
5
+ export const RequestSchema = z
6
+ .object({
7
+ userId: z.string().uuid().optional(),
8
+ unregisteredUserId: z.string().uuid().optional(),
9
+ })
10
+ .refine(
11
+ (data) => {
12
+ return !(data.userId && data.unregisteredUserId);
13
+ },
14
+ {
15
+ message: 'userId and unregisteredUserId cannot be used together',
16
+ path: ['userId', 'unregisteredUserId'],
17
+ },
18
+ );
19
+ export type Request = z.infer<typeof RequestSchema>;
20
+
21
+ export const ResponseSchema = ICommandResponseSchema(z.boolean());
22
+ export type Response = z.infer<typeof ResponseSchema>;
23
+ }
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common/models/command-response.schema';
3
+
4
+ export namespace SoftDeleteHtmlPageBuilderSessionByUuidCommand {
5
+ export const RequestSchema = z.object({
6
+ userId: z.string().uuid().nullable().optional(),
7
+ unregisteredUserId: z.string().uuid().nullable().optional(),
8
+ uuid: z.string().uuid(),
9
+ });
10
+ export type Request = z.infer<typeof RequestSchema>;
11
+
12
+ export const ResponseSchema = ICommandResponseSchema(z.boolean());
13
+ export type Response = z.infer<typeof ResponseSchema>;
14
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { HtmlPageBuilderSessionSchema } from '../models';
4
+
5
+ export namespace UpdateHtmlPageBuilderSessionTitleCommand {
6
+ export const RequestSchema = z.object({
7
+ userId: z.string().uuid().nullable().optional(),
8
+ unregisteredUserId: z.string().uuid().nullable().optional(),
9
+ uuid: z.string().uuid(),
10
+ title: z.string(),
11
+ });
12
+ export type Request = z.infer<typeof RequestSchema>;
13
+
14
+ export const ResponseSchema = ICommandResponseSchema(HtmlPageBuilderSessionSchema);
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,4 @@
1
+ export enum HTML_PAGE_BUILDER_SESSION_STAGE {
2
+ BUILD = 'BUILD',
3
+ REFINE = 'REFINE',
4
+ }
@@ -0,0 +1 @@
1
+ export * from './html-page-builder-session-stage.enum';
@@ -0,0 +1,5 @@
1
+ export * from './commands';
2
+ export * from './enums';
3
+ export * from './models';
4
+ export * from './queries';
5
+ export * from './routes';
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { HtmlPageBuilderModelSchema } from './html-page-builder-model.schema';
3
+
4
+ export const HtmlPageBuilderConfigSchema = z.object({
5
+ models: z.array(HtmlPageBuilderModelSchema),
6
+ });
7
+
8
+ export type HtmlPageBuilderConfig = z.infer<typeof HtmlPageBuilderConfigSchema>;
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ import { JOB_STATUS } from '../../tools';
3
+ import { AttachedFileSchema, USER_REACTION } from '../../common';
4
+
5
+ export const HtmlPageBuilderJobParamsSchema = z.object({
6
+ attachedFiles: z.array(AttachedFileSchema),
7
+ });
8
+
9
+ export type HtmlPageBuilderJobParams = z.infer<typeof HtmlPageBuilderJobParamsSchema>;
10
+
11
+ export const HtmlPageBuilderJobSchema = z.object({
12
+ uuid: z.string(),
13
+ sessionId: z.string(),
14
+ modelId: z.string(),
15
+ userPrompt: z.string(),
16
+ title: z.string(),
17
+ generatedHtml: z.string().nullable().optional(),
18
+ status: z.nativeEnum(JOB_STATUS),
19
+ error: z.string().nullable(),
20
+ internalError: z.string().nullable().optional(),
21
+ price: z.number(),
22
+ reaction: z.nativeEnum(USER_REACTION).nullable(),
23
+ dislikeReason: z.string().nullable(),
24
+ inputTokens: z.number().nullable().optional(),
25
+ outputTokens: z.number().nullable().optional(),
26
+ totalTokens: z.number().nullable().optional(),
27
+ tokenReservationId: z.string().nullable().optional(),
28
+ userId: z.string().nullable().optional(),
29
+ unregisteredUserId: z.string().nullable().optional(),
30
+ params: HtmlPageBuilderJobParamsSchema,
31
+ isDeleted: z.boolean(),
32
+ createdAt: z.date(),
33
+ completedAt: z.date().nullable().optional(),
34
+ updatedAt: z.date(),
35
+ });
36
+
37
+ export type HtmlPageBuilderJob = z.infer<typeof HtmlPageBuilderJobSchema>;
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { IconVariantsSchema, TOOL_MODEL_STATUS } from '../../common';
3
+
4
+ export const HtmlPageBuilderModelSchema = z.object({
5
+ uuid: z.string(),
6
+ title: z.string(),
7
+ description: z.string(),
8
+ aiModel: z.string(),
9
+ price: z.number(),
10
+ order: z.number(),
11
+ status: z.nativeEnum(TOOL_MODEL_STATUS),
12
+ icons: IconVariantsSchema,
13
+ maxPromptLength: z.number(),
14
+ createdAt: z.date(),
15
+ updatedAt: z.date(),
16
+ });
17
+
18
+ export type HtmlPageBuilderModel = z.infer<typeof HtmlPageBuilderModelSchema>;
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { JOB_STATUS } from '../../tools';
3
+ import { HTML_PAGE_BUILDER_SESSION_STAGE } from '../enums';
4
+
5
+ export const HtmlPageBuilderSessionSchema = z.object({
6
+ uuid: z.string(),
7
+ title: z.string(),
8
+ status: z.nativeEnum(JOB_STATUS),
9
+ stage: z.nativeEnum(HTML_PAGE_BUILDER_SESSION_STAGE),
10
+ currentHtml: z.string().nullable().optional(),
11
+ userId: z.string().nullable().optional(),
12
+ unregisteredUserId: z.string().nullable().optional(),
13
+ isDeleted: z.boolean(),
14
+ createdAt: z.date(),
15
+ updatedAt: z.date(),
16
+ });
17
+
18
+ export type HtmlPageBuilderSession = z.infer<typeof HtmlPageBuilderSessionSchema>;
@@ -0,0 +1,4 @@
1
+ export * from './html-page-builder-config.schema';
2
+ export * from './html-page-builder-job.schema';
3
+ export * from './html-page-builder-model.schema';
4
+ export * from './html-page-builder-session.schema';
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { HtmlPageBuilderSessionSchema } from '../models';
4
+
5
+ export namespace FindHtmlPageBuilderSessionByIdQuery {
6
+ export const RequestSchema = z
7
+ .object({
8
+ uuid: z.string().uuid(),
9
+ userId: z.string().uuid().nullable().optional(),
10
+ unregisteredUserId: z.string().uuid().nullable().optional(),
11
+ })
12
+ .refine((data) => Boolean(data.userId ?? data.unregisteredUserId), {
13
+ message: 'userId or unregisteredUserId is required',
14
+ path: ['userId', 'unregisteredUserId'],
15
+ })
16
+ .refine((data) => !(data.userId && data.unregisteredUserId), {
17
+ message: 'userId and unregisteredUserId cannot be used together',
18
+ path: ['userId', 'unregisteredUserId'],
19
+ });
20
+
21
+ export type Request = z.infer<typeof RequestSchema>;
22
+
23
+ export const ResponseSchema = ICommandResponseSchema(HtmlPageBuilderSessionSchema);
24
+ export type Response = z.infer<typeof ResponseSchema>;
25
+ }
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common/models/command-response.schema';
3
+ import { HtmlPageBuilderSessionSchema } from '../models';
4
+
5
+ export namespace FindHtmlPageBuilderSessionsQuery {
6
+ export const RequestSchema = z
7
+ .object({
8
+ userId: z.string().uuid().optional(),
9
+ unregisteredUserId: z.string().uuid().optional(),
10
+ title: z.string().optional(),
11
+ limit: z.coerce.number().min(1).optional(),
12
+ offset: z.coerce.number().min(0).default(0).optional(),
13
+ })
14
+ .refine(
15
+ (data) => {
16
+ return !(data.userId && data.unregisteredUserId);
17
+ },
18
+ {
19
+ message: 'userId and unregisteredUserId cannot be used together',
20
+ path: ['userId', 'unregisteredUserId'],
21
+ },
22
+ );
23
+ export type Request = z.infer<typeof RequestSchema>;
24
+
25
+ export const ResponseSchema = ICommandResponseSchema(
26
+ z.object({
27
+ data: z.array(HtmlPageBuilderSessionSchema),
28
+ page: z.number(),
29
+ totalPages: z.number(),
30
+ }),
31
+ );
32
+ export type Response = z.infer<typeof ResponseSchema>;
33
+ }
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import { ICommandResponseSchema } from '../../common';
3
+ import { HtmlPageBuilderConfigSchema } from '../models';
4
+
5
+ export namespace GetHtmlPageBuilderConfigQuery {
6
+ export const RequestSchema = z.object({});
7
+ export type Request = z.infer<typeof RequestSchema>;
8
+
9
+ export const ResponseSchema = ICommandResponseSchema(HtmlPageBuilderConfigSchema);
10
+ export type Response = z.infer<typeof ResponseSchema>;
11
+ }
@@ -0,0 +1,3 @@
1
+ export * from './find-html-page-builder-session-by-id.query';
2
+ export * from './find-html-page-builder-sessions.query';
3
+ export * from './get-html-page-builder-config.query';
@@ -0,0 +1,11 @@
1
+ export const HTML_PAGE_BUILDER_AMQP_ROUTES = {
2
+ CONFIG: 'tools.html-page-builder.config.rpc',
3
+ EXECUTE: 'tools.html-page-builder.execute.rpc',
4
+ GET_PRICE: 'tools.html-page-builder.get-price.rpc',
5
+ CREATE_SESSION: 'tools.html-page-builder.sessions.create.rpc',
6
+ LIST_SESSIONS: 'tools.html-page-builder.sessions.list.rpc',
7
+ GET_SESSION: 'tools.html-page-builder.sessions.get.rpc',
8
+ UPDATE_SESSION_TITLE: 'tools.html-page-builder.sessions.update-title.rpc',
9
+ SOFT_DELETE_SESSION: 'tools.html-page-builder.sessions.soft-delete.rpc',
10
+ SOFT_DELETE_ALL_SESSIONS: 'tools.html-page-builder.sessions.soft-delete-all.rpc',
11
+ } as const;
@@ -0,0 +1 @@
1
+ export * from './html-page-builder.amqp.routes';
package/index.ts CHANGED
@@ -18,6 +18,7 @@ export * from './marketplace-card';
18
18
  export * from './analytics';
19
19
  export * from './solving-edu-task';
20
20
  export * from './spell-corrector';
21
+ export * from './html-page-builder';
21
22
  export * from './tool-workspace';
22
23
 
23
24
  import * as common from './common';
@@ -39,6 +40,7 @@ import * as marketplaceCard from './marketplace-card';
39
40
  import * as analytics from './analytics';
40
41
  import * as solvingEduTask from './solving-edu-task';
41
42
  import * as spellCorrector from './spell-corrector';
43
+ import * as htmlPageBuilder from './html-page-builder';
42
44
  import * as accountMerge from './account-merge';
43
45
  import * as toolWorkspace from './tool-workspace';
44
46
 
@@ -62,6 +64,7 @@ export namespace ToolService {
62
64
  export import Analytics = analytics;
63
65
  export import SolvingEduTask = solvingEduTask;
64
66
  export import SpellCorrector = spellCorrector;
67
+ export import HtmlPageBuilder = htmlPageBuilder;
65
68
  export import AccountMerge = accountMerge;
66
69
  export import ToolWorkspace = toolWorkspace;
67
70
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot-tools",
3
- "version": "0.2.7-stage",
3
+ "version": "0.2.8-stage",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "scripts": {
@@ -14,4 +14,5 @@ export enum TOOL_CONTENT_TYPE {
14
14
  MARKETPLACE_CARD_GENERATION = 'MARKETPLACE_CARD',
15
15
  SOLVING_EDU_TASK = 'SOLVING_EDU_TASK',
16
16
  SPELL_CORRECTOR = 'SPELL_CORRECTOR',
17
+ HTML_PAGE_BUILDER = 'HTML_PAGE_BUILDER',
17
18
  }
@@ -16,4 +16,5 @@ export enum TOOL_TYPE {
16
16
  INTERIOR_DESIGN = 'INTERIOR_DESIGN',
17
17
  SPELL_CORRECTOR = 'SPELL_CORRECTOR',
18
18
  SOLVING_EDU_TASK = 'SOLVING_EDU_TASK',
19
+ HTML_PAGE_BUILDER = 'HTML_PAGE_BUILDER',
19
20
  }
@@ -14,6 +14,7 @@ import { MarketplaceCardConfigSchema } from '../../marketplace-card/models';
14
14
  import { InteriorDesignConfigSchema } from '../../interior-design';
15
15
  import { SolvingEduTaskConfigSchema } from '../../solving-edu-task';
16
16
  import { SpellCorrectorToolConfigSchema } from '../../spell-corrector';
17
+ import { HtmlPageBuilderConfigSchema } from '../../html-page-builder/models';
17
18
 
18
19
  export const GlobalToolsConfigSchema = z.object({
19
20
  [TOOL_CONTENT_TYPE.VIDEO]: VideoConfigSchema,
@@ -30,6 +31,7 @@ export const GlobalToolsConfigSchema = z.object({
30
31
  [TOOL_CONTENT_TYPE.INTERIOR_DESIGN]: InteriorDesignConfigSchema,
31
32
  [TOOL_CONTENT_TYPE.SOLVING_EDU_TASK]: SolvingEduTaskConfigSchema,
32
33
  [TOOL_CONTENT_TYPE.SPELL_CORRECTOR]: SpellCorrectorToolConfigSchema,
34
+ [TOOL_CONTENT_TYPE.HTML_PAGE_BUILDER]: HtmlPageBuilderConfigSchema,
33
35
  });
34
36
 
35
37
  export type GlobalToolsConfig = z.infer<typeof GlobalToolsConfigSchema>;
@@ -15,6 +15,7 @@ import { ToolSchema } from './tool.schema';
15
15
  import { InteriorDesignConfigSchema } from '../../interior-design';
16
16
  import { SolvingEduTaskConfigSchema } from '../../solving-edu-task';
17
17
  import { SpellCorrectorToolConfigSchema } from '../../spell-corrector';
18
+ import { HtmlPageBuilderConfigSchema } from '../../html-page-builder/models';
18
19
 
19
20
  // Discriminated union array: Tools with their configs
20
21
  export const ToolWithConfigSchema = z.discriminatedUnion('contentType', [
@@ -102,6 +103,12 @@ export const ToolWithConfigSchema = z.discriminatedUnion('contentType', [
102
103
  config: SpellCorrectorToolConfigSchema,
103
104
  }),
104
105
  ),
106
+ ToolSchema.merge(
107
+ z.object({
108
+ contentType: z.literal(TOOL_CONTENT_TYPE.HTML_PAGE_BUILDER),
109
+ config: HtmlPageBuilderConfigSchema,
110
+ }),
111
+ ),
105
112
  ]);
106
113
 
107
114
  export type ToolWithConfig = z.infer<typeof ToolWithConfigSchema>;