figma-console-mcp 1.10.1 β†’ 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +15 -23
  2. package/dist/browser/local.d.ts +3 -2
  3. package/dist/browser/local.d.ts.map +1 -1
  4. package/dist/browser/local.js +6 -9
  5. package/dist/browser/local.js.map +1 -1
  6. package/dist/cloudflare/core/comment-tools.js +3 -3
  7. package/dist/cloudflare/core/console-monitor.js +1 -1
  8. package/dist/cloudflare/core/design-code-tools.js +2 -2
  9. package/dist/cloudflare/core/figma-connector.js +2 -3
  10. package/dist/cloudflare/core/figma-desktop-connector.js +3 -2
  11. package/dist/cloudflare/core/figma-tools.js +22 -22
  12. package/dist/cloudflare/core/websocket-connector.js +1 -1
  13. package/dist/cloudflare/core/websocket-server.js +4 -5
  14. package/dist/core/comment-tools.js +3 -3
  15. package/dist/core/comment-tools.js.map +1 -1
  16. package/dist/core/console-monitor.d.ts +1 -1
  17. package/dist/core/console-monitor.js +1 -1
  18. package/dist/core/design-code-tools.js +2 -2
  19. package/dist/core/design-code-tools.js.map +1 -1
  20. package/dist/core/figma-connector.d.ts +2 -3
  21. package/dist/core/figma-connector.d.ts.map +1 -1
  22. package/dist/core/figma-connector.js +2 -3
  23. package/dist/core/figma-connector.js.map +1 -1
  24. package/dist/core/figma-desktop-connector.d.ts +3 -2
  25. package/dist/core/figma-desktop-connector.d.ts.map +1 -1
  26. package/dist/core/figma-desktop-connector.js +3 -2
  27. package/dist/core/figma-desktop-connector.js.map +1 -1
  28. package/dist/core/figma-tools.js +22 -22
  29. package/dist/core/figma-tools.js.map +1 -1
  30. package/dist/core/websocket-connector.d.ts +1 -1
  31. package/dist/core/websocket-connector.js +1 -1
  32. package/dist/core/websocket-server.d.ts.map +1 -1
  33. package/dist/core/websocket-server.js +4 -5
  34. package/dist/core/websocket-server.js.map +1 -1
  35. package/dist/local.d.ts +5 -9
  36. package/dist/local.d.ts.map +1 -1
  37. package/dist/local.js +73 -175
  38. package/dist/local.js.map +1 -1
  39. package/figma-desktop-bridge/README.md +36 -21
  40. package/figma-desktop-bridge/code.js +3 -1
  41. package/package.json +1 -1
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  > **Your design system as an API.** Model Context Protocol server that bridges design and developmentβ€”giving AI assistants complete access to Figma for **extraction**, **creation**, and **debugging**.
9
9
 
