@sxl-studio/bridge 1.4.0 → 1.5.1
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 +2 -1
- package/dist/agent-recipes.d.ts +185 -17
- package/dist/agent-recipes.js +372 -26
- package/dist/agent-recipes.js.map +1 -1
- package/dist/command-queue.js +9 -0
- package/dist/command-queue.js.map +1 -1
- package/dist/mcp-factory.js +1 -1
- package/dist/sxl-mcp-instructions.js +104 -26
- package/dist/sxl-mcp-instructions.js.map +1 -1
- package/dist/tools/catalogue-bootstrap.js +4 -0
- package/dist/tools/catalogue-bootstrap.js.map +1 -1
- package/dist/tools/orchestration.js +201 -2
- package/dist/tools/orchestration.js.map +1 -1
- package/dist/tools/resources.d.ts +4 -1
- package/dist/tools/resources.js +37 -2
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/tokens.d.ts +629 -0
- package/dist/tools/tokens.js +94 -0
- package/dist/tools/tokens.js.map +1 -1
- package/dist/tools/variables.js +59 -0
- package/dist/tools/variables.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,9 +5,25 @@
|
|
|
5
5
|
export const SXL_BRIDGE_MCP_INSTRUCTIONS = `
|
|
6
6
|
You are assisting with Figma through the SXL Studio plugin and this Bridge. Follow these rules precisely.
|
|
7
7
|
|
|
8
|
+
## Decision tree — read this first
|
|
9
|
+
1. The user is asking for something inside Figma. Open \`sxl://agent/recipes/index\` and pick the recipe that matches the user's phrase. Recipes there are intent-routed (RU + EN phrases included).
|
|
10
|
+
2. Documentation / palette / scenarios → use **this Bridge**, never \`use_figma\` with a hand-written script. Doc Builder tools cover all four core flows:
|
|
11
|
+
- Token table → \`apply_doc_spec\` / \`build_token_documentation\` / \`apply_token_doc_spec\`.
|
|
12
|
+
- Variable cards (e.g. "цвета коллекции Projects") → \`bind_variable_palette\` (or \`apply_doc_spec\` with \`palette\` section).
|
|
13
|
+
- Component (title + variants + props + measure) → \`build_component_doc\` (or \`apply_doc_spec\`).
|
|
14
|
+
- Multi-page flow → \`build_doc_flow\`.
|
|
15
|
+
3. If no recipe fits, prefer composing \`apply_doc_spec\` from explicit sections (read \`sxl://agent/recipes/doc-spec-v2\`) before falling back to direct canvas tools.
|
|
16
|
+
4. Always pass JSON arguments to Bridge tools directly. Never write payloads to \`/tmp\`, never base64-encode loaders into \`use_figma\`, never glue shell + node -e to invoke MCP.
|
|
17
|
+
|
|
8
18
|
## Two MCP servers you may see in Cursor
|
|
9
19
|
- **Official Figma MCP** (often remote): reads design context from selection / links, opens files, native Figma ops (e.g. \`use_figma\`). Parse \`node-id\` from figma.com URLs by replacing "-" with ":".
|
|
10
|
-
- **SXL Studio Bridge** (this server): plugin-only commands — composition / token files, variables, styles, Git in the plugin, Dev Mode codegen parity, orchestration helpers, and
|
|
20
|
+
- **SXL Studio Bridge** (this server): plugin-only commands — composition / token files, variables, styles, Git in the plugin, Dev Mode codegen parity, orchestration helpers, canvas helpers, and Doc Builder.
|
|
21
|
+
|
|
22
|
+
**Critical split:** If the user’s task is doable with SXL Studio (token files, **local Figma variables**, compositions, documentation templates in the open file) — you **MUST** use **this Bridge**, not \`use_figma\` with a hand-written Figma Plugin API script. The plugin does not run arbitrary JS from the Figma MCP; variable enumeration and card fills belong to \`get_variables\`, \`bind_variable_palette\`, \`set_node_fill_variable\`, etc. Live anti-patterns from past incidents — never repeat:
|
|
23
|
+
- Writing \`/tmp/projects_loader_payload.json\` and trying to feed it into \`use_figma\` via a base64 loader.
|
|
24
|
+
- Composing \`figma.variables.getLocalVariablesAsync()\` scripts in the chat instead of calling \`get_variables\`.
|
|
25
|
+
- Hand-cloning frames + setting fills via \`use_figma\` instead of \`bind_variable_palette\`.
|
|
26
|
+
- Adding throwaway \`.js\` doc scripts to repo roots.
|
|
11
27
|
|
|
12
28
|
## Prerequisites for every session
|
|
13
29
|
1. Bridge is running locally (HTTP + WebSocket + MCP on BRIDGE_PORT, default 37830).
|
|
@@ -25,10 +41,16 @@ You are assisting with Figma through the SXL Studio plugin and this Bridge. Foll
|
|
|
25
41
|
- \`sxl://tokens/files\` — token file index.
|
|
26
42
|
- \`sxl://tokens/files/{fileId}\` — raw token file body.
|
|
27
43
|
- \`sxl://compositions/index\` — composition JSON index.
|
|
28
|
-
- \`sxl://agent/recipes/
|
|
29
|
-
- \`sxl://agent/recipes/
|
|
30
|
-
- \`sxl://agent/recipes/doc-
|
|
31
|
-
- \`sxl://agent/recipes/doc-
|
|
44
|
+
- \`sxl://agent/recipes/index\` — **always start here**: intent router that maps user phrases to specific Doc Builder recipes.
|
|
45
|
+
- \`sxl://agent/recipes/template-discovery\` — how to locate \`templateNodeId\` and swatch / label layer names inside a content frame.
|
|
46
|
+
- \`sxl://agent/recipes/doc-spec-v2\` — section vocabulary for the canonical \`apply_doc_spec\` endpoint.
|
|
47
|
+
- \`sxl://agent/recipes/doc-tokens\` — Doc Spec v1 / v2 \`tokenTable\` for DTCG-driven docs.
|
|
48
|
+
- \`sxl://agent/recipes/doc-component\` — component documentation recipe (\`build_component_doc\`).
|
|
49
|
+
- \`sxl://agent/recipes/doc-composition\` — materialise from composition; do not hand-write JSON.
|
|
50
|
+
- \`sxl://agent/recipes/doc-flow\` — multi-page / scenario flow (\`build_doc_flow\`).
|
|
51
|
+
- \`sxl://agent/recipes/variable-palette\` — color cards from a Figma variable collection (\`bind_variable_palette\`). Read before any script.
|
|
52
|
+
- \`sxl://agent/recipes/compose-with-variables\` — export composition + generate component with Figma variable bindings (\`compose_from_url\` + \`batch_bind_variables\`).
|
|
53
|
+
- \`sxl://agent/recipes/scenario-from-markdown\` — render a markdown scenario spec as a Figma flow (\`build_scenario_from_md\`).
|
|
32
54
|
|
|
33
55
|
## CRITICAL — never hand-craft composition / token JSON
|
|
34
56
|
If the user asks for "JSON", "composition", "get code", or "same output as Dev Mode → Get Code":
|
|
@@ -45,6 +67,24 @@ If the user asks for "JSON", "composition", "get code", or "same output as Dev M
|
|
|
45
67
|
Code Connect) call \`get_codegen\` with \`language: "designer-json"\` (default).
|
|
46
68
|
SwiftUI / Kotlin / Vue3 outputs are also available via \`language\` parameter.
|
|
47
69
|
|
|
70
|
+
## Workflow — Scenario / flow from a markdown spec
|
|
71
|
+
When the user provides a **markdown document** describing a UI scenario:
|
|
72
|
+
1. Read \`sxl://agent/recipes/scenario-from-markdown\`.
|
|
73
|
+
2. Call \`build_scenario_from_md\` with \`{ markdown, dryRun: true }\` to preview parsed pages.
|
|
74
|
+
3. Confirm nodeIds are correct (H2 sections need Figma URLs with \`?node-id=\`).
|
|
75
|
+
4. Re-run without \`dryRun\`, passing \`targetParentId\` or \`targetRootId\`.
|
|
76
|
+
|
|
77
|
+
Markdown format expected by \`build_scenario_from_md\`:
|
|
78
|
+
\`\`\`markdown
|
|
79
|
+
# Flow title
|
|
80
|
+
## Screen 1 — Login
|
|
81
|
+
User sees the login form.
|
|
82
|
+
https://www.figma.com/design/KEY/Name?node-id=123:456
|
|
83
|
+
## Screen 2 — Dashboard
|
|
84
|
+
After login the user lands here.
|
|
85
|
+
https://www.figma.com/design/KEY/Name?node-id=789:101
|
|
86
|
+
\`\`\`
|
|
87
|
+
|
|
48
88
|
## High-level orchestration (preferred when given a Figma URL)
|
|
49
89
|
- \`generate_code_from_url\` — given a \`figma.com/design/…\` URL, Bridge parses \`fileKey\` +
|
|
50
90
|
\`nodeId\` and runs \`get_codegen\` on the target node. Returns all codegen tabs. Use this
|
|
@@ -54,30 +94,59 @@ If the user asks for "JSON", "composition", "get code", or "same output as Dev M
|
|
|
54
94
|
\`generate_composition\` and materialize the component in Figma.
|
|
55
95
|
- \`document_component\` — \`get_codegen\` on a component + \`apply_documentation_payload\`
|
|
56
96
|
to fill a documentation template with real context.
|
|
57
|
-
- \`build_token_documentation\` — **Doc Spec v1**: resolve DTCG \`tokenPath\` values in the
|
|
58
|
-
plugin workspace and fill TEXT layers by \`layerName\` under \`targetRootId\`.
|
|
59
|
-
|
|
60
|
-
\`sxl://agent/recipes/doc-tokens\` first.
|
|
61
|
-
|
|
97
|
+
- \`build_token_documentation\` — **Doc Spec v1 / tokenTable section**: resolve DTCG \`tokenPath\` values in the
|
|
98
|
+
plugin workspace and fill TEXT layers by \`layerName\` under \`targetRootId\`. Equivalent to a
|
|
99
|
+
single \`tokenTable\` section in \`apply_doc_spec\`; equivalent plugin command:
|
|
100
|
+
\`apply_token_doc_spec\`. Read \`sxl://agent/recipes/doc-tokens\` first. \`dryRun: true\`
|
|
101
|
+
previews without canvas writes.
|
|
102
|
+
- \`apply_doc_spec\` — **Doc Spec v2**, generic pipeline. Accepts an array of sections
|
|
103
|
+
(\`title\`, \`description\`, \`variants\`, \`props\`, \`tokenTable\`, \`palette\`, \`measure\`) and
|
|
104
|
+
applies them in order under \`frame.targetParentId\`. Preferred when you need more than
|
|
105
|
+
one section in a single doc page.
|
|
106
|
+
- \`bind_variable_palette\` — generates per-variable cards from a Figma variable collection.
|
|
107
|
+
Pass \`{ collectionName | collectionId, parentNodeId, templateNodeId, swatchLayerName,
|
|
108
|
+
labelLayerName?, valueLayerName?, type? }\`. Replaces ad-hoc \`use_figma\` scripts that
|
|
109
|
+
cloned templates and called \`figma.variables.*\` directly.
|
|
110
|
+
- \`build_component_doc\` — title + variants + props (+ optional \`measure\`) for a component
|
|
111
|
+
or component set in a single call.
|
|
112
|
+
- \`build_doc_flow\` — multi-page scenario layout (\`pages[]\` of node URLs / IDs / composition
|
|
113
|
+
files). Use this instead of orchestrating multiple \`compose_from_url\` calls by hand.
|
|
114
|
+
- \`build_scenario_from_md\` — parse a markdown scenario spec (H1 title, H2 pages, Figma URLs,
|
|
115
|
+
prose) and call \`build_doc_flow\` automatically. Use when the user provides a \`.md\` scenario
|
|
116
|
+
document. Always \`dryRun: true\` first.
|
|
62
117
|
|
|
63
118
|
## Documentation recipes (do not improvise the pipeline)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
2. **Component doc** — \`sxl://agent/recipes/doc-component\`:
|
|
70
|
-
|
|
71
|
-
\`
|
|
119
|
+
0. **Pick the recipe via the index** — read \`sxl://agent/recipes/index\` first. It contains
|
|
120
|
+
user-phrase routing (RU + EN) and \`decideBetween\` rules so you don't have to guess.
|
|
121
|
+
1. **Token table (Doc Spec v1 / v2 tokenTable)** — attach \`sxl://agent/recipes/doc-tokens\`.
|
|
122
|
+
Either pass a single \`tokenTable\` section into \`apply_doc_spec\`, or use
|
|
123
|
+
\`build_token_documentation\` / \`apply_token_doc_spec\` with \`groups[].rows\` (legacy v1).
|
|
124
|
+
2. **Component doc** — \`sxl://agent/recipes/doc-component\`: prefer \`build_component_doc\`
|
|
125
|
+
for title + variants + props; combine with \`apply_doc_spec\` if you need extra
|
|
126
|
+
\`description\` / \`measure\` sections.
|
|
72
127
|
3. **From composition** — \`sxl://agent/recipes/doc-composition\`: \`compose_from_url\` or
|
|
73
128
|
\`export_composition_json\` → file → \`generate_composition\`; never fabricate composition
|
|
74
129
|
JSON from \`get_node_tree\`.
|
|
75
|
-
4. **Multi-page flow** — \`sxl://agent/recipes/doc-flow\`:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
\`
|
|
80
|
-
|
|
130
|
+
4. **Multi-page flow** — \`sxl://agent/recipes/doc-flow\`: use \`build_doc_flow\`. Don't chain
|
|
131
|
+
\`compose_from_url\` by hand for the simple "place pages with captions" case.
|
|
132
|
+
5. **Variable palette (color cards from a Figma collection, not JSON)** — attach
|
|
133
|
+
\`sxl://agent/recipes/variable-palette\` first. Use \`bind_variable_palette\` with
|
|
134
|
+
\`{ collectionName, parentNodeId, templateNodeId, swatchLayerName }\`. The plugin enumerates
|
|
135
|
+
variables, clones the template, binds fills, writes labels — all in one call. Pass
|
|
136
|
+
\`type: "COLOR"\` if you need to filter. **Do not** call \`use_figma\` with a script that
|
|
137
|
+
does the same thing.
|
|
138
|
+
6. **Generic Doc Spec v2** — \`sxl://agent/recipes/doc-spec-v2\` describes the section
|
|
139
|
+
vocabulary. Compose your own \`apply_doc_spec\` payload from \`title\`, \`description\`,
|
|
140
|
+
\`variants\`, \`props\`, \`tokenTable\`, \`palette\`, \`measure\`.
|
|
141
|
+
|
|
142
|
+
**Forbidden for agents (documentation flows):**
|
|
143
|
+
- Synthesising composition JSON or token JSON by hand.
|
|
144
|
+
- Calling \`use_figma\` (or any other generic JS-in-Figma tool) when a Bridge command exists.
|
|
145
|
+
- Creating throwaway \`.js\` doc scripts in repo roots.
|
|
146
|
+
- Shell pipes writing MCP payloads to \`/tmp/*.json\`, base64-encoded loaders, hidden files
|
|
147
|
+
under \`tokens/system\`. The chat-side incident "Use Node.js to read /tmp/projects_loader_payload.json
|
|
148
|
+
and feed it as base64 into use_figma" is the exact pattern to avoid: instead, call
|
|
149
|
+
\`bind_variable_palette\` with the JSON arguments inline.
|
|
81
150
|
|
|
82
151
|
## Canonical workflow — component from a Figma layout (manual)
|
|
83
152
|
1. \`export_composition_json\` with \`payload.nodeId\` (or rely on current selection). Receive
|
|
@@ -99,9 +168,18 @@ If the user asks for "JSON", "composition", "get code", or "same output as Dev M
|
|
|
99
168
|
|
|
100
169
|
## Workflow — Variables / Design Tokens
|
|
101
170
|
- \`get_variables\` — read collections + variables (filter by type, limit paged).
|
|
102
|
-
- \`create_variable_collection\`, \`create_variable\`, \`bind_variable\` — build new tokens.
|
|
171
|
+
- \`create_variable_collection\`, \`create_variable\`, \`bind_variable\` — build new tokens (single ops).
|
|
172
|
+
- **Batch ops (preferred for 3+ items):**
|
|
173
|
+
- \`batch_create_variables\` — create many variables at once in a collection. Pass \`variables[]\`
|
|
174
|
+
with name, type, optional values/scopes/codeSyntax per entry. Read \`sxl://agent/recipes/compose-with-variables\`.
|
|
175
|
+
- \`batch_set_variable_values\` — set (variableId, modeId, value) tuples in one round-trip.
|
|
176
|
+
Hex strings are auto-coerced for COLOR variables.
|
|
177
|
+
- \`batch_delete_variables\` — delete many variables in one call. Pass \`variableIds[]\`.
|
|
178
|
+
- \`batch_bind_variables\` — bind many nodes to variables in one call. Pass \`bindings[]\`
|
|
179
|
+
with nodeId, variableId, field (BindableNodeField like 'fills', 'cornerRadius', 'opacity').
|
|
180
|
+
Use this after \`generate_composition\` for any bindings not captured in the composition JSON.
|
|
103
181
|
- \`rename_variable\`, \`delete_variable\`, \`rename_variable_collection\`,
|
|
104
|
-
\`delete_variable_collection\` — lifecycle.
|
|
182
|
+
\`delete_variable_collection\` — lifecycle (single ops).
|
|
105
183
|
- \`add_variable_mode\`, \`remove_variable_mode\`, \`rename_variable_mode\` — manage modes.
|
|
106
184
|
- \`set_variable_mode_value\` — write a per-mode value (accepts \`#hex\` for COLOR).
|
|
107
185
|
- \`set_variable_scopes\`, \`set_variable_code_syntax\` — metadata required for proper
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sxl-mcp-instructions.js","sourceRoot":"","sources":["../src/sxl-mcp-instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG
|
|
1
|
+
{"version":3,"file":"sxl-mcp-instructions.js","sourceRoot":"","sources":["../src/sxl-mcp-instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8O1C,CAAC,IAAI,EAAE,CAAC"}
|
|
@@ -164,6 +164,10 @@ export function bootstrapBridgeToolCatalogue() {
|
|
|
164
164
|
{ name: "compose_from_url", category: "orchestration", summary: "Parse Figma URL → export_composition_json → save as composition file → optional generate.", requiresComposition: true },
|
|
165
165
|
{ name: "document_component", category: "orchestration", summary: "Generate SXL documentation payload for a component and apply it.", requiresDesignMode: true, requiresComposition: true },
|
|
166
166
|
{ name: "build_token_documentation", category: "orchestration", summary: "Doc Spec v1: resolve token paths and fill doc template TEXT by layer name.", requiresDesignMode: true },
|
|
167
|
+
{ name: "apply_doc_spec", category: "orchestration", summary: "Doc Spec v2 (canonical): apply a list of documentation sections to a Figma frame.", requiresDesignMode: true },
|
|
168
|
+
{ name: "bind_variable_palette", category: "orchestration", summary: "Doc Builder: render Figma variable collection as cards by cloning a swatch template.", requiresDesignMode: true },
|
|
169
|
+
{ name: "build_component_doc", category: "orchestration", summary: "Doc Builder: title + variants matrix + props table for a component / component set.", requiresDesignMode: true },
|
|
170
|
+
{ name: "build_doc_flow", category: "orchestration", summary: "Doc Builder: render multi-page flow / scenario in an auto-layout container.", requiresDesignMode: true },
|
|
167
171
|
{ name: "list_tools", category: "orchestration", summary: "List all Bridge MCP tools with metadata." },
|
|
168
172
|
]);
|
|
169
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue-bootstrap.js","sourceRoot":"","sources":["../../src/tools/catalogue-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalogue-bootstrap.js","sourceRoot":"","sources":["../../src/tools/catalogue-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,64 @@
|
|
|
7
7
|
* single-source-of-truth generators (export_composition_json / get_codegen).
|
|
8
8
|
*/
|
|
9
9
|
import { z } from "zod";
|
|
10
|
-
import { tokenDocSpecV1Zod } from "./tokens.js";
|
|
10
|
+
import { annotationItemZod, docSpecV2Zod, tokenDocSpecV1Zod, } from "./tokens.js";
|
|
11
11
|
import { parseFigmaUrl } from "./figma-url.js";
|
|
12
12
|
import { callPluginCommand, ok } from "./shared.js";
|
|
13
|
+
// ─── Markdown scenario parser ─────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Parse a markdown scenario spec into a title + ordered pages list.
|
|
16
|
+
*
|
|
17
|
+
* Expected format:
|
|
18
|
+
* # Flow title (optional — becomes container name)
|
|
19
|
+
* ## Page title (H2 = page boundary)
|
|
20
|
+
* Prose description. (paragraph text becomes page.description)
|
|
21
|
+
* https://figma.com/… (Figma URL → nodeId extracted via parseFigmaUrl)
|
|
22
|
+
*/
|
|
23
|
+
function parseScenarioMarkdown(markdown) {
|
|
24
|
+
const FIGMA_URL_RE = /https?:\/\/(?:www\.)?figma\.com\/(?:design|file)\/[^\s)>]+/;
|
|
25
|
+
let title;
|
|
26
|
+
const pages = [];
|
|
27
|
+
let current = null;
|
|
28
|
+
const descParts = [];
|
|
29
|
+
function flush() {
|
|
30
|
+
if (!current)
|
|
31
|
+
return;
|
|
32
|
+
const desc = descParts.join(" ").replace(/\s+/g, " ").trim();
|
|
33
|
+
if (desc)
|
|
34
|
+
current.description = desc;
|
|
35
|
+
if (current.nodeId ?? current.title)
|
|
36
|
+
pages.push(current);
|
|
37
|
+
descParts.length = 0;
|
|
38
|
+
current = null;
|
|
39
|
+
}
|
|
40
|
+
for (const raw of markdown.split(/\r?\n/)) {
|
|
41
|
+
const line = raw.trim();
|
|
42
|
+
const h1 = line.match(/^#\s+(.+)/);
|
|
43
|
+
if (h1 && !title) {
|
|
44
|
+
title = h1[1].trim();
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const h2 = line.match(/^##\s+(.+)/);
|
|
48
|
+
if (h2) {
|
|
49
|
+
flush();
|
|
50
|
+
current = { title: h2[1].trim() };
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (!current)
|
|
54
|
+
continue;
|
|
55
|
+
const urlMatch = line.match(FIGMA_URL_RE);
|
|
56
|
+
if (urlMatch) {
|
|
57
|
+
const parsed = parseFigmaUrl(urlMatch[0]);
|
|
58
|
+
if (parsed.nodeId)
|
|
59
|
+
current.nodeId = parsed.nodeId;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (line && !line.startsWith("#"))
|
|
63
|
+
descParts.push(line);
|
|
64
|
+
}
|
|
65
|
+
flush();
|
|
66
|
+
return { title, pages };
|
|
67
|
+
}
|
|
13
68
|
async function executeOrThrow(queue, commandType, payload = {}) {
|
|
14
69
|
const r = await queue.execute(commandType, payload);
|
|
15
70
|
if (r.status !== "completed") {
|
|
@@ -109,7 +164,7 @@ export function registerOrchestrationTools(server, queue) {
|
|
|
109
164
|
};
|
|
110
165
|
return callPluginCommand(queue, "apply_documentation_payload", { payload });
|
|
111
166
|
});
|
|
112
|
-
server.tool("build_token_documentation", "Product-level:
|
|
167
|
+
server.tool("build_token_documentation", "Product-level: alias of apply_doc_spec.tokenTable section. Fills a token documentation template using Doc Spec v1 (resolve token paths from the plugin workspace, bind TEXT layers by name). For richer documents (title, variants, props, palette, measure), use apply_doc_spec / build_component_doc / bind_variable_palette directly. Read sxl://agent/recipes/doc-tokens.", {
|
|
113
168
|
spec: tokenDocSpecV1Zod.describe("Doc Spec v1 (version 1, groups with layerName + tokenPath)"),
|
|
114
169
|
targetRootId: z
|
|
115
170
|
.string()
|
|
@@ -124,5 +179,149 @@ export function registerOrchestrationTools(server, queue) {
|
|
|
124
179
|
payload.dryRun = true;
|
|
125
180
|
return callPluginCommand(queue, "apply_token_doc_spec", payload);
|
|
126
181
|
});
|
|
182
|
+
server.tool("apply_doc_spec", "Doc Spec v2 (canonical): apply a list of documentation sections to a Figma frame. Sections supported: title, description (markdown→formatted runs), variants (matrix from ComponentSet), props (componentPropertyDefinitions table), tokenTable (DTCG path bind), palette (Figma Variables → cards), measure (annotations, experimental). Always read sxl://agent/recipes/index BEFORE composing the spec — it routes you to the right sub-recipe (doc-tokens / variable-palette / doc-component / doc-flow / doc-spec-v2).", {
|
|
183
|
+
spec: docSpecV2Zod.describe("Doc Spec v2 (version 2, sections list)"),
|
|
184
|
+
targetRootId: z
|
|
185
|
+
.string()
|
|
186
|
+
.optional()
|
|
187
|
+
.describe("Figma id of the documentation frame to fill. Overrides spec.frame.targetRootId. Omit with dryRun to preview only."),
|
|
188
|
+
dryRun: z.boolean().optional().describe("Preview reports without mutating the canvas"),
|
|
189
|
+
}, async ({ spec, targetRootId, dryRun }) => {
|
|
190
|
+
const payload = { spec };
|
|
191
|
+
if (targetRootId)
|
|
192
|
+
payload.targetRootId = targetRootId;
|
|
193
|
+
if (dryRun === true)
|
|
194
|
+
payload.dryRun = true;
|
|
195
|
+
return callPluginCommand(queue, "apply_doc_spec", payload);
|
|
196
|
+
});
|
|
197
|
+
server.tool("bind_variable_palette", "Documentation: clone a swatch template once per Figma variable from a local collection and bind each clone's swatch fill to the variable. Use this whenever the user wants to render an existing variable collection (e.g. 'Projects', 'Core/Color') as cards. Never write a use_figma script for this — read sxl://agent/recipes/variable-palette and call this tool. templateNodeId must be a clonable scene node already in the file (often the first card inside content frame).", {
|
|
198
|
+
templateNodeId: z
|
|
199
|
+
.string()
|
|
200
|
+
.describe("Figma id of the card / swatch template to clone for each variable. The template is cloned into the same parent."),
|
|
201
|
+
collectionName: z.string().optional().describe("Local variable collection name (e.g. 'Projects', 'Core/Color')"),
|
|
202
|
+
collectionId: z.string().optional().describe("Local variable collection id (preferred when known)"),
|
|
203
|
+
variableType: z
|
|
204
|
+
.enum(["COLOR", "FLOAT", "STRING", "BOOLEAN"])
|
|
205
|
+
.optional()
|
|
206
|
+
.describe("Filter by variable type (default: all). Use COLOR for paint palettes."),
|
|
207
|
+
swatchLayerName: z
|
|
208
|
+
.string()
|
|
209
|
+
.optional()
|
|
210
|
+
.describe("Layer name inside the template that should receive the variable-bound fill (typically 'swatch' / 'fill')."),
|
|
211
|
+
labelLayerName: z
|
|
212
|
+
.string()
|
|
213
|
+
.optional()
|
|
214
|
+
.describe("TEXT layer name to write the variable name (last segment) into."),
|
|
215
|
+
valueLayerName: z
|
|
216
|
+
.string()
|
|
217
|
+
.optional()
|
|
218
|
+
.describe("TEXT layer name to write a value preview (e.g. hex). Optional."),
|
|
219
|
+
namePrefix: z.string().optional().describe("Only include variables whose name starts with this prefix"),
|
|
220
|
+
limit: z.number().int().positive().optional().describe("Cap the number of variables (debugging / sampling)"),
|
|
221
|
+
targetRootId: z
|
|
222
|
+
.string()
|
|
223
|
+
.optional()
|
|
224
|
+
.describe("Existing doc frame id (the cards are appended next to the template; use this when template lives outside the frame and you want to scope reports)"),
|
|
225
|
+
targetParentId: z
|
|
226
|
+
.string()
|
|
227
|
+
.optional()
|
|
228
|
+
.describe("Parent frame for any auxiliary container (rarely needed: cards are appended next to the template)."),
|
|
229
|
+
dryRun: z.boolean().optional().describe("Preview without writing to the canvas"),
|
|
230
|
+
}, async (args) => callPluginCommand(queue, "bind_variable_palette", { ...args }));
|
|
231
|
+
server.tool("build_component_doc", "Documentation: build a component documentation frame from a Figma component / component set. Always emits title + props; emits variants when a component set is supplied; description markdown is optional; measure annotations are opt-in (experimental). Read sxl://agent/recipes/doc-component before calling.", {
|
|
232
|
+
componentNodeId: z
|
|
233
|
+
.string()
|
|
234
|
+
.describe("Figma id of the COMPONENT or COMPONENT_SET to document"),
|
|
235
|
+
title: z.string().optional().describe("Title text. Defaults to the node name."),
|
|
236
|
+
description: z.string().optional().describe("Optional markdown description (subset: # heading, **bold**, *italic*, `code`)."),
|
|
237
|
+
variantsLayout: z.enum(["matrix", "grid", "list"]).optional().describe("Layout for the variants section (default: matrix)"),
|
|
238
|
+
variantsGroupBy: z.string().optional().describe("Variant property to group rows by (matrix layout)"),
|
|
239
|
+
variantsLabelLayerName: z
|
|
240
|
+
.string()
|
|
241
|
+
.optional()
|
|
242
|
+
.describe("Optional TEXT layer name inside variant instances to receive variant key=value labels"),
|
|
243
|
+
propsInclude: z
|
|
244
|
+
.array(z.enum(["VARIANT", "BOOLEAN", "TEXT", "INSTANCE_SWAP"]))
|
|
245
|
+
.optional()
|
|
246
|
+
.describe("Subset of property kinds to include in the props table. Default: all."),
|
|
247
|
+
includeMeasure: z.boolean().optional().describe("Add measure annotations section (experimental)"),
|
|
248
|
+
annotations: z
|
|
249
|
+
.array(annotationItemZod)
|
|
250
|
+
.optional()
|
|
251
|
+
.describe("Annotations payload when includeMeasure=true"),
|
|
252
|
+
targetParentId: z
|
|
253
|
+
.string()
|
|
254
|
+
.optional()
|
|
255
|
+
.describe("Frame id to create the doc frame under (createIfMissing). Provide either this or targetRootId."),
|
|
256
|
+
targetRootId: z
|
|
257
|
+
.string()
|
|
258
|
+
.optional()
|
|
259
|
+
.describe("Existing frame id to fill instead of creating a new one"),
|
|
260
|
+
dryRun: z.boolean().optional().describe("Preview without mutating the canvas"),
|
|
261
|
+
}, async (args) => callPluginCommand(queue, "build_component_doc", { ...args }));
|
|
262
|
+
server.tool("build_doc_flow", "Documentation: render a multi-page flow / scenario inside a single auto-layout frame. Each page is either an existing scene node (cloned) or — when integrated — the result of compose_from_url. Use this when the user provides a list of Figma URLs / node ids that should appear as a story.", {
|
|
263
|
+
title: z.string().optional().describe("Flow title (used as container name)"),
|
|
264
|
+
pages: z
|
|
265
|
+
.array(z
|
|
266
|
+
.object({
|
|
267
|
+
nodeId: z.string().optional().describe("Existing scene node id to clone into the flow"),
|
|
268
|
+
compositionFileId: z
|
|
269
|
+
.string()
|
|
270
|
+
.optional()
|
|
271
|
+
.describe("Plugin token-file id pointing to a composition (future integration; currently reported as unsupported)"),
|
|
272
|
+
title: z.string().optional().describe("Caption above the page"),
|
|
273
|
+
description: z.string().optional().describe("Markdown caption"),
|
|
274
|
+
})
|
|
275
|
+
.refine((p) => Boolean(p.nodeId) || Boolean(p.compositionFileId), {
|
|
276
|
+
message: "page must have either nodeId or compositionFileId",
|
|
277
|
+
}))
|
|
278
|
+
.min(1)
|
|
279
|
+
.describe("Ordered list of pages to render"),
|
|
280
|
+
targetParentId: z
|
|
281
|
+
.string()
|
|
282
|
+
.optional()
|
|
283
|
+
.describe("Parent frame id where the flow container is created (createIfMissing). Provide either this or targetRootId."),
|
|
284
|
+
targetRootId: z
|
|
285
|
+
.string()
|
|
286
|
+
.optional()
|
|
287
|
+
.describe("Existing flow container id (FRAME) — content is appended into it"),
|
|
288
|
+
dryRun: z.boolean().optional().describe("Preview without mutating the canvas"),
|
|
289
|
+
}, async (args) => callPluginCommand(queue, "build_doc_flow", { ...args }));
|
|
290
|
+
server.tool("build_scenario_from_md", "Parse a markdown scenario spec and render it as a multi-page flow in Figma. H1 heading → flow container title. H2 sections → pages. Figma URL in each section → nodeId (cloned into the flow). Paragraph text → page caption/description. Always run with dryRun: true first to preview the parsed pages before writing to canvas.", {
|
|
291
|
+
markdown: z
|
|
292
|
+
.string()
|
|
293
|
+
.describe("Full markdown scenario spec. Expected structure:\n" +
|
|
294
|
+
" # Flow Title (optional — becomes container name)\n" +
|
|
295
|
+
" ## Page Title (H2 = page boundary)\n" +
|
|
296
|
+
" Description prose. (becomes page.description)\n" +
|
|
297
|
+
" https://figma.com/… (Figma URL → nodeId source)"),
|
|
298
|
+
targetParentId: z
|
|
299
|
+
.string()
|
|
300
|
+
.optional()
|
|
301
|
+
.describe("Parent frame id to create the flow container under (createIfMissing)"),
|
|
302
|
+
targetRootId: z
|
|
303
|
+
.string()
|
|
304
|
+
.optional()
|
|
305
|
+
.describe("Existing flow container id — pages are appended into it"),
|
|
306
|
+
dryRun: z
|
|
307
|
+
.boolean()
|
|
308
|
+
.optional()
|
|
309
|
+
.describe("Preview the parsed pages list without writing to canvas (recommended first step)"),
|
|
310
|
+
}, async ({ markdown, targetParentId, targetRootId, dryRun }) => {
|
|
311
|
+
const { title, pages } = parseScenarioMarkdown(markdown);
|
|
312
|
+
if (pages.length === 0) {
|
|
313
|
+
throw new Error("build_scenario_from_md: no pages found. " +
|
|
314
|
+
"Expected H2 sections (## Page title) with Figma URLs beneath them.");
|
|
315
|
+
}
|
|
316
|
+
if (dryRun === true) {
|
|
317
|
+
return ok({ dryRun: true, title, pageCount: pages.length, pages });
|
|
318
|
+
}
|
|
319
|
+
return callPluginCommand(queue, "build_doc_flow", {
|
|
320
|
+
...(title ? { title } : {}),
|
|
321
|
+
pages,
|
|
322
|
+
...(targetParentId ? { targetParentId } : {}),
|
|
323
|
+
...(targetRootId ? { targetRootId } : {}),
|
|
324
|
+
});
|
|
325
|
+
});
|
|
127
326
|
}
|
|
128
327
|
//# sourceMappingURL=orchestration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/tools/orchestration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/tools/orchestration.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
* - sxl://tokens/files → listing of token files (JSON)
|
|
7
7
|
* - sxl://tokens/files/{fileId} → full content of one token file
|
|
8
8
|
* - sxl://compositions/index → composition index (list_compositions)
|
|
9
|
-
* - sxl://agent/recipes/
|
|
9
|
+
* - sxl://agent/recipes/index → intent router (always read first)
|
|
10
|
+
* - sxl://agent/recipes/template-discovery → how to find templateNodeId / swatchLayerName
|
|
11
|
+
* - sxl://agent/recipes/doc-spec-v2 → Doc Spec v2 sections vocabulary
|
|
12
|
+
* - sxl://agent/recipes/{id} → machine-readable doc-agent recipes (doc-tokens / doc-component / doc-composition / doc-flow / variable-palette)
|
|
10
13
|
* - sxl://figma/selection → current Figma selection summary
|
|
11
14
|
* - sxl://figma/status → plugin status (editor type, mode, ...)
|
|
12
15
|
*
|
package/dist/tools/resources.js
CHANGED
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
* - sxl://tokens/files → listing of token files (JSON)
|
|
7
7
|
* - sxl://tokens/files/{fileId} → full content of one token file
|
|
8
8
|
* - sxl://compositions/index → composition index (list_compositions)
|
|
9
|
-
* - sxl://agent/recipes/
|
|
9
|
+
* - sxl://agent/recipes/index → intent router (always read first)
|
|
10
|
+
* - sxl://agent/recipes/template-discovery → how to find templateNodeId / swatchLayerName
|
|
11
|
+
* - sxl://agent/recipes/doc-spec-v2 → Doc Spec v2 sections vocabulary
|
|
12
|
+
* - sxl://agent/recipes/{id} → machine-readable doc-agent recipes (doc-tokens / doc-component / doc-composition / doc-flow / variable-palette)
|
|
10
13
|
* - sxl://figma/selection → current Figma selection summary
|
|
11
14
|
* - sxl://figma/status → plugin status (editor type, mode, ...)
|
|
12
15
|
*
|
|
@@ -14,7 +17,7 @@
|
|
|
14
17
|
* attach them as context without requiring agents to explicitly call tools.
|
|
15
18
|
*/
|
|
16
19
|
import { ResourceTemplate, } from "../../node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js";
|
|
17
|
-
import { RECIPE_DOC_COMPONENT, RECIPE_DOC_COMPOSITION, RECIPE_DOC_FLOW, RECIPE_DOC_TOKENS, } from "../agent-recipes.js";
|
|
20
|
+
import { RECIPE_COMPOSE_WITH_VARIABLES, RECIPE_DOC_COMPONENT, RECIPE_DOC_COMPOSITION, RECIPE_DOC_FLOW, RECIPE_DOC_SPEC_V2, RECIPE_DOC_TOKENS, RECIPE_INDEX, RECIPE_SCENARIO_FROM_MARKDOWN, RECIPE_TEMPLATE_DISCOVERY, RECIPE_VARIABLE_PALETTE, } from "../agent-recipes.js";
|
|
18
21
|
async function execRaw(queue, commandType, payload = {}) {
|
|
19
22
|
const r = await queue.execute(commandType, payload);
|
|
20
23
|
if (r.status !== "completed") {
|
|
@@ -82,6 +85,21 @@ export function registerBridgeResources(server, queue) {
|
|
|
82
85
|
const data = await execRaw(queue, "get_selection_summary");
|
|
83
86
|
return asJson(uri.href, data);
|
|
84
87
|
});
|
|
88
|
+
server.registerResource("sxl-agent-recipe-index", "sxl://agent/recipes/index", {
|
|
89
|
+
title: "SXL — agent recipe: documentation intent router",
|
|
90
|
+
description: "Always read this first. Maps user phrases (RU/EN) to specific Doc Builder recipes (doc-tokens / variable-palette / doc-component / doc-flow / doc-spec-v2 / template-discovery) and lists global anti-patterns (no use_figma scripts, no /tmp payloads).",
|
|
91
|
+
mimeType: "application/json",
|
|
92
|
+
}, async (uri) => asJson(uri.href, RECIPE_INDEX));
|
|
93
|
+
server.registerResource("sxl-agent-recipe-template-discovery", "sxl://agent/recipes/template-discovery", {
|
|
94
|
+
title: "SXL — agent recipe: locate template node",
|
|
95
|
+
description: "How to find templateNodeId and swatch / label layer names inside a content frame using get_node_tree / find_nodes. Used by variable-palette and palette section.",
|
|
96
|
+
mimeType: "application/json",
|
|
97
|
+
}, async (uri) => asJson(uri.href, RECIPE_TEMPLATE_DISCOVERY));
|
|
98
|
+
server.registerResource("sxl-agent-recipe-doc-spec-v2", "sxl://agent/recipes/doc-spec-v2", {
|
|
99
|
+
title: "SXL — agent recipe: Doc Spec v2 sections",
|
|
100
|
+
description: "Section vocabulary for apply_doc_spec (title, description, variants, props, tokenTable, palette, measure). Use this when composing custom mixed-section docs.",
|
|
101
|
+
mimeType: "application/json",
|
|
102
|
+
}, async (uri) => asJson(uri.href, RECIPE_DOC_SPEC_V2));
|
|
85
103
|
server.registerResource("sxl-agent-recipe-doc-tokens", "sxl://agent/recipes/doc-tokens", {
|
|
86
104
|
title: "SXL — agent recipe: token documentation",
|
|
87
105
|
description: "Step-by-step recipe and preferred Bridge tools for Doc Spec v1 / build_token_documentation. Static JSON.",
|
|
@@ -110,6 +128,23 @@ export function registerBridgeResources(server, queue) {
|
|
|
110
128
|
}, async (uri) => {
|
|
111
129
|
return asJson(uri.href, RECIPE_DOC_FLOW);
|
|
112
130
|
});
|
|
131
|
+
server.registerResource("sxl-agent-recipe-variable-palette", "sxl://agent/recipes/variable-palette", {
|
|
132
|
+
title: "SXL — agent recipe: palette from Figma variable collection",
|
|
133
|
+
description: "Fill doc cards with COLOR variables (e.g. Projects collection) via get_variables + duplicate_subtree + set_node_fill_variable. Forbids use_figma script hacks. Static JSON.",
|
|
134
|
+
mimeType: "application/json",
|
|
135
|
+
}, async (uri) => {
|
|
136
|
+
return asJson(uri.href, RECIPE_VARIABLE_PALETTE);
|
|
137
|
+
});
|
|
138
|
+
server.registerResource("sxl-agent-recipe-compose-with-variables", "sxl://agent/recipes/compose-with-variables", {
|
|
139
|
+
title: "SXL — agent recipe: export composition + generate component with variable bindings",
|
|
140
|
+
description: "Preferred flow for 'get composition JSON and generate component assigning Figma variables'. Uses compose_from_url (generate: true) for auto-binding; batch_bind_variables for extra wiring.",
|
|
141
|
+
mimeType: "application/json",
|
|
142
|
+
}, async (uri) => asJson(uri.href, RECIPE_COMPOSE_WITH_VARIABLES));
|
|
143
|
+
server.registerResource("sxl-agent-recipe-scenario-from-markdown", "sxl://agent/recipes/scenario-from-markdown", {
|
|
144
|
+
title: "SXL — agent recipe: multi-page scenario from a markdown spec",
|
|
145
|
+
description: "Parse a markdown scenario document (H1 title, H2 pages, Figma URLs, prose descriptions) and render it as a Figma flow using build_scenario_from_md. Always dryRun first.",
|
|
146
|
+
mimeType: "application/json",
|
|
147
|
+
}, async (uri) => asJson(uri.href, RECIPE_SCENARIO_FROM_MARKDOWN));
|
|
113
148
|
server.registerResource("sxl-plugin-status", "sxl://figma/status", {
|
|
114
149
|
title: "SXL — plugin status",
|
|
115
150
|
description: "Plugin status snapshot: editorType, mode, isDevMode, writesAllowed, currentPage, selection, session state.",
|