Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@customaise/mcp

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@customaise/mcp - npm Package Compare versions

Comparing version
1.3.0
to
2.0.0
+162
dist/cap-state.d.ts
/**
* 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

@@ -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"}

@@ -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":"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"}
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"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"}

@@ -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"}

@@ -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"}

@@ -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":"AAAA,OAAO,EAAa,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;GAKG;AACH,SAAS,eAAe;IACtB,8BAA8B;IAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACtD,IAAI,YAAY,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QAChE,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QAC9B,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAKD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,MAAc,EAAE,WAAyB;IAExF,uEAAuE;IAEvE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,qWAAqW,EACrW,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,2fAA2f,EAC3f;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACvF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gIAAgI,CAAC;KAChK,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAIrE,CAAC;QAEF,yCAAyC;QACzC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEhD,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,QAAQ;wBACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBACxD,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf;;;sYAGkY,EAClY;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACtF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;KAC7G,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAIF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,qNAAqN,EACrN;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAChE,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,uJAAuJ,EACvJ;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACvE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAClE,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACtF,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,uEAAuE;IACvE,wEAAwE;IACxE,mEAAmE;IACnE,mEAAmE;IACnE,2DAA2D;IAE3D,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,uUAAuU,EACvU;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;KACxF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,CAAwB,CAAC;QAE/F,kEAAkE;QAClE,OAAO,MAAM,CAAC,cAAc,CAAC;QAC7B,OAAO,MAAM,CAAC,aAAa,CAAC;QAE5B,6DAA6D;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1D,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3C,2DAA2D;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,EAAE,YAAY;eACxC,MAAM,CAAC,YAAY;eACnB,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5E,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,GAAG;wBACH,KAAK;wBACL,QAAQ;wBACR,UAAU,EAAE,GAAG,UAAU,KAAK;wBAC9B,YAAY;wBACZ,IAAI,EAAE,uKAAuK;qBAC9K,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,mSAAmS,EACnS;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QAC7F,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAClH,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,CAMxE,CAAC;QAEF,kEAAkE;QAClE,OAAO,MAAM,CAAC,cAAc,CAAC;QAC7B,OAAO,MAAM,CAAC,aAAa,CAAC;QAE5B,+CAA+C;QAC/C,IAAI,UAAU,GAA4B,MAAM,CAAC;QACjD,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YAC7B,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,OAAO,UAAU,CAAC,QAAQ,CAAC;gBAC3B,OAAO,UAAU,CAAC,cAAc,CAAC;YACnC,CAAC;iBAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,UAAU,CAAC,MAAM,CAAC;gBACzB,OAAO,UAAU,CAAC,cAAc,CAAC;YACnC,CAAC;iBAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACjD,OAAO,UAAU,CAAC,MAAM,CAAC;gBACzB,OAAO,UAAU,CAAC,QAAQ,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1D,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3C,2DAA2D;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5E,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,QAAQ;wBACR,UAAU,EAAE,GAAG,UAAU,KAAK;wBAC9B,MAAM,EAAE;4BACN,MAAM,EAAE,UAAU;4BAClB,QAAQ,EAAE,SAAS;4BACnB,cAAc,EAAE,UAAU;4BAC1B,WAAW,EAAE,KAAK,IAAI,KAAK;yBAC5B;wBACD,IAAI,EAAE,0JAA0J;qBACjK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,+JAA+J,EAC/J,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,UAAU,EACV,wEAAwE,EACxE;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC1D,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;KAC/G,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,mFAAmF,EACnF;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KACpE,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,+DAA+D,EAC/D;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KACzD,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,0RAA0R,EAC1R;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KACvF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,sEAAsE;QACtE,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAElE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,mJAAmJ,EACnJ;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAC1F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;KAC3H,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAIpE,CAAC;QAEF,gCAAgC;QAChC,MAAM,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvF,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC1E,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,QAAQ;wBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,yNAAyN,EACzN;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC5F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACtF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAGF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,+LAA+L,EAC/L;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACtF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,6MAA6M,EAC7M;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACtF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KACzF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5F,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,uEAAuE;IAEvE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,4TAA4T,EAC5T;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;KACrG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,4BAA4B;QAC5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE,EAAE,CAKpE,CAAC;QAEH,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,MAAM,aAAa,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YACpG,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;YAEzD,gDAAgD;YAChD,IAAI,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC;iBACvC,WAAW,EAAE;iBACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;iBAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;iBACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEzB,2EAA2E;YAC3E,IAAI,QAAQ,GAAG,GAAG,QAAQ,GAAG,OAAO,EAAE,CAAC;YACvC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,QAAQ,GAAG,GAAG,QAAQ,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;YACjD,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;YAE5C,0DAA0D;YAC1D,IAAI,WAAW;gBAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YACpD,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YAC/B,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,gCAAgC;QAChC,MAAM,YAAY,GAAG,GAAG,SAAS,4BAA4B,CAAC;QAC9D,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAExE,6CAA6C;QAC7C,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,SAAS;wBACT,YAAY;wBACZ,YAAY;wBACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;qBACtE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAGF,sEAAsE;IAEtE,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,uhBAAuhB,EACvhB;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;QAClH,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QAChI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;KACpH,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAQ,CAAC;QAEvF,8CAA8C;QAC9C,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,QAAQ;gBACzB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/F,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAE3B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAEnE,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;qBAC9C,WAAW,EAAE;qBACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;qBAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;qBACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;gBACrC,kFAAkF;gBAClF,IAAI,OAAO,GAAG,SAAS,CAAC;gBACxB,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;oBACpE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACxE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE1C,MAAM,QAAQ,GAAwB,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;gBAEpC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpC,sEAAsE;oBACtE,IAAI,UAAU,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;yBAC3D,WAAW,EAAE;yBACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;yBAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;yBACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;oBAEtC,qDAAqD;oBACrD,IAAI,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;wBAChB,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC;4BAAE,OAAO,EAAE,CAAC;wBAC5D,UAAU,GAAG,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC;oBAC1C,CAAC;oBACD,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAE1B,qCAAqC;oBACrC,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;oBAEjH,sEAAsE;oBACtE,gEAAgE;oBAChE,MAAM,EAAE,GAAG,GAAG,CAAC,oBAAoB,IAAI,EAAS,CAAC;oBACjD,MAAM,SAAS,GAAa,EAAE,CAAC;oBAC/B,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1F,MAAM,UAAU,GAAyB;wBACvC,CAAC,sBAAsB,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC;wBACvD,CAAC,kBAAkB,EAAE,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC;wBAC/C,CAAC,uBAAuB,EAAE,EAAE,CAAC,qBAAqB,IAAI,EAAE,CAAC;wBACzD,CAAC,6BAA6B,EAAE,EAAE,CAAC,2BAA2B,IAAI,EAAE,CAAC;wBACrE,CAAC,uBAAuB,EAAE,EAAE,CAAC,qBAAqB,IAAI,EAAE,CAAC;wBACzD,CAAC,kBAAkB,EAAE,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC;qBAChD,CAAC;oBACF,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;wBACrC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACnB,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;4BAC7B,KAAK,MAAM,IAAI,IAAI,GAAG;gCAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC9D,CAAC;oBACH,CAAC;oBACD,IAAI,EAAE,CAAC,eAAe;wBAAE,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;oBACvF,IAAI,EAAE,CAAC,qBAAqB;wBAAE,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;oBAEzG,4EAA4E;oBAC5E,yEAAyE;oBACzE,8EAA8E;oBAC9E,wEAAwE;oBACxE,gFAAgF;oBAChF,sEAAsE;oBACtE,IAAI,aAAa,GAAG,KAAK,CAAC;oBAC1B,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBACnB,IAAI,CAAC;4BACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;4BACxD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,iBAAiB,CAAC,EAAE,SAAS,CAAC,CAAC;4BAC1E,aAAa,GAAG,IAAI,CAAC;wBACvB,CAAC;wBAAC,MAAM,CAAC;4BACP,YAAY;wBACd,CAAC;oBACH,CAAC;oBAED,MAAM,KAAK,GAAG;wBACZ,KAAK;wBACL,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBACzB,gBAAgB,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE;wBAC3C,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBAC7B,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;wBACnC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;wBAC3D,SAAS,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,SAAS,CAAC,EAAE;wBAC/C,YAAY,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,IAAI,SAAS,CAAC,EAAE;wBACrD,kBAAkB,GAAG,CAAC,SAAS,EAAE,aAAa,IAAI,KAAK,EAAE;wBACzD,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBAC7B,cAAc,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;wBACvC,eAAe,GAAG,CAAC,UAAU,EAAE;wBAC/B,uBAAuB;wBACvB,GAAG,SAAS;wBACZ,KAAK;wBACL,EAAE;wBACF,KAAK,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,EAAE;wBACrC,EAAE;wBACF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,+BAA+B;wBAClG,EAAE;wBACF,aAAa,CAAC,CAAC,CAAC,2BAA2B,UAAU,kBAAkB,CAAC,CAAC,CAAC,EAAE;wBAC5E,EAAE;wBACF,yBAAyB;wBACzB,OAAO;wBACP,yCAAyC,GAAG,CAAC,KAAK,KAAK;wBACvD,KAAK;wBACL,EAAE;qBACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE7B,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAEvE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG;wBACpB,IAAI,EAAE,GAAG,UAAU,SAAS;wBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB,CAAC;gBACJ,CAAC;gBAED,iBAAiB;gBACjB,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EACjC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EACzG,OAAO,CACR,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAGF,uEAAuE;IAGvE,sEAAsE;IACtE,wEAAwE;IACxE,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3B,IAAI,IAAI,KAAK,oBAAoB;YAAE,OAAO;QAE1C,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,CAAC,UAAU,IAAI,QAAQ,IAAI,SAAS,CAAC;iBACnD,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;YACxE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC;iBACnE,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;YACpF,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;YAE1E,mBAAmB;YACnB,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACpD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,iBAAiB,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC1E,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC;YAED,eAAe;YACf,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;YAC9G,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,IAAI,EAAE,CAAC;YAChD,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,cAAc;gBAAE,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACpF,IAAI,EAAE,CAAC,oBAAoB,EAAE,MAAM;gBAAE,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/H,IAAI,EAAE,CAAC,gBAAgB,EAAE,MAAM;gBAAE,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnH,IAAI,EAAE,CAAC,qBAAqB,EAAE,MAAM;gBAAE,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClI,IAAI,EAAE,CAAC,2BAA2B,EAAE,MAAM;gBAAE,SAAS,CAAC,IAAI,CAAC,mCAAmC,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpJ,IAAI,EAAE,CAAC,eAAe;gBAAE,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACvF,IAAI,EAAE,CAAC,qBAAqB;gBAAE,SAAS,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAEzG,MAAM,KAAK,GAAG;gBACZ,KAAK;gBACL,UAAU,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC/B,gBAAgB,EAAE,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE;gBACjD,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACnC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;gBACzC,gBAAgB,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;gBACjE,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;gBACzC,cAAc,EAAE,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;gBAC7C,aAAa,CAAC,CAAC,CAAC,gBAAgB,UAAU,kBAAkB,CAAC,CAAC,CAAC,IAAI;gBACnE,uBAAuB;gBACvB,GAAG,SAAS;gBACZ,KAAK;gBACL,EAAE;gBACF,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC1E,EAAE;aACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7B,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,UAAU,wBAAwB,aAAa,KAAK,CAAC,CAAC;QAC7H,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,MAAc;IAE3E,uEAAuE;IAEvE,MAAM,CAAC,QAAQ,CACb,cAAc,EACd,sBAAsB,EACtB;QACE,WAAW,EAAE,qGAAqG;QAClH,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,QAAQ,CACb,eAAe,EACf,IAAI,gBAAgB,CAAC,iCAAiC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC5E;QACE,WAAW,EAAE,kGAAkG;QAC/G,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAkB,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,QAAQ,CACb,aAAa,EACb,0BAA0B,EAC1B;QACE,WAAW,EAAE,+CAA+C;QAC5D,QAAQ,EAAE,eAAe;KAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,yQAAyQ;iBAChR,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,QAAQ,CACb,wBAAwB,EACxB,qCAAqC,EACrC;QACE,WAAW,EAAE,oFAAoF;QACjG,QAAQ,EAAE,eAAe;KAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,sBAAsB;iBAC7B,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,QAAQ,CACb,yBAAyB,EACzB,sCAAsC,EACtC;QACE,WAAW,EAAE,qFAAqF;QAClG,QAAQ,EAAE,eAAe;KAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,uBAAuB;iBAC9B,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAGD,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkH9B,CAAC;AAEF,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmO/B,CAAC"}
{
"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",

@@ -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 @@