@sxl-studio/bridge 1.7.2 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +342 -16
  2. package/dist/agent-recipes.d.ts +781 -11
  3. package/dist/agent-recipes.js +886 -13
  4. package/dist/agent-recipes.js.map +1 -1
  5. package/dist/agent-runbook.d.ts +50 -0
  6. package/dist/agent-runbook.js +243 -0
  7. package/dist/agent-runbook.js.map +1 -0
  8. package/dist/asset-upload.d.ts +63 -0
  9. package/dist/asset-upload.js +225 -0
  10. package/dist/asset-upload.js.map +1 -0
  11. package/dist/audit-store.d.ts +15 -0
  12. package/dist/audit-store.js +100 -0
  13. package/dist/audit-store.js.map +1 -0
  14. package/dist/audit.d.ts +4 -3
  15. package/dist/audit.js +37 -4
  16. package/dist/audit.js.map +1 -1
  17. package/dist/auth.d.ts +8 -1
  18. package/dist/auth.js +41 -1
  19. package/dist/auth.js.map +1 -1
  20. package/dist/bridge-agent-workflow-validation-cli.d.ts +2 -0
  21. package/dist/bridge-agent-workflow-validation-cli.js +68 -0
  22. package/dist/bridge-agent-workflow-validation-cli.js.map +1 -0
  23. package/dist/bridge-agent-workflow-validation.d.ts +42 -0
  24. package/dist/bridge-agent-workflow-validation.js +170 -0
  25. package/dist/bridge-agent-workflow-validation.js.map +1 -0
  26. package/dist/bridge-contract-audit.d.ts +45 -0
  27. package/dist/bridge-contract-audit.js +345 -0
  28. package/dist/bridge-contract-audit.js.map +1 -0
  29. package/dist/bridge-health-cli.d.ts +2 -0
  30. package/dist/bridge-health-cli.js +115 -0
  31. package/dist/bridge-health-cli.js.map +1 -0
  32. package/dist/bridge-health.d.ts +33 -0
  33. package/dist/bridge-health.js +594 -0
  34. package/dist/bridge-health.js.map +1 -0
  35. package/dist/bridge-live-validation-cli.d.ts +2 -0
  36. package/dist/bridge-live-validation-cli.js +114 -0
  37. package/dist/bridge-live-validation-cli.js.map +1 -0
  38. package/dist/bridge-live-validation.d.ts +39 -0
  39. package/dist/bridge-live-validation.js +1141 -0
  40. package/dist/bridge-live-validation.js.map +1 -0
  41. package/dist/bridge-performance-profile.d.ts +81 -0
  42. package/dist/bridge-performance-profile.js +227 -0
  43. package/dist/bridge-performance-profile.js.map +1 -0
  44. package/dist/bridge-readiness-cli.d.ts +30 -0
  45. package/dist/bridge-readiness-cli.js +242 -0
  46. package/dist/bridge-readiness-cli.js.map +1 -0
  47. package/dist/bridge-runtime-summary.d.ts +50 -0
  48. package/dist/bridge-runtime-summary.js +112 -0
  49. package/dist/bridge-runtime-summary.js.map +1 -0
  50. package/dist/bridge-workflow-smoke-cli.d.ts +2 -0
  51. package/dist/bridge-workflow-smoke-cli.js +126 -0
  52. package/dist/bridge-workflow-smoke-cli.js.map +1 -0
  53. package/dist/bridge-workflow-smoke.d.ts +39 -0
  54. package/dist/bridge-workflow-smoke.js +431 -0
  55. package/dist/bridge-workflow-smoke.js.map +1 -0
  56. package/dist/codeconnect-suggestions.d.ts +74 -0
  57. package/dist/codeconnect-suggestions.js +398 -0
  58. package/dist/codeconnect-suggestions.js.map +1 -0
  59. package/dist/codeconnect-template.d.ts +98 -0
  60. package/dist/codeconnect-template.js +280 -0
  61. package/dist/codeconnect-template.js.map +1 -0
  62. package/dist/command-queue.d.ts +11 -1
  63. package/dist/command-queue.js +200 -1
  64. package/dist/command-queue.js.map +1 -1
  65. package/dist/command-safety.d.ts +13 -0
  66. package/dist/command-safety.js +59 -0
  67. package/dist/command-safety.js.map +1 -0
  68. package/dist/enabled-library-search.d.ts +49 -0
  69. package/dist/enabled-library-search.js +151 -0
  70. package/dist/enabled-library-search.js.map +1 -0
  71. package/dist/figma-mcp-parity.d.ts +49 -0
  72. package/dist/figma-mcp-parity.js +368 -0
  73. package/dist/figma-mcp-parity.js.map +1 -0
  74. package/dist/figma-mcp-skills-parity.d.ts +61 -0
  75. package/dist/figma-mcp-skills-parity.js +434 -0
  76. package/dist/figma-mcp-skills-parity.js.map +1 -0
  77. package/dist/figma-rest-diagnostics.d.ts +50 -0
  78. package/dist/figma-rest-diagnostics.js +314 -0
  79. package/dist/figma-rest-diagnostics.js.map +1 -0
  80. package/dist/figma-rest.d.ts +27 -0
  81. package/dist/figma-rest.js +116 -0
  82. package/dist/figma-rest.js.map +1 -0
  83. package/dist/http-api.d.ts +16 -2
  84. package/dist/http-api.js +329 -17
  85. package/dist/http-api.js.map +1 -1
  86. package/dist/index.js +25 -1
  87. package/dist/index.js.map +1 -1
  88. package/dist/mcp-factory.d.ts +6 -1
  89. package/dist/mcp-factory.js +23 -4
  90. package/dist/mcp-factory.js.map +1 -1
  91. package/dist/mcp-runtime-probe.d.ts +22 -0
  92. package/dist/mcp-runtime-probe.js +777 -0
  93. package/dist/mcp-runtime-probe.js.map +1 -0
  94. package/dist/mcp-server.d.ts +2 -1
  95. package/dist/mcp-server.js +2 -2
  96. package/dist/mcp-server.js.map +1 -1
  97. package/dist/sxl-mcp-instructions.js +99 -26
  98. package/dist/sxl-mcp-instructions.js.map +1 -1
  99. package/dist/tools/audit.d.ts +22 -6
  100. package/dist/tools/audit.js +49 -7
  101. package/dist/tools/audit.js.map +1 -1
  102. package/dist/tools/capability-matrix.d.ts +22 -0
  103. package/dist/tools/capability-matrix.js +38 -0
  104. package/dist/tools/capability-matrix.js.map +1 -0
  105. package/dist/tools/catalogue-bootstrap.d.ts +1 -0
  106. package/dist/tools/catalogue-bootstrap.js +665 -30
  107. package/dist/tools/catalogue-bootstrap.js.map +1 -1
  108. package/dist/tools/code-connect-context.d.ts +3 -0
  109. package/dist/tools/code-connect-context.js +319 -0
  110. package/dist/tools/code-connect-context.js.map +1 -0
  111. package/dist/tools/code-connect-template.d.ts +3 -0
  112. package/dist/tools/code-connect-template.js +111 -0
  113. package/dist/tools/code-connect-template.js.map +1 -0
  114. package/dist/tools/composition.js +15 -30
  115. package/dist/tools/composition.js.map +1 -1
  116. package/dist/tools/compositions-orchestration.d.ts +14 -14
  117. package/dist/tools/compositions-orchestration.js +2 -2
  118. package/dist/tools/compositions-orchestration.js.map +1 -1
  119. package/dist/tools/data.js +839 -27
  120. package/dist/tools/data.js.map +1 -1
  121. package/dist/tools/design-context.d.ts +3 -0
  122. package/dist/tools/design-context.js +197 -0
  123. package/dist/tools/design-context.js.map +1 -0
  124. package/dist/tools/destructive-confirmation.d.ts +10 -0
  125. package/dist/tools/destructive-confirmation.js +25 -0
  126. package/dist/tools/destructive-confirmation.js.map +1 -0
  127. package/dist/tools/diagnostics.js +76 -51
  128. package/dist/tools/diagnostics.js.map +1 -1
  129. package/dist/tools/figma-mcp-design.d.ts +3 -0
  130. package/dist/tools/figma-mcp-design.js +377 -0
  131. package/dist/tools/figma-mcp-design.js.map +1 -0
  132. package/dist/tools/figma-nodes.js +57 -43
  133. package/dist/tools/figma-nodes.js.map +1 -1
  134. package/dist/tools/figma-rc-extended.js +23 -6
  135. package/dist/tools/figma-rc-extended.js.map +1 -1
  136. package/dist/tools/figma-rest.d.ts +39 -0
  137. package/dist/tools/figma-rest.js +279 -0
  138. package/dist/tools/figma-rest.js.map +1 -0
  139. package/dist/tools/git.js +11 -7
  140. package/dist/tools/git.js.map +1 -1
  141. package/dist/tools/large-data.d.ts +14 -0
  142. package/dist/tools/large-data.js +189 -0
  143. package/dist/tools/large-data.js.map +1 -0
  144. package/dist/tools/meta.d.ts +6 -1
  145. package/dist/tools/meta.js +89 -11
  146. package/dist/tools/meta.js.map +1 -1
  147. package/dist/tools/metadata.d.ts +3 -0
  148. package/dist/tools/metadata.js +140 -0
  149. package/dist/tools/metadata.js.map +1 -0
  150. package/dist/tools/mockup.d.ts +15 -156
  151. package/dist/tools/mockup.js +54 -121
  152. package/dist/tools/mockup.js.map +1 -1
  153. package/dist/tools/orchestration.js +75 -47
  154. package/dist/tools/orchestration.js.map +1 -1
  155. package/dist/tools/prompts.d.ts +3 -0
  156. package/dist/tools/prompts.js +219 -0
  157. package/dist/tools/prompts.js.map +1 -0
  158. package/dist/tools/registry.d.ts +19 -1
  159. package/dist/tools/registry.js +4 -4
  160. package/dist/tools/registry.js.map +1 -1
  161. package/dist/tools/resources.d.ts +19 -2
  162. package/dist/tools/resources.js +149 -5
  163. package/dist/tools/resources.js.map +1 -1
  164. package/dist/tools/schema-contracts.d.ts +4763 -0
  165. package/dist/tools/schema-contracts.js +814 -0
  166. package/dist/tools/schema-contracts.js.map +1 -0
  167. package/dist/tools/screenshot.d.ts +3 -0
  168. package/dist/tools/screenshot.js +144 -0
  169. package/dist/tools/screenshot.js.map +1 -0
  170. package/dist/tools/shared.d.ts +11 -1
  171. package/dist/tools/shared.js +55 -2
  172. package/dist/tools/shared.js.map +1 -1
  173. package/dist/tools/styles-orchestration.d.ts +2 -2
  174. package/dist/tools/styles-orchestration.js +13 -5
  175. package/dist/tools/styles-orchestration.js.map +1 -1
  176. package/dist/tools/styles.js +22 -8
  177. package/dist/tools/styles.js.map +1 -1
  178. package/dist/tools/tokens.d.ts +31 -692
  179. package/dist/tools/tokens.js +175 -135
  180. package/dist/tools/tokens.js.map +1 -1
  181. package/dist/tools/variable-defs.d.ts +3 -0
  182. package/dist/tools/variable-defs.js +338 -0
  183. package/dist/tools/variable-defs.js.map +1 -0
  184. package/dist/tools/variables-orchestration.js +13 -5
  185. package/dist/tools/variables-orchestration.js.map +1 -1
  186. package/dist/tools/variables.js +18 -15
  187. package/dist/tools/variables.js.map +1 -1
  188. package/dist/types.d.ts +53 -0
  189. package/dist/ultimate-readiness-audit.d.ts +37 -0
  190. package/dist/ultimate-readiness-audit.js +431 -0
  191. package/dist/ultimate-readiness-audit.js.map +1 -0
  192. package/dist/workflow-planner.d.ts +57 -0
  193. package/dist/workflow-planner.js +464 -0
  194. package/dist/workflow-planner.js.map +1 -0
  195. package/dist/workspace-blob-store.d.ts +6 -0
  196. package/dist/workspace-blob-store.js +9 -0
  197. package/dist/workspace-blob-store.js.map +1 -1
  198. package/dist/workspace-path-http.d.ts +24 -0
  199. package/dist/workspace-path-http.js +146 -0
  200. package/dist/workspace-path-http.js.map +1 -0
  201. package/dist/ws-server.js +16 -3
  202. package/dist/ws-server.js.map +1 -1
  203. package/package.json +21 -2
