pi-browser-use 0.4.4 → 0.5.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 +22 -8
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -3
- package/dist/index.js.map +1 -1
- package/dist/tool-augment.d.ts +5 -0
- package/dist/tool-augment.d.ts.map +1 -1
- package/dist/tool-augment.js +19 -0
- package/dist/tool-augment.js.map +1 -1
- package/package.json +1 -1
- package/skills/auth-bootstrap/SKILL.md +45 -0
- package/skills/browser-policy/SKILL.md +5 -3
package/README.md
CHANGED
|
@@ -26,21 +26,29 @@ Settings key is `pi-browser-use` in `~/.pi/agent/settings.json` (user) or `.pi/s
|
|
|
26
26
|
```json
|
|
27
27
|
{
|
|
28
28
|
"pi-browser-use": {
|
|
29
|
-
"
|
|
30
|
-
"
|
|
29
|
+
"mode": "fresh",
|
|
30
|
+
"headed": false,
|
|
31
|
+
"visionModel": { "provider": "openai", "model": "gpt-4o" }
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
```
|
|
34
35
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
36
|
+
| `mode` | Behavior |
|
|
37
|
+
| ----------------- | ----------------------------------------------------------- |
|
|
38
|
+
| `fresh` (default) | Isolated clean room, thrown away each session |
|
|
39
|
+
| `persistent` | Saved profile with your logins (`~/.pi/browser-profile`) |
|
|
40
|
+
| `existing` | Attach to your running Chrome — intrusive, avoid by default |
|
|
41
|
+
|
|
42
|
+
`headed: true` shows the window (both modes default headless); `existing` is always headed. `visionModel` enables `browser_analyze_screenshot`; omit it and the tool stays unregistered.
|
|
40
43
|
|
|
41
44
|
All browser behavior plus the policy skill in one install; `.pi/settings.json` is purely for overrides.
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
<details>
|
|
47
|
+
<summary>Advanced: full option reference (upstream parity)</summary>
|
|
48
|
+
|
|
49
|
+
`mode` overrides `sessionMode`/`headless` when present; `headed` overrides `headless`.
|
|
50
|
+
|
|
51
|
+
### Full option reference (advanced)
|
|
44
52
|
|
|
45
53
|
| Option | Type | Default | Description |
|
|
46
54
|
| ---------------------- | ---------- | ---------- | ------------------------------------------------------------------------------ |
|
|
@@ -61,6 +69,8 @@ All browser behavior plus the policy skill in one install; `.pi/settings.json` i
|
|
|
61
69
|
| `redactNetworkHeaders` | `boolean` | `true` | Strip sensitive headers from network results |
|
|
62
70
|
| `acceptInsecureCerts` | `boolean` | `false` | Ignore self-signed/expired certificates |
|
|
63
71
|
|
|
72
|
+
</details>
|
|
73
|
+
|
|
64
74
|
First-class `chromeArgs` only apply when `chrome-devtools-mcp` launches Chrome itself — never with `autoConnect`/`browserUrl`. On macOS `--start-minimized` is ignored; only `headless: true` truly hides the window.
|
|
65
75
|
|
|
66
76
|
Hosts where `process.execPath` is not a directly executable Node runtime can set `PI_BROWSER_USE_NODE` to the Node command used for the MCP subprocess.
|
|
@@ -86,6 +96,10 @@ browser_save_artifact({ "pageId": 1, "kind": "screenshot", "annotate": true })
|
|
|
86
96
|
# 6: (394, 298) button "Create workspace"
|
|
87
97
|
```
|
|
88
98
|
|
|
99
|
+
### `browser_switch_mode`
|
|
100
|
+
|
|
101
|
+
Switch backends without restarting: `fresh` (isolated clean room) or `persistent` (saved profile with your logins). Both default to headless — pass `headed: true` to watch. Tabs do not transfer; call `browser_list_pages` after switching. Prefer fresh; escalate to persistent only on login walls.
|
|
102
|
+
|
|
89
103
|
### `browser_doctor`
|
|
90
104
|
|
|
91
105
|
Self-diagnostics: effective mode, whether this session launches its own Chrome, profile health, and upstream tool availability. Run it first when browser tools misbehave — it touches no pages.
|
package/dist/config.d.ts
CHANGED
|
@@ -5,8 +5,21 @@ export interface VisionModelConfig {
|
|
|
5
5
|
provider: string;
|
|
6
6
|
model: string;
|
|
7
7
|
}
|
|
8
|
+
/** Simple mode selector. Takes precedence over sessionMode/headless when set. */
|
|
9
|
+
export type BrowserModeOption = 'fresh' | 'persistent' | 'existing';
|
|
8
10
|
/** Configuration for the chrome-devtools-mcp subprocess. Same settings key as before: "pi-browser-use". */
|
|
9
11
|
export interface BrowserUseConfig {
|
|
12
|
+
/**
|
|
13
|
+
* Simple facade: fresh (isolated clean room), persistent (saved profile
|
|
14
|
+
* with your logins), existing (attach to your running Chrome). Overrides
|
|
15
|
+
* sessionMode and headless/headed below when present.
|
|
16
|
+
*/
|
|
17
|
+
mode?: BrowserModeOption;
|
|
18
|
+
/**
|
|
19
|
+
* Show the browser window. Default false (headless) for fresh and persistent;
|
|
20
|
+
* existing is always headed. Overrides headless below when present.
|
|
21
|
+
*/
|
|
22
|
+
headed?: boolean;
|
|
10
23
|
sessionMode?: BrowserSessionMode;
|
|
11
24
|
headless?: boolean;
|
|
12
25
|
channel?: 'canary' | 'dev' | 'beta' | 'stable';
|
|
@@ -39,6 +52,15 @@ export interface BrowserUseConfig {
|
|
|
39
52
|
/** Raw escape hatch: extra CLI flags forwarded verbatim to chrome-devtools-mcp. */
|
|
40
53
|
extraArgs?: string[];
|
|
41
54
|
}
|
|
55
|
+
/** In-session backend target for browser_switch_mode. */
|
|
56
|
+
export type BrowserMode = 'fresh' | 'persistent';
|
|
57
|
+
/**
|
|
58
|
+
* Build the config for a mode switch from the session base config.
|
|
59
|
+
* fresh means an isolated clean room; persistent means the saved profile
|
|
60
|
+
* (headless unless headed is requested, so logins work without popups).
|
|
61
|
+
* Attach fields never carry across modes.
|
|
62
|
+
*/
|
|
63
|
+
export declare function resolveModeTarget(base: BrowserUseConfig, mode: BrowserMode, headed?: boolean): BrowserUseConfig;
|
|
42
64
|
/** Merge user config over fresh-headless defaults. */
|
|
43
65
|
export declare function resolveConfig(config?: BrowserUseConfig): BrowserUseConfig;
|
|
44
66
|
/** Convert config into CLI flags for the chrome-devtools-mcp subprocess. */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,QAA4C,CAAA;AAE5E,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAA;AAEvE,4GAA4G;AAC5G,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,2GAA2G;AAC3G,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iKAAiK;IACjK,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAyBD,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,QAA4C,CAAA;AAE5E,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAA;AAEvE,4GAA4G;AAC5G,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAA;AAEnE,2GAA2G;AAC3G,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iKAAiK;IACjK,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAyBD,yDAAyD;AACzD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,YAAY,CAAA;AAEhD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,WAAW,EACjB,MAAM,UAAQ,GACb,gBAAgB,CAsBlB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CA4CzE;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAqC/D"}
|
package/dist/config.js
CHANGED
|
@@ -23,9 +23,51 @@ const DEFAULTS = {
|
|
|
23
23
|
redactNetworkHeaders: true,
|
|
24
24
|
acceptInsecureCerts: false,
|
|
25
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Build the config for a mode switch from the session base config.
|
|
28
|
+
* fresh means an isolated clean room; persistent means the saved profile
|
|
29
|
+
* (headless unless headed is requested, so logins work without popups).
|
|
30
|
+
* Attach fields never carry across modes.
|
|
31
|
+
*/
|
|
32
|
+
export function resolveModeTarget(base, mode, headed = false) {
|
|
33
|
+
const { browserUrl: _browserUrl, wsEndpoint: _wsEndpoint, autoConnect: _autoConnect, ...rest } = base;
|
|
34
|
+
void _browserUrl;
|
|
35
|
+
void _wsEndpoint;
|
|
36
|
+
void _autoConnect;
|
|
37
|
+
if (mode === 'fresh') {
|
|
38
|
+
const { userDataDir: _userDataDir, ...freshRest } = rest;
|
|
39
|
+
void _userDataDir;
|
|
40
|
+
return { ...freshRest, sessionMode: 'isolated', headless: !headed, isolated: true };
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
...rest,
|
|
44
|
+
sessionMode: 'persistent',
|
|
45
|
+
headless: !headed,
|
|
46
|
+
isolated: false,
|
|
47
|
+
userDataDir: base.userDataDir ?? DEFAULT_PROFILE_DIR,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
26
50
|
/** Merge user config over fresh-headless defaults. */
|
|
27
51
|
export function resolveConfig(config) {
|
|
28
|
-
const
|
|
52
|
+
const { mode, headed, ...rest } = config ?? {};
|
|
53
|
+
const resolved = { ...DEFAULTS, ...rest };
|
|
54
|
+
if (mode !== undefined) {
|
|
55
|
+
// The simple facade wins over sessionMode/headless when present.
|
|
56
|
+
if (mode === 'fresh') {
|
|
57
|
+
resolved.sessionMode = 'isolated';
|
|
58
|
+
resolved.headless = !(headed ?? false);
|
|
59
|
+
}
|
|
60
|
+
else if (mode === 'persistent') {
|
|
61
|
+
resolved.sessionMode = 'persistent';
|
|
62
|
+
resolved.headless = !(headed ?? false);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
resolved.sessionMode = 'existing';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (headed !== undefined) {
|
|
69
|
+
resolved.headless = !headed;
|
|
70
|
+
}
|
|
29
71
|
if (resolved.allowedUrlPattern?.length && resolved.blockedUrlPattern?.length) {
|
|
30
72
|
throw new Error('allowedUrlPattern and blockedUrlPattern cannot be used together');
|
|
31
73
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAkCzD,UAAU,aAAa;IACrB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAA;IAChD,mBAAmB,CACjB,KAAK,EAAE,OAAO,GACb,OAAO,CACR;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAC/F,CAAA;CACF;AAED,UAAU,aAAa;IACrB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,UAAU,EAAE;IACV,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,OAAO,CAAA;QACnB,OAAO,EAAE,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,OAAO,EAClB,GAAG,CAAC,EAAE,aAAa,KAChB,OAAO,CAAC;YACX,OAAO,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;YACjF,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,OAAO,CAAC,EAAE,SAAS,CAAA;SACpB,CAAC,CAAA;KACH,GAAG,IAAI,CAAA;IACR,EAAE,CACA,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GACzF,IAAI,CAAA;CACR;AA8BD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,EAAE,EAAE,QA4TjD"}
|
package/dist/index.js
CHANGED
|
@@ -3,9 +3,9 @@ import { homedir } from 'node:os';
|
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { Type } from 'typebox';
|
|
5
5
|
import { DevToolsClient } from './client.js';
|
|
6
|
-
import { resolveConfig } from './config.js';
|
|
6
|
+
import { resolveConfig, resolveModeTarget, } from './config.js';
|
|
7
7
|
import { isProjectTrusted, loadConfig } from './settings.js';
|
|
8
|
-
import { augmentToolDescription, extractTextContent, looksOverlayBlocked, OVERLAY_RECOVERABLE, postProcessToolResult, } from './tool-augment.js';
|
|
8
|
+
import { augmentToolDescription, extractTextContent, looksLikeLoginWall, looksOverlayBlocked, OVERLAY_RECOVERABLE, postProcessToolResult, } from './tool-augment.js';
|
|
9
9
|
import { pickImageData, resolveArtifactTarget } from './artifacts.js';
|
|
10
10
|
import { CLEANUP_ANNOTATIONS, formatAnnotatedMap, INJECT_ANNOTATIONS, parseAnnotatedElements, } from './annotate.js';
|
|
11
11
|
import { diagnose, formatDoctorReport } from './doctor.js';
|
|
@@ -67,6 +67,26 @@ function toToolContent(result, originalName) {
|
|
|
67
67
|
export default function browserUseExtension(pi) {
|
|
68
68
|
let config;
|
|
69
69
|
let client;
|
|
70
|
+
// Tracks which identity the live backend holds, so results can suggest
|
|
71
|
+
// escalation. 'custom' covers user-configured attach setups we did not pick.
|
|
72
|
+
let currentMode = 'fresh';
|
|
73
|
+
function describeMode() {
|
|
74
|
+
if (config?.sessionMode === 'isolated')
|
|
75
|
+
return 'fresh';
|
|
76
|
+
if (config?.sessionMode === 'persistent')
|
|
77
|
+
return 'persistent';
|
|
78
|
+
return 'custom';
|
|
79
|
+
}
|
|
80
|
+
function loginWallHint(url, text) {
|
|
81
|
+
if (currentMode !== 'fresh')
|
|
82
|
+
return '';
|
|
83
|
+
if (!looksLikeLoginWall(url, text))
|
|
84
|
+
return '';
|
|
85
|
+
return '\n\nHint: this looks like a login wall in a fresh (logged-out) session. If the page needs your identity, call browser_switch_mode({"mode": "persistent"}) — a human must complete any SSO, 2FA, or passkey step, ideally headed.';
|
|
86
|
+
}
|
|
87
|
+
function pageUrlFromSnapshot(text) {
|
|
88
|
+
return text.match(/\burl="([^"]+)"/)?.[1];
|
|
89
|
+
}
|
|
70
90
|
async function ensureConnected(signal) {
|
|
71
91
|
if (!client)
|
|
72
92
|
throw new Error('browser-use: session not started');
|
|
@@ -107,7 +127,19 @@ export default function browserUseExtension(pi) {
|
|
|
107
127
|
// Fall through to the original result below.
|
|
108
128
|
}
|
|
109
129
|
}
|
|
110
|
-
|
|
130
|
+
const toolContent = toToolContent(result, originalName);
|
|
131
|
+
if (!toolContent.isError &&
|
|
132
|
+
(originalName === 'navigate_page' || originalName === 'take_snapshot')) {
|
|
133
|
+
const url = originalName === 'navigate_page' && typeof params.url === 'string'
|
|
134
|
+
? params.url
|
|
135
|
+
: pageUrlFromSnapshot(extractTextContent(result.content));
|
|
136
|
+
const hint = loginWallHint(url, extractTextContent(result.content));
|
|
137
|
+
const first = toolContent.content[0];
|
|
138
|
+
if (hint && first && first.text !== undefined) {
|
|
139
|
+
first.text += hint;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return { ...toolContent, details: undefined };
|
|
111
143
|
},
|
|
112
144
|
});
|
|
113
145
|
}
|
|
@@ -198,6 +230,48 @@ export default function browserUseExtension(pi) {
|
|
|
198
230
|
},
|
|
199
231
|
});
|
|
200
232
|
}
|
|
233
|
+
function registerSwitchModeTool() {
|
|
234
|
+
pi.registerTool({
|
|
235
|
+
name: `${TOOL_PREFIX}switch_mode`,
|
|
236
|
+
label: `${TOOL_PREFIX}switch_mode`,
|
|
237
|
+
description: 'Switch the browser backend without restarting: "fresh" is an isolated clean room, "persistent" keeps the saved profile with your logins. Both default to headless; pass headed true to watch. Tabs do not transfer; call browser_list_pages after switching. Prefer fresh; escalate to persistent only on login walls.',
|
|
238
|
+
parameters: Type.Object({
|
|
239
|
+
mode: Type.Union([Type.Literal('fresh'), Type.Literal('persistent')]),
|
|
240
|
+
headed: Type.Optional(Type.Boolean({
|
|
241
|
+
description: 'Show the browser window. Default is headless — everything works with no popups.',
|
|
242
|
+
})),
|
|
243
|
+
}),
|
|
244
|
+
async execute(_toolCallId, params, signal) {
|
|
245
|
+
const mode = params.mode === 'persistent' ? 'persistent' : 'fresh';
|
|
246
|
+
const next = resolveConfig(resolveModeTarget(config ?? {}, mode, params.headed === true));
|
|
247
|
+
if (client) {
|
|
248
|
+
try {
|
|
249
|
+
await client.close();
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
// A half-dead transport must not block the switch.
|
|
253
|
+
}
|
|
254
|
+
client = undefined;
|
|
255
|
+
}
|
|
256
|
+
prepareBrowserProfile(next);
|
|
257
|
+
client = new DevToolsClient(next);
|
|
258
|
+
await client.ensureReady(signal);
|
|
259
|
+
config = next;
|
|
260
|
+
currentMode = mode;
|
|
261
|
+
return {
|
|
262
|
+
content: [
|
|
263
|
+
{
|
|
264
|
+
type: 'text',
|
|
265
|
+
text: mode === 'fresh'
|
|
266
|
+
? `Switched to a fresh isolated browser (${next.headless === false ? 'headed' : 'headless'}). Previous tabs are gone; call browser_list_pages to start.`
|
|
267
|
+
: `Switched to the persistent profile (${next.headless === false ? 'headed' : 'headless'}). Previous tabs are gone; call browser_list_pages to start.`,
|
|
268
|
+
},
|
|
269
|
+
],
|
|
270
|
+
details: undefined,
|
|
271
|
+
};
|
|
272
|
+
},
|
|
273
|
+
});
|
|
274
|
+
}
|
|
201
275
|
function registerDoctorTool() {
|
|
202
276
|
pi.registerTool({
|
|
203
277
|
name: `${TOOL_PREFIX}doctor`,
|
|
@@ -242,11 +316,13 @@ export default function browserUseExtension(pi) {
|
|
|
242
316
|
}
|
|
243
317
|
pi.on('session_start', async (_event, ctx) => {
|
|
244
318
|
config = resolveConfig(loadConfig({ cwd: ctx.cwd, projectTrusted: isProjectTrusted(ctx) }));
|
|
319
|
+
currentMode = describeMode();
|
|
245
320
|
prepareBrowserProfile(config);
|
|
246
321
|
client = new DevToolsClient(config);
|
|
247
322
|
await registerUpstreamTools();
|
|
248
323
|
registerSaveArtifactTool();
|
|
249
324
|
registerDoctorTool();
|
|
325
|
+
registerSwitchModeTool();
|
|
250
326
|
if (config.visionModel) {
|
|
251
327
|
await registerVisionTool(config.visionModel);
|
|
252
328
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tool-augment.d.ts
CHANGED
|
@@ -2,5 +2,10 @@ export declare function augmentToolDescription(prefixedName: string, description
|
|
|
2
2
|
export declare function postProcessToolResult(originalName: string, text: string): string;
|
|
3
3
|
export declare const OVERLAY_RECOVERABLE: Set<string>;
|
|
4
4
|
export declare function looksOverlayBlocked(text: string): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Conservative login-wall detection: URL match, or at least two independent
|
|
7
|
+
* content signals (a lone "Sign in" link on a homepage must not trigger).
|
|
8
|
+
*/
|
|
9
|
+
export declare function looksLikeLoginWall(url: string | undefined, text: string): boolean;
|
|
5
10
|
export declare function extractTextContent(content: unknown): string;
|
|
6
11
|
//# sourceMappingURL=tool-augment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-augment.d.ts","sourceRoot":"","sources":["../src/tool-augment.ts"],"names":[],"mappings":"AASA,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGxF;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQhF;AAID,eAAO,MAAM,mBAAmB,aAS9B,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAS3D"}
|
|
1
|
+
{"version":3,"file":"tool-augment.d.ts","sourceRoot":"","sources":["../src/tool-augment.ts"],"names":[],"mappings":"AASA,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGxF;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQhF;AAID,eAAO,MAAM,mBAAmB,aAS9B,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAcD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAS3D"}
|
package/dist/tool-augment.js
CHANGED
|
@@ -33,6 +33,25 @@ export const OVERLAY_RECOVERABLE = new Set([
|
|
|
33
33
|
export function looksOverlayBlocked(text) {
|
|
34
34
|
return /overlay|obscured|intercept|behind another element|not clickable|not visible/i.test(text);
|
|
35
35
|
}
|
|
36
|
+
const LOGIN_URL = /(^|\/)(login|log-in|signin|sign-in|auth|authenticate|challenge|verify|2fa|totp|sso)(\/|$|[?#])/i;
|
|
37
|
+
const LOGIN_CONTENT = [
|
|
38
|
+
/verifying you are human/i,
|
|
39
|
+
/just a moment/i,
|
|
40
|
+
/cf-turnstile/i,
|
|
41
|
+
/log in to continue/i,
|
|
42
|
+
/sign in to continue/i,
|
|
43
|
+
/two-factor authentication/i,
|
|
44
|
+
/2-step verification/i,
|
|
45
|
+
];
|
|
46
|
+
/**
|
|
47
|
+
* Conservative login-wall detection: URL match, or at least two independent
|
|
48
|
+
* content signals (a lone "Sign in" link on a homepage must not trigger).
|
|
49
|
+
*/
|
|
50
|
+
export function looksLikeLoginWall(url, text) {
|
|
51
|
+
if (url && LOGIN_URL.test(url))
|
|
52
|
+
return true;
|
|
53
|
+
return LOGIN_CONTENT.filter((pattern) => pattern.test(text)).length >= 2;
|
|
54
|
+
}
|
|
36
55
|
export function extractTextContent(content) {
|
|
37
56
|
if (!Array.isArray(content))
|
|
38
57
|
return '';
|
package/dist/tool-augment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-augment.js","sourceRoot":"","sources":["../src/tool-augment.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAA2B;IACpC,aAAa,EACX,mGAAmG;IACrG,YAAY,EAAE,+EAA+E;IAC7F,iBAAiB,EAAE,2DAA2D;IAC9E,qBAAqB,EAAE,gEAAgE;IACvF,qBAAqB,EAAE,0DAA0D;CAClF,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAoB,EAAE,WAAmB;IAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;IAChC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAoB,EAAE,IAAY;IACtE,IAAI,YAAY,KAAK,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,GAAG,IAAI,oGAAoG,CAAA;IACpH,CAAC;IACD,IAAI,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClF,OAAO,GAAG,IAAI,kFAAkF,CAAA;IAClG,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,0EAA0E;AAC1E,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACzC,OAAO;IACP,UAAU;IACV,MAAM;IACN,WAAW;IACX,WAAW;IACX,WAAW;IACX,OAAO;IACP,MAAM;CACP,CAAC,CAAA;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,8EAA8E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO,OAAO;SACX,MAAM,CACL,CAAC,IAAI,EAA2C,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAC7F;SACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;SACvE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAc,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"tool-augment.js","sourceRoot":"","sources":["../src/tool-augment.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAA2B;IACpC,aAAa,EACX,mGAAmG;IACrG,YAAY,EAAE,+EAA+E;IAC7F,iBAAiB,EAAE,2DAA2D;IAC9E,qBAAqB,EAAE,gEAAgE;IACvF,qBAAqB,EAAE,0DAA0D;CAClF,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAoB,EAAE,WAAmB;IAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;IAChC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAoB,EAAE,IAAY;IACtE,IAAI,YAAY,KAAK,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,GAAG,IAAI,oGAAoG,CAAA;IACpH,CAAC;IACD,IAAI,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClF,OAAO,GAAG,IAAI,kFAAkF,CAAA;IAClG,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,0EAA0E;AAC1E,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACzC,OAAO;IACP,UAAU;IACV,MAAM;IACN,WAAW;IACX,WAAW;IACX,WAAW;IACX,OAAO;IACP,MAAM;CACP,CAAC,CAAA;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,8EAA8E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClG,CAAC;AAED,MAAM,SAAS,GACb,iGAAiG,CAAA;AACnG,MAAM,aAAa,GAAG;IACpB,0BAA0B;IAC1B,gBAAgB;IAChB,eAAe;IACf,qBAAqB;IACrB,sBAAsB;IACtB,4BAA4B;IAC5B,sBAAsB;CACvB,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAuB,EAAE,IAAY;IACtE,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO,OAAO;SACX,MAAM,CACL,CAAC,IAAI,EAA2C,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAC7F;SACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;SACvE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAc,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-browser-use",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Opinionated browser-use for the Pi coding agent, powered by chrome-devtools-mcp (not Playwright). Fresh headless by default, authenticated persistent profile opt-in, CLI-first policy bundled.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: auth-bootstrap
|
|
3
|
+
description: "Log the persistent browser profile in for the first time. Use when the persistent profile hits a login wall, after switching to a fresh machine, or when SSO, 2FA, or passkeys need a human."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Auth Bootstrap
|
|
7
|
+
|
|
8
|
+
The persistent profile starts empty. Log in once per site; cookies persist across sessions after that. The agent must never see your passwords — you type, it waits.
|
|
9
|
+
|
|
10
|
+
## Recommended flow: headed once
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
browser_switch_mode({ "mode": "persistent", "headed": true })
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
1. A visible Chrome window opens on the persistent profile.
|
|
17
|
+
2. **You** navigate and log in normally — including SSO, 2FA, and passkeys.
|
|
18
|
+
3. Tell the agent you're done. It verifies (account page loads logged-in) and you close the window or it switches back to fresh.
|
|
19
|
+
|
|
20
|
+
Headless cannot do this step: 2FA apps, security keys, and most SSO device checks need a human and often a visible window.
|
|
21
|
+
|
|
22
|
+
## Power option: clone your daily profile
|
|
23
|
+
|
|
24
|
+
Close **all** Chrome windows first (running Chrome locks the profile), then:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
cp -R ~/Library/Application\ Support/Google/Chrome/Default ~/.pi/browser-profile
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Same macOS user, so Keychain-bound cookies and passwords decrypt fine. Prefer the headed-once flow unless you have dozens of logins — clones carry sync state, extensions, and version skew that cause strange breakage. Never copy while Chrome runs; you'll corrupt both ends.
|
|
31
|
+
|
|
32
|
+
## What not to do
|
|
33
|
+
|
|
34
|
+
- **Paste passwords or TOTP codes into chat.** The agent never needs them — type directly in the headed window.
|
|
35
|
+
- **Export/import individual cookies** for HttpOnly session cookies. The tooling (keychain decryption, cookie-store surgery) is fragile; a two-minute headed login beats an hour of debugging.
|
|
36
|
+
- **Reuse the persistent profile for hostile links.** Unknown URLs go through `fresh` — no credentials present, nothing to steal.
|
|
37
|
+
|
|
38
|
+
## Verify
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
browser_navigate_page({ "pageId": <id>, "url": "https://github.com/settings/profile" })
|
|
42
|
+
browser_take_snapshot({ "pageId": <id> })
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Your username on the page means the profile is live. If a site challenges headless later (bot checks sometimes do), redo that site with `headed: true` — same profile, same cookies.
|
|
@@ -15,9 +15,11 @@ description: "Browser-use policy for Pi agents. Use before any browser_* tool ca
|
|
|
15
15
|
|
|
16
16
|
## Session modes
|
|
17
17
|
|
|
18
|
-
- **Default: fresh headless** (`
|
|
19
|
-
- **Authenticated profile** (`
|
|
20
|
-
- **Existing Chrome** (`
|
|
18
|
+
- **Default: fresh headless** (`mode: fresh`). Ephemeral profile, no window, never steals focus. Use for public pages and smoke checks.
|
|
19
|
+
- **Authenticated profile** (`mode: persistent`). Log in once in `~/.pi/browser-profile`; cookies persist. Use when the task needs your identity (private repos, Cloudflare dashboard). Both modes default headless — pass `headed: true` to watch, and warn the user before any headed launch.
|
|
20
|
+
- **Existing Chrome** (`mode: existing`) is intrusive (drives the user's daily browser, sees all tabs). Avoid unless the user explicitly asks.
|
|
21
|
+
- **Switch, don't restart**: `browser_switch_mode` moves between fresh and persistent mid-session. Start fresh; escalate to persistent on login walls; drop back to fresh for clean-room checks.
|
|
22
|
+
- **Login walls are detected**: navigation and snapshot results in a fresh session name the wall and suggest the switch (a human still completes SSO/2FA).
|
|
21
23
|
- **Visual analysis** (`browser_analyze_screenshot`, only when `visionModel` is configured) is for canvas/WebGL scenes and coordinate clicks the tree cannot describe — not a substitute for reading the snapshot first.
|
|
22
24
|
|
|
23
25
|
`--chrome-arg` flags only apply when `chrome-devtools-mcp` launches Chrome itself — never with `autoConnect`/`browserUrl`. On macOS `--start-minimized` is ignored; only `headless: true` truly hides the window.
|