pi-agent-browser-native 0.2.41 → 0.2.42

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/CHANGELOG.md CHANGED
@@ -4,17 +4,23 @@
4
4
 
5
5
  No changes yet.
6
6
 
7
+ ## 0.2.42 - 2026-06-03
8
+
9
+ ### Fixed
10
+
11
+ - Corrected package-config docs to show the package helper only through `npm exec` examples or direct JSON edits, because `pi install npm:pi-agent-browser-native` loads the Pi package but does not add package bins to the user's shell `PATH`.
12
+
7
13
  ## 0.2.41 - 2026-06-03
8
14
 
9
15
  ### Added
10
16
 
11
- - Added Exa support to the optional `agent_browser_web_search` companion tool. When both Exa and Brave credentials are configured, `provider: "auto"` now prefers Exa by default; use `pi-agent-browser-config web-search prefer brave --global` or `webSearch.preferredProvider: "brave"` to keep Brave as the default provider.
17
+ - Added Exa support to the optional `agent_browser_web_search` companion tool. When both Exa and Brave credentials are configured, `provider: "auto"` now prefers Exa by default; set `webSearch.preferredProvider: "brave"` in config to keep Brave as the default provider.
12
18
  - Added `webSearch.enabled: false` to disable the companion search tool even when `EXA_API_KEY` or `BRAVE_API_KEY` is present.
13
19
 
14
20
  ### Changed
15
21
 
16
22
  - Tightened project-local web-search credential config: `.pi/config/pi-agent-browser-native/config.json` may only reference the matching provider env var (`$EXA_API_KEY` / `${EXA_API_KEY}` for Exa, `$BRAVE_API_KEY` / `${BRAVE_API_KEY}` for Brave). Project-local custom env aliases now fail config validation; move aliases to global config or `PI_AGENT_BROWSER_CONFIG`.
17
- - Updated `pi-agent-browser-config web-search set-key`, `set-command`, and `clear` to require `--provider`; `set-env` still infers the provider from `EXA_API_KEY` or `BRAVE_API_KEY`.
23
+ - Updated package-config helper actions `web-search set-key`, `set-command`, and `clear` to require `--provider`; `set-env` still infers the provider from `EXA_API_KEY` or `BRAVE_API_KEY`.
18
24
  - Browser profile/executable prompt guidance now comes only from trusted global config or `PI_AGENT_BROWSER_CONFIG`; project-local browser config is status-only for host profile/executable launch guidance and cannot shadow trusted global guidance.
19
25
  - `--executable-path` is treated as launch-scoped, so using it after an active implicit browser session returns fresh-session recovery guidance instead of being quietly ignored by session reuse.
20
26
 
@@ -29,7 +35,7 @@ No changes yet.
29
35
 
30
36
  ### Added
31
37
 
32
- - Added Pi-scoped `pi-agent-browser-native` package config at `~/.pi/config/pi-agent-browser-native/config.json`, `.pi/config/pi-agent-browser-native/config.json`, and the `PI_AGENT_BROWSER_CONFIG` override, including the `pi-agent-browser-config` helper for redacted setup/status and conservative browser profile hints.
38
+ - Added Pi-scoped `pi-agent-browser-native` package config at `~/.pi/config/pi-agent-browser-native/config.json`, `.pi/config/pi-agent-browser-native/config.json`, and the `PI_AGENT_BROWSER_CONFIG` override, including a package helper for redacted setup/status and conservative browser profile hints.
33
39
  - Added the optional Brave-backed `agent_browser_web_search` companion tool, registered only when a usable Brave credential source is configured or resolvable, with compact normalized results for current/live web information.
34
40
 
35
41
  ### Changed
package/README.md CHANGED
@@ -184,7 +184,7 @@ cat > ~/.pi/config/pi-agent-browser-native/config.json <<'JSON'
184
184
  JSON
185
185
  ```
186
186
 
187
- If you prefer the helper, run it through npm unless you know `pi-agent-browser-config` is already on your `PATH`:
187
+ `pi install` does not add package helper binaries to your shell `PATH`. Use direct JSON config edits, or run the helper only through `npm exec`:
188
188
 
189
189
  ```bash
190
190
  # Store env-var references in global config.
@@ -66,7 +66,7 @@ Pi docs use `settings.json` for package/resource loading and filtering, not arbi
66
66
  - project-local: `.pi/config/pi-agent-browser-native/config.json`
67
67
  - explicit override: `PI_AGENT_BROWSER_CONFIG=/path/to/config.json`
68
68
 
