@atezer/figma-mcp-bridge 1.7.25 → 1.7.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +71 -0
- package/agents/ds-auditor.md +6 -0
- package/agents/screen-builder.md +6 -0
- package/agents/token-syncer.md +6 -0
- package/dist/core/audit-log.d.ts +4 -0
- package/dist/core/audit-log.d.ts.map +1 -1
- package/dist/core/audit-log.js +12 -0
- package/dist/core/audit-log.js.map +1 -1
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +6 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/plugin-bridge-connector.d.ts +16 -16
- package/dist/core/plugin-bridge-connector.d.ts.map +1 -1
- package/dist/core/plugin-bridge-connector.js +24 -3
- package/dist/core/plugin-bridge-connector.js.map +1 -1
- package/dist/core/plugin-bridge-server.d.ts +5 -3
- package/dist/core/plugin-bridge-server.d.ts.map +1 -1
- package/dist/core/plugin-bridge-server.js +34 -22
- package/dist/core/plugin-bridge-server.js.map +1 -1
- package/dist/core/response-cache.d.ts +16 -0
- package/dist/core/response-cache.d.ts.map +1 -0
- package/dist/core/response-cache.js +46 -0
- package/dist/core/response-cache.js.map +1 -0
- package/dist/core/response-guard.d.ts.map +1 -1
- package/dist/core/response-guard.js +19 -13
- package/dist/core/response-guard.js.map +1 -1
- package/dist/core/types/figma.d.ts +20 -0
- package/dist/core/types/figma.d.ts.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/local-plugin-only.d.ts.map +1 -1
- package/dist/local-plugin-only.js +271 -143
- package/dist/local-plugin-only.js.map +1 -1
- package/f-mcp-plugin/code.js +40 -3
- package/f-mcp-plugin/manifest.json +1 -1
- package/f-mcp-plugin/ui.html +45 -9
- package/hooks/hooks.json +1 -1
- package/package.json +1 -1
- package/skills/ai-handoff-export/SKILL.md +8 -0
- package/skills/component-documentation/SKILL.md +8 -0
- package/skills/figjam-diagram-builder/SKILL.md +8 -0
- package/skills/figma-screen-analyzer/SKILL.md +8 -0
- package/skills/ux-copy-guidance/SKILL.md +8 -0
- package/skills/visual-qa-compare/SKILL.md +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,77 @@ Bu dosya [Keep a Changelog](https://keepachangelog.com/tr/1.1.0/) biçimine uygu
|
|
|
12
12
|
|
|
13
13
|
Bu changelog'a ekleme öncesi sürümlerin tam ayrıntıları için `git log` kullanılabilir.
|
|
14
14
|
|
|
15
|
+
## [1.7.27] - 2026-04-11
|
|
16
|
+
|
|
17
|
+
### figma_execute Hatasiz Calisma — Kok Neden Analizi ve Cozum
|
|
18
|
+
|
|
19
|
+
9 kok neden tespit edildi ve tumu duzeltildi. figma_execute artik hata kategorisi, cozum onerisi ve execution metrikleri donuyor.
|
|
20
|
+
|
|
21
|
+
**Timeout Zinciri Duzeltmesi (En sik hata kaynagi):**
|
|
22
|
+
- Default timeout 5000ms → 15000ms (tum 3 katman: MCP handler, UI, plugin)
|
|
23
|
+
- Timeout clamping: min 3s, max 120s — asiri kisa/uzun degerler engellenir
|
|
24
|
+
- UI deadline margin 2s → 5s — round-trip icin yeterli sure
|
|
25
|
+
|
|
26
|
+
**Sonuc Serializasyon Guvenligi:**
|
|
27
|
+
- `safeSerialize()` fonksiyonu: Figma node objeleri → `{id, type, name}`, circular ref korunakli, array >500 truncate
|
|
28
|
+
- WebSocket sessiz catch kaldirild — response kaybi artik `console.error` ile loglanir, `SERIALIZATION_ERROR` mesaji donuyor
|
|
29
|
+
- JSON.stringify basarisiz olursa sessizce yutmak yerine acik hata raporu
|
|
30
|
+
|
|
31
|
+
**Hata Kategorilendirme:**
|
|
32
|
+
- `categorizeExecuteError()`: TIMEOUT, SYNTAX, RUNTIME, CONNECTION, SERIALIZATION, FONT_NOT_LOADED, VALIDATION
|
|
33
|
+
- `getErrorHint()`: Her kategori icin kullaniciya ozel Turkce cozum onerisi
|
|
34
|
+
- Plugin `success: false` sonuclari da kategorilendiriliyor (onceden sadece throw edilen hatalar icin calisiyor)
|
|
35
|
+
|
|
36
|
+
**Otomatik Retry:**
|
|
37
|
+
- Connector'da 1 kez retry: sadece transient hatalar (WebSocket disconnect, send_failed)
|
|
38
|
+
- Timeout ve runtime hatalari retry edilmez
|
|
39
|
+
|
|
40
|
+
**Execution Metrikleri:**
|
|
41
|
+
- Plugin: `executionMs` (kod calisma suresi)
|
|
42
|
+
- MCP handler: `_metrics: { durationMs, timeoutMs }` (toplam sure + timeout limiti)
|
|
43
|
+
- `resultAnalysis`: sonuc tipi, bos/null/undefined uyarilari
|
|
44
|
+
|
|
45
|
+
**Hook ve Skill:**
|
|
46
|
+
- PreToolUse hook: 6 maddelik kontrol listesi (font, sayfa reset, return formati, timeout, findAll, DS)
|
|
47
|
+
- `PluginExecuteResult` tipi genisletildi: errorCategory, hint, executionMs, resultAnalysis, _metrics
|
|
48
|
+
|
|
49
|
+
## [1.7.26] - 2026-04-11
|
|
50
|
+
|
|
51
|
+
### Performans ve Stabilite Optimizasyonu
|
|
52
|
+
|
|
53
|
+
Satirsatir kod taramasi ile tespit edilen 5 kritik bug, 6 performans sorunu ve 6 stabilite riski duzeltildi.
|
|
54
|
+
|
|
55
|
+
**Bug Duzeltmeleri:**
|
|
56
|
+
- `local-plugin-only.ts`, `plugin-bridge-server.ts` — Versiyon uyumsuzlugu: hardcoded `"1.7.24"` yerine `FMCP_VERSION` sabiti
|
|
57
|
+
- `response-guard.ts` — Agresif truncation ikinci pasi etkisizdi, parametrik `truncate()` ile duzeltildi
|
|
58
|
+
- `local-plugin-only.ts` — `figma_search_assets` dead code: `getAvailableLibraryComponentsAsync` cagirilmiyordu
|
|
59
|
+
- `local-plugin-only.ts` — `figma_watch_console` busy-loop: 120 WebSocket istegi yerine backoff + early exit
|
|
60
|
+
- `f-mcp-plugin/manifest.json` — Trailing comma gecersiz JSON, Figma plugin yuklenemiyordu
|
|
61
|
+
|
|
62
|
+
**Performans:**
|
|
63
|
+
- `safeToolHandler()` wrapper ile tum tool handler'lara try-catch (30+ handler)
|
|
64
|
+
- `JSON.stringify(x, null, 0)` gereksiz parametreler kaldirildi (25 yer)
|
|
65
|
+
- `ResponseCache` sinifi: read-only tool'lar icin TTL cache (5-10s), LRU eviction (yeni dosya: `src/core/response-cache.ts`)
|
|
66
|
+
- `figma_check_design_parity` tek-pas optimizasyonu (`codeMap.delete` ile cift dongu kaldirildi)
|
|
67
|
+
- Heartbeat `setInterval` -> recursive `setTimeout` (overlap riski yok)
|
|
68
|
+
- Process tree walk async: constructor'daki `execSync` bloklama kaldirildi
|
|
69
|
+
|
|
70
|
+
**Stabilite:**
|
|
71
|
+
- `closeAuditLog()` eklendi, shutdown handler'da cagirilir (`audit-log.ts`)
|
|
72
|
+
- `getConfig()` ilk load sonrasi cache'ler (`config.ts`)
|
|
73
|
+
- `figma_execute` 50,000 karakter limiti
|
|
74
|
+
- Mutating tool'lar (`create_*`, `update_*`, `delete_*`, `execute`) cache invalidation
|
|
75
|
+
|
|
76
|
+
**Tip Guvenligi:**
|
|
77
|
+
- `PluginBridgeConnector`: 15+ method `Promise<unknown>` -> tipli return
|
|
78
|
+
- `as any` cast'ler kaldirildi
|
|
79
|
+
- `BridgeResponse` bos result uyari logu
|
|
80
|
+
|
|
81
|
+
**Skill/Agent:**
|
|
82
|
+
- 6 skill'e standart Hata Yonetimi bolumu eklendi
|
|
83
|
+
- 3 agent'a Hata Kurtarma dokumantasyonu eklendi
|
|
84
|
+
- `validate-fmcp-skills-tools.mjs`: YAML frontmatter ve hata bolumu yapisal kontrolu
|
|
85
|
+
|
|
15
86
|
## [1.7.23] - 2026-04-11
|
|
16
87
|
|
|
17
88
|
### Refactor: Local Full + Cloudflare Modları Kaldırıldı
|
package/agents/ds-auditor.md
CHANGED
|
@@ -21,6 +21,12 @@ Sen F-MCP DS Auditor ajanısın. Görevin Figma ekranlarını design system uyum
|
|
|
21
21
|
4. **Raporlama:** Bulgularını yapılandırılmış markdown formatında sun.
|
|
22
22
|
5. **Öneriler:** Her bulgu için düzeltme önerisi ver (hangi skill kullanılmalı: fix-figma-design-system-finding veya apply-figma-design-system).
|
|
23
23
|
|
|
24
|
+
## Hata Kurtarma
|
|
25
|
+
|
|
26
|
+
- **Plugin baglanti koparsa:** `figma_get_status()` ile tekrar kontrol et. Baglanti geri gelmezse kullaniciya bilgi ver.
|
|
27
|
+
- **Tool hatasi:** Bir kez tekrar dene. Ikinci hatada durumu raporla ve manuel mudahale oner.
|
|
28
|
+
- **Timeout:** Kapsami daralt (daha az node, daha dusuk depth/verbosity) ve tekrar dene.
|
|
29
|
+
|
|
24
30
|
## Kurallar
|
|
25
31
|
|
|
26
32
|
- Sadece okuma işlemleri yap — hiçbir şeyi değiştirme.
|
package/agents/screen-builder.md
CHANGED
|
@@ -20,6 +20,12 @@ Sen F-MCP Screen Builder ajanısın. Görevin açıklama, wireframe veya koddan
|
|
|
20
20
|
- Auto-layout ile responsive yapı kur
|
|
21
21
|
5. **Doğrulama:** `figma_capture_screenshot()` ile sonucu göster ve kullanıcı onayı al.
|
|
22
22
|
|
|
23
|
+
## Hata Kurtarma
|
|
24
|
+
|
|
25
|
+
- **Plugin baglanti koparsa:** `figma_get_status()` ile tekrar kontrol et. Baglanti geri gelmezse kullaniciya bilgi ver.
|
|
26
|
+
- **Tool hatasi:** Bir kez tekrar dene. Ikinci hatada durumu raporla ve manuel mudahale oner.
|
|
27
|
+
- **Timeout:** Kapsami daralt (daha az node, daha dusuk depth/verbosity) ve tekrar dene.
|
|
28
|
+
|
|
23
29
|
## Kurallar
|
|
24
30
|
|
|
25
31
|
- `figma-canvas-ops` kurallarını her `figma_execute` öncesi uygula.
|
package/agents/token-syncer.md
CHANGED
|
@@ -19,6 +19,12 @@ Sen F-MCP Token Syncer ajanısın. Görevin Figma variable'larını ve stil'leri
|
|
|
19
19
|
- Kod → Figma (import — opsiyonel)
|
|
20
20
|
5. **Doğrulama:** Oluşturulan dosyaları kontrol et.
|
|
21
21
|
|
|
22
|
+
## Hata Kurtarma
|
|
23
|
+
|
|
24
|
+
- **Plugin baglanti koparsa:** `figma_get_status()` ile tekrar kontrol et. Baglanti geri gelmezse kullaniciya bilgi ver.
|
|
25
|
+
- **Tool hatasi:** Bir kez tekrar dene. Ikinci hatada durumu raporla ve manuel mudahale oner.
|
|
26
|
+
- **Timeout:** Kapsami daralt (daha az node, daha dusuk depth/verbosity) ve tekrar dene.
|
|
27
|
+
|
|
22
28
|
## Kurallar
|
|
23
29
|
|
|
24
30
|
- Hardcoded token değeri YASAK — tümü Figma'dan okunmalı.
|
package/dist/core/audit-log.d.ts
CHANGED
|
@@ -23,4 +23,8 @@ export declare function auditTool(path: string | undefined, method: string, succ
|
|
|
23
23
|
* Log plugin connection / disconnection.
|
|
24
24
|
*/
|
|
25
25
|
export declare function auditPlugin(path: string | undefined, event: "plugin_connect" | "plugin_disconnect"): void;
|
|
26
|
+
/**
|
|
27
|
+
* Flush and close the audit log stream. Call on graceful shutdown.
|
|
28
|
+
*/
|
|
29
|
+
export declare function closeAuditLog(): void;
|
|
26
30
|
//# sourceMappingURL=audit-log.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../src/core/audit-log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,OAAO,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI,CAQtF;AAED;;GAEG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GACjB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,IAAI,CAEzG"}
|
|
1
|
+
{"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../src/core/audit-log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,OAAO,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI,CAQtF;AAED;;GAEG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GACjB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,IAAI,CAEzG;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
|
package/dist/core/audit-log.js
CHANGED
|
@@ -60,4 +60,16 @@ export function auditTool(path, method, success, error, durationMs) {
|
|
|
60
60
|
export function auditPlugin(path, event) {
|
|
61
61
|
auditLog(path, { event });
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Flush and close the audit log stream. Call on graceful shutdown.
|
|
65
|
+
*/
|
|
66
|
+
export function closeAuditLog() {
|
|
67
|
+
if (stream) {
|
|
68
|
+
try {
|
|
69
|
+
stream.end();
|
|
70
|
+
}
|
|
71
|
+
catch { /* ignore */ }
|
|
72
|
+
stream = null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
63
75
|
//# sourceMappingURL=audit-log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../src/core/audit-log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAEpC,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAWtB,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,SAAS,SAAS,CAAC,IAAY;IAC9B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,CAAC;QACJ,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY;IAC5C,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACrB,OAAO;IACR,CAAC;IACD,IAAI,CAAC;QACJ,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACR,SAAS;IACV,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAwB,EAAE,KAA6B;IAC/E,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO;IACjC,MAAM,IAAI,GAAe,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACpE,IAAI,CAAC;QACJ,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACR,IAAI,EAAE,CAAC;IACR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,IAAwB,EACxB,MAAc,EACd,OAAgB,EAChB,KAAc,EACd,UAAmB;IAEnB,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,KAA6C;IAClG,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../src/core/audit-log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAEpC,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAWtB,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,SAAS,SAAS,CAAC,IAAY;IAC9B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,CAAC;QACJ,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY;IAC5C,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACrB,OAAO;IACR,CAAC;IACD,IAAI,CAAC;QACJ,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACR,SAAS;IACV,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAwB,EAAE,KAA6B;IAC/E,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO;IACjC,MAAM,IAAI,GAAe,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACpE,IAAI,CAAC;QACJ,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACR,IAAI,EAAE,CAAC;IACR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,IAAwB,EACxB,MAAc,EACd,OAAgB,EAChB,KAAc,EACd,UAAmB;IAEnB,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,KAA6C;IAClG,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC5B,IAAI,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC;YAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,GAAG,IAAI,CAAC;IACf,CAAC;AACF,CAAC"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { ServerConfig } from './types/index.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function loadConfig(): ServerConfig;
|
|
9
9
|
/**
|
|
10
|
-
* Get configuration
|
|
10
|
+
* Get configuration (cached after first load)
|
|
11
11
|
*/
|
|
12
12
|
export declare function getConfig(): ServerConfig;
|
|
13
13
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA2BrD;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAyBzC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA2BrD;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAyBzC;AAID;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAIxC"}
|
package/dist/core/config.js
CHANGED
|
@@ -55,10 +55,14 @@ export function loadConfig() {
|
|
|
55
55
|
// No config file found, use defaults
|
|
56
56
|
return DEFAULT_CONFIG;
|
|
57
57
|
}
|
|
58
|
+
let cachedConfig = null;
|
|
58
59
|
/**
|
|
59
|
-
* Get configuration
|
|
60
|
+
* Get configuration (cached after first load)
|
|
60
61
|
*/
|
|
61
62
|
export function getConfig() {
|
|
62
|
-
|
|
63
|
+
if (cachedConfig)
|
|
64
|
+
return cachedConfig;
|
|
65
|
+
cachedConfig = loadConfig();
|
|
66
|
+
return cachedConfig;
|
|
63
67
|
}
|
|
64
68
|
//# sourceMappingURL=config.js.map
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B;;GAEG;AACH,MAAM,cAAc,GAAiB;IACnC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACL,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,EAAE,EAAE,CAAC;QACnH,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS;KAChE;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,uBAAuB;IACvB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC;IAC5C,mBAAmB;IACnB,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,aAAa,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,EAAE,wBAAwB,CAAC;CAC1C,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,+BAA+B;IAC/B,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAE3C,sBAAsB;gBACtB,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,GAAG,cAAc,CAAC,KAAM;wBACxB,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;qBAC5B;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClE,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B;;GAEG;AACH,MAAM,cAAc,GAAiB;IACnC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACL,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,EAAE,EAAE,CAAC;QACnH,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS;KAChE;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,uBAAuB;IACvB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC;IAC5C,mBAAmB;IACnB,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,aAAa,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,EAAE,wBAAwB,CAAC;CAC1C,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,+BAA+B;IAC/B,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAE3C,sBAAsB;gBACtB,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,GAAG,cAAc,CAAC,KAAM;wBACxB,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;qBAC5B;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClE,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,YAAY,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Supports optional fileKey routing for multi-client scenarios.
|
|
7
7
|
*/
|
|
8
8
|
import type { PluginBridgeServer } from "./plugin-bridge-server.js";
|
|
9
|
-
import type { PluginVariablesPayload, PluginComponentPayload } from "./types/figma.js";
|
|
9
|
+
import type { PluginVariablesPayload, PluginStylesPayload, PluginComponentPayload, PluginDocumentStructure, PluginScreenshotPayload, PluginCrudResult } from "./types/figma.js";
|
|
10
10
|
export declare class PluginBridgeConnector {
|
|
11
11
|
private bridge;
|
|
12
12
|
private fileKey?;
|
|
@@ -18,22 +18,22 @@ export declare class PluginBridgeConnector {
|
|
|
18
18
|
getVariables(fileKey?: string): Promise<PluginVariablesPayload>;
|
|
19
19
|
getComponentByNodeId(nodeId: string): Promise<PluginComponentPayload>;
|
|
20
20
|
executeCodeViaUI(code: string, timeout?: number): Promise<unknown>;
|
|
21
|
-
updateVariable(variableId: string, modeId: string, value: unknown): Promise<
|
|
21
|
+
updateVariable(variableId: string, modeId: string, value: unknown): Promise<PluginCrudResult>;
|
|
22
22
|
createVariable(name: string, collectionId: string, resolvedType: "COLOR" | "FLOAT" | "STRING" | "BOOLEAN", options?: {
|
|
23
23
|
valuesByMode?: Record<string, unknown>;
|
|
24
24
|
description?: string;
|
|
25
25
|
scopes?: string[];
|
|
26
|
-
}): Promise<
|
|
26
|
+
}): Promise<PluginCrudResult>;
|
|
27
27
|
createVariableCollection(name: string, options?: {
|
|
28
28
|
initialModeName?: string;
|
|
29
29
|
additionalModes?: string[];
|
|
30
|
-
}): Promise<
|
|
31
|
-
deleteVariable(variableId: string): Promise<
|
|
32
|
-
deleteVariableCollection(collectionId: string): Promise<
|
|
33
|
-
renameVariable(variableId: string, newName: string): Promise<
|
|
34
|
-
addMode(collectionId: string, modeName: string): Promise<
|
|
35
|
-
renameMode(collectionId: string, modeId: string, newName: string): Promise<
|
|
36
|
-
refreshVariables(): Promise<
|
|
30
|
+
}): Promise<PluginCrudResult>;
|
|
31
|
+
deleteVariable(variableId: string): Promise<PluginCrudResult>;
|
|
32
|
+
deleteVariableCollection(collectionId: string): Promise<PluginCrudResult>;
|
|
33
|
+
renameVariable(variableId: string, newName: string): Promise<PluginCrudResult>;
|
|
34
|
+
addMode(collectionId: string, modeName: string): Promise<PluginCrudResult>;
|
|
35
|
+
renameMode(collectionId: string, modeId: string, newName: string): Promise<PluginCrudResult>;
|
|
36
|
+
refreshVariables(): Promise<PluginCrudResult>;
|
|
37
37
|
getLocalComponents(opts?: {
|
|
38
38
|
currentPageOnly?: boolean;
|
|
39
39
|
limit?: number;
|
|
@@ -95,8 +95,8 @@ export declare class PluginBridgeConnector {
|
|
|
95
95
|
captureScreenshot(nodeId: string | null, options?: {
|
|
96
96
|
format?: string;
|
|
97
97
|
scale?: number;
|
|
98
|
-
}): Promise<
|
|
99
|
-
setInstanceProperties(nodeId: string, properties: Record<string, unknown>): Promise<
|
|
98
|
+
}): Promise<PluginScreenshotPayload>;
|
|
99
|
+
setInstanceProperties(nodeId: string, properties: Record<string, unknown>): Promise<PluginCrudResult>;
|
|
100
100
|
getDocumentStructure(depth?: number, verbosity?: string, opts?: {
|
|
101
101
|
excludeScreenshot?: boolean;
|
|
102
102
|
includeLayout?: boolean;
|
|
@@ -104,7 +104,7 @@ export declare class PluginBridgeConnector {
|
|
|
104
104
|
includeTypography?: boolean;
|
|
105
105
|
includeCodeReady?: boolean;
|
|
106
106
|
outputHint?: "react" | "tailwind";
|
|
107
|
-
}): Promise<
|
|
107
|
+
}): Promise<PluginDocumentStructure>;
|
|
108
108
|
getNodeContext(nodeId: string, depth?: number, verbosity?: string, opts?: {
|
|
109
109
|
excludeScreenshot?: boolean;
|
|
110
110
|
includeLayout?: boolean;
|
|
@@ -112,8 +112,8 @@ export declare class PluginBridgeConnector {
|
|
|
112
112
|
includeTypography?: boolean;
|
|
113
113
|
includeCodeReady?: boolean;
|
|
114
114
|
outputHint?: "react" | "tailwind";
|
|
115
|
-
}): Promise<
|
|
116
|
-
getLocalStyles(verbosity?: string): Promise<
|
|
115
|
+
}): Promise<PluginDocumentStructure>;
|
|
116
|
+
getLocalStyles(verbosity?: string): Promise<PluginStylesPayload>;
|
|
117
117
|
getConsoleLogs(limit?: number): Promise<{
|
|
118
118
|
logs: Array<{
|
|
119
119
|
level: string;
|
|
@@ -162,7 +162,7 @@ export declare class PluginBridgeConnector {
|
|
|
162
162
|
value?: unknown;
|
|
163
163
|
values?: Record<string, unknown>;
|
|
164
164
|
}> | Record<string, unknown>;
|
|
165
|
-
}): Promise<
|
|
165
|
+
}): Promise<PluginCrudResult>;
|
|
166
166
|
arrangeComponentSet(nodeIds: string[]): Promise<{
|
|
167
167
|
nodeId: string;
|
|
168
168
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-bridge-connector.d.ts","sourceRoot":"","sources":["../../src/core/plugin-bridge-connector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,EACX,sBAAsB,
|
|
1
|
+
{"version":3,"file":"plugin-bridge-connector.d.ts","sourceRoot":"","sources":["../../src/core/plugin-bridge-connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,28 @@ export class PluginBridgeConnector {
|
|
|
29
29
|
async getComponentByNodeId(nodeId) {
|
|
30
30
|
return this.bridge.request("getComponentByNodeId", { nodeId }, this.fileKey);
|
|
31
31
|
}
|
|
32
|
-
async executeCodeViaUI(code, timeout =
|
|
33
|
-
|
|
32
|
+
async executeCodeViaUI(code, timeout = 15000) {
|
|
33
|
+
const MAX_RETRIES = 1;
|
|
34
|
+
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
35
|
+
try {
|
|
36
|
+
return await this.bridge.request("executeCodeViaUI", { code, timeout }, this.fileKey);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
40
|
+
const isTransient = msg.includes("WebSocket") ||
|
|
41
|
+
msg.includes("not open") ||
|
|
42
|
+
msg.includes("send_failed") ||
|
|
43
|
+
msg.includes("WebSocket closed") ||
|
|
44
|
+
(msg.includes("Plugin bridge request") && msg.includes("failed:") && !msg.includes("timed out"));
|
|
45
|
+
if (isTransient && attempt < MAX_RETRIES) {
|
|
46
|
+
logger.warn({ attempt, error: msg }, "figma_execute: transient failure, retrying after 1s");
|
|
47
|
+
await new Promise(r => setTimeout(r, 1000));
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
throw new Error("figma_execute: all retries exhausted");
|
|
34
54
|
}
|
|
35
55
|
async updateVariable(variableId, modeId, value) {
|
|
36
56
|
return this.bridge.request("updateVariable", { variableId, modeId, value }, this.fileKey);
|
|
@@ -199,7 +219,8 @@ export class PluginBridgeConnector {
|
|
|
199
219
|
}
|
|
200
220
|
async arrangeComponentSet(nodeIds) {
|
|
201
221
|
const res = (await this.bridge.request("arrangeComponentSet", { nodeIds }, this.fileKey));
|
|
202
|
-
|
|
222
|
+
const data = res?.data;
|
|
223
|
+
return data ?? { nodeId: res?.nodeId ?? "", name: res?.name ?? "" };
|
|
203
224
|
}
|
|
204
225
|
async dispose() {
|
|
205
226
|
logger.info("Plugin bridge connector disposed");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-bridge-connector.js","sourceRoot":"","sources":["../../src/core/plugin-bridge-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-bridge-connector.js","sourceRoot":"","sources":["../../src/core/plugin-bridge-connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,14 +57,16 @@ export declare class PluginBridgeServer {
|
|
|
57
57
|
/** Figma REST API token (in-memory only, never written to disk). */
|
|
58
58
|
private figmaRestToken;
|
|
59
59
|
/** AI client name detected from parent process (Claude, Cursor, etc.) */
|
|
60
|
-
private
|
|
60
|
+
private clientName;
|
|
61
61
|
/** User/config preferred port (before clamp and fallback). */
|
|
62
62
|
private readonly preferredPort;
|
|
63
63
|
constructor(port: number, options?: {
|
|
64
64
|
auditLogPath?: string;
|
|
65
65
|
});
|
|
66
|
-
/** Detect AI client name
|
|
67
|
-
private
|
|
66
|
+
/** Detect AI client name from env vars (instant, no I/O). */
|
|
67
|
+
private detectClientNameSync;
|
|
68
|
+
/** Async detection via process tree walk — updates clientName in background. */
|
|
69
|
+
private detectClientNameAsync;
|
|
68
70
|
private port;
|
|
69
71
|
/** Last error message when bridge could not bind (port conflict, etc.) */
|
|
70
72
|
private startError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-bridge-server.d.ts","sourceRoot":"","sources":["../../src/core/plugin-bridge-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-bridge-server.d.ts","sourceRoot":"","sources":["../../src/core/plugin-bridge-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import { createServer, get as httpGet, request as httpRequest } from "http";
|
|
|
15
15
|
import { execSync } from "child_process";
|
|
16
16
|
import { logger } from "./logger.js";
|
|
17
17
|
import { auditTool, auditPlugin } from "./audit-log.js";
|
|
18
|
+
import { FMCP_VERSION } from "./version.js";
|
|
18
19
|
const HEARTBEAT_INTERVAL_MS = 3000;
|
|
19
20
|
const MIN_PORT = 5454;
|
|
20
21
|
const MAX_PORT = 5470;
|
|
@@ -39,39 +40,44 @@ export class PluginBridgeServer {
|
|
|
39
40
|
this.preferredPort = clamped;
|
|
40
41
|
this.port = clamped;
|
|
41
42
|
this.auditLogPath = options?.auditLogPath;
|
|
42
|
-
this.clientName = this.
|
|
43
|
+
this.clientName = this.detectClientNameSync();
|
|
43
44
|
}
|
|
44
|
-
/** Detect AI client name
|
|
45
|
-
|
|
46
|
-
// 1. Explicit env var (highest priority)
|
|
45
|
+
/** Detect AI client name from env vars (instant, no I/O). */
|
|
46
|
+
detectClientNameSync() {
|
|
47
47
|
if (process.env.FIGMA_MCP_CLIENT_NAME)
|
|
48
48
|
return process.env.FIGMA_MCP_CLIENT_NAME;
|
|
49
|
-
// 2. Claude Code env detection
|
|
50
49
|
if (process.env.CLAUDECODE === "1")
|
|
51
50
|
return "Claude Code";
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
if (process.env.CURSOR_TRACE_ID)
|
|
52
|
+
return "Cursor";
|
|
53
|
+
return "MCP";
|
|
54
|
+
}
|
|
55
|
+
/** Async detection via process tree walk — updates clientName in background. */
|
|
56
|
+
detectClientNameAsync() {
|
|
57
|
+
if (this.clientName !== "MCP")
|
|
58
|
+
return; // Already detected via env
|
|
58
59
|
try {
|
|
59
60
|
let pid = process.ppid;
|
|
60
61
|
for (let i = 0; i < 5 && pid > 1; i++) {
|
|
61
62
|
const line = execSync(`ps -p ${pid} -o ppid=,comm=`, { timeout: 1000 }).toString().trim();
|
|
62
63
|
const comm = line.replace(/^\s*\d+\s+/, "");
|
|
63
64
|
const ppidMatch = line.match(/^\s*(\d+)/);
|
|
64
|
-
if (/[Cc]ursor/i.test(comm))
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (/[
|
|
69
|
-
|
|
65
|
+
if (/[Cc]ursor/i.test(comm)) {
|
|
66
|
+
this.clientName = "Cursor";
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (/[Cc]laude/i.test(comm)) {
|
|
70
|
+
this.clientName = "Claude";
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (/[Ww]indsurf/i.test(comm)) {
|
|
74
|
+
this.clientName = "Windsurf";
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
70
77
|
pid = ppidMatch ? parseInt(ppidMatch[1], 10) : 0;
|
|
71
78
|
}
|
|
72
79
|
}
|
|
73
80
|
catch { /* ignore */ }
|
|
74
|
-
return "MCP";
|
|
75
81
|
}
|
|
76
82
|
start() {
|
|
77
83
|
if (this.wss) {
|
|
@@ -79,6 +85,7 @@ export class PluginBridgeServer {
|
|
|
79
85
|
return;
|
|
80
86
|
}
|
|
81
87
|
this.startError = null;
|
|
88
|
+
this.detectClientNameAsync();
|
|
82
89
|
this.tryListenFixed(this.preferredPort, false);
|
|
83
90
|
}
|
|
84
91
|
/** Get last startup error (null if running fine). */
|
|
@@ -326,7 +333,7 @@ export class PluginBridgeServer {
|
|
|
326
333
|
logger.info({ clientId, fileKey: incomingFileKey, fileName: incomingFileName }, "Plugin bridge: client registered (fileKey=%s, fileName=%s)", incomingFileKey, incomingFileName);
|
|
327
334
|
ws.send(JSON.stringify({
|
|
328
335
|
type: "welcome",
|
|
329
|
-
bridgeVersion:
|
|
336
|
+
bridgeVersion: FMCP_VERSION,
|
|
330
337
|
port: this.port,
|
|
331
338
|
clientId,
|
|
332
339
|
multiClient: true,
|
|
@@ -360,6 +367,9 @@ export class PluginBridgeServer {
|
|
|
360
367
|
p.reject(new Error(msg.error));
|
|
361
368
|
}
|
|
362
369
|
else {
|
|
370
|
+
if (msg.result === undefined) {
|
|
371
|
+
logger.warn({ method: p.method, msgId: msg.id }, "Plugin bridge: response has no result and no error");
|
|
372
|
+
}
|
|
363
373
|
auditTool(this.auditLogPath, p.method, true, undefined, durationMs);
|
|
364
374
|
p.resolve(msg.result);
|
|
365
375
|
}
|
|
@@ -380,7 +390,7 @@ export class PluginBridgeServer {
|
|
|
380
390
|
// Notify async restart() that binding succeeded
|
|
381
391
|
this._listenResolve?.(true);
|
|
382
392
|
this._listenResolve = null;
|
|
383
|
-
|
|
393
|
+
const heartbeat = () => {
|
|
384
394
|
for (const [clientId, info] of this.clients) {
|
|
385
395
|
if (info.ws.readyState !== 1) {
|
|
386
396
|
this.removeClient(clientId, "WebSocket not open");
|
|
@@ -407,7 +417,9 @@ export class PluginBridgeServer {
|
|
|
407
417
|
}
|
|
408
418
|
catch { /* ignore */ }
|
|
409
419
|
}
|
|
410
|
-
|
|
420
|
+
this.heartbeatTimer = setTimeout(heartbeat, HEARTBEAT_INTERVAL_MS);
|
|
421
|
+
};
|
|
422
|
+
this.heartbeatTimer = setTimeout(heartbeat, HEARTBEAT_INTERVAL_MS);
|
|
411
423
|
});
|
|
412
424
|
}
|
|
413
425
|
/**
|
|
@@ -555,7 +567,7 @@ export class PluginBridgeServer {
|
|
|
555
567
|
}
|
|
556
568
|
stop() {
|
|
557
569
|
if (this.heartbeatTimer) {
|
|
558
|
-
|
|
570
|
+
clearTimeout(this.heartbeatTimer);
|
|
559
571
|
this.heartbeatTimer = null;
|
|
560
572
|
}
|
|
561
573
|
this.rejectAllPending("Plugin bridge server stopped");
|