@plitzi/sdk-server 0.32.17 → 0.32.18

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 (55) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/modules/mcp/apps/render/view.tsx +107 -3
  3. package/dist/modules/mcp/helpers/guide.js +9 -2
  4. package/dist/modules/mcp/resources/renderGuide.js +126 -19
  5. package/dist/modules/mcp/server.js +1 -1
  6. package/dist/modules/mcp/tools/apply/dispatch.js +2 -0
  7. package/dist/modules/mcp/tools/apply/index.js +17 -3
  8. package/dist/modules/mcp/tools/operations/index.js +4 -0
  9. package/dist/modules/mcp/tools/operations/schema/elements/patchElement.js +1 -1
  10. package/dist/modules/mcp/tools/operations/schema/elements/repeatElement.js +148 -0
  11. package/dist/modules/mcp/tools/operations/schema/interactions/deleteInteraction.js +1 -1
  12. package/dist/modules/mcp/tools/operations/schema/interactions/patchInteractionNode.js +1 -1
  13. package/dist/modules/mcp/tools/operations/schema/interactions/upsertInteractionFlow.js +1 -1
  14. package/dist/modules/mcp/tools/operations/schema/operations.js +2 -0
  15. package/dist/modules/mcp/tools/operations/schema/pages/upsertPage.js +1 -1
  16. package/dist/modules/mcp/tools/operations/schema/shared.js +8 -5
  17. package/dist/modules/mcp/tools/operations/schemaIds.js +54 -0
  18. package/dist/modules/mcp/tools/operations/style/definitions/patchDefinition.js +1 -1
  19. package/dist/modules/mcp/tools/operations/style/definitions/upsertDefinition.js +1 -1
  20. package/dist/modules/mcp/tools/operations/style/definitions/upsertDefinitions.js +40 -0
  21. package/dist/modules/mcp/tools/operations/style/globalStyles/patchGlobalStyle.js +1 -1
  22. package/dist/modules/mcp/tools/operations/style/globalStyles/upsertGlobalStyle.js +1 -1
  23. package/dist/modules/mcp/tools/operations/style/idStyles/patchIdStyle.js +1 -1
  24. package/dist/modules/mcp/tools/operations/style/idStyles/upsertIdStyle.js +1 -1
  25. package/dist/modules/mcp/tools/operations/style/operations.js +2 -0
  26. package/dist/modules/mcp/tools/operations/style/shared.js +1 -1
  27. package/dist/modules/mcp/tools/render.js +70 -8
  28. package/dist/modules/mcp/tools/shared/expandOperations.js +44 -0
  29. package/dist/modules/mcp/tools/shared/validator/audit.js +3 -0
  30. package/dist/modules/mcp/tools/shared/validator/batch.js +13 -4
  31. package/dist/modules/mcp/tools/shared/validator/index.js +15 -0
  32. package/dist/modules/mcp/tools/validate.js +11 -3
  33. package/dist/src/modules/mcp/apps/render/heldBatch.d.ts +10 -0
  34. package/dist/src/modules/mcp/apps/render/heldBatch.test.d.ts +1 -0
  35. package/dist/src/modules/mcp/e2e/index.d.ts +2 -2
  36. package/dist/src/modules/mcp/e2e/renderingHost.d.ts +16 -1
  37. package/dist/src/modules/mcp/helpers/guide.d.ts +1 -1
  38. package/dist/src/modules/mcp/tests/schemaIds.test.d.ts +1 -0
  39. package/dist/src/modules/mcp/tools/apply/index.d.ts +50 -0
  40. package/dist/src/modules/mcp/tools/operations/index.d.ts +100 -0
  41. package/dist/src/modules/mcp/tools/operations/schema/elements/repeatElement.d.ts +55 -0
  42. package/dist/src/modules/mcp/tools/operations/schema/index.d.ts +1 -0
  43. package/dist/src/modules/mcp/tools/operations/schema/operations.d.ts +19 -0
  44. package/dist/src/modules/mcp/tools/operations/schema/shared.d.ts +15 -0
  45. package/dist/src/modules/mcp/tools/operations/schemaIds.d.ts +6 -0
  46. package/dist/src/modules/mcp/tools/operations/style/definitions/upsertDefinitions.d.ts +41 -0
  47. package/dist/src/modules/mcp/tools/operations/style/index.d.ts +1 -0
  48. package/dist/src/modules/mcp/tools/operations/style/operations.d.ts +33 -0
  49. package/dist/src/modules/mcp/tools/operations/style/shared.d.ts +4 -3
  50. package/dist/src/modules/mcp/tools/preview.d.ts +50 -0
  51. package/dist/src/modules/mcp/tools/render.d.ts +421 -363
  52. package/dist/src/modules/mcp/tools/screenshot.d.ts +50 -0
  53. package/dist/src/modules/mcp/tools/shared/expandOperations.d.ts +13 -0
  54. package/dist/src/modules/mcp/tools/validate.d.ts +50 -0
  55. package/package.json +4 -4
