webhands 0.1.7 → 0.3.0

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/README.md CHANGED
@@ -88,8 +88,10 @@ deliberately local and single-session by design.
88
88
  does NOT bypass authentication or solve CAPTCHAs programmatically, and it is not
89
89
  intended to.
90
90
  - **No fingerprint-spoofing / anti-detect tricks.** It leans on being a *real*
91
- browser/profile/IP rather than spoofing. There is no proxy rotation or
92
- anti-detect build here.
91
+ browser/profile/IP rather than spoofing. There is no proxy *rotation* or
92
+ anti-detect build here. (A single, user-chosen SOCKS proxy for traffic/DNS
93
+ control is available opt-in via `--proxy`; see *Optional: route traffic and
94
+ DNS through a SOCKS proxy* below.)
93
95
  - **Your own session only.** A replayed/stolen cookie does not work anyway
94
96
  (clearance is bound to the browser fingerprint and IP, not just the cookie);
95
97
  the design assumes the session is genuinely yours.
@@ -131,8 +133,18 @@ This is **off by default** — vanilla Playwright stays the default. To enable i
131
133
  Chrome with or without the Patchright path, and stealth with or without a
132
134
  system browser. Other channel names work too (e.g. `msedge`).
133
135
 
134
- Programmatic equivalent (the `--stealth` / `--use-system-browser` flags map onto
135
- these transport options):
136
+ 3. Optional extra hardening. `--no-viewport` lets the real browser window drive
137
+ its own size instead of Playwright's fixed 1280x720 emulated viewport (a
138
+ known headless tell). It is **defaulted ON under `--stealth`** (Patchright's
139
+ recommended recipe) and is overridable; pass `--viewport` to keep the fixed
140
+ viewport even under stealth. webhands deliberately does **not** override
141
+ `user-agent`, `locale`, `timezone`, or `headers`: a wrong UA is a bigger tell
142
+ than none.
143
+
144
+ Programmatic equivalent (the `--stealth` / `--use-system-browser` /
145
+ `--no-viewport` flags map onto these transport options; the constructor also
146
+ takes `extraLaunchArgs` and `ignoreDefaultArgs` escape hatches for additional
147
+ hardening flags, none of which touch the `OpenTarget` seam):
136
148
 
