@plitzi/sdk-mcp 0.38.6 → 0.38.8

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 (92) hide show
  1. package/CHANGELOG.md +397 -0
  2. package/README.md +9 -9
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +2 -3
  5. package/dist/modules/mcp/helpers/guide.js +74 -35
  6. package/dist/modules/mcp/index.d.ts +2 -2
  7. package/dist/modules/mcp/server.d.ts +4 -4
  8. package/dist/modules/mcp/server.js +10 -5
  9. package/dist/modules/mcp/tests/cheapMistakes.test.d.ts +1 -0
  10. package/dist/modules/mcp/tests/helpers.d.ts +9 -2
  11. package/dist/modules/mcp/tests/intents.test.d.ts +1 -0
  12. package/dist/modules/mcp/tests/look.test.d.ts +1 -0
  13. package/dist/modules/mcp/tools/apply/index.d.ts +706 -62
  14. package/dist/modules/mcp/tools/apply/index.js +70 -20
  15. package/dist/modules/mcp/tools/describeOperation.d.ts +11 -0
  16. package/dist/modules/mcp/tools/describeOperation.js +40 -0
  17. package/dist/modules/mcp/tools/describeOperation.test.d.ts +1 -0
  18. package/dist/modules/mcp/tools/index.d.ts +1 -6
  19. package/dist/modules/mcp/tools/index.js +12 -9
  20. package/dist/modules/mcp/tools/intents.d.ts +5 -0
  21. package/dist/modules/mcp/tools/intents.js +201 -0
  22. package/dist/modules/mcp/tools/look.d.ts +17 -0
  23. package/dist/modules/mcp/tools/look.js +32 -0
  24. package/dist/modules/mcp/tools/operations/closed.d.ts +7 -0
  25. package/dist/modules/mcp/tools/operations/closed.js +29 -0
  26. package/dist/modules/mcp/tools/operations/index.d.ts +2928 -359
  27. package/dist/modules/mcp/tools/operations/index.js +72 -51
  28. package/dist/modules/mcp/tools/operations/schema/bindings/upsertBinding.d.ts +1 -1
  29. package/dist/modules/mcp/tools/operations/schema/elements/moveElement.d.ts +1 -1
  30. package/dist/modules/mcp/tools/operations/schema/elements/repeatElement.d.ts +1 -1
  31. package/dist/modules/mcp/tools/operations/schema/elements/upsertElement.d.ts +1 -1
  32. package/dist/modules/mcp/tools/operations/schema/interactions/upsertInteractionFlow.d.ts +1 -1
  33. package/dist/modules/mcp/tools/operations/schema/operations.d.ts +5 -5
  34. package/dist/modules/mcp/tools/operations/schema/shared.d.ts +3 -3
  35. package/dist/modules/mcp/tools/operations/schema/shared.js +7 -6
  36. package/dist/modules/mcp/tools/operations/schemaIds.js +11 -5
  37. package/dist/modules/mcp/tools/operations/style/definitions/patchDefinition.d.ts +90 -0
  38. package/dist/modules/mcp/tools/operations/style/definitions/patchDefinition.js +2 -1
  39. package/dist/modules/mcp/tools/operations/style/definitions/upsertDefinition.d.ts +90 -0
  40. package/dist/modules/mcp/tools/operations/style/definitions/upsertDefinition.js +2 -1
  41. package/dist/modules/mcp/tools/operations/style/definitions/upsertDefinitions.d.ts +90 -0
  42. package/dist/modules/mcp/tools/operations/style/definitions/upsertDefinitions.js +8 -1
  43. package/dist/modules/mcp/tools/operations/style/globalStyles/patchGlobalStyle.d.ts +90 -0
  44. package/dist/modules/mcp/tools/operations/style/globalStyles/patchGlobalStyle.js +2 -1
  45. package/dist/modules/mcp/tools/operations/style/globalStyles/upsertGlobalStyle.d.ts +90 -0
  46. package/dist/modules/mcp/tools/operations/style/globalStyles/upsertGlobalStyle.js +2 -1
  47. package/dist/modules/mcp/tools/operations/style/idStyles/patchIdStyle.d.ts +90 -0
  48. package/dist/modules/mcp/tools/operations/style/idStyles/patchIdStyle.js +2 -1
  49. package/dist/modules/mcp/tools/operations/style/idStyles/upsertIdStyle.d.ts +90 -0
  50. package/dist/modules/mcp/tools/operations/style/idStyles/upsertIdStyle.js +2 -1
  51. package/dist/modules/mcp/tools/operations/style/operations.d.ts +639 -9
  52. package/dist/modules/mcp/tools/operations/style/shared.d.ts +394 -0
  53. package/dist/modules/mcp/tools/operations/style/shared.js +26 -8
  54. package/dist/modules/mcp/tools/operations/style/translator.js +26 -1
  55. package/dist/modules/mcp/tools/operations/style/validate.d.ts +4 -0
  56. package/dist/modules/mcp/tools/operations/style/validate.js +63 -0
  57. package/dist/modules/mcp/tools/operations/style/write.d.ts +1 -1
  58. package/dist/modules/mcp/tools/operations/style/write.js +88 -2
  59. package/dist/modules/mcp/tools/render.d.ts +675 -45
  60. package/dist/modules/mcp/tools/render.js +5 -1
  61. package/dist/modules/mcp/tools/shared/draftBatch.d.ts +3 -2
  62. package/dist/modules/mcp/tools/shared/draftBatch.js +16 -5
  63. package/dist/modules/mcp/tools/shared/effects.d.ts +2 -0
  64. package/dist/modules/mcp/tools/shared/effects.js +155 -0
  65. package/dist/modules/mcp/tools/shared/effects.test.d.ts +1 -0
  66. package/dist/modules/mcp/tools/shared/look.d.ts +32 -0
  67. package/dist/modules/mcp/tools/shared/look.js +128 -0
  68. package/dist/modules/mcp/tools/shared/normalizeOperations.d.ts +6 -0
  69. package/dist/modules/mcp/tools/shared/normalizeOperations.js +37 -0
  70. package/dist/modules/mcp/tools/shared/repeats.d.ts +13 -0
  71. package/dist/modules/mcp/tools/shared/repeats.js +38 -0
  72. package/dist/modules/mcp/tools/shared/tool.d.ts +9 -6
  73. package/dist/modules/mcp/tools/shared/tool.js +2 -1
  74. package/dist/modules/mcp/tools/shared/validator/context.d.ts +0 -1
  75. package/dist/modules/mcp/tools/shared/validator/elements.js +0 -1
  76. package/dist/modules/mcp/tools/shared/validator/index.js +25 -2
  77. package/dist/modules/mcp/types/aiSchema.d.ts +13 -1
  78. package/dist/modules/mcp/types/screenshotTypes.d.ts +3 -3
  79. package/dist/modules/mcp/types/toolTypes.d.ts +2 -4
  80. package/dist/options.d.ts +4 -5
  81. package/dist/preview/createPreview.js +9 -18
  82. package/package.json +7 -7
  83. package/skills/plitzi-render/SKILL.md +8 -184
  84. package/skills/plitzi-render/reference/good-call.md +88 -0
  85. package/skills/plitzi-render/reference/interactive.md +64 -0
  86. package/skills/plitzi-render/reference/looks.md +29 -0
  87. package/dist/modules/mcp/tools/preview.d.ts +0 -793
  88. package/dist/modules/mcp/tools/preview.js +0 -37
  89. package/dist/modules/mcp/tools/screenshot.d.ts +0 -1078
  90. package/dist/modules/mcp/tools/screenshot.js +0 -127
  91. package/dist/modules/mcp/tools/validate.d.ts +0 -1069
  92. package/dist/modules/mcp/tools/validate.js +0 -32