@@ -11,6 +11,24 @@ export declare const screenshotShape: {
11
11
  before: "before";
12
12
  after: "after";
13
13
  }>>;
14
+ }, z.core.$strip>, z.ZodObject<{
15
+ type: z.ZodLiteral<"repeatElement">;
16
+ pageRef: z.ZodString;
17
+ ref: z.ZodString;
18
+ elementType: z.ZodOptional<z.ZodString>;
19
+ label: z.ZodOptional<z.ZodString>;
20
+ style: z.ZodOptional<z.ZodObject<{
21
+ base: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
23
+ }, z.core.$strip>>;
24
+ parentRef: z.ZodOptional<z.ZodString>;
25
+ position: z.ZodOptional<z.ZodEnum<{
26
+ inside: "inside";
27
+ before: "before";
28
+ after: "after";
29
+ }>>;
30
+ template: z.ZodType<import('./operations/schema').TemplateElement, unknown, z.core.$ZodTypeInternals<import('./operations/schema').TemplateElement, unknown>>;
31
+ items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
14
32
  }, z.core.$strip>, z.ZodObject<{
15
33
  type: z.ZodLiteral<"patchElement">;
16
34
  pageRef: z.ZodString;
@@ -223,6 +241,38 @@ export declare const screenshotShape: {
223
241
  }, z.core.$strip>>>;
224
242
  type: z.ZodLiteral<"upsertDefinition">;
225
243
  ref: z.ZodString;
244
+ }, z.core.$strip>, z.ZodObject<{
245
+ type: z.ZodLiteral<"upsertDefinitions">;
246
+ definitions: z.ZodRecord<z.ZodString, z.ZodObject<{
247
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
248
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
249
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
250
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
251
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
252
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
253
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
254
+ }, z.core.$strip>>>;
255
+ variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
256
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
257
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
258
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
259
+ }, z.core.$strip>>>;
260
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
261
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
262
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
263
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
264
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
265
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
266
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
267
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
268
+ }, z.core.$strip>>>;
269
+ variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
270
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
271
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
272
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
273
+ }, z.core.$strip>>>;
274
+ }, z.core.$strip>>>;
275
+ }, z.core.$strip>>;
226
276
  }, z.core.$strip>, z.ZodObject<{
227
277
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
228
278
  tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
@@ -0,0 +1,13 @@
1
+ import { ValidationError } from '../../types';
2
+ import { Operation } from '../operations';
3
+ /** Rewrites the sugar ops into the vocabulary the rest of the pipeline knows, BEFORE validation — today that is
4
+ * `repeatElement`, which stands for the `upsertElement` its template + rows expand to. Everything downstream
5
+ * (validator, dispatch, audit, versions) therefore stays unaware of it, and a row that renders a bad element is
6
+ * reported by the ordinary element checks.
7
+ *
8
+ * One op in, one op out: the indices the agent sent are the indices every error path names, so `operations[3]`
9
+ * still means the fourth operation it wrote. */
10
+ export declare const expandOperations: (ops: Operation[]) => {
11
+ operations: Operation[];
12
+ errors: ValidationError[];
13
+ };
@@ -12,6 +12,24 @@ export declare const validateShape: {
12
12
  before: "before";
13
13
  after: "after";
14
14
  }>>;
15
+ }, import('zod/v4/core').$strip>, import('zod').ZodObject<{
16
+ type: import('zod').ZodLiteral<"repeatElement">;
17
+ pageRef: import('zod').ZodString;
18
+ ref: import('zod').ZodString;
19
+ elementType: import('zod').ZodOptional<import('zod').ZodString>;
20
+ label: import('zod').ZodOptional<import('zod').ZodString>;
21
+ style: import('zod').ZodOptional<import('zod').ZodObject<{
22
+ base: import('zod').ZodOptional<import('zod').ZodArray<import('zod').ZodString>>;
23
+ slots: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodArray<import('zod').ZodString>>>;
24
+ }, import('zod/v4/core').$strip>>;
25
+ parentRef: import('zod').ZodOptional<import('zod').ZodString>;
26
+ position: import('zod').ZodOptional<import('zod').ZodEnum<{
27
+ inside: "inside";
28
+ before: "before";
29
+ after: "after";
30
+ }>>;
31
+ template: import('zod').ZodType<import('./operations/schema').TemplateElement, unknown, import('zod/v4/core').$ZodTypeInternals<import('./operations/schema').TemplateElement, unknown>>;
32
+ items: import('zod').ZodArray<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnknown>>;
15
33
  }, import('zod/v4/core').$strip>, import('zod').ZodObject<{
16
34
  type: import('zod').ZodLiteral<"patchElement">;
17
35
  pageRef: import('zod').ZodString;
@@ -224,6 +242,38 @@ export declare const validateShape: {
224
242
  }, import('zod/v4/core').$strip>>>;
225
243
  type: import('zod').ZodLiteral<"upsertDefinition">;
226
244
  ref: import('zod').ZodString;
245
+ }, import('zod/v4/core').$strip>, import('zod').ZodObject<{
246
+ type: import('zod').ZodLiteral<"upsertDefinitions">;
247
+ definitions: import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodObject<{
248
+ desktop: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
249
+ tablet: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
250
+ mobile: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
251
+ states: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodObject<{
252
+ desktop: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
253
+ tablet: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
254
+ mobile: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
255
+ }, import('zod/v4/core').$strip>>>;
256
+ variants: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodObject<{
257
+ desktop: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
258
+ tablet: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
259
+ mobile: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
260
+ }, import('zod/v4/core').$strip>>>;
261
+ slots: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodObject<{
262
+ desktop: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
263
+ tablet: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
264
+ mobile: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
265
+ states: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodObject<{
266
+ desktop: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
267
+ tablet: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
268
+ mobile: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
269
+ }, import('zod/v4/core').$strip>>>;
270
+ variants: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodObject<{
271
+ desktop: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
272
+ tablet: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
273
+ mobile: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>>>;
274
+ }, import('zod/v4/core').$strip>>>;
275
+ }, import('zod/v4/core').$strip>>>;
276
+ }, import('zod/v4/core').$strip>>;
227
277
  }, import('zod/v4/core').$strip>, import('zod').ZodObject<{
228
278
  desktop: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber, import('zod').ZodNull]>>>;
229
279
  tablet: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber, import('zod').ZodNull]>>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plitzi/sdk-server",
3
- "version": "0.32.17",
3
+ "version": "0.32.18",
4
4
  "license": "AGPL-3.0",
5
5
  "files": [
6
6
  "dist"
@@ -29,9 +29,9 @@
29
29
  "dependencies": {
30
30
  "@modelcontextprotocol/ext-apps": "^1.7.5",
31
31
  "@modelcontextprotocol/sdk": "^1.30.0",
32
- "@plitzi/plitzi-sdk": "0.32.17",
33
- "@plitzi/sdk-schema": "0.32.17",
34
- "@plitzi/sdk-shared": "0.32.17",
32
+ "@plitzi/plitzi-sdk": "0.32.18",
33
+ "@plitzi/sdk-schema": "0.32.18",
34
+ "@plitzi/sdk-shared": "0.32.18",
35
35
  "ejs": "^6.0.1",
36
36
  "esbuild": "^0.28.1",
37
37
  "zod": "^4.4.3"