@@ -23,153 +23,11 @@
23
23
  import { z } from "zod";
24
24
  import type { McpServer } from "../../node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js";
25
25
  import type { CommandQueue } from "../command-queue.js";
26
- declare const sizingSpecZod: z.ZodObject<{
27
- mode: z.ZodOptional<z.ZodEnum<["HUG", "FIXED", "FILL"]>>;
28
- width: z.ZodOptional<z.ZodNumber>;
29
- height: z.ZodOptional<z.ZodNumber>;
30
- }, "strip", z.ZodTypeAny, {
31
- width?: number | undefined;
32
- height?: number | undefined;
33
- mode?: "FIXED" | "HUG" | "FILL" | undefined;
34
- }, {
35
- width?: number | undefined;
36
- height?: number | undefined;
37
- mode?: "FIXED" | "HUG" | "FILL" | undefined;
38
- }>;
39
- declare const layoutSpecZod: z.ZodObject<{
40
- mode: z.ZodOptional<z.ZodEnum<["VERTICAL", "HORIZONTAL", "WRAP"]>>;
41
- itemSpacing: z.ZodOptional<z.ZodNumber>;
42
- counterAxisSpacing: z.ZodOptional<z.ZodNumber>;
43
- padding: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
44
- top: z.ZodOptional<z.ZodNumber>;
45
- right: z.ZodOptional<z.ZodNumber>;
46
- bottom: z.ZodOptional<z.ZodNumber>;
47
- left: z.ZodOptional<z.ZodNumber>;
48
- }, "strip", z.ZodTypeAny, {
49
- top?: number | undefined;
50
- right?: number | undefined;
51
- bottom?: number | undefined;
52
- left?: number | undefined;
53
- }, {
54
- top?: number | undefined;
55
- right?: number | undefined;
56
- bottom?: number | undefined;
57
- left?: number | undefined;
58
- }>]>>;
59
- primaryAxis: z.ZodOptional<z.ZodEnum<["MIN", "CENTER", "MAX", "SPACE_BETWEEN"]>>;
60
- counterAxis: z.ZodOptional<z.ZodEnum<["MIN", "CENTER", "MAX", "BASELINE"]>>;
61
- width: z.ZodOptional<z.ZodNumber>;
62
- height: z.ZodOptional<z.ZodNumber>;
63
- background: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
64
- hex: z.ZodString;
65
- }, "strip", z.ZodTypeAny, {
66
- hex: string;
67
- }, {
68
- hex: string;
69
- }>, z.ZodObject<{
70
- variableId: z.ZodString;
71
- }, "strip", z.ZodTypeAny, {
72
- variableId: string;
73
- }, {
74
- variableId: string;
75
- }>]>>;
76
- }, "strip", z.ZodTypeAny, {
77
- width?: number | undefined;
78
- height?: number | undefined;
79
- padding?: number | {
80
- top?: number | undefined;
81
- right?: number | undefined;
82
- bottom?: number | undefined;
83
- left?: number | undefined;
84
- } | undefined;
85
- itemSpacing?: number | undefined;
86
- mode?: "HORIZONTAL" | "VERTICAL" | "WRAP" | undefined;
87
- counterAxisSpacing?: number | undefined;
88
- primaryAxis?: "MIN" | "MAX" | "CENTER" | "SPACE_BETWEEN" | undefined;
89
- counterAxis?: "MIN" | "MAX" | "CENTER" | "BASELINE" | undefined;
90
- background?: {
91
- hex: string;
92
- } | {
93
- variableId: string;
94
- } | undefined;
95
- }, {
96
- width?: number | undefined;
97
- height?: number | undefined;
98
- padding?: number | {
99
- top?: number | undefined;
100
- right?: number | undefined;
101
- bottom?: number | undefined;
102
- left?: number | undefined;
103
- } | undefined;
104
- itemSpacing?: number | undefined;
105
- mode?: "HORIZONTAL" | "VERTICAL" | "WRAP" | undefined;
106
- counterAxisSpacing?: number | undefined;
107
- primaryAxis?: "MIN" | "MAX" | "CENTER" | "SPACE_BETWEEN" | undefined;
108
- counterAxis?: "MIN" | "MAX" | "CENTER" | "BASELINE" | undefined;
109
- background?: {
110
- hex: string;
111
- } | {
112
- variableId: string;
113
- } | undefined;
114
- }>;
115
- type MockupItemBase = {
116
- kind: "instance";
117
- componentId?: string;
118
- componentKey?: string;
119
- componentName?: string;
120
- name?: string;
121
- properties?: Record<string, string | boolean>;
122
- textOverrides?: Array<{
123
- layerName: string;
124
- value: string;
125
- }>;
126
- fillBindings?: Array<{
127
- layerName?: string;
128
- variableId: string;
129
- paintIndex?: number;
130
- }>;
131
- layoutSizing?: {
132
- mode?: "HUG" | "FIXED" | "FILL";
133
- width?: number;
134
- height?: number;
135
- };
136
- count?: number;
137
- } | {
138
- kind: "spacer";
139
- size?: number;
140
- fillContainer?: boolean;
141
- } | {
142
- kind: "text";
143
- value: string;
144
- name?: string;
145
- fontSize?: number;
146
- fontName?: {
147
- family: string;
148
- style: string;
149
- };
150
- textStyleId?: string;
151
- fillBindings?: Array<{
152
- layerName?: string;
153
- variableId: string;
154
- paintIndex?: number;
155
- }>;
156
- layoutSizing?: {
157
- mode?: "HUG" | "FIXED" | "FILL";
158
- width?: number;
159
- height?: number;
160
- };
161
- };
162
- type MockupItem = MockupItemBase | {
163
- kind: "section";
164
- name?: string;
165
- layout?: z.infer<typeof layoutSpecZod>;
166
- layoutSizing?: z.infer<typeof sizingSpecZod>;
167
- items: MockupItem[];
168
- };
169
26
  export declare function registerMockupTools(server: McpServer, queue: CommandQueue): void;