@@ -1,66 +1,78 @@
1
1
  import { actionOps } from "./actions/index.js";
2
+ import { closed, typeOf } from "./closed.js";
2
3
  import { connectorOps } from "./connectors/index.js";
3
4
  import { dataOps } from "./data/index.js";
4
5
  import { functionOps } from "./functions/index.js";
5
6
  import { elementOps } from "./schema/operations.js";
6
7
  import { registerSharedSchemaIds } from "./schemaIds.js";
7
8
  import { styleOps } from "./style/operations.js";
9
+ import { closest } from "@plitzi/sdk-authoring";
8
10
  import { z } from "zod";
9
11
  //#region src/modules/mcp/tools/operations/index.ts
10
12
  registerSharedSchemaIds();
13
+ /** A batch's operations, each read by its `type` — and a type none of them has answered with the nearest one. */
14
+ var union = (options) => {
15
+ const types = options.map(typeOf);
16
+ return z.discriminatedUnion("type", options, { error: (issue) => {
17
+ const { input } = issue;
18
+ const type = typeof input === "object" && input !== null && "type" in input ? String(input.type) : "";
19
+ const nearest = closest(type, types);
20
+ return type === "" ? "An operation needs its `type`: plitzi_describe_operation lists every one" : `There is no "${type}" operation${nearest ? ` — did you mean "${nearest}"?` : ""}: plitzi_describe_operation lists every type`;
21
+ } });
22
+ };
11
23
  var documentOps = [
12
- elementOps.upsertElement,
13
- elementOps.repeatElement,
14
- elementOps.patchElement,
15
- elementOps.deleteElement,
16
- elementOps.moveElement,
17
- elementOps.upsertPage,
18
- elementOps.deletePage,
19
- elementOps.upsertLayout,
20
- elementOps.deleteLayout,
21
- elementOps.upsertFolder,
22
- elementOps.deleteFolder,
23
- elementOps.upsertVariable,
24
- elementOps.deleteVariable,
25
- elementOps.upsertFlag,
26
- elementOps.deleteFlag,
27
- elementOps.upsertBinding,
28
- elementOps.patchBinding,
29
- elementOps.deleteBinding,
30
- elementOps.upsertInteractionFlow,
31
- elementOps.patchInteractionNode,
32
- elementOps.deleteInteraction,
33
- elementOps.patchSettings,
34
- elementOps.upsertComponent,
35
- elementOps.deleteComponent,
36
- styleOps.upsertDefinition,
37
- styleOps.upsertDefinitions,
38
- styleOps.patchDefinition,
39
- styleOps.deleteDefinition,
40
- styleOps.upsertGlobalStyle,
41
- styleOps.patchGlobalStyle,
42
- styleOps.deleteGlobalStyle,
43
- styleOps.upsertIdStyle,
44
- styleOps.patchIdStyle,
45
- styleOps.deleteIdStyle,
46
- styleOps.upsertStyleVariable,
47
- styleOps.deleteStyleVariable,
48
- styleOps.upsertFont,
49
- styleOps.deleteFont
24
+ closed(elementOps.upsertElement),
25
+ closed(elementOps.repeatElement),
26
+ closed(elementOps.patchElement),
27
+ closed(elementOps.deleteElement),
28
+ closed(elementOps.moveElement),
29
+ closed(elementOps.upsertPage),
30
+ closed(elementOps.deletePage),
31
+ closed(elementOps.upsertLayout),
32
+ closed(elementOps.deleteLayout),
33
+ closed(elementOps.upsertFolder),
34
+ closed(elementOps.deleteFolder),
35
+ closed(elementOps.upsertVariable),
36
+ closed(elementOps.deleteVariable),
37
+ closed(elementOps.upsertFlag),
38
+ closed(elementOps.deleteFlag),
39
+ closed(elementOps.upsertBinding),
40
+ closed(elementOps.patchBinding),
41
+ closed(elementOps.deleteBinding),
42
+ closed(elementOps.upsertInteractionFlow),
43
+ closed(elementOps.patchInteractionNode),
44
+ closed(elementOps.deleteInteraction),
45
+ closed(elementOps.patchSettings),
46
+ closed(elementOps.upsertComponent),
47
+ closed(elementOps.deleteComponent),
48
+ closed(styleOps.upsertDefinition),
49
+ closed(styleOps.upsertDefinitions),
50
+ closed(styleOps.patchDefinition),
51
+ closed(styleOps.deleteDefinition),
52
+ closed(styleOps.upsertGlobalStyle),
53
+ closed(styleOps.patchGlobalStyle),
54
+ closed(styleOps.deleteGlobalStyle),
55
+ closed(styleOps.upsertIdStyle),
56
+ closed(styleOps.patchIdStyle),
57
+ closed(styleOps.deleteIdStyle),
58
+ closed(styleOps.upsertStyleVariable),
59
+ closed(styleOps.deleteStyleVariable),
60
+ closed(styleOps.upsertFont),
61
+ closed(styleOps.deleteFont)
50
62
  ];
