@hy-sde-org/dsh-browser 0.1.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +37 -0
- package/README.md +33 -0
- package/cordis.patch.yml +21 -0
- package/dist/aria-bundle.d.ts +9 -0
- package/dist/aria-bundle.d.ts.map +1 -0
- package/dist/aria-bundle.js +16 -0
- package/dist/aria-bundle.js.map +1 -0
- package/dist/aria.d.ts +45 -0
- package/dist/aria.d.ts.map +1 -0
- package/dist/aria.js +79 -0
- package/dist/aria.js.map +1 -0
- package/dist/assets/background.js.txt +242 -0
- package/dist/assets/manifest.json.txt +14 -0
- package/dist/assets/options.html.txt +53 -0
- package/dist/assets/options.js.txt +23 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/invariant.d.ts +16 -0
- package/dist/invariant.d.ts.map +1 -0
- package/dist/invariant.js +22 -0
- package/dist/invariant.js.map +1 -0
- package/dist/relay/bridge.d.ts +36 -0
- package/dist/relay/bridge.d.ts.map +1 -0
- package/dist/relay/bridge.js +860 -0
- package/dist/relay/bridge.js.map +1 -0
- package/dist/relay/index.d.ts +16 -0
- package/dist/relay/index.d.ts.map +1 -0
- package/dist/relay/index.js +15 -0
- package/dist/relay/index.js.map +1 -0
- package/dist/relay/kind.d.ts +30 -0
- package/dist/relay/kind.d.ts.map +1 -0
- package/dist/relay/kind.js +33 -0
- package/dist/relay/kind.js.map +1 -0
- package/dist/relay/protocol.d.ts +101 -0
- package/dist/relay/protocol.d.ts.map +1 -0
- package/dist/relay/protocol.js +12 -0
- package/dist/relay/protocol.js.map +1 -0
- package/dist/relay/server.d.ts +44 -0
- package/dist/relay/server.d.ts.map +1 -0
- package/dist/relay/server.js +173 -0
- package/dist/relay/server.js.map +1 -0
- package/dist/service.d.ts +157 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +291 -0
- package/dist/service.js.map +1 -0
- package/dist/stealth-scripts.d.ts +11 -0
- package/dist/stealth-scripts.d.ts.map +1 -0
- package/dist/stealth-scripts.js +2010 -0
- package/dist/stealth-scripts.js.map +1 -0
- package/dist/stealth.d.ts +62 -0
- package/dist/stealth.d.ts.map +1 -0
- package/dist/stealth.js +194 -0
- package/dist/stealth.js.map +1 -0
- package/dist/types.d.ts +58 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/examples/agent-preset/agent.cordis.yml +19 -0
- package/examples/agent-preset/preset.yml +3 -0
- package/package.json +99 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/relay/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local relay server + wire protocol for driving the user's own Chrome tabs
|
|
3
|
+
* via the companion MV3 extension (assets under src/assets).
|
|
4
|
+
*
|
|
5
|
+
* Ported from omp (oh-my-pi, MIT — see port_omp.md item: browser tool with
|
|
6
|
+
* relay). The server impersonates Chrome's CDP discovery endpoint
|
|
7
|
+
* (`/json/version`, `/json`, `WS /cdp`) and bridges it to the extension's
|
|
8
|
+
* `chrome.debugger` over `WS /ext`; `bridge.ts` multiplexes every downstream
|
|
9
|
+
* CDP connection over the extension's single debugger attachment per tab.
|
|
10
|
+
* @module @hy-sde-org/dsh-browser/relay
|
|
11
|
+
*/
|
|
12
|
+
export { startRelayServer, type RelayServer, type RelayServerOptions } from './server.ts';
|
|
13
|
+
export { RelayBridge } from './bridge.ts';
|
|
14
|
+
export { resolveRelayKind, DEFAULT_RELAY_URL, type RelayKind, type ResolveRelayKindOptions } from './kind.ts';
|
|
15
|
+
export type { ExtToRelayMessage, RelayRpcRequest, RelayToExtMessage, TabSnapshot } from './protocol.ts';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/relay/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAC7G,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local relay server + wire protocol for driving the user's own Chrome tabs
|
|
3
|
+
* via the companion MV3 extension (assets under src/assets).
|
|
4
|
+
*
|
|
5
|
+
* Ported from omp (oh-my-pi, MIT — see port_omp.md item: browser tool with
|
|
6
|
+
* relay). The server impersonates Chrome's CDP discovery endpoint
|
|
7
|
+
* (`/json/version`, `/json`, `WS /cdp`) and bridges it to the extension's
|
|
8
|
+
* `chrome.debugger` over `WS /ext`; `bridge.ts` multiplexes every downstream
|
|
9
|
+
* CDP connection over the extension's single debugger attachment per tab.
|
|
10
|
+
* @module @hy-sde-org/dsh-browser/relay
|
|
11
|
+
*/
|
|
12
|
+
export { startRelayServer } from "./server.js";
|
|
13
|
+
export { RelayBridge } from "./bridge.js";
|
|
14
|
+
export { resolveRelayKind, DEFAULT_RELAY_URL } from "./kind.js";
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/relay/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAA6C,MAAM,aAAa,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAgD,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser relay mode: drive the user's own Chrome tabs through the local CDP
|
|
3
|
+
* relay served in-process by this package (sibling `server.ts`/`bridge.ts`)
|
|
4
|
+
* plus the companion MV3 extension (`src/assets/*.txt`). The relay
|
|
5
|
+
* impersonates Chrome's CDP discovery endpoint, so the whole attached-browser
|
|
6
|
+
* machinery (registry, tab registry) applies unchanged.
|
|
7
|
+
*
|
|
8
|
+
* Ported from oh-my-pi (MIT — see port_omp.md item: browser tool with relay).
|
|
9
|
+
* @module @hy-sde-org/dsh-browser/relay/kind
|
|
10
|
+
*/
|
|
11
|
+
export interface RelayKind {
|
|
12
|
+
kind: 'relay';
|
|
13
|
+
cdpUrl: string;
|
|
14
|
+
}
|
|
15
|
+
/** Default endpoint of the in-process relay server. */
|
|
16
|
+
export declare const DEFAULT_RELAY_URL = "http://127.0.0.1:9224";
|
|
17
|
+
export interface ResolveRelayKindOptions {
|
|
18
|
+
/** `browser.relay` setting; `DSH_BROWSER_RELAY=0|1` overrides it. */
|
|
19
|
+
settingEnabled?: boolean;
|
|
20
|
+
/** `browser.relayUrl` setting; falls back to {@link DEFAULT_RELAY_URL}. */
|
|
21
|
+
url?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the relay browser kind, or null when relay mode is disabled.
|
|
25
|
+
* Mirrors omp's `resolveRelayKind`: the setting opts in and the env var is the
|
|
26
|
+
* final override in both directions.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveRelayKind(options?: ResolveRelayKindOptions | null, env?: Record<string, string | undefined>): RelayKind | null;
|
|
29
|
+
export type { TabSnapshot, RelayRpcRequest, RelayToExtMessage, ExtToRelayMessage } from './protocol.ts';
|
|
30
|
+
//# sourceMappingURL=kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind.d.ts","sourceRoot":"","sources":["../../src/relay/kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,0BAA0B,CAAA;AASxD,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,uBAAuB,GAAG,IAAI,EACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,SAAS,GAAG,IAAI,CAMlB;AAED,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser relay mode: drive the user's own Chrome tabs through the local CDP
|
|
3
|
+
* relay served in-process by this package (sibling `server.ts`/`bridge.ts`)
|
|
4
|
+
* plus the companion MV3 extension (`src/assets/*.txt`). The relay
|
|
5
|
+
* impersonates Chrome's CDP discovery endpoint, so the whole attached-browser
|
|
6
|
+
* machinery (registry, tab registry) applies unchanged.
|
|
7
|
+
*
|
|
8
|
+
* Ported from oh-my-pi (MIT — see port_omp.md item: browser tool with relay).
|
|
9
|
+
* @module @hy-sde-org/dsh-browser/relay/kind
|
|
10
|
+
*/
|
|
11
|
+
/** Default endpoint of the in-process relay server. */
|
|
12
|
+
export const DEFAULT_RELAY_URL = 'http://127.0.0.1:9224';
|
|
13
|
+
/** Whether the env var disables relay mode when unset-flag semantics apply. */
|
|
14
|
+
function parseFlag(value, fallback) {
|
|
15
|
+
if (value === undefined || value === '')
|
|
16
|
+
return fallback;
|
|
17
|
+
if (value === '0' || value === 'false' || value === 'off' || value === 'no')
|
|
18
|
+
return false;
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the relay browser kind, or null when relay mode is disabled.
|
|
23
|
+
* Mirrors omp's `resolveRelayKind`: the setting opts in and the env var is the
|
|
24
|
+
* final override in both directions.
|
|
25
|
+
*/
|
|
26
|
+
export function resolveRelayKind(options, env = process.env) {
|
|
27
|
+
if (!parseFlag(env.DSH_BROWSER_RELAY, options?.settingEnabled ?? false)) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const url = options?.url?.trim() || DEFAULT_RELAY_URL;
|
|
31
|
+
return { kind: 'relay', cdpUrl: url.replace(/\/+$/, '') };
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind.js","sourceRoot":"","sources":["../../src/relay/kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAA;AAExD,+EAA+E;AAC/E,SAAS,SAAS,CAAC,KAAyB,EAAE,QAAiB;IAC7D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAA;IACxD,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACzF,OAAO,IAAI,CAAA;AACb,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAwC,EACxC,MAA0C,OAAO,CAAC,GAAG;IAErD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,EAAE,cAAc,IAAI,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,iBAAiB,CAAA;IACrD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;AAC3D,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ported from oh-my-pi (MIT — see port_omp.md item: browser tool with relay).
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Wire protocol between the relay server and the Chrome extension.
|
|
6
|
+
*
|
|
7
|
+
* The extension dials out to `ws://127.0.0.1:<port>/ext` and exchanges JSON
|
|
8
|
+
* messages. The relay drives the extension with numbered RPCs; the extension
|
|
9
|
+
* pushes tab lifecycle and `chrome.debugger` events as they happen.
|
|
10
|
+
*/
|
|
11
|
+
/** Minimal view of a Chrome tab shared between extension and relay. */
|
|
12
|
+
export interface TabSnapshot {
|
|
13
|
+
tabId: number;
|
|
14
|
+
url: string;
|
|
15
|
+
title: string;
|
|
16
|
+
active: boolean;
|
|
17
|
+
windowId: number;
|
|
18
|
+
/** Pinned tabs are never grouped (Chrome would silently unpin them). */
|
|
19
|
+
pinned: boolean;
|
|
20
|
+
/** Chrome tab group id; -1 when ungrouped. */
|
|
21
|
+
groupId: number;
|
|
22
|
+
}
|
|
23
|
+
/** RPCs the relay may ask the extension to perform. */
|
|
24
|
+
export type RelayRpcRequest = {
|
|
25
|
+
op: 'attach';
|
|
26
|
+
tabId: number;
|
|
27
|
+
} | {
|
|
28
|
+
op: 'detach';
|
|
29
|
+
tabId: number;
|
|
30
|
+
} | {
|
|
31
|
+
op: 'send';
|
|
32
|
+
tabId: number;
|
|
33
|
+
sessionId?: string;
|
|
34
|
+
method: string;
|
|
35
|
+
params?: Record<string, unknown>;
|
|
36
|
+
} | {
|
|
37
|
+
op: 'createTab';
|
|
38
|
+
url: string;
|
|
39
|
+
} | {
|
|
40
|
+
op: 'removeTab';
|
|
41
|
+
tabId: number;
|
|
42
|
+
} | {
|
|
43
|
+
op: 'activateTab';
|
|
44
|
+
tabId: number;
|
|
45
|
+
}
|
|
46
|
+
/** Add tabs to the per-window omp group (created/reused by title), remembering prior membership. */
|
|
47
|
+
| {
|
|
48
|
+
op: 'group';
|
|
49
|
+
tabIds: number[];
|
|
50
|
+
title: string;
|
|
51
|
+
color: string;
|
|
52
|
+
}
|
|
53
|
+
/** Return tabs to their pre-omp group (or ungroup); no-op for tabs the relay never grouped. */
|
|
54
|
+
| {
|
|
55
|
+
op: 'ungroup';
|
|
56
|
+
tabIds: number[];
|
|
57
|
+
};
|
|
58
|
+
/** Messages sent relay → extension. */
|
|
59
|
+
export type RelayToExtMessage = ({
|
|
60
|
+
t: 'rpc';
|
|
61
|
+
id: number;
|
|
62
|
+
} & RelayRpcRequest) | {
|
|
63
|
+
t: 'pong';
|
|
64
|
+
};
|
|
65
|
+
/** Messages sent extension → relay. */
|
|
66
|
+
export type ExtToRelayMessage = {
|
|
67
|
+
t: 'hello';
|
|
68
|
+
userAgent: string;
|
|
69
|
+
browserVersion: string;
|
|
70
|
+
tabs: TabSnapshot[];
|
|
71
|
+
/** Tabs that already have a `chrome.debugger` attachment (relay reconciles after a service-worker restart). */
|
|
72
|
+
attachedTabIds: number[];
|
|
73
|
+
} | {
|
|
74
|
+
t: 'cdpEvent';
|
|
75
|
+
tabId: number;
|
|
76
|
+
sessionId?: string;
|
|
77
|
+
method: string;
|
|
78
|
+
params?: Record<string, unknown>;
|
|
79
|
+
} | {
|
|
80
|
+
t: 'detached';
|
|
81
|
+
tabId: number;
|
|
82
|
+
reason: string;
|
|
83
|
+
} | {
|
|
84
|
+
t: 'tabCreated';
|
|
85
|
+
tab: TabSnapshot;
|
|
86
|
+
} | {
|
|
87
|
+
t: 'tabUpdated';
|
|
88
|
+
tab: TabSnapshot;
|
|
89
|
+
} | {
|
|
90
|
+
t: 'tabRemoved';
|
|
91
|
+
tabId: number;
|
|
92
|
+
} | {
|
|
93
|
+
t: 'rpcResult';
|
|
94
|
+
id: number;
|
|
95
|
+
ok: boolean;
|
|
96
|
+
result?: unknown;
|
|
97
|
+
error?: string;
|
|
98
|
+
} | {
|
|
99
|
+
t: 'ping';
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/relay/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AAEH,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,MAAM,EAAE,OAAO,CAAA;IACf,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACnG;IAAE,EAAE,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACtC,oGAAoG;GAClG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACjE,+FAA+F;GAC7F;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAEvC,uCAAuC;AACvC,MAAM,MAAM,iBAAiB,GAAG,CAAC;IAAE,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAAC,GAAG;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5F,uCAAuC;AACvC,MAAM,MAAM,iBAAiB,GACzB;IACA,CAAC,EAAE,OAAO,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,+GAA+G;IAC/G,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB,GACC;IAAE,CAAC,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACtG;IAAE,CAAC,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,CAAC,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,CAAC,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,CAAC,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ported from oh-my-pi (MIT — see port_omp.md item: browser tool with relay).
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Wire protocol between the relay server and the Chrome extension.
|
|
6
|
+
*
|
|
7
|
+
* The extension dials out to `ws://127.0.0.1:<port>/ext` and exchanges JSON
|
|
8
|
+
* messages. The relay drives the extension with numbered RPCs; the extension
|
|
9
|
+
* pushes tab lifecycle and `chrome.debugger` events as they happen.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/relay/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP + WebSocket server for the browser relay (Node port of omp's
|
|
3
|
+
* `server.ts`, which used Bun's server API — MIT, see port_omp.md item:
|
|
4
|
+
* browser tool with relay).
|
|
5
|
+
*
|
|
6
|
+
* Impersonates Chrome's CDP discovery endpoint so any CDP client (Playwright
|
|
7
|
+
* `connectOverCDP`) can connect with a plain browser URL:
|
|
8
|
+
* - `GET /json/version` → 200 with `webSocketDebuggerUrl` once the extension
|
|
9
|
+
* is connected, 503 before that (clients keep polling).
|
|
10
|
+
* - `GET /json` / `/json/list` → attachable page targets (debugging aid).
|
|
11
|
+
* - `WS /cdp` → downstream CDP clients (Playwright/puppeteer).
|
|
12
|
+
* - `WS /ext` → the Chrome MV3 extension (token-gated when configured).
|
|
13
|
+
* - `GET /ext-assets/*` → the unpacked companion extension files, so a user
|
|
14
|
+
* can sideload `chrome://extensions` → Developer mode → Load unpacked on
|
|
15
|
+
* `<origin>/ext-assets/{manifest.json,background.js,options.html,options.js}`
|
|
16
|
+
* (dev convenience; served from the package source tree).
|
|
17
|
+
*
|
|
18
|
+
* Binds loopback only: anything that can reach this port can drive the user's
|
|
19
|
+
* logged-in browser — start it deliberately.
|
|
20
|
+
* @module @hy-sde-org/dsh-browser/relay/server
|
|
21
|
+
*/
|
|
22
|
+
import { RelayBridge } from './bridge.ts';
|
|
23
|
+
export interface RelayServerOptions {
|
|
24
|
+
port: number;
|
|
25
|
+
/** Shared secret the extension must present as `?token=`; unset disables the check. */
|
|
26
|
+
token?: string;
|
|
27
|
+
/** Group tabs the agent actively drives under one per-window Chrome tab group (default on). */
|
|
28
|
+
group?: boolean | {
|
|
29
|
+
title: string;
|
|
30
|
+
color: string;
|
|
31
|
+
};
|
|
32
|
+
log?: (message: string, data?: Record<string, unknown>) => void;
|
|
33
|
+
}
|
|
34
|
+
/** A running relay server. */
|
|
35
|
+
export interface RelayServer {
|
|
36
|
+
bridge: RelayBridge;
|
|
37
|
+
port: number;
|
|
38
|
+
stop(): void;
|
|
39
|
+
}
|
|
40
|
+
/** Start the relay server on 127.0.0.1; port 0 picks an ephemeral port. */
|
|
41
|
+
export declare function startRelayServer(opts: RelayServerOptions): Promise<RelayServer>;
|
|
42
|
+
export type { ExtToRelayMessage, RelayRpcRequest, RelayToExtMessage, TabSnapshot } from './protocol.ts';
|
|
43
|
+
export { RelayBridge } from './bridge.ts';
|
|
44
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/relay/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAA;AAE3D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+FAA+F;IAC/F,KAAK,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAClD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CAChE;AAED,8BAA8B;AAC9B,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,IAAI,IAAI,CAAA;CACb;AAgCD,2EAA2E;AAC3E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAmHrF;AAED,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACvG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP + WebSocket server for the browser relay (Node port of omp's
|
|
3
|
+
* `server.ts`, which used Bun's server API — MIT, see port_omp.md item:
|
|
4
|
+
* browser tool with relay).
|
|
5
|
+
*
|
|
6
|
+
* Impersonates Chrome's CDP discovery endpoint so any CDP client (Playwright
|
|
7
|
+
* `connectOverCDP`) can connect with a plain browser URL:
|
|
8
|
+
* - `GET /json/version` → 200 with `webSocketDebuggerUrl` once the extension
|
|
9
|
+
* is connected, 503 before that (clients keep polling).
|
|
10
|
+
* - `GET /json` / `/json/list` → attachable page targets (debugging aid).
|
|
11
|
+
* - `WS /cdp` → downstream CDP clients (Playwright/puppeteer).
|
|
12
|
+
* - `WS /ext` → the Chrome MV3 extension (token-gated when configured).
|
|
13
|
+
* - `GET /ext-assets/*` → the unpacked companion extension files, so a user
|
|
14
|
+
* can sideload `chrome://extensions` → Developer mode → Load unpacked on
|
|
15
|
+
* `<origin>/ext-assets/{manifest.json,background.js,options.html,options.js}`
|
|
16
|
+
* (dev convenience; served from the package source tree).
|
|
17
|
+
*
|
|
18
|
+
* Binds loopback only: anything that can reach this port can drive the user's
|
|
19
|
+
* logged-in browser — start it deliberately.
|
|
20
|
+
* @module @hy-sde-org/dsh-browser/relay/server
|
|
21
|
+
*/
|
|
22
|
+
import * as http from 'node:http';
|
|
23
|
+
import { readFile } from 'node:fs/promises';
|
|
24
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
25
|
+
import { RelayBridge } from "./bridge.js";
|
|
26
|
+
const WS_KEEPALIVE_MS = 30_000;
|
|
27
|
+
/** Screenshots travel base64-encoded through both websocket legs. */
|
|
28
|
+
const MAX_PAYLOAD_BYTES = 256 * 1024 * 1024;
|
|
29
|
+
/** Default appearance of the browser tab group. */
|
|
30
|
+
const DEFAULT_GROUP = { title: 'dsh', color: 'cyan' };
|
|
31
|
+
class BridgeSocket {
|
|
32
|
+
ws;
|
|
33
|
+
constructor(ws) {
|
|
34
|
+
this.ws = ws;
|
|
35
|
+
}
|
|
36
|
+
send(text) {
|
|
37
|
+
if (this.ws.readyState === WebSocket.OPEN)
|
|
38
|
+
this.ws.send(text);
|
|
39
|
+
}
|
|
40
|
+
close() {
|
|
41
|
+
this.ws.close();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const ASSET_CONTENT_TYPES = {
|
|
45
|
+
'.js': 'text/javascript; charset=utf-8',
|
|
46
|
+
'.txt': 'text/plain; charset=utf-8',
|
|
47
|
+
'.html': 'text/html; charset=utf-8',
|
|
48
|
+
'.json': 'application/json',
|
|
49
|
+
};
|
|
50
|
+
/** Start the relay server on 127.0.0.1; port 0 picks an ephemeral port. */
|
|
51
|
+
export async function startRelayServer(opts) {
|
|
52
|
+
const log = opts.log ?? (() => { });
|
|
53
|
+
const group = opts.group === false ? null : opts.group === true || opts.group === undefined ? DEFAULT_GROUP : opts.group;
|
|
54
|
+
const bridge = new RelayBridge({ log, group });
|
|
55
|
+
const baseUrl = `http://127.0.0.1:${opts.port}`;
|
|
56
|
+
const assetsDir = new URL('../assets/', import.meta.url);
|
|
57
|
+
const server = http.createServer((req, res) => {
|
|
58
|
+
const url = new URL(req.url ?? '/', baseUrl);
|
|
59
|
+
const path = url.pathname.replace(/\/+$/, '') || '/';
|
|
60
|
+
if (path.startsWith('/ext-assets/')) {
|
|
61
|
+
const fileName = path.slice('/ext-assets/'.length).split('/').pop() ?? '';
|
|
62
|
+
void readFile(new URL(fileName, assetsDir)).then((content) => {
|
|
63
|
+
const index = fileName.lastIndexOf('.');
|
|
64
|
+
const ext = index >= 0 ? fileName.slice(index) : '';
|
|
65
|
+
res.writeHead(200, { 'content-type': ASSET_CONTENT_TYPES[ext] ?? 'application/octet-stream' }).end(content);
|
|
66
|
+
}, () => res.writeHead(404).end('Not found'));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
70
|
+
res.writeHead(405).end('Method not allowed');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (path === '/json/version') {
|
|
74
|
+
if (!bridge.ready) {
|
|
75
|
+
res.writeHead(503, { 'content-type': 'application/json' }).end(JSON.stringify({ error: 'relay extension is not connected' }));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
res.writeHead(200, { 'content-type': 'application/json' }).end(JSON.stringify(bridge.versionInfo(`ws://127.0.0.1:${opts.port}/cdp`)));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (path === '/json' || path === '/json/list') {
|
|
82
|
+
res.writeHead(200, { 'content-type': 'application/json' }).end(JSON.stringify(bridge.listTargets()));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
res.writeHead(404).end('Not found');
|
|
86
|
+
});
|
|
87
|
+
const wss = new WebSocketServer({ server, maxPayload: MAX_PAYLOAD_BYTES });
|
|
88
|
+
wss.on('connection', (rawSocket, req) => {
|
|
89
|
+
const socket = rawSocket;
|
|
90
|
+
const url = new URL(req.url ?? '/', baseUrl);
|
|
91
|
+
const path = url.pathname.replace(/\/+$/, '') || '/';
|
|
92
|
+
if (path === '/cdp') {
|
|
93
|
+
// Native CDP clients send no Origin; reject web-page origins so a page
|
|
94
|
+
// can't drive the relay through the user's browser.
|
|
95
|
+
const origin = req.headers.origin;
|
|
96
|
+
if (origin && origin.startsWith('http')) {
|
|
97
|
+
socket.close(1008, 'Forbidden');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
socket.role = 'cdp';
|
|
101
|
+
socket.connId = bridge.cdpConnected(new BridgeSocket(socket));
|
|
102
|
+
socket.on('message', (data) => {
|
|
103
|
+
const text = decodeMessage(data);
|
|
104
|
+
if (socket.connId !== undefined)
|
|
105
|
+
bridge.cdpMessage(socket.connId, text);
|
|
106
|
+
});
|
|
107
|
+
socket.on('close', () => {
|
|
108
|
+
if (socket.connId !== undefined)
|
|
109
|
+
bridge.cdpClosed(socket.connId);
|
|
110
|
+
});
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (path === '/ext') {
|
|
114
|
+
const origin = req.headers.origin;
|
|
115
|
+
if (origin && !origin.startsWith('chrome-extension://')) {
|
|
116
|
+
socket.close(1008, 'Forbidden');
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (opts.token && url.searchParams.get('token') !== opts.token) {
|
|
120
|
+
socket.close(1008, 'Unauthorized');
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
socket.role = 'ext';
|
|
124
|
+
const bridgeSocket = new BridgeSocket(socket);
|
|
125
|
+
bridge.extConnected(bridgeSocket);
|
|
126
|
+
socket.on('message', (data) => {
|
|
127
|
+
bridge.extMessage(bridgeSocket, decodeMessage(data));
|
|
128
|
+
});
|
|
129
|
+
socket.on('close', () => { bridge.extClosed(bridgeSocket); });
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
socket.close(1008, 'Not found');
|
|
133
|
+
});
|
|
134
|
+
const keepalive = setInterval(() => {
|
|
135
|
+
for (const client of wss.clients)
|
|
136
|
+
client.ping();
|
|
137
|
+
}, WS_KEEPALIVE_MS);
|
|
138
|
+
keepalive.unref();
|
|
139
|
+
await new Promise((resolve, reject) => {
|
|
140
|
+
const onError = (error) => { reject(error); };
|
|
141
|
+
server.once('error', onError);
|
|
142
|
+
server.listen(opts.port, '127.0.0.1', () => {
|
|
143
|
+
server.off('error', onError);
|
|
144
|
+
resolve();
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
const address = server.address();
|
|
148
|
+
const actualPort = typeof address === 'object' && address !== null ? address.port : opts.port;
|
|
149
|
+
log('relay listening', { port: actualPort });
|
|
150
|
+
return {
|
|
151
|
+
bridge,
|
|
152
|
+
port: actualPort,
|
|
153
|
+
stop() {
|
|
154
|
+
clearInterval(keepalive);
|
|
155
|
+
wss.close();
|
|
156
|
+
for (const client of wss.clients)
|
|
157
|
+
client.terminate();
|
|
158
|
+
server.close();
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
export { RelayBridge } from "./bridge.js";
|
|
163
|
+
/** Decode a raw websocket payload for message dispatch. */
|
|
164
|
+
function decodeMessage(data) {
|
|
165
|
+
if (typeof data === 'string')
|
|
166
|
+
return data;
|
|
167
|
+
if (Buffer.isBuffer(data))
|
|
168
|
+
return data.toString();
|
|
169
|
+
if (data instanceof ArrayBuffer)
|
|
170
|
+
return new TextDecoder().decode(data);
|
|
171
|
+
return data.map(part => (Buffer.isBuffer(part) ? part.toString() : String(part))).join('');
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/relay/server.ts"],"names":[],"mappings":"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"}
|