170
27
  export declare const __test_only__: {
171
- mockupItemZod: z.ZodType<MockupItem, z.ZodTypeDef, MockupItem>;
28
+ mockupItemZod: z.ZodType<import("./schema-contracts.js").DesignDslItem, z.ZodTypeDef, import("./schema-contracts.js").DesignDslItem>;
172
29
  buildMockupArgs: {
30
+ version: z.ZodOptional<z.ZodLiteral<"1">>;
173
31
  name: z.ZodOptional<z.ZodString>;
174
32
  targetParentId: z.ZodOptional<z.ZodString>;
175
33
  targetRootId: z.ZodOptional<z.ZodString>;
@@ -213,17 +71,17 @@ export declare const __test_only__: {
213
71
  }, "strip", z.ZodTypeAny, {
214
72
  width?: number | undefined;
215
73
  height?: number | undefined;
74
+ mode?: "VERTICAL" | "HORIZONTAL" | "WRAP" | undefined;
75
+ itemSpacing?: number | undefined;
76
+ counterAxisSpacing?: number | undefined;
216
77
  padding?: number | {
217
78
  top?: number | undefined;
218
79
  right?: number | undefined;
219
80
  bottom?: number | undefined;
220
81
  left?: number | undefined;
221
82
  } | undefined;
222
- itemSpacing?: number | undefined;
223
- mode?: "HORIZONTAL" | "VERTICAL" | "WRAP" | undefined;
224
- counterAxisSpacing?: number | undefined;
225
- primaryAxis?: "MIN" | "MAX" | "CENTER" | "SPACE_BETWEEN" | undefined;
226
- counterAxis?: "MIN" | "MAX" | "CENTER" | "BASELINE" | undefined;
83
+ primaryAxis?: "MIN" | "CENTER" | "MAX" | "SPACE_BETWEEN" | undefined;
84
+ counterAxis?: "MIN" | "CENTER" | "MAX" | "BASELINE" | undefined;
227
85
  background?: {
228
86
  hex: string;
229
87
  } | {
@@ -232,27 +90,29 @@ export declare const __test_only__: {
232
90
  }, {
233
91
  width?: number | undefined;
234
92
  height?: number | undefined;
93
+ mode?: "VERTICAL" | "HORIZONTAL" | "WRAP" | undefined;
94
+ itemSpacing?: number | undefined;
95
+ counterAxisSpacing?: number | undefined;
235
96
  padding?: number | {
236
97
  top?: number | undefined;
237
98
  right?: number | undefined;
238
99
  bottom?: number | undefined;
239
100
  left?: number | undefined;
240
101
  } | undefined;
241
- itemSpacing?: number | undefined;
242
- mode?: "HORIZONTAL" | "VERTICAL" | "WRAP" | undefined;
243
- counterAxisSpacing?: number | undefined;
244
- primaryAxis?: "MIN" | "MAX" | "CENTER" | "SPACE_BETWEEN" | undefined;
245
- counterAxis?: "MIN" | "MAX" | "CENTER" | "BASELINE" | undefined;
102
+ primaryAxis?: "MIN" | "CENTER" | "MAX" | "SPACE_BETWEEN" | undefined;
103
+ counterAxis?: "MIN" | "CENTER" | "MAX" | "BASELINE" | undefined;
246
104
  background?: {
247
105
  hex: string;
248
106
  } | {
249
107
  variableId: string;
250
108
  } | undefined;
251
109
  }>>;
252
- items: z.ZodArray<z.ZodType<MockupItem, z.ZodTypeDef, MockupItem>, "many">;
110
+ items: z.ZodArray<z.ZodType<import("./schema-contracts.js").DesignDslItem, z.ZodTypeDef, import("./schema-contracts.js").DesignDslItem>, "many">;
253
111
  dryRun: z.ZodOptional<z.ZodBoolean>;
254
112
  };
255
113
  findComponentsArgs: {
114
+ bridgeResponseMode: z.ZodOptional<z.ZodEnum<["auto", "summary", "full"]>>;
115
+ bridgeMaxResponseBytes: z.ZodOptional<z.ZodNumber>;
256
116
  query: z.ZodOptional<z.ZodString>;
257
117
  prefix: z.ZodOptional<z.ZodString>;
258
118
  kind: z.ZodOptional<z.ZodEnum<["COMPONENT", "COMPONENT_SET", "ALL"]>>;
@@ -320,4 +180,3 @@ export declare const __test_only__: {
320
180
  dryRun: z.ZodOptional<z.ZodBoolean>;
321
181
  };
322
182
  };
323
- export {};
@@ -21,57 +21,10 @@
21
21
  * bad item.
22
22
  */
23
23
  import { z } from "zod";
24
- import { callPluginCommand } from "./shared.js";
24
+ import { callPluginCommand, callPluginWriteCommand, executePluginCommand, ok } from "./shared.js";
25
+ import { largeDataResponseArgs, normalizeLargeDataResult, } from "./large-data.js";
26
+ import { designDslBuildMockupArgs as buildMockupArgs, designDslFillBindingZod, designDslItemZod as mockupItemZod, designDslPropertiesMapZod, designDslScreenSpecV1Zod, designDslTextOverrideZod, designDslUpdateScreenSpecV1Zod, } from "./schema-contracts.js";
25
27
  // ─── Shared building blocks ──────────────────────────────────────────────────
26
- const propertyValueZod = z.union([z.string(), z.boolean()]);
27
- const propertiesMapZod = z.record(z.string(), propertyValueZod);
28
- const textOverrideZod = z.object({
29
- layerName: z.string().min(1).describe("TEXT layer name inside the instance to receive `value`."),
30
- value: z.string().describe("New characters to write into that TEXT layer."),
31
- });
32
- const fillBindingZod = z.object({
33
- layerName: z
34
- .string()
35
- .min(1)
36
- .optional()
37
- .describe("Optional child-layer name to scope the binding. When omitted, the binding applies to the host node itself."),
38
- variableId: z.string().min(1).describe("Figma Variable id (must resolve to COLOR)."),
39
- paintIndex: z
40
- .number()
41
- .int()
42
- .min(0)
43
- .optional()
44
- .describe("Which existing fill index to bind. Default: 0 (first fill, which is created if absent)."),
45
- });
46
- const sizingSpecZod = z.object({
47
- mode: z.enum(["HUG", "FIXED", "FILL"]).optional(),
48
- width: z.number().positive().optional(),
49
- height: z.number().positive().optional(),
50
- });
51
- const paddingSpecZod = z.union([
52
- z.number().min(0),
53
- z.object({
54
- top: z.number().min(0).optional(),
55
- right: z.number().min(0).optional(),
56
- bottom: z.number().min(0).optional(),
57
- left: z.number().min(0).optional(),
58
- }),
59
- ]);
60
- const layoutBackgroundZod = z.union([
61
- z.object({ hex: z.string().regex(/^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/, "hex must be #rrggbb[aa]") }),
62
- z.object({ variableId: z.string().min(1) }),
63
- ]);
64
- const layoutSpecZod = z.object({
65
- mode: z.enum(["VERTICAL", "HORIZONTAL", "WRAP"]).optional(),
66
- itemSpacing: z.number().min(0).optional(),
67
- counterAxisSpacing: z.number().min(0).optional(),
68
- padding: paddingSpecZod.optional(),
69
- primaryAxis: z.enum(["MIN", "CENTER", "MAX", "SPACE_BETWEEN"]).optional(),
70
- counterAxis: z.enum(["MIN", "CENTER", "MAX", "BASELINE"]).optional(),
71
- width: z.number().positive().optional(),
72
- height: z.number().positive().optional(),
73
- background: layoutBackgroundZod.optional(),
74
- });
75
28
  // ─── find_components ─────────────────────────────────────────────────────────
76
29
  const findComponentsArgs = {
77
30
  query: z
@@ -99,78 +52,14 @@ const findComponentsArgs = {
99
52
  .describe("Also include library components instantiated in this file (deduplicated by main id). Default: false."),
100
53
  limit: z.number().int().positive().max(200).optional().describe("Max entries returned. Default: 50."),
101
54
  cursor: z.string().optional().describe("Opaque pagination cursor returned by previous call."),
102
- };
103
- const mockupItemZod = z.lazy(() => z.discriminatedUnion("kind", [
104
- z.object({
105
- kind: z.literal("instance"),
106
- componentId: z.string().min(1).optional(),
107
- componentKey: z.string().min(1).optional(),
108
- componentName: z.string().min(1).optional(),
109
- name: z.string().optional().describe("Override the resulting instance.name."),
110
- properties: propertiesMapZod.optional().describe("Component property overrides keyed by base name (e.g. `size`, `variant`). The plugin resolves the internal `name#defId` suffix."),
111
- textOverrides: z.array(textOverrideZod).optional(),
112
- fillBindings: z.array(fillBindingZod).optional(),
113
- layoutSizing: sizingSpecZod.optional(),
114
- count: z
115
- .number()
116
- .int()
117
- .positive()
118
- .max(500)
119
- .optional()
120
- .describe("Repeat the same instance N times (HUG layouts wrap automatically). Default: 1."),
121
- }),
122
- z.object({
123
- kind: z.literal("spacer"),
124
- size: z.number().min(0).optional().describe("Square size when fillContainer is false. Default: 8."),
125
- fillContainer: z.boolean().optional().describe("Stretch along the parent's primary axis."),
126
- }),
127
- z.object({
128
- kind: z.literal("text"),
129
- value: z.string(),
130
- name: z.string().optional(),
131
- fontSize: z.number().positive().optional(),
132
- fontName: z
133
- .object({ family: z.string(), style: z.string() })
134
- .optional()
135
- .describe("Defaults to Inter Regular (loaded with safe fallback)."),
136
- textStyleId: z.string().optional(),
137
- fillBindings: z.array(fillBindingZod).optional(),
138
- layoutSizing: sizingSpecZod.optional(),
139
- }),
140
- z.object({
141
- kind: z.literal("section"),
142
- name: z.string().optional(),
143
- layout: layoutSpecZod.optional(),
144
- layoutSizing: sizingSpecZod.optional(),
145
- items: z.array(mockupItemZod).min(1),
146
- }),
147
- ]));
148
- const buildMockupArgs = {
149
- name: z
150
- .string()
151
- .optional()
152
- .describe("Container name (default: `Mockup <ISO timestamp>`)."),
153
- targetParentId: z
154
- .string()
155
- .optional()
156
- .describe("Parent frame id where the new container is created. Mutually exclusive with targetRootId."),
157
- targetRootId: z
158
- .string()
159
- .optional()
160
- .describe("Existing FRAME id — items are appended into it instead of creating a new container."),
161
- layout: layoutSpecZod.optional(),
162
- items: z.array(mockupItemZod).min(1),
163
- dryRun: z
164
- .boolean()
165
- .optional()
166
- .describe("If true, returns the resolved plan + would-be overrides without touching the canvas."),
55
+ ...largeDataResponseArgs,
167
56
  };
168
57
  // ─── apply_mockup_dataset ────────────────────────────────────────────────────
169
58
  const datasetRowZod = z.object({
170
59
  name: z.string().optional(),
171
- properties: propertiesMapZod.optional(),
172
- textOverrides: z.array(textOverrideZod).optional(),
173
- fillBindings: z.array(fillBindingZod).optional(),
60
+ properties: designDslPropertiesMapZod.optional(),
61
+ textOverrides: z.array(designDslTextOverrideZod).optional(),
62
+ fillBindings: z.array(designDslFillBindingZod).optional(),
174
63
  });
175
64
  const applyMockupDatasetArgs = {
176
65
  templateNodeId: z
@@ -193,9 +82,53 @@ const applyMockupDatasetArgs = {
193
82
  };
194
83
  // ─── Registration ────────────────────────────────────────────────────────────
195
84
  export function registerMockupTools(server, queue) {
196
- server.tool("find_components", "READ-ONLY (Phase D, mockup): paginated catalogue of local Figma COMPONENT / COMPONENT_SET nodes plus, optionally, library components instantiated in this file. Returns id, key, name, parent set, default variant, and componentPropertyDefinitions so the agent can build override payloads for build_mockup without round-tripping use_figma. Use this BEFORE build_mockup to discover correct ids/keys instead of guessing names.", findComponentsArgs, async (args) => callPluginCommand(queue, "find_components", { ...args }));
197
- server.tool("build_mockup", "Phase D: assemble a Figma auto-layout mockup from a declarative item tree. Items: `instance` (component override + text + fill bindings), `section` (recursive auto-layout frame), `spacer` (rigid or stretchy), `text`. Component resolution: `componentId` (any) → `componentKey` (library import) → `componentName` (local exact match). Property overrides accept the human key (`size`, `variant`); the plugin maps to the internal `name#defId` suffix. `fillBindings` bind COLOR variables to SOLID paints (creates a SOLID if missing). Run with `dryRun: true` first to preview the resolved plan. NEVER hand-write use_figma scripts for this — read sxl://agent/recipes/mockup-builder.", buildMockupArgs, async (args) => callPluginCommand(queue, "build_mockup", { ...args }));
198
- server.tool("apply_mockup_dataset", "Phase D: clone a template scene node once per row and apply row-specific overrides (properties, text, fill bindings). Use this when the user wants to render N cards / list rows from a structured dataset. `removeTemplate: true` deletes the original after cloning (handy when the template was a placeholder). `dryRun: true` previews without touching the canvas. Per-row failures are reported but never abort the run.", applyMockupDatasetArgs, async (args) => callPluginCommand(queue, "apply_mockup_dataset", { ...args }));
85
+ server.tool("inspect_design_system", "READ-ONLY: aggregate the design-system context an agent needs before building screens: components, local variables, local styles, token config, and composition index. This is the Bridge equivalent of the discovery phase in Figma generate-design/generate-library workflows.", {
86
+ componentQuery: z.string().optional(),
87
+ componentPrefix: z.string().optional(),
88
+ includeRemoteInstances: z.boolean().optional(),
89
+ componentLimit: z.number().int().positive().max(200).optional(),
90
+ ...largeDataResponseArgs,
91
+ }, async ({ componentQuery, componentPrefix, includeRemoteInstances, componentLimit, ...controls }) => {
92
+ const [components, variables, styles, tokenConfig, compositions] = await Promise.all([
93
+ executePluginCommand(queue, "find_components", {
94
+ ...(componentQuery ? { query: componentQuery } : {}),
95
+ ...(componentPrefix ? { prefix: componentPrefix } : {}),
96
+ includeRemoteInstances: includeRemoteInstances === true,
97
+ includeProperties: true,
98
+ limit: componentLimit ?? 100,
99
+ }),
100
+ executePluginCommand(queue, "get_variables", {}),
101
+ executePluginCommand(queue, "get_local_styles", {}),
102
+ executePluginCommand(queue, "get_tokens_config", {}).catch((error) => ({ ok: false, error: String(error) })),
103
+ executePluginCommand(queue, "list_compositions", {}).catch((error) => ({ ok: false, error: String(error) })),
104
+ ]);
105
+ const result = {
106
+ ok: true,
107
+ components,
108
+ variables,
109
+ styles,
110
+ tokenConfig,
111
+ compositions,
112
+ };
113
+ return ok(normalizeLargeDataResult("inspect_design_system", controls, result));
114
+ });
115
+ server.tool("validate_screen_spec", "READ-ONLY: validate Design DSL v1 before writing to Figma. Use this before build_screen/update_screen when an agent composed a screen spec from natural language.", { spec: designDslScreenSpecV1Zod }, async ({ spec }) => ok({ ok: true, dryRun: true, spec }));
116
+ server.tool("build_screen", "Build a real editable Figma screen using Design DSL v1. This is an agent-friendly wrapper over build_mockup; prefer it for natural-language screen/documentation requests after inspect_design_system + validate_screen_spec.", { spec: designDslScreenSpecV1Zod }, async ({ spec }) => callPluginWriteCommand(queue, "build_mockup", { ...spec }, {
117
+ okFalseErrorCode: "SXL_MOCKUP_WRITE_FAILED",
118
+ }));
119
+ server.tool("update_screen", "Update an existing Figma screen/frame with Design DSL v1 by appending/applying items to targetRootId. This avoids recreating the whole file and uses the same engine as build_mockup.", {
120
+ targetRootId: z.string().min(1),
121
+ spec: designDslUpdateScreenSpecV1Zod,
122
+ }, async ({ targetRootId, spec }) => callPluginWriteCommand(queue, "update_screen", { ...spec, targetRootId }, {
123
+ okFalseErrorCode: "SXL_MOCKUP_WRITE_FAILED",
124
+ }));
125
+ server.tool("find_components", "READ-ONLY (Phase D, mockup): paginated catalogue of local Figma COMPONENT / COMPONENT_SET nodes plus, optionally, library components instantiated in this file. Returns id, key, name, parent set, default variant, and componentPropertyDefinitions so the agent can build override payloads for build_mockup without round-tripping use_figma. Use this BEFORE build_mockup to discover correct ids/keys instead of guessing names.", findComponentsArgs, async (args) => callPluginCommand(queue, "find_components", { ...args }, { largeData: true }));
126
+ server.tool("build_mockup", "Phase D: assemble a Figma auto-layout mockup from a declarative item tree. Items: `instance` (component override + text + fill bindings), `section` (recursive auto-layout frame), `spacer` (rigid or stretchy), `text`. Component resolution: `componentId` (any) → `componentKey` (library import) → `componentName` (local exact match). Property overrides accept the human key (`size`, `variant`); the plugin maps to the internal `name#defId` suffix. `fillBindings` bind COLOR variables to SOLID paints (creates a SOLID if missing). Run with `dryRun: true` first to preview the resolved plan. NEVER hand-write use_figma scripts for this — read sxl://agent/recipes/mockup-builder.", buildMockupArgs, async (args) => callPluginWriteCommand(queue, "build_mockup", { ...args }, {
127
+ okFalseErrorCode: "SXL_MOCKUP_WRITE_FAILED",
128
+ }));
129
+ server.tool("apply_mockup_dataset", "Phase D: clone a template scene node once per row and apply row-specific overrides (properties, text, fill bindings). Use this when the user wants to render N cards / list rows from a structured dataset. `removeTemplate: true` deletes the original after cloning (handy when the template was a placeholder). `dryRun: true` previews without touching the canvas. Per-row failures are reported but never abort the run.", applyMockupDatasetArgs, async (args) => callPluginWriteCommand(queue, "apply_mockup_dataset", { ...args }, {
130
+ okFalseErrorCode: "SXL_MOCKUP_WRITE_FAILED",
131
+ }));
199
132
  }
200
133
  export const __test_only__ = {
201
134
  mockupItemZod,
@@ -1 +1 @@
1
- {"version":3,"file":"mockup.js","sourceRoot":"","sources":["../../src/tools/mockup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,gFAAgF;AAEhF,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC5D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,4GAA4G,CAC7G;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACpF,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,yFAAyF,CAAC;CACvG,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACnC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC;IAClC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,EAAE,yBAAyB,CAAC,EAAE,CAAC;IACpG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,gFAAgF;AAEhF,MAAM,kBAAkB,GAAG;IACzB,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;SAC3C,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACzF,iBAAiB,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;IACjF,sBAAsB,EAAE,CAAC;SACtB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,sGAAsG,CACvG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACrG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC9F,CAAC;AA2CF,MAAM,aAAa,GAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACvD,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC3B,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC7E,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC9C,iIAAiI,CAClI;QACD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QAClD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;QAChD,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE;QACtC,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gFAAgF,CAAC;KAC9F,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACnG,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;KAC3F,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC1C,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;aACjD,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;QAChD,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE;KACvC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE;QAChC,YAAY,EAAE,aAAa,CAAC,QAAQ,EAAE;QACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC,CAAC;CACH,CAA0B,CAC5B,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2FAA2F,CAAC;IACxG,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qFAAqF,CAAC;IAClG,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC;SACN,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sFAAsF,CAAC;CACpG,CAAC;AAEF,gFAAgF;AAEhF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IAClD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG;IAC7B,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,yDAAyD,CAAC;IACtE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,4EAA4E,CAAC;IACzF,MAAM,EAAE,CAAC;SACN,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC;AAEF,gFAAgF;AAEhF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,KAAmB;IACxE,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,uaAAua,EACva,kBAAkB,EAClB,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CACzE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,oqBAAoqB,EACpqB,eAAe,EACf,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CACtE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,gaAAga,EACha,sBAAsB,EACtB,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAC9E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,sBAAsB;CACvB,CAAC"}
1
+ {"version":3,"file":"mockup.js","sourceRoot":"","sources":["../../src/tools/mockup.ts"],"names":[],"mappings":"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"}