@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.
- package/README.md +342 -16
- package/dist/agent-recipes.d.ts +781 -11
- package/dist/agent-recipes.js +886 -13
- package/dist/agent-recipes.js.map +1 -1
- package/dist/agent-runbook.d.ts +50 -0
- package/dist/agent-runbook.js +243 -0
- package/dist/agent-runbook.js.map +1 -0
- package/dist/asset-upload.d.ts +63 -0
- package/dist/asset-upload.js +225 -0
- package/dist/asset-upload.js.map +1 -0
- package/dist/audit-store.d.ts +15 -0
- package/dist/audit-store.js +100 -0
- package/dist/audit-store.js.map +1 -0
- package/dist/audit.d.ts +4 -3
- package/dist/audit.js +37 -4
- package/dist/audit.js.map +1 -1
- package/dist/auth.d.ts +8 -1
- package/dist/auth.js +41 -1
- package/dist/auth.js.map +1 -1
- package/dist/bridge-agent-workflow-validation-cli.d.ts +2 -0
- package/dist/bridge-agent-workflow-validation-cli.js +68 -0
- package/dist/bridge-agent-workflow-validation-cli.js.map +1 -0
- package/dist/bridge-agent-workflow-validation.d.ts +42 -0
- package/dist/bridge-agent-workflow-validation.js +170 -0
- package/dist/bridge-agent-workflow-validation.js.map +1 -0
- package/dist/bridge-contract-audit.d.ts +45 -0
- package/dist/bridge-contract-audit.js +345 -0
- package/dist/bridge-contract-audit.js.map +1 -0
- package/dist/bridge-health-cli.d.ts +2 -0
- package/dist/bridge-health-cli.js +115 -0
- package/dist/bridge-health-cli.js.map +1 -0
- package/dist/bridge-health.d.ts +33 -0
- package/dist/bridge-health.js +594 -0
- package/dist/bridge-health.js.map +1 -0
- package/dist/bridge-live-validation-cli.d.ts +2 -0
- package/dist/bridge-live-validation-cli.js +114 -0
- package/dist/bridge-live-validation-cli.js.map +1 -0
- package/dist/bridge-live-validation.d.ts +39 -0
- package/dist/bridge-live-validation.js +1141 -0
- package/dist/bridge-live-validation.js.map +1 -0
- package/dist/bridge-performance-profile.d.ts +81 -0
- package/dist/bridge-performance-profile.js +227 -0
- package/dist/bridge-performance-profile.js.map +1 -0
- package/dist/bridge-readiness-cli.d.ts +30 -0
- package/dist/bridge-readiness-cli.js +242 -0
- package/dist/bridge-readiness-cli.js.map +1 -0
- package/dist/bridge-runtime-summary.d.ts +50 -0
- package/dist/bridge-runtime-summary.js +112 -0
- package/dist/bridge-runtime-summary.js.map +1 -0
- package/dist/bridge-workflow-smoke-cli.d.ts +2 -0
- package/dist/bridge-workflow-smoke-cli.js +126 -0
- package/dist/bridge-workflow-smoke-cli.js.map +1 -0
- package/dist/bridge-workflow-smoke.d.ts +39 -0
- package/dist/bridge-workflow-smoke.js +431 -0
- package/dist/bridge-workflow-smoke.js.map +1 -0
- package/dist/codeconnect-suggestions.d.ts +74 -0
- package/dist/codeconnect-suggestions.js +398 -0
- package/dist/codeconnect-suggestions.js.map +1 -0
- package/dist/codeconnect-template.d.ts +98 -0
- package/dist/codeconnect-template.js +280 -0
- package/dist/codeconnect-template.js.map +1 -0
- package/dist/command-queue.d.ts +11 -1
- package/dist/command-queue.js +200 -1
- package/dist/command-queue.js.map +1 -1
- package/dist/command-safety.d.ts +13 -0
- package/dist/command-safety.js +59 -0
- package/dist/command-safety.js.map +1 -0
- package/dist/enabled-library-search.d.ts +49 -0
- package/dist/enabled-library-search.js +151 -0
- package/dist/enabled-library-search.js.map +1 -0
- package/dist/figma-mcp-parity.d.ts +49 -0
- package/dist/figma-mcp-parity.js +368 -0
- package/dist/figma-mcp-parity.js.map +1 -0
- package/dist/figma-mcp-skills-parity.d.ts +61 -0
- package/dist/figma-mcp-skills-parity.js +434 -0
- package/dist/figma-mcp-skills-parity.js.map +1 -0
- package/dist/figma-rest-diagnostics.d.ts +50 -0
- package/dist/figma-rest-diagnostics.js +314 -0
- package/dist/figma-rest-diagnostics.js.map +1 -0
- package/dist/figma-rest.d.ts +27 -0
- package/dist/figma-rest.js +116 -0
- package/dist/figma-rest.js.map +1 -0
- package/dist/http-api.d.ts +16 -2
- package/dist/http-api.js +329 -17
- package/dist/http-api.js.map +1 -1
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-factory.d.ts +6 -1
- package/dist/mcp-factory.js +23 -4
- package/dist/mcp-factory.js.map +1 -1
- package/dist/mcp-runtime-probe.d.ts +22 -0
- package/dist/mcp-runtime-probe.js +777 -0
- package/dist/mcp-runtime-probe.js.map +1 -0
- package/dist/mcp-server.d.ts +2 -1
- package/dist/mcp-server.js +2 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/sxl-mcp-instructions.js +99 -26
- package/dist/sxl-mcp-instructions.js.map +1 -1
- package/dist/tools/audit.d.ts +22 -6
- package/dist/tools/audit.js +49 -7
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/capability-matrix.d.ts +22 -0
- package/dist/tools/capability-matrix.js +38 -0
- package/dist/tools/capability-matrix.js.map +1 -0
- package/dist/tools/catalogue-bootstrap.d.ts +1 -0
- package/dist/tools/catalogue-bootstrap.js +665 -30
- package/dist/tools/catalogue-bootstrap.js.map +1 -1
- package/dist/tools/code-connect-context.d.ts +3 -0
- package/dist/tools/code-connect-context.js +319 -0
- package/dist/tools/code-connect-context.js.map +1 -0
- package/dist/tools/code-connect-template.d.ts +3 -0
- package/dist/tools/code-connect-template.js +111 -0
- package/dist/tools/code-connect-template.js.map +1 -0
- package/dist/tools/composition.js +15 -30
- package/dist/tools/composition.js.map +1 -1
- package/dist/tools/compositions-orchestration.d.ts +14 -14
- package/dist/tools/compositions-orchestration.js +2 -2
- package/dist/tools/compositions-orchestration.js.map +1 -1
- package/dist/tools/data.js +839 -27
- package/dist/tools/data.js.map +1 -1
- package/dist/tools/design-context.d.ts +3 -0
- package/dist/tools/design-context.js +197 -0
- package/dist/tools/design-context.js.map +1 -0
- package/dist/tools/destructive-confirmation.d.ts +10 -0
- package/dist/tools/destructive-confirmation.js +25 -0
- package/dist/tools/destructive-confirmation.js.map +1 -0
- package/dist/tools/diagnostics.js +76 -51
- package/dist/tools/diagnostics.js.map +1 -1
- package/dist/tools/figma-mcp-design.d.ts +3 -0
- package/dist/tools/figma-mcp-design.js +377 -0
- package/dist/tools/figma-mcp-design.js.map +1 -0
- package/dist/tools/figma-nodes.js +57 -43
- package/dist/tools/figma-nodes.js.map +1 -1
- package/dist/tools/figma-rc-extended.js +23 -6
- package/dist/tools/figma-rc-extended.js.map +1 -1
- package/dist/tools/figma-rest.d.ts +39 -0
- package/dist/tools/figma-rest.js +279 -0
- package/dist/tools/figma-rest.js.map +1 -0
- package/dist/tools/git.js +11 -7
- package/dist/tools/git.js.map +1 -1
- package/dist/tools/large-data.d.ts +14 -0
- package/dist/tools/large-data.js +189 -0
- package/dist/tools/large-data.js.map +1 -0
- package/dist/tools/meta.d.ts +6 -1
- package/dist/tools/meta.js +89 -11
- package/dist/tools/meta.js.map +1 -1
- package/dist/tools/metadata.d.ts +3 -0
- package/dist/tools/metadata.js +140 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/tools/mockup.d.ts +15 -156
- package/dist/tools/mockup.js +54 -121
- package/dist/tools/mockup.js.map +1 -1
- package/dist/tools/orchestration.js +75 -47
- package/dist/tools/orchestration.js.map +1 -1
- package/dist/tools/prompts.d.ts +3 -0
- package/dist/tools/prompts.js +219 -0
- package/dist/tools/prompts.js.map +1 -0
- package/dist/tools/registry.d.ts +19 -1
- package/dist/tools/registry.js +4 -4
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/resources.d.ts +19 -2
- package/dist/tools/resources.js +149 -5
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/schema-contracts.d.ts +4763 -0
- package/dist/tools/schema-contracts.js +814 -0
- package/dist/tools/schema-contracts.js.map +1 -0
- package/dist/tools/screenshot.d.ts +3 -0
- package/dist/tools/screenshot.js +144 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/shared.d.ts +11 -1
- package/dist/tools/shared.js +55 -2
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/styles-orchestration.d.ts +2 -2
- package/dist/tools/styles-orchestration.js +13 -5
- package/dist/tools/styles-orchestration.js.map +1 -1
- package/dist/tools/styles.js +22 -8
- package/dist/tools/styles.js.map +1 -1
- package/dist/tools/tokens.d.ts +31 -692
- package/dist/tools/tokens.js +175 -135
- package/dist/tools/tokens.js.map +1 -1
- package/dist/tools/variable-defs.d.ts +3 -0
- package/dist/tools/variable-defs.js +338 -0
- package/dist/tools/variable-defs.js.map +1 -0
- package/dist/tools/variables-orchestration.js +13 -5
- package/dist/tools/variables-orchestration.js.map +1 -1
- package/dist/tools/variables.js +18 -15
- package/dist/tools/variables.js.map +1 -1
- package/dist/types.d.ts +53 -0
- package/dist/ultimate-readiness-audit.d.ts +37 -0
- package/dist/ultimate-readiness-audit.js +431 -0
- package/dist/ultimate-readiness-audit.js.map +1 -0
- package/dist/workflow-planner.d.ts +57 -0
- package/dist/workflow-planner.js +464 -0
- package/dist/workflow-planner.js.map +1 -0
- package/dist/workspace-blob-store.d.ts +6 -0
- package/dist/workspace-blob-store.js +9 -0
- package/dist/workspace-blob-store.js.map +1 -1
- package/dist/workspace-path-http.d.ts +24 -0
- package/dist/workspace-path-http.js +146 -0
- package/dist/workspace-path-http.js.map +1 -0
- package/dist/ws-server.js +16 -3
- package/dist/ws-server.js.map +1 -1
- package/package.json +21 -2
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import { getBridgeToolCatalogue } from "./tools/registry.js";
|
|
2
|
+
import { ensureBridgeToolCatalogue } from "./tools/catalogue-bootstrap.js";
|
|
3
|
+
const SOURCE = {
|
|
4
|
+
toolsAndPrompts: "https://developers.figma.com/docs/figma-mcp-server/tools-and-prompts/",
|
|
5
|
+
writeToCanvas: "https://developers.figma.com/docs/figma-mcp-server/write-to-canvas/",
|
|
6
|
+
skills: "https://help.figma.com/hc/en-us/articles/39166810751895-Figma-skills-for-MCP",
|
|
7
|
+
};
|
|
8
|
+
const VERIFIED_AT = "2026-06-10";
|
|
9
|
+
const REQUIRED_COMPANION_TOOLS = ["create_new_file", "generate_diagram", "get_figjam"];
|
|
10
|
+
export const FIGMA_MCP_PARITY_ENTRIES = [
|
|
11
|
+
{
|
|
12
|
+
officialTool: "add_code_connect_map",
|
|
13
|
+
officialScope: "figma-design",
|
|
14
|
+
remoteOnly: false,
|
|
15
|
+
status: "covered-by-bridge-and-sxl",
|
|
16
|
+
bridgeTools: [
|
|
17
|
+
"codeconnect_save_binding",
|
|
18
|
+
"codeconnect_get_binding",
|
|
19
|
+
"codeconnect_get_registry",
|
|
20
|
+
"codeconnect_get_node_ui_status",
|
|
21
|
+
],
|
|
22
|
+
sxlRecipes: ["sxl-code-connect"],
|
|
23
|
+
preferredFlow: [
|
|
24
|
+
"get_plugin_status",
|
|
25
|
+
"codeconnect_get_global_settings",
|
|
26
|
+
"codeconnect_save_binding",
|
|
27
|
+
"codeconnect_get_registry",
|
|
28
|
+
],
|
|
29
|
+
note: "Bridge stores richer SXL binding metadata (docs URL, files, Storybook, component API status) than a bare node-to-code map.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
officialTool: "create_new_file",
|
|
33
|
+
officialScope: "no-file-context",
|
|
34
|
+
remoteOnly: true,
|
|
35
|
+
status: "companion-figma-mcp-required",
|
|
36
|
+
bridgeTools: [],
|
|
37
|
+
preferredFlow: ["Use official Figma MCP create_new_file, then open SXL Studio plugin Remote Connect in that file."],
|
|
38
|
+
note: "Figma plugin code cannot create a new Figma file or choose an organization/team draft destination.",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
officialTool: "generate_diagram",
|
|
42
|
+
officialScope: "figjam",
|
|
43
|
+
remoteOnly: true,
|
|
44
|
+
status: "companion-figma-mcp-required",
|
|
45
|
+
bridgeTools: [],
|
|
46
|
+
preferredFlow: ["Use official Figma MCP generate_diagram for FigJam diagrams."],
|
|
47
|
+
note: "Initial Bridge scope is Figma Design + SXL Studio. FigJam diagram generation is covered through the official Figma MCP companion, not the local plugin.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
officialTool: "generate_figma_design",
|
|
51
|
+
officialScope: "figma-design",
|
|
52
|
+
remoteOnly: true,
|
|
53
|
+
status: "covered-by-bridge-and-sxl",
|
|
54
|
+
bridgeTools: [
|
|
55
|
+
"inspect_design_system",
|
|
56
|
+
"validate_screen_spec",
|
|
57
|
+
"build_screen",
|
|
58
|
+
"update_screen",
|
|
59
|
+
"build_mockup",
|
|
60
|
+
],
|
|
61
|
+
bridgeResources: ["sxl://agent/schemas/design-dsl-v1"],
|
|
62
|
+
sxlRecipes: ["sxl-generate-design", "mockup-builder"],
|
|
63
|
+
preferredFlow: [
|
|
64
|
+
"route_intent",
|
|
65
|
+
"plan_workflow",
|
|
66
|
+
"inspect_design_system",
|
|
67
|
+
"validate_screen_spec",
|
|
68
|
+
"build_screen { dryRun: true }",
|
|
69
|
+
"build_screen or update_screen after approval",
|
|
70
|
+
],
|
|
71
|
+
note: "Bridge does not capture a live browser screenshot like official generate_figma_design; it builds editable Figma Design screens from SXL Design DSL and real design-system components.",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
officialTool: "get_code_connect_map",
|
|
75
|
+
officialScope: "figma-design",
|
|
76
|
+
remoteOnly: false,
|
|
77
|
+
status: "covered-by-bridge-and-sxl",
|
|
78
|
+
bridgeTools: ["codeconnect_get_binding", "codeconnect_get_registry", "codeconnect_get_selection_status"],
|
|
79
|
+
sxlRecipes: ["sxl-code-connect"],
|
|
80
|
+
preferredFlow: ["get_selection_summary", "codeconnect_get_selection_status", "codeconnect_get_binding"],
|
|
81
|
+
note: "Bridge maps Code Connect through the SXL plugin registry and node plugin data.",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
officialTool: "get_code_connect_suggestions",
|
|
85
|
+
officialScope: "figma-design",
|
|
86
|
+
remoteOnly: false,
|
|
87
|
+
status: "covered-by-bridge-and-sxl",
|
|
88
|
+
bridgeTools: ["get_code_connect_suggestions", "codeconnect_get_registry", "codeconnect_save_binding"],
|
|
89
|
+
sxlRecipes: ["sxl-code-connect"],
|
|
90
|
+
preferredFlow: [
|
|
91
|
+
"get_code_connect_suggestions",
|
|
92
|
+
"review highest-confidence binding",
|
|
93
|
+
"codeconnect_save_binding",
|
|
94
|
+
"codeconnect_get_registry",
|
|
95
|
+
],
|
|
96
|
+
note: "Bridge now infers local Code Connect candidates from selected Figma component names and the user's local codebase. Use official Figma MCP as a companion when hosted/remote code context is required.",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
officialTool: "get_context_for_code_connect",
|
|
100
|
+
officialScope: "figma-design",
|
|
101
|
+
remoteOnly: true,
|
|
102
|
+
status: "covered-by-bridge-and-sxl",
|
|
103
|
+
bridgeTools: [
|
|
104
|
+
"get_context_for_code_connect",
|
|
105
|
+
"generate_code_connect_template",
|
|
106
|
+
"get_code_connect_suggestions",
|
|
107
|
+
"get_codegen",
|
|
108
|
+
"export_composition_json",
|
|
109
|
+
"codeconnect_get_binding",
|
|
110
|
+
"codeconnect_get_registry",
|
|
111
|
+
"find_components",
|
|
112
|
+
],
|
|
113
|
+
sxlRecipes: ["sxl-code-connect", "doc-component"],
|
|
114
|
+
preferredFlow: [
|
|
115
|
+
"get_context_for_code_connect for active-file SXL binding/template context",
|
|
116
|
+
"review suggestions, existingBindings, and componentDiscovery",
|
|
117
|
+
"generate_code_connect_template dry-run before writing .figma.ts",
|
|
118
|
+
"codeconnect_save_binding or write reviewed .figma.ts template",
|
|
119
|
+
"Use official Figma MCP as companion for hosted remote-only Code Connect context.",
|
|
120
|
+
],
|
|
121
|
+
note: "Bridge now exposes a direct get_context_for_code_connect wrapper plus a dry-run-first .figma.ts template generator for active-file SXL plugin context and local codebase suggestions. It does not replace Figma's remote-only hosted repository/library context.",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
officialTool: "get_design_context",
|
|
125
|
+
officialScope: "mixed",
|
|
126
|
+
remoteOnly: false,
|
|
127
|
+
status: "covered-by-bridge-and-sxl",
|
|
128
|
+
bridgeTools: ["get_design_context", "get_codegen", "export_composition_json", "get_node_tree", "inspect_selection", "get_variable_defs", "get_screenshot", "get_code_connect_suggestions"],
|
|
129
|
+
bridgeResources: ["sxl://figma/selection", "sxl://agent/recipes/compose-with-variables"],
|
|
130
|
+
sxlRecipes: ["sxl-use", "compose-with-variables"],
|
|
131
|
+
preferredFlow: ["get_design_context for active-file SXL-native design context", "Use includeCodeConnectSuggestions=true when local source candidates are needed", "Use official Figma MCP as companion for Figma Make or hosted remote context outside the active plugin file"],
|
|
132
|
+
note: "Bridge now exposes a direct get_design_context wrapper that bundles SXL codegen/composition context, metadata, native variable/style definitions, optional SVG screenshot, and optional local Code Connect suggestions. It is a structured starting point for agents, not final production code.",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
officialTool: "get_figjam",
|
|
136
|
+
officialScope: "figjam",
|
|
137
|
+
remoteOnly: false,
|
|
138
|
+
status: "companion-figma-mcp-required",
|
|
139
|
+
bridgeTools: [],
|
|
140
|
+
preferredFlow: ["Use official Figma MCP get_figjam for FigJam boards."],
|
|
141
|
+
note: "Bridge currently targets Figma Design + SXL Studio workflows. FigJam XML extraction is an official Figma MCP companion path.",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
officialTool: "get_libraries",
|
|
145
|
+
officialScope: "figma-design",
|
|
146
|
+
remoteOnly: true,
|
|
147
|
+
status: "covered-by-bridge-and-sxl",
|
|
148
|
+
bridgeTools: [
|
|
149
|
+
"get_libraries",
|
|
150
|
+
"find_components",
|
|
151
|
+
"inspect_design_system",
|
|
152
|
+
"search_enabled_library_assets",
|
|
153
|
+
"inspect_enabled_libraries",
|
|
154
|
+
"list_enabled_library_variables",
|
|
155
|
+
"figma_rest_diagnose",
|
|
156
|
+
"figma_rest_get_file_components",
|
|
157
|
+
"figma_rest_get_file_component_sets",
|
|
158
|
+
"figma_rest_get_file_styles",
|
|
159
|
+
"figma_rest_get_team_components",
|
|
160
|
+
"figma_rest_get_team_component_sets",
|
|
161
|
+
"figma_rest_get_team_styles",
|
|
162
|
+
],
|
|
163
|
+
sxlRecipes: ["sxl-generate-design", "sxl-generate-library"],
|
|
164
|
+
preferredFlow: ["get_libraries", "search_design_system for filtered discovery", "inspect_enabled_libraries for active-file enabled libraries", "figma_rest_diagnose before known file/team REST reads"],
|
|
165
|
+
note: "Bridge exposes a Figma MCP-compatible get_libraries tool for Figma Design/SXL: active-file enabled libraries through Plugin API and known file/team libraries through Figma REST. It still cannot enable libraries or enumerate arbitrary community/org libraries outside configured sources.",
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
officialTool: "get_metadata",
|
|
169
|
+
officialScope: "figma-design",
|
|
170
|
+
remoteOnly: false,
|
|
171
|
+
status: "covered-by-bridge",
|
|
172
|
+
bridgeTools: ["get_metadata", "get_page_structure", "get_node_tree", "find_nodes", "get_selection_summary", "figma_rest_diagnose", "figma_rest_get_file_metadata", "figma_rest_get_file_nodes"],
|
|
173
|
+
bridgeResources: ["sxl://figma/selection"],
|
|
174
|
+
sxlRecipes: ["sxl-use"],
|
|
175
|
+
preferredFlow: ["get_metadata { mode: 'plugin' } for active-file selection/page/node tree", "get_metadata { mode: 'rest' } for known fileKey/nodeIds", "figma_rest_diagnose when REST token status is uncertain"],
|
|
176
|
+
note: "Bridge provides direct get_metadata orchestration for plugin selection/page/node tree reads and cross-file REST metadata/nodes when a REST token is configured.",
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
officialTool: "get_screenshot",
|
|
180
|
+
officialScope: "mixed",
|
|
181
|
+
remoteOnly: false,
|
|
182
|
+
status: "covered-by-bridge",
|
|
183
|
+
bridgeTools: ["get_screenshot", "export_as_svg", "figma_rest_diagnose", "figma_rest_get_images", "figma_rest_get_image_fills"],
|
|
184
|
+
preferredFlow: ["get_screenshot { mode: 'plugin-svg' } for active-file inline SVG", "get_screenshot { mode: 'rest-image' } for known fileKey/nodeIds image URLs", "figma_rest_diagnose when REST token status is uncertain"],
|
|
185
|
+
note: "Bridge exposes a direct get_screenshot orchestration: plugin SVG export for active-file nodes and Figma REST image URL rendering for known file/node ids.",
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
officialTool: "get_variable_defs",
|
|
189
|
+
officialScope: "figma-design",
|
|
190
|
+
remoteOnly: false,
|
|
191
|
+
status: "covered-by-bridge-and-sxl",
|
|
192
|
+
bridgeTools: [
|
|
193
|
+
"get_variable_defs",
|
|
194
|
+
"get_variables",
|
|
195
|
+
"inspect_enabled_libraries",
|
|
196
|
+
"list_enabled_library_variables",
|
|
197
|
+
"get_local_styles",
|
|
198
|
+
"analyze_variable_usage",
|
|
199
|
+
"audit_variable_coverage",
|
|
200
|
+
"audit_style_coverage",
|
|
201
|
+
"figma_rest_diagnose",
|
|
202
|
+
"figma_rest_get_variables_local",
|
|
203
|
+
"figma_rest_get_variables_published",
|
|
204
|
+
],
|
|
205
|
+
bridgeResources: ["sxl://tokens/config"],
|
|
206
|
+
sxlRecipes: ["sxl-audit", "variable-usage", "audit-coverage"],
|
|
207
|
+
preferredFlow: ["get_variable_defs { mode: 'selection' } for active-file selection token context", "get_variable_defs { mode: 'local' } for local variables/styles", "get_variable_defs { mode: 'enabled-libraries' } for enabled library collections/variables", "get_variable_defs { mode: 'rest' } or figma_rest_get_variables_local for known fileKey/url"],
|
|
208
|
+
note: "Bridge exposes direct get_variable_defs orchestration. Selection mode reads native Figma boundVariables/styleId graph through Remote Connect, adds SXL applied token metadata as compatibility context, and local/enabled-library/REST modes cover broader SXL workflows and known-file reads where constraints allow it.",
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
officialTool: "search_design_system",
|
|
212
|
+
officialScope: "figma-design",
|
|
213
|
+
remoteOnly: true,
|
|
214
|
+
status: "covered-by-bridge-and-sxl",
|
|
215
|
+
bridgeTools: ["search_design_system", "inspect_design_system", "find_components", "search_enabled_library_assets", "inspect_enabled_libraries", "list_enabled_library_variables", "get_variables", "get_local_styles", "figma_rest_diagnose", "figma_rest_search_design_system", "figma_rest_get_team_component_sets"],
|
|
216
|
+
sxlRecipes: ["sxl-generate-design", "mockup-builder"],
|
|
217
|
+
preferredFlow: ["search_design_system", "inspect_design_system for active-file summary", "figma_rest_diagnose before known file/team REST reads", "build_screen/update_screen with discovered component ids or keys"],
|
|
218
|
+
note: "Bridge exposes a Figma MCP-compatible search_design_system tool for Figma Design/SXL. It searches active-file components, enabled-library descriptors/variables, and known file/team library assets; arbitrary community/org discovery still requires an official remote source.",
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
officialTool: "send_code_connect_mappings",
|
|
222
|
+
officialScope: "figma-design",
|
|
223
|
+
remoteOnly: false,
|
|
224
|
+
status: "covered-by-bridge-and-sxl",
|
|
225
|
+
bridgeTools: ["codeconnect_save_binding", "codeconnect_get_registry"],
|
|
226
|
+
sxlRecipes: ["sxl-code-connect"],
|
|
227
|
+
preferredFlow: ["codeconnect_save_binding", "codeconnect_get_registry"],
|
|
228
|
+
note: "Bridge can persist approved mappings through SXL Code Connect registry tools.",
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
officialTool: "upload_assets",
|
|
232
|
+
officialScope: "mixed",
|
|
233
|
+
remoteOnly: true,
|
|
234
|
+
status: "covered-by-bridge",
|
|
235
|
+
bridgeTools: ["upload_assets", "set_image_fill", "apply_image"],
|
|
236
|
+
preferredFlow: ["get_bridge_runtime_summary", "upload_assets { dryRun: true }", "upload_assets for Figma Design after approval; use official Figma MCP upload_assets for FigJam/Slides."],
|
|
237
|
+
note: "Bridge now covers Figma Design image upload/apply from URL or base64 through Remote Connect. Official Figma MCP is still required for FigJam/Slides asset upload.",
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
officialTool: "use_figma",
|
|
241
|
+
officialScope: "mixed",
|
|
242
|
+
remoteOnly: true,
|
|
243
|
+
status: "covered-by-bridge-and-sxl",
|
|
244
|
+
bridgeTools: [
|
|
245
|
+
"create_frame",
|
|
246
|
+
"create_text",
|
|
247
|
+
"create_rectangle",
|
|
248
|
+
"set_auto_layout",
|
|
249
|
+
"create_component_instance",
|
|
250
|
+
"build_screen",
|
|
251
|
+
"update_screen",
|
|
252
|
+
"import_variable_spec",
|
|
253
|
+
"import_style_spec",
|
|
254
|
+
],
|
|
255
|
+
bridgeResources: ["sxl://agent/recipes/sxl-use", "sxl://agent/schemas/design-dsl-v1"],
|
|
256
|
+
sxlRecipes: ["sxl-use", "sxl-generate-design", "sxl-generate-library"],
|
|
257
|
+
preferredFlow: ["route_intent", "plan_workflow", "specific Bridge thick command", "dryRun before writes"],
|
|
258
|
+
note: "Bridge intentionally prefers typed/thick commands over arbitrary JS. It covers Figma Design writes through plugin Remote Connect, not FigJam/Slides.",
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
officialTool: "whoami",
|
|
262
|
+
officialScope: "no-file-context",
|
|
263
|
+
remoteOnly: true,
|
|
264
|
+
status: "covered-by-bridge",
|
|
265
|
+
bridgeTools: ["figma_rest_diagnose", "figma_rest_whoami", "get_plugin_status"],
|
|
266
|
+
preferredFlow: ["figma_rest_diagnose", "figma_rest_whoami when FIGMA_TOKEN/FIGMA_ACCESS_TOKEN is configured; get_plugin_status for local plugin/editor status."],
|
|
267
|
+
note: "Plugin runtime can report editor/session status; Bridge REST can report the authenticated REST user when a Figma token with current_user:read is configured.",
|
|
268
|
+
},
|
|
269
|
+
];
|
|
270
|
+
function countByStatus(entries, status) {
|
|
271
|
+
return entries.filter((entry) => entry.status === status).length;
|
|
272
|
+
}
|
|
273
|
+
export function buildFigmaMcpParityMatrix() {
|
|
274
|
+
ensureBridgeToolCatalogue();
|
|
275
|
+
const bridgeToolNames = new Set(getBridgeToolCatalogue().map((entry) => entry.name));
|
|
276
|
+
const staleBridgeToolReferences = Array.from(new Set(FIGMA_MCP_PARITY_ENTRIES.flatMap((entry) => entry.bridgeTools).filter((toolName) => !bridgeToolNames.has(toolName)))).sort();
|
|
277
|
+
return {
|
|
278
|
+
version: 1,
|
|
279
|
+
verifiedAt: VERIFIED_AT,
|
|
280
|
+
source: SOURCE,
|
|
281
|
+
summary: {
|
|
282
|
+
officialToolCount: FIGMA_MCP_PARITY_ENTRIES.length,
|
|
283
|
+
coveredByBridge: countByStatus(FIGMA_MCP_PARITY_ENTRIES, "covered-by-bridge"),
|
|
284
|
+
coveredByBridgeAndSxl: countByStatus(FIGMA_MCP_PARITY_ENTRIES, "covered-by-bridge-and-sxl"),
|
|
285
|
+
companionRequired: countByStatus(FIGMA_MCP_PARITY_ENTRIES, "companion-figma-mcp-required"),
|
|
286
|
+
futureScope: countByStatus(FIGMA_MCP_PARITY_ENTRIES, "future-scope"),
|
|
287
|
+
notSupportedByPluginApi: countByStatus(FIGMA_MCP_PARITY_ENTRIES, "not-supported-by-plugin-api"),
|
|
288
|
+
staleBridgeToolReferences,
|
|
289
|
+
},
|
|
290
|
+
operatingModel: {
|
|
291
|
+
bridgePrimary: FIGMA_MCP_PARITY_ENTRIES
|
|
292
|
+
.filter((entry) => entry.status === "covered-by-bridge" || entry.status === "covered-by-bridge-and-sxl")
|
|
293
|
+
.map((entry) => entry.officialTool),
|
|
294
|
+
companionFigmaMcp: FIGMA_MCP_PARITY_ENTRIES
|
|
295
|
+
.filter((entry) => entry.status === "companion-figma-mcp-required")
|
|
296
|
+
.map((entry) => entry.officialTool),
|
|
297
|
+
futureOrUnsupported: FIGMA_MCP_PARITY_ENTRIES
|
|
298
|
+
.filter((entry) => entry.status === "future-scope" || entry.status === "not-supported-by-plugin-api")
|
|
299
|
+
.map((entry) => entry.officialTool),
|
|
300
|
+
},
|
|
301
|
+
entries: [...FIGMA_MCP_PARITY_ENTRIES],
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
function isRecord(value) {
|
|
305
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
306
|
+
}
|
|
307
|
+
function stringArray(value) {
|
|
308
|
+
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
309
|
+
}
|
|
310
|
+
export function validateFigmaMcpParityPayload(value) {
|
|
311
|
+
const expectedTools = FIGMA_MCP_PARITY_ENTRIES.map((entry) => entry.officialTool);
|
|
312
|
+
const errors = [];
|
|
313
|
+
if (!isRecord(value)) {
|
|
314
|
+
return {
|
|
315
|
+
ok: false,
|
|
316
|
+
officialToolCount: 0,
|
|
317
|
+
companionRequired: 0,
|
|
318
|
+
futureScope: 0,
|
|
319
|
+
notSupportedByPluginApi: 0,
|
|
320
|
+
missingOfficialTools: expectedTools,
|
|
321
|
+
missingCompanionTools: [...REQUIRED_COMPANION_TOOLS],
|
|
322
|
+
errors: ["Payload is not an object."],
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
const summary = isRecord(value["summary"]) ? value["summary"] : {};
|
|
326
|
+
const entries = Array.isArray(value["entries"]) ? value["entries"].filter(isRecord) : [];
|
|
327
|
+
const operatingModel = isRecord(value["operatingModel"]) ? value["operatingModel"] : {};
|
|
328
|
+
const officialToolCount = typeof summary["officialToolCount"] === "number" ? summary["officialToolCount"] : 0;
|
|
329
|
+
const companionRequired = typeof summary["companionRequired"] === "number" ? summary["companionRequired"] : 0;
|
|
330
|
+
const futureScope = typeof summary["futureScope"] === "number" ? summary["futureScope"] : 0;
|
|
331
|
+
const notSupportedByPluginApi = typeof summary["notSupportedByPluginApi"] === "number" ? summary["notSupportedByPluginApi"] : 0;
|
|
332
|
+
const entryNames = new Set(entries.map((entry) => entry["officialTool"]).filter((item) => typeof item === "string"));
|
|
333
|
+
const companionTools = new Set(stringArray(operatingModel["companionFigmaMcp"]));
|
|
334
|
+
const missingOfficialTools = expectedTools.filter((tool) => !entryNames.has(tool));
|
|
335
|
+
const missingCompanionTools = REQUIRED_COMPANION_TOOLS.filter((tool) => !companionTools.has(tool));
|
|
336
|
+
if (value["verifiedAt"] !== VERIFIED_AT) {
|
|
337
|
+
errors.push(`verifiedAt must be ${VERIFIED_AT}.`);
|
|
338
|
+
}
|
|
339
|
+
if (officialToolCount !== expectedTools.length) {
|
|
340
|
+
errors.push(`officialToolCount must be ${expectedTools.length}.`);
|
|
341
|
+
}
|
|
342
|
+
if (entries.length !== expectedTools.length) {
|
|
343
|
+
errors.push(`entries length must be ${expectedTools.length}.`);
|
|
344
|
+
}
|
|
345
|
+
if (companionRequired !== REQUIRED_COMPANION_TOOLS.length) {
|
|
346
|
+
errors.push(`companionRequired must be ${REQUIRED_COMPANION_TOOLS.length}.`);
|
|
347
|
+
}
|
|
348
|
+
if (futureScope !== 0 || notSupportedByPluginApi !== 0) {
|
|
349
|
+
errors.push("futureScope and notSupportedByPluginApi must be 0 for the current official MCP surface.");
|
|
350
|
+
}
|
|
351
|
+
if (missingOfficialTools.length > 0) {
|
|
352
|
+
errors.push(`Missing official tools: ${missingOfficialTools.join(", ")}.`);
|
|
353
|
+
}
|
|
354
|
+
if (missingCompanionTools.length > 0) {
|
|
355
|
+
errors.push(`Missing companion tools: ${missingCompanionTools.join(", ")}.`);
|
|
356
|
+
}
|
|
357
|
+
return {
|
|
358
|
+
ok: errors.length === 0,
|
|
359
|
+
officialToolCount,
|
|
360
|
+
companionRequired,
|
|
361
|
+
futureScope,
|
|
362
|
+
notSupportedByPluginApi,
|
|
363
|
+
missingOfficialTools,
|
|
364
|
+
missingCompanionTools,
|
|
365
|
+
errors,
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=figma-mcp-parity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figma-mcp-parity.js","sourceRoot":"","sources":["../src/figma-mcp-parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type FigmaMcpSkillParityStatus = "covered-by-bridge-and-sxl" | "bridge-primary-with-agent-work" | "companion-figma-mcp-required";
|
|
2
|
+
export type FigmaMcpSkillKind = "official-skill" | "example-skill";
|
|
3
|
+
export type FigmaMcpSkillParityEntry = {
|
|
4
|
+
officialSkill: string;
|
|
5
|
+
aliases?: string[];
|
|
6
|
+
kind: FigmaMcpSkillKind;
|
|
7
|
+
status: FigmaMcpSkillParityStatus;
|
|
8
|
+
bridgeTools: string[];
|
|
9
|
+
bridgeResources: string[];
|
|
10
|
+
sxlRecipes: string[];
|
|
11
|
+
preferredFlow: string[];
|
|
12
|
+
limitations: string[];
|
|
13
|
+
note: string;
|
|
14
|
+
};
|
|
15
|
+
export type FigmaMcpSkillCompatibilityAlias = {
|
|
16
|
+
alias: string;
|
|
17
|
+
mapsToOfficialSkill?: string;
|
|
18
|
+
sxlRecipe: string;
|
|
19
|
+
note: string;
|
|
20
|
+
};
|
|
21
|
+
export type FigmaMcpSkillsParityValidation = {
|
|
22
|
+
ok: boolean;
|
|
23
|
+
officialSkillCount: number;
|
|
24
|
+
compatibilityAliases: number;
|
|
25
|
+
missingOfficialSkills: string[];
|
|
26
|
+
missingCompanionSkills: string[];
|
|
27
|
+
missingCompatibilityAliases: string[];
|
|
28
|
+
errors: string[];
|
|
29
|
+
};
|
|
30
|
+
export type FigmaMcpSkillsParityMatrix = {
|
|
31
|
+
version: 1;
|
|
32
|
+
verifiedAt: string;
|
|
33
|
+
source: {
|
|
34
|
+
skills: string;
|
|
35
|
+
toolsAndPrompts: string;
|
|
36
|
+
createSkills: string;
|
|
37
|
+
};
|
|
38
|
+
summary: {
|
|
39
|
+
officialSkillCount: number;
|
|
40
|
+
officialSkills: number;
|
|
41
|
+
exampleSkills: number;
|
|
42
|
+
coveredByBridgeAndSxl: number;
|
|
43
|
+
bridgePrimaryWithAgentWork: number;
|
|
44
|
+
companionRequired: number;
|
|
45
|
+
compatibilityAliases: number;
|
|
46
|
+
staleBridgeToolReferences: string[];
|
|
47
|
+
staleBridgeResourceReferences: string[];
|
|
48
|
+
staleRecipeReferences: string[];
|
|
49
|
+
};
|
|
50
|
+
operatingModel: {
|
|
51
|
+
bridgePrimary: string[];
|
|
52
|
+
companionFigmaMcp: string[];
|
|
53
|
+
agentImplementationRequired: string[];
|
|
54
|
+
};
|
|
55
|
+
compatibilityAliases: FigmaMcpSkillCompatibilityAlias[];
|
|
56
|
+
entries: FigmaMcpSkillParityEntry[];
|
|
57
|
+
};
|
|
58
|
+
export declare const FIGMA_MCP_SKILL_COMPATIBILITY_ALIASES: readonly FigmaMcpSkillCompatibilityAlias[];
|
|
59
|
+
export declare const FIGMA_MCP_SKILL_PARITY_ENTRIES: readonly FigmaMcpSkillParityEntry[];
|
|
60
|
+
export declare function buildFigmaMcpSkillsParityMatrix(): FigmaMcpSkillsParityMatrix;
|
|
61
|
+
export declare function validateFigmaMcpSkillsParityPayload(value: unknown): FigmaMcpSkillsParityValidation;
|