@purpleschool/gptbot 0.12.70 → 0.12.71

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 (84) hide show
  1. package/api/controllers/http/index.ts +1 -0
  2. package/api/controllers/http/palette.ts +6 -0
  3. package/api/routes.ts +4 -0
  4. package/build/api/controllers/http/index.js +1 -0
  5. package/build/api/controllers/http/palette.js +8 -0
  6. package/build/api/routes.js +4 -0
  7. package/build/commands/{canvas → ai-studio/canvas}/create-canvas.command.js +1 -1
  8. package/build/commands/{canvas → ai-studio/canvas}/delete-canvas.command.js +1 -1
  9. package/build/commands/{canvas → ai-studio/canvas}/find-canvas-by-uuid-with-relations.query.js +1 -1
  10. package/build/commands/{canvas → ai-studio/canvas}/find-canvas-by-uuid.query.js +1 -1
  11. package/build/commands/{canvas → ai-studio/canvas}/find-canvases-by-user.query.js +1 -1
  12. package/build/commands/{canvas → ai-studio/canvas}/run-canvas.command.js +1 -1
  13. package/build/commands/{canvas → ai-studio/canvas}/save-canvas.command.js +8 -4
  14. package/build/commands/{canvas → ai-studio/canvas}/update-canvas.command.js +1 -1
  15. package/build/commands/{canvas-edge → ai-studio/canvas-edge}/create-canvas-edge.command.js +2 -2
  16. package/build/commands/{canvas-edge → ai-studio/canvas-edge}/find-canvas-edge-by-source-and-target.query.js +1 -1
  17. package/build/commands/{canvas-edge → ai-studio/canvas-edge}/find-canvas-edges-by-canvas.query.js +1 -1
  18. package/build/commands/{canvas-node → ai-studio/canvas-node}/create-canvas-node.command.js +8 -4
  19. package/build/commands/{canvas-node → ai-studio/canvas-node}/delete-canvas-node.command.js +2 -2
  20. package/build/commands/{canvas-node → ai-studio/canvas-node}/find-canvas-node-by-uuid.query.js +2 -2
  21. package/build/commands/{canvas-node → ai-studio/canvas-node}/find-canvas-node-definitions-with-configs.query.js +1 -1
  22. package/build/commands/{canvas-node → ai-studio/canvas-node}/find-canvas-nodes-by-canvas.query.js +1 -1
  23. package/build/commands/{canvas-node → ai-studio/canvas-node}/update-canvas-node.command.js +13 -5
  24. package/build/commands/{canvas-template → ai-studio/canvas-template}/create-canvas-from-template.command.js +1 -1
  25. package/build/commands/{canvas-template → ai-studio/canvas-template}/create-canvas-template.command.js +1 -1
  26. package/build/commands/{canvas-template → ai-studio/canvas-template}/delete-canvas-template.command.js +3 -2
  27. package/build/commands/{canvas-template → ai-studio/canvas-template}/find-canvas-template-by-uuid.query.js +1 -1
  28. package/build/commands/{canvas-template → ai-studio/canvas-template}/find-canvas-templates.query.js +1 -1
  29. package/build/commands/{canvas-template → ai-studio/canvas-template}/generate-canvas-template-by-prompt.command.js +1 -1
  30. package/build/commands/{canvas-template → ai-studio/canvas-template}/update-canvas-template.command.js +1 -1
  31. package/build/commands/ai-studio/canvas-tool/index.js +17 -0
  32. package/build/commands/ai-studio/canvas-tool/palette/generate-palette.command.js +20 -0
  33. package/build/commands/ai-studio/canvas-tool/palette/get-palette-price.command.js +17 -0
  34. package/build/commands/ai-studio/canvas-tool/palette/index.js +18 -0
  35. package/build/commands/ai-studio/index.js +21 -0
  36. package/build/commands/index.js +5 -4
  37. package/build/models/canvas-node.schema.js +140 -37
  38. package/build/models/canvas-template.schema.js +6 -2
  39. package/commands/{canvas → ai-studio/canvas}/create-canvas.command.ts +1 -1
  40. package/commands/{canvas → ai-studio/canvas}/delete-canvas.command.ts +1 -1
  41. package/commands/{canvas → ai-studio/canvas}/find-canvas-by-uuid-with-relations.query.ts +1 -1
  42. package/commands/{canvas → ai-studio/canvas}/find-canvas-by-uuid.query.ts +1 -1
  43. package/commands/{canvas → ai-studio/canvas}/find-canvases-by-user.query.ts +1 -1
  44. package/commands/{canvas → ai-studio/canvas}/run-canvas.command.ts +1 -1
  45. package/commands/{canvas → ai-studio/canvas}/save-canvas.command.ts +13 -9
  46. package/commands/{canvas → ai-studio/canvas}/update-canvas.command.ts +1 -1
  47. package/commands/{canvas-edge → ai-studio/canvas-edge}/create-canvas-edge.command.ts +2 -2
  48. package/commands/{canvas-edge → ai-studio/canvas-edge}/find-canvas-edge-by-source-and-target.query.ts +1 -1
  49. package/commands/{canvas-edge → ai-studio/canvas-edge}/find-canvas-edges-by-canvas.query.ts +1 -1
  50. package/commands/ai-studio/canvas-node/create-canvas-node.command.ts +33 -0
  51. package/commands/{canvas-node → ai-studio/canvas-node}/delete-canvas-node.command.ts +2 -2
  52. package/commands/{canvas-node → ai-studio/canvas-node}/find-canvas-node-by-uuid.query.ts +2 -2
  53. package/commands/{canvas-node → ai-studio/canvas-node}/find-canvas-node-definitions-with-configs.query.ts +1 -1
  54. package/commands/{canvas-node → ai-studio/canvas-node}/find-canvas-nodes-by-canvas.query.ts +1 -1
  55. package/commands/ai-studio/canvas-node/update-canvas-node.command.ts +40 -0
  56. package/commands/{canvas-template → ai-studio/canvas-template}/create-canvas-from-template.command.ts +1 -1
  57. package/commands/{canvas-template → ai-studio/canvas-template}/create-canvas-template.command.ts +2 -6
  58. package/commands/{canvas-template → ai-studio/canvas-template}/delete-canvas-template.command.ts +3 -2
  59. package/commands/{canvas-template → ai-studio/canvas-template}/find-canvas-template-by-uuid.query.ts +1 -1
  60. package/commands/{canvas-template → ai-studio/canvas-template}/find-canvas-templates.query.ts +1 -1
  61. package/commands/{canvas-template → ai-studio/canvas-template}/generate-canvas-template-by-prompt.command.ts +1 -1
  62. package/commands/{canvas-template → ai-studio/canvas-template}/update-canvas-template.command.ts +1 -1
  63. package/commands/ai-studio/canvas-tool/index.ts +1 -0
  64. package/commands/ai-studio/canvas-tool/palette/generate-palette.command.ts +23 -0
  65. package/commands/ai-studio/canvas-tool/palette/get-palette-price.command.ts +17 -0
  66. package/commands/ai-studio/canvas-tool/palette/index.ts +2 -0
  67. package/commands/ai-studio/index.ts +5 -0
  68. package/commands/index.ts +5 -5
  69. package/commands/team-account/find-team-accounts-by-name.command.ts +1 -1
  70. package/models/canvas-node.schema.ts +167 -41
  71. package/models/canvas-template.schema.ts +11 -7
  72. package/package.json +1 -1
  73. package/commands/canvas-node/create-canvas-node.command.ts +0 -25
  74. package/commands/canvas-node/update-canvas-node.command.ts +0 -26
  75. package/build/commands/{canvas → ai-studio/canvas}/index.js +0 -0
  76. package/build/commands/{canvas-edge → ai-studio/canvas-edge}/delete-canvas-edge.command.js +0 -0
  77. package/build/commands/{canvas-edge → ai-studio/canvas-edge}/index.js +0 -0
  78. package/build/commands/{canvas-node → ai-studio/canvas-node}/index.js +0 -0
  79. package/build/commands/{canvas-template → ai-studio/canvas-template}/index.js +1 -1
  80. package/commands/{canvas → ai-studio/canvas}/index.ts +0 -0
  81. package/commands/{canvas-edge → ai-studio/canvas-edge}/delete-canvas-edge.command.ts +0 -0
  82. package/commands/{canvas-edge → ai-studio/canvas-edge}/index.ts +0 -0
  83. package/commands/{canvas-node → ai-studio/canvas-node}/index.ts +0 -0
  84. package/commands/{canvas-template → ai-studio/canvas-template}/index.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CanvasNodeSchema = exports.CanvasNodeErrorSchema = exports.CanvasNodeOutputSchema = exports.CanvasNodeParamsSchemaByType = exports.CanvasNodeParamsSchema = exports.HtmlGenOutputSchema = exports.VarGenOutputSchema = exports.MotionControlOutputSchema = exports.ColorPaletteOutputSchema = exports.AudioGenSTTOutputSchema = exports.AudioGenTTSOutputSchema = exports.VideoGenOutputSchema = exports.ImageGenOutputSchema = exports.TextGenOutputSchema = exports.VarBlockParamsSchema = exports.NoteParamsSchema = exports.FileBlockParamsSchema = exports.VideoBlockParamsSchema = exports.ImageBlockParamsSchema = exports.TextBlockParamsSchema = exports.HtmlGenParamsSchema = exports.VarGenParamsSchema = exports.MotionControlParamsSchema = exports.ColorPaletteParamsSchema = exports.AudioGenParamsSchema = exports.VideoGenParamsSchema = exports.ImageGenParamsSchema = exports.TextGenParamsSchema = exports.CanvasNodePositionSchema = void 0;