137
149
  ```ts
138
150
  import {PlaywrightLaunchTransport} from '@webhands/core';
@@ -140,7 +152,7 @@ import {PlaywrightLaunchTransport} from '@webhands/core';
140
152
  const transport = new PlaywrightLaunchTransport(
141
153
  {}, // profile location (omit for ~/.webhands)
142
154
  [], // extra hands
143
- {stealth: true, systemBrowser: 'chrome'},
155
+ {stealth: true, systemBrowser: 'chrome'}, // noViewport defaults to true here
144
156
  );
145
157
  // Stealth + headed + a real logged-in profile is the strongest recipe:
146
158
  const session = await transport.open({
@@ -156,12 +168,59 @@ It **never silently falls back** to vanilla Playwright, because that would put
156
168
  the tell back without telling you.
157
169
 
158
170
  **Honest caveat.** Stealth addresses ONLY the CDP `Runtime.enable` automation
159
- tell. It is **necessary-but-not-sufficient**: IP reputation and session/profile
171
+ tell, and the launch-hardening knobs (`--no-viewport`, `extraLaunchArgs`,
172
+ `ignoreDefaultArgs`) reduce but do **not** eliminate detection. They are
173
+ **necessary-but-not-sufficient**: IP reputation and session/profile
160
174
  reputation still matter. The realistic recipe is stealth +
161
175
  `systemBrowser: 'chrome'` + headed + a warmed, logged-in profile + a residential
162
176
  IP (see
163
177
  [`docs/adr/0002`](docs/adr/0002-real-session-over-fingerprint-spoofing.md)).
164
178
 
179
+ ## Optional: route traffic and DNS through a SOCKS proxy (opt-in, default OFF)
180
+
181
+ By default webhands connects directly on your own machine and IP. If you want
182
+ the browser to egress through a chosen SOCKS proxy (a VPN exit, an SSH/Tor SOCKS
183
+ endpoint, a residential proxy), pass `--proxy <socks-url>` to `serve` (or
184
+ `launch`). It routes **all** browser traffic AND DNS through that one proxy:
185
+
186
+ ```sh
187
+ # socks5h:// tunnels DNS through the proxy too (no DNS leak):
188
+ npx webhands serve --headed --proxy socks5h://127.0.0.1:1080
189
+
190
+ # with credentials:
191
+ npx webhands serve --proxy socks5h://user:pass@host:1080
192
+ ```
193
+
194
+ - **`socks5h://` means no DNS leak.** webhands adds Chromium's
195
+ `--host-resolver-rules` catch-all so even side channels (the DNS prefetcher)
196
+ cannot leak a raw local DNS query; only the proxy's own host is resolved
197
+ locally. This is the recommended form.
198
+ - **`socks5://` (or `socks://`) allows local DNS.** Use it when you deliberately
199
+ want split DNS. URL loads still resolve at the proxy, but Chromium may issue
200
+ some local DNS. Override either way with the programmatic `proxyNoLeak`
201
+ option.
202
+ - **A malformed `--proxy` value fails loudly** with a typed `InvalidProxyError`
203
+ (it never silently launches unproxied, which would leak the traffic you asked
204
+ to tunnel).
205
+
206
+ Programmatic equivalent:
207
+
208
+ ```ts
209
+ import {PlaywrightLaunchTransport} from '@webhands/core';
210
+
211
+ const transport = new PlaywrightLaunchTransport(
212
+ {}, // profile location
213
+ [], // extra hands
214
+ {proxy: 'socks5h://127.0.0.1:1080'}, // all traffic + DNS via the proxy, no leak
215
+ );
216
+ ```
217
+
218
+ **Honest caveat.** A proxy changes your IP and DNS path; it does **not** by
219
+ itself defeat bot detection, and a proxy/VPN/datacenter IP often reads WORSE
220
+ than a clean residential one. This is a deliberate, scoped opt-in deviation from
221
+ the "own IP" default (see
222
+ [`docs/adr/0009`](docs/adr/0009-opt-in-socks-proxy-all-traffic-and-dns.md)).
223
+
165
224
  ## Security note (the `serve` endpoint runs arbitrary code)
166
225
 
167
226
  The page verbs execute caller-supplied expressions: `eval` runs a JS expression
package/dist/cli.d.ts CHANGED
@@ -72,6 +72,20 @@ export interface LaunchPolicy {
72
72
  * of the bundled Chromium. Omit for bundled Chromium.
73
73
  */
74
74
  readonly systemBrowser?: string;
75
+ /**
76
+ * Don't impose a fixed emulated viewport (Playwright's `viewport: null`): let
77
+ * the real window drive its own size, a hardening tweak Patchright recommends
78
+ * for its stealth recipe. When omitted, `core` leaves Playwright's default in
79
+ * place EXCEPT under stealth, where it defaults the no-viewport on. Set `false`
80
+ * to keep the fixed viewport even under stealth.
81
+ */
82
+ readonly noViewport?: boolean;
83
+ /**
84
+ * Route ALL traffic and DNS through one SOCKS proxy, as a SOCKS URL
85
+ * (`socks5h://host:1080` or `socks5://user:pass@host:1080`). `socks5h` tunnels
86
+ * DNS too (no leak); `socks5` allows local DNS. Omit for a direct connection.
87
+ */
88
+ readonly proxy?: string;
75
89
  }
