@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.
- 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 +14 -2
- package/dist/http-api.js +323 -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 +97 -25
- 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 +13 -28
- 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 +22 -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 +73 -45
- 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/ws-server.js +16 -3
- package/dist/ws-server.js.map +1 -1
- package/package.json +18 -2
|
@@ -6,14 +6,28 @@
|
|
|
6
6
|
* each tool registration file having to call `catalogueTool` inline. Adding a
|
|
7
7
|
* new tool? Register it here and in the corresponding tools/*.ts module.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { BRIDGE_COMMAND_TIMEOUT_MS } from "../command-queue.js";
|
|
10
|
+
import { catalogueTool, getBridgeToolCatalogue } from "./registry.js";
|
|
10
11
|
function add(entry) {
|
|
12
|
+
const commandType = entry.commandType ?? entry.name;
|
|
13
|
+
const execution = entry.execution ?? "plugin";
|
|
14
|
+
const pluginCommandTypes = entry.pluginCommandTypes ?? (execution === "bridge-local" ? [] : [commandType]);
|
|
11
15
|
catalogueTool({
|
|
12
16
|
name: entry.name,
|
|
13
17
|
category: entry.category,
|
|
14
18
|
summary: entry.summary,
|
|
15
19
|
requiresDesignMode: entry.requiresDesignMode ?? false,
|
|
16
20
|
requiresComposition: entry.requiresComposition ?? false,
|
|
21
|
+
commandType,
|
|
22
|
+
execution,
|
|
23
|
+
pluginCommandTypes,
|
|
24
|
+
timeoutMs: entry.timeoutMs ?? BRIDGE_COMMAND_TIMEOUT_MS[commandType] ?? 3_600_000,
|
|
25
|
+
aliases: entry.aliases,
|
|
26
|
+
naturalLanguageIntents: entry.naturalLanguageIntents,
|
|
27
|
+
dryRunSupported: entry.dryRunSupported,
|
|
28
|
+
returnsLargeData: entry.returnsLargeData,
|
|
29
|
+
preferredBefore: entry.preferredBefore,
|
|
30
|
+
preferredAfter: entry.preferredAfter,
|
|
17
31
|
});
|
|
18
32
|
}
|
|
19
33
|
function category(cat, entries) {
|
|
@@ -40,7 +54,26 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
40
54
|
{ name: "save_tokens_config", category: "tokens", summary: "Overwrite config.json." },
|
|
41
55
|
{ name: "get_applied_tokens", category: "tokens", summary: "Applied tokens + composition binding on a node." },
|
|
42
56
|
{ name: "apply_token_doc_spec", category: "tokens", summary: "Doc Spec v1: bind token paths to TEXT layers by name (same as build_token_documentation).", requiresDesignMode: true },
|
|
43
|
-
{
|
|
57
|
+
{
|
|
58
|
+
name: "preview_export_variables",
|
|
59
|
+
category: "tokens",
|
|
60
|
+
summary: "READ-ONLY preflight for export_variables: normalize exact settings payload, effective plugin-safe defaults, risks, and destructive confirmation requirement.",
|
|
61
|
+
execution: "bridge-local",
|
|
62
|
+
pluginCommandTypes: [],
|
|
63
|
+
dryRunSupported: true,
|
|
64
|
+
aliases: ["preview token export", "preflight export variables", "проверить экспорт переменных"],
|
|
65
|
+
naturalLanguageIntents: ["Preview SXL token export settings before writing Variables and Styles to Figma."],
|
|
66
|
+
preferredBefore: ["export_variables"],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: "export_variables",
|
|
70
|
+
category: "tokens",
|
|
71
|
+
summary: "Run variables/styles export with plugin-safe defaults unless flags are explicitly provided.",
|
|
72
|
+
requiresDesignMode: true,
|
|
73
|
+
preferredAfter: ["preview_export_variables"],
|
|
74
|
+
aliases: ["export tokens", "export variables", "sync variables", "экспортировать переменные"],
|
|
75
|
+
naturalLanguageIntents: ["Export SXL token files to Figma Variables and Styles."],
|
|
76
|
+
},
|
|
44
77
|
{ name: "reset_diff", category: "tokens", summary: "Reset all Diff-IDs." },
|
|
45
78
|
{ name: "reset_diff_collection", category: "tokens", summary: "Reset Diff-IDs for a collection." },
|
|
46
79
|
{ name: "reset_diff_file", category: "tokens", summary: "Reset Diff-IDs for a file." },
|
|
@@ -62,6 +95,35 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
62
95
|
]);
|
|
63
96
|
category("variables", [
|
|
64
97
|
{ name: "get_variables", category: "variables", summary: "List local variable collections and variables." },
|
|
98
|
+
{
|
|
99
|
+
name: "get_variable_defs",
|
|
100
|
+
category: "variables",
|
|
101
|
+
summary: "Bridge orchestration for official-MCP-style variable/style definitions: selection-compatible applied token context plus local, enabled-library, or REST variable definition modes.",
|
|
102
|
+
execution: "bridge-orchestration",
|
|
103
|
+
pluginCommandTypes: [
|
|
104
|
+
"get_selection_summary",
|
|
105
|
+
"get_selection_variable_defs",
|
|
106
|
+
"get_applied_tokens",
|
|
107
|
+
"get_variables",
|
|
108
|
+
"get_local_styles",
|
|
109
|
+
"inspect_enabled_libraries",
|
|
110
|
+
"list_enabled_library_variables",
|
|
111
|
+
],
|
|
112
|
+
returnsLargeData: true,
|
|
113
|
+
aliases: [
|
|
114
|
+
"variable definitions",
|
|
115
|
+
"variables used in selection",
|
|
116
|
+
"token definitions",
|
|
117
|
+
"переменные выделения",
|
|
118
|
+
"токены выделения",
|
|
119
|
+
],
|
|
120
|
+
naturalLanguageIntents: [
|
|
121
|
+
"Return variables and styles used by the active Figma selection before generating code or documentation.",
|
|
122
|
+
"Read local, enabled-library, or known-file REST variable definitions when the user asks for token names and values.",
|
|
123
|
+
],
|
|
124
|
+
preferredBefore: ["get_design_context", "audit_variable_coverage", "audit_style_coverage"],
|
|
125
|
+
preferredAfter: ["get_plugin_status", "get_metadata", "figma_rest_diagnose"],
|
|
126
|
+
},
|
|
65
127
|
{ name: "create_variable_collection", category: "variables", summary: "Create a new variable collection.", requiresDesignMode: true },
|
|
66
128
|
{ name: "create_variable", category: "variables", summary: "Create a new variable inside a collection.", requiresDesignMode: true },
|
|
67
129
|
{ name: "bind_variable", category: "variables", summary: "Bind a variable to a node property.", requiresDesignMode: true },
|
|
@@ -75,6 +137,10 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
75
137
|
{ name: "set_variable_mode_value", category: "variables", summary: "Set variable value for a mode.", requiresDesignMode: true },
|
|
76
138
|
{ name: "set_variable_scopes", category: "variables", summary: "Set variable scopes.", requiresDesignMode: true },
|
|
77
139
|
{ name: "set_variable_code_syntax", category: "variables", summary: "Set variable codeSyntax per platform.", requiresDesignMode: true },
|
|
140
|
+
{ name: "batch_create_variables", category: "variables", summary: "Create many variables in one collection with per-item errors.", requiresDesignMode: true },
|
|
141
|
+
{ name: "batch_set_variable_values", category: "variables", summary: "Set many variable mode values in one round-trip.", requiresDesignMode: true },
|
|
142
|
+
{ name: "batch_delete_variables", category: "variables", summary: "Delete many variables with per-item errors.", requiresDesignMode: true },
|
|
143
|
+
{ name: "batch_bind_variables", category: "variables", summary: "Bind many nodes/properties to variables in one round-trip.", requiresDesignMode: true },
|
|
78
144
|
]);
|
|
79
145
|
category("styles", [
|
|
80
146
|
{ name: "get_local_styles", category: "styles", summary: "List local paint/text/effect styles." },
|
|
@@ -96,11 +162,71 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
96
162
|
{ name: "get_node_info", category: "canvas", summary: "Basic info about one node." },
|
|
97
163
|
{ name: "get_node_tree", category: "canvas", summary: "Full scene subtree." },
|
|
98
164
|
{ name: "get_page_structure", category: "canvas", summary: "Summary of current page structure." },
|
|
165
|
+
{
|
|
166
|
+
name: "get_design_context",
|
|
167
|
+
category: "canvas",
|
|
168
|
+
summary: "Bridge design-context orchestration: active-file SXL codegen/composition context, metadata, native variable/style definitions, optional screenshot, and optional Code Connect suggestions.",
|
|
169
|
+
execution: "bridge-orchestration",
|
|
170
|
+
pluginCommandTypes: [
|
|
171
|
+
"get_selection_summary",
|
|
172
|
+
"get_node_tree",
|
|
173
|
+
"get_page_structure",
|
|
174
|
+
"get_codegen",
|
|
175
|
+
"export_composition_json",
|
|
176
|
+
"get_selection_variable_defs",
|
|
177
|
+
"export_as_svg",
|
|
178
|
+
"find_components",
|
|
179
|
+
],
|
|
180
|
+
returnsLargeData: true,
|
|
181
|
+
aliases: [
|
|
182
|
+
"design context",
|
|
183
|
+
"figma context",
|
|
184
|
+
"selection context",
|
|
185
|
+
"контекст дизайна",
|
|
186
|
+
"контекст выделения",
|
|
187
|
+
],
|
|
188
|
+
naturalLanguageIntents: [
|
|
189
|
+
"Collect structured design context for the active Figma selection before implementing it in code.",
|
|
190
|
+
"Bundle SXL codegen, composition JSON, metadata, variables/styles, and screenshot context into one agent-readable payload.",
|
|
191
|
+
],
|
|
192
|
+
preferredBefore: ["get_codegen", "export_composition_json", "get_variable_defs", "get_screenshot"],
|
|
193
|
+
preferredAfter: ["get_plugin_status", "get_metadata"],
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: "get_metadata",
|
|
197
|
+
category: "canvas",
|
|
198
|
+
summary: "Bridge metadata orchestration: active-file selection/page/node tree metadata through plugin or file/node metadata through Figma REST.",
|
|
199
|
+
execution: "bridge-orchestration",
|
|
200
|
+
pluginCommandTypes: ["get_selection_summary", "get_page_structure", "get_node_tree", "get_pages"],
|
|
201
|
+
returnsLargeData: true,
|
|
202
|
+
aliases: ["figma metadata", "file metadata", "node metadata", "метаданные фигмы"],
|
|
203
|
+
naturalLanguageIntents: [
|
|
204
|
+
"Read active-file selection, page structure, or node tree metadata through Remote Connect.",
|
|
205
|
+
"Read hosted Figma file metadata or specific node metadata through REST when fileKey/url is available.",
|
|
206
|
+
],
|
|
207
|
+
preferredBefore: ["get_design_context", "get_screenshot", "find_nodes"],
|
|
208
|
+
preferredAfter: ["get_plugin_status", "figma_rest_diagnose"],
|
|
209
|
+
},
|
|
99
210
|
{ name: "read_node_properties", category: "canvas", summary: "Read canonical node properties." },
|
|
100
211
|
{ name: "find_nodes", category: "canvas", summary: "Find nodes by predicate." },
|
|
101
212
|
{ name: "list_components", category: "canvas", summary: "List local components." },
|
|
102
213
|
{ name: "list_available_fonts", category: "canvas", summary: "Available fonts (+ project text styles hint)." },
|
|
103
214
|
{ name: "export_as_svg", category: "canvas", summary: "Export node(s) as SVG." },
|
|
215
|
+
{
|
|
216
|
+
name: "get_screenshot",
|
|
217
|
+
category: "canvas",
|
|
218
|
+
summary: "Bridge screenshot/render orchestration: plugin inline SVG for active-file nodes or Figma REST image URLs for fileKey/nodeIds.",
|
|
219
|
+
execution: "bridge-orchestration",
|
|
220
|
+
pluginCommandTypes: ["get_selection_summary", "export_as_svg"],
|
|
221
|
+
returnsLargeData: true,
|
|
222
|
+
aliases: ["render node image", "screenshot figma node", "export screenshot", "сделай скриншот ноды"],
|
|
223
|
+
naturalLanguageIntents: [
|
|
224
|
+
"Render one or more active-file nodes as inline SVG through Remote Connect.",
|
|
225
|
+
"Return Figma REST image URLs for known fileKey/nodeIds without requiring the plugin session.",
|
|
226
|
+
],
|
|
227
|
+
preferredAfter: ["get_selection_summary", "figma_rest_diagnose"],
|
|
228
|
+
preferredBefore: ["get_design_context", "export_as_svg"],
|
|
229
|
+
},
|
|
104
230
|
{ name: "notify", category: "canvas", summary: "Figma toast notification." },
|
|
105
231
|
{ name: "create_frame", category: "canvas", summary: "Create a frame.", requiresDesignMode: true },
|
|
106
232
|
{ name: "create_rectangle", category: "canvas", summary: "Create a rectangle.", requiresDesignMode: true },
|
|
@@ -139,12 +265,191 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
139
265
|
{ name: "flatten_nodes", category: "canvas", summary: "Flatten nodes.", requiresDesignMode: true },
|
|
140
266
|
{ name: "apply_documentation_payload", category: "canvas", summary: "Apply SXL documentation payload.", requiresDesignMode: true },
|
|
141
267
|
]);
|
|
268
|
+
category("figma-rest", [
|
|
269
|
+
{
|
|
270
|
+
name: "figma_rest_diagnose",
|
|
271
|
+
category: "figma-rest",
|
|
272
|
+
summary: "Figma REST companion preflight: token, auth mode, endpoint, scope, plan, and permission diagnostics without exposing secrets.",
|
|
273
|
+
execution: "bridge-local",
|
|
274
|
+
aliases: ["figma rest doctor", "rest preflight", "diagnose figma token", "проверить figma token"],
|
|
275
|
+
naturalLanguageIntents: ["Check whether Bridge can use Figma REST for whoami, file/team libraries, images, nodes, or variables before a workflow."],
|
|
276
|
+
preferredBefore: ["figma_rest_whoami", "figma_rest_search_design_system", "figma_rest_get_file_nodes"],
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
name: "figma_rest_whoami",
|
|
280
|
+
category: "figma-rest",
|
|
281
|
+
summary: "Figma REST companion: authenticated user for configured token.",
|
|
282
|
+
execution: "bridge-local",
|
|
283
|
+
aliases: ["whoami", "figma me", "authenticated figma user"],
|
|
284
|
+
naturalLanguageIntents: ["Check which Figma REST user/token Bridge is using."],
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
name: "figma_rest_get_file_metadata",
|
|
288
|
+
category: "figma-rest",
|
|
289
|
+
summary: "Figma REST companion: file metadata from /v1/files/:key/meta.",
|
|
290
|
+
execution: "bridge-local",
|
|
291
|
+
returnsLargeData: true,
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
name: "figma_rest_get_file",
|
|
295
|
+
category: "figma-rest",
|
|
296
|
+
summary: "Figma REST companion: file JSON from /v1/files/:key; prefer depth/ids.",
|
|
297
|
+
execution: "bridge-local",
|
|
298
|
+
returnsLargeData: true,
|
|
299
|
+
aliases: ["rest get file", "figma file json"],
|
|
300
|
+
naturalLanguageIntents: ["Read a Figma file through REST when the plugin is not open or cross-file context is needed."],
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
name: "figma_rest_get_file_nodes",
|
|
304
|
+
category: "figma-rest",
|
|
305
|
+
summary: "Figma REST companion: specific nodes from /v1/files/:key/nodes.",
|
|
306
|
+
execution: "bridge-local",
|
|
307
|
+
returnsLargeData: true,
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
name: "figma_rest_get_images",
|
|
311
|
+
category: "figma-rest",
|
|
312
|
+
summary: "Figma REST companion: render node image URLs from /v1/images/:key.",
|
|
313
|
+
execution: "bridge-local",
|
|
314
|
+
returnsLargeData: true,
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
name: "figma_rest_get_image_fills",
|
|
318
|
+
category: "figma-rest",
|
|
319
|
+
summary: "Figma REST companion: image fill download URLs from /v1/files/:key/images.",
|
|
320
|
+
execution: "bridge-local",
|
|
321
|
+
returnsLargeData: true,
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: "figma_rest_get_file_components",
|
|
325
|
+
category: "figma-rest",
|
|
326
|
+
summary: "Figma REST companion: published components in a file library.",
|
|
327
|
+
execution: "bridge-local",
|
|
328
|
+
returnsLargeData: true,
|
|
329
|
+
aliases: ["file library components"],
|
|
330
|
+
naturalLanguageIntents: ["List published components from a known Figma library file."],
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
name: "figma_rest_get_file_component_sets",
|
|
334
|
+
category: "figma-rest",
|
|
335
|
+
summary: "Figma REST companion: published component sets in a file library.",
|
|
336
|
+
execution: "bridge-local",
|
|
337
|
+
returnsLargeData: true,
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
name: "figma_rest_get_file_styles",
|
|
341
|
+
category: "figma-rest",
|
|
342
|
+
summary: "Figma REST companion: published styles in a file library.",
|
|
343
|
+
execution: "bridge-local",
|
|
344
|
+
returnsLargeData: true,
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
name: "figma_rest_get_team_components",
|
|
348
|
+
category: "figma-rest",
|
|
349
|
+
summary: "Figma REST companion: published components in a team library.",
|
|
350
|
+
execution: "bridge-local",
|
|
351
|
+
returnsLargeData: true,
|
|
352
|
+
aliases: ["team library components"],
|
|
353
|
+
naturalLanguageIntents: ["List published components from a known Figma team library."],
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
name: "figma_rest_get_team_component_sets",
|
|
357
|
+
category: "figma-rest",
|
|
358
|
+
summary: "Figma REST companion: published component sets in a team library.",
|
|
359
|
+
execution: "bridge-local",
|
|
360
|
+
returnsLargeData: true,
|
|
361
|
+
aliases: ["team library component sets"],
|
|
362
|
+
naturalLanguageIntents: ["List published component sets from a known Figma team library."],
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
name: "figma_rest_get_team_styles",
|
|
366
|
+
category: "figma-rest",
|
|
367
|
+
summary: "Figma REST companion: published styles in a team library.",
|
|
368
|
+
execution: "bridge-local",
|
|
369
|
+
returnsLargeData: true,
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
name: "figma_rest_get_variables_local",
|
|
373
|
+
category: "figma-rest",
|
|
374
|
+
summary: "Figma REST companion: local and remote variables used in a file.",
|
|
375
|
+
execution: "bridge-local",
|
|
376
|
+
returnsLargeData: true,
|
|
377
|
+
aliases: ["rest variables local"],
|
|
378
|
+
naturalLanguageIntents: ["Fetch Figma variables through REST for cross-file or no-plugin workflows."],
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
name: "figma_rest_get_variables_published",
|
|
382
|
+
category: "figma-rest",
|
|
383
|
+
summary: "Figma REST companion: variables published from a file.",
|
|
384
|
+
execution: "bridge-local",
|
|
385
|
+
returnsLargeData: true,
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
name: "figma_rest_search_design_system",
|
|
389
|
+
category: "figma-rest",
|
|
390
|
+
summary: "Figma REST companion: search known file/team library components, styles, and variables.",
|
|
391
|
+
execution: "bridge-local",
|
|
392
|
+
returnsLargeData: true,
|
|
393
|
+
aliases: ["rest search design system", "search known figma library"],
|
|
394
|
+
naturalLanguageIntents: ["Search a known file/team Figma library when official MCP search_design_system is not available."],
|
|
395
|
+
preferredBefore: ["inspect_design_system", "find_components"],
|
|
396
|
+
},
|
|
397
|
+
]);
|
|
142
398
|
category("data", [
|
|
143
|
-
{ name: "
|
|
144
|
-
{ name: "
|
|
399
|
+
{ name: "list_datasets", category: "data", summary: "List SXL datasets.", returnsLargeData: true },
|
|
400
|
+
{ name: "get_dataset", category: "data", summary: "Get one SXL dataset.", returnsLargeData: true },
|
|
401
|
+
{ name: "save_dataset", category: "data", summary: "Create/update one SXL dataset.", requiresDesignMode: true, dryRunSupported: true },
|
|
402
|
+
{ name: "delete_dataset", category: "data", summary: "Delete one SXL dataset.", requiresDesignMode: true, dryRunSupported: true },
|
|
403
|
+
{ name: "list_assets", category: "data", summary: "List SXL local assets.", returnsLargeData: true },
|
|
404
|
+
{ name: "get_asset", category: "data", summary: "Get one SXL asset; optional content.", returnsLargeData: true },
|
|
405
|
+
{ name: "save_asset", category: "data", summary: "Create/update one SXL asset.", requiresDesignMode: true, dryRunSupported: true },
|
|
406
|
+
{ name: "delete_asset", category: "data", summary: "Delete one SXL asset.", requiresDesignMode: true, dryRunSupported: true },
|
|
407
|
+
{ name: "list_mappings", category: "data", summary: "List SXL mappings.", returnsLargeData: true },
|
|
408
|
+
{ name: "get_mapping", category: "data", summary: "Get one SXL mapping.", returnsLargeData: true },
|
|
409
|
+
{ name: "save_mapping", category: "data", summary: "Create/update one SXL mapping.", requiresDesignMode: true, dryRunSupported: true },
|
|
410
|
+
{ name: "delete_mapping", category: "data", summary: "Delete one SXL mapping.", requiresDesignMode: true, dryRunSupported: true },
|
|
411
|
+
{
|
|
412
|
+
name: "export_database_payload",
|
|
413
|
+
category: "data",
|
|
414
|
+
summary: "Bridge orchestration: export portable SXL datasets/assets/mappings payload via existing CRUD commands.",
|
|
415
|
+
execution: "bridge-orchestration",
|
|
416
|
+
pluginCommandTypes: ["list_datasets", "get_dataset", "list_assets", "get_asset", "list_mappings", "get_mapping"],
|
|
417
|
+
returnsLargeData: true,
|
|
418
|
+
aliases: ["backup database", "export data payload", "выгрузи базу данных"],
|
|
419
|
+
naturalLanguageIntents: ["Back up or transfer SXL Studio database datasets, assets, and mappings from the open file."],
|
|
420
|
+
preferredBefore: ["import_database_payload"],
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
name: "import_database_payload",
|
|
424
|
+
category: "data",
|
|
425
|
+
summary: "Bridge orchestration: dry-run-first import/upsert of portable SXL database payloads.",
|
|
426
|
+
execution: "bridge-orchestration",
|
|
427
|
+
pluginCommandTypes: ["list_datasets", "list_assets", "list_mappings", "save_dataset", "save_asset", "save_mapping"],
|
|
428
|
+
requiresDesignMode: true,
|
|
429
|
+
dryRunSupported: true,
|
|
430
|
+
returnsLargeData: true,
|
|
431
|
+
aliases: ["restore database", "import data payload", "загрузи базу данных"],
|
|
432
|
+
naturalLanguageIntents: ["Restore, clone, or move SXL Studio datasets, local assets, and mappings into the open file."],
|
|
433
|
+
preferredBefore: ["list_datasets", "list_assets", "list_mappings"],
|
|
434
|
+
preferredAfter: ["export_database_payload"],
|
|
435
|
+
},
|
|
436
|
+
{ name: "apply_mapping", category: "data", summary: "Apply a mapping to explicit targetNodeIds or the current Figma selection. Dry-run preview supported.", requiresDesignMode: true, dryRunSupported: true, preferredBefore: ["get_mapping", "count_apply_targets"] },
|
|
437
|
+
{ name: "apply_all_mappings", category: "data", summary: "Apply all mappings within a scope or explicit targetNodeIds. Dry-run preview supported.", requiresDesignMode: true, dryRunSupported: true, preferredBefore: ["list_mappings", "count_apply_targets"] },
|
|
145
438
|
{ name: "count_apply_targets", category: "data", summary: "Count mapping targets." },
|
|
146
|
-
{ name: "generate_instances", category: "data", summary: "Generate instances from mapping.", requiresDesignMode: true },
|
|
439
|
+
{ name: "generate_instances", category: "data", summary: "Generate instances from mapping into explicit targetNodeIds or the current selection. Dry-run preview supported.", requiresDesignMode: true, dryRunSupported: true, preferredBefore: ["get_mapping", "get_dataset"] },
|
|
147
440
|
{ name: "apply_image", category: "data", summary: "Apply an image asset.", requiresDesignMode: true },
|
|
441
|
+
{
|
|
442
|
+
name: "upload_assets",
|
|
443
|
+
category: "data",
|
|
444
|
+
summary: "Bridge asset uploader: validate/fetch PNG, JPG/JPEG, GIF, or WebP assets up to 10MB and apply them as image fills via set_image_fill. Dry-run preview supported.",
|
|
445
|
+
execution: "bridge-orchestration",
|
|
446
|
+
pluginCommandTypes: ["set_image_fill"],
|
|
447
|
+
requiresDesignMode: true,
|
|
448
|
+
dryRunSupported: true,
|
|
449
|
+
aliases: ["upload images", "insert images", "asset upload", "загрузи изображения"],
|
|
450
|
+
naturalLanguageIntents: ["Upload image assets from URLs/base64 into the current Figma Design file as fills or new image rectangles."],
|
|
451
|
+
preferredBefore: ["get_bridge_runtime_summary"],
|
|
452
|
+
},
|
|
148
453
|
{ name: "rebind_instance", category: "data", summary: "Rebind an instance to a new main.", requiresDesignMode: true },
|
|
149
454
|
{ name: "codeconnect_get_binding", category: "data", summary: "Get Code Connect binding for node." },
|
|
150
455
|
{ name: "codeconnect_save_binding", category: "data", summary: "Save Code Connect binding." },
|
|
@@ -153,6 +458,174 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
153
458
|
{ name: "codeconnect_get_global_settings", category: "data", summary: "Global Code Connect settings." },
|
|
154
459
|
{ name: "codeconnect_save_global_settings", category: "data", summary: "Save global Code Connect settings." },
|
|
155
460
|
{ name: "codeconnect_get_node_ui_status", category: "data", summary: "Code Connect node UI status." },
|
|
461
|
+
{
|
|
462
|
+
name: "get_context_for_code_connect",
|
|
463
|
+
category: "data",
|
|
464
|
+
summary: "Bridge Code Connect context orchestration: selection status, existing SXL bindings, registry/settings, codegen/composition context, component discovery, and local source suggestions for template/binding generation.",
|
|
465
|
+
execution: "bridge-orchestration",
|
|
466
|
+
pluginCommandTypes: [
|
|
467
|
+
"get_selection_summary",
|
|
468
|
+
"codeconnect_get_global_settings",
|
|
469
|
+
"codeconnect_get_registry",
|
|
470
|
+
"codeconnect_get_selection_status",
|
|
471
|
+
"get_node_tree",
|
|
472
|
+
"get_codegen",
|
|
473
|
+
"export_composition_json",
|
|
474
|
+
"codeconnect_get_binding",
|
|
475
|
+
"codeconnect_get_node_ui_status",
|
|
476
|
+
"find_components",
|
|
477
|
+
],
|
|
478
|
+
returnsLargeData: true,
|
|
479
|
+
aliases: [
|
|
480
|
+
"code connect context",
|
|
481
|
+
"context for code connect",
|
|
482
|
+
"контекст code connect",
|
|
483
|
+
"собери контекст для code connect",
|
|
484
|
+
],
|
|
485
|
+
naturalLanguageIntents: [
|
|
486
|
+
"Collect active-file component context and local code candidates before creating a Code Connect template or binding.",
|
|
487
|
+
"Prepare registry, existing binding, component props, codegen, and source-file suggestions for Code Connect mapping.",
|
|
488
|
+
],
|
|
489
|
+
preferredBefore: ["codeconnect_save_binding"],
|
|
490
|
+
preferredAfter: ["codeconnect_get_global_settings", "codeconnect_get_registry", "get_selection_summary", "get_design_context"],
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
name: "get_code_connect_suggestions",
|
|
494
|
+
category: "data",
|
|
495
|
+
summary: "Bridge-local Code Connect suggestion engine: scan local code and rank full CodeConnectBinding candidates for selected Figma nodes before saving.",
|
|
496
|
+
execution: "bridge-orchestration",
|
|
497
|
+
pluginCommandTypes: ["get_selection_summary"],
|
|
498
|
+
returnsLargeData: true,
|
|
499
|
+
aliases: [
|
|
500
|
+
"code connect suggestions",
|
|
501
|
+
"suggest code binding",
|
|
502
|
+
"найди code connect binding",
|
|
503
|
+
"предложи связь компонента с кодом",
|
|
504
|
+
],
|
|
505
|
+
naturalLanguageIntents: [
|
|
506
|
+
"Suggest Code Connect bindings from selected Figma component names and local source files.",
|
|
507
|
+
"Find likely source files for Figma components before calling codeconnect_save_binding.",
|
|
508
|
+
],
|
|
509
|
+
preferredBefore: ["codeconnect_save_binding"],
|
|
510
|
+
preferredAfter: ["codeconnect_get_global_settings", "codeconnect_get_registry", "get_selection_summary"],
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
name: "generate_code_connect_template",
|
|
514
|
+
category: "data",
|
|
515
|
+
summary: "Bridge-local .figma.ts Code Connect template generator from a full SXL CodeConnectBinding or local suggestions. Dry-run preview by default; writes only with writeFile=true.",
|
|
516
|
+
execution: "bridge-orchestration",
|
|
517
|
+
pluginCommandTypes: ["get_selection_summary"],
|
|
518
|
+
dryRunSupported: true,
|
|
519
|
+
aliases: [
|
|
520
|
+
"generate code connect template",
|
|
521
|
+
"create figma ts template",
|
|
522
|
+
"создай code connect template",
|
|
523
|
+
"сгенерируй figma.ts",
|
|
524
|
+
],
|
|
525
|
+
naturalLanguageIntents: [
|
|
526
|
+
"Generate a reviewable .figma.ts Code Connect template from selected Figma component context and local source files.",
|
|
527
|
+
"Create a Code Connect template file after reviewing get_context_for_code_connect suggestions.",
|
|
528
|
+
],
|
|
529
|
+
preferredBefore: ["codeconnect_save_binding"],
|
|
530
|
+
preferredAfter: ["get_context_for_code_connect", "get_code_connect_suggestions", "codeconnect_get_registry"],
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
name: "inspect_enabled_libraries",
|
|
534
|
+
category: "data",
|
|
535
|
+
summary: "READ-ONLY: inspect team libraries already enabled for the current Figma file (variable collections and runtime-optional component/style descriptors).",
|
|
536
|
+
pluginCommandTypes: ["inspect_enabled_libraries"],
|
|
537
|
+
returnsLargeData: true,
|
|
538
|
+
aliases: [
|
|
539
|
+
"enabled libraries",
|
|
540
|
+
"available libraries",
|
|
541
|
+
"team library catalog",
|
|
542
|
+
"покажи подключенные библиотеки",
|
|
543
|
+
],
|
|
544
|
+
naturalLanguageIntents: [
|
|
545
|
+
"List libraries already enabled in the active Figma file before searching known file/team REST sources or official MCP libraries.",
|
|
546
|
+
"Discover enabled library variable collections, styles, and components available to the plugin runtime.",
|
|
547
|
+
],
|
|
548
|
+
preferredBefore: ["list_enabled_library_variables", "inspect_design_system", "figma_rest_search_design_system"],
|
|
549
|
+
preferredAfter: ["get_plugin_status"],
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
name: "list_enabled_library_variables",
|
|
553
|
+
category: "data",
|
|
554
|
+
summary: "READ-ONLY: list variables from enabled team-library variable collections; requires an explicit collection/library filter or includeAllCollections=true.",
|
|
555
|
+
pluginCommandTypes: ["list_enabled_library_variables"],
|
|
556
|
+
returnsLargeData: true,
|
|
557
|
+
aliases: [
|
|
558
|
+
"enabled library variables",
|
|
559
|
+
"team library variables",
|
|
560
|
+
"variables in connected libraries",
|
|
561
|
+
"переменные подключенной библиотеки",
|
|
562
|
+
],
|
|
563
|
+
naturalLanguageIntents: [
|
|
564
|
+
"Read variable definitions from a team-library collection already enabled for the current file.",
|
|
565
|
+
"Inspect library variables by collection key, collection name, library name, or explicit include-all scan.",
|
|
566
|
+
],
|
|
567
|
+
preferredAfter: ["inspect_enabled_libraries"],
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
name: "search_enabled_library_assets",
|
|
571
|
+
category: "data",
|
|
572
|
+
summary: "Bridge orchestration: search components, styles, variable collections, and variables in libraries already enabled for the current Figma file.",
|
|
573
|
+
execution: "bridge-orchestration",
|
|
574
|
+
pluginCommandTypes: ["inspect_enabled_libraries", "list_enabled_library_variables"],
|
|
575
|
+
returnsLargeData: true,
|
|
576
|
+
aliases: [
|
|
577
|
+
"search enabled libraries",
|
|
578
|
+
"search active file libraries",
|
|
579
|
+
"find library assets",
|
|
580
|
+
"найди в подключенных библиотеках",
|
|
581
|
+
],
|
|
582
|
+
naturalLanguageIntents: [
|
|
583
|
+
"Search components, styles, variables, and variable collections in libraries already enabled in the open Figma file.",
|
|
584
|
+
"Find design-system assets available to the plugin before falling back to known REST libraries or official Figma MCP arbitrary library search.",
|
|
585
|
+
],
|
|
586
|
+
preferredBefore: ["figma_rest_search_design_system", "inspect_design_system", "build_screen"],
|
|
587
|
+
preferredAfter: ["get_plugin_status"],
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
name: "get_libraries",
|
|
591
|
+
category: "data",
|
|
592
|
+
summary: "Figma MCP-compatible library discovery: active-file enabled libraries through Remote Connect plus known file/team libraries through Figma REST.",
|
|
593
|
+
execution: "bridge-orchestration",
|
|
594
|
+
pluginCommandTypes: ["inspect_enabled_libraries", "list_enabled_library_variables"],
|
|
595
|
+
returnsLargeData: true,
|
|
596
|
+
aliases: [
|
|
597
|
+
"figma mcp get_libraries",
|
|
598
|
+
"available design libraries",
|
|
599
|
+
"подключенные библиотеки figma",
|
|
600
|
+
"библиотеки дизайн системы",
|
|
601
|
+
],
|
|
602
|
+
naturalLanguageIntents: [
|
|
603
|
+
"List libraries available to Bridge before building a screen from design-system assets.",
|
|
604
|
+
"Use the Figma MCP-compatible get_libraries flow without a separate official MCP server.",
|
|
605
|
+
],
|
|
606
|
+
preferredBefore: ["search_design_system", "inspect_design_system", "build_screen"],
|
|
607
|
+
preferredAfter: ["get_plugin_status", "figma_rest_diagnose"],
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
name: "search_design_system",
|
|
611
|
+
category: "data",
|
|
612
|
+
summary: "Figma MCP-compatible design-system search across active-file components, enabled libraries, and known file/team REST libraries.",
|
|
613
|
+
execution: "bridge-orchestration",
|
|
614
|
+
pluginCommandTypes: ["find_components", "inspect_enabled_libraries", "list_enabled_library_variables"],
|
|
615
|
+
returnsLargeData: true,
|
|
616
|
+
aliases: [
|
|
617
|
+
"figma mcp search_design_system",
|
|
618
|
+
"search design system",
|
|
619
|
+
"найди в дизайн системе",
|
|
620
|
+
"поиск компонентов и токенов",
|
|
621
|
+
],
|
|
622
|
+
naturalLanguageIntents: [
|
|
623
|
+
"Search for reusable components, component sets, styles, variables, and variable collections before creating new Figma layers.",
|
|
624
|
+
"Use the Figma MCP-compatible search_design_system flow with Bridge/SXL sources.",
|
|
625
|
+
],
|
|
626
|
+
preferredBefore: ["build_screen", "create_component_instance", "import_variable_spec", "import_style_spec"],
|
|
627
|
+
preferredAfter: ["get_libraries", "inspect_design_system", "figma_rest_diagnose"],
|
|
628
|
+
},
|
|
156
629
|
]);
|
|
157
630
|
category("git", [
|
|
158
631
|
{ name: "git_pull", category: "git", summary: "Pull from active Git connection." },
|
|
@@ -160,50 +633,212 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
160
633
|
{ name: "git_push", category: "git", summary: "Push to active Git connection." },
|
|
161
634
|
]);
|
|
162
635
|
category("variables-orchestration", [
|
|
163
|
-
{ name: "import_variable_spec", category: "variables-orchestration", summary: "Idempotent bulk-create / update of Variables from a declarative spec (collections + modes + variables + aliases).", requiresDesignMode: true },
|
|
636
|
+
{ name: "import_variable_spec", category: "variables-orchestration", summary: "Idempotent bulk-create / update of Variables from a declarative spec (collections + modes + variables + aliases).", requiresDesignMode: true, dryRunSupported: true },
|
|
164
637
|
{ name: "analyze_variable_order", category: "variables-orchestration", summary: "READ-ONLY: recommend a new order for variables in a collection (alphabetical / byPath / explicit)." },
|
|
165
638
|
{ name: "dedupe_variables", category: "variables-orchestration", summary: "Find / merge duplicate Variables (byName | byDefaultModeValue). Dry-run by default; canvas write only when apply: true.", requiresDesignMode: true },
|
|
166
|
-
{ name: "rebind_variable_aliases", category: "variables-orchestration", summary: "Bulk rewrite alias targets across modes ({ fromVariableId, toVariableId }[]).", requiresDesignMode: true },
|
|
167
|
-
{ name: "apply_coverage_suggestions", category: "variables-orchestration", summary: "Apply audit_variable_coverage suggestions as setBoundVariableFor* writes. Dry-run by default.", requiresDesignMode: true },
|
|
639
|
+
{ name: "rebind_variable_aliases", category: "variables-orchestration", summary: "Bulk rewrite alias targets across modes ({ fromVariableId, toVariableId }[]).", requiresDesignMode: true, dryRunSupported: true },
|
|
640
|
+
{ name: "apply_coverage_suggestions", category: "variables-orchestration", summary: "Apply audit_variable_coverage suggestions as setBoundVariableFor* writes. Dry-run by default.", requiresDesignMode: true, dryRunSupported: true },
|
|
168
641
|
]);
|
|
169
642
|
category("styles-orchestration", [
|
|
170
|
-
{ name: "import_style_spec", category: "styles-orchestration", summary: "Idempotent bulk-create / update of local Paint / Text / Effect styles from a declarative spec. Dry-run preview supported.", requiresDesignMode: true },
|
|
643
|
+
{ name: "import_style_spec", category: "styles-orchestration", summary: "Idempotent bulk-create / update of local Paint / Text / Effect styles from a declarative spec. Dry-run preview supported.", requiresDesignMode: true, dryRunSupported: true },
|
|
171
644
|
{ name: "dedupe_styles", category: "styles-orchestration", summary: "Find / merge duplicate styles (byName | bySignature). Dry-run by default; canvas write only when apply: true.", requiresDesignMode: true },
|
|
172
|
-
{ name: "rebind_style_consumers", category: "styles-orchestration", summary: "Bulk rewrite styleId on every consumer node ({ fromStyleId, toStyleId }[]). Dry-run aware.", requiresDesignMode: true },
|
|
645
|
+
{ name: "rebind_style_consumers", category: "styles-orchestration", summary: "Bulk rewrite styleId on every consumer node ({ fromStyleId, toStyleId }[]). Dry-run aware.", requiresDesignMode: true, dryRunSupported: true },
|
|
173
646
|
{ name: "audit_style_drift", category: "styles-orchestration", summary: "READ-ONLY: detect drift between local Paint styles and same-named Variables / explicit expectations." },
|
|
174
|
-
{ name: "apply_style_coverage_suggestions", category: "styles-orchestration", summary: "Apply audit_style_coverage suggestions as setStyleId writes. Dry-run by default.", requiresDesignMode: true },
|
|
647
|
+
{ name: "apply_style_coverage_suggestions", category: "styles-orchestration", summary: "Apply audit_style_coverage suggestions as setStyleId writes. Dry-run by default.", requiresDesignMode: true, dryRunSupported: true },
|
|
175
648
|
]);
|
|
176
649
|
category("mockup", [
|
|
177
|
-
{
|
|
178
|
-
|
|
179
|
-
|
|
650
|
+
{
|
|
651
|
+
name: "inspect_design_system",
|
|
652
|
+
category: "mockup",
|
|
653
|
+
summary: "READ-ONLY: aggregate components, variables, styles, token config, and composition index for design agents.",
|
|
654
|
+
execution: "bridge-orchestration",
|
|
655
|
+
pluginCommandTypes: ["find_components", "get_variables", "get_local_styles", "get_tokens_config", "list_compositions"],
|
|
656
|
+
returnsLargeData: true,
|
|
657
|
+
preferredBefore: ["build_screen", "build_mockup"],
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
name: "validate_screen_spec",
|
|
661
|
+
category: "mockup",
|
|
662
|
+
summary: "READ-ONLY: validate Design DSL v1 screen spec before writing to Figma.",
|
|
663
|
+
execution: "bridge-local",
|
|
664
|
+
dryRunSupported: true,
|
|
665
|
+
preferredBefore: ["build_screen", "update_screen"],
|
|
666
|
+
},
|
|
667
|
+
{ name: "build_screen", category: "mockup", summary: "Build a screen using Design DSL v1; Bridge wrapper over build_mockup with agent-friendly naming.", commandType: "build_mockup", requiresDesignMode: true, dryRunSupported: true, preferredBefore: ["inspect_design_system", "validate_screen_spec"] },
|
|
668
|
+
{ name: "update_screen", category: "mockup", summary: "Update an existing screen/frame using Design DSL v1 without recreating the whole file.", requiresDesignMode: true, dryRunSupported: true, preferredBefore: ["inspect_design_system", "validate_screen_spec"] },
|
|
669
|
+
{ name: "find_components", category: "mockup", summary: "READ-ONLY: paginated catalogue of local + (opt) library components used in this file (id, key, name, parent set, defaultVariantId, propertyDefinitions).", returnsLargeData: true },
|
|
670
|
+
{ name: "build_mockup", category: "mockup", summary: "Assemble an auto-layout mockup from a declarative item tree (instance + section + spacer + text). Supports property / text / fill-binding overrides. Dry-run preview supported.", requiresDesignMode: true, dryRunSupported: true },
|
|
671
|
+
{ name: "apply_mockup_dataset", category: "mockup", summary: "Clone a template scene node once per dataset row and apply row-specific overrides (properties, text, fill bindings). Dry-run preview supported.", requiresDesignMode: true, dryRunSupported: true },
|
|
180
672
|
]);
|
|
181
673
|
category("compositions-orchestration", [
|
|
182
|
-
{ name: "bulk_generate_compositions", category: "compositions-orchestration", summary: "Bulk generate / apply many composition files in one call. Filters by fileIds | names | prefix; per-item error isolation; dry-run preview supported.", requiresDesignMode: true, requiresComposition: true },
|
|
674
|
+
{ name: "bulk_generate_compositions", category: "compositions-orchestration", summary: "Bulk generate / apply many composition files in one call. Filters by fileIds | names | prefix; per-item error isolation; dry-run preview supported.", requiresDesignMode: true, requiresComposition: true, dryRunSupported: true },
|
|
183
675
|
{ name: "audit_composition_drift", category: "compositions-orchestration", summary: "READ-ONLY drift detector between composition files and the Figma components they tracked (linked | unlinked | drift | missing).", requiresComposition: true },
|
|
184
676
|
]);
|
|
185
677
|
category("audit", [
|
|
186
678
|
{ name: "analyze_variable_usage", category: "audit", summary: "Summarise where a variable is used (counts, byProperty, aliasChain). Read-only." },
|
|
187
|
-
{ name: "find_variable_usages", category: "audit", summary: "Paginated detail list of nodes using a variable." },
|
|
679
|
+
{ name: "find_variable_usages", category: "audit", summary: "Paginated detail list of nodes using a variable.", returnsLargeData: true },
|
|
188
680
|
{ name: "render_variable_usage_page", category: "audit", summary: "Clone every usage of a variable into a fresh page.", requiresDesignMode: true },
|
|
189
681
|
{ name: "audit_variable_coverage", category: "audit", summary: "Find raw values that should be variables (summary + topOffenders)." },
|
|
190
|
-
{ name: "find_variable_coverage_misses", category: "audit", summary: "Paginated detail for audit_variable_coverage." },
|
|
682
|
+
{ name: "find_variable_coverage_misses", category: "audit", summary: "Paginated detail for audit_variable_coverage.", returnsLargeData: true },
|
|
191
683
|
{ name: "audit_style_coverage", category: "audit", summary: "Find raw values that should be styles (summary)." },
|
|
192
|
-
{ name: "find_style_coverage_misses", category: "audit", summary: "Paginated detail for audit_style_coverage." },
|
|
193
|
-
{ name: "find_unused_variables", category: "audit", summary: "List local variables that nothing references." },
|
|
194
|
-
{ name: "find_unused_styles", category: "audit", summary: "List local Paint / Text / Effect styles that nothing references." },
|
|
684
|
+
{ name: "find_style_coverage_misses", category: "audit", summary: "Paginated detail for audit_style_coverage.", returnsLargeData: true },
|
|
685
|
+
{ name: "find_unused_variables", category: "audit", summary: "List local variables that nothing references.", returnsLargeData: true },
|
|
686
|
+
{ name: "find_unused_styles", category: "audit", summary: "List local Paint / Text / Effect styles that nothing references.", returnsLargeData: true },
|
|
687
|
+
{ name: "analyze_component_usage", category: "audit", summary: "Summarise local/remote component instance usage by component selector.", returnsLargeData: false },
|
|
688
|
+
{ name: "find_component_usages", category: "audit", summary: "Paginated list of component instances matching a component selector.", returnsLargeData: true },
|
|
689
|
+
{ name: "analyze_component_prop_usage", category: "audit", summary: "Summarise instance component property usage by property/value filters.", returnsLargeData: false },
|
|
690
|
+
{ name: "find_component_prop_usages", category: "audit", summary: "Paginated component property usage records.", returnsLargeData: true },
|
|
195
691
|
]);
|
|
196
692
|
category("orchestration", [
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
{
|
|
205
|
-
|
|
206
|
-
|
|
693
|
+
{
|
|
694
|
+
name: "index_icons_for_export",
|
|
695
|
+
category: "orchestration",
|
|
696
|
+
summary: "Read-only icon index: COMPONENT + COMPONENT_SET variants with page/section metadata for export pipelines.",
|
|
697
|
+
execution: "bridge-orchestration",
|
|
698
|
+
pluginCommandTypes: ["get_pages", "get_node_tree"],
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
name: "generate_code_from_url",
|
|
702
|
+
category: "orchestration",
|
|
703
|
+
summary: "Parse Figma URL → run get_codegen on target node.",
|
|
704
|
+
commandType: "get_codegen",
|
|
705
|
+
execution: "bridge-orchestration",
|
|
706
|
+
requiresComposition: true,
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
name: "compose_from_url",
|
|
710
|
+
category: "orchestration",
|
|
711
|
+
summary: "Parse Figma URL → export_composition_json → save as composition file → optional generate.",
|
|
712
|
+
execution: "bridge-orchestration",
|
|
713
|
+
pluginCommandTypes: ["export_composition_json", "create_token_file", "generate_composition"],
|
|
714
|
+
requiresComposition: true,
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
name: "document_component",
|
|
718
|
+
category: "orchestration",
|
|
719
|
+
summary: "Generate SXL documentation payload for a component and apply it.",
|
|
720
|
+
execution: "bridge-orchestration",
|
|
721
|
+
pluginCommandTypes: ["get_codegen", "apply_documentation_payload"],
|
|
722
|
+
requiresDesignMode: true,
|
|
723
|
+
requiresComposition: true,
|
|
724
|
+
},
|
|
725
|
+
{ name: "build_token_documentation", category: "orchestration", summary: "Doc Spec v1: resolve token paths and fill doc template TEXT by layer name.", commandType: "apply_token_doc_spec", requiresDesignMode: true, dryRunSupported: true },
|
|
726
|
+
{ name: "apply_doc_spec", category: "orchestration", summary: "Doc Spec v2 (canonical): apply a list of documentation sections to a Figma frame.", requiresDesignMode: true, dryRunSupported: true },
|
|
727
|
+
{ name: "bind_variable_palette", category: "orchestration", summary: "Doc Builder: render Figma variable collection as cards by cloning a swatch template.", requiresDesignMode: true, dryRunSupported: true },
|
|
728
|
+
{ name: "build_component_doc", category: "orchestration", summary: "Doc Builder: title + variants matrix + props table for a component / component set.", requiresDesignMode: true, dryRunSupported: true },
|
|
729
|
+
{ name: "build_doc_flow", category: "orchestration", summary: "Doc Builder: render multi-page flow / scenario in an auto-layout container.", requiresDesignMode: true, dryRunSupported: true },
|
|
730
|
+
{
|
|
731
|
+
name: "build_scenario_from_md",
|
|
732
|
+
category: "orchestration",
|
|
733
|
+
summary: "Parse markdown scenario into build_doc_flow pages. Dry-run preview supported.",
|
|
734
|
+
execution: "bridge-orchestration",
|
|
735
|
+
pluginCommandTypes: ["build_doc_flow"],
|
|
736
|
+
requiresDesignMode: true,
|
|
737
|
+
dryRunSupported: true,
|
|
738
|
+
},
|
|
739
|
+
{ name: "get_capability_matrix", category: "orchestration", summary: "Machine-readable Bridge capability matrix: catalogue metadata + command type + timeout.", execution: "bridge-local" },
|
|
740
|
+
{
|
|
741
|
+
name: "get_contract_audit",
|
|
742
|
+
category: "orchestration",
|
|
743
|
+
summary: "Bridge-local release contract audit: catalogue mapping, meta tools, recipes, schema entrypoints, workflow gates, and findings.",
|
|
744
|
+
execution: "bridge-local",
|
|
745
|
+
aliases: ["contract audit", "release audit", "проверка контрактов"],
|
|
746
|
+
naturalLanguageIntents: ["Verify Bridge contract health before release or before connecting an agent."],
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
name: "get_figma_mcp_parity",
|
|
750
|
+
category: "orchestration",
|
|
751
|
+
summary: "Bridge-local parity map: official Figma MCP tools → Bridge/SXL equivalents, companion requirements, future/unsupported scope.",
|
|
752
|
+
execution: "bridge-local",
|
|
753
|
+
aliases: ["figma mcp parity", "mcp coverage", "паритет figma mcp"],
|
|
754
|
+
naturalLanguageIntents: ["Decide whether to use SXL Bridge or official Figma MCP for a requested Figma workflow."],
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
name: "get_figma_mcp_skills_parity",
|
|
758
|
+
category: "orchestration",
|
|
759
|
+
summary: "Bridge-local parity map: official Figma MCP skills → SXL Bridge recipes/resources, companion requirements, and agent-side implementation boundaries.",
|
|
760
|
+
execution: "bridge-local",
|
|
761
|
+
aliases: ["figma skills parity", "mcp skills coverage", "паритет figma skills"],
|
|
762
|
+
naturalLanguageIntents: ["Decide how an official Figma MCP skill maps to SXL Bridge recipes, resources, tools, or companion scope."],
|
|
763
|
+
preferredAfter: ["get_figma_mcp_parity"],
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
name: "get_performance_profile",
|
|
767
|
+
category: "orchestration",
|
|
768
|
+
summary: "Bridge-local performance profile: command budgets, large-data/dry-run policies, destructive-write warnings, and recent audit timings.",
|
|
769
|
+
execution: "bridge-local",
|
|
770
|
+
aliases: ["performance profile", "tool budgets", "профиль производительности", "проверка скорости"],
|
|
771
|
+
naturalLanguageIntents: ["Understand which Bridge commands are fast, large, long-running, dry-run-first, or risky before executing a workflow."],
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
name: "get_bridge_audit_log",
|
|
775
|
+
category: "orchestration",
|
|
776
|
+
summary: "Bridge-local sanitized command audit log from memory or persisted disk JSONL.",
|
|
777
|
+
execution: "bridge-local",
|
|
778
|
+
aliases: ["audit log", "bridge log", "журнал bridge", "лог команд"],
|
|
779
|
+
naturalLanguageIntents: ["Inspect recent Bridge command history, failures, timings, and payload keys without exposing payload values."],
|
|
780
|
+
returnsLargeData: true,
|
|
781
|
+
preferredAfter: ["get_performance_profile"],
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
name: "get_bridge_runtime_summary",
|
|
785
|
+
category: "orchestration",
|
|
786
|
+
summary: "Bridge-local runtime summary: plugin connection, queue pressure, recent events/audit failures, MCP URL, auth flag, and recommendations.",
|
|
787
|
+
execution: "bridge-local",
|
|
788
|
+
aliases: ["runtime summary", "bridge status summary", "оперативный статус", "сводка bridge"],
|
|
789
|
+
naturalLanguageIntents: ["Check whether Bridge is ready for a heavy workflow and what preflight steps are needed."],
|
|
790
|
+
preferredBefore: ["plan_workflow", "preview_workflow", "export_variables", "build_screen"],
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
name: "get_operator_runbook",
|
|
794
|
+
category: "orchestration",
|
|
795
|
+
summary: "Bridge-local start-here operator runbook: common workflows, safety rules, preferred tools, dry-run gates, and Figma MCP companion handoff.",
|
|
796
|
+
execution: "bridge-local",
|
|
797
|
+
aliases: ["operator runbook", "agent runbook", "start here", "гайд оператора", "инструкция агенту"],
|
|
798
|
+
naturalLanguageIntents: ["Choose the correct SXL Bridge workflow, resources, and dry-run gates for a broad Figma/SXL user request."],
|
|
799
|
+
preferredBefore: ["route_intent", "plan_workflow", "preview_workflow"],
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
name: "get_ultimate_readiness",
|
|
803
|
+
category: "orchestration",
|
|
804
|
+
summary: "Bridge-local requirement-by-requirement readiness audit for the Ultimate Bridge Toolkit plan.",
|
|
805
|
+
execution: "bridge-local",
|
|
806
|
+
aliases: ["ultimate readiness", "readiness audit", "итоговый аудит", "аудит готовности"],
|
|
807
|
+
naturalLanguageIntents: ["Verify whether Bridge satisfies the Ultimate Toolkit plan across SXL workflows, Figma MCP parity, production safety, docs/resources, and agent readiness."],
|
|
808
|
+
preferredAfter: ["get_contract_audit", "get_figma_mcp_parity", "get_figma_mcp_skills_parity", "get_performance_profile"],
|
|
809
|
+
},
|
|
810
|
+
{ name: "list_tools", category: "orchestration", summary: "List all Bridge MCP tools with metadata.", execution: "bridge-local" },
|
|
811
|
+
{
|
|
812
|
+
name: "route_intent",
|
|
813
|
+
category: "orchestration",
|
|
814
|
+
summary: "Bridge-local natural-language router: user request → ranked SXL recipes, preferred tools, schema resources, and dry-run policy.",
|
|
815
|
+
execution: "bridge-local",
|
|
816
|
+
aliases: ["intent router", "natural language routing", "подбери команду"],
|
|
817
|
+
naturalLanguageIntents: ["Pick the correct Bridge recipe and tool chain from a broad RU/EN user request."],
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
name: "plan_workflow",
|
|
821
|
+
category: "orchestration",
|
|
822
|
+
summary: "Bridge-local workflow planner: request/recipe → resources, expected tools, dry-run gates, approval gates, done criteria.",
|
|
823
|
+
execution: "bridge-local",
|
|
824
|
+
aliases: ["workflow plan", "план workflow", "план действий"],
|
|
825
|
+
naturalLanguageIntents: ["Plan a multi-step SXL/Figma workflow before executing plugin commands."],
|
|
826
|
+
preferredBefore: ["preview_workflow"],
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
name: "preview_workflow",
|
|
830
|
+
category: "orchestration",
|
|
831
|
+
summary: "Bridge-local workflow validator: proposed tool sequence → findings for missing status/discovery/dry-run gates.",
|
|
832
|
+
execution: "bridge-local",
|
|
833
|
+
aliases: ["workflow preview", "validate workflow", "проверь план"],
|
|
834
|
+
naturalLanguageIntents: ["Validate an agent's proposed Bridge tool sequence before executing it."],
|
|
835
|
+
preferredAfter: ["plan_workflow"],
|
|
836
|
+
},
|
|
207
837
|
]);
|
|
208
838
|
}
|
|
839
|
+
export function ensureBridgeToolCatalogue() {
|
|
840
|
+
if (getBridgeToolCatalogue().length === 0) {
|
|
841
|
+
bootstrapBridgeToolCatalogue();
|
|
842
|
+
}
|
|
843
|
+
}
|
|
209
844
|
//# sourceMappingURL=catalogue-bootstrap.js.map
|