51
- var documentOperation = z.discriminatedUnion("type", documentOps);
52
- var operation = z.discriminatedUnion("type", [
63
+ var documentOperation = union(documentOps);
64
+ var operation = union([
53
65
  ...documentOps,
54
- connectorOps.upsertConnector,
55
- connectorOps.patchConnector,
56
- connectorOps.deleteConnector,
57
- actionOps.upsertAction,
58
- actionOps.patchAction,
59
- actionOps.deleteAction,
60
- functionOps.upsertFunctionFile,
61
- functionOps.deleteFunctionFile,
62
- dataOps.upsertDataFile,
63
- dataOps.deleteDataFile
66
+ closed(connectorOps.upsertConnector),
67
+ closed(connectorOps.patchConnector),
68
+ closed(connectorOps.deleteConnector),
69
+ closed(actionOps.upsertAction),
70
+ closed(actionOps.patchAction),
71
+ closed(actionOps.deleteAction),
72
+ closed(functionOps.upsertFunctionFile),
73
+ closed(functionOps.deleteFunctionFile),
74
+ closed(dataOps.upsertDataFile),
75
+ closed(dataOps.deleteDataFile)
64
76
  ]);
65
77
  var STYLE_OP_TYPES = new Set(Object.keys(styleOps));
66
78
  var isStyleOp = (type) => STYLE_OP_TYPES.has(type);
@@ -68,5 +80,14 @@ var MAX_OPS = 1e3;
68
80
  var environment = z.string().optional().describe("Environment; default main");
69
81
  var operations = z.array(operation).max(MAX_OPS).describe(`Operations applied atomically, in order (max ${MAX_OPS})`);
70
82
  var documentOperations = z.array(documentOperation).max(MAX_OPS).describe(`Operations applied atomically, in order (max ${MAX_OPS})`);
83
+ /** Every operation by its type — the closed vocabulary an agent picks from, and what `plitzi_describe_operation` reads. */
84
+ var OPERATIONS_BY_TYPE = new Map(operation.options.map((variant) => [variant.shape.type.value, variant]));
85
+ var DOCUMENT_OPERATION_TYPES = documentOperation.options.map((variant) => variant.shape.type.value);
86
+ /**
87
+ * `documentOperations` as advertised beside a tool that already carries the whole vocabulary (`plitzi_apply`): each
88
+ * operation's type from the closed list, its fields left to the schema the agent already has. One copy of a ~14k-token
89
+ * schema per connection instead of two; what runs is still parsed against the full one.
90
+ */
91
+ var compactDocumentOperations = z.array(z.looseObject({ type: z.enum(DOCUMENT_OPERATION_TYPES) })).max(MAX_OPS).describe(`Operations applied atomically, in order (max ${MAX_OPS}) — the document operations of plitzi_apply, with the same fields; plitzi_describe_operation gives any one of them`);
71
92
  //#endregion
72
- export { MAX_OPS, documentOperation, documentOperations, environment, isStyleOp, operation, operations };
93
+ export { MAX_OPS, OPERATIONS_BY_TYPE, compactDocumentOperations, documentOperation, documentOperations, environment, isStyleOp, operation, operations };
@@ -21,7 +21,7 @@ export declare const upsertBindingOp: z.ZodObject<{
21
21
  }, z.core.$strip>>>;
22
22
  when: z.ZodOptional<z.ZodType<import('@plitzi/sdk-shared').RuleGroup, unknown, z.core.$ZodTypeInternals<import('@plitzi/sdk-shared').RuleGroup, unknown>>>;
23
23
  enabled: z.ZodOptional<z.ZodBoolean>;
24
- }, z.core.$strip>;
24
+ }, z.core.$strict>;
25
25
  }, z.core.$strip>;