76
90
  /**
77
91
  * Build the `incur` CLI that wraps `core`'s verb surface (PRD Implementation
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAI,MAAM,OAAO,CAAC;AAC7B,OAAO,EACN,WAAW,EACX,sBAAsB,EAWtB,KAAK,UAAU,EACf,KAAK,oBAAoB,EAKzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAEN,KAAK,eAAe,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,aAAa,CAAC;AAMnC;;;;GAIG;AACH,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,4FAA4F;AAC5F,MAAM,WAAW,OAAO;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;KAAC,CAAC;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAC1B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAC,EACjD,YAAY,CAAC,EAAE,YAAY,KACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAwID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,IAAI,GAAE,OAAY,gDA+hB3C;AAuED,OAAO,EAAC,WAAW,EAAE,sBAAsB,EAAC,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAI,MAAM,OAAO,CAAC;AAC7B,OAAO,EACN,WAAW,EACX,sBAAsB,EAWtB,KAAK,UAAU,EACf,KAAK,oBAAoB,EAKzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAEN,KAAK,eAAe,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,aAAa,CAAC;AAMnC;;;;GAIG;AACH,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,4FAA4F;AAC5F,MAAM,WAAW,OAAO;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;KAAC,CAAC;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAC1B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAC,EACjD,YAAY,CAAC,EAAE,YAAY,KACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AAyKD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,IAAI,GAAE,OAAY,gDAqiB3C;AA2ED,OAAO,EAAC,WAAW,EAAE,sBAAsB,EAAC,CAAC"}
package/dist/cli.js CHANGED
@@ -65,6 +65,24 @@ const stealthOptions = z.object({
65
65
  .optional()
66
66
  .describe("Drive a browser already installed on the system (e.g. 'chrome', " +
67
67
  "'msedge') instead of the bundled Chromium."),
68
+ proxy: z
69
+ .string()
70
+ .optional()
71
+ .describe('Route ALL traffic and DNS through a SOCKS proxy. Give a SOCKS URL: ' +
72
+ 'socks5h://host:1080 tunnels DNS through the proxy too (no leak), ' +
73
+ 'socks5://host:1080 allows local DNS. A user:pass@ prefix is allowed.'),
74
+ // Modelled as a `viewport` boolean so incur's `--no-<flag>` negation gives the
75
+ // task-mandated `--no-viewport`: passing `--no-viewport` sets `viewport=false`
76
+ // (i.e. noViewport=true). Absent => undefined => core decides the default
77
+ // (no-viewport defaults ON under --stealth). Pass `--viewport` to force the
78
+ // fixed emulated viewport even under stealth.
79
+ viewport: z
80
+ .boolean()
81
+ .optional()
82
+ .describe('Emulate a fixed viewport. Use --no-viewport to let the real browser ' +
83
+ 'window drive its own size (a hardening tweak Patchright recommends). ' +
84
+ 'When unset, --no-viewport behaviour defaults ON under --stealth. ' +
85
+ 'Reduces but does not eliminate detection.'),
68
86
  });
69
87
  /** Resolve the {@link LaunchPolicy} from the shared stealth option fields. */
70
88
  function launchPolicyFrom(options) {
@@ -74,6 +92,15 @@ function launchPolicyFrom(options) {
74
92
  options['use-system-browser'] !== ''
75
93
  ? options['use-system-browser']
76
94
  : undefined,
95
+ // Tri-state: `viewport` undefined leaves core's (stealth-driven) default;
96
+ // `--no-viewport` (viewport=false) => noViewport:true; `--viewport` => false.
97
+ // Only forward when the flag was given.
98
+ ...(options.viewport !== undefined ? { noViewport: !options.viewport } : {}),
99
+ // Only forward --proxy when given, so the policy object stays minimal (the
100
+ // `serve` wiring tests assert it by exact shape).
101
+ ...(options.proxy !== undefined && options.proxy !== ''
102
+ ? { proxy: options.proxy }
103
+ : {}),
77
104
  };
78
105
  }
79
106
  /** The structured output schema shared by verbs that act on a page but return no data. */
@@ -221,6 +248,8 @@ export function createCli(deps = {}) {
221
248
  headed: z.boolean(),
222
249
  stealth: z.boolean(),
223
250
  systemBrowser: z.string().optional(),
251
+ noViewport: z.boolean().optional(),
252
+ proxy: z.string().optional(),
224
253
  }),
