@sxl-studio/bridge 1.7.2 → 1.7.3

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 (197) 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 +14 -2
  84. package/dist/http-api.js +323 -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 +97 -25
  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 +13 -28
  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 +22 -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 +73 -45
  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/ws-server.js +16 -3
  196. package/dist/ws-server.js.map +1 -1
  197. package/package.json +18 -2
@@ -0,0 +1,338 @@
1
+ import { z } from "zod";
2
+ import { figmaRestGet, fileKeyFromArgs, FigmaRestError, } from "../figma-rest.js";
3
+ import { largeDataResponseArgs, normalizeLargeDataResult } from "./large-data.js";
4
+ import { err, executePluginCommand, ok } from "./shared.js";
5
+ const variableDefsModeZod = z.enum(["auto", "selection", "local", "enabled-libraries", "rest"]);
6
+ const variableResolvedTypeZod = z.enum(["COLOR", "FLOAT", "STRING", "BOOLEAN"]);
7
+ const restScopeZod = z.enum(["local", "published", "both"]);
8
+ const authModeZod = z.enum(["bearer", "x-figma-token"]);
9
+ const tokenEnvZod = z
10
+ .string()
11
+ .regex(/^[A-Z0-9_]+$/)
12
+ .optional()
13
+ .describe("Environment variable containing the Figma REST token. Default: FIGMA_TOKEN, FIGMA_ACCESS_TOKEN, or FIGMA_REST_TOKEN.");
14
+ function normalizeNodeIds(args) {
15
+ const ids = new Set();
16
+ if (args.nodeId?.trim())
17
+ ids.add(args.nodeId.trim());
18
+ for (const id of args.nodeIds ?? []) {
19
+ if (typeof id === "string" && id.trim())
20
+ ids.add(id.trim());
21
+ }
22
+ return Array.from(ids);
23
+ }
24
+ function pluginRetryable(error) {
25
+ return /No plugin connected|Session disconnected/i.test(error instanceof Error ? error.message : String(error));
26
+ }
27
+ function pluginErrorResponse(error, code) {
28
+ return err(error instanceof Error ? error.message : String(error), {
29
+ code,
30
+ retryable: pluginRetryable(error),
31
+ });
32
+ }
33
+ function restErrorResponse(error) {
34
+ if (error instanceof FigmaRestError) {
35
+ return err(error.message, {
36
+ code: "FIGMA_REST_ERROR",
37
+ status: error.status,
38
+ endpoint: error.endpoint,
39
+ body: error.body,
40
+ retryable: error.status === 429 || error.status >= 500,
41
+ });
42
+ }
43
+ return err(error instanceof Error ? error.message : String(error), {
44
+ code: "GET_VARIABLE_DEFS_REST_ERROR",
45
+ retryable: false,
46
+ });
47
+ }
48
+ function selectionNodeIds(summary) {
49
+ if (!summary || typeof summary !== "object")
50
+ return [];
51
+ const record = summary;
52
+ const nodes = Array.isArray(record.nodes)
53
+ ? record.nodes
54
+ : Array.isArray(record.selection)
55
+ ? record.selection
56
+ : [];
57
+ return nodes
58
+ .filter((node) => typeof node === "object" && node !== null)
59
+ .map((node) => typeof node.id === "string" ? node.id : "")
60
+ .filter(Boolean);
61
+ }
62
+ function resolvedTypes(args) {
63
+ const values = new Set();
64
+ if (args.resolvedType)
65
+ values.add(args.resolvedType);
66
+ for (const type of args.resolvedTypes ?? [])
67
+ values.add(type);
68
+ return Array.from(values);
69
+ }
70
+ async function getLocalDefs(queue, args) {
71
+ const includeVariables = args.includeLocalVariables !== false;
72
+ const includeStyles = args.includeLocalStyles !== false;
73
+ const local = {
74
+ ok: true,
75
+ source: "plugin-local-definitions",
76
+ };
77
+ if (includeVariables) {
78
+ const types = resolvedTypes(args);
79
+ if (types.length <= 1) {
80
+ local.variables = await executePluginCommand(queue, "get_variables", {
81
+ ...(types[0] ? { type: types[0] } : {}),
82
+ limit: args.limit,
83
+ });
84
+ }
85
+ else {
86
+ local.variables = {
87
+ ok: true,
88
+ source: "plugin-local-definitions-by-type",
89
+ types,
90
+ results: await Promise.all(types.map((type) => executePluginCommand(queue, "get_variables", {
91
+ type,
92
+ limit: args.limit,
93
+ }))),
94
+ };
95
+ }
96
+ }
97
+ if (includeStyles) {
98
+ local.styles = await executePluginCommand(queue, "get_local_styles");
99
+ }
100
+ return local;
101
+ }
102
+ async function getSelectionDefs(queue, args) {
103
+ const warnings = [];
104
+ const result = {
105
+ ok: true,
106
+ source: "plugin-selection-variable-defs",
107
+ };
108
+ let summary;
109
+ if (args.includeSelectionSummary !== false) {
110
+ summary = await executePluginCommand(queue, "get_selection_summary");
111
+ result.selectionSummary = summary;
112
+ }
113
+ let ids = normalizeNodeIds(args);
114
+ if (ids.length === 0)
115
+ ids = selectionNodeIds(summary);
116
+ const maxSelectionNodes = Math.max(1, Math.min(200, args.maxSelectionNodes ?? 50));
117
+ const scannedIds = ids.slice(0, maxSelectionNodes);
118
+ result.nodeIds = scannedIds;
119
+ result.truncatedSelection = ids.length > scannedIds.length;
120
+ if (args.includeNativeSelectionDefs !== false) {
121
+ try {
122
+ result.native = await executePluginCommand(queue, "get_selection_variable_defs", {
123
+ nodeIds: scannedIds.length > 0 ? scannedIds : undefined,
124
+ includeTextSegments: args.includeTextSegments,
125
+ includeResolvedValues: args.includeResolvedValues,
126
+ includeStyleBoundVariables: args.includeStyleBoundVariables,
127
+ maxNodes: args.maxNodes,
128
+ maxUsages: args.maxUsages,
129
+ maxTextSegments: args.maxTextSegments,
130
+ maxDefinitions: args.maxDefinitions,
131
+ });
132
+ }
133
+ catch (error) {
134
+ warnings.push(`native selection variable definitions failed: ${error instanceof Error ? error.message : String(error)}`);
135
+ }
136
+ }
137
+ if (args.includeAppliedTokens !== false) {
138
+ const appliedTokens = [];
139
+ const tokenTargets = scannedIds.length > 0 ? scannedIds : [undefined];
140
+ for (const nodeId of tokenTargets) {
141
+ try {
142
+ appliedTokens.push(await executePluginCommand(queue, "get_applied_tokens", nodeId ? { nodeId } : {}));
143
+ }
144
+ catch (error) {
145
+ warnings.push(`get_applied_tokens${nodeId ? ` for ${nodeId}` : ""} failed: ${error instanceof Error ? error.message : String(error)}`);
146
+ }
147
+ }
148
+ result.appliedTokens = appliedTokens;
149
+ }
150
+ if (args.includeLocalContext !== false) {
151
+ try {
152
+ result.local = await getLocalDefs(queue, args);
153
+ }
154
+ catch (error) {
155
+ warnings.push(`local definitions failed: ${error instanceof Error ? error.message : String(error)}`);
156
+ }
157
+ }
158
+ if (warnings.length > 0)
159
+ result.warnings = warnings;
160
+ return result;
161
+ }
162
+ function hasEnabledLibraryFilter(args) {
163
+ return Boolean(args.collectionKey ||
164
+ args.collectionName ||
165
+ args.libraryName ||
166
+ (Array.isArray(args.collectionKeys) && args.collectionKeys.length > 0));
167
+ }
168
+ async function getEnabledLibraryDefs(queue, args) {
169
+ const includeDescriptors = args.includeEnabledLibraryDescriptors !== false;
170
+ const includeVariables = args.includeEnabledLibraryVariables !== false;
171
+ const result = {
172
+ ok: true,
173
+ source: "plugin-enabled-library-definitions",
174
+ };
175
+ const warnings = [];
176
+ if (includeDescriptors) {
177
+ result.descriptors = await executePluginCommand(queue, "inspect_enabled_libraries", {
178
+ query: args.query,
179
+ limitPerKind: args.limit,
180
+ includeVariableCollections: true,
181
+ includeStyles: true,
182
+ includeComponents: true,
183
+ });
184
+ }
185
+ if (includeVariables) {
186
+ result.variables = await executePluginCommand(queue, "list_enabled_library_variables", {
187
+ collectionKey: args.collectionKey,
188
+ collectionKeys: args.collectionKeys,
189
+ collectionName: args.collectionName,
190
+ libraryName: args.libraryName,
191
+ includeAllCollections: args.includeAllCollections ?? !hasEnabledLibraryFilter(args),
192
+ resolvedTypes: resolvedTypes(args),
193
+ query: args.query,
194
+ limit: args.limit,
195
+ });
196
+ }
197
+ if (warnings.length > 0)
198
+ result.warnings = warnings;
199
+ return result;
200
+ }
201
+ async function getRestDefs(args) {
202
+ const fileKey = fileKeyFromArgs(args);
203
+ const scope = args.restScope ?? "local";
204
+ const scopes = scope === "both"
205
+ ? ["local", "published"]
206
+ : [scope === "published" ? "published" : "local"];
207
+ const rest = {
208
+ ok: true,
209
+ source: "figma-rest-variable-definitions",
210
+ fileKey,
211
+ scope,
212
+ };
213
+ const errors = [];
214
+ for (const item of scopes) {
215
+ const endpoint = `/v1/files/${fileKey}/variables/${item}`;
216
+ try {
217
+ rest[item] = await figmaRestGet(endpoint, {
218
+ tokenEnv: args.tokenEnv,
219
+ authMode: args.authMode,
220
+ apiBaseUrl: args.apiBaseUrl,
221
+ });
222
+ }
223
+ catch (error) {
224
+ errors.push({
225
+ scope: item,
226
+ message: error instanceof Error ? error.message : String(error),
227
+ status: error instanceof FigmaRestError ? error.status : undefined,
228
+ endpoint: error instanceof FigmaRestError ? error.endpoint : endpoint,
229
+ });
230
+ }
231
+ }
232
+ if (errors.length > 0) {
233
+ rest.errors = errors;
234
+ if (errors.length === scopes.length) {
235
+ throw new FigmaRestError({
236
+ status: errors[0]?.status ?? 500,
237
+ endpoint: errors[0]?.endpoint ?? `/v1/files/${fileKey}/variables/${scope}`,
238
+ message: errors[0]?.message ?? "Figma REST variable definitions failed",
239
+ body: errors,
240
+ });
241
+ }
242
+ }
243
+ return rest;
244
+ }
245
+ function autoMode(args) {
246
+ if (args.fileKey || args.url)
247
+ return "rest";
248
+ if (args.includeEnabledLibraryVariables === true || args.includeEnabledLibraryDescriptors === true) {
249
+ return "enabled-libraries";
250
+ }
251
+ return "selection";
252
+ }
253
+ function limitations(mode) {
254
+ const base = [
255
+ "Official Figma MCP get_variable_defs is selection-oriented; Bridge also exposes local, enabled-library, and REST definition modes for SXL workflows.",
256
+ ];
257
+ if (mode === "selection") {
258
+ base.push("Selection mode prefers native Figma boundVariables/styleId graph via Remote Connect; SXL applied token metadata and local definitions are included as compatibility context.", "Consumer-specific resolved values and text segment bindings are bounded and best-effort to keep Remote Connect responsive.");
259
+ }
260
+ if (mode === "enabled-libraries") {
261
+ base.push("Enabled-library mode only sees libraries already enabled in the active Figma file; the Figma Plugin API cannot enable or discover arbitrary organization/community libraries.");
262
+ }
263
+ if (mode === "rest") {
264
+ base.push("REST mode requires a configured Figma REST token and file_variables:read permission; it reads file-level variable endpoints, not the current desktop selection.");
265
+ }
266
+ return base;
267
+ }
268
+ export function registerVariableDefTools(server, queue) {
269
+ server.tool("get_variable_defs", "Bridge variable-definition orchestration. Selection mode approximates official Figma MCP get_variable_defs for the active Figma Design selection; local, enabled-libraries, and rest modes expose SXL/local-library/known-file definitions for broader workflows.", {
270
+ mode: variableDefsModeZod.optional(),
271
+ nodeId: z.string().optional(),
272
+ nodeIds: z.array(z.string()).optional(),
273
+ maxSelectionNodes: z.number().int().positive().max(200).optional(),
274
+ maxNodes: z.number().int().positive().max(100_000).optional().describe("Selection mode native graph: maximum scene nodes to scan."),
275
+ maxUsages: z.number().int().positive().max(50_000).optional().describe("Selection mode native graph: maximum usage rows to return."),
276
+ maxTextSegments: z.number().int().positive().max(50_000).optional().describe("Selection mode native graph: maximum text segments to inspect."),
277
+ maxDefinitions: z.number().int().positive().max(10_000).optional().describe("Selection/local graph: maximum variable/style definitions to resolve."),
278
+ includeSelectionSummary: z.boolean().optional(),
279
+ includeAppliedTokens: z.boolean().optional(),
280
+ includeNativeSelectionDefs: z.boolean().optional(),
281
+ includeTextSegments: z.boolean().optional(),
282
+ includeResolvedValues: z.boolean().optional(),
283
+ includeStyleBoundVariables: z.boolean().optional(),
284
+ includeLocalContext: z.boolean().optional(),
285
+ includeLocalVariables: z.boolean().optional(),
286
+ includeLocalStyles: z.boolean().optional(),
287
+ includeEnabledLibraryDescriptors: z.boolean().optional(),
288
+ includeEnabledLibraryVariables: z.boolean().optional(),
289
+ collectionKey: z.string().optional(),
290
+ collectionKeys: z.array(z.string()).optional(),
291
+ collectionName: z.string().optional(),
292
+ libraryName: z.string().optional(),
293
+ includeAllCollections: z.boolean().optional(),
294
+ resolvedType: variableResolvedTypeZod.optional(),
295
+ resolvedTypes: z.array(variableResolvedTypeZod).optional(),
296
+ query: z.string().optional(),
297
+ limit: z.number().int().positive().max(10_000).optional(),
298
+ restScope: restScopeZod.optional(),
299
+ fileKey: z.string().optional().describe("Figma file key for REST variable definitions. Provide this or url for rest mode."),
300
+ url: z.string().url().optional().describe("Figma file/node URL. Used to extract fileKey when fileKey is omitted."),
301
+ tokenEnv: tokenEnvZod,
302
+ authMode: authModeZod.optional().describe("Figma REST auth header mode. Default: FIGMA_AUTH_MODE or x-figma-token."),
303
+ apiBaseUrl: z.string().url().optional().describe("Figma REST API base URL. Default: https://api.figma.com."),
304
+ ...largeDataResponseArgs,
305
+ }, async (rawArgs) => {
306
+ const args = rawArgs;
307
+ const mode = args.mode ?? "auto";
308
+ const resolvedMode = mode === "auto" ? autoMode(args) : mode;
309
+ const result = {
310
+ ok: true,
311
+ tool: "get_variable_defs",
312
+ requestedMode: mode,
313
+ mode: resolvedMode,
314
+ limitations: limitations(resolvedMode),
315
+ };
316
+ try {
317
+ if (resolvedMode === "selection") {
318
+ result.selection = await getSelectionDefs(queue, args);
319
+ }
320
+ else if (resolvedMode === "local") {
321
+ result.local = await getLocalDefs(queue, args);
322
+ }
323
+ else if (resolvedMode === "enabled-libraries") {
324
+ result.enabledLibraries = await getEnabledLibraryDefs(queue, args);
325
+ }
326
+ else {
327
+ result.rest = await getRestDefs(args);
328
+ }
329
+ return ok(normalizeLargeDataResult("get_variable_defs", args, result));
330
+ }
331
+ catch (error) {
332
+ if (resolvedMode === "rest")
333
+ return restErrorResponse(error);
334
+ return pluginErrorResponse(error, "GET_VARIABLE_DEFS_PLUGIN_ERROR");
335
+ }
336
+ });
337
+ }
338
+ //# sourceMappingURL=variable-defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-defs.js","sourceRoot":"","sources":["../../src/tools/variable-defs.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  * `dryRun: false` to commit.
17
17
  */
