@customaise/mcp
Advanced tools
| /** | ||
| * Cap state — pure logic for tracking the MCP server's per-session | ||
| * counter and deciding when to allow / refuse a tool dispatch. | ||
| * | ||
| * Architecture (per ARD §4.4): | ||
| * - Extension owns the persistent counter (chrome.storage.local) | ||
| * - MCP server holds an in-memory mirror, adopted from the extension's | ||
| * init_session frame and updated on every dispatch_ack | ||
| * - Cap pre-check happens BEFORE the dispatch round-trip — Free user | ||
| * over-cap dispatches never reach the extension at all | ||
| * | ||
| * No imports, no side effects. Easy to unit test. | ||
| */ | ||
| export declare const DAILY_CAP = 50; | ||
| export declare const WEEKLY_CAP = 150; | ||
| /** | ||
| * JSON-RPC server-error codes (in the implementation-defined | ||
| * -32000..-32099 range so MCP clients treat them as transient and | ||
| * actionable, NOT as fatal/cacheable like -32603). Locked by ARD §8. | ||
| */ | ||
| export declare const ERROR_CODE_AUTH_REQUIRED = -32028; | ||
| export declare const ERROR_CODE_CAP_EXCEEDED = -32029; | ||
| export declare const ERROR_CODE_DISPATCH_TIMEOUT = -32030; | ||
| export declare const ERROR_CODE_EXTENSION_OUTDATED = -32031; | ||
| export declare const ERROR_CODE_INTEGRITY_VIOLATION = -32032; | ||
| /** | ||
| * Semantic states for a session. The server-side cap behaviour branches | ||
| * on these. | ||
| */ | ||
| export type SessionMode = 'pending' | 'unlimited' | 'capped' | 'legacy' | 'compromised'; | ||
| /** | ||
| * Live state held in-memory by ExtensionBridge for each connected | ||
| * extension session. Reset on every bridge reconnect. | ||
| */ | ||
| export interface CapSession { | ||
| /** Session GUID — for legacy sessions, server-generated; otherwise from extension's init_session. */ | ||
| sessionId: string; | ||
| /** Extension's install_id (random GUID), for telemetry attribution. Null for legacy sessions. */ | ||
| installId: string | null; | ||
| mode: SessionMode; | ||
| /** Per-day count tracked by the server. For unlimited/compromised, unused. */ | ||
| dailyUsed: number; | ||
| /** Rolling 7-day count tracked by the server. */ | ||
| weeklyUsed: number; | ||
| /** Cap values from extension. For unlimited, unused. */ | ||
| dailyCap: number; | ||
| weeklyCap: number; | ||
| /** UTC date string YYYY-MM-DD that dailyUsed corresponds to. UTC midnight rollover resets dailyUsed to 0. */ | ||
| dailyDateUtc: string; | ||
| /** Monotonic seq_num for outgoing dispatch_tool frames. Increments on every dispatch attempt. */ | ||
| nextSeqNum: number; | ||
| /** Has the server already sent the one-time "extension out of date" deprecation error to the IDE? */ | ||
| deprecationErrorSent: boolean; | ||
| } | ||
| /** Pure constructor for a fresh session in 'pending' state. */ | ||
| export declare function createPendingSession(sessionId: string): CapSession; | ||
| /** | ||
| * Apply an `init_session` payload from the extension. Switches the | ||
| * session out of 'pending' into 'unlimited' or 'capped' depending on | ||
| * the payload shape. | ||
| * | ||
| * Forgiving on missing fields: if extension reports tier='free' without | ||
| * cap fields, we use the defaults. If extension reports unlimited:true, | ||
| * we ignore any cap fields it may also have included. | ||
| */ | ||
| export declare function applyInitSession(session: CapSession, payload: { | ||
| session_id?: string; | ||
| install_id?: string; | ||
| tier?: string; | ||
| unlimited?: boolean; | ||
| daily_cap?: number; | ||
| weekly_cap?: number; | ||
| current_used_daily?: number; | ||
| current_used_week?: number; | ||
| }): CapSession; | ||
| /** Mark a session as legacy (extension never sent init_session within grace). */ | ||
| export declare function markLegacy(session: CapSession): CapSession; | ||
| /** Mark a session compromised (backwards-counter ack). Refuses further dispatches. */ | ||
| export declare function markCompromised(session: CapSession): CapSession; | ||
| /** | ||
| * Roll the daily counter over if the UTC date has changed since | ||
| * `session.dailyDateUtc`. Returns the (possibly updated) session and | ||
| * a flag indicating whether the rollover happened. | ||
| * | ||
| * Note: weekly counter is intentionally NOT reset here — the rolling | ||
| * 7-day window is enforced by the extension (which keeps a 7-element | ||
| * history); the server adopts whatever weeklyUsed the extension reports | ||
| * on the next ack and trusts that. | ||
| */ | ||
| export declare function rolloverDailyIfNeeded(session: CapSession, now: Date): { | ||
| session: CapSession; | ||
| rolled: boolean; | ||
| }; | ||
| /** | ||
| * Decision: can this session dispatch a tool right now? | ||
| * | ||
| * - 'unlimited' → always allowed | ||
| * - 'compromised' → never allowed (until reconnect) | ||
| * - 'legacy' → allowed if under cap (server-tracked counter) | ||
| * - 'capped' → allowed if under cap | ||
| * - 'pending' → caller waits for init_session resolution; not decided here | ||
| */ | ||
| export type CapDecision = { | ||
| allow: true; | ||
| } | { | ||
| allow: false; | ||
| code: typeof ERROR_CODE_CAP_EXCEEDED | typeof ERROR_CODE_INTEGRITY_VIOLATION; | ||
| scope: 'daily' | 'weekly' | 'session'; | ||
| message: string; | ||
| data: Record<string, unknown>; | ||
| }; | ||
| export declare function decideDispatch(session: CapSession, now: Date): CapDecision; | ||
| /** | ||
| * Apply the counter from a `dispatch_ack` frame. The extension is the | ||
| * persistent truth (per ARD §4.2), so the server adopts whatever | ||
| * counter the extension reports — UNLESS it went backwards, which is | ||
| * the actual tampering signal. | ||
| * | ||
| * Returns either: | ||
| * - `{ kind: 'adopt' }`: counter advanced or stayed equal; quietly adopt | ||
| * - `{ kind: 'integrity_violation' }`: counter went down; mark compromised + emit report | ||
| */ | ||
| export type AckOutcome = { | ||
| kind: 'adopt'; | ||
| session: CapSession; | ||
| } | { | ||
| kind: 'integrity_violation'; | ||
| session: CapSession; | ||
| serverCountBefore: number; | ||
| ackCounter: number; | ||
| }; | ||
| export declare function applyAck(session: CapSession, ack: { | ||
| counter?: number; | ||
| success?: boolean; | ||
| }, tool: string): AckOutcome; | ||
| /** | ||
| * Local increment for legacy sessions where the extension can't ack. | ||
| * The server's in-memory counter is the only counter; on server restart | ||
| * it resets (acknowledged in ARD §7 risks). | ||
| */ | ||
| export declare function incrementLocalLegacyCounter(session: CapSession): CapSession; | ||
| /** Allocate the next outgoing seq_num and return updated session. */ | ||
| export declare function takeNextSeqNum(session: CapSession): { | ||
| session: CapSession; | ||
| seqNum: number; | ||
| }; | ||
| export declare function utcDateString(date: Date): string; | ||
| export declare function nextUtcMidnight(now: Date): Date; | ||
| /** | ||
| * Build the `report_integrity_error` frame the server sends to the | ||
| * extension when a backwards-counter ack is detected. Pure data; the | ||
| * bridge serialises and sends. | ||
| */ | ||
| export declare function buildIntegrityReport(session: CapSession, serverCountBefore: number, ackCounter: number, tool: string): { | ||
| type: 'report_integrity_error'; | ||
| session_id: string; | ||
| scope: 'backwards_counter'; | ||
| server_count_before: number; | ||
| ack_counter: number; | ||
| tool: string; | ||
| }; | ||
| //# sourceMappingURL=cap-state.d.ts.map |
| {"version":3,"file":"cap-state.d.ts","sourceRoot":"","sources":["../src/cap-state.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Cap state — pure logic for tracking the MCP server's per-session | ||
| * counter and deciding when to allow / refuse a tool dispatch. | ||
| * | ||
| * Architecture (per ARD §4.4): | ||
| * - Extension owns the persistent counter (chrome.storage.local) | ||
| * - MCP server holds an in-memory mirror, adopted from the extension's | ||
| * init_session frame and updated on every dispatch_ack | ||
| * - Cap pre-check happens BEFORE the dispatch round-trip — Free user | ||
| * over-cap dispatches never reach the extension at all | ||
| * | ||
| * No imports, no side effects. Easy to unit test. | ||
| */ | ||
| export const DAILY_CAP = 50; | ||
| export const WEEKLY_CAP = 150; | ||
| /** | ||
| * JSON-RPC server-error codes (in the implementation-defined | ||
| * -32000..-32099 range so MCP clients treat them as transient and | ||
| * actionable, NOT as fatal/cacheable like -32603). Locked by ARD §8. | ||
| */ | ||
| export const ERROR_CODE_AUTH_REQUIRED = -32028; | ||
| export const ERROR_CODE_CAP_EXCEEDED = -32029; | ||
| export const ERROR_CODE_DISPATCH_TIMEOUT = -32030; | ||
| export const ERROR_CODE_EXTENSION_OUTDATED = -32031; | ||
| export const ERROR_CODE_INTEGRITY_VIOLATION = -32032; | ||
| /** Pure constructor for a fresh session in 'pending' state. */ | ||
| export function createPendingSession(sessionId) { | ||
| return { | ||
| sessionId, | ||
| installId: null, | ||
| mode: 'pending', | ||
| dailyUsed: 0, | ||
| weeklyUsed: 0, | ||
| dailyCap: DAILY_CAP, | ||
| weeklyCap: WEEKLY_CAP, | ||
| dailyDateUtc: utcDateString(new Date()), | ||
| nextSeqNum: 1, | ||
| deprecationErrorSent: false, | ||
| }; | ||
| } | ||
| /** | ||
| * Apply an `init_session` payload from the extension. Switches the | ||
| * session out of 'pending' into 'unlimited' or 'capped' depending on | ||
| * the payload shape. | ||
| * | ||
| * Forgiving on missing fields: if extension reports tier='free' without | ||
| * cap fields, we use the defaults. If extension reports unlimited:true, | ||
| * we ignore any cap fields it may also have included. | ||
| */ | ||
| export function applyInitSession(session, payload) { | ||
| const next = { ...session }; | ||
| if (typeof payload.session_id === 'string' && payload.session_id.length > 0) { | ||
| next.sessionId = payload.session_id; | ||
| } | ||
| if (typeof payload.install_id === 'string' && payload.install_id.length > 0) { | ||
| next.installId = payload.install_id; | ||
| } | ||
| if (payload.unlimited === true || payload.tier === 'power_user' || payload.tier === 'trial') { | ||
| next.mode = 'unlimited'; | ||
| return next; | ||
| } | ||
| next.mode = 'capped'; | ||
| if (Number.isFinite(payload.daily_cap) && payload.daily_cap >= 0) { | ||
| next.dailyCap = payload.daily_cap; | ||
| } | ||
| if (Number.isFinite(payload.weekly_cap) && payload.weekly_cap >= 0) { | ||
| next.weeklyCap = payload.weekly_cap; | ||
| } | ||
| if (Number.isFinite(payload.current_used_daily) && payload.current_used_daily >= 0) { | ||
| next.dailyUsed = Math.floor(payload.current_used_daily); | ||
| } | ||
| if (Number.isFinite(payload.current_used_week) && payload.current_used_week >= 0) { | ||
| next.weeklyUsed = Math.floor(payload.current_used_week); | ||
| } | ||
| return next; | ||
| } | ||
| /** Mark a session as legacy (extension never sent init_session within grace). */ | ||
| export function markLegacy(session) { | ||
| return { ...session, mode: 'legacy' }; | ||
| } | ||
| /** Mark a session compromised (backwards-counter ack). Refuses further dispatches. */ | ||
| export function markCompromised(session) { | ||
| return { ...session, mode: 'compromised' }; | ||
| } | ||
| /** | ||
| * Roll the daily counter over if the UTC date has changed since | ||
| * `session.dailyDateUtc`. Returns the (possibly updated) session and | ||
| * a flag indicating whether the rollover happened. | ||
| * | ||
| * Note: weekly counter is intentionally NOT reset here — the rolling | ||
| * 7-day window is enforced by the extension (which keeps a 7-element | ||
| * history); the server adopts whatever weeklyUsed the extension reports | ||
| * on the next ack and trusts that. | ||
| */ | ||
| export function rolloverDailyIfNeeded(session, now) { | ||
| const todayUtc = utcDateString(now); | ||
| if (todayUtc === session.dailyDateUtc) { | ||
| return { session, rolled: false }; | ||
| } | ||
| return { | ||
| session: { ...session, dailyDateUtc: todayUtc, dailyUsed: 0 }, | ||
| rolled: true, | ||
| }; | ||
| } | ||
| export function decideDispatch(session, now) { | ||
| if (session.mode === 'unlimited') { | ||
| return { allow: true }; | ||
| } | ||
| if (session.mode === 'compromised') { | ||
| return { | ||
| allow: false, | ||
| code: ERROR_CODE_INTEGRITY_VIOLATION, | ||
| scope: 'session', | ||
| message: 'MCP integrity check failed for this session. Reconnect MCP from the Customaise extension Settings to recover.', | ||
| data: { type: 'integrity_violation', scope: 'session' }, | ||
| }; | ||
| } | ||
| if (session.mode === 'pending') { | ||
| return { allow: true }; | ||
| } | ||
| // capped or legacy — both honour the in-memory counter | ||
| if (session.dailyUsed >= session.dailyCap) { | ||
| return { | ||
| allow: false, | ||
| code: ERROR_CODE_CAP_EXCEEDED, | ||
| scope: 'daily', | ||
| message: capExceededMessage('daily', session.dailyUsed, session.dailyCap, nextUtcMidnight(now)), | ||
| data: capExceededData('daily', session.dailyUsed, session.dailyCap, nextUtcMidnight(now)), | ||
| }; | ||
| } | ||
| if (session.weeklyUsed >= session.weeklyCap) { | ||
| const resetsAt = nextUtcMidnight(now); // weekly window slides; next reset opportunity is at least one daily tick | ||
| return { | ||
| allow: false, | ||
| code: ERROR_CODE_CAP_EXCEEDED, | ||
| scope: 'weekly', | ||
| message: capExceededMessage('weekly', session.weeklyUsed, session.weeklyCap, resetsAt), | ||
| data: capExceededData('weekly', session.weeklyUsed, session.weeklyCap, resetsAt), | ||
| }; | ||
| } | ||
| return { allow: true }; | ||
| } | ||
| export function applyAck(session, ack, tool) { | ||
| const ackCounter = Number(ack?.counter); | ||
| // For failed dispatches the counter doesn't move on the extension side | ||
| // either — adopt as-is, no integrity check. | ||
| if (ack?.success === false) { | ||
| return { kind: 'adopt', session }; | ||
| } | ||
| if (!Number.isFinite(ackCounter) || ackCounter < 0) { | ||
| // Malformed ack — don't change counter, don't fire integrity. Loud log | ||
| // is the bridge's job; here we just preserve state. | ||
| return { kind: 'adopt', session }; | ||
| } | ||
| // Backwards drop from the previously adopted value = tampering signal. | ||
| // Forward jumps (ack ahead by >1) are NORMAL on flaky networks where | ||
| // the previous ack was lost; per §4.4 step 9 we adopt forward-ahead | ||
| // values silently. | ||
| if (ackCounter < session.dailyUsed) { | ||
| return { | ||
| kind: 'integrity_violation', | ||
| session: markCompromised(session), | ||
| serverCountBefore: session.dailyUsed, | ||
| ackCounter, | ||
| }; | ||
| } | ||
| return { | ||
| kind: 'adopt', | ||
| session: { ...session, dailyUsed: Math.floor(ackCounter) }, | ||
| }; | ||
| } | ||
| /** | ||
| * Local increment for legacy sessions where the extension can't ack. | ||
| * The server's in-memory counter is the only counter; on server restart | ||
| * it resets (acknowledged in ARD §7 risks). | ||
| */ | ||
| export function incrementLocalLegacyCounter(session) { | ||
| return { | ||
| ...session, | ||
| dailyUsed: session.dailyUsed + 1, | ||
| weeklyUsed: session.weeklyUsed + 1, | ||
| }; | ||
| } | ||
| /** Allocate the next outgoing seq_num and return updated session. */ | ||
| export function takeNextSeqNum(session) { | ||
| const seqNum = session.nextSeqNum; | ||
| return { session: { ...session, nextSeqNum: seqNum + 1 }, seqNum }; | ||
| } | ||
| // ─── Helpers ──────────────────────────────────────────────────── | ||
| export function utcDateString(date) { | ||
| const y = date.getUTCFullYear(); | ||
| const m = String(date.getUTCMonth() + 1).padStart(2, '0'); | ||
| const d = String(date.getUTCDate()).padStart(2, '0'); | ||
| return `${y}-${m}-${d}`; | ||
| } | ||
| export function nextUtcMidnight(now) { | ||
| const next = new Date(now); | ||
| next.setUTCHours(24, 0, 0, 0); // setUTCHours(24, ...) rolls to next day at 00:00:00.000 UTC | ||
| return next; | ||
| } | ||
| function capExceededMessage(scope, used, limit, resetsAt) { | ||
| const remainingMs = Math.max(0, resetsAt.getTime() - Date.now()); | ||
| const hours = Math.floor(remainingMs / 3_600_000); | ||
| const minutes = Math.floor((remainingMs % 3_600_000) / 60_000); | ||
| const window = scope === 'daily' ? 'Daily' : 'Weekly'; | ||
| return `${window} MCP cap reached: ${used}/${limit} calls. Resets in ${hours}h ${minutes}m. Upgrade to Power User for unlimited: https://customaise.com/pricing`; | ||
| } | ||
| function capExceededData(scope, used, limit, resetsAt) { | ||
| return { | ||
| type: 'rate_limit', | ||
| scope, | ||
| used, | ||
| limit, | ||
| resetsAt: resetsAt.toISOString(), | ||
| resetsInSeconds: Math.max(0, Math.floor((resetsAt.getTime() - Date.now()) / 1000)), | ||
| upgradeUrl: 'https://customaise.com/pricing', | ||
| }; | ||
| } | ||
| /** | ||
| * Build the `report_integrity_error` frame the server sends to the | ||
| * extension when a backwards-counter ack is detected. Pure data; the | ||
| * bridge serialises and sends. | ||
| */ | ||
| export function buildIntegrityReport(session, serverCountBefore, ackCounter, tool) { | ||
| return { | ||
| type: 'report_integrity_error', | ||
| session_id: session.sessionId, | ||
| scope: 'backwards_counter', | ||
| server_count_before: serverCountBefore, | ||
| ack_counter: ackCounter, | ||
| tool, | ||
| }; | ||
| } | ||
| //# sourceMappingURL=cap-state.js.map |
| {"version":3,"file":"cap-state.js","sourceRoot":"","sources":["../src/cap-state.ts"],"names":[],"mappings":"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"} |
+20
-0
@@ -5,2 +5,22 @@ # Changelog | ||
| ## [2.0.0] - 2026-05-05 | ||
| ### Added | ||
| - **Free tier with caps.** MCP Bridge is now free for any signed-in Customaise user. Free use is capped at **50 successful tool calls per UTC day** and **150 per rolling 7-day window**. Power User unlocks unlimited. The cap covers every successful tool dispatch (built-in tools and WebMCP calls alike); failed calls and protocol-level traffic do not count toward it. | ||
| - **Sign-in required.** The bridge no longer accepts anonymous sessions. Sign in to Customaise from the extension popup before adding the MCP server to your IDE config. | ||
| - **New JSON-RPC error codes** in the implementation-defined slot, returned with structured `data` payloads so IDEs can render rich messages: | ||
| - `-32028 MCP_AUTH_REQUIRED`. Sign in to Customaise from the extension popup. | ||
| - `-32029 MCP_CAP_EXCEEDED`. Free cap reached. `data` carries `scope`, `used`, `limit`, `resetAt` so the IDE can show when access resumes. | ||
| - `-32030 MCP_DISPATCH_TIMEOUT`. Extension did not ack within the configured window (default 90s, override via `CUSTOMAISE_MCP_DISPATCH_TIMEOUT_MS`). | ||
| - `-32031 MCP_EXTENSION_OUTDATED`. Update Customaise from the Chrome Web Store. | ||
| - `-32032 MCP_INTEGRITY_VIOLATION`. Reconnect MCP from the Customaise extension Settings. | ||
| ### Changed (breaking) | ||
| - **v2 bridge protocol.** The WebSocket frames between the MCP server and the Customaise extension changed shape. **This MCP server requires Customaise extension 1.4.0 or newer.** Older extensions return `-32031 MCP_EXTENSION_OUTDATED` on first dispatch. | ||
| - **Server version reported on the MCP handshake** is now `2.0.0`. | ||
| ### Compatibility | ||
| - Requires Customaise extension 1.4.0 or newer. | ||
| - No change to `.cursor/mcp.json` / `.windsurf/mcp.json` / `claude_desktop_config.json` / Codex / Antigravity / Kiro configs. Existing IDE configs continue to work unchanged. | ||
| ## [1.3.0] - 2026-04-23 | ||
@@ -7,0 +27,0 @@ |
+27
-3
@@ -38,8 +38,32 @@ /** | ||
| /** | ||
| * Send an RPC to the extension. The leader sends directly over its | ||
| * WS connection; a follower relays via the leader. Same contract | ||
| * either way. | ||
| * @deprecated Internal use only — DO NOT call from `server.ts` tool | ||
| * handlers or anywhere a tool dispatch is happening. Use | ||
| * `dispatchTool()` instead so cap enforcement (ARD §4.4) and the | ||
| * bilateral counter handshake apply. | ||
| * | ||
| * This method is the v1 protocol's bare `{id, type, args}` request | ||
| * envelope. It still exists for: (a) the legacy fallback path in | ||
| * `dispatchTool` when talking to a pre-2.0.0 extension, (b) bridge | ||
| * unit tests that exercise low-level WS plumbing, (c) followers | ||
| * proxying internal traffic to the leader. | ||
| * | ||
| * If you find yourself reaching for `request()` from a tool | ||
| * handler, you are introducing a cap bypass. Stop. Call | ||
| * `dispatchTool(toolName, args)` instead. | ||
| */ | ||
| request(type: string, args?: Record<string, unknown>): Promise<unknown>; | ||
| /** | ||
| * Dispatch a tool call, applying cap enforcement and the bilateral | ||
| * counter handshake (ARD §4.4). Throws `McpError` with one of: | ||
| * - -32028 MCP_AUTH_REQUIRED | ||
| * - -32029 MCP_CAP_EXCEEDED | ||
| * - -32030 MCP_DISPATCH_TIMEOUT | ||
| * - -32031 MCP_EXTENSION_OUTDATED | ||
| * - -32032 MCP_INTEGRITY_VIOLATION | ||
| * | ||
| * Otherwise returns the tool's result, same shape as `request()` | ||
| * would have returned. | ||
| */ | ||
| dispatchTool(toolName: string, args?: Record<string, unknown>): Promise<unknown>; | ||
| /** | ||
| * Register a handler for unsolicited pushes from the extension. | ||
@@ -46,0 +70,0 @@ * Leader invokes locally; follower receives them forwarded from the |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExE;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAEzD;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE/C;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,GAAE,MAAa,EACnB,gBAAgB,GAAE,MAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CA0BjB"} | ||
| {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExE;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjF;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAEzD;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE/C;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,GAAE,MAAa,EACnB,gBAAgB,GAAE,MAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CA0BjB"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAwDlD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,IAAI,EACnB,mBAA2B,MAAM;IAEjC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,IAAI,IAAI,CAAC,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,mEAAmE;QACnE,iEAAiE;QACjE,kEAAkE;QAClE,iCAAiC;QACjC,EAAE;QACF,mEAAmE;QACnE,4DAA4D;QAC5D,8DAA8D;QAC9D,kEAAkE;QAClE,gBAAgB;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,kCAAkC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,IAAI,IAAI,CAAC,CAAC;QACjG,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"} | ||
| {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiFlD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,IAAI,EACnB,mBAA2B,MAAM;IAEjC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,IAAI,IAAI,CAAC,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,mEAAmE;QACnE,iEAAiE;QACjE,kEAAkE;QAClE,iCAAiC;QACjC,EAAE;QACF,mEAAmE;QACnE,4DAA4D;QAC5D,8DAA8D;QAC9D,kEAAkE;QAClE,gBAAgB;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,kCAAkC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,IAAI,IAAI,CAAC,CAAC;QACjG,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"} |
@@ -46,2 +46,7 @@ /** | ||
| private allowInsecure; | ||
| private capSession; | ||
| private dispatchPending; | ||
| private sessionResolved; | ||
| private sessionResolvedFn; | ||
| private graceTimer; | ||
| constructor(port?: number, requestTimeoutMs?: number); | ||
@@ -55,2 +60,25 @@ /** | ||
| private _handleExtensionConnection; | ||
| /** | ||
| * Open a fresh CapSession in 'pending' mode and arm the | ||
| * init_session grace timer. Resolved in one of two ways: | ||
| * - extension sends init_session within INIT_SESSION_GRACE_MS | ||
| * → mode becomes 'capped' or 'unlimited' | ||
| * - timer fires first → mode becomes 'legacy', deprecation error | ||
| * fires on the next dispatchTool() call | ||
| */ | ||
| private _beginCapSession; | ||
| private _resolveSession; | ||
| /** | ||
| * Tear down per-session state on extension disconnect / replacement. | ||
| * In-flight dispatchTool() promises reject (extension can't ack now). | ||
| */ | ||
| private _resetCapSession; | ||
| /** | ||
| * Follower → leader: relay a cap-enforced dispatchTool() call. The | ||
| * leader runs it through its own dispatchTool (so the same | ||
| * CapSession applies to every IDE connected to this MCP server | ||
| * cluster) and relays the result or McpError back to the follower | ||
| * preserving the JSON-RPC error code. | ||
| */ | ||
| private _handleFollowerDispatchRequest; | ||
| /** A new follower customaise-mcp process connected. */ | ||
@@ -111,4 +139,6 @@ private _handleFollowerConnection; | ||
| * Handle an incoming message from the extension. Recognises: | ||
| * 1. Final response — `{ id, success, result|error }` — resolves/rejects + clears. | ||
| * 2. Interim "pending" — `{ id, kind: 'pending', expectedTimeoutMs }` — resets | ||
| * 1. v2 protocol frames — `{ type: 'init_session' | 'dispatch_ack', ... }` | ||
| * — routed through the cap-session state machine. | ||
| * 2. Final v1 response — `{ id, success, result|error }` — resolves/rejects + clears. | ||
| * 3. Interim "pending" v1 — `{ id, kind: 'pending', expectedTimeoutMs }` — resets | ||
| * the request's timer to the larger value WITHOUT resolving. Used when the | ||
@@ -118,6 +148,64 @@ * extension is about to block on a HITL consent modal: we don't want to | ||
| * still deciding. | ||
| * 3. Unprompted push — `{ type, data }` with no matching id — forwarded to | ||
| * 4. Unprompted push — `{ type, data }` with no matching id — forwarded to | ||
| * the registered push handler + broadcast to all followers. | ||
| */ | ||
| private _handleExtensionMessage; | ||
| /** | ||
| * Extension reported its session shape: tier + caps for Free, | ||
| * `unlimited: true` for paid. Adopt into the in-memory CapSession | ||
| * and resolve the pending wait so any queued dispatchTool() calls | ||
| * can proceed. | ||
| * | ||
| * Idempotent — if init_session arrives twice (e.g. extension | ||
| * re-sends after a tier change broadcast), we re-apply the payload | ||
| * and emit no new state. The grace timer is cancelled on first | ||
| * arrival. | ||
| */ | ||
| private _handleInitSession; | ||
| /** | ||
| * Extension acked a dispatch_tool. Three things happen: | ||
| * 1. Run the ack through cap-state.applyAck — adopt forward counter | ||
| * or detect backwards drop. | ||
| * 2. On backwards drop: emit `report_integrity_error` to the | ||
| * extension AND mark this session 'compromised' so future | ||
| * dispatchTool() calls refuse without round-tripping. | ||
| * 3. Resolve / reject the pending dispatchTool() promise keyed by | ||
| * seq_num. | ||
| */ | ||
| private _handleDispatchAck; | ||
| /** | ||
| * v2 equivalent of the v1 `kind: 'pending'` timer extension. Fired | ||
| * by the extension when a dispatch is about to block on the HITL | ||
| * consent modal (up to 5 min of user dwell time). Without this, the | ||
| * default 30s dispatch timer would fire while the user is still | ||
| * deciding, the IDE would see MCP_DISPATCH_TIMEOUT, and any later | ||
| * approval would arrive at an empty pending entry and get dropped. | ||
| * | ||
| * Also relays the extension to any follower that originated the | ||
| * dispatch, so the follower's outer timer (if any) extends in | ||
| * parallel — symmetric to the v1 `res-pending` follower frame. | ||
| */ | ||
| private _handleDispatchToolPending; | ||
| /** | ||
| * Public dispatchTool — cap-checked tool dispatch, ARD §4.4. | ||
| * | ||
| * Flow: | ||
| * 1. Wait for session resolution (init_session arrival OR grace | ||
| * timer fire). Bounded by INIT_SESSION_GRACE_MS. | ||
| * 2. Pre-check cap via decideDispatch(). On reject → throw | ||
| * MCP_CAP_EXCEEDED without round-tripping to the extension. | ||
| * 3. Legacy session: emit one-time MCP_EXTENSION_OUTDATED on first | ||
| * call, fall back to v1 request, increment local-only counter. | ||
| * 4. Modern session: send dispatch_tool frame, await dispatch_ack, | ||
| * adopt counter from ack. | ||
| */ | ||
| dispatchTool(toolName: string, args?: Record<string, unknown>): Promise<unknown>; | ||
| /** | ||
| * Internal dispatch with explicit origin tracking. The public | ||
| * dispatchTool always passes 'leader' (the leader process's own MCP | ||
| * frontend); follower-originated dispatches go through here with | ||
| * `origin = ws, followerOrigId = follower's request id` so the | ||
| * pending entry knows who to relay HITL timer-extend frames back to. | ||
| */ | ||
| private _dispatchToolWithOrigin; | ||
| private _broadcastPushToFollowers; | ||
@@ -124,0 +212,0 @@ private _broadcastStatusToFollowers; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"extension-bridge.d.ts","sourceRoot":"","sources":["../src/extension-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuC5D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,oCAAoC,CAAC;AAgEjE,qBAAa,eAAgB,YAAW,MAAM;IAC5C,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,mBAAmB,CAA0C;IACrE,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,uBAAuB,CAAc;IAC7C,OAAO,CAAC,aAAa,CAAU;gBAEnB,IAAI,SAAO,EAAE,gBAAgB,SAAS;IAqBlD;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEtB,sEAAsE;IACtE,OAAO,CAAC,0BAA0B;IAsClC,uDAAuD;IACvD,OAAO,CAAC,yBAAyB;IAwCjC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,sBAAsB;IAsE9B;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBjF;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIxD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAS9C;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IA6D/B,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,IAAI;CAGb"} | ||
| {"version":3,"file":"extension-bridge.d.ts","sourceRoot":"","sources":["../src/extension-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAkG5D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,oCAAoC,CAAC;AAqIjE,qBAAa,eAAgB,YAAW,MAAM;IAC5C,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,mBAAmB,CAA0C;IACrE,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,uBAAuB,CAAc;IAC7C,OAAO,CAAC,aAAa,CAAU;IAM/B,OAAO,CAAC,UAAU,CAA2B;IAW7C,OAAO,CAAC,eAAe,CAOlB;IAIL,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,UAAU,CAA8C;gBAEpD,IAAI,SAAO,EAAE,gBAAgB,SAAS;IAqBlD;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEtB,sEAAsE;IACtE,OAAO,CAAC,0BAA0B;IAiDlC;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;;;;;OAMG;YACW,8BAA8B;IA4C5C,uDAAuD;IACvD,OAAO,CAAC,yBAAyB;IAqEjC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,sBAAsB;IA0E9B;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBjF;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIxD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAS9C;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC5B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,uBAAuB;IAuF/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAoD1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,0BAA0B;IAsClC;;;;;;;;;;;;OAYG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1F;;;;;;OAMG;YACW,uBAAuB;IAsHrC,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,IAAI;CAGb"} |
+475
-23
@@ -28,2 +28,4 @@ /** | ||
| import { dirname, join } from 'node:path'; | ||
| import { McpError } from '@modelcontextprotocol/sdk/types.js'; | ||
| import { applyAck, applyInitSession, buildIntegrityReport, createPendingSession, decideDispatch, ERROR_CODE_DISPATCH_TIMEOUT, ERROR_CODE_EXTENSION_OUTDATED, ERROR_CODE_INTEGRITY_VIOLATION, incrementLocalLegacyCounter, markLegacy, rolloverDailyIfNeeded, takeNextSeqNum, } from './cap-state.js'; | ||
| /** | ||
@@ -46,2 +48,41 @@ * Version stamp of this customaise-mcp package. Read from the shipped | ||
| /** | ||
| * Minimum extension version that speaks the v2 bridge protocol | ||
| * (init_session / dispatch_tool / dispatch_ack / report_integrity_error). | ||
| * Surfaced in the hello frame so the extension can self-diagnose if | ||
| * it's running an older build than the MCP server expects. | ||
| * | ||
| * Bumped in lockstep with @customaise/mcp major versions where the | ||
| * protocol changes. Currently matches the extension build that landed | ||
| * the v2 bridge protocol (the "Free MCP with caps" milestone). | ||
| */ | ||
| const MIN_EXTENSION_VERSION = '1.4.0'; | ||
| /** | ||
| * How long the server waits for an `init_session` frame after the | ||
| * extension's WS connection opens. After this elapses the session is | ||
| * marked legacy (old extension), the server falls back to the v1 | ||
| * `{id, type, args}` request protocol for tool dispatch, and the next | ||
| * tool call surfaces a one-time deprecation error to the IDE per | ||
| * ARD §4.14. | ||
| * | ||
| * Configurable so QA can simulate slow extensions; default 30s matches | ||
| * the spec. | ||
| */ | ||
| const INIT_SESSION_GRACE_MS = (() => { | ||
| const env = Number(process.env.CUSTOMAISE_MCP_INIT_SESSION_GRACE_MS); | ||
| return Number.isFinite(env) && env > 0 ? env : 30_000; | ||
| })(); | ||
| /** | ||
| * Per-tool dispatch_ack timeout. Must cover normal tool latencies (DOM | ||
| * reads, AgentScript invocations, screenshots) but bound enough that a | ||
| * crashed extension doesn't hang the IDE forever. ARD §4.4 default 30s. | ||
| * | ||
| * Tools with legitimately long execution (large captures, network-heavy | ||
| * AgentScripts) can bump via the env var without code changes. Tools | ||
| * that consistently exceed 30s are candidates for a slow-tool API in v2. | ||
| */ | ||
| const DISPATCH_ACK_TIMEOUT_MS = (() => { | ||
| const env = Number(process.env.CUSTOMAISE_MCP_DISPATCH_TIMEOUT_MS); | ||
| return Number.isFinite(env) && env > 0 ? env : 30_000; | ||
| })(); | ||
| /** | ||
| * Extension IDs permitted to connect as the extension client. | ||
@@ -88,2 +129,24 @@ * | ||
| allowInsecure; | ||
| // ─── v2 bridge protocol state ──────────────────────────────────── | ||
| // One CapSession per extension WS connection. Reset on reconnect | ||
| // (start in 'pending', resolved by init_session arrival or grace | ||
| // timer fire). All cap decisions read from / write to this. | ||
| capSession = null; | ||
| // Pending dispatch_tool frames, keyed by seq_num. Holds the | ||
| // resolve/reject of the in-flight dispatchTool() promise plus its | ||
| // ack timeout handle. | ||
| // | ||
| // `origin` lets _handleDispatchToolPending relay the v2 timer-extend | ||
| // frame back to the originating follower (when the dispatch came | ||
| // from a multi-IDE setup), symmetric to how v1's `kind: 'pending'` | ||
| // path relays `res-pending` to followers. Without this, follower | ||
| // IDEs would time out at 30s on every HITL-gated tool call even | ||
| // though the leader's timer correctly extended. | ||
| dispatchPending = new Map(); | ||
| // Resolves when init_session arrives OR the grace timer marks the | ||
| // session legacy. dispatchTool() awaits this before deciding which | ||
| // protocol (v2 dispatch_tool vs legacy request) to use. | ||
| sessionResolved = null; | ||
| sessionResolvedFn = null; | ||
| graceTimer = null; | ||
| constructor(port = 4050, requestTimeoutMs = 30_000) { | ||
@@ -175,9 +238,17 @@ this.port = port; | ||
| this._log('Extension client connected'); | ||
| // Only allow one extension at a time. | ||
| // Only allow one extension at a time. The previous extensionSocket | ||
| // (if any) gets replaced; we also tear down its v2 session state | ||
| // because dispatch_acks for the old session can never arrive now. | ||
| if (this.extensionSocket) { | ||
| this._log('Replacing existing extension connection'); | ||
| this.extensionSocket.close(1000, 'Replaced by new connection'); | ||
| this._resetCapSession('replaced'); | ||
| } | ||
| this.extensionSocket = ws; | ||
| this._broadcastStatusToFollowers(true); | ||
| // Initialise a fresh CapSession in 'pending' mode and arm the | ||
| // grace timer. The session resolves when either an init_session | ||
| // frame arrives (modern extension) or the timer fires (legacy | ||
| // extension → fall back to v1 protocol + Free cap). | ||
| this._beginCapSession(); | ||
| // Send hello immediately so the extension UI can populate the MCP | ||
@@ -201,2 +272,3 @@ // version + connected-clients pill with whatever we know so far. | ||
| this._broadcastStatusToFollowers(false); | ||
| this._resetCapSession('extension_closed'); | ||
| } | ||
@@ -208,2 +280,101 @@ }); | ||
| } | ||
| // ─── Cap session lifecycle ─────────────────────────────────────── | ||
| /** | ||
| * Open a fresh CapSession in 'pending' mode and arm the | ||
| * init_session grace timer. Resolved in one of two ways: | ||
| * - extension sends init_session within INIT_SESSION_GRACE_MS | ||
| * → mode becomes 'capped' or 'unlimited' | ||
| * - timer fires first → mode becomes 'legacy', deprecation error | ||
| * fires on the next dispatchTool() call | ||
| */ | ||
| _beginCapSession() { | ||
| const sessionId = randomUUID(); | ||
| this.capSession = createPendingSession(sessionId); | ||
| this.sessionResolved = new Promise((resolve) => { | ||
| this.sessionResolvedFn = resolve; | ||
| }); | ||
| this.graceTimer = setTimeout(() => { | ||
| if (!this.capSession || this.capSession.mode !== 'pending') | ||
| return; | ||
| this.capSession = markLegacy(this.capSession); | ||
| this._log(`init_session not received within ${INIT_SESSION_GRACE_MS}ms — falling back to legacy v1 protocol + Free cap enforcement`); | ||
| this._resolveSession(); | ||
| }, INIT_SESSION_GRACE_MS); | ||
| } | ||
| _resolveSession() { | ||
| const fn = this.sessionResolvedFn; | ||
| if (fn) { | ||
| this.sessionResolvedFn = null; | ||
| fn(); | ||
| } | ||
| } | ||
| /** | ||
| * Tear down per-session state on extension disconnect / replacement. | ||
| * In-flight dispatchTool() promises reject (extension can't ack now). | ||
| */ | ||
| _resetCapSession(reason) { | ||
| if (this.graceTimer) { | ||
| clearTimeout(this.graceTimer); | ||
| this.graceTimer = null; | ||
| } | ||
| for (const [, pending] of this.dispatchPending) { | ||
| clearTimeout(pending.timer); | ||
| pending.reject(new McpError(ERROR_CODE_DISPATCH_TIMEOUT, `MCP dispatch aborted: extension disconnected (${reason}). Reconnect MCP from Customaise extension Settings.`, { type: 'dispatch_timeout', reason })); | ||
| } | ||
| this.dispatchPending.clear(); | ||
| // Resolve any pending session-wait promises so callers don't hang. | ||
| if (this.sessionResolvedFn) | ||
| this._resolveSession(); | ||
| this.capSession = null; | ||
| this.sessionResolved = null; | ||
| } | ||
| /** | ||
| * Follower → leader: relay a cap-enforced dispatchTool() call. The | ||
| * leader runs it through its own dispatchTool (so the same | ||
| * CapSession applies to every IDE connected to this MCP server | ||
| * cluster) and relays the result or McpError back to the follower | ||
| * preserving the JSON-RPC error code. | ||
| */ | ||
| async _handleFollowerDispatchRequest(ws, message) { | ||
| const origId = message.id; | ||
| const tool = message.tool; | ||
| const args = (message.args && typeof message.args === 'object' && !Array.isArray(message.args)) | ||
| ? message.args | ||
| : {}; | ||
| if (typeof origId !== 'string' || origId.length === 0) { | ||
| this._log('Follower req-dispatch frame missing/invalid id; dropping'); | ||
| return; | ||
| } | ||
| if (typeof tool !== 'string' || tool.length === 0) { | ||
| this._sendToFollower(ws, { | ||
| role: 'res', id: origId, success: false, | ||
| error: 'req-dispatch.tool must be a non-empty string', | ||
| }); | ||
| return; | ||
| } | ||
| try { | ||
| // Track origin = ws so _handleDispatchToolPending can relay | ||
| // HITL timer-extend frames to this follower (otherwise the | ||
| // follower's own pending timer would fire at 30s while the | ||
| // leader correctly awaits user consent for up to 5 min). | ||
| const result = await this._dispatchToolWithOrigin(tool, args, ws, origId); | ||
| this._sendToFollower(ws, { role: 'res', id: origId, success: true, result }); | ||
| } | ||
| catch (err) { | ||
| // Preserve McpError code + data through the relay so the follower | ||
| // can re-throw a typed McpError to its IDE. | ||
| if (err instanceof McpError) { | ||
| this._sendToFollower(ws, { | ||
| role: 'res', id: origId, success: false, | ||
| error: JSON.stringify({ code: err.code, message: err.message, data: err.data ?? null }), | ||
| }); | ||
| } | ||
| else { | ||
| this._sendToFollower(ws, { | ||
| role: 'res', id: origId, success: false, | ||
| error: err?.message || 'dispatchTool failed', | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| /** A new follower customaise-mcp process connected. */ | ||
@@ -229,3 +400,3 @@ _handleFollowerConnection(ws) { | ||
| this.followerClientInfos.delete(ws); | ||
| // Reject any requests still in-flight on behalf of this follower. | ||
| // Reject any v1 requests still in-flight on behalf of this follower. | ||
| for (const [id, pending] of this.pending) { | ||
@@ -238,2 +409,27 @@ if (pending.origin === ws) { | ||
| } | ||
| // Symmetric cleanup for v2 dispatchPending: same situation, the | ||
| // follower IDE has gone away, so any dispatch in flight on its | ||
| // behalf has nowhere to deliver the result. The extension is | ||
| // still mid-execution (no protocol-level cancel exists), so it | ||
| // will eventually send dispatch_ack — that ack will then no-op | ||
| // via the "no pending entry" branch in _handleDispatchAck. | ||
| // | ||
| // We MUST call dispatch.reject() (unlike the v1 cleanup above | ||
| // which just drops). The v1 entries hold callback functions, so | ||
| // dropping the entry GCs the callbacks. The v2 entries hold | ||
| // Promise resolvers — `_dispatchToolWithOrigin` returns a | ||
| // Promise whose resolve/reject are stored in the entry. If we | ||
| // delete the entry without calling reject, the Promise becomes | ||
| // permanently unsettled, the await chain in | ||
| // `_handleFollowerDispatchRequest` hangs forever, and the whole | ||
| // closure (capturing ws, origId, tool name) leaks. Per | ||
| // disconnected-follower-during-dispatch event, one Promise | ||
| // chain leaks until process exit. Reject releases it. | ||
| for (const [seqNum, dispatch] of this.dispatchPending) { | ||
| if (dispatch.origin === ws) { | ||
| clearTimeout(dispatch.timer); | ||
| this.dispatchPending.delete(seqNum); | ||
| dispatch.reject(new McpError(ERROR_CODE_DISPATCH_TIMEOUT, `MCP dispatch aborted: originating follower disconnected (tool=${dispatch.tool}).`, { type: 'follower_disconnected', tool: dispatch.tool })); | ||
| } | ||
| } | ||
| // If the follower had announced itself, its client entry just | ||
@@ -285,2 +481,6 @@ // vanished from the list — refresh the extension's hello so the | ||
| } | ||
| if (message.role === 'req-dispatch') { | ||
| this._handleFollowerDispatchRequest(ws, message); | ||
| return; | ||
| } | ||
| if (message.role !== 'req') { | ||
@@ -403,2 +603,4 @@ this._log(`Follower sent unknown role: ${message.role}`); | ||
| mcpVersion: MCP_VERSION, | ||
| protocolVersion: 2, | ||
| minExtensionVersion: MIN_EXTENSION_VERSION, | ||
| clients, | ||
@@ -417,3 +619,3 @@ }; | ||
| async close() { | ||
| // Reject all pending requests | ||
| // Reject all pending requests (v1 protocol) | ||
| for (const [, pending] of this.pending) { | ||
@@ -424,2 +626,4 @@ clearTimeout(pending.timer); | ||
| this.pending.clear(); | ||
| // Reject all in-flight v2 dispatches and tear down session state. | ||
| this._resetCapSession('shutting_down'); | ||
| if (this.extensionSocket) { | ||
@@ -450,4 +654,6 @@ this.extensionSocket.close(1000, 'MCP server shutting down'); | ||
| * Handle an incoming message from the extension. Recognises: | ||
| * 1. Final response — `{ id, success, result|error }` — resolves/rejects + clears. | ||
| * 2. Interim "pending" — `{ id, kind: 'pending', expectedTimeoutMs }` — resets | ||
| * 1. v2 protocol frames — `{ type: 'init_session' | 'dispatch_ack', ... }` | ||
| * — routed through the cap-session state machine. | ||
| * 2. Final v1 response — `{ id, success, result|error }` — resolves/rejects + clears. | ||
| * 3. Interim "pending" v1 — `{ id, kind: 'pending', expectedTimeoutMs }` — resets | ||
| * the request's timer to the larger value WITHOUT resolving. Used when the | ||
@@ -457,17 +663,41 @@ * extension is about to block on a HITL consent modal: we don't want to | ||
| * still deciding. | ||
| * 3. Unprompted push — `{ type, data }` with no matching id — forwarded to | ||
| * 4. Unprompted push — `{ type, data }` with no matching id — forwarded to | ||
| * the registered push handler + broadcast to all followers. | ||
| */ | ||
| _handleExtensionMessage(message) { | ||
| const pending = message.id ? this.pending.get(message.id) : undefined; | ||
| // v2 protocol frames carry `type` but no `id` — they're matched by | ||
| // session_id / seq_num, not the v1 request id map. Branch out | ||
| // before the v1 pending-map lookup so we don't false-match an ack | ||
| // against a stale request id. | ||
| const messageType = message?.type; | ||
| if (messageType === 'init_session') { | ||
| this._handleInitSession(message); | ||
| return; | ||
| } | ||
| if (messageType === 'dispatch_ack') { | ||
| this._handleDispatchAck(message); | ||
| return; | ||
| } | ||
| if (messageType === 'dispatch_tool_pending') { | ||
| this._handleDispatchToolPending(message); | ||
| return; | ||
| } | ||
| // Past the v2 pre-route, message is either a v1 BridgeResponse, | ||
| // a v1 pending frame, or an unprompted push. None of these are | ||
| // ExtensionInboundV2 (we excluded those above) but TS can't infer | ||
| // that from the early returns. Rebind once with a narrower type so | ||
| // the v1 access patterns (`.id`, `.kind`, `.success`) type-check | ||
| // without per-line `as any` casts. | ||
| const v1 = message; | ||
| const pending = v1.id ? this.pending.get(v1.id) : undefined; | ||
| // Interim "pending" frame — extend the deadline, do NOT resolve. | ||
| if (pending && message.kind === 'pending') { | ||
| const extendMs = Math.max(Number(message.expectedTimeoutMs) || 0, this.requestTimeoutMs); | ||
| if (pending && v1.kind === 'pending') { | ||
| const extendMs = Math.max(Number(v1.expectedTimeoutMs) || 0, this.requestTimeoutMs); | ||
| clearTimeout(pending.timer); | ||
| pending.timer = setTimeout(() => { | ||
| const stillPending = this.pending.get(message.id); | ||
| const stillPending = this.pending.get(v1.id); | ||
| if (!stillPending) | ||
| return; | ||
| this.pending.delete(message.id); | ||
| stillPending.reject(new Error(`Request to extension timed out after ${extendMs}ms (type=consent-pending, id=${message.id})`)); | ||
| this.pending.delete(v1.id); | ||
| stillPending.reject(new Error(`Request to extension timed out after ${extendMs}ms (type=consent-pending, id=${v1.id})`)); | ||
| }, extendMs); | ||
@@ -482,6 +712,6 @@ // Also relay the pending frame to the originating follower so it | ||
| expectedTimeoutMs: extendMs, | ||
| reason: message.reason, | ||
| reason: v1.reason, | ||
| }); | ||
| } | ||
| this._log(`Request ${message.id} extended to ${extendMs}ms (reason: ${message.reason || 'unspecified'})`); | ||
| this._log(`Request ${v1.id} extended to ${extendMs}ms (reason: ${v1.reason || 'unspecified'})`); | ||
| return; | ||
@@ -491,5 +721,5 @@ } | ||
| // Push from the extension (no matching pending request). | ||
| if (message.type) { | ||
| const pushType = message.type; | ||
| const pushData = message.data || {}; | ||
| if (v1.type) { | ||
| const pushType = v1.type; | ||
| const pushData = v1.data || {}; | ||
| if (this.pushHandler) { | ||
@@ -506,16 +736,238 @@ try { | ||
| else { | ||
| this._log(`Received response for unknown request id: ${message.id}`); | ||
| this._log(`Received response for unknown request id: ${v1.id}`); | ||
| } | ||
| return; | ||
| } | ||
| this.pending.delete(message.id); | ||
| this.pending.delete(v1.id); | ||
| clearTimeout(pending.timer); | ||
| const finalMessage = message; | ||
| if (finalMessage.success) { | ||
| pending.resolve(finalMessage.result); | ||
| if (v1.success) { | ||
| pending.resolve(v1.result); | ||
| } | ||
| else { | ||
| pending.reject(new Error(finalMessage.error || 'Extension returned an error')); | ||
| pending.reject(new Error(v1.error || 'Extension returned an error')); | ||
| } | ||
| } | ||
| // ─── v2 protocol: init_session + dispatch_ack handlers ────────── | ||
| /** | ||
| * Extension reported its session shape: tier + caps for Free, | ||
| * `unlimited: true` for paid. Adopt into the in-memory CapSession | ||
| * and resolve the pending wait so any queued dispatchTool() calls | ||
| * can proceed. | ||
| * | ||
| * Idempotent — if init_session arrives twice (e.g. extension | ||
| * re-sends after a tier change broadcast), we re-apply the payload | ||
| * and emit no new state. The grace timer is cancelled on first | ||
| * arrival. | ||
| */ | ||
| _handleInitSession(payload) { | ||
| if (!this.capSession) { | ||
| this._log('init_session received with no active CapSession — extension probably reconnected mid-frame; ignoring'); | ||
| return; | ||
| } | ||
| if (this.graceTimer) { | ||
| clearTimeout(this.graceTimer); | ||
| this.graceTimer = null; | ||
| } | ||
| this.capSession = applyInitSession(this.capSession, payload); | ||
| this._log(`init_session adopted: mode=${this.capSession.mode} tier=${payload.tier ?? 'unspecified'} ` + | ||
| `unlimited=${payload.unlimited === true} dailyUsed=${this.capSession.dailyUsed}/${this.capSession.dailyCap} ` + | ||
| `installId=${this.capSession.installId ?? 'none'}`); | ||
| this._resolveSession(); | ||
| } | ||
| /** | ||
| * Extension acked a dispatch_tool. Three things happen: | ||
| * 1. Run the ack through cap-state.applyAck — adopt forward counter | ||
| * or detect backwards drop. | ||
| * 2. On backwards drop: emit `report_integrity_error` to the | ||
| * extension AND mark this session 'compromised' so future | ||
| * dispatchTool() calls refuse without round-tripping. | ||
| * 3. Resolve / reject the pending dispatchTool() promise keyed by | ||
| * seq_num. | ||
| */ | ||
| _handleDispatchAck(ack) { | ||
| const pending = this.dispatchPending.get(ack.seq_num); | ||
| if (!pending) { | ||
| // Late ack (timeout fired first) or duplicate. Don't try to | ||
| // adopt the counter either — the timer-out path returned | ||
| // MCP_DISPATCH_TIMEOUT to the IDE; if the extension actually | ||
| // ran the work, the next ack we DO match will re-sync forward. | ||
| this._log(`dispatch_ack with no pending entry: seq_num=${ack.seq_num} — late or duplicate; ignoring`); | ||
| return; | ||
| } | ||
| this.dispatchPending.delete(ack.seq_num); | ||
| clearTimeout(pending.timer); | ||
| if (this.capSession) { | ||
| const outcome = applyAck(this.capSession, ack, pending.tool); | ||
| this.capSession = outcome.session; | ||
| if (outcome.kind === 'integrity_violation') { | ||
| const report = buildIntegrityReport(this.capSession, outcome.serverCountBefore, outcome.ackCounter, pending.tool); | ||
| try { | ||
| this.extensionSocket?.send(JSON.stringify(report)); | ||
| } | ||
| catch (err) { | ||
| this._log(`Failed to send report_integrity_error: ${err.message}`); | ||
| } | ||
| pending.reject(new McpError(ERROR_CODE_INTEGRITY_VIOLATION, 'MCP integrity check failed: extension counter went backwards. Reconnect MCP from Customaise extension Settings.', { type: 'integrity_violation', tool: pending.tool, serverCountBefore: outcome.serverCountBefore, ackCounter: outcome.ackCounter })); | ||
| return; | ||
| } | ||
| } | ||
| if (ack.success) { | ||
| pending.resolve(ack.result); | ||
| } | ||
| else if (typeof ack.error_code === 'number') { | ||
| // Extension refused with a typed JSON-RPC code (e.g. | ||
| // MCP_AUTH_REQUIRED, MCP_CAP_EXCEEDED). Rethrow as McpError so | ||
| // the SDK surfaces the right error shape to the IDE. | ||
| pending.reject(new McpError(ack.error_code, ack.error || `Tool '${pending.tool}' refused by extension (code=${ack.error_code})`, ack.error_data ?? undefined)); | ||
| } | ||
| else { | ||
| pending.reject(new Error(ack.error || `Tool '${pending.tool}' failed in extension`)); | ||
| } | ||
| } | ||
| /** | ||
| * v2 equivalent of the v1 `kind: 'pending'` timer extension. Fired | ||
| * by the extension when a dispatch is about to block on the HITL | ||
| * consent modal (up to 5 min of user dwell time). Without this, the | ||
| * default 30s dispatch timer would fire while the user is still | ||
| * deciding, the IDE would see MCP_DISPATCH_TIMEOUT, and any later | ||
| * approval would arrive at an empty pending entry and get dropped. | ||
| * | ||
| * Also relays the extension to any follower that originated the | ||
| * dispatch, so the follower's outer timer (if any) extends in | ||
| * parallel — symmetric to the v1 `res-pending` follower frame. | ||
| */ | ||
| _handleDispatchToolPending(frame) { | ||
| const pending = this.dispatchPending.get(frame.seq_num); | ||
| if (!pending) { | ||
| this._log(`dispatch_tool_pending with no pending entry: seq_num=${frame.seq_num} — already acked or timed out; ignoring`); | ||
| return; | ||
| } | ||
| const requested = Number(frame.expected_timeout_ms); | ||
| const extendMs = Math.max(Number.isFinite(requested) && requested > 0 ? requested : 0, DISPATCH_ACK_TIMEOUT_MS); | ||
| clearTimeout(pending.timer); | ||
| pending.timer = setTimeout(() => { | ||
| if (!this.dispatchPending.has(frame.seq_num)) | ||
| return; | ||
| this.dispatchPending.delete(frame.seq_num); | ||
| pending.reject(new McpError(ERROR_CODE_DISPATCH_TIMEOUT, `MCP dispatch timed out after ${extendMs}ms (tool=${pending.tool}, awaiting user consent). The user did not approve in time; retry the call.`, { type: 'dispatch_timeout', tool: pending.tool, timeoutMs: extendMs, reason: 'awaiting_user_consent' })); | ||
| }, extendMs); | ||
| // Relay to the originating follower (if this dispatch came from | ||
| // one) so the follower's local pending timer extends in lockstep. | ||
| // Without this the follower would time out at its own | ||
| // requestTimeoutMs while the leader correctly awaits user consent. | ||
| if (pending.origin !== 'leader' && pending.followerOrigId) { | ||
| this._sendToFollower(pending.origin, { | ||
| role: 'res-pending', | ||
| id: pending.followerOrigId, | ||
| expectedTimeoutMs: extendMs, | ||
| reason: frame.reason || 'awaiting_user_consent', | ||
| }); | ||
| } | ||
| this._log(`Dispatch ${frame.seq_num} (tool=${pending.tool}) extended to ${extendMs}ms (reason: ${frame.reason || 'awaiting_user_consent'})`); | ||
| } | ||
| /** | ||
| * Public dispatchTool — cap-checked tool dispatch, ARD §4.4. | ||
| * | ||
| * Flow: | ||
| * 1. Wait for session resolution (init_session arrival OR grace | ||
| * timer fire). Bounded by INIT_SESSION_GRACE_MS. | ||
| * 2. Pre-check cap via decideDispatch(). On reject → throw | ||
| * MCP_CAP_EXCEEDED without round-tripping to the extension. | ||
| * 3. Legacy session: emit one-time MCP_EXTENSION_OUTDATED on first | ||
| * call, fall back to v1 request, increment local-only counter. | ||
| * 4. Modern session: send dispatch_tool frame, await dispatch_ack, | ||
| * adopt counter from ack. | ||
| */ | ||
| async dispatchTool(toolName, args = {}) { | ||
| return this._dispatchToolWithOrigin(toolName, args, 'leader', undefined); | ||
| } | ||
| /** | ||
| * Internal dispatch with explicit origin tracking. The public | ||
| * dispatchTool always passes 'leader' (the leader process's own MCP | ||
| * frontend); follower-originated dispatches go through here with | ||
| * `origin = ws, followerOrigId = follower's request id` so the | ||
| * pending entry knows who to relay HITL timer-extend frames back to. | ||
| */ | ||
| async _dispatchToolWithOrigin(toolName, args, origin, followerOrigId) { | ||
| if (!this.extensionSocket || this.extensionSocket.readyState !== WebSocket.OPEN) { | ||
| throw new McpError(ERROR_CODE_DISPATCH_TIMEOUT, 'Customaise extension is not connected. Make sure Chrome is running with the Customaise extension loaded.', { type: 'extension_not_connected' }); | ||
| } | ||
| // Wait for session to resolve (init_session arrival or grace timer | ||
| // fire). On healthy networks this is sub-millisecond. | ||
| if (this.sessionResolved) { | ||
| await this.sessionResolved; | ||
| } | ||
| if (!this.capSession) { | ||
| // Extension disconnected during the wait. | ||
| throw new McpError(ERROR_CODE_DISPATCH_TIMEOUT, 'Customaise extension disconnected during MCP dispatch. Reconnect from Settings.', { type: 'extension_disconnected' }); | ||
| } | ||
| // Roll daily counter over if UTC midnight crossed since last activity. | ||
| const now = new Date(); | ||
| const rollover = rolloverDailyIfNeeded(this.capSession, now); | ||
| this.capSession = rollover.session; | ||
| if (rollover.rolled) { | ||
| this._log(`Daily counter rolled over to ${this.capSession.dailyDateUtc}`); | ||
| } | ||
| // Pre-check cap. Skip-for-paid handled inside decideDispatch | ||
| // (returns allow:true for 'unlimited' mode). | ||
| const decision = decideDispatch(this.capSession, now); | ||
| if (decision.allow === false) { | ||
| // Explicit narrowing helper: TS's discriminated-union narrowing | ||
| // on `if (!decision.allow)` doesn't kick in under tsconfig.test's | ||
| // strict:false setting, so we name the narrow variant directly. | ||
| const denied = decision; | ||
| throw new McpError(denied.code, denied.message, denied.data); | ||
| } | ||
| // Legacy mode: one-time deprecation error, then proceed via v1 | ||
| // protocol with server-tracked counter. | ||
| if (this.capSession.mode === 'legacy') { | ||
| if (!this.capSession.deprecationErrorSent) { | ||
| this.capSession = { ...this.capSession, deprecationErrorSent: true }; | ||
| throw new McpError(ERROR_CODE_EXTENSION_OUTDATED, 'Customaise extension out of date for the v2 MCP bridge. Update the extension from chrome://extensions for full MCP support; subsequent calls will use limited Free-tier behaviour.', { type: 'extension_outdated', minExtensionVersion: MIN_EXTENSION_VERSION }); | ||
| } | ||
| // After the one-time deprecation fired, run the call via v1 | ||
| // request and apply local cap accounting (no extension counter | ||
| // to sync against). | ||
| let result; | ||
| try { | ||
| result = await this.request(toolName, args); | ||
| } | ||
| catch (err) { | ||
| // Failed dispatches don't count (ARD §4.1). | ||
| throw err; | ||
| } | ||
| this.capSession = incrementLocalLegacyCounter(this.capSession); | ||
| return result; | ||
| } | ||
| // Modern mode: v2 dispatch_tool / dispatch_ack with bilateral | ||
| // counter handshake. | ||
| const seq = takeNextSeqNum(this.capSession); | ||
| this.capSession = seq.session; | ||
| const seqNum = seq.seqNum; | ||
| const sessionId = this.capSession.sessionId; | ||
| return new Promise((resolve, reject) => { | ||
| const timer = setTimeout(() => { | ||
| if (!this.dispatchPending.has(seqNum)) | ||
| return; | ||
| this.dispatchPending.delete(seqNum); | ||
| reject(new McpError(ERROR_CODE_DISPATCH_TIMEOUT, `MCP dispatch timed out after ${DISPATCH_ACK_TIMEOUT_MS}ms (tool=${toolName}). The extension may be unresponsive; reload the target tab and retry.`, { type: 'dispatch_timeout', tool: toolName, timeoutMs: DISPATCH_ACK_TIMEOUT_MS })); | ||
| }, DISPATCH_ACK_TIMEOUT_MS); | ||
| this.dispatchPending.set(seqNum, { resolve, reject, timer, tool: toolName, origin, followerOrigId }); | ||
| const frame = { | ||
| type: 'dispatch_tool', | ||
| session_id: sessionId, | ||
| seq_num: seqNum, | ||
| tool: toolName, | ||
| args, | ||
| }; | ||
| try { | ||
| this.extensionSocket.send(JSON.stringify(frame)); | ||
| } | ||
| catch (err) { | ||
| this.dispatchPending.delete(seqNum); | ||
| clearTimeout(timer); | ||
| reject(new McpError(ERROR_CODE_DISPATCH_TIMEOUT, `Failed to send dispatch_tool to extension: ${err.message}`, { type: 'send_failed', tool: toolName })); | ||
| } | ||
| }); | ||
| } | ||
| _broadcastPushToFollowers(type, data) { | ||
@@ -522,0 +974,0 @@ if (this.followerSockets.size === 0) |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"extension-bridge.js","sourceRoot":"","sources":["../src/extension-bridge.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"extension-bridge.js","sourceRoot":"","sources":["../src/extension-bridge.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAc;IAE/B,2EAA2E;IAC3E,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAQ;IAE7B,+BAA+B;IAC/B,OAAO,CAAC,cAAc,CAAoD;IAC1E,OAAO,CAAC,UAAU,CAAO;gBAEb,MAAM,EAAE,MAAM;IAI1B;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA8B9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOhC;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,gBAAgB;YAqBV,UAAU;CAqCzB"} | ||
| {"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAc;IAE/B,2EAA2E;IAC3E,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAQ;IAE7B,+BAA+B;IAC/B,OAAO,CAAC,cAAc,CAAoD;IAC1E,OAAO,CAAC,UAAU,CAAO;gBAEb,MAAM,EAAE,MAAM;IAI1B;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA8B9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOhC;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,gBAAgB;YAqBV,UAAU;CA4CzB"} |
@@ -107,4 +107,11 @@ /** | ||
| console.error(`${LOG_PREFIX} Auto-exporting ${fileName} → ${scriptId}`); | ||
| // Send to extension via bridge | ||
| const result = await this.bridge.request('export_script', { | ||
| // Send to extension via bridge. Auto-export from the file | ||
| // watcher counts toward the user's MCP cap (ARD §4.1: every | ||
| // successful tool dispatch counts) — same +1 as if the IDE had | ||
| // called export_script directly. dispatchTool throws McpError | ||
| // (cap-exceeded, etc.); on cap-exceeded we surface the message | ||
| // to stderr but otherwise let the watcher keep running so a | ||
| // later cap reset / tier upgrade resumes auto-sync without a | ||
| // server restart. | ||
| const result = await this.bridge.dispatchTool('export_script', { | ||
| code, | ||
@@ -111,0 +118,0 @@ scriptId, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAkB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,OAAO,WAAW;IACd,OAAO,GAAqB,IAAI,CAAC;IACjC,MAAM,CAAS;IACf,SAAS,GAAW,EAAE,CAAC;IAE/B,2EAA2E;IACnE,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,aAAa,GAAG,IAAI,CAAC;IAE7B,+BAA+B;IACvB,cAAc,GAAG,IAAI,GAAG,EAAyC,CAAC;IAClE,UAAU,GAAG,GAAG,CAAC;IAEzB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAiB;QACrB,+BAA+B;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,yBAAyB,YAAY,2BAA2B,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,aAAa,SAAS,uBAAuB,CAAC,CAAC;QAE1E,uCAAuC;QACvC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YACxD,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACxC,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAgB;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,kBAAkB,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,gBAAgB,CAAC,QAAgB;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEpC,gEAAgE;QAChE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,QAAQ;YAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,QAAQ,EACR,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CACpB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB;QACzD,IAAI,CAAC;YACH,iCAAiC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,OAAO;YAEtC,MAAM,QAAQ,GAA2B,IAAI,CAAC,KAAK,CACjD,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CACpC,CAAC;YAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,gCAAgC,QAAQ,aAAa,CAAC,CAAC;gBAClF,OAAO;YACT,CAAC;YAED,oBAAoB;YACpB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO;YAEzB,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,mBAAmB,QAAQ,MAAM,QAAQ,EAAE,CAAC,CAAC;YAExE,+BAA+B;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;gBACxD,IAAI;gBACJ,QAAQ;aACT,CAA0C,CAAC;YAE5C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,MAAM,QAAQ,wBAAwB,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,MAAM,QAAQ,mBAAmB,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,oBAAoB,QAAQ,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;CACF"} | ||
| {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAkB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,OAAO,WAAW;IACd,OAAO,GAAqB,IAAI,CAAC;IACjC,MAAM,CAAS;IACf,SAAS,GAAW,EAAE,CAAC;IAE/B,2EAA2E;IACnE,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,aAAa,GAAG,IAAI,CAAC;IAE7B,+BAA+B;IACvB,cAAc,GAAG,IAAI,GAAG,EAAyC,CAAC;IAClE,UAAU,GAAG,GAAG,CAAC;IAEzB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAiB;QACrB,+BAA+B;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,yBAAyB,YAAY,2BAA2B,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,aAAa,SAAS,uBAAuB,CAAC,CAAC;QAE1E,uCAAuC;QACvC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YACxD,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACxC,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAgB;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,kBAAkB,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,gBAAgB,CAAC,QAAgB;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEpC,gEAAgE;QAChE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,QAAQ;YAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,QAAQ,EACR,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CACpB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB;QACzD,IAAI,CAAC;YACH,iCAAiC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,OAAO;YAEtC,MAAM,QAAQ,GAA2B,IAAI,CAAC,KAAK,CACjD,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CACpC,CAAC;YAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,gCAAgC,QAAQ,aAAa,CAAC,CAAC;gBAClF,OAAO;YACT,CAAC;YAED,oBAAoB;YACpB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO;YAEzB,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,mBAAmB,QAAQ,MAAM,QAAQ,EAAE,CAAC,CAAC;YAExE,0DAA0D;YAC1D,4DAA4D;YAC5D,+DAA+D;YAC/D,8DAA8D;YAC9D,+DAA+D;YAC/D,4DAA4D;YAC5D,6DAA6D;YAC7D,kBAAkB;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;gBAC7D,IAAI;gBACJ,QAAQ;aACT,CAA0C,CAAC;YAE5C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,MAAM,QAAQ,wBAAwB,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,MAAM,QAAQ,mBAAmB,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,oBAAoB,QAAQ,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;CACF"} |
@@ -61,2 +61,18 @@ /** | ||
| request(type: string, args?: Record<string, unknown>): Promise<unknown>; | ||
| /** | ||
| * Cap-enforced tool dispatch (ARD §4.4) for follower processes. | ||
| * Sends a `req-dispatch` frame to the leader; the leader runs cap | ||
| * enforcement against its single CapSession (one per extension | ||
| * connection, not per IDE) and relays the result back. McpError | ||
| * codes survive the relay via JSON-encoded error strings the | ||
| * leader writes for us to rehydrate here. | ||
| */ | ||
| dispatchTool(tool: string, args?: Record<string, unknown>): Promise<unknown>; | ||
| /** | ||
| * The leader serialises McpError as `JSON.stringify({code, message, data})` | ||
| * in the relayed `error` field; rehydrate to a real McpError so the | ||
| * follower's MCP SDK surfaces the right JSON-RPC code to its IDE. | ||
| * Plain Errors (network drops, etc.) pass through unchanged. | ||
| */ | ||
| private _maybeRehydrateMcpError; | ||
| onPush(handler: (type: string, data: any) => void): void; | ||
@@ -63,0 +79,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"remote-bridge.d.ts","sourceRoot":"","sources":["../src/remote-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAe5D,qBAAa,YAAa,YAAW,MAAM;IACzC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAEpC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAiC;IAErD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;gBAEjC,IAAI,SAAO,EAAE,gBAAgB,SAAS;IAKlD;;;;;;;;;;;;;;OAcG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,OAAO,CAAC,QAAQ;IAyEhB,OAAO,CAAC,kBAAkB;IAmDpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BjF,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIxD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAS9C,OAAO,CAAC,yBAAyB;IAc3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,8EAA8E;IAC9E,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,CAAC,IAAI;CAGb"} | ||
| {"version":3,"file":"remote-bridge.d.ts","sourceRoot":"","sources":["../src/remote-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAe5D,qBAAa,YAAa,YAAW,MAAM;IACzC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAEpC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAiC;IAErD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;gBAEjC,IAAI,SAAO,EAAE,gBAAgB,SAAS;IAKlD;;;;;;;;;;;;;;OAcG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,OAAO,CAAC,QAAQ;IAyEhB,OAAO,CAAC,kBAAkB;IAmDpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BjF;;;;;;;OAOG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqCtF;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAY/B,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIxD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAS9C,OAAO,CAAC,yBAAyB;IAc3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,8EAA8E;IAC9E,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,CAAC,IAAI;CAGb"} |
@@ -26,2 +26,3 @@ /** | ||
| import { randomUUID } from 'node:crypto'; | ||
| import { McpError } from '@modelcontextprotocol/sdk/types.js'; | ||
| import { FOLLOWER_ORIGIN } from './extension-bridge.js'; | ||
@@ -216,2 +217,59 @@ export class RemoteBridge { | ||
| } | ||
| /** | ||
| * Cap-enforced tool dispatch (ARD §4.4) for follower processes. | ||
| * Sends a `req-dispatch` frame to the leader; the leader runs cap | ||
| * enforcement against its single CapSession (one per extension | ||
| * connection, not per IDE) and relays the result back. McpError | ||
| * codes survive the relay via JSON-encoded error strings the | ||
| * leader writes for us to rehydrate here. | ||
| */ | ||
| async dispatchTool(tool, args = {}) { | ||
| if (this.closed) { | ||
| throw new Error('Bridge is closed'); | ||
| } | ||
| if (!this.ws || this.ws.readyState !== WebSocket.OPEN) { | ||
| throw new Error('Leader bridge is not connected. The customaise-mcp leader process may have exited.'); | ||
| } | ||
| if (!this.extensionConnected) { | ||
| throw new Error('Customaise extension is not connected to the leader bridge. Make sure Chrome is running with the Customaise extension loaded.'); | ||
| } | ||
| const id = randomUUID(); | ||
| return new Promise((resolve, reject) => { | ||
| const timer = setTimeout(() => { | ||
| this.pending.delete(id); | ||
| reject(new Error(`Dispatch to extension timed out after ${this.requestTimeoutMs}ms (tool=${tool}, id=${id})`)); | ||
| }, this.requestTimeoutMs); | ||
| this.pending.set(id, { | ||
| resolve, | ||
| // Wrap reject so we can rehydrate McpError from the leader's | ||
| // JSON-encoded error string. | ||
| reject: (err) => { | ||
| const rehydrated = this._maybeRehydrateMcpError(err); | ||
| reject(rehydrated); | ||
| }, | ||
| timer, | ||
| }); | ||
| const frame = { role: 'req-dispatch', id, tool, args }; | ||
| this.ws.send(JSON.stringify(frame)); | ||
| }); | ||
| } | ||
| /** | ||
| * The leader serialises McpError as `JSON.stringify({code, message, data})` | ||
| * in the relayed `error` field; rehydrate to a real McpError so the | ||
| * follower's MCP SDK surfaces the right JSON-RPC code to its IDE. | ||
| * Plain Errors (network drops, etc.) pass through unchanged. | ||
| */ | ||
| _maybeRehydrateMcpError(err) { | ||
| const msg = err?.message; | ||
| if (typeof msg !== 'string' || !msg.startsWith('{')) | ||
| return err; | ||
| try { | ||
| const parsed = JSON.parse(msg); | ||
| if (parsed && typeof parsed.code === 'number' && typeof parsed.message === 'string') { | ||
| return new McpError(parsed.code, parsed.message, parsed.data ?? undefined); | ||
| } | ||
| } | ||
| catch { /* not JSON, fall through */ } | ||
| return err; | ||
| } | ||
| onPush(handler) { | ||
@@ -218,0 +276,0 @@ this.pushHandler = handler; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"remote-bridge.js","sourceRoot":"","sources":["../src/remote-bridge.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"remote-bridge.js","sourceRoot":"","sources":["../src/remote-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAcxD,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,UAAmB,CAAC;IAE5B,EAAE,GAAqB,IAAI,CAAC;IAC5B,IAAI,CAAS;IACb,gBAAgB,CAAS;IACzB,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IACpD,WAAW,GAA+C,IAAI,CAAC;IAC/D,kBAAkB,GAAG,KAAK,CAAC;IAC3B,MAAM,GAAG,KAAK,CAAC;IACf,YAAY,GAA4B,IAAI,CAAC;IAErD;;;;OAIG;IACc,oBAAoB,GAAG,IAAI,CAAC;IAE7C,YAAY,IAAI,GAAG,IAAI,EAAE,gBAAgB,GAAG,MAAM;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,OAAmB,EAAE,MAA4B;QAChE,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE;YACtD,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACrC,IAAI,OAAO,IAAI,iBAAiB;gBAAE,OAAO;YACzC,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC;gBAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,KAAK,CACd,uCAAuC,IAAI,CAAC,oBAAoB,UAAU,IAAI,CAAC,IAAI,IAAI;gBACvF,6EAA6E,CAC9E,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAE9B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,8BAA8B,CAAC,CAAC;YAC9E,kDAAkD;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAgB,CAAC;gBACzD,wDAAwD;gBACxD,2DAA2D;gBAC3D,mDAAmD;gBACnD,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAClD,iBAAiB,GAAG,IAAI,CAAC;oBACzB,YAAY,CAAC,cAAc,CAAC,CAAC;oBAC7B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;oBACnD,2DAA2D;oBAC3D,yDAAyD;oBACzD,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,GAAG,IAAI,CAAC;wBACf,OAAO,EAAE,CAAC;oBACZ,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,kCAAkC,IAAI,YAAY,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClF,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,2DAA2D;YAC3D,0BAA0B;YAC1B,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC,CAAC;YACtG,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,IAAI,uCAAuC,CAAC,CAAC,CAAC;YACzG,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,OAAO,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAkB;QAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,IAAI,CAAC,6CAA6C,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnE,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9B,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,4CAA4C,CAAC,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/E,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,YAAY;wBAAE,OAAO;oBAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC9B,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,CAC3B,wCAAwC,QAAQ,gCAAgC,KAAK,CAAC,EAAE,GAAG,CAC5F,CAAC,CAAC;gBACL,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,gBAAgB,QAAQ,eAAe,KAAK,CAAC,MAAM,IAAI,aAAa,GAAG,CAAC,CAAC;gBACtG,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,IAAI,CAAC;wBAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAAC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBAC7D,IAAI,CAAC,IAAI,CAAC,sBAAuB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;gBACnD,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,8BAA+B,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAgC,EAAE;QAC5D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,+HAA+H,CAChI,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QAExB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,gBAAgB,YAAY,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAChH,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAEjD,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,KAAc,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAgC,EAAE;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,+HAA+H,CAChI,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QAExB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,gBAAgB,YAAY,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACjH,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACnB,OAAO;gBACP,6DAA6D;gBAC7D,6BAA6B;gBAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;oBACd,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;oBACrD,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrB,CAAC;gBACD,KAAK;aACN,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,cAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAAC,GAAU;QACxC,MAAM,GAAG,GAAG,GAAG,EAAE,OAAO,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACpF,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,OAA0C;QAC/C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACH,gBAAgB,CAAC,IAAsB;QACrC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO;QACvF,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;YAAE,OAAO;QACtF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO;QAC9D,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;gBAC5B,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;aACnC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,kCAAmC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC;IAC9F,CAAC;IAEO,IAAI,CAAC,OAAe;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;IACxD,CAAC;CACF"} |
+9
-0
@@ -6,2 +6,11 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; | ||
| * Register all MCP tools with the server. | ||
| * | ||
| * **Cap-counting contract (ARD §4.4):** every tool handler in this | ||
| * function MUST dispatch via `bridge.dispatchTool(toolName, args)`, | ||
| * NOT `bridge.request(...)`. The former goes through cap enforcement | ||
| * + bilateral counter handshake; the latter is the legacy v1 envelope | ||
| * and bypasses cap. If you add a new tool, copy the pattern from any | ||
| * existing `server.tool(...)` handler. If you're tempted to use | ||
| * `bridge.request` for a "lightweight" call, the answer is no — read | ||
| * the JSDoc on `Bridge.request` for the reasoning. | ||
| */ | ||
@@ -8,0 +17,0 @@ export declare function registerTools(server: McpServer, bridge: Bridge, fileWatcher?: FileWatcher): void; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAyBtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAusBhG;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgGnF"} | ||
| {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAyBtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAusBhG;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgGnF"} |
+29
-20
@@ -26,2 +26,11 @@ import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js'; | ||
| * Register all MCP tools with the server. | ||
| * | ||
| * **Cap-counting contract (ARD §4.4):** every tool handler in this | ||
| * function MUST dispatch via `bridge.dispatchTool(toolName, args)`, | ||
| * NOT `bridge.request(...)`. The former goes through cap enforcement | ||
| * + bilateral counter handshake; the latter is the legacy v1 envelope | ||
| * and bypasses cap. If you add a new tool, copy the pattern from any | ||
| * existing `server.tool(...)` handler. If you're tempted to use | ||
| * `bridge.request` for a "lightweight" call, the answer is no — read | ||
| * the JSDoc on `Bridge.request` for the reasoning. | ||
| */ | ||
@@ -31,3 +40,3 @@ export function registerTools(server, bridge, fileWatcher) { | ||
| server.tool('list_scripts', 'List all scripts (UserScripts & AgentScripts) installed in Customaise with their IDs, names, enabled status, match patterns, and whether they are shared (subscribed). Scripts marked isShared are read-only subscriptions — they cannot be imported, exported, edited, or deleted via MCP. To modify a shared script, the user must fork it from the extension UI.', {}, async () => { | ||
| const result = await bridge.request('list_scripts', {}); | ||
| const result = await bridge.dispatchTool('list_scripts', {}); | ||
| return { | ||
@@ -44,3 +53,3 @@ content: [{ | ||
| }, async ({ scriptId, filePath }) => { | ||
| const result = await bridge.request('import_script', { scriptId }); | ||
| const result = await bridge.dispatchTool('import_script', { scriptId }); | ||
| // Ensure directory exists and write file | ||
@@ -70,3 +79,3 @@ mkdirSync(dirname(filePath), { recursive: true }); | ||
| const code = readFileSync(filePath, 'utf-8'); | ||
| const result = await bridge.request('export_script', { code, scriptId }); | ||
| const result = await bridge.dispatchTool('export_script', { code, scriptId }); | ||
| return { | ||
@@ -82,3 +91,3 @@ content: [{ | ||
| }, async ({ scriptId }) => { | ||
| const result = await bridge.request('delete_script', { scriptId }); | ||
| const result = await bridge.dispatchTool('delete_script', { scriptId }); | ||
| return { | ||
@@ -95,3 +104,3 @@ content: [{ | ||
| }, async ({ scriptId, enabled }) => { | ||
| const result = await bridge.request('set_script_enabled', { scriptId, enabled }); | ||
| const result = await bridge.dispatchTool('set_script_enabled', { scriptId, enabled }); | ||
| return { | ||
@@ -112,3 +121,3 @@ content: [{ | ||
| }, async ({ tabId }) => { | ||
| const result = await bridge.request('get_page_context', { tabId }); | ||
| const result = await bridge.dispatchTool('get_page_context', { tabId }); | ||
| // Strip fields that are only for the extension's internal chat UI | ||
@@ -148,3 +157,3 @@ delete result.displayContent; | ||
| }, async ({ tabId, level }) => { | ||
| const result = await bridge.request('get_console_context', { tabId }); | ||
| const result = await bridge.dispatchTool('get_console_context', { tabId }); | ||
| // Strip fields that are only for the extension's internal chat UI | ||
@@ -199,3 +208,3 @@ delete result.displayContent; | ||
| server.tool('list_tabs', 'List all open browser tabs with their IDs, URLs, titles, and active status. Use to find a specific tab ID for other tools like reload_tab or take_screenshot.', {}, async () => { | ||
| const result = await bridge.request('list_tabs', {}); | ||
| const result = await bridge.dispatchTool('list_tabs', {}); | ||
| return { | ||
@@ -212,3 +221,3 @@ content: [{ | ||
| }, async ({ url, active }) => { | ||
| const result = await bridge.request('open_tab', { url, active }); | ||
| const result = await bridge.dispatchTool('open_tab', { url, active }); | ||
| return { | ||
@@ -224,3 +233,3 @@ content: [{ | ||
| }, async ({ tabId }) => { | ||
| const result = await bridge.request('close_tab', { tabId }); | ||
| const result = await bridge.dispatchTool('close_tab', { tabId }); | ||
| return { | ||
@@ -236,3 +245,3 @@ content: [{ | ||
| }, async ({ tabId }) => { | ||
| const result = await bridge.request('focus_tab', { tabId }); | ||
| const result = await bridge.dispatchTool('focus_tab', { tabId }); | ||
| return { | ||
@@ -251,3 +260,3 @@ content: [{ | ||
| // AgentScript tabs auto-wait for tool re-registration. | ||
| const result = await bridge.request('reload_tab', { tabId }); | ||
| const result = await bridge.dispatchTool('reload_tab', { tabId }); | ||
| return { | ||
@@ -264,3 +273,3 @@ content: [{ | ||
| }, async ({ tabId, filePath }) => { | ||
| const result = await bridge.request('take_screenshot', { tabId }); | ||
| const result = await bridge.dispatchTool('take_screenshot', { tabId }); | ||
| // Write base64 PNG data to file | ||
@@ -287,3 +296,3 @@ const savePath = filePath || join(tmpdir(), `customaise-screenshot-${Date.now()}.png`); | ||
| }, async ({ tabId, panel }) => { | ||
| const result = await bridge.request('show_ui', { tabId, panel }); | ||
| const result = await bridge.dispatchTool('show_ui', { tabId, panel }); | ||
| return { | ||
@@ -299,3 +308,3 @@ content: [{ | ||
| }, async ({ tabId }) => { | ||
| const result = await bridge.request('list_webmcp_tools', { tabId }); | ||
| const result = await bridge.dispatchTool('list_webmcp_tools', { tabId }); | ||
| return { | ||
@@ -313,3 +322,3 @@ content: [{ | ||
| }, async ({ tabId, toolName, toolArgs }) => { | ||
| const result = await bridge.request('call_webmcp_tool', { tabId, toolName, toolArgs }); | ||
| const result = await bridge.dispatchTool('call_webmcp_tool', { tabId, toolName, toolArgs }); | ||
| return { | ||
@@ -327,3 +336,3 @@ content: [{ | ||
| // Get all scripts with code | ||
| const scripts = await bridge.request('list_scripts_with_code', {}); | ||
| const scripts = await bridge.dispatchTool('list_scripts_with_code', {}); | ||
| mkdirSync(directory, { recursive: true }); | ||
@@ -384,3 +393,3 @@ const manifest = {}; | ||
| }, async ({ scriptId, writeFiles, directory }) => { | ||
| const result = await bridge.request('get_selected_elements', { scriptId }); | ||
| const result = await bridge.dispatchTool('get_selected_elements', { scriptId }); | ||
| // Optionally write .dom.md files to workspace | ||
@@ -597,3 +606,3 @@ if (writeFiles && directory) { | ||
| }, async (uri) => { | ||
| const result = await bridge.request('list_scripts', {}); | ||
| const result = await bridge.dispatchTool('list_scripts', {}); | ||
| return { | ||
@@ -612,3 +621,3 @@ contents: [{ | ||
| const scriptId = variables.scriptId; | ||
| const result = await bridge.request('import_script', { scriptId }); | ||
| const result = await bridge.dispatchTool('import_script', { scriptId }); | ||
| return { | ||
@@ -615,0 +624,0 @@ contents: [{ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@customaise/mcp", | ||
| "version": "1.3.0", | ||
| "version": "2.0.0", | ||
| "description": "MCP server bridging AI coding agents (Cursor, Claude Code, Codex, Windsurf, Kiro, Antigravity) to the Customaise Chrome extension. 18 tools: UserScripts, AgentScripts, WebMCP calls with HITL consent, visual DOM targeting, tab control.", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+8
-2
@@ -273,5 +273,11 @@ # @customaise/mcp | ||
| - **Node.js** ≥ 18 | ||
| - **Chrome** with the Customaise extension installed | ||
| - **MCP Bridge** enabled in Customaise Settings (Power User feature) | ||
| - **Chrome** with the Customaise extension installed (≥ 1.4.0 for the v2 bridge protocol — older extensions still work but don't surface the cap-usage display) | ||
| - **MCP Bridge** enabled in Customaise Settings (free, signed-in) | ||
| ## Plan tiers | ||
| The MCP Bridge is free for any signed-in Customaise user. Free use is capped at **50 calls per UTC day** and **150 calls per rolling 7-day window**. **Power User** unlocks unlimited MCP. The cap covers every successful tool dispatch (built-in tools and WebMCP calls alike); failed calls and protocol-level traffic don't count. | ||
| When the cap fires, the server returns a JSON-RPC error in the implementation-defined `-32029` slot with a human-readable message + structured `data` carrying scope, used/limit, and reset timestamp. IDEs that surface tool errors render the message verbatim. Sign-in is required regardless of tier; without a fresh Firebase ID token the server returns `-32028 MCP_AUTH_REQUIRED`. | ||
| ## Troubleshooting | ||
@@ -278,0 +284,0 @@ |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
284828
37.64%32
14.29%3479
43.88%308
1.99%13
30%