69
- Config layers merge in that order: global, project, override. The shared policy module (`extensions/agent-browser/lib/config-policy.js`) owns provider descriptors, environment variable names, config keys, project-local credential safety, layer validation/merge, redacted status projection, and credential summaries for both runtime config loading and the `pi-agent-browser-config` CLI. The config reader accepts v1 fields for `webSearch.enabled`, `webSearch.preferredProvider`, `webSearch.exaApiKey`, `webSearch.braveApiKey`, and conservative browser defaults such as `browser.defaultProfile` and `browser.executablePath`. Web-search key fields follow Pi model/provider-style value resolution for trusted global/override config: literal values, `$ENV_VAR` / `${ENV_VAR}` interpolation, escapes (`$$`, `$!`), and leading `!command` resolved at request time. Project-local plaintext, interpolation-literal, malformed, and command-backed web-search keys are rejected because project config can be copied, committed, or supplied by a repository; project config may use only the matching provider env ref (`$EXA_API_KEY` / `${EXA_API_KEY}` for Exa, `$BRAVE_API_KEY` / `${BRAVE_API_KEY}` for Brave), so a repository cannot redirect search credentials to arbitrary host env vars. `EXA_API_KEY` and `BRAVE_API_KEY` remain environment fallbacks when no config credential source exists for that provider. Browser default values keep their source scope; profile/executable prompt guidance is emitted only from trusted global or explicit override config, not from project-local config that could steer host profile or executable choices.
69
+ Config layers merge in that order: global, project, override. The shared policy module (`extensions/agent-browser/lib/config-policy.js`) owns provider descriptors, environment variable names, config keys, project-local credential safety, layer validation/merge, redacted status projection, and credential summaries for both runtime config loading and the package config helper. The config reader accepts v1 fields for `webSearch.enabled`, `webSearch.preferredProvider`, `webSearch.exaApiKey`, `webSearch.braveApiKey`, and conservative browser defaults such as `browser.defaultProfile` and `browser.executablePath`. Web-search key fields follow Pi model/provider-style value resolution for trusted global/override config: literal values, `$ENV_VAR` / `${ENV_VAR}` interpolation, escapes (`$$`, `$!`), and leading `!command` resolved at request time. Project-local plaintext, interpolation-literal, malformed, and command-backed web-search keys are rejected because project config can be copied, committed, or supplied by a repository; project config may use only the matching provider env ref (`$EXA_API_KEY` / `${EXA_API_KEY}` for Exa, `$BRAVE_API_KEY` / `${BRAVE_API_KEY}` for Brave), so a repository cannot redirect search credentials to arbitrary host env vars. `EXA_API_KEY` and `BRAVE_API_KEY` remain environment fallbacks when no config credential source exists for that provider. Browser default values keep their source scope; profile/executable prompt guidance is emitted only from trusted global or explicit override config, not from project-local config that could steer host profile or executable choices.
70
70
 
71
71
  `agent_browser_web_search` registration is conditional. `webSearch.enabled: false` disables registration even when environment keys are present, but it is evaluated after config merge. A global disable is the normal user default and can still be overridden by project config or `PI_AGENT_BROWSER_CONFIG`; a project disable applies to one repo; an explicit `PI_AGENT_BROWSER_CONFIG` file with `webSearch.enabled: false` is the highest-priority hard disable for that run. Literal and env-backed sources must resolve at startup; command-backed sources are considered configured without running the command until tool execution, so secret managers do not slow startup or prompt unexpectedly. The tool resolves the selected key lazily, chooses Exa or Brave from available credentials (preferring Exa by default unless `webSearch.preferredProvider` says otherwise), then follows one provider-agnostic execution path through provider adapters for request building, HTTP JSON fetch, response normalization, and provider-specific detail fields. It calls Exa `/search` with highlights or Brave Search and returns compact result details without exposing keys.
72
72
 
@@ -699,7 +699,7 @@ cat > ~/.pi/config/pi-agent-browser-native/config.json <<'JSON'
699
699
  JSON
700
700
  ```
701
701
 
702
- If you prefer the helper, run it through npm unless you know `pi-agent-browser-config` is already on your `PATH`:
702
+ `pi install` does not add package helper binaries to your shell `PATH`. Use direct JSON config edits, or run the helper only through `npm exec`:
703
703
 
704
704
  ```bash
705
705
  npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config paths
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-agent-browser-native",
3
- "version": "0.2.41",
3
+ "version": "0.2.42",
4
4
  "description": "pi extension that exposes agent-browser as a native tool for browser automation",
5
5
  "type": "module",
6
6
  "author": "Mitch Fultz (https://github.com/fitchmultz)",
@@ -38,25 +38,25 @@ class UsageError extends Error {
38
38
  }
39
39
 
40
40
  function usage() {
41
- return `pi-agent-browser-config
41
+ return `pi-agent-browser-native config helper
42
42
 
43
- Usage:
44
- pi-agent-browser-config paths
45
- pi-agent-browser-config show
46
- pi-agent-browser-config web-search status
47
- pi-agent-browser-config web-search set-key --stdin --provider <exa|brave> [--global]
48
- pi-agent-browser-config web-search set-env <ENV_VAR> [--provider brave|exa] [--global|--project]
49
- pi-agent-browser-config web-search set-command <command> --provider <exa|brave> [--global]
50
- pi-agent-browser-config web-search clear --provider <exa|brave|all> [--global|--project]
51
- pi-agent-browser-config web-search prefer <exa|brave|auto> [--global|--project]
52
- pi-agent-browser-config web-search enable [--global|--project]
53
- pi-agent-browser-config web-search disable [--global|--project]
54
- pi-agent-browser-config browser profile status
55
- pi-agent-browser-config browser profile set <name|path> [--policy explicit-only|authenticated-only|always] [--global|--project]
56
- pi-agent-browser-config browser profile clear [--global|--project]
57
- pi-agent-browser-config browser executable status
58
- pi-agent-browser-config browser executable set <path> [--global]
59
- pi-agent-browser-config browser executable clear [--global|--project]
43
+ Usage through npm exec:
44
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config paths
45
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config show
46
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search status
47
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search set-key --stdin --provider <exa|brave> [--global]
48
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search set-env <ENV_VAR> [--provider brave|exa] [--global|--project]
49
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search set-command <command> --provider <exa|brave> [--global]
50
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search clear --provider <exa|brave|all> [--global|--project]
51
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search prefer <exa|brave|auto> [--global|--project]
52
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search enable [--global|--project]
53
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config web-search disable [--global|--project]
54
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config browser profile status
55
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config browser profile set <name|path> [--policy explicit-only|authenticated-only|always] [--global|--project]
56
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config browser profile clear [--global|--project]
57
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config browser executable status
58
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config browser executable set <path> [--global]
59
+ npm exec --yes --package pi-agent-browser-native@latest -- pi-agent-browser-config browser executable clear [--global|--project]
60
60
 
61
61
  Notes:
62
62
  Global config: ~/.pi/config/pi-agent-browser-native/config.json