3
+ exports.CanvasNodeSchema = exports.CanvasNodeBaseSchema = exports.validateCanvasNodeOutputByType = exports.validateCanvasNodeParamsByType = exports.CanvasNodeErrorSchema = exports.CanvasNodeOutputSchemaByType = exports.CanvasNodeParamsSchemaByType = exports.HtmlGenOutputSchema = exports.VarGenOutputSchema = exports.MotionControlOutputSchema = exports.ColorPaletteOutputSchema = exports.AudioGenSTTOutputSchema = exports.AudioGenTTSOutputSchema = exports.VideoGenOutputSchema = exports.ImageGenOutputSchema = exports.TextGenOutputSchema = exports.VarBlockParamsSchema = exports.NoteParamsSchema = exports.FileBlockParamsSchema = exports.VideoBlockParamsSchema = exports.ImageBlockParamsSchema = exports.TextBlockParamsSchema = exports.HtmlGenParamsSchema = exports.VarGenParamsSchema = exports.MotionControlParamsSchema = exports.ColorPaletteParamsSchema = exports.AudioGenParamsSchema = exports.VideoGenParamsSchema = exports.ImageGenParamsSchema = exports.TextGenParamsSchema = exports.CanvasNodePositionSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const constants_1 = require("../constants");
6
6
  const strictObject = (shape) => zod_1.z.object(shape).strict();