10
- > **πŸ†• v1.10.0 β€” Multi-Instance Support:** Run Figma Console MCP in multiple Claude Desktop tabs, CLI terminals, or projects simultaneously. No more port conflicts. [See what's new β†’](#-multi-instance-support-v1100)
10
+ > **πŸ†• v1.11.0 β€” CDP Removed, Smarter Multi-File:** All CDP references removed (Figma blocked it). Active file now tracks your focused tab across multiple open projects. [See changelog β†’](CHANGELOG.md)
11
11
 
12
12
  ## What is this?
13
13
 
@@ -64,8 +64,8 @@ Figma Console MCP connects AI assistants (like Claude) to Figma, enabling:
64
64
 
65
65
  #### Step 1: Get Your Figma Token
66
66
 
67
- 1. Go to [figma.com/developers/api#access-tokens](https://www.figma.com/developers/api#access-tokens)
68
- 2. Click **"Get personal access token"**
67
+ 1. Go to [Manage personal access tokens](https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens) in Figma Help
68
+ 2. Follow the steps to **create a new personal access token**
69
69
  3. Enter description: `Figma Console MCP`
70
70
  4. **Copy the token** β€” you won't see it again! (starts with `figd_`)
71
71
 
@@ -114,21 +114,14 @@ If you're not sure where to put the JSON configuration above, here's where each
114
114
 
115
115
  #### Step 3: Connect to Figma Desktop
116
116
 
117
- **Option A β€” Desktop Bridge Plugin (Recommended):**
117
+ **Desktop Bridge Plugin:**
118
118
  1. Open Figma Desktop normally (no special flags needed)
119
119
  2. Go to **Plugins β†’ Development β†’ Import plugin from manifest...**
120
120
  3. Select `figma-desktop-bridge/manifest.json` from the figma-console-mcp directory
121
- 4. Run the plugin in your Figma file β€” it auto-connects via WebSocket
122
-
123
- > One-time setup. No need to restart Figma with special flags.
124
-
125
- **Option B β€” CDP Debug Mode (Alternative):**
126
-
127
- Quit Figma completely, then restart with:
128
- - **macOS:** `open -a "Figma" --args --remote-debugging-port=9222`
129
- - **Windows:** `cmd /c "%LOCALAPPDATA%\Figma\Figma.exe" --remote-debugging-port=9222`
121
+ - **NPX users:** Run `npx figma-console-mcp@latest --print-path` to find the directory
122
+ 4. Run the plugin in your Figma file β€” it auto-connects via WebSocket (scans ports 9223–9232)
130
123
 
131
- Verify at [http://localhost:9222](http://localhost:9222) β€” you should see inspectable Figma pages.
124
+ > One-time setup. The plugin persists in your Development plugins list across sessions.
132
125
 
133
126
  #### Step 4: Restart Your MCP Client
134
127
 
@@ -139,7 +132,7 @@ Restart your MCP client to load the new configuration.
139
132
  ```
140
133
  Check Figma status
141
134
  ```
142
- β†’ Should show connection status with active transport (WebSocket or CDP)
135
+ β†’ Should show connection status with active WebSocket transport
143
136
 
144
137
  ```
145
138
  Create a simple frame with a blue background
@@ -295,7 +288,7 @@ When you first use design system tools:
295
288
 
296
289
  ### Local Mode - Personal Access Token (Manual)
297
290
 
298
- 1. Visit https://www.figma.com/developers/api#access-tokens
291
+ 1. Visit https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens
299
292
  2. Generate token
300
293
  3. Add to MCP config as `FIGMA_ACCESS_TOKEN` environment variable
301
294
 
@@ -521,12 +514,10 @@ The **Figma Desktop Bridge** plugin is the recommended way to connect Figma to t
521
514
 
522
515
  ### How the Transport Works
523
516
 
524
- - The MCP server tries **WebSocket first** (port 9223, instant check) via the Desktop Bridge plugin
525
- - If no WebSocket client is connected, it falls back to **CDP** (port 9222) if available
526
- - The transport is selected automatically per-command β€” no configuration needed
527
- - All 56+ tools work identically through either transport
528
-
529
- **CDP as fallback:** If you also launch Figma with `--remote-debugging-port=9222`, CDP serves as a fallback transport. CDP captures all page-level console logs while WebSocket captures plugin-context logs. `figma_navigate` requires CDP for browser-level navigation; in WebSocket mode it returns the connected file info with guidance instead.
517
+ - The MCP server communicates via **WebSocket** through the Desktop Bridge plugin
518
+ - The server tries port 9223 first, then automatically falls back through ports 9224–9232 if needed
519
+ - The plugin scans all ports in the range and connects to every active server it finds
520
+ - All 56+ tools work through the WebSocket transport
530
521
 
531
522
  **Multiple files:** The WebSocket server supports multiple simultaneous plugin connections β€” one per open Figma file. Each connection is tracked by file key with independent state (selection, document changes, console logs).
532
523
 
@@ -660,9 +651,10 @@ The architecture supports adding new apps with minimal boilerplate β€” each app
660
651
 
661
652
  ## πŸ›€οΈ Roadmap
662
653
 
663
- **Current Status:** v1.10.0 (Stable) - Production-ready with multi-instance support, WebSocket Bridge, 56+ tools, Comments API, and MCP Apps
654
+ **Current Status:** v1.11.0 (Stable) - Production-ready with WebSocket-only connectivity, smart multi-file tracking, 56+ tools, Comments API, and MCP Apps
664
655
 
665
656
  **Recent Releases:**
657
+ - [x] **v1.11.0** - Complete CDP removal, improved multi-file active tracking with focus detection
666
658
  - [x] **v1.10.0** - Multi-instance support (dynamic port fallback 9223–9232, multi-connection plugin, instance discovery)
667
659
  - [x] **v1.9.0** - Figma Comments tools, improved port conflict detection
668
660
  - [x] **v1.8.0** - WebSocket Bridge transport (CDP-free connectivity), real-time selection/document tracking, `figma_get_selection` + `figma_get_design_changes` tools
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Local Browser Manager
3
- * Connects to Figma Desktop via Chrome Remote Debugging Protocol
2
+ * Local Browser Manager (Legacy)
3
+ * Note: This module is maintained for backwards compatibility but is no longer
4
+ * the primary connection method. Use the WebSocket Desktop Bridge plugin instead.
4
5
  */
5
6
  import { type Page } from 'puppeteer-core';
6
7
  import type { IBrowserManager, NavigationResult } from './base.js';
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/browser/local.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAkB,EAAgB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAInE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAC1D,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;IAItC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C7B;;;OAGG;YACW,YAAY;IA4C1B;;OAEG;YACW,iBAAiB;IAuB/B;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC9B;;;OAGG;IACG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsCnE;;OAEG;IACG,MAAM,CAAC,UAAU,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/C;;OAEG;IACG,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ1C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B;;OAEG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI;IAQ9B;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAe3C;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBvC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBrC;;OAEG;IACG,iBAAiB,CAAC,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAUvD"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/browser/local.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAkB,EAAgB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAInE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAC1D,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;IAItC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC7B;;;OAGG;YACW,YAAY;IA4C1B;;OAEG;YACW,iBAAiB;IAuB/B;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC9B;;;OAGG;IACG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsCnE;;OAEG;IACG,MAAM,CAAC,UAAU,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/C;;OAEG;IACG,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ1C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B;;OAEG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI;IAQ9B;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAe3C;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBvC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBrC;;OAEG;IACG,iBAAiB,CAAC,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAUvD"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Local Browser Manager
3
- * Connects to Figma Desktop via Chrome Remote Debugging Protocol
2
+ * Local Browser Manager (Legacy)
3
+ * Note: This module is maintained for backwards compatibility but is no longer
4
+ * the primary connection method. Use the WebSocket Desktop Bridge plugin instead.
4
5
  */
5
6
  import puppeteer from 'puppeteer-core';
6
7
  import { createChildLogger } from '../core/logger.js';
@@ -43,13 +44,9 @@ export class LocalBrowserManager {
43
44
  }
44
45
  catch (error) {
45
46
  logger.error({ error, browserURL }, 'Failed to connect to Figma Desktop');
46
- throw new Error(`Failed to connect to Figma Desktop at ${browserURL}.\n\n` +
47
- `Make sure:\n` +
48
- `1. Figma Desktop is running\n` +
49
- `2. Figma was launched with: --remote-debugging-port=${debugPort}\n` +
50
- `3. "Use Developer VM" is enabled in: Plugins β†’ Development β†’ Use Developer VM\n\n` +
51
- `macOS launch command:\n` +
52
- ` open -a "Figma" --args --remote-debugging-port=${debugPort}\n\n` +
47
+ throw new Error(`Failed to connect to Figma Desktop.\n\n` +
48
+ `Please open the Desktop Bridge plugin in Figma:\n` +
49
+ ` Plugins β†’ Development β†’ Figma Desktop Bridge\n\n` +
53
50
  `Error: ${error instanceof Error ? error.message : String(error)}`);
54
51
  }
55
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/browser/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/browser/local.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ export function registerCommentTools(server, getFigmaAPI, getCurrentUrl, options
40
40
  type: "text",
41
41
  text: JSON.stringify({
42
42
  error: "no_file_url",
43
- message: "No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).",
43
+ message: "No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.",
44
44
  }),
45
45
  },
46
46
  ],
@@ -143,7 +143,7 @@ export function registerCommentTools(server, getFigmaAPI, getCurrentUrl, options
143
143
  type: "text",
144
144
  text: JSON.stringify({
145
145
  error: "no_file_url",
146
- message: "No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).",
146
+ message: "No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.",
147
147
  }),
148
148
  },
149
149
  ],
@@ -235,7 +235,7 @@ export function registerCommentTools(server, getFigmaAPI, getCurrentUrl, options
235
235
  type: "text",
236
236
  text: JSON.stringify({
237
237
  error: "no_file_url",
238
- message: "No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).",
238
+ message: "No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.",
239
239
  }),
240
240
  },
241
241
  ],
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Console Monitor
3
- * Captures and manages console logs from Figma plugins via Chrome DevTools Protocol
3
+ * Captures and manages console logs from Figma plugins
4
4
  * Monitors both main page console AND Web Worker consoles (where Figma plugins run)
5
5
  */
6
6
  import { createChildLogger } from './logger.js';
@@ -1287,7 +1287,7 @@ export function registerDesignCodeTools(server, getFigmaAPI, getCurrentUrl, vari
1287
1287
  try {
1288
1288
  const url = fileUrl || getCurrentUrl();
1289
1289
  if (!url) {
1290
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
1290
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
1291
1291
  }
1292
1292
  const fileKey = extractFileKey(url);
1293
1293
  if (!fileKey) {
@@ -1474,7 +1474,7 @@ export function registerDesignCodeTools(server, getFigmaAPI, getCurrentUrl, vari
1474
1474
  try {
1475
1475
  const url = fileUrl || getCurrentUrl();
1476
1476
  if (!url) {
1477
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
1477
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
1478
1478
  }
1479
1479
  const fileKey = extractFileKey(url);
1480
1480
  if (!fileKey) {
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Figma Connector Interface
3
3
  *
4
- * Transport abstraction that both CDP (FigmaDesktopConnector) and WebSocket
5
- * (WebSocketConnector) implement. Allows getDesktopConnector() to return
6
- * whichever transport is available β€” WebSocket preferred, CDP fallback.
4
+ * Transport abstraction for the WebSocket Desktop Bridge plugin.
5
+ * Allows getDesktopConnector() to return the active WebSocket transport.
7
6
  */
8
7
  export {};
@@ -5,8 +5,9 @@
5
5
  * to execute code with access to the full Figma Plugin API,
6
6
  * including variables without Enterprise access.
7
7
  *
8
- * Uses Puppeteer's Worker API to directly access plugin workers,
9
- * bypassing CDP context enumeration limitations.
8
+ * Uses Puppeteer's Worker API to directly access plugin workers.
9
+ * Note: This is a legacy connector maintained for backwards compatibility.
10
+ * The WebSocket Desktop Bridge plugin is the primary connection method.
10
11
  */
11
12
  import { logger } from './logger.js';
12
13
  export class FigmaDesktopConnector {
@@ -585,7 +585,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
585
585
  .string()
586
586
  .url()
587
587
  .optional()
588
- .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from CDP browser or WebSocket Desktop Bridge connection. Only required if neither is connected."),
588
+ .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from WebSocket Desktop Bridge connection. Only required if not connected."),
589
589
  depth: z
590
590
  .number()
591
591
  .min(0)
@@ -626,7 +626,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
626
626
  // Use provided URL or current URL from browser
627
627
  const url = fileUrl || getCurrentUrl();
628
628
  if (!url) {
629
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
629
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
630
630
  }
631
631
  const fileKey = extractFileKey(url);
632
632
  if (!fileKey) {
@@ -786,7 +786,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
786
786
  .string()
787
787
  .url()
788
788
  .optional()
789
- .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from CDP browser or WebSocket Desktop Bridge connection. Only required if neither is connected."),
789
+ .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from WebSocket Desktop Bridge connection. Only required if not connected."),
790
790
  includePublished: z
791
791
  .boolean()
792
792
  .optional()
@@ -896,7 +896,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
896
896
  type: "text",
897
897
  text: JSON.stringify({
898
898
  error: "No Figma file URL available",
899
- message: "Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode)."
899
+ message: "Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma."
900
900
  }),
901
901
  },
902
902
  ],
@@ -1447,9 +1447,9 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
1447
1447
  }
1448
1448
  }
1449
1449
  // FALLBACK: Try Desktop connection (when no token available OR as secondary fallback)
1450
- // Only call ensureInitialized for CDP path β€” skip when transport-agnostic connector exists
1450
+ // Only call ensureInitialized for legacy path β€” skip when transport-agnostic connector exists
1451
1451
  if (ensureInitialized && !getDesktopConnector && !parseFromConsole && (!hasToken || !restApiSucceeded)) {
1452
- logger.info("Calling ensureInitialized to initialize browser manager (CDP path)");
1452
+ logger.info("Calling ensureInitialized to initialize browser manager (legacy path)");
1453
1453
  await ensureInitialized();
1454
1454
  }
1455
1455
  const browserManager = getBrowserManager?.();
@@ -1473,7 +1473,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
1473
1473
  connector = await getDesktopConnector();
1474
1474
  }
1475
1475
  else {
1476
- // Fallback: direct CDP connector (legacy path)
1476
+ // Fallback: direct connector (legacy path)
1477
1477
  const { FigmaDesktopConnector } = await import('./figma-desktop-connector.js');
1478
1478
  const page = await browserManager.getPage();
1479
1479
  connector = new FigmaDesktopConnector(page);
@@ -1837,7 +1837,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
1837
1837
  .string()
1838
1838
  .url()
1839
1839
  .optional()
1840
- .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from CDP browser or WebSocket Desktop Bridge connection. Only required if neither is connected."),
1840
+ .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from WebSocket Desktop Bridge connection. Only required if not connected."),
1841
1841
  nodeId: z
1842
1842
  .string()
1843
1843
  .describe("Component node ID (e.g., '123:456')"),
@@ -1854,7 +1854,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
1854
1854
  try {
1855
1855
  const url = fileUrl || getCurrentUrl();
1856
1856
  if (!url) {
1857
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
1857
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
1858
1858
  }
1859
1859
  const fileKey = extractFileKey(url);
1860
1860
  if (!fileKey) {
@@ -1870,7 +1870,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
1870
1870
  connector = await getDesktopConnector();
1871
1871
  }
1872
1872
  else {
1873
- // Fallback: direct CDP connector (legacy path)
1873
+ // Fallback: direct connector (legacy path)
1874
1874
  if (ensureInitialized)
1875
1875
  await ensureInitialized();
1876
1876
  const browserManager = getBrowserManager?.();
@@ -1978,7 +1978,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
1978
1978
  `To fix:\n` +
1979
1979
  `1. Local mode: Set FIGMA_ACCESS_TOKEN environment variable, OR ensure Figma Desktop Bridge plugin is running\n` +
1980
1980
  `2. Cloud mode: Authenticate via OAuth\n` +
1981
- `3. Make sure figma_navigate was called to initialize browser connection`);
1981
+ `3. Ensure the Desktop Bridge plugin is running in Figma Desktop`);
1982
1982
  }
1983
1983
  const componentData = await api.getComponentData(fileKey, nodeId);
1984
1984
  if (!componentData) {
@@ -2077,7 +2077,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2077
2077
  .string()
2078
2078
  .url()
2079
2079
  .optional()
2080
- .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from CDP browser or WebSocket Desktop Bridge connection. Only required if neither is connected."),
2080
+ .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from WebSocket Desktop Bridge connection. Only required if not connected."),
2081
2081
  verbosity: z
2082
2082
  .enum(["summary", "standard", "full"])
2083
2083
  .optional()
@@ -2115,7 +2115,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2115
2115
  }
2116
2116
  const url = fileUrl || getCurrentUrl();
2117
2117
  if (!url) {
2118
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
2118
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
2119
2119
  }
2120
2120
  const fileKey = extractFileKey(url);
2121
2121
  if (!fileKey) {
@@ -2222,7 +2222,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2222
2222
  .string()
2223
2223
  .url()
2224
2224
  .optional()
2225
- .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from CDP browser or WebSocket Desktop Bridge connection. Only required if neither is connected."),
2225
+ .describe("Figma file URL (e.g., https://figma.com/design/abc123). Auto-detected from WebSocket Desktop Bridge connection. Only required if not connected."),
2226
2226
  nodeId: z
2227
2227
  .string()
2228
2228
  .describe("Component node ID to render as image (e.g., '695:313')"),
@@ -2251,12 +2251,12 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2251
2251
  `To fix:\n` +
2252
2252
  `1. Local mode: Set FIGMA_ACCESS_TOKEN environment variable\n` +
2253
2253
  `2. Cloud mode: Authenticate via OAuth\n\n` +
2254
- `Note: For component screenshots, figma_take_screenshot may work as browser-based alternative ` +
2255
- `if you've called figma_navigate first.`);
2254
+ `Note: For component screenshots, figma_capture_screenshot may work as an alternative ` +
2255
+ `if the Desktop Bridge plugin is connected.`);
2256
2256
  }
2257
2257
  const url = fileUrl || getCurrentUrl();
2258
2258
  if (!url) {
2259
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
2259
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
2260
2260
  }
2261
2261
  const fileKey = extractFileKey(url);
2262
2262
  if (!fileKey) {
@@ -2367,11 +2367,11 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2367
2367
  `1. Local mode: Set FIGMA_ACCESS_TOKEN environment variable\n` +
2368
2368
  `2. Cloud mode: Authenticate via OAuth\n\n` +
2369
2369
  `Note: For component metadata, figma_get_component has Desktop Bridge fallback ` +
2370
- `that works without token (requires figma_navigate first).`);
2370
+ `that works without token (requires the Desktop Bridge plugin to be connected).`);
2371
2371
  }