26
26
  export type UpsertBinding = z.infer<typeof upsertBindingOp>;
27
27
  export declare const upsertBinding: (space: Space, env: Env, op: UpsertBinding) => OpResult;
@@ -7,9 +7,9 @@ export declare const moveElementOp: z.ZodObject<{
7
7
  ref: z.ZodString;
8
8
  toParentRef: z.ZodString;
9
9
  position: z.ZodEnum<{
10
- inside: "inside";
11
10
  before: "before";
12
11
  after: "after";
12
+ inside: "inside";
13
13
  }>;
14
14
  }, z.core.$strip>;
15
15
  export type MoveElement = z.infer<typeof moveElementOp>;
@@ -39,9 +39,9 @@ export declare const repeatElementOp: z.ZodObject<{
39
39
  }, z.core.$strip>>;
40
40
  parentRef: z.ZodOptional<z.ZodString>;
41
41
  position: z.ZodOptional<z.ZodEnum<{
42
- inside: "inside";
43
42
  before: "before";
44
43
  after: "after";
44
+ inside: "inside";
45
45
  }>>;
46
46
  template: z.ZodType<TemplateElement, unknown, z.core.$ZodTypeInternals<TemplateElement, unknown>>;
47
47
  items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -7,9 +7,9 @@ export declare const upsertElementOp: z.ZodObject<{
7
7
  element: z.ZodType<import('..').ElementInput, unknown, z.core.$ZodTypeInternals<import('..').ElementInput, unknown>>;
8
8
  parentRef: z.ZodOptional<z.ZodString>;
9
9
  position: z.ZodOptional<z.ZodEnum<{
10
- inside: "inside";
11
10
  before: "before";
12
11
  after: "after";
12
+ inside: "inside";
13
13
  }>>;
14
14
  }, z.core.$strip>;
