Files
2026-03-03 23:49:13 +01:00

64 lines
2.3 KiB
TypeScript

/**
* Shared utilities for connecting to the relay server.
* Used by both MCP and CLI.
*/
export declare const RELAY_PORT: number;
export type ExtensionStatus = {
extensionId: string;
stableKey?: string;
browser: string | null;
profile: {
email: string;
id: string;
} | null;
activeTargets: number;
playwriterVersion: string | null;
};
export declare function getRelayServerVersion(port?: number): Promise<string | null>;
export declare function getExtensionStatus(port?: number): Promise<{
connected: boolean;
activeTargets: number;
playwriterVersion: string | null;
} | null>;
export declare function getExtensionsStatus(port?: number): Promise<ExtensionStatus[]>;
/**
* Wait for at least one extension to appear in extensions status.
* Returns connected extension entries, or [] on timeout.
*/
export declare function waitForConnectedExtensions(options?: {
port?: number;
timeoutMs?: number;
pollIntervalMs?: number;
logger?: {
log: (...args: any[]) => void;
};
}): Promise<ExtensionStatus[]>;
/**
* Compare two semver versions. Returns:
* - negative if v1 < v2
* - 0 if v1 === v2
* - positive if v1 > v2
*/
export declare function compareVersions(v1: string, v2: string): number;
/**
* Check if the running playwriter package is older than the version the extension was built with.
* The extension bundles the playwriter version at build time. If the extension reports a newer
* version, it means the user's CLI/MCP needs updating.
* Returns a warning message if outdated, null otherwise.
*/
export declare function getExtensionOutdatedWarning(extensionPlaywriterVersion: string | null | undefined): string | null;
export interface EnsureRelayServerOptions {
logger?: {
log: (...args: any[]) => void;
};
/** If true, will kill and restart server on version mismatch. Default: true */
restartOnVersionMismatch?: boolean;
/** Pass additional environment variables to the relay server process */
env?: Record<string, string>;
}
/**
* Ensures the relay server is running. Starts it if not running.
* Optionally restarts on version mismatch.
*/
export declare function ensureRelayServer(options?: EnsureRelayServerOptions): Promise<true | undefined>;
//# sourceMappingURL=relay-client.d.ts.map