18
18
  import { z } from "zod";
19
- import { callPluginCommand } from "./shared.js";
19
+ import { callPluginCommand, callPluginWriteCommand } from "./shared.js";
20
20
  const variableValueLiteralZod = z.union([
21
21
  z.number(),
22
22
  z.string(),
@@ -79,7 +79,9 @@ const dedupeStrategyZod = z.enum(["byName", "byDefaultModeValue"]);
79
79
  export function registerVariablesOrchestrationTools(server, queue) {
80
80
  server.tool("import_variable_spec", "Idempotent bulk-create / update of Variables from a single declarative spec. Creates collections + modes + variables, applies per-mode literal values, then resolves aliases in a second pass so cross-collection references work. Errors are collected per-item without aborting the run. Pass `dryRun: true` for a preview (returns the diff and skips Figma writes). CANVAS WRITE in apply mode — blocked in Dev Mode.", {
81
81
  spec: variableSpecZod.describe("Top-level spec. `collections[]` is required; each collection identifies itself by `collectionId` (existing) or `collectionName` (resolves existing or creates new). Variable values support `{ value }` literals (hex strings auto-coerce for COLOR), `{ alias: { variableId | variableName } }`, or `{ rawAlias }` passthrough."),
82
- }, async ({ spec }) => callPluginCommand(queue, "import_variable_spec", { spec }));
82
+ }, async ({ spec }) => callPluginWriteCommand(queue, "import_variable_spec", { spec }, {
83
+ okFalseErrorCode: "SXL_VARIABLE_WRITE_FAILED",
84
+ }));
83
85
  server.tool("analyze_variable_order", "READ-ONLY: produce a recommended order of variables inside a collection. Returns `moves[]` describing every position that would change. Strategies: `alphabetical`, `byPath` (with optional separator), `explicit` (caller-supplied list). Figma Plugin API does not expose a stable `move` primitive, so this command stays diff-only — use it to drive a manual reorder in the Variables panel.", {
84
86
  collectionId: z.string().describe("Variable collection id (VariableCollectionId:...)"),
85
87
  strategy: reorderStrategyZod,
@@ -91,7 +93,9 @@ export function registerVariablesOrchestrationTools(server, queue) {
91
93
  .string()
92
94
  .optional()
93
95
  .describe("Restrict the scan to a single collection. Default: scan all local variables."),
94
- }, async (args) => callPluginCommand(queue, "dedupe_variables", args));
96
+ }, async (args) => callPluginWriteCommand(queue, "dedupe_variables", args, {
97
+ okFalseErrorCode: "SXL_VARIABLE_WRITE_FAILED",
98
+ }));
95
99
  server.tool("rebind_variable_aliases", "Bulk rewrite alias targets inside Variable collections. Each `{ fromVariableId, toVariableId }` pair redirects every `valuesByMode` entry that aliases the source so it points at the target. Read-only nodes / bindings are NOT touched (use `apply_coverage_suggestions` for that). Pass `dryRun: true` to count rewrites without writing.", {
96
100
  mappings: z
97
101
  .array(z.object({
@@ -100,7 +104,9 @@ export function registerVariablesOrchestrationTools(server, queue) {
100
104
  }))
101
105
  .min(1),
102
106
  dryRun: z.boolean().optional().describe("When true, count rewrites without applying. Default: false."),
103
- }, async (args) => callPluginCommand(queue, "rebind_variable_aliases", args));
107
+ }, async (args) => callPluginWriteCommand(queue, "rebind_variable_aliases", args, {
108
+ okFalseErrorCode: "SXL_VARIABLE_WRITE_FAILED",
109
+ }));
104
110
  server.tool("apply_coverage_suggestions", "Apply the `suggestion` entries from `audit_variable_coverage` / `find_variable_coverage_misses`. Translates property paths like `fills[0].color`, `effects[2].color`, `cornerRadius` etc. into Figma `setBoundVariableForPaint` / `setBoundVariableForEffect` / `setBoundVariable` writes. Default mode is dry-run — agent receives a `preview[]` it can show the user. Set `dryRun: false` to commit. CANVAS WRITE only when `dryRun: false`.", {
105
111
  suggestions: z
106
112
  .array(z.object({
@@ -111,6 +117,8 @@ export function registerVariablesOrchestrationTools(server, queue) {
111
117
  }))
112
118
  .min(1),
113
119
  dryRun: z.boolean().optional().describe("Default: true. Pass false to actually wire bindings."),
114
- }, async (args) => callPluginCommand(queue, "apply_coverage_suggestions", args));
120
+ }, async (args) => callPluginWriteCommand(queue, "apply_coverage_suggestions", args, {
121
+ okFalseErrorCode: "SXL_VARIABLE_WRITE_FAILED",
122
+ }));
115
123
  }
