@jobshimo/browser-link 0.4.1 → 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/dist/bridge/server.d.ts +6 -0
- package/dist/bridge/server.js +2 -1
- package/dist/bridge/server.js.map +1 -1
- package/dist/cli.js +73 -73
- package/dist/commands/free-port.js +8 -2
- package/dist/commands/free-port.js.map +1 -1
- package/dist/extension/background.js +141 -91
- package/dist/extension/background.js.map +1 -1
- package/dist/extension/manifest.json +2 -2
- package/dist/map/db.js +28 -28
- package/dist/map/queries.js +4 -4
- package/dist/tools/server-instructions.js +50 -50
- package/package.json +70 -70
package/dist/bridge/server.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PeerProcess } from '../auth/process-identity.js';
|
|
1
2
|
import { type DispatchDeps } from './dispatch.js';
|
|
2
3
|
export interface IpcServerOptions {
|
|
3
4
|
/** Override the bind host. Default 127.0.0.1. Production callers should
|
|
@@ -6,6 +7,11 @@ export interface IpcServerOptions {
|
|
|
6
7
|
/** Override the bind port. Default 17530. Pass 0 to let the OS pick a
|
|
7
8
|
* free port; the chosen port is exposed via boundPort() after start(). */
|
|
8
9
|
port?: number;
|
|
10
|
+
/** Override the kernel-level peer process lookup. Production callers never
|
|
11
|
+
* set this — defaults to the real lsof/netstat-backed lookup. Tests inject
|
|
12
|
+
* a deterministic stub so they don't depend on those tools being available
|
|
13
|
+
* or fast enough on CI runners. */
|
|
14
|
+
peerLookup?: (host: string, port: number) => Promise<PeerProcess | null>;
|
|
9
15
|
}
|
|
10
16
|
export declare class IpcServer {
|
|
11
17
|
private deps;
|
package/dist/bridge/server.js
CHANGED
|
@@ -141,7 +141,8 @@ export class IpcServer {
|
|
|
141
141
|
// Kernel-level process binding. Same trick as the WS bridge: we ask the
|
|
142
142
|
// OS which process owns the peer's TCP port, and reject anything that
|
|
143
143
|
// does not look like a Node-family binary.
|
|
144
|
-
const
|
|
144
|
+
const lookup = this.options.peerLookup ?? lookupPeerProcess;
|
|
145
|
+
const peer = await lookup(remoteAddr, remotePort).catch(() => null);
|
|
145
146
|
if (!peer || !NODE_PROCESS_NAMES.has(peer.binaryName.toLowerCase())) {
|
|
146
147
|
log(`Rejected IPC connection from ${remoteAddr}:${remotePort}: not a known Node process (${peer?.binaryName ?? 'unknown'}).`);
|
|
147
148
|
socket.destroy();
|
|
@@ -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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"}
|
package/dist/cli.js
CHANGED
|
@@ -12,81 +12,81 @@ import { loadConfig } from './config.js';
|
|
|
12
12
|
import { VERSION } from './version.js';
|
|
13
13
|
function buildHelp(language) {
|
|
14
14
|
if (language === 'es') {
|
|
15
|
-
return `browser-link ${VERSION} — puente entre cualquier cliente MCP y las pestañas de Chrome que vos habilites.
|
|
16
|
-
|
|
17
|
-
Uso:
|
|
18
|
-
browser-link Abre el setup interactivo (registrar un
|
|
19
|
-
cliente, ver pasos de la extensión, doctor,
|
|
20
|
-
buscar actualizaciones) cuando se invoca
|
|
21
|
-
desde una terminal.
|
|
22
|
-
Cuando lo invoca un cliente MCP por stdio,
|
|
23
|
-
arranca el servidor MCP.
|
|
24
|
-
browser-link install Registra browser-link en todos los clientes detectados.
|
|
25
|
-
browser-link install --client <claude|opencode|copilot>
|
|
26
|
-
Registra sólo en el cliente nombrado.
|
|
27
|
-
browser-link uninstall Elimina todos los registros.
|
|
28
|
-
browser-link uninstall --client <id>
|
|
29
|
-
Elimina sólo el registro nombrado.
|
|
30
|
-
browser-link extension Muestra la ruta de los assets de la extensión
|
|
31
|
-
de Chrome y los pasos por SO.
|
|
32
|
-
browser-link doctor Diagnostica el setup actual (clientes, servidor, extensión, base del mapa).
|
|
33
|
-
browser-link updates Consulta el registry de npm en busca de versión nueva.
|
|
34
|
-
browser-link tools Muestra qué tools MCP están habilitadas / deshabilitadas.
|
|
35
|
-
browser-link tools enable <nombre…> Vuelve a habilitar tools concretas.
|
|
36
|
-
browser-link tools disable <nombre…> Deshabilita tools concretas.
|
|
37
|
-
browser-link tools preset <id> Aplica un preset: all | readonly | no-eval | no-map.
|
|
38
|
-
browser-link multi-agent Estado del modo multi-agente y re-elección automática.
|
|
39
|
-
browser-link multi-agent enable | disable
|
|
40
|
-
browser-link multi-agent auto-reelect enable | disable
|
|
41
|
-
browser-link stop Mata el proceso browser-link que esté ocupando el
|
|
42
|
-
puerto 17529 (útil si un cliente MCP quedó zombie).
|
|
43
|
-
browser-link about Muestra la explicación completa.
|
|
44
|
-
browser-link version Muestra la versión instalada (también: --version, -v).
|
|
45
|
-
browser-link help Este mensaje.
|
|
46
|
-
|
|
47
|
-
Variables de entorno:
|
|
48
|
-
BROWSER_LINK_DATA_DIR Sobreescribe la ruta de la base (default por SO).
|
|
49
|
-
BROWSER_LINK_BIN Sobreescribe el comando guardado en los configs
|
|
50
|
-
de los clientes (p. ej. "node /path/to/dist/index.js" en dev).
|
|
51
|
-
COPILOT_HOME Sobreescribe el directorio de config del CLI de
|
|
15
|
+
return `browser-link ${VERSION} — puente entre cualquier cliente MCP y las pestañas de Chrome que vos habilites.
|
|
16
|
+
|
|
17
|
+
Uso:
|
|
18
|
+
browser-link Abre el setup interactivo (registrar un
|
|
19
|
+
cliente, ver pasos de la extensión, doctor,
|
|
20
|
+
buscar actualizaciones) cuando se invoca
|
|
21
|
+
desde una terminal.
|
|
22
|
+
Cuando lo invoca un cliente MCP por stdio,
|
|
23
|
+
arranca el servidor MCP.
|
|
24
|
+
browser-link install Registra browser-link en todos los clientes detectados.
|
|
25
|
+
browser-link install --client <claude|opencode|copilot>
|
|
26
|
+
Registra sólo en el cliente nombrado.
|
|
27
|
+
browser-link uninstall Elimina todos los registros.
|
|
28
|
+
browser-link uninstall --client <id>
|
|
29
|
+
Elimina sólo el registro nombrado.
|
|
30
|
+
browser-link extension Muestra la ruta de los assets de la extensión
|
|
31
|
+
de Chrome y los pasos por SO.
|
|
32
|
+
browser-link doctor Diagnostica el setup actual (clientes, servidor, extensión, base del mapa).
|
|
33
|
+
browser-link updates Consulta el registry de npm en busca de versión nueva.
|
|
34
|
+
browser-link tools Muestra qué tools MCP están habilitadas / deshabilitadas.
|
|
35
|
+
browser-link tools enable <nombre…> Vuelve a habilitar tools concretas.
|
|
36
|
+
browser-link tools disable <nombre…> Deshabilita tools concretas.
|
|
37
|
+
browser-link tools preset <id> Aplica un preset: all | readonly | no-eval | no-map.
|
|
38
|
+
browser-link multi-agent Estado del modo multi-agente y re-elección automática.
|
|
39
|
+
browser-link multi-agent enable | disable
|
|
40
|
+
browser-link multi-agent auto-reelect enable | disable
|
|
41
|
+
browser-link stop Mata el proceso browser-link que esté ocupando el
|
|
42
|
+
puerto 17529 (útil si un cliente MCP quedó zombie).
|
|
43
|
+
browser-link about Muestra la explicación completa.
|
|
44
|
+
browser-link version Muestra la versión instalada (también: --version, -v).
|
|
45
|
+
browser-link help Este mensaje.
|
|
46
|
+
|
|
47
|
+
Variables de entorno:
|
|
48
|
+
BROWSER_LINK_DATA_DIR Sobreescribe la ruta de la base (default por SO).
|
|
49
|
+
BROWSER_LINK_BIN Sobreescribe el comando guardado en los configs
|
|
50
|
+
de los clientes (p. ej. "node /path/to/dist/index.js" en dev).
|
|
51
|
+
COPILOT_HOME Sobreescribe el directorio de config del CLI de
|
|
52
52
|
GitHub Copilot (default ~/.copilot).`;
|
|
53
53
|
}
|
|
54
|
-
return `browser-link ${VERSION} — bridge any MCP client to the Chrome tabs you enable.
|
|
55
|
-
|
|
56
|
-
Usage:
|
|
57
|
-
browser-link When invoked from an interactive terminal,
|
|
58
|
-
opens the setup UI (register a client, show
|
|
59
|
-
extension steps, run doctor, check updates).
|
|
60
|
-
When invoked by an MCP client over stdio,
|
|
61
|
-
starts the MCP server.
|
|
62
|
-
browser-link install Register browser-link in every detected client.
|
|
63
|
-
browser-link install --client <claude|opencode|copilot>
|
|
64
|
-
Register only in the named client.
|
|
65
|
-
browser-link uninstall Remove every registration.
|
|
66
|
-
browser-link uninstall --client <id>
|
|
67
|
-
Remove only the named registration.
|
|
68
|
-
browser-link extension Show the Chrome extension assets path and
|
|
69
|
-
per-OS install instructions.
|
|
70
|
-
browser-link doctor Diagnose current setup (clients, server, extension, map DB).
|
|
71
|
-
browser-link updates Check the npm registry for a newer version.
|
|
72
|
-
browser-link tools Show which MCP tools are enabled / disabled.
|
|
73
|
-
browser-link tools enable <name…> Re-enable specific tools.
|
|
74
|
-
browser-link tools disable <name…> Disable specific tools.
|
|
75
|
-
browser-link tools preset <id> Apply a preset: all | readonly | no-eval | no-map.
|
|
76
|
-
browser-link multi-agent Show multi-agent mode + auto-reelect status.
|
|
77
|
-
browser-link multi-agent enable | disable
|
|
78
|
-
browser-link multi-agent auto-reelect enable | disable
|
|
79
|
-
browser-link stop Kill the browser-link process holding port 17529
|
|
80
|
-
(useful when an MCP client left a zombie behind).
|
|
81
|
-
browser-link about Show the full explanation of what this is and how it works.
|
|
82
|
-
browser-link version Print the installed version (also: --version, -v).
|
|
83
|
-
browser-link help This message.
|
|
84
|
-
|
|
85
|
-
Environment:
|
|
86
|
-
BROWSER_LINK_DATA_DIR Override the DB location (defaults per OS).
|
|
87
|
-
BROWSER_LINK_BIN Override the command stored in client configs
|
|
88
|
-
(e.g. "node /path/to/dist/index.js" for dev).
|
|
89
|
-
COPILOT_HOME Override GitHub Copilot CLI's config dir
|
|
54
|
+
return `browser-link ${VERSION} — bridge any MCP client to the Chrome tabs you enable.
|
|
55
|
+
|
|
56
|
+
Usage:
|
|
57
|
+
browser-link When invoked from an interactive terminal,
|
|
58
|
+
opens the setup UI (register a client, show
|
|
59
|
+
extension steps, run doctor, check updates).
|
|
60
|
+
When invoked by an MCP client over stdio,
|
|
61
|
+
starts the MCP server.
|
|
62
|
+
browser-link install Register browser-link in every detected client.
|
|
63
|
+
browser-link install --client <claude|opencode|copilot>
|
|
64
|
+
Register only in the named client.
|
|
65
|
+
browser-link uninstall Remove every registration.
|
|
66
|
+
browser-link uninstall --client <id>
|
|
67
|
+
Remove only the named registration.
|
|
68
|
+
browser-link extension Show the Chrome extension assets path and
|
|
69
|
+
per-OS install instructions.
|
|
70
|
+
browser-link doctor Diagnose current setup (clients, server, extension, map DB).
|
|
71
|
+
browser-link updates Check the npm registry for a newer version.
|
|
72
|
+
browser-link tools Show which MCP tools are enabled / disabled.
|
|
73
|
+
browser-link tools enable <name…> Re-enable specific tools.
|
|
74
|
+
browser-link tools disable <name…> Disable specific tools.
|
|
75
|
+
browser-link tools preset <id> Apply a preset: all | readonly | no-eval | no-map.
|
|
76
|
+
browser-link multi-agent Show multi-agent mode + auto-reelect status.
|
|
77
|
+
browser-link multi-agent enable | disable
|
|
78
|
+
browser-link multi-agent auto-reelect enable | disable
|
|
79
|
+
browser-link stop Kill the browser-link process holding port 17529
|
|
80
|
+
(useful when an MCP client left a zombie behind).
|
|
81
|
+
browser-link about Show the full explanation of what this is and how it works.
|
|
82
|
+
browser-link version Print the installed version (also: --version, -v).
|
|
83
|
+
browser-link help This message.
|
|
84
|
+
|
|
85
|
+
Environment:
|
|
86
|
+
BROWSER_LINK_DATA_DIR Override the DB location (defaults per OS).
|
|
87
|
+
BROWSER_LINK_BIN Override the command stored in client configs
|
|
88
|
+
(e.g. "node /path/to/dist/index.js" for dev).
|
|
89
|
+
COPILOT_HOME Override GitHub Copilot CLI's config dir
|
|
90
90
|
(default ~/.copilot).`;
|
|
91
91
|
}
|
|
92
92
|
const CLI_I18N = {
|
|
@@ -32,7 +32,10 @@ function findPidOnPort(port) {
|
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
34
|
// Unix-likes: lsof gives just the PID with -t.
|
|
35
|
-
const out = execFileSync('lsof', ['-nP', `-iTCP:${port}`, '-sTCP:LISTEN', '-t'], {
|
|
35
|
+
const out = execFileSync('lsof', ['-nP', `-iTCP:${port}`, '-sTCP:LISTEN', '-t'], {
|
|
36
|
+
encoding: 'utf8',
|
|
37
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
38
|
+
});
|
|
36
39
|
const pid = Number.parseInt(out.trim().split('\n')[0] ?? '', 10);
|
|
37
40
|
return Number.isFinite(pid) && pid > 0 ? pid : null;
|
|
38
41
|
}
|
|
@@ -52,7 +55,10 @@ function imageNameOf(pid) {
|
|
|
52
55
|
if (platform() === 'win32') {
|
|
53
56
|
// tasklist /FI "PID eq 13212" /FO CSV /NH produces:
|
|
54
57
|
// "node.exe","13212","Console","1","45,000 K"
|
|
55
|
-
const out = execFileSync('tasklist', ['/FI', `PID eq ${pid}`, '/FO', 'CSV', '/NH'], {
|
|
58
|
+
const out = execFileSync('tasklist', ['/FI', `PID eq ${pid}`, '/FO', 'CSV', '/NH'], {
|
|
59
|
+
encoding: 'utf8',
|
|
60
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
61
|
+
}).trim();
|
|
56
62
|
if (!out || out.startsWith('INFO:'))
|
|
57
63
|
return null;
|
|
58
64
|
// Strip leading quote, then take up to next quote.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"free-port.js","sourceRoot":"","sources":["../../src/commands/free-port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,MAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,MAAM,OAAO,GAAG,KAAK,CAAC;AAatB;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;YAC3B,2CAA2C;YAC3C,kEAAkE;YAClE,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;gBACzD,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACpC,CAAC,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;oBAAE,SAAS;gBACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAAE,SAAS;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;oBAAE,OAAO,GAAG,CAAC;YAClD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,+CAA+C;QAC/C,MAAM,GAAG,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"free-port.js","sourceRoot":"","sources":["../../src/commands/free-port.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,82 +96,82 @@ function attachDebuggerListener(state) {
|
|
|
96
96
|
};
|
|
97
97
|
state.debuggerListener = listener;
|
|
98
98
|
}
|
|
99
|
-
const SNAPSHOT_JS = `
|
|
100
|
-
(() => {
|
|
101
|
-
function isVisible(el) {
|
|
102
|
-
if (!(el instanceof HTMLElement)) return true;
|
|
103
|
-
const style = getComputedStyle(el);
|
|
104
|
-
if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') return false;
|
|
105
|
-
if (el.offsetParent === null && style.position !== 'fixed') return false;
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
function shortText(el) {
|
|
109
|
-
const t = (el.innerText || el.textContent || '').trim();
|
|
110
|
-
return t.length > 120 ? t.slice(0, 120) + '...' : t;
|
|
111
|
-
}
|
|
112
|
-
function safeCss(s) {
|
|
113
|
-
return s.replace(/"/g, '\\\\"');
|
|
114
|
-
}
|
|
115
|
-
function genSelector(el) {
|
|
116
|
-
if (el.id && !/^[\\d]/.test(el.id) && !/\\s/.test(el.id)) {
|
|
117
|
-
try { if (document.querySelectorAll('#' + CSS.escape(el.id)).length === 1) return '#' + CSS.escape(el.id); } catch (_) {}
|
|
118
|
-
}
|
|
119
|
-
const tid = el.getAttribute('data-testid');
|
|
120
|
-
if (tid) return '[data-testid="' + safeCss(tid) + '"]';
|
|
121
|
-
const al = el.getAttribute('aria-label');
|
|
122
|
-
if (al && al.length < 60) return el.tagName.toLowerCase() + '[aria-label="' + safeCss(al) + '"]';
|
|
123
|
-
const name = el.getAttribute('name');
|
|
124
|
-
if (name && (el.tagName === 'INPUT' || el.tagName === 'SELECT' || el.tagName === 'TEXTAREA')) {
|
|
125
|
-
return el.tagName.toLowerCase() + '[name="' + safeCss(name) + '"]';
|
|
126
|
-
}
|
|
127
|
-
const parts = [];
|
|
128
|
-
let cur = el;
|
|
129
|
-
while (cur && cur.nodeType === 1 && cur !== document.body && parts.length < 6) {
|
|
130
|
-
let part = cur.tagName.toLowerCase();
|
|
131
|
-
const parent = cur.parentElement;
|
|
132
|
-
if (parent) {
|
|
133
|
-
const sib = Array.from(parent.children).filter(s => s.tagName === cur.tagName);
|
|
134
|
-
if (sib.length > 1) {
|
|
135
|
-
part += ':nth-of-type(' + (sib.indexOf(cur) + 1) + ')';
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
parts.unshift(part);
|
|
139
|
-
cur = parent;
|
|
140
|
-
}
|
|
141
|
-
return parts.join(' > ');
|
|
142
|
-
}
|
|
143
|
-
const sel = 'a[href], button, input, select, textarea, [role=button], [role=link], [role=checkbox], [role=tab], [role=menuitem], [contenteditable=true]';
|
|
144
|
-
const interactive = [];
|
|
145
|
-
document.querySelectorAll(sel).forEach((el) => {
|
|
146
|
-
if (!isVisible(el)) return;
|
|
147
|
-
interactive.push({
|
|
148
|
-
tag: el.tagName.toLowerCase(),
|
|
149
|
-
role: el.getAttribute('role') || el.tagName.toLowerCase(),
|
|
150
|
-
text: shortText(el),
|
|
151
|
-
value: 'value' in el ? (el.value || '') : '',
|
|
152
|
-
placeholder: el.getAttribute('placeholder') || '',
|
|
153
|
-
aria_label: el.getAttribute('aria-label') || '',
|
|
154
|
-
name: el.getAttribute('name') || '',
|
|
155
|
-
type: el.getAttribute('type') || '',
|
|
156
|
-
href: el.getAttribute('href') || '',
|
|
157
|
-
disabled: 'disabled' in el ? !!el.disabled : false,
|
|
158
|
-
selector: genSelector(el),
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
const headings = [];
|
|
162
|
-
document.querySelectorAll('h1, h2, h3').forEach((h) => {
|
|
163
|
-
if (!isVisible(h)) return;
|
|
164
|
-
headings.push({ level: h.tagName, text: shortText(h) });
|
|
165
|
-
});
|
|
166
|
-
const visibleText = (document.body && document.body.innerText) ? document.body.innerText.slice(0, 4000) : '';
|
|
167
|
-
return {
|
|
168
|
-
title: document.title,
|
|
169
|
-
url: location.href,
|
|
170
|
-
headings: headings.slice(0, 30),
|
|
171
|
-
text: visibleText,
|
|
172
|
-
interactive: interactive.slice(0, 120),
|
|
173
|
-
};
|
|
174
|
-
})()
|
|
99
|
+
const SNAPSHOT_JS = `
|
|
100
|
+
(() => {
|
|
101
|
+
function isVisible(el) {
|
|
102
|
+
if (!(el instanceof HTMLElement)) return true;
|
|
103
|
+
const style = getComputedStyle(el);
|
|
104
|
+
if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') return false;
|
|
105
|
+
if (el.offsetParent === null && style.position !== 'fixed') return false;
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
function shortText(el) {
|
|
109
|
+
const t = (el.innerText || el.textContent || '').trim();
|
|
110
|
+
return t.length > 120 ? t.slice(0, 120) + '...' : t;
|
|
111
|
+
}
|
|
112
|
+
function safeCss(s) {
|
|
113
|
+
return s.replace(/"/g, '\\\\"');
|
|
114
|
+
}
|
|
115
|
+
function genSelector(el) {
|
|
116
|
+
if (el.id && !/^[\\d]/.test(el.id) && !/\\s/.test(el.id)) {
|
|
117
|
+
try { if (document.querySelectorAll('#' + CSS.escape(el.id)).length === 1) return '#' + CSS.escape(el.id); } catch (_) {}
|
|
118
|
+
}
|
|
119
|
+
const tid = el.getAttribute('data-testid');
|
|
120
|
+
if (tid) return '[data-testid="' + safeCss(tid) + '"]';
|
|
121
|
+
const al = el.getAttribute('aria-label');
|
|
122
|
+
if (al && al.length < 60) return el.tagName.toLowerCase() + '[aria-label="' + safeCss(al) + '"]';
|
|
123
|
+
const name = el.getAttribute('name');
|
|
124
|
+
if (name && (el.tagName === 'INPUT' || el.tagName === 'SELECT' || el.tagName === 'TEXTAREA')) {
|
|
125
|
+
return el.tagName.toLowerCase() + '[name="' + safeCss(name) + '"]';
|
|
126
|
+
}
|
|
127
|
+
const parts = [];
|
|
128
|
+
let cur = el;
|
|
129
|
+
while (cur && cur.nodeType === 1 && cur !== document.body && parts.length < 6) {
|
|
130
|
+
let part = cur.tagName.toLowerCase();
|
|
131
|
+
const parent = cur.parentElement;
|
|
132
|
+
if (parent) {
|
|
133
|
+
const sib = Array.from(parent.children).filter(s => s.tagName === cur.tagName);
|
|
134
|
+
if (sib.length > 1) {
|
|
135
|
+
part += ':nth-of-type(' + (sib.indexOf(cur) + 1) + ')';
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
parts.unshift(part);
|
|
139
|
+
cur = parent;
|
|
140
|
+
}
|
|
141
|
+
return parts.join(' > ');
|
|
142
|
+
}
|
|
143
|
+
const sel = 'a[href], button, input, select, textarea, [role=button], [role=link], [role=checkbox], [role=tab], [role=menuitem], [contenteditable=true]';
|
|
144
|
+
const interactive = [];
|
|
145
|
+
document.querySelectorAll(sel).forEach((el) => {
|
|
146
|
+
if (!isVisible(el)) return;
|
|
147
|
+
interactive.push({
|
|
148
|
+
tag: el.tagName.toLowerCase(),
|
|
149
|
+
role: el.getAttribute('role') || el.tagName.toLowerCase(),
|
|
150
|
+
text: shortText(el),
|
|
151
|
+
value: 'value' in el ? (el.value || '') : '',
|
|
152
|
+
placeholder: el.getAttribute('placeholder') || '',
|
|
153
|
+
aria_label: el.getAttribute('aria-label') || '',
|
|
154
|
+
name: el.getAttribute('name') || '',
|
|
155
|
+
type: el.getAttribute('type') || '',
|
|
156
|
+
href: el.getAttribute('href') || '',
|
|
157
|
+
disabled: 'disabled' in el ? !!el.disabled : false,
|
|
158
|
+
selector: genSelector(el),
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
const headings = [];
|
|
162
|
+
document.querySelectorAll('h1, h2, h3').forEach((h) => {
|
|
163
|
+
if (!isVisible(h)) return;
|
|
164
|
+
headings.push({ level: h.tagName, text: shortText(h) });
|
|
165
|
+
});
|
|
166
|
+
const visibleText = (document.body && document.body.innerText) ? document.body.innerText.slice(0, 4000) : '';
|
|
167
|
+
return {
|
|
168
|
+
title: document.title,
|
|
169
|
+
url: location.href,
|
|
170
|
+
headings: headings.slice(0, 30),
|
|
171
|
+
text: visibleText,
|
|
172
|
+
interactive: interactive.slice(0, 120),
|
|
173
|
+
};
|
|
174
|
+
})()
|
|
175
175
|
`;
|
|
176
176
|
async function evaluateInTab(tabId, expression) {
|
|
177
177
|
const result = (await cdp(tabId, 'Runtime.evaluate', {
|
|
@@ -255,13 +255,13 @@ async function handleTool(state, msg) {
|
|
|
255
255
|
}
|
|
256
256
|
case 'click': {
|
|
257
257
|
const selector = String(p.selector);
|
|
258
|
-
const expr = `
|
|
259
|
-
(() => {
|
|
260
|
-
const el = document.querySelector(${JSON.stringify(selector)});
|
|
261
|
-
if (!el) return null;
|
|
262
|
-
el.scrollIntoView({ block: 'center', inline: 'center' });
|
|
263
|
-
const r = el.getBoundingClientRect();
|
|
264
|
-
return { x: r.left + r.width / 2, y: r.top + r.height / 2, tag: el.tagName.toLowerCase() };
|
|
258
|
+
const expr = `
|
|
259
|
+
(() => {
|
|
260
|
+
const el = document.querySelector(${JSON.stringify(selector)});
|
|
261
|
+
if (!el) return null;
|
|
262
|
+
el.scrollIntoView({ block: 'center', inline: 'center' });
|
|
263
|
+
const r = el.getBoundingClientRect();
|
|
264
|
+
return { x: r.left + r.width / 2, y: r.top + r.height / 2, tag: el.tagName.toLowerCase() };
|
|
265
265
|
})()`;
|
|
266
266
|
const coords = (await evaluateInTab(tabId, expr));
|
|
267
267
|
if (!coords) {
|
|
@@ -302,13 +302,13 @@ async function handleTool(state, msg) {
|
|
|
302
302
|
const selector = String(p.selector);
|
|
303
303
|
const text = String(p.text);
|
|
304
304
|
const clear = !!p.clear;
|
|
305
|
-
const focusExpr = `
|
|
306
|
-
(() => {
|
|
307
|
-
const el = document.querySelector(${JSON.stringify(selector)});
|
|
308
|
-
if (!el) return false;
|
|
309
|
-
el.focus();
|
|
310
|
-
${clear ? "if ('value' in el) { el.value = ''; el.dispatchEvent(new Event('input', { bubbles: true })); }" : ''}
|
|
311
|
-
return true;
|
|
305
|
+
const focusExpr = `
|
|
306
|
+
(() => {
|
|
307
|
+
const el = document.querySelector(${JSON.stringify(selector)});
|
|
308
|
+
if (!el) return false;
|
|
309
|
+
el.focus();
|
|
310
|
+
${clear ? "if ('value' in el) { el.value = ''; el.dispatchEvent(new Event('input', { bubbles: true })); }" : ''}
|
|
311
|
+
return true;
|
|
312
312
|
})()`;
|
|
313
313
|
const focused = await evaluateInTab(tabId, focusExpr);
|
|
314
314
|
if (!focused) {
|
|
@@ -371,6 +371,42 @@ chrome.debugger.onEvent.addListener((source, method, params) => {
|
|
|
371
371
|
return;
|
|
372
372
|
state.debuggerListener(method, params);
|
|
373
373
|
});
|
|
374
|
+
/**
|
|
375
|
+
* Look up the previous browser-link tab_id this Chrome tab had, if any.
|
|
376
|
+
* Stored in chrome.storage.session (cleared when the browser restarts).
|
|
377
|
+
* Used to ask the primary to keep the same tab_id across primary swaps
|
|
378
|
+
* — a key piece of the v0.4 multi-agent UX so the agent does not see
|
|
379
|
+
* stale tab_ids after a re-election.
|
|
380
|
+
*/
|
|
381
|
+
async function readPreviousTabId(chromeTabId) {
|
|
382
|
+
const key = `prevTabId:${chromeTabId}`;
|
|
383
|
+
try {
|
|
384
|
+
const data = await chrome.storage.session.get(key);
|
|
385
|
+
const v = data[key];
|
|
386
|
+
return typeof v === 'string' ? v : undefined;
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
return undefined;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
async function storeTabId(chromeTabId, serverTabId) {
|
|
393
|
+
const key = `prevTabId:${chromeTabId}`;
|
|
394
|
+
try {
|
|
395
|
+
await chrome.storage.session.set({ [key]: serverTabId });
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
/* storage failure is non-fatal — worst case the next reconnect gets a fresh id */
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
async function forgetTabId(chromeTabId) {
|
|
402
|
+
const key = `prevTabId:${chromeTabId}`;
|
|
403
|
+
try {
|
|
404
|
+
await chrome.storage.session.remove(key);
|
|
405
|
+
}
|
|
406
|
+
catch {
|
|
407
|
+
/* ignore */
|
|
408
|
+
}
|
|
409
|
+
}
|
|
374
410
|
async function connectTab(tabId) {
|
|
375
411
|
if (tabStates.has(tabId)) {
|
|
376
412
|
return { ok: false, error: 'Esta pestaña ya está conectada' };
|
|
@@ -379,6 +415,7 @@ async function connectTab(tabId) {
|
|
|
379
415
|
if (!tab.url || !tab.title) {
|
|
380
416
|
return { ok: false, error: 'La pestaña no tiene URL o título' };
|
|
381
417
|
}
|
|
418
|
+
const previousTabId = await readPreviousTabId(tabId);
|
|
382
419
|
try {
|
|
383
420
|
await chrome.debugger.attach({ tabId }, CDP_VERSION);
|
|
384
421
|
}
|
|
@@ -422,7 +459,10 @@ async function connectTab(tabId) {
|
|
|
422
459
|
resolve(result);
|
|
423
460
|
};
|
|
424
461
|
ws.addEventListener('open', () => {
|
|
425
|
-
send(ws, {
|
|
462
|
+
send(ws, {
|
|
463
|
+
kind: 'tab.register',
|
|
464
|
+
payload: { url: tab.url, title: tab.title, previousTabId },
|
|
465
|
+
});
|
|
426
466
|
});
|
|
427
467
|
ws.addEventListener('message', async (ev) => {
|
|
428
468
|
const msg = safeParse(typeof ev.data === 'string' ? ev.data : '');
|
|
@@ -430,6 +470,10 @@ async function connectTab(tabId) {
|
|
|
430
470
|
return;
|
|
431
471
|
if (msg.kind === 'tab.registered') {
|
|
432
472
|
state.serverTabId = msg.payload.tabId;
|
|
473
|
+
// Remember this id so the next reconnect (after a primary swap)
|
|
474
|
+
// asks the new primary to honour it. The primary emits
|
|
475
|
+
// `tab-renamed` in the bridge event log if it can't.
|
|
476
|
+
void storeTabId(tabId, msg.payload.tabId);
|
|
433
477
|
settle({ ok: true, serverTabId: msg.payload.tabId });
|
|
434
478
|
return;
|
|
435
479
|
}
|
|
@@ -451,6 +495,10 @@ async function connectTab(tabId) {
|
|
|
451
495
|
}
|
|
452
496
|
async function disconnectTab(tabId) {
|
|
453
497
|
await cleanup(tabId);
|
|
498
|
+
// Explicit user-driven disconnect → forget the previous tab id so the
|
|
499
|
+
// next "Conectar" starts from a clean slate (vs. an involuntary
|
|
500
|
+
// reconnect where we WANT to keep the id for continuity).
|
|
501
|
+
await forgetTabId(tabId);
|
|
454
502
|
return { ok: true };
|
|
455
503
|
}
|
|
456
504
|
function getTabStatus(tabId) {
|
|
@@ -476,6 +524,8 @@ chrome.runtime.onMessage.addListener((msg, _sender, sendResponse) => {
|
|
|
476
524
|
});
|
|
477
525
|
chrome.tabs.onRemoved.addListener((tabId) => {
|
|
478
526
|
cleanup(tabId).catch(() => { });
|
|
527
|
+
// The Chrome tab is gone — drop any cached browser-link id for it.
|
|
528
|
+
void forgetTabId(tabId);
|
|
479
529
|
});
|
|
480
530
|
chrome.debugger.onDetach.addListener((source) => {
|
|
481
531
|
if (source.tabId === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background.js","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"background.js","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,GAAG,sBAAsB,CAAC;AACtC,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAkD/B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;AAE9C,SAAS,IAAI,CAAC,EAAa,EAAE,GAAsB;IACjD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CACV,KAAa,EACb,MAAc,EACd,SAAkC,EAAE;IAEpC,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAA0B,CAAC;AACzF,CAAC;AAED,SAAS,WAAW,CAAC,KAAe,EAAE,KAAmB;IACvD,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACpD,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAe,EAAE,SAAiB;IAC5D,IAAI,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC/E,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAG,CAAC;YAC1C,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAe;IAC7C,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,MAAe,EAAQ,EAAE;QACzD,MAAM,CAAC,GAAG,MAA6B,CAAC;QACxC,IAAI,MAAM,KAAK,0BAA0B,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAgD,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI;iBACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC7E,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,WAAW,CAAC,KAAK,EAAE;gBACjB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;gBACpC,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK;gBACtB,IAAI;gBACJ,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,KAMX,CAAC;YACF,WAAW,CAAC,KAAK,EAAE;gBACjB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;gBACpC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;gBAClB,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,IAAI,EAAE,CAAC,CAAC,UAAU;aACnB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACxC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YACjD,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC;YACpD,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC;YACpE,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,iBAAiB,CAAC;YACzE,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,0BAA0B,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC;YAClC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC3C,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC;YACvC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,iBAAiB,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,uBAAuB,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC;YACvC,OAAO;QACT,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC;AACpC,CAAC;AAED,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EnB,CAAC;AAEF,KAAK,UAAU,aAAa,CAAc,KAAa,EAAE,UAAkB;IACzE,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE;QACnD,UAAU;QACV,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KAClB,CAAC,CAGD,CAAC;IACF,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,IAAI,mBAAmB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,SAAS,GAAG,MAAM;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC5C,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,MAAM,OAAO,GAA4D,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;YAC3F,IAAI,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACtD,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAe,EAAE,GAAuB;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAwB,CAAC;IACpD,IAAI,CAAC;QACH,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;iBACvD,CAAC;YACJ,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1B,MAAM,eAAe,GAAG,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC;gBAClD,MAAM,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3C,IAAI,eAAe;oBAAE,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;iBACvD,CAAC;YACJ,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACtD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACxE,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,CAAC,CAAC,KAA2B,CAAC;gBAC5C,MAAM,OAAO,GAAG,KAAK;oBACnB,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;oBACtD,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;gBACxB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1E,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,MAAM,GAAI,CAAC,CAAC,UAAiC,EAAE,WAAW,EAAE,CAAC;gBACnE,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY;qBAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;qBACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACvE,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,CAGvE,CAAC;gBACF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACvE,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG;;gDAE2B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;eAKzD,CAAC;gBACR,MAAM,MAAM,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAIxC,CAAC;gBACT,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO;wBACL,IAAI,EAAE,eAAe;wBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,sBAAsB,QAAQ,EAAE;qBACxC,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,CAAC,KAAK,EAAE,0BAA0B,EAAE;oBAC3C,IAAI,EAAE,YAAY;oBAClB,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,CAAC,EAAE,MAAM,CAAC,CAAC;iBACZ,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC,KAAK,EAAE,0BAA0B,EAAE;oBAC3C,IAAI,EAAE,cAAc;oBACpB,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,CAAC;iBACd,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC,KAAK,EAAE,0BAA0B,EAAE;oBAC3C,IAAI,EAAE,eAAe;oBACrB,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,CAAC;iBACd,CAAC,CAAC;gBACH,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;iBAC/C,CAAC;YACJ,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACxB,MAAM,SAAS,GAAG;;gDAEsB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;cAG1D,KAAK,CAAC,CAAC,CAAC,gGAAgG,CAAC,CAAC,CAAC,EAAE;;eAE5G,CAAC;gBACR,MAAM,OAAO,GAAG,MAAM,aAAa,CAAU,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO;wBACL,IAAI,EAAE,eAAe;wBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,sBAAsB,QAAQ,EAAE;qBACxC,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;iBACzC,CAAC;YACJ,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACxC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACrD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACxE,CAAC;YAED;gBACE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAChG,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,KAAa;IAClC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC7D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,gBAAgB;QAAE,OAAO;IACrC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IAClD,MAAM,GAAG,GAAG,aAAa,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,WAAmB;IAChE,MAAM,GAAG,GAAG,aAAa,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;IACpF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,WAAmB;IAC5C,MAAM,GAAG,GAAG,aAAa,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAa;IACrC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC9F,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAa;QACtB,KAAK;QACL,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,YAAY,EAAE,EAAE;KACjB,CAAC;IACF,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5B,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAChC,MAAM,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC/B,MAAM,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACvF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IAEd,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;QAC5C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,MAAqB,EAAQ,EAAE;YAC7C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAC/B,IAAI,CAAC,EAAE,EAAE;gBACP,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAM,EAAE,aAAa,EAAE;aAC7D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAgB,EAAE,EAAE;YACxD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAClC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;gBACtC,gEAAgE;gBAChE,uDAAuD;gBACvD,qDAAqD;gBACrD,KAAK,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC9C,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;oBAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+DAA+D,EAAE,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAa;IACxC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,sEAAsE;IACtE,gEAAgE;IAChE,0DAA0D;IAC1D,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACxC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;IAClE,IAAI,GAAG,EAAE,MAAM,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/D,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,EAAE,MAAM,KAAK,YAAY,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,EAAE,MAAM,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9D,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/B,mEAAmE;IACnE,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;IAC9C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "browser-link",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"description": "Bridge between Chrome and an MCP client (Claude Code, OpenCode, …). Per-tab manual activation.",
|
|
4
|
+
"version": "0.4.0",
|
|
5
|
+
"description": "Bridge between Chrome and an MCP client (Claude Code, OpenCode, GitHub Copilot CLI, …). Per-tab manual activation.",
|
|
6
6
|
"permissions": ["debugger", "activeTab", "storage", "tabs"],
|
|
7
7
|
"host_permissions": [],
|
|
8
8
|
"icons": {
|
package/dist/map/db.js
CHANGED
|
@@ -42,34 +42,34 @@ function migrateLegacyDb(targetPath) {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
function runMigrations(db) {
|
|
45
|
-
db.exec(`
|
|
46
|
-
CREATE TABLE IF NOT EXISTS apps (
|
|
47
|
-
id INTEGER PRIMARY KEY,
|
|
48
|
-
origin TEXT NOT NULL,
|
|
49
|
-
app_key TEXT NOT NULL,
|
|
50
|
-
title TEXT,
|
|
51
|
-
notes TEXT,
|
|
52
|
-
created_at TEXT NOT NULL,
|
|
53
|
-
last_seen_at TEXT NOT NULL,
|
|
54
|
-
UNIQUE(origin, app_key)
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
CREATE TABLE IF NOT EXISTS entries (
|
|
58
|
-
id INTEGER PRIMARY KEY,
|
|
59
|
-
app_id INTEGER NOT NULL REFERENCES apps(id) ON DELETE CASCADE,
|
|
60
|
-
url_pattern TEXT NOT NULL,
|
|
61
|
-
kind TEXT NOT NULL CHECK (kind IN ('selector', 'flow', 'gotcha')),
|
|
62
|
-
purpose TEXT NOT NULL,
|
|
63
|
-
payload TEXT NOT NULL,
|
|
64
|
-
verified_at TEXT,
|
|
65
|
-
failed_at TEXT,
|
|
66
|
-
notes TEXT,
|
|
67
|
-
created_at TEXT NOT NULL,
|
|
68
|
-
updated_at TEXT NOT NULL,
|
|
69
|
-
UNIQUE(app_id, url_pattern, kind, purpose)
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
CREATE INDEX IF NOT EXISTS idx_entries_lookup ON entries(app_id, url_pattern);
|
|
45
|
+
db.exec(`
|
|
46
|
+
CREATE TABLE IF NOT EXISTS apps (
|
|
47
|
+
id INTEGER PRIMARY KEY,
|
|
48
|
+
origin TEXT NOT NULL,
|
|
49
|
+
app_key TEXT NOT NULL,
|
|
50
|
+
title TEXT,
|
|
51
|
+
notes TEXT,
|
|
52
|
+
created_at TEXT NOT NULL,
|
|
53
|
+
last_seen_at TEXT NOT NULL,
|
|
54
|
+
UNIQUE(origin, app_key)
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
CREATE TABLE IF NOT EXISTS entries (
|
|
58
|
+
id INTEGER PRIMARY KEY,
|
|
59
|
+
app_id INTEGER NOT NULL REFERENCES apps(id) ON DELETE CASCADE,
|
|
60
|
+
url_pattern TEXT NOT NULL,
|
|
61
|
+
kind TEXT NOT NULL CHECK (kind IN ('selector', 'flow', 'gotcha')),
|
|
62
|
+
purpose TEXT NOT NULL,
|
|
63
|
+
payload TEXT NOT NULL,
|
|
64
|
+
verified_at TEXT,
|
|
65
|
+
failed_at TEXT,
|
|
66
|
+
notes TEXT,
|
|
67
|
+
created_at TEXT NOT NULL,
|
|
68
|
+
updated_at TEXT NOT NULL,
|
|
69
|
+
UNIQUE(app_id, url_pattern, kind, purpose)
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_entries_lookup ON entries(app_id, url_pattern);
|
|
73
73
|
`);
|
|
74
74
|
}
|
|
75
75
|
export function closeDb() {
|
package/dist/map/queries.js
CHANGED
|
@@ -49,7 +49,7 @@ export function upsertApp(input) {
|
|
|
49
49
|
return db.prepare('SELECT * FROM apps WHERE id = ?').get(existing.id);
|
|
50
50
|
}
|
|
51
51
|
const info = db
|
|
52
|
-
.prepare(`INSERT INTO apps (origin, app_key, title, notes, created_at, last_seen_at)
|
|
52
|
+
.prepare(`INSERT INTO apps (origin, app_key, title, notes, created_at, last_seen_at)
|
|
53
53
|
VALUES (?, ?, ?, ?, ?, ?)`)
|
|
54
54
|
.run(input.origin, app_key, input.title ?? null, input.notes ?? null, ts, ts);
|
|
55
55
|
return db.prepare('SELECT * FROM apps WHERE id = ?').get(info.lastInsertRowid);
|
|
@@ -67,8 +67,8 @@ export function saveEntry(input) {
|
|
|
67
67
|
.prepare(`SELECT * FROM entries WHERE app_id = ? AND url_pattern = ? AND kind = ? AND purpose = ?`)
|
|
68
68
|
.get(app.id, input.url_pattern, input.kind, input.purpose);
|
|
69
69
|
if (existing) {
|
|
70
|
-
db.prepare(`UPDATE entries
|
|
71
|
-
SET payload = ?, notes = COALESCE(?, notes), verified_at = ?, failed_at = NULL, updated_at = ?
|
|
70
|
+
db.prepare(`UPDATE entries
|
|
71
|
+
SET payload = ?, notes = COALESCE(?, notes), verified_at = ?, failed_at = NULL, updated_at = ?
|
|
72
72
|
WHERE id = ?`).run(payloadJson, input.notes ?? null, ts, ts, existing.id);
|
|
73
73
|
const updated = db
|
|
74
74
|
.prepare('SELECT * FROM entries WHERE id = ?')
|
|
@@ -76,7 +76,7 @@ export function saveEntry(input) {
|
|
|
76
76
|
return { app, entry: hydrate(updated) };
|
|
77
77
|
}
|
|
78
78
|
const info = db
|
|
79
|
-
.prepare(`INSERT INTO entries (app_id, url_pattern, kind, purpose, payload, verified_at, notes, created_at, updated_at)
|
|
79
|
+
.prepare(`INSERT INTO entries (app_id, url_pattern, kind, purpose, payload, verified_at, notes, created_at, updated_at)
|
|
80
80
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
81
81
|
.run(app.id, input.url_pattern, input.kind, input.purpose, payloadJson, ts, input.notes ?? null, ts, ts);
|
|
82
82
|
const inserted = db
|
|
@@ -1,54 +1,54 @@
|
|
|
1
1
|
/** Usage protocol pushed to the MCP client on `initialize`. Plain string,
|
|
2
2
|
* intentionally kept short. Edit here when the protocol changes. */
|
|
3
|
-
export const SERVER_INSTRUCTIONS = `browser-link bridges Claude Code to the Chrome tabs the user has
|
|
4
|
-
explicitly connected through the companion extension, and ships a
|
|
5
|
-
persistent UI map backed by a local SQLite DB. The data dir resolves
|
|
6
|
-
per-OS via env-paths (\$XDG_DATA_HOME/browser-link on Linux,
|
|
7
|
-
~/Library/Application Support/browser-link on macOS, %APPDATA%/browser-link
|
|
8
|
-
on Windows). Override with \$BROWSER_LINK_DATA_DIR. The map is private
|
|
9
|
-
and per-machine; never persisted in any repo.
|
|
10
|
-
|
|
11
|
-
## When operating on a tab
|
|
12
|
-
|
|
13
|
-
1. Before doing anything on a tab whose URL you don't already know,
|
|
14
|
-
call \`browser.map.recall\` with { origin } (and optionally url) to load
|
|
15
|
-
selectors, flows and gotchas previously learned for that app.
|
|
16
|
-
2. If recall returns entries with \`failed_at\` more recent than
|
|
17
|
-
\`verified_at\`, treat them as suspect: re-verify (snapshot / evaluate)
|
|
18
|
-
before reusing, or replace them.
|
|
19
|
-
3. After every interaction that used a map entry, call
|
|
20
|
-
\`browser.map.record_use\` with { entry_id, ok }. ok=true updates
|
|
21
|
-
verified_at; ok=false updates failed_at. Keep the map honest.
|
|
22
|
-
4. After a non-trivial flow that worked end-to-end, persist it with
|
|
23
|
-
\`browser.map.save\`. Three \`kind\` values:
|
|
24
|
-
- selector: { selector, evidence? } — a CSS selector tied to a purpose.
|
|
25
|
-
- flow: { steps: [...] } — an ordered list of actions to reach an outcome.
|
|
26
|
-
- gotcha: { body } — free-form note about something non-obvious.
|
|
27
|
-
Use \`url_pattern\` = pathname (exact). Promote to glob only if you have
|
|
28
|
-
evidence of a parametric route. Provide \`purpose\` as a stable, reusable
|
|
29
|
-
label ("open task detail dialog", not "open IB0311 detail").
|
|
30
|
-
5. Never save selectors or flows you have not just successfully executed.
|
|
31
|
-
6. Never store domain data (IDs, user names, dates, etc.). The map captures
|
|
32
|
-
UI structure only.
|
|
33
|
-
|
|
34
|
-
## Identifying the app
|
|
35
|
-
|
|
36
|
-
- \`origin\` = scheme://host:port of the tab.
|
|
37
|
-
- \`app_key\` distinguishes apps that share an origin over time. On first
|
|
38
|
-
save you may omit it; it will be derived from the page title (slugified).
|
|
39
|
-
Use \`browser.map.rename_app\` if that initial guess is poor.
|
|
40
|
-
|
|
41
|
-
## When something is wrong
|
|
42
|
-
|
|
43
|
-
- A selector from recall fails → record_use({ok:false}), learn the new
|
|
44
|
-
one, save it (upsert on purpose).
|
|
45
|
-
- A whole app got refactored → \`browser.map.forget\` the app_id and let
|
|
46
|
-
the map repopulate as you learn the new structure.
|
|
47
|
-
- A tool call fails with "Tab not connected: tab_X" → call
|
|
48
|
-
\`browser.events\` to see whether the bridge changed primary (the
|
|
49
|
-
Chrome tab probably got a new tab_id after a reconnect). Look for a
|
|
50
|
-
\`tab-renamed\` event with previous=tab_X and resume on the current id.
|
|
51
|
-
|
|
52
|
-
The map is a cache of navigation, not a substitute for \`browser.snapshot\`.
|
|
3
|
+
export const SERVER_INSTRUCTIONS = `browser-link bridges Claude Code to the Chrome tabs the user has
|
|
4
|
+
explicitly connected through the companion extension, and ships a
|
|
5
|
+
persistent UI map backed by a local SQLite DB. The data dir resolves
|
|
6
|
+
per-OS via env-paths (\$XDG_DATA_HOME/browser-link on Linux,
|
|
7
|
+
~/Library/Application Support/browser-link on macOS, %APPDATA%/browser-link
|
|
8
|
+
on Windows). Override with \$BROWSER_LINK_DATA_DIR. The map is private
|
|
9
|
+
and per-machine; never persisted in any repo.
|
|
10
|
+
|
|
11
|
+
## When operating on a tab
|
|
12
|
+
|
|
13
|
+
1. Before doing anything on a tab whose URL you don't already know,
|
|
14
|
+
call \`browser.map.recall\` with { origin } (and optionally url) to load
|
|
15
|
+
selectors, flows and gotchas previously learned for that app.
|
|
16
|
+
2. If recall returns entries with \`failed_at\` more recent than
|
|
17
|
+
\`verified_at\`, treat them as suspect: re-verify (snapshot / evaluate)
|
|
18
|
+
before reusing, or replace them.
|
|
19
|
+
3. After every interaction that used a map entry, call
|
|
20
|
+
\`browser.map.record_use\` with { entry_id, ok }. ok=true updates
|
|
21
|
+
verified_at; ok=false updates failed_at. Keep the map honest.
|
|
22
|
+
4. After a non-trivial flow that worked end-to-end, persist it with
|
|
23
|
+
\`browser.map.save\`. Three \`kind\` values:
|
|
24
|
+
- selector: { selector, evidence? } — a CSS selector tied to a purpose.
|
|
25
|
+
- flow: { steps: [...] } — an ordered list of actions to reach an outcome.
|
|
26
|
+
- gotcha: { body } — free-form note about something non-obvious.
|
|
27
|
+
Use \`url_pattern\` = pathname (exact). Promote to glob only if you have
|
|
28
|
+
evidence of a parametric route. Provide \`purpose\` as a stable, reusable
|
|
29
|
+
label ("open task detail dialog", not "open IB0311 detail").
|
|
30
|
+
5. Never save selectors or flows you have not just successfully executed.
|
|
31
|
+
6. Never store domain data (IDs, user names, dates, etc.). The map captures
|
|
32
|
+
UI structure only.
|
|
33
|
+
|
|
34
|
+
## Identifying the app
|
|
35
|
+
|
|
36
|
+
- \`origin\` = scheme://host:port of the tab.
|
|
37
|
+
- \`app_key\` distinguishes apps that share an origin over time. On first
|
|
38
|
+
save you may omit it; it will be derived from the page title (slugified).
|
|
39
|
+
Use \`browser.map.rename_app\` if that initial guess is poor.
|
|
40
|
+
|
|
41
|
+
## When something is wrong
|
|
42
|
+
|
|
43
|
+
- A selector from recall fails → record_use({ok:false}), learn the new
|
|
44
|
+
one, save it (upsert on purpose).
|
|
45
|
+
- A whole app got refactored → \`browser.map.forget\` the app_id and let
|
|
46
|
+
the map repopulate as you learn the new structure.
|
|
47
|
+
- A tool call fails with "Tab not connected: tab_X" → call
|
|
48
|
+
\`browser.events\` to see whether the bridge changed primary (the
|
|
49
|
+
Chrome tab probably got a new tab_id after a reconnect). Look for a
|
|
50
|
+
\`tab-renamed\` event with previous=tab_X and resume on the current id.
|
|
51
|
+
|
|
52
|
+
The map is a cache of navigation, not a substitute for \`browser.snapshot\`.
|
|
53
53
|
The live snapshot is always the source of truth.`;
|
|
54
54
|
//# sourceMappingURL=server-instructions.js.map
|
package/package.json
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@jobshimo/browser-link",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server that bridges Claude Code, OpenCode, GitHub Copilot CLI and other MCP clients to a Chrome tab. Per-tool permissions, multi-agent mode (multiple MCP clients sharing one bridge), persistent UI map across sessions.",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"mcp",
|
|
7
|
-
"model-context-protocol",
|
|
8
|
-
"claude",
|
|
9
|
-
"claude-code",
|
|
10
|
-
"opencode",
|
|
11
|
-
"github-copilot",
|
|
12
|
-
"copilot-cli",
|
|
13
|
-
"chrome",
|
|
14
|
-
"browser-automation",
|
|
15
|
-
"ai-tools",
|
|
16
|
-
"permissions"
|
|
17
|
-
],
|
|
18
|
-
"homepage": "https://github.com/jobshimo/browser-link#readme",
|
|
19
|
-
"bugs": {
|
|
20
|
-
"url": "https://github.com/jobshimo/browser-link/issues"
|
|
21
|
-
},
|
|
22
|
-
"repository": {
|
|
23
|
-
"type": "git",
|
|
24
|
-
"url": "git+https://github.com/jobshimo/browser-link.git",
|
|
25
|
-
"directory": "packages/server"
|
|
26
|
-
},
|
|
27
|
-
"license": "MIT",
|
|
28
|
-
"author": "Martín Miguel Bernal",
|
|
29
|
-
"type": "module",
|
|
30
|
-
"main": "./dist/index.js",
|
|
31
|
-
"bin": {
|
|
32
|
-
"browser-link": "./dist/cli.js"
|
|
33
|
-
},
|
|
34
|
-
"files": [
|
|
35
|
-
"dist",
|
|
36
|
-
"README.md",
|
|
37
|
-
"LICENSE"
|
|
38
|
-
],
|
|
39
|
-
"publishConfig": {
|
|
40
|
-
"access": "public"
|
|
41
|
-
},
|
|
42
|
-
"scripts": {
|
|
43
|
-
"build": "tsc",
|
|
44
|
-
"dev": "tsx watch src/cli.ts",
|
|
45
|
-
"try": "tsx src/cli.ts",
|
|
46
|
-
"start": "node dist/cli.js",
|
|
47
|
-
"typecheck": "tsc --noEmit",
|
|
48
|
-
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
49
|
-
"test": "vitest run",
|
|
50
|
-
"test:watch": "vitest",
|
|
51
|
-
"prepublishOnly": "npm run clean && npm run build && node ./scripts/prepare-publish.mjs"
|
|
52
|
-
},
|
|
53
|
-
"dependencies": {
|
|
54
|
-
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
55
|
-
"better-sqlite3": "^
|
|
56
|
-
"env-paths": "^3.0.0",
|
|
57
|
-
"ink": "^
|
|
58
|
-
"react": "^18.3.1",
|
|
59
|
-
"ws": "^8.18.0"
|
|
60
|
-
},
|
|
61
|
-
"devDependencies": {
|
|
62
|
-
"@types/better-sqlite3": "^7.6.11",
|
|
63
|
-
"@types/node": "^22.0.0",
|
|
64
|
-
"@types/react": "^18.3.28",
|
|
65
|
-
"@types/ws": "^8.5.13",
|
|
66
|
-
"tsx": "^4.19.0",
|
|
67
|
-
"typescript": "^
|
|
68
|
-
"vitest": "^
|
|
69
|
-
}
|
|
70
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@jobshimo/browser-link",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "MCP server that bridges Claude Code, OpenCode, GitHub Copilot CLI and other MCP clients to a Chrome tab. Per-tool permissions, multi-agent mode (multiple MCP clients sharing one bridge), persistent UI map across sessions.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"mcp",
|
|
7
|
+
"model-context-protocol",
|
|
8
|
+
"claude",
|
|
9
|
+
"claude-code",
|
|
10
|
+
"opencode",
|
|
11
|
+
"github-copilot",
|
|
12
|
+
"copilot-cli",
|
|
13
|
+
"chrome",
|
|
14
|
+
"browser-automation",
|
|
15
|
+
"ai-tools",
|
|
16
|
+
"permissions"
|
|
17
|
+
],
|
|
18
|
+
"homepage": "https://github.com/jobshimo/browser-link#readme",
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/jobshimo/browser-link/issues"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/jobshimo/browser-link.git",
|
|
25
|
+
"directory": "packages/server"
|
|
26
|
+
},
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"author": "Martín Miguel Bernal",
|
|
29
|
+
"type": "module",
|
|
30
|
+
"main": "./dist/index.js",
|
|
31
|
+
"bin": {
|
|
32
|
+
"browser-link": "./dist/cli.js"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist",
|
|
36
|
+
"README.md",
|
|
37
|
+
"LICENSE"
|
|
38
|
+
],
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"dev": "tsx watch src/cli.ts",
|
|
45
|
+
"try": "tsx src/cli.ts",
|
|
46
|
+
"start": "node dist/cli.js",
|
|
47
|
+
"typecheck": "tsc --noEmit",
|
|
48
|
+
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
49
|
+
"test": "vitest run",
|
|
50
|
+
"test:watch": "vitest",
|
|
51
|
+
"prepublishOnly": "npm run clean && npm run build && node ./scripts/prepare-publish.mjs"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
55
|
+
"better-sqlite3": "^12.9.0",
|
|
56
|
+
"env-paths": "^3.0.0",
|
|
57
|
+
"ink": "^7.0.2",
|
|
58
|
+
"react": "^18.3.1",
|
|
59
|
+
"ws": "^8.18.0"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/better-sqlite3": "^7.6.11",
|
|
63
|
+
"@types/node": "^22.0.0",
|
|
64
|
+
"@types/react": "^18.3.28",
|
|
65
|
+
"@types/ws": "^8.5.13",
|
|
66
|
+
"tsx": "^4.19.0",
|
|
67
|
+
"typescript": "^6.0.3",
|
|
68
|
+
"vitest": "^4.1.6"
|
|
69
|
+
}
|
|
70
|
+
}
|