@@ -49,6 +49,7 @@ exports.AudioGenParamsSchema = zod_1.z.discriminatedUnion('mode', [
49
49
  ]);
50
50
  exports.ColorPaletteParamsSchema = strictObject({
51
51
  prompt: zod_1.z.string(),
52
+ colors: zod_1.z.array(zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/)).optional(),
52
53
  });
53
54
  exports.MotionControlParamsSchema = strictObject({
54
55
  prompt: zod_1.z.string(),
@@ -105,12 +106,7 @@ exports.AudioGenSTTOutputSchema = strictObject({
105
106
  transcript: zod_1.z.string(),
106
107
  });
107
108
  exports.ColorPaletteOutputSchema = strictObject({
108
- paletteName: zod_1.z.string(),
109
- colors: zod_1.z.array(strictObject({
110
- hex: zod_1.z.string(),
111
- name: zod_1.z.string(),
112
- usage: zod_1.z.string(),
113
- })),
109
+ colors: zod_1.z.array(zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/)).max(7),
114
110
  });
115
111
  exports.MotionControlOutputSchema = strictObject({
116
112
  resultUrl: zod_1.z.string(),
@@ -121,22 +117,6 @@ exports.VarGenOutputSchema = strictObject({
121
117
  exports.HtmlGenOutputSchema = strictObject({
122
118
  html: zod_1.z.string(),
123
119
  });
124
- exports.CanvasNodeParamsSchema = zod_1.z.union([
125
- exports.TextGenParamsSchema,
126
- exports.ImageGenParamsSchema,
127
- exports.VideoGenParamsSchema,
128
- exports.AudioGenParamsSchema,
129
- exports.ColorPaletteParamsSchema,
130
- exports.MotionControlParamsSchema,
131
- exports.VarGenParamsSchema,
132
- exports.HtmlGenParamsSchema,
133
- exports.TextBlockParamsSchema,
134
- exports.ImageBlockParamsSchema,
135
- exports.VideoBlockParamsSchema,
136
- exports.FileBlockParamsSchema,
137
- exports.NoteParamsSchema,
138
- exports.VarBlockParamsSchema,
139
- ]);
140
120
  exports.CanvasNodeParamsSchemaByType = {
141
121
  [constants_1.CANVAS_NODE_TYPE.textGen]: exports.TextGenParamsSchema,
142
122
  [constants_1.CANVAS_NODE_TYPE.imageGen]: exports.ImageGenParamsSchema,
@@ -156,33 +136,156 @@ exports.CanvasNodeParamsSchemaByType = {
156
136
  [constants_1.CANVAS_NODE_TYPE.varBlock]: exports.VarBlockParamsSchema,
157
137
  [constants_1.CANVAS_NODE_TYPE.htmlGen]: exports.HtmlGenParamsSchema,
158
138
  };
159
- exports.CanvasNodeOutputSchema = zod_1.z.union([
160
- exports.TextGenOutputSchema,
161
- exports.ImageGenOutputSchema,
162
- exports.VideoGenOutputSchema,
163
- exports.AudioGenTTSOutputSchema,
164
- exports.AudioGenSTTOutputSchema,
165
- exports.ColorPaletteOutputSchema,
166
- exports.MotionControlOutputSchema,
167
- exports.VarGenOutputSchema,
168
- exports.HtmlGenOutputSchema,
169
- ]);
139
+ exports.CanvasNodeOutputSchemaByType = {
140
+ [constants_1.CANVAS_NODE_TYPE.textGen]: exports.TextGenOutputSchema,
141
+ [constants_1.CANVAS_NODE_TYPE.imageGen]: exports.ImageGenOutputSchema,
142
+ [constants_1.CANVAS_NODE_TYPE.imageEdit]: exports.ImageGenOutputSchema,
143
+ [constants_1.CANVAS_NODE_TYPE.videoGen]: exports.VideoGenOutputSchema,
144
+ [constants_1.CANVAS_NODE_TYPE.videoEdit]: exports.VideoGenOutputSchema,
145
+ [constants_1.CANVAS_NODE_TYPE.ttsGen]: exports.AudioGenTTSOutputSchema,
146
+ [constants_1.CANVAS_NODE_TYPE.sttGen]: exports.AudioGenSTTOutputSchema,
147
+ [constants_1.CANVAS_NODE_TYPE.textBlock]: exports.TextBlockParamsSchema,
148
+ [constants_1.CANVAS_NODE_TYPE.imageBlock]: exports.ImageBlockParamsSchema,
149
+ [constants_1.CANVAS_NODE_TYPE.videoBlock]: exports.VideoBlockParamsSchema,
150
+ [constants_1.CANVAS_NODE_TYPE.fileBlock]: exports.FileBlockParamsSchema,
151
+ [constants_1.CANVAS_NODE_TYPE.note]: exports.NoteParamsSchema,
152
+ [constants_1.CANVAS_NODE_TYPE.colorPalette]: exports.ColorPaletteOutputSchema,
153
+ [constants_1.CANVAS_NODE_TYPE.motionControl]: exports.MotionControlOutputSchema,
154
+ [constants_1.CANVAS_NODE_TYPE.varGen]: exports.VarGenOutputSchema,
155
+ [constants_1.CANVAS_NODE_TYPE.varBlock]: exports.VarBlockParamsSchema,
156
+ [constants_1.CANVAS_NODE_TYPE.htmlGen]: exports.HtmlGenOutputSchema,
157
+ };
170
158
  exports.CanvasNodeErrorSchema = zod_1.z.object({
171
159
  code: zod_1.z.string(),
172
160
  message: zod_1.z.string(),
173
161
  details: zod_1.z.record(zod_1.z.unknown()).optional(),
174
162
  retryable: zod_1.z.boolean().optional(),
175
163
  });
176
- exports.CanvasNodeSchema = zod_1.z.object({
164
+ const validateCanvasNodeParamsByType = (nodeDefinitionId, params, ctx) => {
165
+ if (params === null || params === undefined) {
166
+ return;
167
+ }
168
+ const schema = exports.CanvasNodeParamsSchemaByType[nodeDefinitionId];
169
+ const result = schema.safeParse(params);
170
+ if (result.success) {
171
+ return;
172
+ }
173
+ for (const issue of result.error.issues) {
174
+ ctx.addIssue(Object.assign(Object.assign({}, issue), { path: ['params', ...issue.path] }));
175
+ }
176
+ };
177
+ exports.validateCanvasNodeParamsByType = validateCanvasNodeParamsByType;
178
+ const validateCanvasNodeOutputByType = (nodeDefinitionId, output, ctx) => {
179
+ if (output === null || output === undefined) {
180
+ return;
181
+ }
182
+ const schema = exports.CanvasNodeOutputSchemaByType[nodeDefinitionId];
183
+ const result = schema.safeParse(output);
184
+ if (result.success) {
185
+ return;
186
+ }
187
+ for (const issue of result.error.issues) {
188
+ ctx.addIssue(Object.assign(Object.assign({}, issue), { path: ['output', ...issue.path] }));
189
+ }
190
+ };
191
+ exports.validateCanvasNodeOutputByType = validateCanvasNodeOutputByType;
192
+ exports.CanvasNodeBaseSchema = zod_1.z.object({
177
193
  uuid: zod_1.z.string().uuid(),
178
194
  canvasId: zod_1.z.string().uuid(),
179
195
  nodeDefinitionId: zod_1.z.nativeEnum(constants_1.CANVAS_NODE_TYPE),
180
196
  position: exports.CanvasNodePositionSchema,
181
197
  status: zod_1.z.nativeEnum(constants_1.NODE_RUN_STATUS),
182
198
  toolJobId: zod_1.z.string().uuid().nullable(),
183
- params: exports.CanvasNodeParamsSchema.nullable(),
184
- output: exports.CanvasNodeOutputSchema.nullable(),
199
+ params: zod_1.z.unknown().nullable(),
200
+ output: zod_1.z.unknown().nullable(),
185
201
  error: exports.CanvasNodeErrorSchema.nullable(),
186
202
  createdAt: zod_1.z.date(),
187
203
  updatedAt: zod_1.z.date(),
188
204
  });
205
+ exports.CanvasNodeSchema = zod_1.z.discriminatedUnion('nodeDefinitionId', [
206
+ exports.CanvasNodeBaseSchema.extend({
207
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.textGen),
208
+ params: exports.TextGenParamsSchema.nullable(),
209
+ output: exports.TextGenOutputSchema.nullable(),
210
+ }),
211
+ exports.CanvasNodeBaseSchema.extend({
212
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.imageGen),
213
+ params: exports.ImageGenParamsSchema.nullable(),
214
+ output: exports.ImageGenOutputSchema.nullable(),
215
+ }),
216
+ exports.CanvasNodeBaseSchema.extend({
217
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.imageEdit),
218
+ params: exports.ImageGenParamsSchema.nullable(),
219
+ output: exports.ImageGenOutputSchema.nullable(),
220
+ }),
221
+ exports.CanvasNodeBaseSchema.extend({
222
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.videoGen),
223
+ params: exports.VideoGenParamsSchema.nullable(),
224
+ output: exports.VideoGenOutputSchema.nullable(),
225
+ }),
226
+ exports.CanvasNodeBaseSchema.extend({
227
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.videoEdit),
228
+ params: exports.VideoGenParamsSchema.nullable(),
229
+ output: exports.VideoGenOutputSchema.nullable(),
230
+ }),
231
+ exports.CanvasNodeBaseSchema.extend({
232
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.ttsGen),
233
+ params: exports.AudioGenParamsSchema.nullable(),
234
+ output: exports.AudioGenTTSOutputSchema.nullable(),
235
+ }),
236
+ exports.CanvasNodeBaseSchema.extend({
237
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.sttGen),
238
+ params: exports.AudioGenParamsSchema.nullable(),
239
+ output: exports.AudioGenSTTOutputSchema.nullable(),
240
+ }),
241
+ exports.CanvasNodeBaseSchema.extend({
242
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.textBlock),
243
+ params: exports.TextBlockParamsSchema.nullable(),
244
+ output: exports.TextBlockParamsSchema.nullable(),
245
+ }),
246
+ exports.CanvasNodeBaseSchema.extend({
247
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.imageBlock),
248
+ params: exports.ImageBlockParamsSchema.nullable(),
249
+ output: exports.ImageBlockParamsSchema.nullable(),
250
+ }),
251
+ exports.CanvasNodeBaseSchema.extend({
252
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.videoBlock),
253
+ params: exports.VideoBlockParamsSchema.nullable(),
254
+ output: exports.VideoBlockParamsSchema.nullable(),
255
+ }),
256
+ exports.CanvasNodeBaseSchema.extend({
257
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.fileBlock),
258
+ params: exports.FileBlockParamsSchema.nullable(),
259
+ output: exports.FileBlockParamsSchema.nullable(),
260
+ }),
261
+ exports.CanvasNodeBaseSchema.extend({
262
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.note),
263
+ params: exports.NoteParamsSchema.nullable(),
264
+ output: exports.NoteParamsSchema.nullable(),
265
+ }),
266
+ exports.CanvasNodeBaseSchema.extend({
267
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.colorPalette),
268
+ params: exports.ColorPaletteParamsSchema.nullable(),
269
+ output: exports.ColorPaletteOutputSchema.nullable(),
270
+ }),
271
+ exports.CanvasNodeBaseSchema.extend({
272
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.motionControl),
273
+ params: exports.MotionControlParamsSchema.nullable(),
274
+ output: exports.MotionControlOutputSchema.nullable(),
275
+ }),
276
+ exports.CanvasNodeBaseSchema.extend({
277
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.varGen),
278
+ params: exports.VarGenParamsSchema.nullable(),
279
+ output: exports.VarGenOutputSchema.nullable(),
280
+ }),
281
+ exports.CanvasNodeBaseSchema.extend({
282
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.varBlock),
283
+ params: exports.VarBlockParamsSchema.nullable(),
284
+ output: exports.VarBlockParamsSchema.nullable(),
285
+ }),
286
+ exports.CanvasNodeBaseSchema.extend({
287
+ nodeDefinitionId: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.htmlGen),
288
+ params: exports.HtmlGenParamsSchema.nullable(),
289
+ output: exports.HtmlGenOutputSchema.nullable(),
290
+ }),
291
+ ]);
@@ -4,11 +4,15 @@ exports.CanvasTemplateSchema = exports.CanvasTemplateTagSchema = exports.CanvasT
4
4
  const zod_1 = require("zod");
