@jobshimo/browser-link 0.20.0 → 0.22.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 +74 -70
- package/dist/bridge/events.d.ts +1 -1
- package/dist/bridge/events.js +6 -1
- package/dist/bridge/events.js.map +1 -1
- package/dist/bridge/ipc-client.d.ts +6 -7
- package/dist/bridge/ipc-client.js +4 -3
- package/dist/bridge/ipc-client.js.map +1 -1
- package/dist/bridge/protocol.d.ts +28 -16
- package/dist/bridge/protocol.js +23 -7
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/server.d.ts +8 -10
- package/dist/bridge/server.js.map +1 -1
- package/dist/bridge/ws-bridge.d.ts +53 -18
- package/dist/bridge/ws-bridge.js +129 -21
- package/dist/bridge/ws-bridge.js.map +1 -1
- package/dist/cli.js +62 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.js +62 -8
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/map.d.ts +2 -0
- package/dist/commands/map.js +698 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/config.d.ts +19 -0
- package/dist/config.js.map +1 -1
- package/dist/extension/background.js +424 -1
- package/dist/extension/background.js.map +1 -1
- package/dist/extension/flow-recording-policy.d.ts +47 -0
- package/dist/extension/flow-recording-policy.js +54 -0
- package/dist/extension/flow-recording-policy.js.map +1 -0
- package/dist/extension/inpage/recorder.d.ts +35 -0
- package/dist/extension/inpage/recorder.js +333 -0
- package/dist/extension/inpage/recorder.js.map +1 -0
- package/dist/extension/manifest.json +1 -1
- package/dist/extension/popup.html +56 -0
- package/dist/extension/popup.js +195 -4
- package/dist/extension/popup.js.map +1 -1
- package/dist/extension/recording.d.ts +158 -0
- package/dist/extension/recording.js +214 -0
- package/dist/extension/recording.js.map +1 -0
- package/dist/map/queries.d.ts +107 -0
- package/dist/map/queries.js +174 -0
- package/dist/map/queries.js.map +1 -1
- package/dist/messages.d.ts +53 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,9 +17,23 @@
|
|
|
17
17
|
|
|
18
18
|
MCP server that bridges any MCP-compatible client (Claude Code, OpenCode,
|
|
19
19
|
GitHub Copilot CLI, and friends) to the Chrome tabs you grant access to,
|
|
20
|
-
through a small WebSocket relay and a companion Chrome extension.
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
through a small WebSocket relay and a companion Chrome extension. Only
|
|
21
|
+
tabs you explicitly connect are ever reachable; everything else stays
|
|
22
|
+
invisible to the agent.
|
|
23
|
+
|
|
24
|
+
It exposes 31 MCP tools — 25 for driving the connected tab (read the DOM,
|
|
25
|
+
click, type, run JS, watch console/network, drive multi-step flows…) and 6
|
|
26
|
+
for a persistent UI map, a small local SQLite DB where the agent saves
|
|
27
|
+
selectors, flows and gotchas it learns about each app so it does not
|
|
28
|
+
rediscover them every session. Every tool is individually toggle-able, and
|
|
29
|
+
the whole thing runs loopback-only — nothing here talks to the network
|
|
30
|
+
except the npm registry, on `browser-link updates`.
|
|
31
|
+
|
|
32
|
+
A `browser-link` CLI binary handles setup (register with your MCP client,
|
|
33
|
+
show the extension install steps, diagnose the current state) and, new in
|
|
34
|
+
this release, lets a human inspect and manage the persistent map directly
|
|
35
|
+
from a terminal — list known apps, read what was saved about one of them,
|
|
36
|
+
delete stale knowledge, or export/import it as JSON.
|
|
23
37
|
|
|
24
38
|
## Install
|
|
25
39
|
|
|
@@ -29,98 +43,81 @@ npm install -g @jobshimo/browser-link
|
|
|
29
43
|
|
|
30
44
|
This puts the `browser-link` binary on your PATH on macOS, Linux and Windows.
|
|
31
45
|
|
|
32
|
-
##
|
|
46
|
+
## Quick start
|
|
33
47
|
|
|
34
|
-
The fastest path is the interactive UI — a full-screen [Ink](https://github.com/vadimdemedes/ink)-based app with a pinned header, live status of every MCP client, and sub-screens that swap in place
|
|
48
|
+
The fastest path is the interactive UI — a full-screen [Ink](https://github.com/vadimdemedes/ink)-based app with a pinned header, live status of every MCP client, and sub-screens that swap in place:
|
|
35
49
|
|
|
36
50
|
```bash
|
|
37
51
|
browser-link
|
|
38
52
|
```
|
|
39
53
|
|
|
40
|
-
That opens the welcome
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
That opens the welcome screen and then a setup menu to register with
|
|
55
|
+
**Claude Code**, **OpenCode** or **GitHub Copilot CLI**, see the Chrome
|
|
56
|
+
extension install steps, run a doctor diagnose, and manage per-tool
|
|
57
|
+
permissions.
|
|
44
58
|
|
|
45
|
-
|
|
59
|
+
Or drive it directly:
|
|
46
60
|
|
|
47
61
|
```bash
|
|
48
62
|
browser-link install # register in every detected client
|
|
49
63
|
browser-link install --client claude # register only in Claude Code
|
|
50
|
-
browser-link install --client opencode # register only in OpenCode
|
|
51
|
-
browser-link install --client copilot # register only in GitHub Copilot CLI
|
|
52
|
-
browser-link uninstall --client opencode # remove from one client
|
|
53
64
|
browser-link extension # show the Chrome extension assets path + steps
|
|
54
65
|
browser-link doctor # diagnose current setup
|
|
55
|
-
browser-link tools # show which MCP tools are enabled
|
|
56
|
-
browser-link tools disable browser.evaluate
|
|
66
|
+
browser-link tools # show which of the 31 MCP tools are enabled
|
|
57
67
|
browser-link tools preset readonly # all | readonly | no-eval | no-map
|
|
58
|
-
browser-link
|
|
59
|
-
browser-link about #
|
|
68
|
+
browser-link map # list apps the persistent UI map knows about
|
|
69
|
+
browser-link about # full help — every command, every tool
|
|
60
70
|
```
|
|
61
71
|
|
|
62
|
-
|
|
72
|
+
After `install`, restart your MCP client. After `extension`, load the
|
|
73
|
+
unpacked extension as instructed, then click "Connect this tab" on every
|
|
74
|
+
tab you want the agent to reach.
|
|
63
75
|
|
|
64
|
-
|
|
65
|
-
6 UI-map tools, and `browser.events` for bridge traceability. You can
|
|
66
|
-
disable any subset per machine, either through the **Permissions** screen
|
|
67
|
-
in the interactive menu (toggle with Space, apply a preset with Enter,
|
|
68
|
-
save with `s`) or through the scriptable `browser-link tools` subcommand.
|
|
69
|
-
Available presets: `all` (default), `readonly`, `no-eval`, `no-map`.
|
|
70
|
-
Changes take effect the next time your MCP client starts the server.
|
|
76
|
+
## The 31 tools, at a glance
|
|
71
77
|
|
|
72
|
-
|
|
78
|
+
| Family | Count | What it covers |
|
|
79
|
+
| -------------------------- | ----: | ----------------------------------------------------------------------------------- |
|
|
80
|
+
| Browser bridge — read | 13 | list/claim tabs, snapshot/find/state, console, network, wait_for(_tab), events |
|
|
81
|
+
| Browser bridge — actions | 12 | navigate, click, type, press, drag, flow, evaluate, dialogs, permissions, reset |
|
|
82
|
+
| Persistent UI map | 6 | recall, save, record_use, forget, rename_app, apps |
|
|
73
83
|
|
|
74
|
-
|
|
75
|
-
(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
Every tool can be disabled per machine via `browser-link tools disable
|
|
85
|
+
<name>` or a preset (`all` / `readonly` / `no-eval` / `no-map`). The full
|
|
86
|
+
tool-by-tool reference — every name, its exact contract, and the
|
|
87
|
+
Shadow-DOM/iframe piercing and occlusion rules the bridge tools follow —
|
|
88
|
+
lives in the [GitHub README](https://github.com/jobshimo/browser-link#what-the-agent-can-do);
|
|
89
|
+
this page stays a landing page on purpose.
|
|
80
90
|
|
|
81
|
-
|
|
82
|
-
browser-link multi-agent enable
|
|
83
|
-
browser-link multi-agent auto-reelect enable # optional
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
With `auto-reelect` on, secondary proxies survive the primary closing:
|
|
87
|
-
they enter a 5-second reconnect window, return `-32001 "temporarily
|
|
88
|
-
unavailable"` for in-flight requests, and hot-swap to the fresh primary
|
|
89
|
-
once it appears. The agent self-recovers from stale tab ids via the new
|
|
90
|
-
`browser.events` tool, which surfaces a ring buffer of bridge lifecycle
|
|
91
|
-
events (`primary-elected`, `tab-registered`, `tab-disconnected`,
|
|
92
|
-
`tab-renamed`). The Chrome extension preserves the per-tab id across
|
|
93
|
-
primary swaps via `chrome.storage.session`.
|
|
94
|
-
|
|
95
|
-
After `install`, restart the MCP client so it picks up the new entry.
|
|
96
|
-
After `extension`, follow the printed steps to load the unpacked extension
|
|
97
|
-
in Chrome. Then click "Connect this tab" on every tab you want the agent to reach
|
|
98
|
-
— and only on those.
|
|
99
|
-
|
|
100
|
-
## Supported MCP clients
|
|
91
|
+
## `browser-link map` — inspect and manage the persistent map
|
|
101
92
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
| [OpenCode](https://opencode.ai) | `~/.config/opencode/opencode.json` on **every** OS (Win incl.) |
|
|
106
|
-
| [GitHub Copilot CLI](https://docs.github.com/en/copilot/copilot-cli) | `~/.copilot/mcp-config.json` (override via `COPILOT_HOME` env) |
|
|
93
|
+
The 6 map tools above are how an *agent* reads and writes the map while it
|
|
94
|
+
works. `browser-link map` is how a *human* looks at the same data from a
|
|
95
|
+
terminal, no agent required:
|
|
107
96
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
97
|
+
```bash
|
|
98
|
+
browser-link map # list every known app
|
|
99
|
+
browser-link map show <app> # entries + flows for one app (app_key or origin)
|
|
100
|
+
browser-link map forget <app> --yes # delete a whole app and its data
|
|
101
|
+
browser-link map forget <app> --flow <name> # delete just one named flow
|
|
102
|
+
browser-link map export --out map.json # back up the map as JSON
|
|
103
|
+
browser-link map import map.json # restore it (merge by default, --replace to overwrite)
|
|
104
|
+
```
|
|
113
105
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
106
|
+
> **Privacy note.** An export can contain UI structure and flow steps an
|
|
107
|
+
> agent saved — selectors, page notes, multi-step recipes. Review a file
|
|
108
|
+
> before sharing it. The map is designed so agents never write real domain
|
|
109
|
+
> data into it (IDs, names, dates — placeholders like `<QUERY>` stand in
|
|
110
|
+
> instead), but an export is only as clean as what was actually saved.
|
|
117
111
|
|
|
118
|
-
|
|
119
|
-
`browser.map.save`, `browser.map.record_use`, `browser.map.forget`,
|
|
120
|
-
`browser.map.rename_app`, `browser.map.apps`.
|
|
112
|
+
## Also inside
|
|
121
113
|
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
- **Supported clients**: Claude Code, OpenCode, GitHub Copilot CLI — see
|
|
115
|
+
[Quick start](https://github.com/jobshimo/browser-link#quick-start) for
|
|
116
|
+
exact config paths.
|
|
117
|
+
- **Multi-agent mode** (on by default): more than one MCP client can share
|
|
118
|
+
the same bridge and map. `browser-link multi-agent` shows the current
|
|
119
|
+
state; see [Multi-agent mode](https://github.com/jobshimo/browser-link#multi-agent-mode)
|
|
120
|
+
for how it works.
|
|
124
121
|
|
|
125
122
|
## Where the data lives
|
|
126
123
|
|
|
@@ -134,6 +131,13 @@ Override with `BROWSER_LINK_DATA_DIR`. The database is local to your
|
|
|
134
131
|
machine and never uploaded anywhere by this package. The WebSocket relay
|
|
135
132
|
binds to `127.0.0.1:17529` (loopback only).
|
|
136
133
|
|
|
134
|
+
## Learn more
|
|
135
|
+
|
|
136
|
+
The [GitHub README](https://github.com/jobshimo/browser-link#readme) has
|
|
137
|
+
the full picture: every tool's contract, multi-agent mode, the "how it
|
|
138
|
+
works" architecture diagram, supported MCP clients, and the FAQ on
|
|
139
|
+
Chrome's debugger infobar.
|
|
140
|
+
|
|
137
141
|
## License
|
|
138
142
|
|
|
139
143
|
MIT — see [LICENSE](https://github.com/jobshimo/browser-link/blob/main/LICENSE).
|
package/dist/bridge/events.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* `primary-elected` event as the fundamental marker — older history is
|
|
11
11
|
* intentionally lost (the agent has nothing useful to do with it anyway).
|
|
12
12
|
*/
|
|
13
|
-
export type BridgeEventKind = 'primary-elected' | 'tab-registered' | 'tab-disconnected' | 'tab-renamed' | 'tab-claimed' | 'tab-released' | 'tab-claim-rejected' | 'dialog-opening' | 'dialog-closed' | 'tab-created';
|
|
13
|
+
export type BridgeEventKind = 'primary-elected' | 'tab-registered' | 'tab-disconnected' | 'tab-renamed' | 'tab-claimed' | 'tab-released' | 'tab-claim-rejected' | 'dialog-opening' | 'dialog-closed' | 'tab-created' | 'flow-recorded';
|
|
14
14
|
export declare function isExtensionEventKind(kind: string): kind is BridgeEventKind;
|
|
15
15
|
export interface BridgeEvent {
|
|
16
16
|
/** Monotonic id assigned by addEvent. */
|
package/dist/bridge/events.js
CHANGED
|
@@ -12,7 +12,12 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/** Kinds the extension is permitted to push via `bridge.event`. Lifecycle
|
|
14
14
|
* events (primary-elected, tab-registered, etc.) are produced server-side
|
|
15
|
-
* and must NOT be spoofable from the extension side.
|
|
15
|
+
* and must NOT be spoofable from the extension side. `flow-recorded` is
|
|
16
|
+
* ALSO server-owned — the extension sends the dedicated `flow.recorded`
|
|
17
|
+
* message (validated + persisted by `ws-bridge.ts`'s
|
|
18
|
+
* `handleFlowRecordedMessage`), never a raw `bridge.event`, so a recipe
|
|
19
|
+
* cannot be announced to `browser.events` without having actually passed
|
|
20
|
+
* `validateFlowSteps` and landed in the map. */
|
|
16
21
|
const EXTENSION_EVENT_KINDS = new Set([
|
|
17
22
|
'dialog-opening',
|
|
18
23
|
'dialog-closed',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/bridge/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/bridge/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SettingsPushPayload } from './protocol.js';
|
|
1
2
|
/** Raised when the proxy cannot complete the IPC handshake. */
|
|
2
3
|
export declare class HandshakeError extends Error {
|
|
3
4
|
constructor(message: string);
|
|
@@ -38,14 +39,12 @@ export declare class IpcClient {
|
|
|
38
39
|
sendMcpRequest(jsonRpcPayload: unknown): Promise<unknown>;
|
|
39
40
|
/**
|
|
40
41
|
* Push a settings update to the primary (used by `browser-link config set
|
|
41
|
-
* idle-ttl` — see `commands/config.ts`).
|
|
42
|
-
* connected extension tabs the primary
|
|
43
|
-
* Rejects if the socket closes before
|
|
42
|
+
* idle-ttl` / `config set flow-recording` — see `commands/config.ts`).
|
|
43
|
+
* Resolves with how many currently connected extension tabs the primary
|
|
44
|
+
* forwarded a `settings.update` to. Rejects if the socket closes before
|
|
45
|
+
* the ack arrives.
|
|
44
46
|
*/
|
|
45
|
-
sendSettingsPush(settings: {
|
|
46
|
-
idleTtlMinutes: number;
|
|
47
|
-
updatedAt: number;
|
|
48
|
-
}): Promise<{
|
|
47
|
+
sendSettingsPush(settings: SettingsPushPayload): Promise<{
|
|
49
48
|
notified: number;
|
|
50
49
|
}>;
|
|
51
50
|
/** Forward a JSON-RPC notification as an mcp.notification frame. Fire-
|
|
@@ -121,9 +121,10 @@ export class IpcClient {
|
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
123
123
|
* Push a settings update to the primary (used by `browser-link config set
|
|
124
|
-
* idle-ttl` — see `commands/config.ts`).
|
|
125
|
-
* connected extension tabs the primary
|
|
126
|
-
* Rejects if the socket closes before
|
|
124
|
+
* idle-ttl` / `config set flow-recording` — see `commands/config.ts`).
|
|
125
|
+
* Resolves with how many currently connected extension tabs the primary
|
|
126
|
+
* forwarded a `settings.update` to. Rejects if the socket closes before
|
|
127
|
+
* the ack arrives.
|
|
127
128
|
*/
|
|
128
129
|
sendSettingsPush(settings) {
|
|
129
130
|
const socket = this.socket;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-client.js","sourceRoot":"","sources":["../../src/bridge/ipc-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,oBAAoB,EACpB,WAAW,EACX,UAAU,
|
|
1
|
+
{"version":3,"file":"ipc-client.js","sourceRoot":"","sources":["../../src/bridge/ipc-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,25 +71,37 @@ export interface PrimaryClosingFrame {
|
|
|
71
71
|
reason?: string;
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
* One-shot push from a `browser-link config set idle-ttl`
|
|
75
|
-
* the running primary — proxy → primary
|
|
76
|
-
* direction as `mcp.request`. The CLI
|
|
77
|
-
* sends exactly one of these, waits
|
|
78
|
-
* the IPC bridge instead of a bespoke
|
|
79
|
-
* the primary's one existing local
|
|
80
|
-
* loopback-only, same trust boundary
|
|
74
|
+
* One-shot push from a `browser-link config set idle-ttl` / `config set
|
|
75
|
+
* flow-recording` CLI invocation to the running primary — proxy → primary
|
|
76
|
+
* despite the "settings" name, same direction as `mcp.request`. The CLI
|
|
77
|
+
* process is short-lived: it connects, sends exactly one of these, waits
|
|
78
|
+
* for the ack, and disconnects. Reuses the IPC bridge instead of a bespoke
|
|
79
|
+
* side channel because it is already the primary's one existing local
|
|
80
|
+
* control plane (token-authenticated, loopback-only, same trust boundary
|
|
81
|
+
* as the multi-agent proxy protocol).
|
|
82
|
+
*
|
|
83
|
+
* Carries either the idle-TTL pair, the flow-recording pair, or both — see
|
|
84
|
+
* `SettingsPushPayload`. `updatedAt` / `flowRecordingUpdatedAt` is stamped
|
|
85
|
+
* ONCE by the CLI (the same value it just wrote to config.json) and
|
|
86
|
+
* carried through unchanged rather than re-stamped server-side — so the
|
|
87
|
+
* value pushed to already-connected tabs right now and the value a NEW tab
|
|
88
|
+
* reads from config.json a moment later always agree, instead of racing
|
|
89
|
+
* two `Date.now()` calls a few ms apart.
|
|
81
90
|
*/
|
|
82
91
|
export interface SettingsPushFrame {
|
|
83
92
|
kind: 'settings.push';
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
settings: SettingsPushPayload;
|
|
94
|
+
}
|
|
95
|
+
/** Shape shared by `SettingsPushFrame.settings`, `sendSettingsPush`,
|
|
96
|
+
* `IpcServerOptions.pushSettings` and `pushSettingsToAllTabs` — one type so
|
|
97
|
+
* the IPC push path and the WS `settings.update` payload it feeds can never
|
|
98
|
+
* drift apart. Every field optional: a push may carry only the idle-TTL
|
|
99
|
+
* pair, only the flow-recording pair, or both. */
|
|
100
|
+
export interface SettingsPushPayload {
|
|
101
|
+
idleTtlMinutes?: number;
|
|
102
|
+
updatedAt?: number;
|
|
103
|
+
flowRecordingEnabled?: boolean;
|
|
104
|
+
flowRecordingUpdatedAt?: number;
|
|
93
105
|
}
|
|
94
106
|
/** Primary's reply to `settings.push` — how many currently-connected
|
|
95
107
|
* extension tabs were sent a `settings.update` as a result. */
|
package/dist/bridge/protocol.js
CHANGED
|
@@ -72,14 +72,30 @@ export function parseFrame(line) {
|
|
|
72
72
|
if (!o.settings || typeof o.settings !== 'object')
|
|
73
73
|
return null;
|
|
74
74
|
const s = o.settings;
|
|
75
|
-
|
|
75
|
+
const hasIdlePair = 'idleTtlMinutes' in s || 'updatedAt' in s;
|
|
76
|
+
const hasFlowPair = 'flowRecordingEnabled' in s || 'flowRecordingUpdatedAt' in s;
|
|
77
|
+
if (!hasIdlePair && !hasFlowPair)
|
|
76
78
|
return null;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
const settings = {};
|
|
80
|
+
if (hasIdlePair) {
|
|
81
|
+
if (typeof s.idleTtlMinutes !== 'number' || !Number.isFinite(s.idleTtlMinutes))
|
|
82
|
+
return null;
|
|
83
|
+
if (typeof s.updatedAt !== 'number' || !Number.isFinite(s.updatedAt))
|
|
84
|
+
return null;
|
|
85
|
+
settings.idleTtlMinutes = s.idleTtlMinutes;
|
|
86
|
+
settings.updatedAt = s.updatedAt;
|
|
87
|
+
}
|
|
88
|
+
if (hasFlowPair) {
|
|
89
|
+
if (typeof s.flowRecordingEnabled !== 'boolean')
|
|
90
|
+
return null;
|
|
91
|
+
if (typeof s.flowRecordingUpdatedAt !== 'number' ||
|
|
92
|
+
!Number.isFinite(s.flowRecordingUpdatedAt)) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
settings.flowRecordingEnabled = s.flowRecordingEnabled;
|
|
96
|
+
settings.flowRecordingUpdatedAt = s.flowRecordingUpdatedAt;
|
|
97
|
+
}
|
|
98
|
+
return { kind: 'settings.push', settings };
|
|
83
99
|
}
|
|
84
100
|
case 'settings.push-ack':
|
|
85
101
|
if (typeof o.notified === 'number' && Number.isFinite(o.notified))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/bridge/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC;AACpC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAC9B,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC;wCACwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/bridge/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/server.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type PeerProcess } from '../auth/process-identity.js';
|
|
2
|
+
import { type SettingsPushPayload } from './protocol.js';
|
|
2
3
|
import { type DispatchDeps } from './dispatch.js';
|
|
3
4
|
export interface IpcServerOptions {
|
|
4
5
|
/** Override the bind host. Default 127.0.0.1. Production callers should
|
|
@@ -14,17 +15,14 @@ export interface IpcServerOptions {
|
|
|
14
15
|
peerLookup?: (host: string, port: number) => Promise<PeerProcess | null>;
|
|
15
16
|
/**
|
|
16
17
|
* Called when a `settings.push` frame arrives (from `browser-link config
|
|
17
|
-
* set idle-ttl`'s one-shot IPC client).
|
|
18
|
-
* every currently-connected extension tab
|
|
19
|
-
* `pushSettingsToAllTabs`) and return how many tabs
|
|
20
|
-
* count is echoed back in the `settings.push-ack`
|
|
21
|
-
* in tests that don't exercise this path;
|
|
22
|
-
* `server.ts`'s `runPrimary`.
|
|
18
|
+
* set idle-ttl` / `config set flow-recording`'s one-shot IPC client).
|
|
19
|
+
* Should forward the settings to every currently-connected extension tab
|
|
20
|
+
* (see `ws-bridge.ts`'s `pushSettingsToAllTabs`) and return how many tabs
|
|
21
|
+
* were notified — that count is echoed back in the `settings.push-ack`
|
|
22
|
+
* reply. Left undefined in tests that don't exercise this path;
|
|
23
|
+
* production wiring is in `server.ts`'s `runPrimary`.
|
|
23
24
|
*/
|
|
24
|
-
pushSettings?: (settings:
|
|
25
|
-
idleTtlMinutes: number;
|
|
26
|
-
updatedAt: number;
|
|
27
|
-
}) => number;
|
|
25
|
+
pushSettings?: (settings: SettingsPushPayload) => number;
|
|
28
26
|
}
|
|
29
27
|
export declare class IpcServer {
|
|
30
28
|
private deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/bridge/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/bridge/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebSocket, WebSocketServer } from 'ws';
|
|
2
|
-
import type { SettingsUpdateMessage } from '../messages.js';
|
|
2
|
+
import type { FlowRecordedPayload, ServerToExtension, SettingsUpdateMessage } from '../messages.js';
|
|
3
3
|
import { type BridgeEventLog } from './events.js';
|
|
4
4
|
export declare const WS_HOST = "127.0.0.1";
|
|
5
5
|
export declare const WS_PORT = 17529;
|
|
@@ -22,35 +22,70 @@ export declare function isAddrInUse(err: unknown): boolean;
|
|
|
22
22
|
export declare function startWsBridge(tabs: Map<string, TabSession>, pendingRequests: Map<string, PendingRequest>, events: BridgeEventLog): Promise<WebSocketServer>;
|
|
23
23
|
/**
|
|
24
24
|
* Build the `settings.update` a freshly-registered tab should receive, or
|
|
25
|
-
* `null` when nothing should be sent. `idleTtlMinutes`
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
25
|
+
* `null` when nothing should be sent. Each of `idleTtlMinutes` and
|
|
26
|
+
* `flowRecordingEnabled` independently stays undefined in config.json until
|
|
27
|
+
* its own `browser-link config set` command runs at least once — a
|
|
28
|
+
* popup-only user (who never touched the CLI) never gets an unsolicited
|
|
29
|
+
* settings.update overwriting their own popup choice for that setting.
|
|
30
|
+
* Note idle-ttl's `0` ("never") and flow-recording's `false` ("off") ARE
|
|
31
|
+
* real values and MUST push — only `undefined` suppresses a given pair, and
|
|
32
|
+
* the two pairs are independent (a message can carry one, the other, or
|
|
33
|
+
* both). See messages.ts's SettingsUpdatePayload doc for the newest-wins
|
|
31
34
|
* precedence rule the extension applies on receipt. Exported so the
|
|
32
35
|
* register-path push is unit-testable without binding the fixed WS port.
|
|
33
36
|
*/
|
|
34
37
|
export declare function buildRegisterSettingsUpdate(cfg: {
|
|
35
38
|
idleTtlMinutes?: number;
|
|
36
39
|
idleTtlUpdatedAt?: number;
|
|
40
|
+
flowRecordingEnabled?: boolean;
|
|
41
|
+
flowRecordingUpdatedAt?: number;
|
|
37
42
|
}): SettingsUpdateMessage | null;
|
|
38
43
|
/**
|
|
39
44
|
* Push a `settings.update` to every currently-connected extension tab.
|
|
40
45
|
* Called from the IPC bridge's `settings.push` handler (see
|
|
41
46
|
* `bridge/server.ts`'s `pushSettings` option) when `browser-link config set
|
|
42
|
-
* idle-ttl` runs while a primary is already
|
|
43
|
-
* connected" half of the precedence contract;
|
|
44
|
-
* lives inline in `startWsBridge`'s
|
|
45
|
-
* `buildRegisterSettingsUpdate`), since a
|
|
46
|
-
* already gets the fresh value from
|
|
47
|
-
* tabs were sent the update, so the
|
|
48
|
-
* than "done" (e.g. "0 tabs
|
|
47
|
+
* idle-ttl` / `config set flow-recording` runs while a primary is already
|
|
48
|
+
* up — the "on demand, while connected" half of the precedence contract;
|
|
49
|
+
* the "on (re)connect" half lives inline in `startWsBridge`'s
|
|
50
|
+
* `tab.register` handler above (via `buildRegisterSettingsUpdate`), since a
|
|
51
|
+
* tab that connects AFTER this push already gets the fresh value from
|
|
52
|
+
* config.json directly. Returns how many tabs were sent the update, so the
|
|
53
|
+
* CLI can report something more useful than "done" (e.g. "0 tabs
|
|
54
|
+
* connected — applies next time one connects").
|
|
49
55
|
*/
|
|
50
|
-
export declare function pushSettingsToAllTabs(tabs: Map<string, TabSession>, settings:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
export declare function pushSettingsToAllTabs(tabs: Map<string, TabSession>, settings: SettingsUpdateMessage['settings']): number;
|
|
57
|
+
/**
|
|
58
|
+
* Validate + persist a `flow.recorded` message from the extension (see the
|
|
59
|
+
* extension's `background.ts`'s `saveRecording`) and build the
|
|
60
|
+
* `flow.recorded.result` reply. Exported so it is unit-testable directly,
|
|
61
|
+
* without binding the fixed WS port — same rationale as
|
|
62
|
+
* `buildRegisterSettingsUpdate` above.
|
|
63
|
+
*
|
|
64
|
+
* `steps` is validated with the EXACT same `validateFlowSteps` rules
|
|
65
|
+
* `browser.flow` and `browser.map.save`'s `flows` array enforce — an
|
|
66
|
+
* invalid recording (over the step cap, a malformed step, an over-budget
|
|
67
|
+
* wait_for) is rejected here with the same actionable error message an
|
|
68
|
+
* agent would see from `browser.flow`, sent back to the popup so the user
|
|
69
|
+
* knows WHY the save failed rather than it silently vanishing.
|
|
70
|
+
* `origin` is untrusted free text from the extension and is canonicalized
|
|
71
|
+
* the normal way (`saveFlow` -> `upsertApp` -> `canonicalOrigin`), exactly
|
|
72
|
+
* like every other write path into the map.
|
|
73
|
+
*
|
|
74
|
+
* On success, emits a SERVER-OWNED `flow-recorded` bridge event (see
|
|
75
|
+
* `events.ts` — this kind is deliberately absent from
|
|
76
|
+
* `EXTENSION_EVENT_KINDS`, so it can only ever be produced by a recording
|
|
77
|
+
* that actually passed validation and landed in the map, never spoofed via
|
|
78
|
+
* a raw `bridge.event`) so `browser.events` surfaces the new recipe to any
|
|
79
|
+
* agent watching, per the mission's "agents notice new recipes" requirement.
|
|
80
|
+
*/
|
|
81
|
+
/** Length caps on the free-text fields of a recorded flow — consistent
|
|
82
|
+
* with the selector cap on the recorder side and the map's general "store
|
|
83
|
+
* UI structure, not blobs" posture. Generous enough for any real recipe
|
|
84
|
+
* name / caution note, small enough that the channel cannot be used to
|
|
85
|
+
* park large payloads in the map DB. */
|
|
86
|
+
export declare const MAX_FLOW_NAME_LENGTH = 200;
|
|
87
|
+
export declare const MAX_FLOW_DESCRIPTION_LENGTH = 2000;
|
|
88
|
+
export declare function handleFlowRecordedMessage(payload: FlowRecordedPayload, events: BridgeEventLog): ServerToExtension;
|
|
54
89
|
/** Build the callback that sends a tool.request frame to a specific tab and
|
|
55
90
|
* resolves with the matching tool.response (or rejects on timeout). Kept here
|
|
56
91
|
* because it touches the same `tabs` / `pendingRequests` maps the bridge
|