@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.
@@ -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 canvas helpers.
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/doc-tokens\` — **machine-readable** steps for token documentation (Doc Spec v1).
29
- - \`sxl://agent/recipes/doc-component\` — component documentation recipe (codegen + template).
30
- - \`sxl://agent/recipes/doc-composition\` — materialise from composition, do not hand-write JSON.
31
- - \`sxl://agent/recipes/doc-flow\` — multi-page / flow orientation.
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\`. Preferred
59
- entry point for token doc pages; equivalent plugin command: \`apply_token_doc_spec\`. Read
60
- \`sxl://agent/recipes/doc-tokens\` first. Use \`dryRun: true\` to preview without canvas writes.
61
- **Do not** hand-roll token JSON or paste raw plugin scripts — stay on whitelist commands.
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
- 1. **Token table / palette (Doc Spec v1)** — attach \`sxl://agent/recipes/doc-tokens\`. Steps:
65
- \`list_token_files\` / resources build \`spec\` (\`version: "1"\`, \`groups[].rows\` with
66
- \`layerName\` + \`tokenPath\`) \`build_token_documentation\` or \`apply_token_doc_spec\`
67
- with \`targetRootId\` (clone template with \`duplicate_subtree\` first). Figma must be in
68
- **Design** mode for writes.
69
- 2. **Component doc** — \`sxl://agent/recipes/doc-component\`: rely on \`get_codegen\` /
70
- \`export_composition_json\`, then \`apply_documentation_payload\` with
71
- \`{ targetRootId, entries: [{ layerName, text }] }\`.
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\`: chain high-level tools; avoid ad-hoc
76
- Figma API scripts in the repository for production doc (see \`Plugin/sxl/docs/23-doc-agent-phased-roadmap.md\`).
77
-
78
- **Forbidden for agents (documentation flows):** synthesising composition JSON; one-off
79
- \`use_figma\` / raw Plugin API scripts when a Bridge+plugin path exists; creating throwaway
80
- \`.js\` doc scripts in repo roots use Bridge commands or tracked \`tools/\` with an owner.
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgK1C,CAAC,IAAI,EAAE,CAAC"}
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAiD,MAAM,eAAe,CAAC;AAO7F,SAAS,GAAG,CAAC,KAAoB;IAC/B,aAAa,CAAC;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK;QACrD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,KAAK;KACxD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,GAAuB,EAAE,OAAwB;IACjE,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,QAAQ,CAAC,aAAa,EAAE;QACtB,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,2DAA2D,EAAE;QAC5H,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,sDAAsD,EAAE;QACjH,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,qCAAqC,EAAE;QAC1G,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,2CAA2C,EAAE;QAC3G,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,4BAA4B,EAAE;KAC9F,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,mDAAmD,EAAE;QAC9G,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,EAAE;QACjG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sCAAsC,EAAE;QAChG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE;QACtF,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,0DAA0D,EAAE;QACtH,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,EAAE;QACrF,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iDAAiD,EAAE;QAC7G,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sCAAsC,EAAE;QAClG,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;QACrF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iDAAiD,EAAE;QAC9G,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,2FAA2F,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACpL,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,8CAA8C,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACnI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE;QAC1E,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE;QAClG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE;QACtF,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,2DAA2D,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACtJ,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;QAC7G,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,IAAI,EAAE;KAC3H,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE;QACvB,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,sDAAsD,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACzJ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,4CAA4C,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACnI,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,2CAA2C,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACxI,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,qDAAqD,EAAE,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAC/K,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,0CAA0C,EAAE,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACjK,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,gCAAgC,EAAG,mBAAmB,EAAE,IAAI,EAAE;QAChI,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACvI,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,sCAAsC,EAAE,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAChK,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,yCAAyC,EAAE,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACnK,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE;KAC/F,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE;QACpB,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,gDAAgD,EAAE;QAC3G,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,mCAAmC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrI,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,4CAA4C,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACnI,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,qCAAqC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC1H,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC3G,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC3G,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACjI,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACjI,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACtH,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,kCAAkC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC9H,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5G,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC/H,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACjH,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,uCAAuC,EAAE,kBAAkB,EAAE,IAAI,EAAE;KACxI,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sCAAsC,EAAE;QACjG,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACnH,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACjH,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrH,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClH,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACvH,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,uCAAuC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5H,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qCAAqC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACxH,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE,kBAAkB,EAAE,IAAI,EAAE;KAC3H,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE;QAC1F,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACjG,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACxG,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE;QAC1E,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC3G,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE;QACpF,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE;QAC7E,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oCAAoC,EAAE;QACjG,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iCAAiC,EAAE;QAChG,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE;QAC/E,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;QAClF,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,+CAA+C,EAAE;QAC9G,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;QAChF,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,EAAE;QAC5E,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClG,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC1G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrG,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACvG,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAChG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACpH,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACzG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iCAAiC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACjH,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5G,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACpH,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAChG,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACzG,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClG,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACnG,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrH,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5F,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACpG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC/F,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC/G,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC7G,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC1G,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,mCAAmC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACnH,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClG,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrG,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC9F,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5G,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrG,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC1G,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClH,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oCAAoC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClI,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACzG,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sCAAsC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClI,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAClG,EAAE,IAAI,EAAE,6BAA6B,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE,kBAAkB,EAAE,IAAI,EAAE;KACnI,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE;QACf,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC5G,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QAC1G,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE;QACpF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kCAAkC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACvH,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mCAAmC,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACrH,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,oCAAoC,EAAE;QACpG,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE;QAC7F,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,oCAAoC,EAAE;QAC7G,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iCAAiC,EAAE;QAClG,EAAE,IAAI,EAAE,iCAAiC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,+BAA+B,EAAE;QACvG,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,oCAAoC,EAAE;QAC7G,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,EAAE;KACtG,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE;QACd,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,kCAAkC,EAAE;QAClF,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,8BAA8B,EAAE;QACnF,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE;KACjF,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE;QACxB,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,mDAAmD,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACtJ,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,2FAA2F,EAAE,mBAAmB,EAAE,IAAI,EAAE;QACxL,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,kEAAkE,EAAE,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAC3L,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,4EAA4E,EAAE,kBAAkB,EAAE,IAAI,EAAE;QACjL,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,0CAA0C,EAAE;KACvG,CAAC,CAAC;AACL,CAAC"}
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: fill a token documentation template in Figma using Doc Spec v1 (resolve token paths from the plugin workspace, bind TEXT layers by name). Same plugin command as apply_token_doc_spec use this entry point when following sxl://agent/recipes/doc-tokens. Clone your template first (duplicate_subtree) to obtain targetRootId.", {
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEpD,iFAAiF;AAEjF;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAI7C,MAAM,YAAY,GAAG,4DAA4D,CAAC;IAElF,IAAI,KAAyB,CAAC;IAC9B,MAAM,KAAK,GAAqE,EAAE,CAAC;IACnF,IAAI,OAAO,GAAqE,IAAI,CAAC;IACrF,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,SAAS,KAAK;QACZ,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,IAAI;YAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAErD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpC,IAAI,EAAE,EAAE,CAAC;YAAC,KAAK,EAAE,CAAC;YAAC,OAAO,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAEjE,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,EAAE,CAAC;IAER,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,KAAmB,EACnB,WAAmB,EACnB,UAAmC,EAAE;IAErC,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,WAAW,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,CAAC,CAAC,MAAW,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,KAAmB;IAC/E,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,2SAA2S,EAC3S;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC/E,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;aACpD,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;QAC3D,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;aACrC,QAAQ,EAAE;aACV,QAAQ,CAAC,oCAAoC,CAAC;KAClD,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAClD,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,OAAO,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,sQAAsQ,EACtQ;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;QACnG,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2EAA2E,CAC5E;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;QACzE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QAC1G,QAAQ,EAAE,CAAC;aACR,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,6FAA6F,CAC9F;KACJ,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,cAAc,CAKtC,KAAK,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhE,MAAM,QAAQ,GACZ,CAAC,YAAY,CAAC,QAAQ,IAAI,WAAW,CAAC;aACnC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,gBAAgB,GAAG,QAAQ,IAAI,GAAG,QAAQ,YAAY,CAAC;QAC7D,MAAM,cAAc,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;QAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEvE,MAAM,YAAY,GAAG,MAAM,cAAc,CAKtC,KAAK,EAAE,mBAAmB,EAAE;YAC7B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,SAAS,KAAK,IAAI;SAC9B,CAAC,CAAC;QAEH,IAAI,cAAc,GAAY,IAAI,CAAC;QACnC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,cAAc,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,sBAAsB,EAAE;gBACnE,MAAM,EAAE,YAAY,CAAC,MAAM;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC;YACR,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,QAAQ,EAAE,YAAY,CAAC,IAAI;YAC3B,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,QAAQ,EAAE,QAAQ,KAAK,IAAI;YAC3B,cAAc;SACf,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,qNAAqN,EACrN;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QACxG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KAC7F,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,MAAM,cAAc,CAGjC,KAAK,EAAE,aAAa,EAAE;YACvB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,QAAQ,EAAE,eAAe;SAC1B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,QAAQ;YAChC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YACtC,MAAM,EAAE,OAAO;SAChB,CAAC;QACF,OAAO,iBAAiB,CAAC,KAAK,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,+WAA+W,EAC/W;QACE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,4DAA4D,CAAC;QAC9F,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+EAA+E,CAAC;QAC5F,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;KAC5G,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,CAAC;QAClD,IAAI,YAAY;YAAE,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;QACtD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3C,OAAO,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,6fAA6f,EAC7f;QACE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACrE,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mHAAmH,CACpH;QACH,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KACvF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,CAAC;QAClD,IAAI,YAAY;YAAE,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;QACtD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3C,OAAO,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,sdAAsd,EACtd;QACE,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,CAAC,iHAAiH,CAAC;QAC9H,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QAChH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACnG,YAAY,EAAE,CAAC;aACZ,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;aAC7C,QAAQ,EAAE;aACV,QAAQ,CAAC,uEAAuE,CAAC;QACpF,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2GAA2G,CAAC;QACxH,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gEAAgE,CAAC;QAC7E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QACvG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC5G,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mJAAmJ,CAAC;QAChK,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,oGAAoG,CAAC;QACjH,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KACjF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAC/E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,mTAAmT,EACnT;QACE,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,CAAC,wDAAwD,CAAC;QACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;QAC7H,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAC3H,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACpG,sBAAsB,EAAE,CAAC;aACtB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uFAAuF,CAAC;QACpG,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;aAC9D,QAAQ,EAAE;aACV,QAAQ,CAAC,uEAAuE,CAAC;QACpF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACjG,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,iBAAiB,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;QAC3D,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gGAAgG,CAAC;QAC7G,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC/E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAC7E,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,iSAAiS,EACjS;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAC5E,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YACvF,iBAAiB,EAAE,CAAC;iBACjB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wGAAwG,CAAC;YACrH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SAChE,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE;YAChE,OAAO,EAAE,mDAAmD;SAC7D,CAAC,CACL;aACA,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6GAA6G,CAAC;QAC1H,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kEAAkE,CAAC;QAC/E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC/E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CACxE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,oUAAoU,EACpU;QACE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,oDAAoD;YACpD,+DAA+D;YAC/D,gDAAgD;YAChD,sDAAsD;YACtD,oDAAoD,CACrD;QACH,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sEAAsE,CAAC;QACnF,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,MAAM,EAAE,CAAC;aACN,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,kFAAkF,CAAC;KAChG,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,0CAA0C;gBACxC,oEAAoE,CACvE,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE;YAChD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK;YACL,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -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/{id}machine-readable doc-agent recipes (static)
9
+ * - sxl://agent/recipes/indexintent 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
  *
@@ -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/{id}machine-readable doc-agent recipes (static)
9
+ * - sxl://agent/recipes/indexintent 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.",