2372
2372
  const url = fileUrl || getCurrentUrl();
2373
2373
  if (!url) {
2374
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
2374
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
2375
2375
  }
2376
2376
  const fileKey = extractFileKey(url);
2377
2377
  if (!fileKey) {
@@ -2581,7 +2581,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2581
2581
  }
2582
2582
  const url = fileUrl || getCurrentUrl();
2583
2583
  if (!url) {
2584
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
2584
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
2585
2585
  }
2586
2586
  const fileKey = extractFileKey(url);
2587
2587
  if (!fileKey) {
@@ -2758,7 +2758,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2758
2758
  try {
2759
2759
  logger.info({ nodeId, format, scale }, "Capturing screenshot via Desktop Bridge");
2760
2760
  let result = null;
2761
- // Use the connector abstraction (supports both CDP and WebSocket)
2761
+ // Use the connector abstraction (WebSocket transport)
2762
2762
  if (getDesktopConnector) {
2763
2763
  const connector = await getDesktopConnector();
2764
2764
  logger.info({ transport: connector.getTransportType?.() || 'unknown' }, "Screenshot via connector");
@@ -2866,7 +2866,7 @@ export function registerFigmaAPITools(server, getFigmaAPI, getCurrentUrl, getCon
2866
2866
  try {
2867
2867
  logger.info({ nodeId, properties: Object.keys(properties) }, "Setting instance properties via Desktop Bridge");
2868
2868
  let result = null;
2869
- // Use the connector abstraction (supports both CDP and WebSocket)
2869
+ // Use the connector abstraction (WebSocket transport)
2870
2870
  if (getDesktopConnector) {
2871
2871
  const connector = await getDesktopConnector();
2872
2872
  logger.info({ transport: connector.getTransportType?.() || 'unknown' }, "Instance properties via connector");
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WebSocket Figma Connector
3
3
  *
4
- * Implements IFigmaConnector using WebSocket transport instead of CDP.
4
+ * Implements IFigmaConnector using the WebSocket Desktop Bridge transport.
5
5
  * Each method sends a command to the plugin UI via WebSocket and waits
6
6
  * for the response β€” same window.* functions, different transport.
7
7
  *
@@ -275,11 +275,10 @@ export class FigmaWebSocketServer extends EventEmitter {
275
275
  lastActivity: Date.now(),
276
276
  gracePeriodTimer: null,
277
277
  });
278
- // Set as active file if no active file or active file is disconnected
279
- if (!this._activeFileKey || !this.clients.has(this._activeFileKey) ||
280
- this.clients.get(this._activeFileKey)?.ws.readyState !== WebSocket.OPEN) {
281
- this._activeFileKey = fileKey;
282
- }
278
+ // Most recently connected file becomes active (user just opened the plugin there).
279
+ // On bulk reconnect the order is non-deterministic, but the first user interaction
280
+ // (SELECTION_CHANGE or PAGE_CHANGE) will correct the active file immediately.
281
+ this._activeFileKey = fileKey;
283
282
  logger.info({
284
283
  fileName: data.fileName,
285
284
  fileKey,
@@ -40,7 +40,7 @@ export function registerCommentTools(server, getFigmaAPI, getCurrentUrl, options
40
40
  type: "text",
41
41
  text: JSON.stringify({
42
42
  error: "no_file_url",
43
- message: "No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).",
43
+ message: "No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.",
44
44
  }),
45
45
  },
46
46
  ],
@@ -143,7 +143,7 @@ export function registerCommentTools(server, getFigmaAPI, getCurrentUrl, options
143
143
  type: "text",
144
144
  text: JSON.stringify({
145
145
  error: "no_file_url",
146
- message: "No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).",
146
+ message: "No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.",
147
147
  }),
148
148
  },
149
149
  ],
@@ -235,7 +235,7 @@ export function registerCommentTools(server, getFigmaAPI, getCurrentUrl, options
235
235
  type: "text",
236
236
  text: JSON.stringify({
237
237
  error: "no_file_url",
238
- message: "No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).",
238
+ message: "No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.",
239
239
  }),
240
240
  },
241
241
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"comment-tools.js","sourceRoot":"","sources":["../../src/core/comment-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AAEjE,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,UAAU,oBAAoB,CACnC,MAAiB,EACjB,WAAoC,EACpC,aAAkC,EAClC,OAAoC;IAEpC,0EAA0E;IAC1E,2BAA2B;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,IAAI,CACV,oBAAoB,EACpB,wKAAwK,EACxK;QACC,OAAO,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;QAC1D,KAAK,EAAE,CAAC;aACN,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,2DAA2D,CAAC;QACvE,gBAAgB,EAAE,CAAC;aACjB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,qFAAqF,CAAC;KACjG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,GAAG,KAAK,EAAE,gBAAgB,GAAG,KAAK,EAAE,EAAE,EAAE;QAC9D,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,OAAO,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACpB,KAAK,EAAE,aAAa;gCACpB,OAAO,EACN,6JAA6J;6BAC9J,CAAC;yBACF;qBACD;oBACD,OAAO,EAAE,IAAI;iBACb,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACpB,KAAK,EAAE,aAAa;gCACpB,OAAO,EAAE,sBAAsB,GAAG,EAAE;6BACpC,CAAC;yBACF;qBACD;oBACD,OAAO,EAAE,IAAI;iBACb,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAEvE,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAU,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;YAEnD,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,gBAAgB;gBAChC,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG;gBACd,QAAQ;gBACR,OAAO,EAAE;oBACR,KAAK,EAAE,WAAW,CAAC,MAAM;oBACzB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM;oBAC7D,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM;oBAC9D,QAAQ,EAAE,QAAQ,CAAC,MAAM;iBACzB;aACD,CAAC;YAEF,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;qBAC5B;iBACD;aACD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAElD,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACpB,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,wBAAwB,OAAO,EAAE;yBAC1C,CAAC;qBACF;iBACD;gBACD,OAAO,EAAE,IAAI;aACb,CAAC;QACH,CAAC;IACF,CAAC,CACD,CAAC;IAEF,0EAA0E;IAC1E,2BAA2B;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,IAAI,CACV,oBAAoB,EACpB,mZAAmZ,EACnZ;QACC,OAAO,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;QAC1D,OAAO,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CAAC,sDAAsD,CAAC;QAClE,OAAO,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4FAA4F,CAAC;QACxG,CAAC,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mFAAmF,CAAC;QAC/F,CAAC,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mFAAmF,CAAC;QAC/F,mBAAmB,EAAE,CAAC;aACpB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qGAAqG,CAAC;KACjH,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAClE,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,OAAO,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACpB,KAAK,EAAE,aAAa;gCACpB,OAAO,EACN,6JAA6J;6BAC9J,CAAC;yBACF;qBACD;oBACD,OAAO,EAAE,IAAI;iBACb,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACpB,KAAK,EAAE,aAAa;gCACpB,OAAO,EAAE,sBAAsB,GAAG,EAAE;6BACpC,CAAC;yBACF;qBACD;oBACD,OAAO,EAAE,IAAI;iBACb,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAE1E,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;YAEhC,mDAAmD;YACnD,6FAA6F;YAC7F,IAAI,UAAoF,CAAC;YACzF,IAAI,OAAO,EAAE,CAAC;gBACb,UAAU,GAAG;oBACZ,OAAO;oBACP,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;iBACrC,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,CACnC,OAAO,EACP,OAAO,EACP,UAAU,EACV,mBAAmB,CACnB,CAAC;YAEF,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE;gCACR,EAAE,EAAE,MAAM,CAAC,EAAE;gCACb,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gCAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;gCACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gCAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;6BACzB;yBACD,CAAC;qBACF;iBACD;aACD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAElD,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACpB,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,wBAAwB,YAAY,EAAE;yBAC/C,CAAC;qBACF;iBACD;gBACD,OAAO,EAAE,IAAI;aACb,CAAC;QACH,CAAC;IACF,CAAC,CACD,CAAC;IAEF,0EAA0E;IAC1E,6BAA6B;IAC7B,0EAA0E;IAC1E,MAAM,CAAC,IAAI,CACV,sBAAsB,EACtB,yGAAyG,EACzG;QACC,OAAO,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;QAC1D,UAAU,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CAAC,mEAAmE,CAAC;KAC/E,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QACjC,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,OAAO,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACpB,KAAK,EAAE,aAAa;gCACpB,OAAO,EACN,6JAA6J;6BAC9J,CAAC;yBACF;qBACD;oBACD,OAAO,EAAE,IAAI;iBACb,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACpB,KAAK,EAAE,aAAa;gCACpB,OAAO,EAAE,sBAAsB,GAAG,EAAE;6BACpC,CAAC;yBACF;qBACD;oBACD,OAAO,EAAE,IAAI;iBACb,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;YAEzD,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;YAChC,MAAM,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAE7C,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACpB,OAAO,EAAE,IAAI;4BACb,kBAAkB,EAAE,UAAU;yBAC9B,CAAC;qBACF;iBACD;aACD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,0BAA0B,CAAC,CAAC;YAEpD,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACpB,KAAK,EAAE,uBAAuB;4BAC9B,OAAO,EAAE,0BAA0B,OAAO,EAAE;yBAC5C,CAAC;qBACF;iBACD;gBACD,OAAO,EAAE,IAAI;aACb,CAAC;QACH,CAAC;IACF,CAAC,CACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"comment-tools.js","sourceRoot":"","sources":["../../src/core/comment-tools.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Console Monitor
3
- * Captures and manages console logs from Figma plugins via Chrome DevTools Protocol
3
+ * Captures and manages console logs from Figma plugins
4
4
  * Monitors both main page console AND Web Worker consoles (where Figma plugins run)
5
5
  */
6
6
  import type { ConsoleLogEntry, ConsoleConfig } from './types/index.js';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Console Monitor
3
- * Captures and manages console logs from Figma plugins via Chrome DevTools Protocol
3
+ * Captures and manages console logs from Figma plugins
4
4
  * Monitors both main page console AND Web Worker consoles (where Figma plugins run)
5
5
  */
6
6
  import { createChildLogger } from './logger.js';
@@ -1287,7 +1287,7 @@ export function registerDesignCodeTools(server, getFigmaAPI, getCurrentUrl, vari
1287
1287
  try {
1288
1288
  const url = fileUrl || getCurrentUrl();
1289
1289
  if (!url) {
1290
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
1290
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
1291
1291
  }
1292
1292
  const fileKey = extractFileKey(url);
1293
1293
  if (!fileKey) {
@@ -1474,7 +1474,7 @@ export function registerDesignCodeTools(server, getFigmaAPI, getCurrentUrl, vari
1474
1474
  try {
1475
1475
  const url = fileUrl || getCurrentUrl();
1476
1476
  if (!url) {
1477
- throw new Error("No Figma file URL available. Pass the fileUrl parameter, call figma_navigate (CDP mode), or ensure the Desktop Bridge plugin is connected (WebSocket mode).");
1477
+ throw new Error("No Figma file URL available. Pass the fileUrl parameter or ensure the Desktop Bridge plugin is open in Figma.");
1478
1478
  }
1479
1479
  const fileKey = extractFileKey(url);
1480
1480
  if (!fileKey) {