15
15
  export type UpsertElement = z.infer<typeof upsertElementOp>;
@@ -27,7 +27,7 @@ export declare const upsertInteractionFlowOp: z.ZodObject<{
27
27
  }>>;
28
28
  elementId: z.ZodOptional<z.ZodString>;
29
29
  preview: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
30
- }, z.core.$strip>>;
30
+ }, z.core.$strict>>;
31
31
  }, z.core.$strip>;
32
32
  export type UpsertInteractionFlow = z.infer<typeof upsertInteractionFlowOp>;
33
33
  export declare const upsertInteractionFlow: (space: Space, env: Env, op: UpsertInteractionFlow) => OpResult;
@@ -5,9 +5,9 @@ export declare const elementOps: {
5
5
  element: import('zod').ZodType<import('./shared').ElementInput, unknown, import('zod/v4/core').$ZodTypeInternals<import('./shared').ElementInput, unknown>>;
6
6
  parentRef: import('zod').ZodOptional<import('zod').ZodString>;
7
7
  position: import('zod').ZodOptional<import('zod').ZodEnum<{
8
- inside: "inside";
9
8
  before: "before";
10
9
  after: "after";
10
+ inside: "inside";
11
11
  }>>;
12
12
  }, import('zod/v4/core').$strip>;
13
13
  repeatElement: import('zod').ZodObject<{
@@ -22,9 +22,9 @@ export declare const elementOps: {
22
22
  }, import('zod/v4/core').$strip>>;
23
23
  parentRef: import('zod').ZodOptional<import('zod').ZodString>;
24
24
  position: import('zod').ZodOptional<import('zod').ZodEnum<{
25
- inside: "inside";
26
25
  before: "before";
27
26
  after: "after";
27
+ inside: "inside";
28
28
  }>>;
29
29
  template: import('zod').ZodType<import('.').TemplateElement, unknown, import('zod/v4/core').$ZodTypeInternals<import('.').TemplateElement, unknown>>;
30
30
  items: import('zod').ZodArray<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnknown>>;
@@ -66,9 +66,9 @@ export declare const elementOps: {
66
66
  ref: import('zod').ZodString;
67
67
  toParentRef: import('zod').ZodString;
68
68
  position: import('zod').ZodEnum<{
69
- inside: "inside";
70
69
  before: "before";
71
70
  after: "after";
71
+ inside: "inside";
72
72
  }>;
73
73
  }, import('zod/v4/core').$strip>;
74
74
  upsertPage: import('zod').ZodObject<{
@@ -168,7 +168,7 @@ export declare const elementOps: {
168
168
  }, import('zod/v4/core').$strip>>>;
169
169
  when: import('zod').ZodOptional<import('zod').ZodType<import('@plitzi/sdk-shared').RuleGroup, unknown, import('zod/v4/core').$ZodTypeInternals<import('@plitzi/sdk-shared').RuleGroup, unknown>>>;
170
170
  enabled: import('zod').ZodOptional<import('zod').ZodBoolean>;
171
- }, import('zod/v4/core').$strip>;
171
+ }, import('zod/v4/core').$strict>;
172
172
  }, import('zod/v4/core').$strip>;
173
173
  patchBinding: import('zod').ZodObject<{
174
174
  type: import('zod').ZodLiteral<"patchBinding">;
@@ -228,7 +228,7 @@ export declare const elementOps: {
228
228
  }>>;
229
229
  elementId: import('zod').ZodOptional<import('zod').ZodString>;
230
230
  preview: import('zod').ZodOptional<import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodUnknown>>;
231
- }, import('zod/v4/core').$strip>>;
231
+ }, import('zod/v4/core').$strict>>;
232
232
  }, import('zod/v4/core').$strip>;
