Sign In

@panerelay/protocol

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@panerelay/protocol - npm Package Compare versions

Comparing version
0.2.0
to
0.3.0
+45
dist/cdp-bootstrap.d.ts
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
import { type AutomationEngineId, type RelaySessionActor } from './index.js';
export declare const CDP_BOOTSTRAP_MAX_REQUEST_BYTES: number;
export declare const CDP_BOOTSTRAP_DEFAULT_TICKET_TTL_MS = 30000;
export declare const CDP_BOOTSTRAP_DEFAULT_CONNECTION_WINDOW_MS = 30000;
export declare const CDP_BOOTSTRAP_MAX_OUTSTANDING_TICKETS = 32;
export type CdpBootstrapConnectionPolicy = 'single';
export type CdpBootstrapErrorCode = 'invalid-request' | 'unauthorized' | 'browser-unavailable' | 'generation-changed' | 'unsupported' | 'ticket-limit' | 'participant-limit' | 'ticket-invalid' | 'ticket-expired' | 'ticket-consumed' | 'lane-busy';
export interface CdpBootstrapBrowserBinding {
browserId: string;
generation: string;
}
export interface CdpBootstrapRequest {
protocol: typeof PANERELAY_PROTOCOL_VERSION;
browser: CdpBootstrapBrowserBinding;
actor: RelaySessionActor;
engine: AutomationEngineId;
laneKey: string;
connectionPolicy: CdpBootstrapConnectionPolicy;
}
export interface CdpBootstrapCreated {
protocol: typeof PANERELAY_PROTOCOL_VERSION;
cdpUrl: string;
expiresAt: string;
}
export interface CdpBootstrapError {
protocol: typeof PANERELAY_PROTOCOL_VERSION;
error: {
code: CdpBootstrapErrorCode;
message: string;
};
}
export interface CdpBootstrapVersionMetadata {
Browser: string;
'Protocol-Version': string;
'User-Agent': string;
'V8-Version': string;
'WebKit-Version': string;
webSocketDebuggerUrl: string;
}
export declare function isCdpBootstrapLaneKey(value: unknown): value is string;
export declare function isCdpBootstrapGeneration(value: unknown): value is string;
export declare function isCdpBootstrapRequest(value: unknown): value is CdpBootstrapRequest;
export declare function isCdpBootstrapCreated(value: unknown): value is CdpBootstrapCreated;
//# sourceMappingURL=cdp-bootstrap.d.ts.map
{"version":3,"file":"cdp-bootstrap.d.ts","sourceRoot":"","sources":["../src/cdp-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAwB,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnG,eAAO,MAAM,+BAA+B,QAAY,CAAC;AACzD,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAC1D,eAAO,MAAM,0CAA0C,QAAS,CAAC;AACjE,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAExD,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,cAAc,GACd,qBAAqB,GACrB,oBAAoB,GACpB,aAAa,GACb,cAAc,GACd,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,OAAO,EAAE,0BAA0B,CAAC;IACpC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,4BAA4B,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE;QACL,IAAI,EAAE,qBAAqB,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAgBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAErE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExE;AAmBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAyBlF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAiBlF"}
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
import { isAutomationEngineId } from './index.js';
export const CDP_BOOTSTRAP_MAX_REQUEST_BYTES = 16 * 1024;
export const CDP_BOOTSTRAP_DEFAULT_TICKET_TTL_MS = 30_000;
export const CDP_BOOTSTRAP_DEFAULT_CONNECTION_WINDOW_MS = 30_000;
export const CDP_BOOTSTRAP_MAX_OUTSTANDING_TICKETS = 32;
function isRecord(value) {
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
}
function hasExactKeys(value, keys) {
const actual = Object.keys(value).sort();
const expected = [...keys].sort();
return actual.length === expected.length && actual.every((key, index) => key === expected[index]);
}
function isBoundedString(value, maximum) {
return typeof value === 'string' && value.length > 0 && value.length <= maximum;
}
export function isCdpBootstrapLaneKey(value) {
return isBoundedString(value, 128) && /^[A-Za-z0-9._:-]+$/.test(value);
}
export function isCdpBootstrapGeneration(value) {
return isBoundedString(value, 128) && /^[A-Za-z0-9._:-]+$/.test(value);
}
function isAutomationActor(value) {
if (!isRecord(value) ||
!hasExactKeys(value, value.sessionLabel === undefined ? ['kind', 'name'] : ['kind', 'name', 'sessionLabel'])) {
return false;
}
return (value.kind === 'automation' &&
isBoundedString(value.name, 64) &&
(value.sessionLabel === undefined || isBoundedString(value.sessionLabel, 128)));
}
export function isCdpBootstrapRequest(value) {
if (!isRecord(value) ||
!hasExactKeys(value, [
'protocol',
'browser',
'actor',
'engine',
'laneKey',
'connectionPolicy',
]) ||
value.protocol !== PANERELAY_PROTOCOL_VERSION ||
!isRecord(value.browser) ||
!hasExactKeys(value.browser, ['browserId', 'generation'])) {
return false;
}
return (isBoundedString(value.browser.browserId, 128) &&
isCdpBootstrapGeneration(value.browser.generation) &&
isAutomationActor(value.actor) &&
isAutomationEngineId(value.engine) &&
isCdpBootstrapLaneKey(value.laneKey) &&
value.connectionPolicy === 'single');
}
export function isCdpBootstrapCreated(value) {
if (!isRecord(value) ||
!hasExactKeys(value, ['protocol', 'cdpUrl', 'expiresAt']) ||
value.protocol !== PANERELAY_PROTOCOL_VERSION ||
!isBoundedString(value.cdpUrl, 4_096) ||
!isBoundedString(value.expiresAt, 64) ||
!Number.isFinite(Date.parse(value.expiresAt))) {
return false;
}
try {
const url = new URL(value.cdpUrl);
return url.protocol === 'http:' && url.hostname === '127.0.0.1';
}
catch {
return false;
}
}
export declare const PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION: "panerelay.cli-adapter.v1";
export declare const CLI_ADAPTER_MAX_MESSAGE_BYTES: number;
export declare const CLI_ADAPTER_MAX_ENVIRONMENT_BYTES: number;
export declare const CLI_ADAPTER_MAX_ENVIRONMENT_KEYS = 16;
export declare const CLI_ADAPTER_MAX_DOCTOR_CHECKS = 32;
export type CliAdapterOperation = 'adapter.manifest' | 'connection.resolve' | 'adapter.doctor';
export type CliAdapterCapability = 'connection.resolve' | 'adapter.doctor';
export type CliAdapterMode = 'direct' | 'extension';
export type CliAdapterConnectionKind = 'direct' | 'cdp-http' | 'cdp-websocket';
export type CliAdapterDoctorStatus = 'ready' | 'degraded' | 'unavailable';
export type CliAdapterDoctorCheckStatus = 'pass' | 'warning' | 'fail';
export type CliAdapterErrorCode = 'invalid-request' | 'incompatible-protocol' | 'unsupported-operation' | 'adapter-unavailable' | 'browser-unavailable' | 'generation-changed' | 'not-ready' | 'busy' | 'timeout' | 'internal-error';
export interface CliAdapterActor {
name: string;
sessionLabel?: string;
}
export interface CliAdapterBrowserSelection {
browserId: string;
generation: string;
}
export interface CliAdapterManifestRequest {
protocol: typeof PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION;
requestId: string;
operation: 'adapter.manifest';
input: Record<string, never>;
}
export interface CliAdapterResolveRequest {
protocol: typeof PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION;
requestId: string;
operation: 'connection.resolve';
input: {
mode: CliAdapterMode;
actor: CliAdapterActor;
browser?: CliAdapterBrowserSelection;
};
}
export interface CliAdapterDoctorRequest {
protocol: typeof PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION;
requestId: string;
operation: 'adapter.doctor';
input: Record<string, never>;
}
export type CliAdapterRequest = CliAdapterManifestRequest | CliAdapterResolveRequest | CliAdapterDoctorRequest;
export interface CliAdapterManifest {
adapterId: string;
name: string;
version: string;
protocol: typeof PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION;
capabilities: CliAdapterCapability[];
modes: CliAdapterMode[];
childEnvironmentKeys: string[];
}
export interface CliAdapterResolvedConnection {
mode: CliAdapterMode;
connection: {
kind: CliAdapterConnectionKind;
url?: string;
};
environment: Record<string, string>;
expiresAt?: string;
concurrencyKey?: string;
}
export interface CliAdapterDoctorCheck {
id: string;
status: CliAdapterDoctorCheckStatus;
message?: string;
version?: string;
}
export interface CliAdapterDoctorResult {
status: CliAdapterDoctorStatus;
checks: CliAdapterDoctorCheck[];
}
export type CliAdapterOperationResult = CliAdapterManifest | CliAdapterResolvedConnection | CliAdapterDoctorResult;
export interface CliAdapterSuccessResponse {
protocol: typeof PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION;
requestId: string;
operation: CliAdapterOperation;
success: true;
result: CliAdapterOperationResult;
}
export interface CliAdapterFailureResponse {
protocol: typeof PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION;
requestId: string;
operation: CliAdapterOperation;
success: false;
error: {
code: CliAdapterErrorCode;
message: string;
retryable: boolean;
};
}
export type CliAdapterResponse = CliAdapterSuccessResponse | CliAdapterFailureResponse;
export declare function isSafeCliAdapterEnvironmentKey(value: unknown): value is string;
export declare function isCliAdapterRequest(value: unknown): value is CliAdapterRequest;
export declare function isCliAdapterManifest(value: unknown): value is CliAdapterManifest;
export declare function isCliAdapterResponse(value: unknown): value is CliAdapterResponse;
export declare function parseCliAdapterRequest(serialized: string): CliAdapterRequest;
export declare function parseCliAdapterResponse(serialized: string): CliAdapterResponse;
export declare function serializeCliAdapterMessage(value: CliAdapterRequest | CliAdapterResponse): string;
//# sourceMappingURL=cli-adapter.d.ts.map
{"version":3,"file":"cli-adapter.d.ts","sourceRoot":"","sources":["../src/cli-adapter.ts"],"names":[],"mappings":"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"}
export const PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION = 'panerelay.cli-adapter.v1';
export const CLI_ADAPTER_MAX_MESSAGE_BYTES = 64 * 1024;
export const CLI_ADAPTER_MAX_ENVIRONMENT_BYTES = 16 * 1024;
export const CLI_ADAPTER_MAX_ENVIRONMENT_KEYS = 16;
export const CLI_ADAPTER_MAX_DOCTOR_CHECKS = 32;
const OPERATIONS = new Set([
'adapter.manifest',
'connection.resolve',
'adapter.doctor',
]);
const CAPABILITIES = new Set(['connection.resolve', 'adapter.doctor']);
const MODES = new Set(['direct', 'extension']);
const CONNECTION_KINDS = new Set(['direct', 'cdp-http', 'cdp-websocket']);
const DOCTOR_STATUSES = new Set(['ready', 'degraded', 'unavailable']);
const DOCTOR_CHECK_STATUSES = new Set(['pass', 'warning', 'fail']);
const ERROR_CODES = new Set([
'invalid-request',
'incompatible-protocol',
'unsupported-operation',
'adapter-unavailable',
'browser-unavailable',
'generation-changed',
'not-ready',
'busy',
'timeout',
'internal-error',
]);
const FORBIDDEN_ENVIRONMENT_KEYS = new Set([
'PATH',
'HOME',
'USERPROFILE',
'SHELL',
'COMSPEC',
'NODE_OPTIONS',
'NODE_PATH',
'PYTHONPATH',
]);
function isRecord(value) {
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
}
function hasOnlyKeys(value, allowed) {
const allowedKeys = new Set(allowed);
return Object.keys(value).every(key => allowedKeys.has(key));
}
function hasExactKeys(value, required) {
return hasOnlyKeys(value, required) && required.every(key => key in value);
}
function isBoundedString(value, maximum, minimum = 1) {
return typeof value === 'string' && value.length >= minimum && value.length <= maximum;
}
function isRequestId(value) {
return isBoundedString(value, 128) && /^[A-Za-z0-9._:-]+$/.test(value);
}
function isIdentifier(value, maximum = 64) {
return isBoundedString(value, maximum) && /^[a-z][a-z0-9-]*$/.test(value);
}
function isVersion(value) {
return isBoundedString(value, 64) && /^[0-9A-Za-z][0-9A-Za-z.+_-]*$/.test(value);
}
function isIsoDate(value) {
return isBoundedString(value, 64) && Number.isFinite(Date.parse(value));
}
function isUniqueEnumList(value, allowed, maximum) {
return (Array.isArray(value) &&
value.length > 0 &&
value.length <= maximum &&
value.every(item => typeof item === 'string' && allowed.has(item)) &&
new Set(value).size === value.length);
}
export function isSafeCliAdapterEnvironmentKey(value) {
return (typeof value === 'string' &&
/^[A-Z][A-Z0-9_]{0,63}$/.test(value) &&
!FORBIDDEN_ENVIRONMENT_KEYS.has(value) &&
!value.startsWith('LD_') &&
!value.startsWith('DYLD_'));
}
function isActor(value) {
if (!isRecord(value) || !hasOnlyKeys(value, ['name', 'sessionLabel']))
return false;
return (isBoundedString(value.name, 64) &&
(value.sessionLabel === undefined || isBoundedString(value.sessionLabel, 128)));
}
function isBrowserSelection(value) {
return (isRecord(value) &&
hasExactKeys(value, ['browserId', 'generation']) &&
isBoundedString(value.browserId, 128) &&
isBoundedString(value.generation, 128) &&
/^[A-Za-z0-9._:-]+$/.test(value.generation));
}
export function isCliAdapterRequest(value) {
if (!isRecord(value) ||
!hasExactKeys(value, ['protocol', 'requestId', 'operation', 'input']) ||
value.protocol !== PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION ||
!isRequestId(value.requestId) ||
typeof value.operation !== 'string' ||
!OPERATIONS.has(value.operation) ||
!isRecord(value.input)) {
return false;
}
if (value.operation === 'adapter.manifest' || value.operation === 'adapter.doctor') {
return Object.keys(value.input).length === 0;
}
if (!hasOnlyKeys(value.input, ['mode', 'actor', 'browser']))
return false;
if (typeof value.input.mode !== 'string' || !MODES.has(value.input.mode)) {
return false;
}
if (!isActor(value.input.actor))
return false;
return value.input.mode === 'extension'
? isBrowserSelection(value.input.browser)
: value.input.browser === undefined;
}
export function isCliAdapterManifest(value) {
if (!isRecord(value) ||
!hasExactKeys(value, [
'adapterId',
'name',
'version',
'protocol',
'capabilities',
'modes',
'childEnvironmentKeys',
])) {
return false;
}
return (isIdentifier(value.adapterId) &&
isBoundedString(value.name, 128) &&
isVersion(value.version) &&
value.protocol === PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION &&
isUniqueEnumList(value.capabilities, CAPABILITIES, CAPABILITIES.size) &&
isUniqueEnumList(value.modes, MODES, MODES.size) &&
Array.isArray(value.childEnvironmentKeys) &&
value.childEnvironmentKeys.length <= CLI_ADAPTER_MAX_ENVIRONMENT_KEYS &&
value.childEnvironmentKeys.every(isSafeCliAdapterEnvironmentKey) &&
new Set(value.childEnvironmentKeys).size === value.childEnvironmentKeys.length);
}
function isResolvedConnection(value) {
if (!isRecord(value) ||
!hasOnlyKeys(value, ['mode', 'connection', 'environment', 'expiresAt', 'concurrencyKey']) ||
!('mode' in value) ||
!('connection' in value) ||
!('environment' in value) ||
typeof value.mode !== 'string' ||
!MODES.has(value.mode) ||
!isRecord(value.connection) ||
!hasOnlyKeys(value.connection, ['kind', 'url']) ||
typeof value.connection.kind !== 'string' ||
!CONNECTION_KINDS.has(value.connection.kind) ||
!isRecord(value.environment)) {
return false;
}
const entries = Object.entries(value.environment);
const environmentBytes = new TextEncoder().encode(JSON.stringify(value.environment)).byteLength;
if (entries.length > CLI_ADAPTER_MAX_ENVIRONMENT_KEYS ||
environmentBytes > CLI_ADAPTER_MAX_ENVIRONMENT_BYTES ||
entries.some(([key, entry]) => !isSafeCliAdapterEnvironmentKey(key) ||
typeof entry !== 'string' ||
entry.length > 4_096 ||
entry.includes('\0'))) {
return false;
}
const url = value.connection.url;
if ((url !== undefined && !isBoundedString(url, 4_096)) ||
(value.connection.kind === 'direct' && url !== undefined) ||
(value.connection.kind !== 'direct' && url === undefined) ||
(value.mode === 'direct' && value.connection.kind !== 'direct') ||
(value.mode === 'extension' && value.connection.kind === 'direct')) {
return false;
}
if (typeof url === 'string') {
try {
const parsed = new URL(url);
if (!['http:', 'ws:', 'https:', 'wss:'].includes(parsed.protocol))
return false;
}
catch {
return false;
}
}
return ((value.expiresAt === undefined || isIsoDate(value.expiresAt)) &&
(value.concurrencyKey === undefined ||
(isBoundedString(value.concurrencyKey, 128) &&
/^[A-Za-z0-9._:-]+$/.test(value.concurrencyKey))));
}
function isDoctorResult(value) {
if (!isRecord(value) ||
!hasExactKeys(value, ['status', 'checks']) ||
typeof value.status !== 'string' ||
!DOCTOR_STATUSES.has(value.status) ||
!Array.isArray(value.checks) ||
value.checks.length > CLI_ADAPTER_MAX_DOCTOR_CHECKS) {
return false;
}
const ids = new Set();
for (const check of value.checks) {
if (!isRecord(check) ||
!hasOnlyKeys(check, ['id', 'status', 'message', 'version']) ||
!isIdentifier(check.id) ||
ids.has(check.id) ||
typeof check.status !== 'string' ||
!DOCTOR_CHECK_STATUSES.has(check.status) ||
(check.message !== undefined && !isBoundedString(check.message, 512)) ||
(check.version !== undefined && !isVersion(check.version))) {
return false;
}
ids.add(check.id);
}
return true;
}
function isFailure(value) {
if (!hasExactKeys(value, ['protocol', 'requestId', 'operation', 'success', 'error'])) {
return false;
}
const error = value.error;
return (value.success === false &&
isRecord(error) &&
hasExactKeys(error, ['code', 'message', 'retryable']) &&
typeof error.code === 'string' &&
ERROR_CODES.has(error.code) &&
isBoundedString(error.message, 512) &&
typeof error.retryable === 'boolean');
}
export function isCliAdapterResponse(value) {
if (!isRecord(value) ||
value.protocol !== PANERELAY_CLI_ADAPTER_PROTOCOL_VERSION ||
!isRequestId(value.requestId) ||
typeof value.operation !== 'string' ||
!OPERATIONS.has(value.operation)) {
return false;
}
if (value.success === false)
return isFailure(value);
if (value.success !== true ||
!hasExactKeys(value, ['protocol', 'requestId', 'operation', 'success', 'result'])) {
return false;
}
switch (value.operation) {
case 'adapter.manifest':
return isCliAdapterManifest(value.result);
case 'connection.resolve':
return isResolvedConnection(value.result);
case 'adapter.doctor':
return isDoctorResult(value.result);
default:
return false;
}
}
function parseBoundedJson(serialized) {
if (new TextEncoder().encode(serialized).byteLength > CLI_ADAPTER_MAX_MESSAGE_BYTES) {
throw new Error('Panerelay CLI adapter message exceeds the protocol size limit');
}
try {
return JSON.parse(serialized);
}
catch {
throw new Error('Panerelay CLI adapter message is not valid JSON');
}
}
export function parseCliAdapterRequest(serialized) {
const value = parseBoundedJson(serialized);
if (!isCliAdapterRequest(value))
throw new Error('Invalid Panerelay CLI adapter request');
return value;
}
export function parseCliAdapterResponse(serialized) {
const value = parseBoundedJson(serialized);
if (!isCliAdapterResponse(value))
throw new Error('Invalid Panerelay CLI adapter response');
return value;
}
export function serializeCliAdapterMessage(value) {
const serialized = JSON.stringify(value);
if (new TextEncoder().encode(serialized).byteLength > CLI_ADAPTER_MAX_MESSAGE_BYTES) {
throw new Error('Panerelay CLI adapter message exceeds the protocol size limit');
}
return `${serialized}\n`;
}
+53
-1
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
import type { CliAdapterMode } from './cli-adapter.js';
export * from './constants.js';
export * from './cli-adapter.js';
export * from './cdp-bootstrap.js';
export * from './control-activity.js';
export * from './native-transfer.js';
export type BrowserFamily = 'chrome' | 'chromium' | 'edge' | 'unknown';
export interface BrowserCapabilities {
cdpRelay: boolean;
}
export interface BrowserRegistration {

@@ -10,2 +17,4 @@ browserId: string;

extensionVersion: string;
browserFamily?: BrowserFamily;
capabilities?: BrowserCapabilities;
}

@@ -82,2 +91,4 @@ export interface BrowserRegisterMessage extends BrowserRegistration {

}
export type AutomationEngineId = 'agent-browser' | 'browser-use';
export declare function isAutomationEngineId(value: unknown): value is AutomationEngineId;
export interface CdpCommandMessage {

@@ -89,2 +100,3 @@ type: 'cdp.command';

method: string;
engine?: AutomationEngineId;
params?: Record<string, unknown>;

@@ -272,2 +284,3 @@ sessionId?: string;

providerId: string;
cwd?: string;
} | {

@@ -313,3 +326,7 @@ method: 'conversation.start';

}
export type AutomationIntegrationId = 'agent-browser' | 'browser-use';
export type IntegrationRequest = {
method: 'integration.install';
integration: AutomationIntegrationId;
} | {
method: 'default-provider.get';

@@ -321,5 +338,18 @@ } | {

} | {
method: 'browser-use-default.get';
} | {
method: 'browser-use-default.set';
} | {
method: 'browser-use-default.clear';
} | {
method: 'browser-default.get';
} | {
method: 'browser-default.set-current';
} | {
method: 'browser-default.clear-current';
} | {
method: 'workspace.pick-directory';
};
export interface IntegrationDefaultProviderResult {
available: boolean;
provider: string | null;

@@ -331,3 +361,22 @@ isPanerelay: boolean;

}
export type IntegrationResult = IntegrationDefaultProviderResult | IntegrationWorkspaceDirectoryResult;
export interface IntegrationBrowserUseDefaultResult {
available: boolean;
mode: CliAdapterMode | null;
isPanerelay: boolean;
}
export interface IntegrationInstallResult {
integration: AutomationIntegrationId;
installed: true;
}
export interface IntegrationBrowserDefaultResult {
currentBrowser: {
browserId: string;
browserName: string;
browserFamily?: BrowserFamily;
} | null;
defaultBrowserId: string | null;
hasMultipleBrowsers: boolean;
isCurrentBrowser: boolean;
}
export type IntegrationResult = IntegrationInstallResult | IntegrationDefaultProviderResult | IntegrationBrowserUseDefaultResult | IntegrationWorkspaceDirectoryResult | IntegrationBrowserDefaultResult;
export interface IntegrationRequestMessage {

@@ -359,2 +408,3 @@ type: 'integration.request';

token: string;
generation: string;
browserId: string;

@@ -364,2 +414,4 @@ browserName: string;

extensionId: string;
browserFamily?: BrowserFamily;
capabilities?: BrowserCapabilities;
updatedAt: string;

@@ -366,0 +418,0 @@ }

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAO5D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;CACvB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE;QACb,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAC7D,eAAO,MAAM,kCAAkC,QAAmB,CAAC;AACnE,eAAO,MAAM,6BAA6B,iEAKhC,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,4BAA4B,GACtC,QAAQ,GAAG,kBAAkB,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,4BAA4B,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,wBAAwB,GAClC,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CACzD;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;CAChC,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACnD;IACE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC,GACD;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC7E;IACE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACnC,GACD;IACE,MAAM,EAAE,wBAAwB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,4BAA4B,CAAC;CACxC,CAAC;AAEN,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,0BAA0B,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAC3B,gCAAgC,GAAG,mCAAmC,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,uBAAuB,GACvB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,OAAO,uBAAuB,EAAE,4BAA4B,GAC5D,OAAO,uBAAuB,EAAE,iCAAiC,GACjE,OAAO,uBAAuB,EAAE,gCAAgC,GAChE,oBAAoB,GACpB,0BAA0B,GAC1B,wBAAwB,CAAC;AAE7B,MAAM,MAAM,sBAAsB,GAC9B,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,mBAAmB,GACnB,yBAAyB,CAAC;AAE9B,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,0BAA0B,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAwBxF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CA0BxF"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
import { PANERELAY_PROTOCOL_VERSION } from './constants.js';
import { isAutomationActivitySnapshotMessage, isAutomationActivityUpdatedMessage, isControlSessionChangedMessage, } from './control-activity.js';
export * from './constants.js';
export * from './cli-adapter.js';
export * from './cdp-bootstrap.js';
export * from './control-activity.js';
export * from './native-transfer.js';
export function isAutomationEngineId(value) {
return value === 'agent-browser' || value === 'browser-use';
}
export const CONVERSATION_MAX_IMAGES = 4;

@@ -26,3 +31,9 @@ export const CONVERSATION_MAX_IMAGE_BYTES = 10 * 1024 * 1024;

typeof candidate.extensionId === 'string' &&
typeof candidate.extensionVersion === 'string');
typeof candidate.extensionVersion === 'string' &&
(candidate.browserFamily === undefined ||
['chrome', 'chromium', 'edge', 'unknown'].includes(candidate.browserFamily)) &&
(candidate.capabilities === undefined ||
(typeof candidate.capabilities === 'object' &&
candidate.capabilities !== null &&
typeof candidate.capabilities.cdpRelay === 'boolean')));
}