225
254
  async run(c) {
226
255
  try {
@@ -237,6 +266,10 @@ export function createCli(deps = {}) {
237
266
  ...(policy.systemBrowser !== undefined
238
267
  ? { systemBrowser: policy.systemBrowser }
239
268
  : {}),
269
+ ...(policy.noViewport !== undefined
270
+ ? { noViewport: policy.noViewport }
271
+ : {}),
272
+ ...(policy.proxy !== undefined ? { proxy: policy.proxy } : {}),
240
273
  }, {
241
274
  cta: {
242
275
  commands: [
@@ -639,6 +672,10 @@ async function defaultServeSession(target, home, launchPolicy = {}) {
639
672
  const launch = new PlaywrightLaunchTransport(home, [], {
640
673
  stealth: launchPolicy.stealth,
641
674
  systemBrowser: launchPolicy.systemBrowser,
675
+ ...(launchPolicy.noViewport !== undefined
676
+ ? { noViewport: launchPolicy.noViewport }
677
+ : {}),
678
+ ...(launchPolicy.proxy !== undefined ? { proxy: launchPolicy.proxy } : {}),
642
679
  });
643
680
  const attach = new PlaywrightAttachTransport();
644
681
  const transport = {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { MissingBrowserBinaryError, MissingStealthDependencyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, type ControllerError, type ControllerErrorCode } from '@webhands/core';
1
+ import { MissingBrowserBinaryError, MissingStealthDependencyError, InvalidProxyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, type ControllerError, type ControllerErrorCode } from '@webhands/core';
2
2
  /**
3
3
  * Map a TYPED `core` error condition into the user-facing message + the EXACT
4
4
  * command to fix it (PRD story 17).
@@ -40,6 +40,6 @@ export declare function fixCommandFor(error: ControllerError, binary: string): s
40
40
  * only to ADD the actionable fix command.
41
41
  */
42
42
  export declare function mapControllerError(cause: unknown, binary: string): MappedError | undefined;
43
- export { MissingBrowserBinaryError, MissingStealthDependencyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, };
43
+ export { MissingBrowserBinaryError, MissingStealthDependencyError, InvalidProxyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, };
44
44
  export type { ControllerError, ControllerErrorCode };
45
45
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAwC5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACZ,WAAW,GAAG,SAAS,CASzB;AAID,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GACzB,CAAC;AACF,YAAY,EAAC,eAAe,EAAE,mBAAmB,EAAC,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA4C5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACZ,WAAW,GAAG,SAAS,CASzB;AAID,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GACzB,CAAC;AACF,YAAY,EAAC,eAAe,EAAE,mBAAmB,EAAC,CAAC"}
package/dist/errors.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isControllerError, MissingBrowserBinaryError, MissingStealthDependencyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, } from '@webhands/core';
1
+ import { isControllerError, MissingBrowserBinaryError, MissingStealthDependencyError, InvalidProxyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, } from '@webhands/core';
2
2
  /**
3
3
  * Compose the EXACT fix command for a typed `core` error. Returned alongside
4
4
  * the message so a test can assert the precise command, and so the wording
@@ -18,6 +18,10 @@ export function fixCommandFor(error, binary) {
18
18
  // is absent. Name the package from the typed error so the install command
19
19
  // is ready to run; we never silently fall back to vanilla Playwright.
20
20
  return `pnpm add ${error.dependency}`;
21
+ case 'invalid-proxy':
22
+ // The --proxy value could not be parsed into a SOCKS proxy. Show the
23
+ // expected URL shape; socks5h tunnels DNS too (no leak).
24
+ return `${binary} serve --proxy socks5h://host:1080 (or socks5://user:pass@host:1080)`;
21
25
  case 'missing-profile':
22
26
  // A profile is created by the headed `setup-profile` flow (the ONE place
23
27
  // a profile dir is created — see core's MissingProfileError). Name the
@@ -70,5 +74,5 @@ export function mapControllerError(cause, binary) {
70
74
  }
71
75
  // Re-export the concrete classes so a test importing from the cli package can
72
76
  // construct/assert against them without reaching into core directly.
73
- export { MissingBrowserBinaryError, MissingStealthDependencyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, };
77
+ export { MissingBrowserBinaryError, MissingStealthDependencyError, InvalidProxyError, MissingProfileError, AttachNotChromiumError, AttachNoContextError, NoLiveServerError, SessionAlreadyActiveError, };
74
78
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GAGzB,MAAM,gBAAgB,CAAC;AAwBxB;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAsB,EAAE,MAAc;IACnE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,wBAAwB;YAC5B,iEAAiE;YACjE,wEAAwE;YACxE,wEAAwE;YACxE,OAAO,0BAA2B,KAAmC,CAAC,OAAO,EAAE,CAAC;QACjF,KAAK,4BAA4B;YAChC,yEAAyE;YACzE,0EAA0E;YAC1E,sEAAsE;YACtE,OAAO,YAAa,KAAuC,CAAC,UAAU,EAAE,CAAC;QAC1E,KAAK,iBAAiB;YACrB,yEAAyE;YACzE,uEAAuE;YACvE,gDAAgD;YAChD,OAAO,GAAG,MAAM,4BAA6B,KAA6B,CAAC,OAAO,EAAE,CAAC;QACtF,KAAK,qBAAqB;YACzB,sEAAsE;YACtE,qDAAqD;YACrD,OAAO,GAAG,MAAM,0GAA0G,CAAC;QAC5H,KAAK,mBAAmB;YACvB,0EAA0E;YAC1E,OAAO,GAAG,MAAM,sBAAuB,KAA8B,CAAC,QAAQ,4CAA4C,CAAC;QAC5H,KAAK,gBAAgB;YACpB,uEAAuE;YACvE,yEAAyE;YACzE,gDAAgD;YAChD,OAAO,GAAG,MAAM,QAAQ,CAAC;QAC1B,KAAK,wBAAwB;YAC5B,yEAAyE;YACzE,gCAAgC;YAChC,OAAO,GAAG,MAAM,OAAO,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC;YACT,yEAAyE;YACzE,+DAA+D;YAC/D,MAAM,MAAM,GAAU,KAAK,CAAC,IAAI,CAAC;YACjC,OAAO,SAAS,MAAM,oCAAoC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9E,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CACjC,KAAc,EACd,MAAc;IAEd,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,uBAAuB,GAAG,EAAE;KACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,qEAAqE;AACrE,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GACzB,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GAGzB,MAAM,gBAAgB,CAAC;AAwBxB;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAsB,EAAE,MAAc;IACnE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,wBAAwB;YAC5B,iEAAiE;YACjE,wEAAwE;YACxE,wEAAwE;YACxE,OAAO,0BAA2B,KAAmC,CAAC,OAAO,EAAE,CAAC;QACjF,KAAK,4BAA4B;YAChC,yEAAyE;YACzE,0EAA0E;YAC1E,sEAAsE;YACtE,OAAO,YAAa,KAAuC,CAAC,UAAU,EAAE,CAAC;QAC1E,KAAK,eAAe;YACnB,qEAAqE;YACrE,yDAAyD;YACzD,OAAO,GAAG,MAAM,sEAAsE,CAAC;QACxF,KAAK,iBAAiB;YACrB,yEAAyE;YACzE,uEAAuE;YACvE,gDAAgD;YAChD,OAAO,GAAG,MAAM,4BAA6B,KAA6B,CAAC,OAAO,EAAE,CAAC;QACtF,KAAK,qBAAqB;YACzB,sEAAsE;YACtE,qDAAqD;YACrD,OAAO,GAAG,MAAM,0GAA0G,CAAC;QAC5H,KAAK,mBAAmB;YACvB,0EAA0E;YAC1E,OAAO,GAAG,MAAM,sBAAuB,KAA8B,CAAC,QAAQ,4CAA4C,CAAC;QAC5H,KAAK,gBAAgB;YACpB,uEAAuE;YACvE,yEAAyE;YACzE,gDAAgD;YAChD,OAAO,GAAG,MAAM,QAAQ,CAAC;QAC1B,KAAK,wBAAwB;YAC5B,yEAAyE;YACzE,gCAAgC;YAChC,OAAO,GAAG,MAAM,OAAO,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC;YACT,yEAAyE;YACzE,+DAA+D;YAC/D,MAAM,MAAM,GAAU,KAAK,CAAC,IAAI,CAAC;YACjC,OAAO,SAAS,MAAM,oCAAoC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9E,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CACjC,KAAc,EACd,MAAc;IAEd,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,uBAAuB,GAAG,EAAE;KACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,qEAAqE;AACrE,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webhands",
3
- "version": "0.1.7",
3
+ "version": "0.3.0",
4
4
  "description": "A CLI (and MCP server) that drives a real, persistent browser via Playwright, letting an agent or human control any website from a genuinely logged-in browser session.",
5
5
  "keywords": [
6
6
  "browser",
@@ -42,7 +42,7 @@
42
42
  ],
43
43
  "dependencies": {
44
44
  "incur": "^0.4.10",
45
- "@webhands/core": "0.3.0"
45
+ "@webhands/core": "0.5.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/node": "^25.2.0",
package/src/cli.ts CHANGED
@@ -104,6 +104,20 @@ export interface LaunchPolicy {
104
104
  * of the bundled Chromium. Omit for bundled Chromium.
105
105
  */
106
106
  readonly systemBrowser?: string;
107
+ /**
108
+ * Don't impose a fixed emulated viewport (Playwright's `viewport: null`): let
109
+ * the real window drive its own size, a hardening tweak Patchright recommends
110
+ * for its stealth recipe. When omitted, `core` leaves Playwright's default in
111
+ * place EXCEPT under stealth, where it defaults the no-viewport on. Set `false`
112
+ * to keep the fixed viewport even under stealth.
113
+ */
114
+ readonly noViewport?: boolean;
115
+ /**
116
+ * Route ALL traffic and DNS through one SOCKS proxy, as a SOCKS URL
117
+ * (`socks5h://host:1080` or `socks5://user:pass@host:1080`). `socks5h` tunnels
118
+ * DNS too (no leak); `socks5` allows local DNS. Omit for a direct connection.
119
+ */
120
+ readonly proxy?: string;
107
121
  }
108
122
 
109
123
  // --- shared schema fragments ----------------------------------------------
@@ -161,12 +175,36 @@ const stealthOptions = z.object({
161
175
  "Drive a browser already installed on the system (e.g. 'chrome', " +
162
176
  "'msedge') instead of the bundled Chromium.",
163
177
  ),
178
+ proxy: z
179
+ .string()
180
+ .optional()
181
+ .describe(
182
+ 'Route ALL traffic and DNS through a SOCKS proxy. Give a SOCKS URL: ' +
183
+ 'socks5h://host:1080 tunnels DNS through the proxy too (no leak), ' +
184
+ 'socks5://host:1080 allows local DNS. A user:pass@ prefix is allowed.',
185
+ ),
186
+ // Modelled as a `viewport` boolean so incur's `--no-<flag>` negation gives the
187
+ // task-mandated `--no-viewport`: passing `--no-viewport` sets `viewport=false`
188
+ // (i.e. noViewport=true). Absent => undefined => core decides the default
189
+ // (no-viewport defaults ON under --stealth). Pass `--viewport` to force the
190
+ // fixed emulated viewport even under stealth.
191
+ viewport: z
192
+ .boolean()
193
+ .optional()
194
+ .describe(
195
+ 'Emulate a fixed viewport. Use --no-viewport to let the real browser ' +
196
+ 'window drive its own size (a hardening tweak Patchright recommends). ' +
197
+ 'When unset, --no-viewport behaviour defaults ON under --stealth. ' +
198
+ 'Reduces but does not eliminate detection.',
199
+ ),
164
200
  });
165
201
 
166
202
  /** Resolve the {@link LaunchPolicy} from the shared stealth option fields. */
167
203
  function launchPolicyFrom(options: {
168
204
  stealth?: boolean;
169
205
  'use-system-browser'?: string;
206
+ viewport?: boolean;
207
+ proxy?: string;
170
208
  }): LaunchPolicy {
171
209
  return {
172
210
  stealth: options.stealth === true,
@@ -175,6 +213,15 @@ function launchPolicyFrom(options: {
175
213
  options['use-system-browser'] !== ''
176
214
  ? options['use-system-browser']
177
215
  : undefined,
216
+ // Tri-state: `viewport` undefined leaves core's (stealth-driven) default;
217
+ // `--no-viewport` (viewport=false) => noViewport:true; `--viewport` => false.
218
+ // Only forward when the flag was given.
219
+ ...(options.viewport !== undefined ? {noViewport: !options.viewport} : {}),
220
+ // Only forward --proxy when given, so the policy object stays minimal (the
221
+ // `serve` wiring tests assert it by exact shape).
222
+ ...(options.proxy !== undefined && options.proxy !== ''
223
+ ? {proxy: options.proxy}
224
+ : {}),
178
225
  };
179
226
  }
180
227
 
@@ -343,6 +390,8 @@ export function createCli(deps: CliDeps = {}) {
343
390
  headed: z.boolean(),
344
391
  stealth: z.boolean(),
345
392
  systemBrowser: z.string().optional(),
393
+ noViewport: z.boolean().optional(),
394
+ proxy: z.string().optional(),
346
395
  }),
347
396
  async run(c) {
348
397
  try {
@@ -364,6 +413,10 @@ export function createCli(deps: CliDeps = {}) {
364
413
  ...(policy.systemBrowser !== undefined
365
414
  ? {systemBrowser: policy.systemBrowser}
366
415
  : {}),
416
+ ...(policy.noViewport !== undefined
417
+ ? {noViewport: policy.noViewport}
418
+ : {}),
419
+ ...(policy.proxy !== undefined ? {proxy: policy.proxy} : {}),
367
420
  },
368
421
  {
369
422
  cta: {
@@ -822,6 +875,10 @@ async function defaultServeSession(
822
875
  const launch = new PlaywrightLaunchTransport(home, [], {
823
876
  stealth: launchPolicy.stealth,
824
877
  systemBrowser: launchPolicy.systemBrowser,
878
+ ...(launchPolicy.noViewport !== undefined
879
+ ? {noViewport: launchPolicy.noViewport}
880
+ : {}),
881
+ ...(launchPolicy.proxy !== undefined ? {proxy: launchPolicy.proxy} : {}),
825
882
  });
826
883
  const attach = new PlaywrightAttachTransport();
827
884
  const transport: Transport = {
package/src/errors.ts CHANGED
@@ -2,6 +2,7 @@ import {
2
2
  isControllerError,
3
3
  MissingBrowserBinaryError,
4
4
  MissingStealthDependencyError,
5
+ InvalidProxyError,
5
6
  MissingProfileError,
6
7
  AttachNotChromiumError,
7
8
  AttachNoContextError,
@@ -52,6 +53,10 @@ export function fixCommandFor(error: ControllerError, binary: string): string {
52
53
  // is absent. Name the package from the typed error so the install command
53
54
  // is ready to run; we never silently fall back to vanilla Playwright.
54
55
  return `pnpm add ${(error as MissingStealthDependencyError).dependency}`;
56
+ case 'invalid-proxy':
57
+ // The --proxy value could not be parsed into a SOCKS proxy. Show the
58
+ // expected URL shape; socks5h tunnels DNS too (no leak).
59
+ return `${binary} serve --proxy socks5h://host:1080 (or socks5://user:pass@host:1080)`;
55
60
  case 'missing-profile':
56
61
  // A profile is created by the headed `setup-profile` flow (the ONE place
57
62
  // a profile dir is created — see core's MissingProfileError). Name the
@@ -112,6 +117,7 @@ export function mapControllerError(
112
117
  export {
113
118
  MissingBrowserBinaryError,
114
119
  MissingStealthDependencyError,
120
+ InvalidProxyError,
115
121
  MissingProfileError,
116
122
  AttachNotChromiumError,
117
123
  AttachNoContextError,