233
233
  patchInteractionNode: import('zod').ZodObject<{
234
234
  type: import('zod').ZodLiteral<"patchInteractionNode">;
@@ -82,9 +82,9 @@ export declare const elementShape: {
82
82
  };
83
83
  export declare const elementInput: z.ZodType<ElementInput>;
84
84
  export declare const position: z.ZodEnum<{
85
- inside: "inside";
86
85
  before: "before";
87
86
  after: "after";
87
+ inside: "inside";
88
88
  }>;
89
89
  export type Position = z.infer<typeof position>;
90
90
  export declare const scalar: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
@@ -104,7 +104,7 @@ export declare const bindingInput: z.ZodObject<{
104
104
  }, z.core.$strip>>>;
105
105
  when: z.ZodOptional<z.ZodType<RuleGroup, unknown, z.core.$ZodTypeInternals<RuleGroup, unknown>>>;
106
106
  enabled: z.ZodOptional<z.ZodBoolean>;
107
- }, z.core.$strip>;
107
+ }, z.core.$strict>;
108
108
  export declare const interactionNodeType: z.ZodEnum<{
109
109
  trigger: "trigger";
110
110
  globalCallback: "globalCallback";
@@ -132,7 +132,7 @@ export declare const interactionNode: z.ZodObject<{
132
132
  }>>;
133
133
  elementId: z.ZodOptional<z.ZodString>;
134
134
  preview: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
135
- }, z.core.$strip>;
135
+ }, z.core.$strict>;
136
136
  /** What the validator checks: an authored node, or one read back from storage — which may carry a `task` type the
137
137
  * write vocabulary above does not offer. Checking the stored shape is the point; refusing it is the validator's. */