@@ -29,0 +40,0 @@ return [

@@ -5,3 +5,2 @@ export declare const PANERELAY_STATE_PATH_ENV: "PANERELAY_STATE_PATH";

export declare function runtimeConfigPath(): string;
export declare function agentBrowserConfigPath(): string;
//# sourceMappingURL=node.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,EAAG,sBAA+B,CAAC;AAExE,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C"}
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,EAAG,sBAA+B,CAAC;AAExE,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}

@@ -13,4 +13,1 @@ import { homedir } from 'node:os';

}
export function agentBrowserConfigPath() {
return join(panerelayDataDirectory(), 'agent-browser.json');
}
{
"name": "@panerelay/protocol",
"version": "0.2.0",
"version": "0.3.0",
"description": "Versioned relay protocol and shared types for Panerelay.",

@@ -5,0 +5,0 @@ "type": "module",

@@ -5,4 +5,8 @@ # @panerelay/protocol

The package is released in lockstep with the Panerelay Bridge, agent-browser Provider, Extension, and setup CLI because cross-release protocol negotiation is not yet supported. Most users should install Panerelay through `@panerelay/setup` instead of depending on the protocol directly.
The package is released in lockstep with the Panerelay Bridge, browser registry,
administration CLI, agent-browser Provider, Extension, and setup package because
cross-release protocol negotiation is not yet supported. Most users should
install Panerelay through `@panerelay/setup` instead of depending on the
protocol directly.
See the [Panerelay repository](https://github.com/F-loat/panerelay) for protocol RFCs, security boundaries, and compatibility information.