@btraut/browser-bridge 0.4.3 → 0.6.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/CHANGELOG.md CHANGED
@@ -4,6 +4,54 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on "Keep a Changelog", and this project adheres to Semantic Versioning.
6
6
 
7
+ ## [Unreleased]
8
+
9
+ ### Added
10
+
11
+ _TBD_
12
+
13
+ ### Fixed
14
+
15
+ _TBD_
16
+
17
+ ### Changed
18
+
19
+ _TBD_
20
+
21
+ ## [0.6.0] - 2026-02-09
22
+
23
+ ### Added
24
+
25
+ - Extension options: permissions mode toggle (Granular per-site vs dangerous bypass), with bypass collapsing and ignoring the approved sites allowlist.
26
+
27
+ ## [0.5.0] - 2026-02-09
28
+
29
+ ### Added
30
+
31
+ - `PERMISSION_REQUIRED` error code for soft site-permissions gating.
32
+ - `PERMISSION_DENIED` error code for explicit user declines in the site-permissions prompt.
33
+ - `PERMISSION_PROMPT_TIMEOUT` error code for when a site-permissions approval prompt times out while waiting for user input.
34
+ - Soft site-permissions allowlist with a permission prompt window and an options page to review/revoke approved sites.
35
+ - Extension toolbar menu (Settings/About) for easier discovery of site permissions.
36
+
37
+ ### Fixed
38
+
39
+ - Increase the default Core client timeout (CLI + MCP) so extension permission prompts do not time out prematurely.
40
+ - CLI: classify aborted Core requests as `TIMEOUT` (with timeout details) instead of a generic `INTERNAL` error.
41
+ - Increase the site-permissions prompt popup size to avoid clipping controls.
42
+ - Make permission-decline failures more actionable for agent clients by returning `PERMISSION_DENIED` with next-step guidance.
43
+ - Fix extension popup/options buttons by loading UI scripts as modules; simplify the popup styling (no gradients/ALL CAPS) and replace About ellipsis with an external-link icon.
44
+ - Fix a small extension popup bottom-clipping issue; add a subtle header icon for personality without gradients.
45
+ - Match the options page list drop shadow to the popup menu styling, and reduce shadow intensity.
46
+ - Options page: make Undo revoke more robust by verifying the allowlist restore.
47
+
48
+ ### Changed
49
+
50
+ - When `tab_id` is omitted in drive commands, Browser Bridge now creates (and reuses) a dedicated Chrome window/tab so agent activity stays separate from the user's current window.
51
+ - The dedicated agent tab is grouped under a `🌉 Browser Bridge` tab group when created.
52
+ - Approved sites options page: switch to a settings-style list with right-aligned revoke actions and an Undo toast.
53
+ - Increase the default site-permissions prompt wait to 30 seconds.
54
+
7
55
  ## [0.4.3] - 2026-02-07
8
56
 
9
57
  ### Fixed
package/README.md CHANGED
@@ -76,6 +76,12 @@ npm run build
76
76
  3. Open Chrome and navigate to `chrome://extensions`.
77
77
  4. Enable **Developer mode**, click **Load unpacked**, and select the extension folder (the folder with `manifest.json`).
78
78
 
79
+ Notes:
80
+
81
+ - Browser Bridge enforces a per-site allowlist for `drive.*` actions by default. The first time it acts on a new site, you'll see a permission prompt.
82
+ - You can review/revoke approved sites (and optionally enable a dangerous bypass mode) via the extension options page (Extensions menu -> Browser Bridge -> Extension options).
83
+ - If you click **Decline**, the command fails with `PERMISSION_DENIED` (non-retryable). If you don't respond in time, you'll see `PERMISSION_PROMPT_TIMEOUT` (retryable once after the user allows).
84
+
79
85
  ## Quickstart
80
86
 
81
87
  1. Install the extension.
package/dist/api.js CHANGED
@@ -252,6 +252,13 @@ var errorStatus = (code) => {
252
252
  switch (code) {
253
253
  case "INVALID_ARGUMENT":
254
254
  return 400;
255
+ case "UNAUTHORIZED":
256
+ return 401;
257
+ case "FORBIDDEN":
258
+ case "PERMISSION_REQUIRED":
259
+ case "PERMISSION_PROMPT_TIMEOUT":
260
+ case "PERMISSION_DENIED":
261
+ return 403;
255
262
  case "SESSION_NOT_FOUND":
256
263
  case "TAB_NOT_FOUND":
257
264
  case "LOCATOR_NOT_FOUND":
@@ -2842,6 +2849,9 @@ var ErrorCodeSchema = import_zod.z.enum([
2842
2849
  "FAILED_PRECONDITION",
2843
2850
  "UNAUTHORIZED",
2844
2851
  "FORBIDDEN",
2852
+ "PERMISSION_REQUIRED",
2853
+ "PERMISSION_DENIED",
2854
+ "PERMISSION_PROMPT_TIMEOUT",
2845
2855
  "CONFLICT",
2846
2856
  "TIMEOUT",
2847
2857
  "CANCELLED",
@@ -4548,7 +4558,7 @@ var startCoreServer = (options = {}) => {
4548
4558
  // packages/mcp-adapter/src/core-client.ts
4549
4559
  var DEFAULT_HOST = "127.0.0.1";
4550
4560
  var DEFAULT_PORT = 3210;
4551
- var DEFAULT_TIMEOUT_MS = 4e3;
4561
+ var DEFAULT_TIMEOUT_MS = 3e4;
4552
4562
  var resolveHost = (host) => {
4553
4563
  const candidate = host?.trim() || process.env.BROWSER_BRIDGE_CORE_HOST || process.env.BROWSER_VISION_CORE_HOST;
4554
4564
  if (candidate && candidate.length > 0) {
@@ -4831,7 +4841,7 @@ var TOOL_DEFINITIONS = [
4831
4841
  name: "drive.scroll",
4832
4842
  config: {
4833
4843
  title: "Drive Scroll",
4834
- description: "Scroll the active tab.",
4844
+ description: "Scroll the default tab (agent window/tab unless tab_id is provided).",
4835
4845
  inputSchema: DriveScrollInputSchema,
4836
4846
  outputSchema: envelope(DriveScrollOutputSchema),
4837
4847
  corePath: "/drive/scroll"