138
138
  export type InteractionNodeInput = Omit<z.infer<typeof interactionNode>, 'nodeType'> & {
@@ -1,3 +1,4 @@
1
+ import { closedObject } from "../closed.js";
1
2
  import { isSuggestionCode } from "@plitzi/sdk-authoring";
2
3
  import { z } from "zod";
3
4
  import { FLAG_GATE_PATTERN } from "@plitzi/sdk-shared/flags";
@@ -111,10 +112,10 @@ var elementShape = {
111
112
  motion: elementMotion.optional(),
112
113
  quiet: elementQuiet.optional()
113
114
  };
114
- var elementInput = z.lazy(() => z.object({
115
+ var elementInput = z.lazy(() => closedObject("An element", {
115
116
  ...elementShape,
116
117
  children: z.array(elementInput).optional()
117
- }));
118
+ }, "plitzi_describe_operation { type: \"upsertElement\" }"));
118
119
  var position = z.enum([
119
120
  "inside",
120
121
  "before",
@@ -135,21 +136,21 @@ var bindingTransformer = z.object({
135
136
  params: z.record(z.string(), z.string()),
136
137
  enabled: z.boolean().optional().describe("Set false to keep the transformer in the chain but skip it at runtime (defaults to true)")
137
138
  });
138
- var bindingInput = z.object({
139
+ var bindingInput = closedObject("A binding", {
139
140
  to: z.string().describe("Target field the value feeds (a prop key, style value, or initialState key)"),
140
141
  source: z.string().describe("Data source path, e.g. \"apiContainer_x.data\" — see plitzi://data-sources"),
141
142
  id: z.string().optional().describe("Stable binding id; generated when omitted"),
142
143
  transformers: z.array(bindingTransformer).optional(),
143
144
  when: ruleGroup.optional().describe("QueryBuilder RuleGroup gating the binding (validated structurally)"),
144
145
  enabled: z.boolean().optional()
145
- });
146
+ }, "plitzi_describe_operation { type: \"upsertBinding\" }");
146
147
  var interactionNodeType = z.enum([
147
148
  "trigger",
148
149
  "globalCallback",
149
150
  "callback",
150
151
  "utility"
151
152
  ]).describe("trigger starts a flow (must be first); the rest run in order after it");
152
- var interactionNode = z.object({
153
+ var interactionNode = closedObject("A flow step", {
153
154
  id: z.string().optional().describe("Existing node id to preserve; generated when omitted"),
154
155
  title: z.string().describe("Human label for the step"),
155
156
  nodeType: interactionNodeType,
@@ -160,6 +161,6 @@ var interactionNode = z.object({
160
161
  whileRunning: z.enum(WHILE_RUNNING_MODES).optional().describe("Trigger only: a refiring while this flow runs"),
161
162
  elementId: z.string().optional().describe("Element whose callback this step invokes, by name; defaults to this element"),
162
163
  preview: z.record(z.string(), z.unknown()).optional()
163
- });
164
+ }, "plitzi_describe_operation { type: \"upsertInteractionFlow\" }");
164
165
  //#endregion
165
166
  export { bindingCategory, bindingInput, elementAnchor, elementFlag, elementInput, elementMotion, elementQuiet, elementRuntime, elementShape, initialStateInput, interactionNode, interactionNodeType, position, ruleGroup, scalar, styleRefs, styleVariantInput };
@@ -1,13 +1,13 @@
1
1
  import { actionAccess, actionField, actionLimits, actionNode, actionTriggerParams } from "./actions/document.js";
2
2
  import { connectorConnection, readEndpoint, writeEndpoint } from "./connectors/manifest.js";
3
3
  import { bindingInput, elementAnchor, elementFlag, elementInput, elementMotion, elementQuiet, initialStateInput, interactionNode, position, ruleGroup, styleRefs, styleVariantInput } from "./schema/shared.js";
4
- import { ancestors, ancestorsPatch, cssMap, cssPatchMap, definitionSlot, definitionSlotPatch, displayModeCss, displayModeCssPatch, themeValue } from "./style/shared.js";
4
+ import { ancestors, ancestorsPatch, conditions, conditionsPatch, cssMap, cssPatchMap, definitionSlot, definitionSlotPatch, displayModeCss, displayModeCssPatch, pseudos, pseudosPatch, themeValue, variantPart, variantPartPatch } from "./style/shared.js";
5
5
  import { z } from "zod";
6
6
  //#region src/modules/mcp/tools/operations/schemaIds.ts
7
- /** The op union is the tool input of plitzi_apply, plitzi_validate, plitzi_render AND plitzi_preview, and every
8
- * host reads it as JSON Schema on tools/list — four copies of the same 30 operations in the model's context, on
9
- * EVERY request of every conversation the server is connected to. It measured ~25k tokens PER TOOL (~100k in
10
- * total), which dwarfs anything a widget payload ever costs.
7
+ /** The op union is the tool input of plitzi_apply (and of plitzi_render where apply is not listed), and every host
8
+ * reads it as JSON Schema on tools/list — on EVERY request of every conversation the server is connected to. It
9
+ * measured ~25k tokens a copy, which dwarfs anything a widget payload ever costs; one copy per connection is what
10
+ * `compactInputShape` keeps it to, and this keeps that copy small.
11
11
  *
12
12
  * Most of that weight is one subschema pasted over and over: an element tree appears in upsertElement,
13
13
  * patchElement and both repeat templates; a breakpoint CSS block in every style op; a rule group in every binding
@@ -41,6 +41,12 @@ var SHARED_SCHEMAS = [
41
41
  [displayModeCssPatch, "BreakpointCssPatch"],
42
42
  [ancestors, "StyleAncestors"],
43
43
  [ancestorsPatch, "StyleAncestorsPatch"],
44
+ [pseudos, "StylePseudos"],
45
+ [pseudosPatch, "StylePseudosPatch"],
46
+ [conditions, "StyleConditions"],
47
+ [conditionsPatch, "StyleConditionsPatch"],
48
+ [variantPart, "StyleVariantRules"],
49
+ [variantPartPatch, "StyleVariantRulesPatch"],
44
50
  [themeValue, "ThemeValue"],
45
51
  [readEndpoint, "ConnectorRead"],
46
52
  [writeEndpoint, "ConnectorWrite"],
@@ -14,6 +14,21 @@ export declare const patchDefinitionOp: z.ZodObject<{
14
14
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
15
15
  tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
16
16
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
17
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
18
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
19
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
20
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
21
+ }, z.core.$strip>>>;
22
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
23
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
24
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
25
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
26
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
27
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
28
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
29
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
30
+ }, z.core.$strip>>>;
31
+ }, z.core.$strip>>>>;
17
32
  }, z.core.$strip>>>;
18
33
  ancestors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
19
34
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
@@ -30,6 +45,36 @@ export declare const patchDefinitionOp: z.ZodObject<{
30
45
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
31
46
  }, z.core.$strip>>>;
32
47
  }, z.core.$strip>>>>;
48
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
49
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
50
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
51
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
52
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
53
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
54
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
55
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
56
+ }, z.core.$strip>>>;
57
+ }, z.core.$strip>>>>;
58
+ conditions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
59
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
60
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
61
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
62
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
63
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
64
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
65
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
66
+ }, z.core.$strip>>>;
67
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
68
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
69
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
70
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
71
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
72
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
73
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
74
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
75
+ }, z.core.$strip>>>;
76
+ }, z.core.$strip>>>>;
77
+ }, z.core.$strip>>>>;
33
78
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
34
79
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
35
80
  tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
@@ -43,6 +88,21 @@ export declare const patchDefinitionOp: z.ZodObject<{
43
88
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
44
89
  tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
45
90
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
91
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
92
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
93
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
94
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
95
+ }, z.core.$strip>>>;
96
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
97
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
98
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
99
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
100
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
101
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
102
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
103
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
104
+ }, z.core.$strip>>>;
105
+ }, z.core.$strip>>>>;
46
106
  }, z.core.$strip>>>;
47
107
  ancestors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
48
108
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
@@ -59,6 +119,36 @@ export declare const patchDefinitionOp: z.ZodObject<{
59
119
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
60
120
  }, z.core.$strip>>>;
61
121
  }, z.core.$strip>>>>;
122
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
123
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
124
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
125
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
126
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
127
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
128
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
129
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
130
+ }, z.core.$strip>>>;
131
+ }, z.core.$strip>>>>;
132
+ conditions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
133
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
134
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
135
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
136
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
137
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
138
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
139
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
140
+ }, z.core.$strip>>>;
141
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
142
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
143
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
144
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
145
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
146
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
147
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
148
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>>>;
149
+ }, z.core.$strip>>>;
150
+ }, z.core.$strip>>>>;
151
+ }, z.core.$strip>>>>;
62
152
  }, z.core.$strip>>>;
63
153
  type: z.ZodLiteral<"patchDefinition">;
64
154
  ref: z.ZodString;
@@ -17,7 +17,8 @@ var patchDefinition = (space, env, op) => {
17
17
  if (!existing) return fail("ref", `Definition "${op.ref}" not found`, "patchDefinition only updates an existing definition; use upsertDefinition to create one");
18
18
  const { type, ref, slots: slotsPatch, ...basePatch } = op;
19
19
  const { base, slots } = mergePatch(existing, basePatch, slotsPatch);
20
- writeStyleItem(space.style, ref, base, slots, "class", void 0);
20
+ const problem = writeStyleItem(space.style, ref, base, slots, "class", void 0);
21
+ if (problem) return problem;
21
22
  return {
22
23
  ...empty(),
23
24
  updated: 1,
@@ -14,6 +14,21 @@ export declare const upsertDefinitionOp: z.ZodObject<{
14
14
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
15
15
  tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
16
16
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
17
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
18
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
19
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
20
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
21
+ }, z.core.$strip>>>;
22
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
23
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
24
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
25
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
26
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
27
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
28
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
29
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
30
+ }, z.core.$strip>>>;
31
+ }, z.core.$strip>>>;
17
32
  }, z.core.$strip>>>;
18
33
  ancestors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
19
34
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
@@ -30,6 +45,36 @@ export declare const upsertDefinitionOp: z.ZodObject<{
30
45
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
31
46
  }, z.core.$strip>>>;
32
47
  }, z.core.$strip>>>;
48
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
49
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
50
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
51
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
52
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
53
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
54
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
55
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
56
+ }, z.core.$strip>>>;
57
+ }, z.core.$strip>>>;
58
+ conditions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
59
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
60
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
61
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
62
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
63
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
64
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
65
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
66
+ }, z.core.$strip>>>;
67
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
68
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
69
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
70
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
71
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
72
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
73
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
74
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
75
+ }, z.core.$strip>>>;
76
+ }, z.core.$strip>>>;
77
+ }, z.core.$strip>>>;
33
78
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
34
79
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
35
80
  tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
@@ -43,6 +88,21 @@ export declare const upsertDefinitionOp: z.ZodObject<{
43
88
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
44
89
  tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
45
90
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
91
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
92
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
93
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
94
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
95
+ }, z.core.$strip>>>;
96
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
97
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
98
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
99
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
100
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
101
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
102
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
103
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
104
+ }, z.core.$strip>>>;
105
+ }, z.core.$strip>>>;
46
106
  }, z.core.$strip>>>;
47
107
  ancestors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
48
108
  desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
@@ -59,6 +119,36 @@ export declare const upsertDefinitionOp: z.ZodObject<{
59
119
  mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
60
120
  }, z.core.$strip>>>;
61
121
  }, z.core.$strip>>>;
122
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
123
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
124
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
125
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
126
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
127
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
128
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
129
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
130
+ }, z.core.$strip>>>;
131
+ }, z.core.$strip>>>;
132
+ conditions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
133
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
134
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
135
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
136
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
137
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
138
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
139
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
140
+ }, z.core.$strip>>>;
141
+ pseudos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
142
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
143
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
144
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
145
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
146
+ desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
147
+ tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
148
+ mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
149
+ }, z.core.$strip>>>;
150
+ }, z.core.$strip>>>;
151
+ }, z.core.$strip>>>;
62
152
  }, z.core.$strip>>>;
63
153
  type: z.ZodLiteral<"upsertDefinition">;
64
154
  ref: z.ZodString;