Add Brave CDP automation, replace Oracle browser mode

Connects to user's running Brave via Chrome DevTools Protocol
to automate ChatGPT interaction. Uses puppeteer-core to open a
tab, send the prompt, wait for response, and extract the result.

No cookies, no separate profiles, no copy/paste. Just connects
to the browser where the user is already logged in.

One-time setup: relaunch Brave with --remote-debugging-port=9222

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Taylor Eernisse
2026-02-07 16:16:41 -05:00
parent d776a266a8
commit e7882b917b
4163 changed files with 782828 additions and 148 deletions

79
node_modules/bare-events/web.d.ts generated vendored Normal file
View File

@@ -0,0 +1,79 @@
interface AbortSignal extends EventTarget {}
export interface EventOptions {
bubbles?: boolean
cancelable?: boolean
composed?: boolean
}
export interface Event {
readonly type: string
readonly target: EventTarget | null
readonly currentTarget: EventTarget | null
readonly bubbles: boolean
readonly cancelable: boolean
readonly composed: boolean
readonly defaultPrevented: boolean
readonly isTrusted: boolean
preventDefault(): void
stopPropagation(): void
stopImmediatePropagation(): void
}
export class Event {
constructor(type: string, options?: EventOptions)
}
export interface CustomEventOptions<T = any> extends EventOptions {
detail?: T
}
export interface CustomEvent<T = any> extends Event {
readonly detail: T
}
export class CustomEvent<T = any> {
constructor(type: string, options?: CustomEventOptions<T>)
}
export interface AddEventListenerOptions {
capture?: boolean
passive?: boolean
once?: boolean
signal?: AbortSignal | null
}
export interface RemoveEventListenerOptions {
capture?: boolean
}
export interface EventTarget {
addEventListener(
type: string,
callback: EventListener,
options?: AddEventListenerOptions | boolean
): void
removeEventListener(
type: string,
callback: EventListener,
options?: RemoveEventListenerOptions | boolean
): void
dispatchEvent(event: Event): boolean
}
export class EventTarget {
constructor()
}
export type EventListener = EventCallback | EventHandler
export interface EventCallback {
(event: Event): void
}
export interface EventHandler {
handleEvent(event: Event): void
}