5
5
  const constants_1 = require("../constants");
6
6
  const canvas_node_schema_1 = require("./canvas-node.schema");
7
- const CanvasTemplateGraphNodeSchema = zod_1.z.object({
7
+ const CanvasTemplateGraphNodeSchema = zod_1.z
8
+ .object({
8
9
  uuid: zod_1.z.string().trim().min(1),
9
10
  nodeDefinitionId: zod_1.z.nativeEnum(constants_1.CANVAS_NODE_TYPE),
10
11
  position: canvas_node_schema_1.CanvasNodePositionSchema,
11
- params: canvas_node_schema_1.CanvasNodeParamsSchema.nullable().optional(),
12
+ params: zod_1.z.unknown().nullable().optional(),
13
+ })
14
+ .superRefine((node, ctx) => {
15
+ (0, canvas_node_schema_1.validateCanvasNodeParamsByType)(node.nodeDefinitionId, node.params, ctx);
12
16
  });
13
17
  const CanvasTemplateGraphEdgeSchema = zod_1.z.object({
14
18
  sourceId: zod_1.z.string().trim().min(1),
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasSchema } from '../../models';
2
+ import { CanvasSchema } from '../../../models';
3
3
 
4
4
  export namespace CreateCanvasCommand {
5
5
  export const RequestSchema = z.object({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasSchema } from '../../models';
2
+ import { CanvasSchema } from '../../../models';
3
3
 
4
4
  export namespace DeleteCanvasCommand {
5
5
  export const RequestSchema = CanvasSchema.pick({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasEdgeSchema, CanvasNodeSchema, CanvasSchema } from '../../models';
2
+ import { CanvasEdgeSchema, CanvasNodeSchema, CanvasSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasByUuidWithRelationsQuery {
5
5
  export const RequestSchema = CanvasSchema.pick({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasSchema } from '../../models';
2
+ import { CanvasSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasByUuidQuery {
5
5
  export const RequestSchema = CanvasSchema.pick({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasSchema } from '../../models';
2
+ import { CanvasSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasesByUserQuery {
5
5
  export const RequestSchema = z.object({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasEdgeSchema, CanvasNodeSchema, CanvasSchema } from '../../models';
2
+ import { CanvasEdgeSchema, CanvasNodeSchema, CanvasSchema } from '../../../models';
3
3
  import { SaveCanvasCommand } from './save-canvas.command';
4
4
 
5
5
  export namespace RunCanvasCommand {
@@ -1,12 +1,12 @@
1
1
  import { z } from 'zod';
2
- import { CANVAS_NODE_TYPE, INPUT_OUTPUT_TYPE } from '../../constants';
2
+ import { CANVAS_NODE_TYPE, INPUT_OUTPUT_TYPE } from '../../../constants';
3
3
  import {
4
4
  CanvasEdgeSchema,
5
- CanvasNodeParamsSchema,
6
5
  CanvasNodePositionSchema,
7
6
  CanvasNodeSchema,
8
7
  CanvasSchema,
9
- } from '../../models';
8
+ validateCanvasNodeParamsByType,
9
+ } from '../../../models';
10
10
 
11
11
  export namespace SaveCanvasCommand {
12
12
  export const RequestParamSchema = CanvasSchema.pick({
@@ -15,12 +15,16 @@ export namespace SaveCanvasCommand {
15
15
 
16
16
  export type RequestParam = z.infer<typeof RequestParamSchema>;
17
17
 
18
- export const CanvasNodePayloadSchema = z.object({
19
- uuid: z.string().uuid(),
20
- nodeDefinitionId: z.nativeEnum(CANVAS_NODE_TYPE),
21
- position: CanvasNodePositionSchema,
22
- params: CanvasNodeParamsSchema.nullable().optional(),
23
- });
18
+ export const CanvasNodePayloadSchema = z
19
+ .object({
20
+ uuid: z.string().uuid(),
21
+ nodeDefinitionId: z.nativeEnum(CANVAS_NODE_TYPE),
22
+ position: CanvasNodePositionSchema,
23
+ params: z.unknown().nullable().optional(),
24
+ })
25
+ .superRefine((node, ctx) => {
26
+ validateCanvasNodeParamsByType(node.nodeDefinitionId, node.params, ctx);
27
+ });
24
28
 
25
29
  export const CanvasEdgePayloadSchema = z.object({
26
30
  sourceId: z.string().uuid(),
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasSchema } from '../../models';
2
+ import { CanvasSchema } from '../../../models';
3
3
 
4
4
  export namespace UpdateCanvasCommand {
5
5
  export const RequestParamSchema = CanvasSchema.pick({
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { INPUT_OUTPUT_TYPE } from '../../constants';
3
- import { CanvasEdgeSchema } from '../../models';
2
+ import { INPUT_OUTPUT_TYPE } from '../../../constants';
3
+ import { CanvasEdgeSchema } from '../../../models';
4
4
 
5
5
  export namespace CreateCanvasEdgeCommand {
6
6
  export const RequestParamSchema = z.object({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasEdgeSchema } from '../../models';
2
+ import { CanvasEdgeSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasEdgeBySourceAndTargetQuery {
5
5
  export const RequestParamSchema = z.object({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasEdgeSchema } from '../../models';
2
+ import { CanvasEdgeSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasEdgesByCanvasQuery {
5
5
  export const RequestParamSchema = z.object({
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ import { CANVAS_NODE_TYPE } from '../../../constants';
3
+ import {
4
+ CanvasNodePositionSchema,
5
+ CanvasNodeSchema,
6
+ validateCanvasNodeParamsByType,
7
+ } from '../../../models';
8
+
9
+ export namespace CreateCanvasNodeCommand {
10
+ export const RequestParamSchema = z.object({
11
+ canvasId: z.string().uuid(),
12
+ });
13
+
14
+ export type RequestParam = z.infer<typeof RequestParamSchema>;
15
+
16
+ export const RequestSchema = z
17
+ .object({
18
+ nodeDefinitionId: z.nativeEnum(CANVAS_NODE_TYPE),
19
+ position: CanvasNodePositionSchema,
20
+ params: z.unknown().nullable().optional(),
21
+ })
22
+ .superRefine((request, ctx) => {
23
+ validateCanvasNodeParamsByType(request.nodeDefinitionId, request.params, ctx);
24
+ });
25
+
26
+ export type Request = z.infer<typeof RequestSchema>;
27
+
28
+ export const ResponseSchema = z.object({
29
+ data: CanvasNodeSchema,
30
+ });
31
+
32
+ export type Response = z.infer<typeof ResponseSchema>;
33
+ }
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { CanvasNodeSchema } from '../../models';
2
+ import { CanvasNodeBaseSchema } from '../../../models';
3
3
 
4
4
  export namespace DeleteCanvasNodeCommand {
5
- export const RequestParamSchema = CanvasNodeSchema.pick({
5
+ export const RequestParamSchema = CanvasNodeBaseSchema.pick({
6
6
  canvasId: true,
7
7
  uuid: true,
8
8
  });
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { CanvasNodeSchema } from '../../models';
2
+ import { CanvasNodeBaseSchema, CanvasNodeSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasNodeByUuidQuery {
5
- export const RequestParamSchema = CanvasNodeSchema.pick({
5
+ export const RequestParamSchema = CanvasNodeBaseSchema.pick({
6
6
  canvasId: true,
7
7
  uuid: true,
8
8
  });
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasNodeDefinitionsWithConfigsSchema } from '../../models';
2
+ import { CanvasNodeDefinitionsWithConfigsSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasNodeDefinitionsWithConfigsQuery {
5
5
  export const ResponseSchema = z.object({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasNodeSchema } from '../../models';
2
+ import { CanvasNodeSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasNodesByCanvasQuery {
5
5
  export const RequestParamSchema = z.object({
@@ -0,0 +1,40 @@
1
+ import { z } from 'zod';
2
+ import { CANVAS_NODE_TYPE } from '../../../constants';
3
+ import {
4
+ CanvasNodeBaseSchema,
5
+ CanvasNodePositionSchema,
6
+ CanvasNodeSchema,
7
+ validateCanvasNodeOutputByType,
8
+ validateCanvasNodeParamsByType,
9
+ } from '../../../models';
10
+
11
+ export namespace UpdateCanvasNodeCommand {
12
+ export const RequestParamSchema = CanvasNodeBaseSchema.pick({
13
+ canvasId: true,
14
+ uuid: true,
15
+ });
16
+
17
+ export type RequestParam = z.infer<typeof RequestParamSchema>;
18
+
19
+ export const RequestSchema = z
20
+ .object({
21
+ nodeDefinitionId: z.nativeEnum(CANVAS_NODE_TYPE).optional(),
22
+ position: CanvasNodePositionSchema.optional(),
23
+ params: z.unknown().nullable().optional(),
24
+ output: z.unknown().nullable().optional(),
25
+ })
26
+ .superRefine((request, ctx) => {
27
+ if (request.nodeDefinitionId !== undefined) {
28
+ validateCanvasNodeParamsByType(request.nodeDefinitionId, request.params, ctx);
29
+ validateCanvasNodeOutputByType(request.nodeDefinitionId, request.output, ctx);
30
+ }
31
+ });
32
+
33
+ export type Request = z.infer<typeof RequestSchema>;
34
+
35
+ export const ResponseSchema = z.object({
36
+ data: CanvasNodeSchema,
37
+ });
38
+
39
+ export type Response = z.infer<typeof ResponseSchema>;
40
+ }
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasEdgeSchema, CanvasNodeSchema, CanvasSchema } from '../../models';
2
+ import { CanvasEdgeSchema, CanvasNodeSchema, CanvasSchema } from '../../../models';
3
3
 
4
4
  export namespace CreateCanvasFromTemplateCommand {
5
5
  export const RequestParamSchema = z.object({
@@ -1,10 +1,6 @@
1
1
  import { z } from 'zod';
2
- import {
3
- CanvasTemplateSchema,
4
- CanvasTemplateGraphSchema,
5
- CanvasTemplateScopeSchema,
6
- CanvasTemplateTagSchema,
7
- } from '../../models';
2
+ import { CanvasTemplateGraphSchema, CanvasTemplateSchema, CanvasTemplateScopeSchema, CanvasTemplateTagSchema } from '../../../models';
3
+
8
4
 
9
5
  export namespace CreateCanvasTemplateCommand {
10
6
  export const RequestSchema = z.object({
@@ -1,8 +1,9 @@
1
1
  import { z } from 'zod';
2
+ import { CanvasTemplateSchema } from '../../../models';
2
3
 
3
4
  export namespace DeleteCanvasTemplateCommand {
4
- export const RequestParamSchema = z.object({
5
- uuid: z.string().uuid(),
5
+ export const RequestParamSchema = CanvasTemplateSchema.pick({
6
+ uuid: true,
6
7
  });
7
8
 
8
9
  export type RequestParam = z.infer<typeof RequestParamSchema>;
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasTemplateSchema } from '../../models';
2
+ import { CanvasTemplateSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasTemplateByUuidQuery {
5
5
  export const RequestSchema = CanvasTemplateSchema.pick({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasTemplateSchema, CanvasTemplateScopeSchema } from '../../models';
2
+ import { CanvasTemplateSchema, CanvasTemplateScopeSchema } from '../../../models';
3
3
 
4
4
  export namespace FindCanvasTemplatesQuery {
5
5
  export const RequestSchema = z.object({
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { CanvasTemplateSchema } from '../../models';
2
+ import { CanvasTemplateSchema } from '../../../models';
3
3
 
4
4
  export namespace GenerateCanvasTemplateByPromptCommand {
5
5
  export const RequestSchema = z.object({
@@ -4,7 +4,7 @@ import {
4
4
  CanvasTemplateGraphSchema,
5
5
  CanvasTemplateScopeSchema,
6
6
  CanvasTemplateTagSchema,
7
- } from '../../models';
7
+ } from '../../../models';
8
8
 
9
9
  export namespace UpdateCanvasTemplateCommand {
10
10
  export const RequestParamSchema = CanvasTemplateSchema.pick({
@@ -0,0 +1 @@
1
+ export * from './palette';
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+
3
+ const HexColorSchema = z.string().regex(/^#[0-9A-Fa-f]{6}$/);
4
+
5
+ export namespace GeneratePaletteCommand {
6
+ export const PaletteSchema = z.object({
7
+ colors: z.array(HexColorSchema).max(7),
8
+ });
9
+ export type Palette = z.infer<typeof PaletteSchema>;
10
+
11
+ export const RequestSchema = z.object({
12
+ nodeUuid: z.string().uuid(),
13
+ canvasId: z.string().uuid(),
14
+ prompt: z.string().min(1),
15
+ colors: z.array(HexColorSchema).optional(),
16
+ });
17
+ export type Request = z.infer<typeof RequestSchema>;
18
+
19
+ export const ResponseSchema = z.object({
20
+ data: PaletteSchema,
21
+ });
22
+ export type Response = z.infer<typeof ResponseSchema>;
23
+ }
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace GetPalettePriceCommand {
4
+ export const RequestSchema = z.object({
5
+ promptLength: z.coerce.number().positive(),
6
+ });
7
+ export type Request = z.infer<typeof RequestSchema>;
8
+
9
+ export const ResponseSchema = z.object({
10
+ data: z.object({
11
+ price: z.number(),
12
+ charsUntilNextPriceIncrease: z.number().int().nonnegative().nullable().optional(),
13
+ charsUntilNextPriceDecrease: z.number().int().nonnegative().nullable().optional(),
14
+ }),
15
+ });
16
+ export type Response = z.infer<typeof ResponseSchema>;
17
+ }
@@ -0,0 +1,2 @@
1
+ export * from './generate-palette.command';
2
+ export * from './get-palette-price.command';
@@ -0,0 +1,5 @@
1
+ export * from './canvas';
2
+ export * from './canvas-edge';
3
+ export * from './canvas-node';
4
+ export * from './canvas-template';
5
+ export * from './canvas-tool';
package/commands/index.ts CHANGED
@@ -3,9 +3,11 @@ export * from './ai-model';
3
3
  export * from './ai-vendor';
4
4
  export * from './auth';
5
5
  export * from './blog';
6
- export * from './canvas';
7
- export * from './canvas-node';
8
- export * from './canvas-edge';
6
+ export * from './ai-studio/canvas';
7
+ export * from './ai-studio/canvas-node';
8
+ export * from './ai-studio/canvas-edge';
9
+ export * from './ai-studio/canvas-template';
10
+ export * from './ai-studio/canvas-tool';
9
11
  export * from './category';
10
12
  export * from './chat';
11
13
  export * from './course';
@@ -49,5 +51,3 @@ export * from './user-profile';
49
51
  export * from './team-account';
50
52
  export * from './team-to-subscription';
51
53
  export * from './team-to-product';
52
-
53
- export * from './canvas-template';
@@ -25,7 +25,7 @@ export namespace FindTeamAccountsByNameCommand {
25
25
 
26
26
  return z.NEVER;
27
27
  });
28
-
28
+
29
29
  export const RequestSchema = z.object({
30
30
  name: z.string().trim().min(1).optional(),
31
31
  creatorEmail: z.string().trim().min(1).optional(),