116
124
  //# sourceMappingURL=variables-orchestration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variables-orchestration.js","sourceRoot":"","sources":["../../src/tools/variables-orchestration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variables-orchestration.js","sourceRoot":"","sources":["../../src/tools/variables-orchestration.ts"],"names":[],"mappings":"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"}
@@ -7,46 +7,48 @@
7
7
  * typed EDITOR_MODE_READONLY error in Dev Mode).
8
8
  */
9
9
  import { z } from "zod";
10
- import { callPluginCommand } from "./shared.js";
10
+ import { callPluginWriteCommand } from "./shared.js";
11
+ import { destructiveConfirmationArgs, withDestructiveConfirmation } from "./destructive-confirmation.js";
11
12
  const CODE_SYNTAX_PLATFORMS = ["WEB", "iOS", "ANDROID"];
12
13
  export function registerVariableTools(server, queue) {
13
14
  server.tool("rename_variable", "Rename a Figma local variable.", {
14
15
  variableId: z.string().describe("Variable id (VariableID:...)"),
15
16
  name: z.string().describe("New variable name"),
16
- }, async ({ variableId, name }) => callPluginCommand(queue, "rename_variable", { variableId, name }));
17
- server.tool("delete_variable", "Delete a Figma local variable.", { variableId: z.string().describe("Variable id") }, async ({ variableId }) => callPluginCommand(queue, "delete_variable", { variableId }));
17
+ }, async ({ variableId, name }) => callPluginWriteCommand(queue, "rename_variable", { variableId, name }));
18
+ server.tool("delete_variable", "Delete a Figma local variable.", { variableId: z.string().describe("Variable id"), ...destructiveConfirmationArgs }, async ({ variableId, confirmDestructive, destructiveReason }) => callPluginWriteCommand(queue, "delete_variable", withDestructiveConfirmation({ variableId }, { confirmDestructive, destructiveReason })));
18
19
  server.tool("rename_variable_collection", "Rename a Figma local variable collection.", {
19
20
  collectionId: z.string().describe("Collection id (VariableCollectionId:...)"),
20
21
  name: z.string().describe("New collection name"),
21
- }, async ({ collectionId, name }) => callPluginCommand(queue, "rename_variable_collection", { collectionId, name }));
22
- server.tool("delete_variable_collection", "Delete a Figma local variable collection (and all variables inside it).", { collectionId: z.string().describe("Collection id") }, async ({ collectionId }) => callPluginCommand(queue, "delete_variable_collection", { collectionId }));
22
+ }, async ({ collectionId, name }) => callPluginWriteCommand(queue, "rename_variable_collection", { collectionId, name }));
23
+ server.tool("delete_variable_collection", "Delete a Figma local variable collection (and all variables inside it).", { collectionId: z.string().describe("Collection id"), ...destructiveConfirmationArgs }, async ({ collectionId, confirmDestructive, destructiveReason }) => callPluginWriteCommand(queue, "delete_variable_collection", withDestructiveConfirmation({ collectionId }, { confirmDestructive, destructiveReason })));
23
24
  server.tool("add_variable_mode", "Add a new mode to a variable collection.", {
24
25
  collectionId: z.string().describe("Collection id"),
25
26
  modeName: z.string().describe("Mode display name"),
26
- }, async ({ collectionId, modeName }) => callPluginCommand(queue, "add_variable_mode", { collectionId, modeName }));
27
+ }, async ({ collectionId, modeName }) => callPluginWriteCommand(queue, "add_variable_mode", { collectionId, modeName }));
27
28
  server.tool("remove_variable_mode", "Remove a mode from a variable collection.", {
28
29
  collectionId: z.string().describe("Collection id"),
29
30
  modeId: z.string().describe("Mode id to remove"),
30
- }, async ({ collectionId, modeId }) => callPluginCommand(queue, "remove_variable_mode", { collectionId, modeId }));
31
+ ...destructiveConfirmationArgs,
32
+ }, async ({ collectionId, modeId, confirmDestructive, destructiveReason }) => callPluginWriteCommand(queue, "remove_variable_mode", withDestructiveConfirmation({ collectionId, modeId }, { confirmDestructive, destructiveReason })));
31
33
  server.tool("rename_variable_mode", "Rename a mode inside a variable collection.", {
32
34
  collectionId: z.string().describe("Collection id"),
33
35
  modeId: z.string().describe("Mode id"),
34
36
  name: z.string().describe("New mode name"),
35
- }, async ({ collectionId, modeId, name }) => callPluginCommand(queue, "rename_variable_mode", { collectionId, modeId, name }));
37
+ }, async ({ collectionId, modeId, name }) => callPluginWriteCommand(queue, "rename_variable_mode", { collectionId, modeId, name }));
36
38
  server.tool("set_variable_mode_value", "Set a variable's value for a specific mode. For COLOR variables, value can be a hex string (e.g. '#ff0000' or '#ff0000ff') or an RGBA object. For other types, forward a native value (number / string / boolean / VariableAlias).", {
37
39
  variableId: z.string().describe("Variable id"),
38
40
  modeId: z.string().describe("Mode id"),
39
41
  value: z.unknown().describe("Value to set (type depends on variable.resolvedType)"),
40
- }, async ({ variableId, modeId, value }) => callPluginCommand(queue, "set_variable_mode_value", { variableId, modeId, value }));
42
+ }, async ({ variableId, modeId, value }) => callPluginWriteCommand(queue, "set_variable_mode_value", { variableId, modeId, value }));
41
43
  server.tool("set_variable_scopes", "Set the Variable.scopes array. Pass an array of scope names accepted by Figma (e.g. ['ALL_SCOPES'], ['CORNER_RADIUS','STROKE_FLOAT']).", {
42
44
  variableId: z.string().describe("Variable id"),
43
45
  scopes: z.array(z.string()).describe("Array of VariableScope values"),
44
- }, async ({ variableId, scopes }) => callPluginCommand(queue, "set_variable_scopes", { variableId, scopes }));
46
+ }, async ({ variableId, scopes }) => callPluginWriteCommand(queue, "set_variable_scopes", { variableId, scopes }));
45
47
  server.tool("set_variable_code_syntax", "Set (or remove) codeSyntax for a specific platform on a variable.", {
46
48
  variableId: z.string().describe("Variable id"),
47
49
  platform: z.enum(CODE_SYNTAX_PLATFORMS).describe("Platform: WEB | iOS | ANDROID"),
48
50
  value: z.string().nullable().optional().describe("New codeSyntax value. Pass null/empty to remove."),
49
- }, async ({ variableId, platform, value }) => callPluginCommand(queue, "set_variable_code_syntax", {
51
+ }, async ({ variableId, platform, value }) => callPluginWriteCommand(queue, "set_variable_code_syntax", {
50
52
  variableId,
51
53
  platform,
52
54
  value: value ?? null,
@@ -79,7 +81,7 @@ export function registerVariableTools(server, queue) {
79
81
  }))
80
82
  .min(1)
81
83
  .describe("Variables to create in order"),
82
- }, async ({ collectionId, variables }) => callPluginCommand(queue, "batch_create_variables", { collectionId, variables }));
84
+ }, async ({ collectionId, variables }) => callPluginWriteCommand(queue, "batch_create_variables", { collectionId, variables }));
83
85
  server.tool("batch_set_variable_values", "Set values for multiple (variableId, modeId, value) tuples in a single round-trip. Far more efficient than N set_variable_mode_value calls when populating or migrating a design system. Errors are per-entry without aborting the batch. Requires Design mode.", {
84
86
  values: z
85
87
  .array(z.object({
@@ -91,13 +93,14 @@ export function registerVariableTools(server, queue) {
91
93
  }))
92
94
  .min(1)
93
95
  .describe("(variableId, modeId, value) tuples"),
94
- }, async ({ values }) => callPluginCommand(queue, "batch_set_variable_values", { values }));
96
+ }, async ({ values }) => callPluginWriteCommand(queue, "batch_set_variable_values", { values }));
95
97
  server.tool("batch_delete_variables", "Delete multiple Figma local variables at once. Errors are per-variable without aborting the batch. Use this instead of N delete_variable calls when clearing a collection or removing an entire token tier. Requires Design mode.", {
96
98
  variableIds: z
97
99
  .array(z.string())
98
100
  .min(1)
99
101
  .describe("Variable ids to delete (VariableID:...)"),
100
- }, async ({ variableIds }) => callPluginCommand(queue, "batch_delete_variables", { variableIds }));
102
+ ...destructiveConfirmationArgs,
103
+ }, async ({ variableIds, confirmDestructive, destructiveReason }) => callPluginWriteCommand(queue, "batch_delete_variables", withDestructiveConfirmation({ variableIds }, { confirmDestructive, destructiveReason })));
101
104
  server.tool("batch_bind_variables", "Bind multiple Figma nodes to local variables in a single round-trip. Each entry maps a nodeId + field to a variableId. Errors are per-binding without aborting the batch. Use this after generate_composition or after creating nodes to wire variable bindings all at once. Requires Design mode.\n\nCommon field values: 'fills' (paint fill), 'strokes' (stroke fill), 'cornerRadius', 'topLeftRadius', 'topRightRadius', 'bottomLeftRadius', 'bottomRightRadius', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'itemSpacing', 'counterAxisSpacing', 'width', 'height', 'opacity', 'characters' (text content), 'fontSize', 'letterSpacing', 'lineHeight', 'paragraphSpacing', 'paragraphIndent', 'visible'.", {
102
105
  bindings: z
103
106
  .array(z.object({
@@ -109,6 +112,6 @@ export function registerVariableTools(server, queue) {
109
112
  }))
110
113
  .min(1)
111
114
  .describe("Bindings to apply"),
112
- }, async ({ bindings }) => callPluginCommand(queue, "batch_bind_variables", { bindings }));
115
+ }, async ({ bindings }) => callPluginWriteCommand(queue, "batch_bind_variables", { bindings }));
113
116
  }
