@panerelay/bridge
Advanced tools
| import type { Readable, Writable } from 'node:stream'; | ||
| import { type BrowserSelection } from '@panerelay/browser-registry'; | ||
| import { requestBrowserFetchPermission, runBrowserFetch } from '@panerelay/cli/browser-fetch-client'; | ||
| interface FetchMcpDependencies { | ||
| requestPermission?: typeof requestBrowserFetchPermission; | ||
| runFetch?: typeof runBrowserFetch; | ||
| selectBrowser?: () => Promise<BrowserSelection>; | ||
| } | ||
| export interface FetchMcpServerOptions extends FetchMcpDependencies { | ||
| input?: Readable; | ||
| output?: Writable; | ||
| } | ||
| export declare function handleFetchMcpRequest(message: unknown, dependencies?: FetchMcpDependencies, signal?: AbortSignal): Promise<Record<string, unknown> | undefined>; | ||
| export declare function runFetchMcpServer(options?: FetchMcpServerOptions): Promise<void>; | ||
| export {}; | ||
| //# sourceMappingURL=fetch-mcp-server.d.ts.map |
| {"version":3,"file":"fetch-mcp-server.d.ts","sourceRoot":"","sources":["../src/fetch-mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EACL,6BAA6B,EAC7B,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAqB7C,UAAU,oBAAoB;IAC5B,iBAAiB,CAAC,EAAE,OAAO,6BAA6B,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAwID,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,oBAAyB,EACvC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAmC9C;AAED,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA+E1F"} |
| import { Buffer } from 'node:buffer'; | ||
| import { selectBrowserFetchRegistration } from '@panerelay/browser-registry'; | ||
| import { requestBrowserFetchPermission, runBrowserFetch, } from '@panerelay/cli/browser-fetch-client'; | ||
| import { browserFetchOriginForUrl, isBrowserFetchRequest, } from '@panerelay/protocol'; | ||
| const MCP_PROTOCOL_VERSION = '2025-06-18'; | ||
| const MAX_INPUT_LINE_BYTES = 2 * 1024 * 1024; | ||
| const MAX_OUTPUT_BODY_BYTES = 512 * 1024; | ||
| function record(value) { | ||
| return value && typeof value === 'object' && !Array.isArray(value) | ||
| ? value | ||
| : {}; | ||
| } | ||
| function requestFromArguments(value) { | ||
| const input = record(value); | ||
| const request = { | ||
| url: typeof input.url === 'string' ? input.url : '', | ||
| ...(input.method === undefined | ||
| ? {} | ||
| : { method: input.method }), | ||
| ...(input.headers === undefined | ||
| ? {} | ||
| : { headers: input.headers }), | ||
| ...(input.query === undefined ? {} : { query: input.query }), | ||
| ...(input.body === undefined ? {} : { body: input.body }), | ||
| withCookies: input.withCookies === undefined | ||
| ? true | ||
| : input.withCookies, | ||
| ...(input.responseType === undefined | ||
| ? {} | ||
| : { responseType: input.responseType }), | ||
| ...(input.timeoutMs === undefined ? {} : { timeoutMs: input.timeoutMs }), | ||
| }; | ||
| if (!isBrowserFetchRequest(request) || !browserFetchOriginForUrl(request.url)) { | ||
| throw new Error('browser_fetch received an invalid or unbounded HTTP(S) request'); | ||
| } | ||
| return request; | ||
| } | ||
| function boundedResponse(response) { | ||
| const serialized = response.bodyType === 'json' ? JSON.stringify(response.body) : String(response.body); | ||
| if (Buffer.byteLength(serialized) <= MAX_OUTPUT_BODY_BYTES) | ||
| return { ...response }; | ||
| let bodyPreview = Buffer.from(serialized).subarray(0, MAX_OUTPUT_BODY_BYTES).toString('utf8'); | ||
| while (Buffer.byteLength(bodyPreview) > MAX_OUTPUT_BODY_BYTES) | ||
| bodyPreview = bodyPreview.slice(0, -1); | ||
| return { | ||
| status: response.status, | ||
| statusText: response.statusText, | ||
| headers: response.headers, | ||
| bodyType: response.bodyType, | ||
| bodyPreview, | ||
| bodyTruncated: true, | ||
| url: response.url, | ||
| redirected: response.redirected, | ||
| attachedCookieCount: response.attachedCookieCount, | ||
| }; | ||
| } | ||
| async function executeBrowserFetch(args, dependencies, signal) { | ||
| const request = requestFromArguments(args); | ||
| const selection = await (dependencies.selectBrowser ?? selectBrowserFetchRegistration)(); | ||
| const permission = await (dependencies.requestPermission ?? requestBrowserFetchPermission)(selection.state, new URL(request.url).hostname, { signal }); | ||
| if (!permission.granted) { | ||
| throw new Error(`Browser fetch permission was denied for ${new URL(request.url).hostname}`); | ||
| } | ||
| return boundedResponse(await (dependencies.runFetch ?? runBrowserFetch)(selection.state, request, { signal })); | ||
| } | ||
| function toolDefinition() { | ||
| return { | ||
| name: 'browser_fetch', | ||
| title: 'Browser-authenticated fetch', | ||
| description: 'Send one bounded HTTP(S) request through the user-authorized Panerelay browser session. Browser cookies are attached by default but are never returned. Redirects fail closed. A new domain may require user approval in the Panerelay Extension.', | ||
| inputSchema: { | ||
| type: 'object', | ||
| additionalProperties: false, | ||
| required: ['url'], | ||
| properties: { | ||
| url: { type: 'string', description: 'Absolute HTTP(S) URL.' }, | ||
| method: { | ||
| type: 'string', | ||
| enum: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'], | ||
| }, | ||
| headers: { | ||
| type: 'object', | ||
| additionalProperties: { type: 'string' }, | ||
| description: 'Request headers. Cookie is forbidden and managed by Panerelay.', | ||
| }, | ||
| query: { | ||
| type: 'array', | ||
| items: { | ||
| type: 'object', | ||
| additionalProperties: false, | ||
| required: ['name', 'value'], | ||
| properties: { name: { type: 'string' }, value: { type: 'string' } }, | ||
| }, | ||
| }, | ||
| body: { | ||
| type: 'object', | ||
| additionalProperties: false, | ||
| required: ['encoding', 'data'], | ||
| properties: { | ||
| encoding: { type: 'string', enum: ['utf8', 'base64'] }, | ||
| data: { type: 'string' }, | ||
| }, | ||
| }, | ||
| withCookies: { type: 'boolean', default: true }, | ||
| responseType: { type: 'string', enum: ['auto', 'json', 'text', 'base64'] }, | ||
| timeoutMs: { type: 'integer', minimum: 100, maximum: 120000 }, | ||
| }, | ||
| }, | ||
| annotations: { | ||
| readOnlyHint: false, | ||
| destructiveHint: true, | ||
| idempotentHint: false, | ||
| openWorldHint: true, | ||
| }, | ||
| }; | ||
| } | ||
| function result(id, value) { | ||
| return { jsonrpc: '2.0', id, result: value }; | ||
| } | ||
| function rpcError(id, code, message) { | ||
| return { jsonrpc: '2.0', id, error: { code, message } }; | ||
| } | ||
| export async function handleFetchMcpRequest(message, dependencies = {}, signal) { | ||
| const request = record(message); | ||
| if (request.jsonrpc !== '2.0' || typeof request.method !== 'string') { | ||
| return rpcError(request.id ?? null, -32600, 'Invalid Request'); | ||
| } | ||
| if (request.id === undefined) | ||
| return undefined; | ||
| if (request.method === 'initialize') { | ||
| return result(request.id, { | ||
| protocolVersion: MCP_PROTOCOL_VERSION, | ||
| capabilities: { tools: {} }, | ||
| serverInfo: { name: 'panerelay-fetch', version: '0.8.0' }, | ||
| }); | ||
| } | ||
| if (request.method === 'ping') | ||
| return result(request.id, {}); | ||
| if (request.method === 'tools/list') | ||
| return result(request.id, { tools: [toolDefinition()] }); | ||
| if (request.method !== 'tools/call') { | ||
| return rpcError(request.id, -32601, `Method not found: ${request.method}`); | ||
| } | ||
| const params = record(request.params); | ||
| if (params.name !== 'browser_fetch') { | ||
| return rpcError(request.id, -32602, 'Unknown Panerelay fetch tool'); | ||
| } | ||
| try { | ||
| const response = await executeBrowserFetch(params.arguments, dependencies, signal); | ||
| return result(request.id, { | ||
| content: [{ type: 'text', text: JSON.stringify(response) }], | ||
| structuredContent: response, | ||
| }); | ||
| } | ||
| catch (error) { | ||
| const message = error instanceof Error ? error.message : 'Panerelay browser fetch failed'; | ||
| return result(request.id, { | ||
| content: [{ type: 'text', text: message.slice(0, 4_096) }], | ||
| isError: true, | ||
| }); | ||
| } | ||
| } | ||
| export async function runFetchMcpServer(options = {}) { | ||
| const input = options.input ?? process.stdin; | ||
| const output = options.output ?? process.stdout; | ||
| let pending = ''; | ||
| const controllers = new Map(); | ||
| const inFlight = new Set(); | ||
| let writes = Promise.resolve(); | ||
| const write = (message) => { | ||
| writes = writes.then(() => new Promise((resolve, reject) => { | ||
| output.write(`${JSON.stringify(message)}\n`, error => { | ||
| if (error) | ||
| reject(error); | ||
| else | ||
| resolve(); | ||
| }); | ||
| })); | ||
| return writes; | ||
| }; | ||
| const dispatch = (parsed) => { | ||
| const request = record(parsed); | ||
| if (request.method === 'notifications/cancelled') { | ||
| const requestId = record(request.params).requestId; | ||
| if (typeof requestId === 'string' || typeof requestId === 'number') { | ||
| controllers.get(JSON.stringify(requestId))?.abort(); | ||
| } | ||
| return; | ||
| } | ||
| const requestId = request.id; | ||
| const key = typeof requestId === 'string' || typeof requestId === 'number' | ||
| ? JSON.stringify(requestId) | ||
| : undefined; | ||
| const controller = new AbortController(); | ||
| if (key) | ||
| controllers.set(key, controller); | ||
| const task = handleFetchMcpRequest(parsed, options, controller.signal) | ||
| .then(async (response) => { | ||
| if (controller.signal.aborted && requestId !== undefined) { | ||
| await write(rpcError(requestId, -32800, 'Request cancelled')); | ||
| } | ||
| else if (response) { | ||
| await write(response); | ||
| } | ||
| }) | ||
| .finally(() => { | ||
| if (key && controllers.get(key) === controller) | ||
| controllers.delete(key); | ||
| inFlight.delete(task); | ||
| }); | ||
| inFlight.add(task); | ||
| }; | ||
| input.setEncoding('utf8'); | ||
| for await (const chunk of input) { | ||
| pending += String(chunk); | ||
| let newline = pending.indexOf('\n'); | ||
| while (newline >= 0) { | ||
| const line = pending.slice(0, newline).replace(/\r$/, ''); | ||
| pending = pending.slice(newline + 1); | ||
| if (line && Buffer.byteLength(line) <= MAX_INPUT_LINE_BYTES) { | ||
| let parsed; | ||
| try { | ||
| parsed = JSON.parse(line); | ||
| } | ||
| catch { | ||
| await write(rpcError(null, -32700, 'Parse error')); | ||
| newline = pending.indexOf('\n'); | ||
| continue; | ||
| } | ||
| dispatch(parsed); | ||
| } | ||
| else if (line) { | ||
| await write(rpcError(null, -32600, 'Request exceeds input limit')); | ||
| } | ||
| newline = pending.indexOf('\n'); | ||
| } | ||
| if (Buffer.byteLength(pending) > MAX_INPUT_LINE_BYTES) { | ||
| await write(rpcError(null, -32600, 'Request exceeds input limit')); | ||
| pending = ''; | ||
| } | ||
| } | ||
| for (const controller of controllers.values()) | ||
| controller.abort(); | ||
| await Promise.allSettled([...inFlight]); | ||
| await writes; | ||
| } |
| export interface ProviderFetchMcpCommand { | ||
| command: string; | ||
| args: string[]; | ||
| type: 'stdio'; | ||
| } | ||
| export declare function providerFetchMcpCommand(executable?: string, entry?: string | undefined): ProviderFetchMcpCommand; | ||
| export declare function codexFetchMcpConfigOverrides(command?: ProviderFetchMcpCommand): string[]; | ||
| //# sourceMappingURL=provider-fetch-mcp.d.ts.map |
| {"version":3,"file":"provider-fetch-mcp.d.ts","sourceRoot":"","sources":["../src/provider-fetch-mcp.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,uBAAuB,CACrC,UAAU,SAAmB,EAC7B,KAAK,qBAAkB,GACtB,uBAAuB,CAGzB;AAED,wBAAgB,4BAA4B,CAAC,OAAO,0BAA4B,GAAG,MAAM,EAAE,CAM1F"} |
| export function providerFetchMcpCommand(executable = process.execPath, entry = process.argv[1]) { | ||
| if (!entry) | ||
| throw new Error('Panerelay Native Host entry point is unavailable'); | ||
| return { type: 'stdio', command: executable, args: [entry, '--fetch-mcp'] }; | ||
| } | ||
| export function codexFetchMcpConfigOverrides(command = providerFetchMcpCommand()) { | ||
| return [ | ||
| 'tools.web_search=false', | ||
| `mcp_servers.panerelay_fetch.command=${JSON.stringify(command.command)}`, | ||
| `mcp_servers.panerelay_fetch.args=[${command.args.map(value => JSON.stringify(value)).join(',')}]`, | ||
| ]; | ||
| } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAShF,MAAM,WAAW,gCAAgC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAcjE;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,wBAA6B,GACrC,gCAAgC,CAoBlC;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,gCAAgC,EACzC,cAAc,CAAC,EAAE,0BAA0B,GAC1C,MAAM,CA2ER"} | ||
| {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAShF,MAAM,WAAW,gCAAgC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAcjE;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,wBAA6B,GACrC,gCAAgC,CAoBlC;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,gCAAgC,EACzC,cAAc,CAAC,EAAE,0BAA0B,GAC1C,MAAM,CA6ER"} |
@@ -8,3 +8,3 @@ import { conversationTargetSessionName, isConversationTargetHint, } from '@panerelay/protocol'; | ||
| const SENSITIVE_FRAGMENT = /(?:auth|bearer|credential|password|secret|session|token)[=:]/i; | ||
| const PANERELAY_SKILL_INSTALL_COMMAND = 'npx skills add F-loat/panerelay --skill panerelay-browser'; | ||
| const PANERELAY_SKILL_INSTALL_COMMAND = 'npx skills add F-loat/panerelay --skill panerelay'; | ||
| export function sanitizeConversationPageUrl(value) { | ||
@@ -52,10 +52,12 @@ const limited = value.slice(0, MAX_PAGE_URL_CHARS); | ||
| const skillGuidance = [ | ||
| 'For work in the user’s existing authorized browser tabs, first load and follow the $panerelay-browser Skill.', | ||
| 'Do not switch to another browser automation Skill or tool while $panerelay-browser is available.', | ||
| 'For HTTP(S) requests that should reuse the user’s browser login state, use mcp__panerelay_fetch__browser_fetch. Do not use a provider-hosted WebFetch or WebSearch tool for those requests.', | ||
| 'The Panerelay fetch tool may open an Extension permission prompt for a new domain. It never returns browser cookies and rejects redirects.', | ||
| 'For browser-authenticated Fetch, Panerelay setup, or work in the user’s existing authorized browser tabs, first load and follow the $panerelay Skill.', | ||
| 'Do not switch to another browser automation Skill or tool while $panerelay is available.', | ||
| 'Select exactly one automation engine before readiness checks: use an engine named by the user, otherwise follow the registered-integration priority below when present, and otherwise use agent-browser.', | ||
| 'Inspect, invoke, set up, and diagnose only that selected engine. Do not probe every supported executable or ask the user to choose an engine merely because none was named.', | ||
| 'If $panerelay-browser is unavailable after the user explicitly requests browser work, treat that browser-work request as authorization to attempt one canonical Skill installation with:', | ||
| 'If $panerelay is unavailable after the user explicitly requests Panerelay work, treat that request as authorization to attempt one canonical Skill installation with:', | ||
| PANERELAY_SKILL_INSTALL_COMMAND, | ||
| 'Still follow the provider’s normal command-approval flow, and do not retry the installation after the user denies it.', | ||
| 'After a successful installation, load $panerelay-browser and follow its workflow.', | ||
| 'After a successful installation, load $panerelay and follow its workflow.', | ||
| 'Only if installation cannot complete, explain why and then fall back to another available browser automation tool, clearly identifying the fallback.', | ||
@@ -86,3 +88,3 @@ 'Do not claim Panerelay browser access before the Skill is available and its authorization workflow succeeds.', | ||
| 'A registration does not prove that its executable is still present, the Extension is connected, any tab is authorized, or a control lease exists.', | ||
| 'If the first direct invocation or attach fails, treat the hint as stale and follow only the smallest targeted diagnostic or repair from $panerelay-browser.', | ||
| 'If the first direct invocation or attach fails, treat the hint as stale and follow only the smallest targeted diagnostic or repair from $panerelay.', | ||
| 'For explicit setup, verification, or troubleshooting requests, follow the full Skill workflow instead of this fast path.', | ||
@@ -89,0 +91,0 @@ ] |
| import { type BrowserRegistration, type ExtensionToHostMessage, type HostToExtensionMessage } from '@panerelay/protocol'; | ||
| export declare const DEFAULT_FETCH_SESSION_MAX_REQUESTS = 8; | ||
| export interface BrowserRelayOptions { | ||
@@ -18,2 +19,3 @@ expectedExtensionId?: string; | ||
| httpRequestTimeoutMs?: number; | ||
| fetchSessionMaxRequests?: number; | ||
| } | ||
@@ -38,3 +40,4 @@ export declare class BrowserRelay { | ||
| private readonly childAutoAttachPromises; | ||
| private readonly controlledTargets; | ||
| private readonly targetControlClaims; | ||
| private controlClaimSequence; | ||
| private readonly focusEmulationTargets; | ||
@@ -46,2 +49,5 @@ private readonly focusEmulationParticipants; | ||
| private readonly pendingCommands; | ||
| private readonly pendingFetchRequests; | ||
| private readonly pendingFetchPermissionRequests; | ||
| private readonly fetchSessions; | ||
| private readonly pendingSetupCommands; | ||
@@ -51,2 +57,3 @@ private readonly targetCommands; | ||
| private readonly bootstrapTickets; | ||
| private readonly fetchSessionMaxRequests; | ||
| private browser; | ||
@@ -66,2 +73,15 @@ private activeLease; | ||
| private isAuthorizedBootstrapRequest; | ||
| private authorizedFetchSession; | ||
| private handleCreateFetchSession; | ||
| private handleFetchRequest; | ||
| private handleFetchPermissionRequest; | ||
| private requestBrowserFetch; | ||
| private resolveFetchRequest; | ||
| private requestBrowserFetchPermission; | ||
| private resolveFetchPermissionRequest; | ||
| private releaseFetchSession; | ||
| private cancelExtensionFetch; | ||
| private cancelExtensionFetchPermission; | ||
| private clearFetchSessions; | ||
| private clearFetchPermissionRequests; | ||
| private handleCreateSession; | ||
@@ -133,2 +153,8 @@ private allocateParticipant; | ||
| private removeClientSession; | ||
| private claimTargetControl; | ||
| private latestTargetControlClaim; | ||
| private participantReferencesTarget; | ||
| private releaseTargetControlClaimIfUnreferenced; | ||
| private releaseTargetControlClaim; | ||
| private releaseParticipantControlClaims; | ||
| private detachTargetIfUnreferenced; | ||
@@ -135,0 +161,0 @@ private removePhysicalChildrenForTarget; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"browser-relay.d.ts","sourceRoot":"","sources":["../src/browser-relay.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"browser-relay.d.ts","sourceRoot":"","sources":["../src/browser-relay.ts"],"names":[],"mappings":"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"} |
| import { PANERELAY_PROTOCOL_VERSION } from '@panerelay/protocol'; | ||
| import { type CommandRunner } from './platform.js'; | ||
| import { type OpenCodePathSource } from './runtime-config.js'; | ||
| export declare const CHROME_EXTENSION_ID_PATTERN: RegExp; | ||
@@ -49,2 +50,3 @@ export interface NativeHostPathOptions { | ||
| opencodePath?: string; | ||
| opencodePathSource?: OpenCodePathSource; | ||
| opencodeVersion?: string; | ||
@@ -51,0 +53,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"host-installation.d.ts","sourceRoot":"","sources":["../src/host-installation.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"host-installation.d.ts","sourceRoot":"","sources":["../src/host-installation.ts"],"names":[],"mappings":"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"} |
@@ -11,2 +11,3 @@ import { randomBytes } from 'node:crypto'; | ||
| import { resolveQoderExecutable } from './providers/qoder/executable.js'; | ||
| import { normalizeOpenCodePathSource } from './runtime-config.js'; | ||
| export const CHROME_EXTENSION_ID_PATTERN = /^[a-p]{32}$/; | ||
@@ -544,7 +545,17 @@ const NATIVE_HOST_BUNDLE_FILENAME = 'native-host.bundle.cjs'; | ||
| }); | ||
| const storedOpenCodePath = typeof stored.opencodePath === 'string' ? stored.opencodePath : undefined; | ||
| const storedOpenCodePathSource = normalizeOpenCodePathSource(stored.opencodePathSource); | ||
| const environmentOpenCodePath = typeof environment.PANERELAY_OPENCODE_PATH === 'string' && | ||
| environment.PANERELAY_OPENCODE_PATH.length > 0 | ||
| ? environment.PANERELAY_OPENCODE_PATH | ||
| : undefined; | ||
| const configuredOpenCodePath = environmentOpenCodePath ?? | ||
| (storedOpenCodePathSource === 'override' ? storedOpenCodePath : undefined); | ||
| const opencode = await resolveOpenCodeExecutable({ | ||
| configuredPath: environment.PANERELAY_OPENCODE_PATH ?? | ||
| (typeof stored.opencodePath === 'string' ? stored.opencodePath : undefined), | ||
| configuredPath: configuredOpenCodePath, | ||
| environment, | ||
| homeDirectory: options.homeDirectory, | ||
| ...(storedOpenCodePath && storedOpenCodePath !== configuredOpenCodePath | ||
| ? { persistedPath: storedOpenCodePath } | ||
| : {}), | ||
| platform, | ||
@@ -554,2 +565,5 @@ processExecPath: options.nodePath ?? process.execPath, | ||
| }); | ||
| const opencodePathSource = opencode.executable && opencode.executable === configuredOpenCodePath | ||
| ? 'override' | ||
| : 'discovered'; | ||
| await writeProtectedFile(paths.runtimeConfigPath, `${JSON.stringify({ | ||
@@ -564,2 +578,3 @@ extensionId, | ||
| ...(opencode.executable ? { opencodePath: opencode.executable } : {}), | ||
| ...(opencode.executable ? { opencodePathSource } : {}), | ||
| ...(opencode.version ? { opencodeVersion: opencode.version } : {}), | ||
@@ -597,2 +612,3 @@ }, null, 2)}\n`, 0o600); | ||
| ...(opencode.executable ? { opencodePath: opencode.executable } : {}), | ||
| ...(opencode.executable ? { opencodePathSource } : {}), | ||
| ...(opencode.version ? { opencodeVersion: opencode.version } : {}), | ||
@@ -599,0 +615,0 @@ }; |
@@ -18,2 +18,3 @@ #!/usr/bin/env node | ||
| import { runNativeHostUpdate } from './host-updater.js'; | ||
| import { runFetchMcpServer } from './fetch-mcp-server.js'; | ||
| function log(message) { | ||
@@ -212,7 +213,9 @@ process.stderr.write(`[Panerelay] ${message}\n`); | ||
| ? Promise.resolve(runSelfCheck()) | ||
| : process.argv.includes('--browser-use-gateway') | ||
| ? runBrowserUseGateway() | ||
| : process.argv.includes('--agent-browser-plugin') | ||
| ? runAgentBrowserPlugin() | ||
| : main(); | ||
| : process.argv.includes('--fetch-mcp') | ||
| ? runFetchMcpServer() | ||
| : process.argv.includes('--browser-use-gateway') | ||
| ? runBrowserUseGateway() | ||
| : process.argv.includes('--agent-browser-plugin') | ||
| ? runAgentBrowserPlugin() | ||
| : main(); | ||
| void operation.catch(error => { | ||
@@ -219,0 +222,0 @@ log(`Bridge failed to start: ${error instanceof Error ? error.message : String(error)}`); |
| export const PANERELAY_CONTEXT_START = '<panerelay-context version="1">'; | ||
| export const PANERELAY_CONTEXT_END = '</panerelay-context>'; | ||
| const LEGACY_BASE_CONTEXT = [ | ||
| 'For work in the user’s existing authorized browser tabs, first load and follow the $panerelay-browser Skill.', | ||
| 'Do not switch to another browser automation Skill or tool while $panerelay-browser is available.', | ||
| 'If $panerelay-browser is unavailable after the user explicitly requests browser work, treat that browser-work request as authorization to attempt one canonical Skill installation with:', | ||
| 'npx skills add F-loat/panerelay --skill panerelay-browser', | ||
| 'For browser-authenticated Fetch, Panerelay setup, or work in the user’s existing authorized browser tabs, first load and follow the $panerelay Skill.', | ||
| 'Do not switch to another browser automation Skill or tool while $panerelay is available.', | ||
| 'If $panerelay is unavailable after the user explicitly requests Panerelay work, treat that request as authorization to attempt one canonical Skill installation with:', | ||
| 'npx skills add F-loat/panerelay --skill panerelay', | ||
| 'Still follow the provider’s normal command-approval flow, and do not retry the installation after the user denies it.', | ||
| 'After a successful installation, load $panerelay-browser and follow its workflow.', | ||
| 'After a successful installation, load $panerelay and follow its workflow.', | ||
| 'Only if installation cannot complete, explain why and then fall back to another available browser automation tool, clearly identifying the fallback.', | ||
@@ -27,3 +27,3 @@ 'Do not claim Panerelay browser access before the Skill is available and its authorization workflow succeeds.', | ||
| 'A registration does not prove that its executable is still present, the Extension is connected, any tab is authorized, or a control lease exists.', | ||
| 'If the first direct invocation or attach fails, treat the hint as stale and follow only the smallest targeted diagnostic or repair from $panerelay-browser.', | ||
| 'If the first direct invocation or attach fails, treat the hint as stale and follow only the smallest targeted diagnostic or repair from $panerelay.', | ||
| 'For explicit setup, verification, or troubleshooting requests, follow the full Skill workflow instead of this fast path.', | ||
@@ -30,0 +30,0 @@ ].join('\n'); |
@@ -127,5 +127,5 @@ import { spawn, } from 'node:child_process'; | ||
| 'Task', | ||
| 'WebFetch', | ||
| 'Write', | ||
| ], | ||
| deny: ['WebFetch'], | ||
| disableBypassPermissionsMode: 'disable', | ||
@@ -132,0 +132,0 @@ }, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/providers/claude-code/provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EAGpB,4BAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EAEtB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAG5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAgCzF,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAChG;AAqKD,qBAAa,cAAe,YAAW,aAAa;IAQtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,YAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiD;IAC3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,MAAM,CAAuC;gBAExB,OAAO,GAAE,qBAA0B;IAShE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKjE,OAAO,CAAC,IAAI;YAIE,aAAa;IAMrB,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAgC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAS/D,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgBtF,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBvE,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,sBAAsB,EAAO,GACpC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmD9B,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,iBAAiB;IAiBnB,iBAAiB,CACrB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAsB3B,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YASzE,eAAe;IAe7B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,kBAAkB;YAiBZ,qBAAqB;YAOrB,OAAO;IAgEf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB7B"} | ||
| {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/providers/claude-code/provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EAGpB,4BAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EAEtB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAG5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAiCzF,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAChG;AAqKD,qBAAa,cAAe,YAAW,aAAa;IAQtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,YAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiD;IAC3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,MAAM,CAAuC;gBAExB,OAAO,GAAE,qBAA0B;IAShE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKjE,OAAO,CAAC,IAAI;YAIE,aAAa;IAMrB,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAgC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAS/D,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgBtF,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBvE,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,sBAAsB,EAAO,GACpC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAoD9B,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,iBAAiB;IAiBnB,iBAAiB,CACrB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAsB3B,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YASzE,eAAe;IAe7B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,kBAAkB;YAiBZ,qBAAqB;YAOrB,OAAO;IAgEf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB7B"} |
@@ -9,2 +9,3 @@ import { randomUUID } from 'node:crypto'; | ||
| import { readRuntimeConfig } from '../../runtime-config.js'; | ||
| import { providerFetchMcpCommand } from '../../provider-fetch-mcp.js'; | ||
| const CLAUDE_PROVIDER_ID = 'claude'; | ||
@@ -287,2 +288,3 @@ const MAX_TEXT_CHARS = 64 * 1024; | ||
| mcpServers: { | ||
| panerelay_fetch: providerFetchMcpCommand(), | ||
| panerelay_permission: permissionServer.mcpServer, | ||
@@ -289,0 +291,0 @@ }, |
@@ -13,2 +13,3 @@ export interface CodexRpcMessage { | ||
| codexPath: string; | ||
| configOverrides?: string[]; | ||
| environment?: NodeJS.ProcessEnv; | ||
@@ -15,0 +16,0 @@ pathEntries?: string[]; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"app-server.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/app-server.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,GAAG;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9F,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,cAAc;IAQb,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,UAAU,CAAM;gBAEK,OAAO,EAAE,qBAAqB;IAErD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAI7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,MAAM;IA6CpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,UAAU;CAYnB"} | ||
| {"version":3,"file":"app-server.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/app-server.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,GAAG;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9F,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,cAAc;IAQb,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,UAAU,CAAM;gBAEK,OAAO,EAAE,qBAAqB;IAErD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAI7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,MAAM;IAiDpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,UAAU;CAYnB"} |
@@ -72,3 +72,7 @@ import { spawn } from 'node:child_process'; | ||
| ]); | ||
| const launch = resolveSpawnCommand(this.options.codexPath, ['app-server', '--stdio'], process.platform, environment.ComSpec); | ||
| const launch = resolveSpawnCommand(this.options.codexPath, [ | ||
| ...(this.options.configOverrides ?? []).flatMap(value => ['-c', value]), | ||
| 'app-server', | ||
| '--stdio', | ||
| ], process.platform, environment.ComSpec); | ||
| const child = spawn(launch.command, launch.args, { | ||
@@ -75,0 +79,0 @@ stdio: ['pipe', 'pipe', 'pipe'], |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/provider.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/provider.ts"],"names":[],"mappings":"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"} |
@@ -6,2 +6,3 @@ import { homedir } from 'node:os'; | ||
| import { CodexAppServer } from './app-server.js'; | ||
| import { codexFetchMcpConfigOverrides } from '../../provider-fetch-mcp.js'; | ||
| const CODEX_PROVIDER_ID = 'codex'; | ||
@@ -299,2 +300,3 @@ const MAX_ACTIVITY_DETAIL_CHARS = 8 * 1024; | ||
| codexPath: config.codexPath, | ||
| configOverrides: codexFetchMcpConfigOverrides(), | ||
| environment: this.options.environment, | ||
@@ -301,0 +303,0 @@ ...handlers, |
@@ -11,2 +11,3 @@ import { type CommandRunner } from '../../platform.js'; | ||
| homeDirectory?: string; | ||
| persistedPath?: string; | ||
| platform?: NodeJS.Platform; | ||
@@ -13,0 +14,0 @@ processExecPath?: string; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"executable.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode/executable.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAMD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,yBAA8B,GACtC,MAAM,EAAE,CAsBV;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,4BAA4B,CAAC,CAsBvC"} | ||
| {"version":3,"file":"executable.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode/executable.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAMD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,yBAA8B,GACtC,MAAM,EAAE,CAuBV;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,4BAA4B,CAAC,CAsBvC"} |
@@ -28,2 +28,3 @@ import { homedir } from 'node:os'; | ||
| ...localDirectories.flatMap(directory => names.map(name => pathApi.join(directory, name))), | ||
| ...(options.persistedPath ? [options.persistedPath] : []), | ||
| ]; | ||
@@ -30,0 +31,0 @@ return candidates.filter((candidate, index, all) => candidate.length > 0 && all.indexOf(candidate) === index); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAmB3F,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AACzC,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,GAAE,uBAA4B;CAGlD"} | ||
| {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA0B3F,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AACzC,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,GAAE,uBAA4B;CAGlD"} |
@@ -11,7 +11,14 @@ import { AcpProvider } from '../acp/provider.js'; | ||
| loginCommand: 'opencode auth login', | ||
| resolveExecutable: ({ config, environment, platform }) => resolveOpenCodeExecutable({ | ||
| configuredPath: config.opencodePath, | ||
| environment, | ||
| platform, | ||
| }), | ||
| resolveExecutable: ({ config, environment, platform }) => { | ||
| const configuredPath = environment?.PANERELAY_OPENCODE_PATH || | ||
| (config.opencodePathSource === 'override' ? config.opencodePath : undefined); | ||
| return resolveOpenCodeExecutable({ | ||
| configuredPath, | ||
| environment, | ||
| ...(config.opencodePath && config.opencodePath !== configuredPath | ||
| ? { persistedPath: config.opencodePath } | ||
| : {}), | ||
| platform, | ||
| }); | ||
| }, | ||
| }; | ||
@@ -18,0 +25,0 @@ export class OpenCodeProvider extends AcpProvider { |
@@ -10,5 +10,12 @@ export interface PanerelayRuntimeConfig { | ||
| opencodePath?: string; | ||
| opencodePathSource?: OpenCodePathSource; | ||
| opencodeVersion?: string; | ||
| } | ||
| export declare function readRuntimeConfig(): Promise<PanerelayRuntimeConfig>; | ||
| export type OpenCodePathSource = 'discovered' | 'override'; | ||
| export interface RuntimeConfigReadOptions { | ||
| environment?: NodeJS.ProcessEnv; | ||
| path?: string; | ||
| } | ||
| export declare function normalizeOpenCodePathSource(value: unknown): OpenCodePathSource; | ||
| export declare function readRuntimeConfig(options?: RuntimeConfigReadOptions): Promise<PanerelayRuntimeConfig>; | ||
| //# sourceMappingURL=runtime-config.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAOD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,CAAC,CA+BzE"} | ||
| {"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAE9E;AAOD,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAsCjC"} |
| import { readFile } from 'node:fs/promises'; | ||
| import { runtimeConfigPath } from '@panerelay/protocol/node'; | ||
| import { isExecutableFile, normalizeExecutablePathEntries } from './platform.js'; | ||
| export function normalizeOpenCodePathSource(value) { | ||
| return value === 'override' ? 'override' : 'discovered'; | ||
| } | ||
| async function executable(path) { | ||
@@ -9,6 +12,7 @@ if (!path) | ||
| } | ||
| export async function readRuntimeConfig() { | ||
| export async function readRuntimeConfig(options = {}) { | ||
| const environment = options.environment ?? process.env; | ||
| let stored = {}; | ||
| try { | ||
| stored = JSON.parse(await readFile(runtimeConfigPath(), 'utf8')); | ||
| stored = JSON.parse(await readFile(options.path ?? runtimeConfigPath(), 'utf8')); | ||
| } | ||
@@ -21,3 +25,7 @@ catch { | ||
| const configuredQoder = process.env.PANERELAY_QODER_PATH || stored.qoderPath; | ||
| const configuredOpenCode = process.env.PANERELAY_OPENCODE_PATH || stored.opencodePath; | ||
| const openCodeOverride = environment.PANERELAY_OPENCODE_PATH; | ||
| const configuredOpenCode = openCodeOverride || stored.opencodePath; | ||
| const openCodePathSource = openCodeOverride | ||
| ? 'override' | ||
| : normalizeOpenCodePathSource(stored.opencodePathSource); | ||
| const agentPathEntries = normalizeExecutablePathEntries(Array.isArray(stored.agentPathEntries) ? stored.agentPathEntries : []); | ||
@@ -32,3 +40,5 @@ return { | ||
| ...(typeof stored.qoderVersion === 'string' ? { qoderVersion: stored.qoderVersion } : {}), | ||
| ...((await executable(configuredOpenCode)) ? { opencodePath: configuredOpenCode } : {}), | ||
| ...((await executable(configuredOpenCode)) | ||
| ? { opencodePath: configuredOpenCode, opencodePathSource: openCodePathSource } | ||
| : {}), | ||
| ...(typeof stored.opencodeVersion === 'string' | ||
@@ -35,0 +45,0 @@ ? { opencodeVersion: stored.opencodeVersion } |
+9
-8
| { | ||
| "name": "@panerelay/bridge", | ||
| "version": "0.8.0", | ||
| "version": "0.9.0", | ||
| "description": "Panerelay Native Messaging host and local browser-level CDP relay.", | ||
@@ -53,8 +53,8 @@ "type": "module", | ||
| "ws": "^8.21.1", | ||
| "@panerelay/agent-browser": "0.8.0", | ||
| "@panerelay/browser-use": "0.8.0", | ||
| "@panerelay/browser-registry": "0.8.0", | ||
| "@panerelay/playwright": "0.8.0", | ||
| "@panerelay/cli": "0.8.0", | ||
| "@panerelay/protocol": "0.8.0" | ||
| "@panerelay/agent-browser": "0.9.0", | ||
| "@panerelay/browser-use": "0.9.0", | ||
| "@panerelay/browser-registry": "0.9.0", | ||
| "@panerelay/playwright": "0.9.0", | ||
| "@panerelay/cli": "0.9.0", | ||
| "@panerelay/protocol": "0.9.0" | ||
| }, | ||
@@ -65,3 +65,4 @@ "devDependencies": {}, | ||
| "typecheck": "tsc -p tsconfig.json --noEmit", | ||
| "test": "pnpm run build && node ../../scripts/run-compiled-tests.mjs dist", | ||
| "test": "pnpm run build && pnpm run test:compiled", | ||
| "test:compiled": "node ../../scripts/run-compiled-tests.mjs dist", | ||
| "install:host": "pnpm run build && node dist/install.js", | ||
@@ -68,0 +69,0 @@ "uninstall:host": "pnpm run build && node dist/install.js --uninstall" |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 2 instances
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
3793323
6.66%119
5.31%43178
5.9%34
-5.56%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated
Updated