@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.
Files changed (62) hide show
  1. package/LICENSE +37 -0
  2. package/README.md +33 -0
  3. package/cordis.patch.yml +21 -0
  4. package/dist/aria-bundle.d.ts +9 -0
  5. package/dist/aria-bundle.d.ts.map +1 -0
  6. package/dist/aria-bundle.js +16 -0
  7. package/dist/aria-bundle.js.map +1 -0
  8. package/dist/aria.d.ts +45 -0
  9. package/dist/aria.d.ts.map +1 -0
  10. package/dist/aria.js +79 -0
  11. package/dist/aria.js.map +1 -0
  12. package/dist/assets/background.js.txt +242 -0
  13. package/dist/assets/manifest.json.txt +14 -0
  14. package/dist/assets/options.html.txt +53 -0
  15. package/dist/assets/options.js.txt +23 -0
  16. package/dist/index.d.ts +45 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +35 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/invariant.d.ts +16 -0
  21. package/dist/invariant.d.ts.map +1 -0
  22. package/dist/invariant.js +22 -0
  23. package/dist/invariant.js.map +1 -0
  24. package/dist/relay/bridge.d.ts +36 -0
  25. package/dist/relay/bridge.d.ts.map +1 -0
  26. package/dist/relay/bridge.js +860 -0
  27. package/dist/relay/bridge.js.map +1 -0
  28. package/dist/relay/index.d.ts +16 -0
  29. package/dist/relay/index.d.ts.map +1 -0
  30. package/dist/relay/index.js +15 -0
  31. package/dist/relay/index.js.map +1 -0
  32. package/dist/relay/kind.d.ts +30 -0
  33. package/dist/relay/kind.d.ts.map +1 -0
  34. package/dist/relay/kind.js +33 -0
  35. package/dist/relay/kind.js.map +1 -0
  36. package/dist/relay/protocol.d.ts +101 -0
  37. package/dist/relay/protocol.d.ts.map +1 -0
  38. package/dist/relay/protocol.js +12 -0
  39. package/dist/relay/protocol.js.map +1 -0
  40. package/dist/relay/server.d.ts +44 -0
  41. package/dist/relay/server.d.ts.map +1 -0
  42. package/dist/relay/server.js +173 -0
  43. package/dist/relay/server.js.map +1 -0
  44. package/dist/service.d.ts +157 -0
  45. package/dist/service.d.ts.map +1 -0
  46. package/dist/service.js +291 -0
  47. package/dist/service.js.map +1 -0
  48. package/dist/stealth-scripts.d.ts +11 -0
  49. package/dist/stealth-scripts.d.ts.map +1 -0
  50. package/dist/stealth-scripts.js +2010 -0
  51. package/dist/stealth-scripts.js.map +1 -0
  52. package/dist/stealth.d.ts +62 -0
  53. package/dist/stealth.d.ts.map +1 -0
  54. package/dist/stealth.js +194 -0
  55. package/dist/stealth.js.map +1 -0
  56. package/dist/types.d.ts +58 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +6 -0
  59. package/dist/types.js.map +1 -0
  60. package/examples/agent-preset/agent.cordis.yml +19 -0
  61. package/examples/agent-preset/preset.yml +3 -0
  62. 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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"}