114
117
  //# sourceMappingURL=variables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../src/tools/variables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../src/tools/variables.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -24,12 +24,56 @@ export type CommandResult = {
24
24
  events?: unknown[];
25
25
  durationMs?: number;
26
26
  };
27
+ export type CommandTelemetrySource = "bridge" | "plugin";
28
+ export type CommandTelemetryEvent = {
29
+ eventId: string;
30
+ at: number;
31
+ source: CommandTelemetrySource;
32
+ phase: string;
33
+ commandId: string | null;
34
+ commandType: string | null;
35
+ status: CommandStatus | null;
36
+ durationMs: number | null;
37
+ message: string | null;
38
+ payloadKeys: string[];
39
+ detailKeys: string[];
40
+ };
41
+ export type CommandTelemetrySummary = {
42
+ eventsBuffered: number;
43
+ bridgeEventsBuffered: number;
44
+ pluginEventsBuffered: number;
45
+ failuresBuffered: number;
46
+ timeoutsBuffered: number;
47
+ lastEventAt: number | null;
48
+ lastEventAgeMs: number | null;
49
+ lastFailureAt: number | null;
50
+ lastFailureAgeMs: number | null;
51
+ lastFailureCommandType: string | null;
52
+ lastFailureMessage: string | null;
53
+ };
54
+ export type CommandQueueItemSnapshot = {
55
+ commandId: string;
56
+ commandType: string;
57
+ status: CommandStatus;
58
+ createdAt: number;
59
+ startedAt: number | null;
60
+ completedAt: number | null;
61
+ ageMs: number;
62
+ runningMs: number | null;
63
+ payloadKeys: string[];
64
+ };
65
+ export type CommandQueueSnapshot = {
66
+ current: CommandQueueItemSnapshot | null;
67
+ queued: CommandQueueItemSnapshot[];
68
+ immediate: CommandQueueItemSnapshot[];
69
+ };
27
70
  export type SessionInfo = {
28
71
  connected: boolean;
29
72
  pluginName: string | null;
30
73
  connectedAt: number | null;
31
74
  lastHeartbeat: number | null;
32
75
  };
76
+ export type BridgeRuntimeHealth = "ready" | "busy" | "degraded" | "disconnected";
33
77
  export type BridgeStatus = {
34
78
  /** Single port: plugin WebSocket, HTTP REST, and MCP `/mcp` (same numeric value twice for older clients). */
35
79
  ports: {
@@ -41,4 +85,13 @@ export type BridgeStatus = {
41
85
  session: SessionInfo;
42
86
  queueLength: number;
43
87
  currentCommand: string | null;
88
+ queue: CommandQueueSnapshot;
89
+ runtime: {
90
+ startedAt: number;
91
+ uptimeMs: number;
92
+ health: BridgeRuntimeHealth;
93
+ issues: string[];
94
+ };
95
+ telemetry: CommandTelemetrySummary;
96
+ authEnabled: boolean;
44
97
  };