@jobshimo/browser-link 0.1.0 → 0.4.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 +58 -21
- package/dist/bridge/client.d.ts +101 -0
- package/dist/bridge/client.js +435 -0
- package/dist/bridge/client.js.map +1 -0
- package/dist/bridge/dispatch.d.ts +29 -0
- package/dist/bridge/dispatch.js +39 -0
- package/dist/bridge/dispatch.js.map +1 -0
- package/dist/bridge/events.d.ts +39 -0
- package/dist/bridge/events.js +47 -0
- package/dist/bridge/events.js.map +1 -0
- package/dist/bridge/protocol.d.ts +80 -0
- package/dist/bridge/protocol.js +79 -0
- package/dist/bridge/protocol.js.map +1 -0
- package/dist/bridge/server.d.ts +42 -0
- package/dist/bridge/server.js +336 -0
- package/dist/bridge/server.js.map +1 -0
- package/dist/bridge/token.d.ts +17 -0
- package/dist/bridge/token.js +79 -0
- package/dist/bridge/token.js.map +1 -0
- package/dist/cli.js +132 -39
- package/dist/cli.js.map +1 -1
- package/dist/commands/about.d.ts +3 -6
- package/dist/commands/about.js +2 -18
- package/dist/commands/about.js.map +1 -1
- package/dist/commands/doctor.d.ts +12 -1
- package/dist/commands/doctor.js +90 -20
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/extension.d.ts +3 -2
- package/dist/commands/extension.js +53 -28
- package/dist/commands/extension.js.map +1 -1
- package/dist/commands/multi-agent.d.ts +7 -0
- package/dist/commands/multi-agent.js +109 -0
- package/dist/commands/multi-agent.js.map +1 -0
- package/dist/commands/tools.d.ts +11 -0
- package/dist/commands/tools.js +168 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commands/updates.d.ts +20 -0
- package/dist/commands/updates.js +100 -0
- package/dist/commands/updates.js.map +1 -0
- package/dist/commands/welcome.d.ts +2 -1
- package/dist/commands/welcome.js +11 -47
- package/dist/commands/welcome.js.map +1 -1
- package/dist/config.d.ts +25 -3
- package/dist/config.js +35 -2
- package/dist/config.js.map +1 -1
- package/dist/installers/copilot.d.ts +2 -0
- package/dist/installers/copilot.js +72 -0
- package/dist/installers/copilot.js.map +1 -0
- package/dist/installers/index.js +2 -1
- package/dist/installers/index.js.map +1 -1
- package/dist/installers/types.d.ts +1 -1
- package/dist/messages.d.ts +7 -0
- package/dist/permissions.d.ts +37 -0
- package/dist/permissions.js +156 -0
- package/dist/permissions.js.map +1 -0
- package/dist/server.d.ts +7 -3
- package/dist/server.js +160 -32
- package/dist/server.js.map +1 -1
- package/dist/tools/browser-definitions.js +18 -0
- package/dist/tools/browser-definitions.js.map +1 -1
- package/dist/tools/browser-dispatch.d.ts +7 -0
- package/dist/tools/browser-dispatch.js +11 -0
- package/dist/tools/browser-dispatch.js.map +1 -1
- package/dist/tools/server-instructions.d.ts +1 -1
- package/dist/tools/server-instructions.js +4 -0
- package/dist/tools/server-instructions.js.map +1 -1
- package/dist/ui/app.d.ts +7 -0
- package/dist/ui/app.js +77 -0
- package/dist/ui/app.js.map +1 -0
- package/dist/ui/components.d.ts +18 -0
- package/dist/ui/components.js +27 -0
- package/dist/ui/components.js.map +1 -0
- package/dist/ui/screens.d.ts +61 -0
- package/dist/ui/screens.js +603 -0
- package/dist/ui/screens.js.map +1 -0
- package/dist/ui/start.d.ts +6 -0
- package/dist/ui/start.js +19 -0
- package/dist/ui/start.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +15 -0
- package/dist/version.js.map +1 -0
- package/package.json +10 -4
- package/dist/commands/menu.d.ts +0 -25
- package/dist/commands/menu.js +0 -167
- package/dist/commands/menu.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -4,38 +4,118 @@ import { installAll, installFor } from './commands/install.js';
|
|
|
4
4
|
import { uninstallAll, uninstallFor } from './commands/uninstall.js';
|
|
5
5
|
import { printExtensionInstructions } from './commands/extension.js';
|
|
6
6
|
import { printAbout } from './commands/about.js';
|
|
7
|
+
import { checkUpdates, formatUpdate } from './commands/updates.js';
|
|
8
|
+
import { runToolsCommand } from './commands/tools.js';
|
|
9
|
+
import { runMultiAgentCommand } from './commands/multi-agent.js';
|
|
7
10
|
import { loadConfig } from './config.js';
|
|
8
|
-
|
|
11
|
+
import { VERSION } from './version.js';
|
|
12
|
+
function buildHelp(language) {
|
|
13
|
+
if (language === 'es') {
|
|
14
|
+
return `browser-link ${VERSION} — puente entre cualquier cliente MCP y las pestañas de Chrome que vos habilites.
|
|
15
|
+
|
|
16
|
+
Uso:
|
|
17
|
+
browser-link Abre el setup interactivo (registrar un
|
|
18
|
+
cliente, ver pasos de la extensión, doctor,
|
|
19
|
+
buscar actualizaciones) cuando se invoca
|
|
20
|
+
desde una terminal.
|
|
21
|
+
Cuando lo invoca un cliente MCP por stdio,
|
|
22
|
+
arranca el servidor MCP.
|
|
23
|
+
browser-link install Registra browser-link en todos los clientes detectados.
|
|
24
|
+
browser-link install --client <claude|opencode|copilot>
|
|
25
|
+
Registra sólo en el cliente nombrado.
|
|
26
|
+
browser-link uninstall Elimina todos los registros.
|
|
27
|
+
browser-link uninstall --client <id>
|
|
28
|
+
Elimina sólo el registro nombrado.
|
|
29
|
+
browser-link extension Muestra la ruta de los assets de la extensión
|
|
30
|
+
de Chrome y los pasos por SO.
|
|
31
|
+
browser-link doctor Diagnostica el setup actual (clientes, servidor, extensión, base del mapa).
|
|
32
|
+
browser-link updates Consulta el registry de npm en busca de versión nueva.
|
|
33
|
+
browser-link tools Muestra qué tools MCP están habilitadas / deshabilitadas.
|
|
34
|
+
browser-link tools enable <nombre…> Vuelve a habilitar tools concretas.
|
|
35
|
+
browser-link tools disable <nombre…> Deshabilita tools concretas.
|
|
36
|
+
browser-link tools preset <id> Aplica un preset: all | readonly | no-eval | no-map.
|
|
37
|
+
browser-link multi-agent Estado del modo multi-agente y re-elección automática.
|
|
38
|
+
browser-link multi-agent enable | disable
|
|
39
|
+
browser-link multi-agent auto-reelect enable | disable
|
|
40
|
+
browser-link about Muestra la explicación completa.
|
|
41
|
+
browser-link version Muestra la versión instalada (también: --version, -v).
|
|
42
|
+
browser-link help Este mensaje.
|
|
43
|
+
|
|
44
|
+
Variables de entorno:
|
|
45
|
+
BROWSER_LINK_DATA_DIR Sobreescribe la ruta de la base (default por SO).
|
|
46
|
+
BROWSER_LINK_BIN Sobreescribe el comando guardado en los configs
|
|
47
|
+
de los clientes (p. ej. "node /path/to/dist/index.js" en dev).
|
|
48
|
+
COPILOT_HOME Sobreescribe el directorio de config del CLI de
|
|
49
|
+
GitHub Copilot (default ~/.copilot).`;
|
|
50
|
+
}
|
|
51
|
+
return `browser-link ${VERSION} — bridge any MCP client to the Chrome tabs you enable.
|
|
9
52
|
|
|
10
53
|
Usage:
|
|
11
54
|
browser-link When invoked from an interactive terminal,
|
|
12
|
-
opens
|
|
13
|
-
|
|
14
|
-
When invoked by
|
|
15
|
-
starts the MCP server
|
|
16
|
-
browser-link install Register browser-link
|
|
17
|
-
browser-link
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
browser-link
|
|
55
|
+
opens the setup UI (register a client, show
|
|
56
|
+
extension steps, run doctor, check updates).
|
|
57
|
+
When invoked by an MCP client over stdio,
|
|
58
|
+
starts the MCP server.
|
|
59
|
+
browser-link install Register browser-link in every detected client.
|
|
60
|
+
browser-link install --client <claude|opencode|copilot>
|
|
61
|
+
Register only in the named client.
|
|
62
|
+
browser-link uninstall Remove every registration.
|
|
63
|
+
browser-link uninstall --client <id>
|
|
64
|
+
Remove only the named registration.
|
|
65
|
+
browser-link extension Show the Chrome extension assets path and
|
|
66
|
+
per-OS install instructions.
|
|
67
|
+
browser-link doctor Diagnose current setup (clients, server, extension, map DB).
|
|
68
|
+
browser-link updates Check the npm registry for a newer version.
|
|
69
|
+
browser-link tools Show which MCP tools are enabled / disabled.
|
|
70
|
+
browser-link tools enable <name…> Re-enable specific tools.
|
|
71
|
+
browser-link tools disable <name…> Disable specific tools.
|
|
72
|
+
browser-link tools preset <id> Apply a preset: all | readonly | no-eval | no-map.
|
|
73
|
+
browser-link multi-agent Show multi-agent mode + auto-reelect status.
|
|
74
|
+
browser-link multi-agent enable | disable
|
|
75
|
+
browser-link multi-agent auto-reelect enable | disable
|
|
21
76
|
browser-link about Show the full explanation of what this is and how it works.
|
|
77
|
+
browser-link version Print the installed version (also: --version, -v).
|
|
22
78
|
browser-link help This message.
|
|
23
79
|
|
|
24
80
|
Environment:
|
|
25
81
|
BROWSER_LINK_DATA_DIR Override the DB location (defaults per OS).
|
|
26
82
|
BROWSER_LINK_BIN Override the command stored in client configs
|
|
27
|
-
(e.g. "node /path/to/dist/index.js" for dev)
|
|
28
|
-
|
|
83
|
+
(e.g. "node /path/to/dist/index.js" for dev).
|
|
84
|
+
COPILOT_HOME Override GitHub Copilot CLI's config dir
|
|
85
|
+
(default ~/.copilot).`;
|
|
86
|
+
}
|
|
87
|
+
const CLI_I18N = {
|
|
88
|
+
en: {
|
|
89
|
+
help: '',
|
|
90
|
+
restartHint: 'Restart the MCP client so it picks up the registration.',
|
|
91
|
+
installNext: 'Next: install the Chrome extension — run `browser-link extension`.',
|
|
92
|
+
toolsRestart: 'Restart your MCP client so it picks up the change.',
|
|
93
|
+
unknownCommand: (cmd) => `Unknown command: ${cmd}`,
|
|
94
|
+
unknownClient: (val) => `Unknown --client value: ${val}. Use claude, opencode or copilot.`,
|
|
95
|
+
},
|
|
96
|
+
es: {
|
|
97
|
+
help: '',
|
|
98
|
+
restartHint: 'Reiniciá el cliente MCP para que tome el registro.',
|
|
99
|
+
installNext: 'Siguiente: instalá la extensión de Chrome — corré `browser-link extension`.',
|
|
100
|
+
toolsRestart: 'Reiniciá el cliente MCP para que tome el cambio.',
|
|
101
|
+
unknownCommand: (cmd) => `Comando desconocido: ${cmd}`,
|
|
102
|
+
unknownClient: (val) => `Valor de --client desconocido: ${val}. Usá claude, opencode o copilot.`,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
function parseClient(argv, language) {
|
|
29
106
|
const idx = argv.findIndex((a) => a === '--client');
|
|
30
107
|
if (idx === -1 || idx === argv.length - 1)
|
|
31
108
|
return null;
|
|
32
109
|
const val = argv[idx + 1];
|
|
33
|
-
if (val === 'claude' || val === 'opencode')
|
|
110
|
+
if (val === 'claude' || val === 'opencode' || val === 'copilot')
|
|
34
111
|
return val;
|
|
35
|
-
throw new Error(
|
|
112
|
+
throw new Error(CLI_I18N[language].unknownClient(val ?? ''));
|
|
36
113
|
}
|
|
37
114
|
async function dispatch(argv) {
|
|
38
115
|
const [cmd, ...rest] = argv;
|
|
116
|
+
const cfg = loadConfig();
|
|
117
|
+
const language = cfg.language ?? 'en';
|
|
118
|
+
const t = CLI_I18N[language];
|
|
39
119
|
switch (cmd) {
|
|
40
120
|
case undefined:
|
|
41
121
|
case 'start': {
|
|
@@ -46,67 +126,80 @@ async function dispatch(argv) {
|
|
|
46
126
|
case 'help':
|
|
47
127
|
case '-h':
|
|
48
128
|
case '--help': {
|
|
49
|
-
console.log(
|
|
129
|
+
console.log(buildHelp(language));
|
|
50
130
|
return;
|
|
51
131
|
}
|
|
52
132
|
case 'install': {
|
|
53
|
-
const client = parseClient(rest);
|
|
133
|
+
const client = parseClient(rest, language);
|
|
54
134
|
const reports = client ? [installFor(client)] : installAll();
|
|
55
135
|
for (const r of reports) {
|
|
56
136
|
const prefix = r.installedClient ? '✓' : '·';
|
|
57
137
|
console.log(`${prefix} ${r.displayName}: ${r.message}`);
|
|
58
138
|
}
|
|
59
139
|
console.log('');
|
|
60
|
-
console.log(
|
|
61
|
-
console.log(
|
|
140
|
+
console.log(t.restartHint);
|
|
141
|
+
console.log(t.installNext);
|
|
62
142
|
return;
|
|
63
143
|
}
|
|
64
144
|
case 'uninstall': {
|
|
65
|
-
const client = parseClient(rest);
|
|
145
|
+
const client = parseClient(rest, language);
|
|
66
146
|
const reports = client ? [uninstallFor(client)] : uninstallAll();
|
|
67
147
|
for (const r of reports)
|
|
68
148
|
console.log(`· ${r.displayName}: ${r.message}`);
|
|
69
149
|
return;
|
|
70
150
|
}
|
|
71
151
|
case 'extension': {
|
|
72
|
-
printExtensionInstructions();
|
|
152
|
+
printExtensionInstructions(language);
|
|
73
153
|
return;
|
|
74
154
|
}
|
|
75
155
|
case 'doctor': {
|
|
76
156
|
const report = await runDoctor();
|
|
77
|
-
console.log(formatDoctor(report));
|
|
157
|
+
console.log(formatDoctor(report, language));
|
|
78
158
|
return;
|
|
79
159
|
}
|
|
80
160
|
case 'about': {
|
|
81
|
-
|
|
82
|
-
|
|
161
|
+
printAbout(language);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
case 'updates': {
|
|
165
|
+
const info = await checkUpdates();
|
|
166
|
+
console.log(formatUpdate(info, language));
|
|
167
|
+
// Non-zero exit when we could not reach the registry, so scripts can detect it.
|
|
168
|
+
if (info.error || info.latest === null)
|
|
169
|
+
process.exit(2);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
case 'tools': {
|
|
173
|
+
console.log(runToolsCommand(rest, language));
|
|
174
|
+
console.log('');
|
|
175
|
+
console.log(t.toolsRestart);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
case 'multi-agent': {
|
|
179
|
+
console.log(runMultiAgentCommand(rest, language));
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
case 'version':
|
|
183
|
+
case '-v':
|
|
184
|
+
case '--version': {
|
|
185
|
+
console.log(VERSION);
|
|
83
186
|
return;
|
|
84
187
|
}
|
|
85
188
|
default: {
|
|
86
|
-
console.error(
|
|
189
|
+
console.error(t.unknownCommand(cmd));
|
|
87
190
|
console.error('');
|
|
88
|
-
console.error(
|
|
191
|
+
console.error(buildHelp(language));
|
|
89
192
|
process.exit(2);
|
|
90
193
|
}
|
|
91
194
|
}
|
|
92
195
|
}
|
|
93
196
|
const argv = process.argv.slice(2);
|
|
94
|
-
// No args + both stdin and stdout are TTYs → human in a terminal:
|
|
95
|
-
//
|
|
96
|
-
// setup menu in the chosen language.
|
|
197
|
+
// No args + both stdin and stdout are TTYs → human in a terminal: mount the
|
|
198
|
+
// Ink-based UI (welcome on first run, then the setup menu).
|
|
97
199
|
// Otherwise (no TTY anywhere, or output piped) → start the MCP server over stdio.
|
|
98
200
|
if (argv.length === 0 && process.stdin.isTTY && process.stdout.isTTY) {
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
let language = cfg.language ?? 'en';
|
|
102
|
-
if (!cfg.skipWelcome) {
|
|
103
|
-
const { runWelcome } = await import('./commands/welcome.js');
|
|
104
|
-
const welcome = await runWelcome({ initial: language });
|
|
105
|
-
if (welcome.action === 'quit')
|
|
106
|
-
process.exit(0);
|
|
107
|
-
language = welcome.language;
|
|
108
|
-
}
|
|
109
|
-
await runMenu(language);
|
|
201
|
+
const { startUI } = await import('./ui/start.js');
|
|
202
|
+
await startUI();
|
|
110
203
|
process.exit(0);
|
|
111
204
|
}
|
|
112
205
|
dispatch(argv).catch((err) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/about.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Language } from './welcome.js';
|
|
2
|
-
interface AboutI18n {
|
|
2
|
+
export interface AboutI18n {
|
|
3
3
|
title: string;
|
|
4
4
|
whatTitle: string;
|
|
5
5
|
what: string;
|
|
@@ -17,9 +17,6 @@ interface AboutI18n {
|
|
|
17
17
|
help: string;
|
|
18
18
|
}
|
|
19
19
|
export declare const I18N_ABOUT: Record<Language, AboutI18n>;
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
export declare function runAbout(language?: Language): Promise<void>;
|
|
23
|
-
/** Non-interactive about — `browser-link about`. Plain output, no prompts. */
|
|
20
|
+
/** Non-interactive about — `browser-link about`. Plain output, no prompts.
|
|
21
|
+
* The interactive version lives in the Ink UI (`ui/screens.tsx`). */
|
|
24
22
|
export declare function printAbout(language?: Language): void;
|
|
25
|
-
export {};
|
package/dist/commands/about.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as p from '@clack/prompts';
|
|
2
1
|
export const I18N_ABOUT = {
|
|
3
2
|
en: {
|
|
4
3
|
title: 'browser-link — about',
|
|
@@ -182,23 +181,8 @@ export const I18N_ABOUT = {
|
|
|
182
181
|
].join('\n'),
|
|
183
182
|
},
|
|
184
183
|
};
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
p.note(t.how, t.howTitle);
|
|
188
|
-
p.note(t.binding, t.bindingTitle);
|
|
189
|
-
p.note(t.bridgeTools, t.bridgeToolsTitle);
|
|
190
|
-
p.note(t.mapTools, t.mapToolsTitle);
|
|
191
|
-
p.note(t.privacy, t.privacyTitle);
|
|
192
|
-
p.note(t.help, t.helpTitle);
|
|
193
|
-
}
|
|
194
|
-
/** Interactive about screen — used from the setup menu. Falls back to the
|
|
195
|
-
* caller's prompt loop afterwards (no explicit "press any key"). */
|
|
196
|
-
export async function runAbout(language = 'en') {
|
|
197
|
-
const t = I18N_ABOUT[language];
|
|
198
|
-
p.log.message(t.title);
|
|
199
|
-
renderAbout(t);
|
|
200
|
-
}
|
|
201
|
-
/** Non-interactive about — `browser-link about`. Plain output, no prompts. */
|
|
184
|
+
/** Non-interactive about — `browser-link about`. Plain output, no prompts.
|
|
185
|
+
* The interactive version lives in the Ink UI (`ui/screens.tsx`). */
|
|
202
186
|
export function printAbout(language = 'en') {
|
|
203
187
|
const t = I18N_ABOUT[language];
|
|
204
188
|
const sections = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/commands/about.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/commands/about.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,UAAU,GAAgC;IACrD,EAAE,EAAE;QACF,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE;YACJ,oEAAoE;YACpE,qEAAqE;YACrE,kEAAkE;YAClE,EAAE;YACF,4BAA4B;YAC5B,qEAAqE;YACrE,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,6CAA6C;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAE,mBAAmB;QAC7B,GAAG,EAAE;YACH,sEAAsE;YACtE,oEAAoE;YACpE,qEAAqE;YACrE,oEAAoE;YACpE,4DAA4D;SAC7D,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,YAAY,EAAE,uCAAuC;QACrD,OAAO,EAAE;YACP,kEAAkE;YAClE,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,qEAAqE;YACrE,gEAAgE;YAChE,EAAE;YACF,qEAAqE;YACrE,oEAAoE;YACpE,2DAA2D;SAC5D,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,gBAAgB,EAAE,sCAAsC;QACxD,WAAW,EAAE;YACX,gDAAgD;YAChD,sDAAsD;YACtD,2EAA2E;YAC3E,+CAA+C;YAC/C,6DAA6D;YAC7D,+CAA+C;YAC/C,+DAA+D;YAC/D,kEAAkE;YAClE,kEAAkE;YAClE,iEAAiE;SAClE,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,aAAa,EAAE,8CAA8C;QAC7D,QAAQ,EAAE;YACR,kEAAkE;YAClE,kEAAkE;YAClE,qEAAqE;YACrE,kDAAkD;YAClD,EAAE;YACF,kEAAkE;YAClE,gEAAgE;YAChE,kEAAkE;YAClE,6DAA6D;YAC7D,kEAAkE;YAClE,4CAA4C;SAC7C,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,YAAY,EAAE,uBAAuB;QACrC,OAAO,EAAE;YACP,qBAAqB;YACrB,iDAAiD;YACjD,gEAAgE;YAChE,4CAA4C;YAC5C,wCAAwC;YACxC,iEAAiE;YACjE,kDAAkD;YAClD,+DAA+D;YAC/D,kEAAkE;SACnE,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,SAAS,EAAE,0BAA0B;QACrC,IAAI,EAAE;YACJ,oDAAoD;YACpD,2DAA2D;YAC3D,EAAE;YACF,qBAAqB;YACrB,+DAA+D;YAC/D,uEAAuE;YACvE,qEAAqE;YACrE,2CAA2C;YAC3C,kDAAkD;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC;KACb;IACD,EAAE,EAAE;QACF,KAAK,EAAE,4BAA4B;QACnC,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE;YACJ,mEAAmE;YACnE,qEAAqE;YACrE,qEAAqE;YACrE,iDAAiD;YACjD,EAAE;YACF,mBAAmB;YACnB,mEAAmE;YACnE,iBAAiB;YACjB,gEAAgE;YAChE,8DAA8D;YAC9D,oEAAoE;YACpE,gEAAgE;YAChE,4BAA4B;SAC7B,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAE,iBAAiB;QAC3B,GAAG,EAAE;YACH,sEAAsE;YACtE,qEAAqE;YACrE,oEAAoE;YACpE,kEAAkE;YAClE,4DAA4D;SAC7D,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,YAAY,EAAE,4CAA4C;QAC1D,OAAO,EAAE;YACP,gEAAgE;YAChE,uEAAuE;YACvE,iEAAiE;YACjE,qEAAqE;YACrE,iEAAiE;YACjE,kEAAkE;YAClE,gBAAgB;YAChB,EAAE;YACF,kEAAkE;YAClE,mEAAmE;YACnE,2BAA2B;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,gBAAgB,EAAE,iDAAiD;QACnE,WAAW,EAAE;YACX,uDAAuD;YACvD,8DAA8D;YAC9D,+EAA+E;YAC/E,yDAAyD;YACzD,wEAAwE;YACxE,iDAAiD;YACjD,4EAA4E;YAC5E,wEAAwE;YACxE,sEAAsE;YACtE,mEAAmE;SACpE,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,aAAa,EAAE,iDAAiD;QAChE,QAAQ,EAAE;YACR,mEAAmE;YACnE,oEAAoE;YACpE,oEAAoE;YACpE,iDAAiD;YACjD,EAAE;YACF,2DAA2D;YAC3D,gEAAgE;YAChE,iEAAiE;YACjE,gEAAgE;YAChE,6DAA6D;YAC7D,kDAAkD;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,YAAY,EAAE,2BAA2B;QACzC,OAAO,EAAE;YACP,0BAA0B;YAC1B,iDAAiD;YACjD,gEAAgE;YAChE,4CAA4C;YAC5C,6CAA6C;YAC7C,iEAAiE;YACjE,8CAA8C;YAC9C,iEAAiE;YACjE,6DAA6D;YAC7D,mCAAmC;SACpC,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,SAAS,EAAE,uBAAuB;QAClC,IAAI,EAAE;YACJ,oDAAoD;YACpD,2DAA2D;YAC3D,EAAE;YACF,qBAAqB;YACrB,gEAAgE;YAChE,uEAAuE;YACvE,qEAAqE;YACrE,gDAAgD;YAChD,yDAAyD;SAC1D,CAAC,IAAI,CAAC,IAAI,CAAC;KACb;CACF,CAAC;AAEF;qEACqE;AACrE,MAAM,UAAU,UAAU,CAAC,WAAqB,IAAI;IAClD,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAsC;QAClD,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACpC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE;QAClC,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;QAC1C,EAAE,KAAK,EAAE,CAAC,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QAClD,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC5C,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;QAC1C,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KACrC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Language } from './welcome.js';
|
|
1
2
|
export interface DoctorReport {
|
|
2
3
|
ws: {
|
|
3
4
|
listening: boolean;
|
|
@@ -5,6 +6,16 @@ export interface DoctorReport {
|
|
|
5
6
|
host: string;
|
|
6
7
|
port: number;
|
|
7
8
|
};
|
|
9
|
+
ipc: {
|
|
10
|
+
listening: boolean;
|
|
11
|
+
detail: string;
|
|
12
|
+
host: string;
|
|
13
|
+
port: number;
|
|
14
|
+
};
|
|
15
|
+
multiAgent: {
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
autoReelect: boolean;
|
|
18
|
+
};
|
|
8
19
|
clients: {
|
|
9
20
|
id: string;
|
|
10
21
|
displayName: string;
|
|
@@ -26,4 +37,4 @@ export interface DoctorReport {
|
|
|
26
37
|
};
|
|
27
38
|
}
|
|
28
39
|
export declare function runDoctor(): Promise<DoctorReport>;
|
|
29
|
-
export declare function formatDoctor(r: DoctorReport): string;
|
|
40
|
+
export declare function formatDoctor(r: DoctorReport, language?: Language): string;
|
package/dist/commands/doctor.js
CHANGED
|
@@ -5,6 +5,8 @@ import { getAllowedBrowsers } from '../auth/allowlist.js';
|
|
|
5
5
|
import { getDbPath } from '../map/paths.js';
|
|
6
6
|
import { listApps } from '../map/queries.js';
|
|
7
7
|
import { resolveExtensionPath } from './extension.js';
|
|
8
|
+
import { loadConfig } from '../config.js';
|
|
9
|
+
import { IPC_HOST, IPC_PORT } from '../bridge/protocol.js';
|
|
8
10
|
const WS_HOST = '127.0.0.1';
|
|
9
11
|
const WS_PORT = 17529;
|
|
10
12
|
function checkPort(host, port, timeoutMs = 500) {
|
|
@@ -31,6 +33,7 @@ function checkPort(host, port, timeoutMs = 500) {
|
|
|
31
33
|
}
|
|
32
34
|
export async function runDoctor() {
|
|
33
35
|
const ws = await checkPort(WS_HOST, WS_PORT);
|
|
36
|
+
const ipc = await checkPort(IPC_HOST, IPC_PORT);
|
|
34
37
|
const clients = INSTALLERS.map((i) => {
|
|
35
38
|
const d = i.detect();
|
|
36
39
|
return { id: i.id, displayName: i.displayName, ...d };
|
|
@@ -48,8 +51,11 @@ export async function runDoctor() {
|
|
|
48
51
|
apps = -1;
|
|
49
52
|
}
|
|
50
53
|
}
|
|
54
|
+
const cfg = loadConfig();
|
|
51
55
|
return {
|
|
52
56
|
ws: { ...ws, host: WS_HOST, port: WS_PORT },
|
|
57
|
+
ipc: { ...ipc, host: IPC_HOST, port: IPC_PORT },
|
|
58
|
+
multiAgent: { enabled: cfg.multiAgent === true, autoReelect: cfg.autoReelect === true },
|
|
53
59
|
clients,
|
|
54
60
|
extension: { path: extPath },
|
|
55
61
|
map: { dbPath, exists: dbExists, sizeBytes, apps },
|
|
@@ -59,52 +65,116 @@ export async function runDoctor() {
|
|
|
59
65
|
function symbol(ok) {
|
|
60
66
|
return ok ? '✓' : '✗';
|
|
61
67
|
}
|
|
62
|
-
|
|
68
|
+
const DOCTOR_I18N = {
|
|
69
|
+
en: {
|
|
70
|
+
title: 'browser-link doctor',
|
|
71
|
+
wsBridge: 'WebSocket bridge',
|
|
72
|
+
wsHint: ' (the server is launched by your MCP client; open Claude Code / OpenCode / Copilot CLI to start it)',
|
|
73
|
+
clientsHeader: 'MCP clients:',
|
|
74
|
+
clientNotInstalled: '✗ not installed',
|
|
75
|
+
clientRegistered: '✓ registered',
|
|
76
|
+
clientNotRegistered: '⚠ installed but not registered',
|
|
77
|
+
clientConfig: 'config:',
|
|
78
|
+
extensionHeader: 'Chrome extension assets:',
|
|
79
|
+
extensionNotFound: 'not found (run `browser-link extension` for guidance)',
|
|
80
|
+
mapHeader: 'Map DB:',
|
|
81
|
+
mapPath: 'path:',
|
|
82
|
+
mapNotCreated: ' (not created yet — will be initialized on first run)',
|
|
83
|
+
mapSize: 'size:',
|
|
84
|
+
mapApps: 'apps tracked:',
|
|
85
|
+
processBinding: 'Process binding:',
|
|
86
|
+
processBindingNone: ' ✗ no allowlist for this OS — incoming WS connections will be rejected.',
|
|
87
|
+
processBindingOk: (n) => ` ✓ accepts WS connections from ${n} known browser binaries.`,
|
|
88
|
+
multiAgentHeader: 'Multi-agent:',
|
|
89
|
+
multiAgentMode: ' Mode ',
|
|
90
|
+
autoReelect: ' Auto-reelect ',
|
|
91
|
+
on: 'on',
|
|
92
|
+
off: 'off',
|
|
93
|
+
ipcLine: ' IPC port ',
|
|
94
|
+
ipcListening: 'listening (a primary is running)',
|
|
95
|
+
ipcFree: 'free (no primary on this machine)',
|
|
96
|
+
},
|
|
97
|
+
es: {
|
|
98
|
+
title: 'browser-link doctor',
|
|
99
|
+
wsBridge: 'Puente WebSocket',
|
|
100
|
+
wsHint: ' (lo arranca tu cliente MCP; abrí Claude Code / OpenCode / Copilot CLI para iniciarlo)',
|
|
101
|
+
clientsHeader: 'Clientes MCP:',
|
|
102
|
+
clientNotInstalled: '✗ no instalado',
|
|
103
|
+
clientRegistered: '✓ registrado',
|
|
104
|
+
clientNotRegistered: '⚠ instalado pero no registrado',
|
|
105
|
+
clientConfig: 'config:',
|
|
106
|
+
extensionHeader: 'Assets de la extensión de Chrome:',
|
|
107
|
+
extensionNotFound: 'no encontrada (corré `browser-link extension` para la guía)',
|
|
108
|
+
mapHeader: 'Base de datos del mapa:',
|
|
109
|
+
mapPath: 'ruta:',
|
|
110
|
+
mapNotCreated: ' (todavía no se creó — se inicializa en el primer arranque)',
|
|
111
|
+
mapSize: 'tamaño:',
|
|
112
|
+
mapApps: 'apps registradas:',
|
|
113
|
+
processBinding: 'Validación por proceso:',
|
|
114
|
+
processBindingNone: ' ✗ sin allowlist para este SO — las conexiones WS entrantes se rechazan.',
|
|
115
|
+
processBindingOk: (n) => ` ✓ acepta conexiones WS desde ${n} binarios de navegador conocidos.`,
|
|
116
|
+
multiAgentHeader: 'Multi-agente:',
|
|
117
|
+
multiAgentMode: ' Modo ',
|
|
118
|
+
autoReelect: ' Re-elección auto ',
|
|
119
|
+
on: 'activado',
|
|
120
|
+
off: 'desactivado',
|
|
121
|
+
ipcLine: ' Puerto IPC ',
|
|
122
|
+
ipcListening: 'escuchando (hay un primary corriendo)',
|
|
123
|
+
ipcFree: 'libre (no hay primary en esta máquina)',
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
export function formatDoctor(r, language = 'en') {
|
|
127
|
+
const t = DOCTOR_I18N[language];
|
|
63
128
|
const lines = [];
|
|
64
|
-
lines.push(
|
|
129
|
+
lines.push(t.title);
|
|
65
130
|
lines.push('');
|
|
66
|
-
lines.push(
|
|
131
|
+
lines.push(`${t.wsBridge} ${symbol(r.ws.listening)} ${r.ws.host}:${r.ws.port} — ${r.ws.detail}`);
|
|
67
132
|
if (!r.ws.listening) {
|
|
68
|
-
lines.push(
|
|
133
|
+
lines.push(t.wsHint);
|
|
69
134
|
}
|
|
70
135
|
lines.push('');
|
|
71
|
-
lines.push(
|
|
136
|
+
lines.push(t.clientsHeader);
|
|
72
137
|
for (const c of r.clients) {
|
|
73
138
|
const status = !c.installed
|
|
74
|
-
?
|
|
139
|
+
? t.clientNotInstalled
|
|
75
140
|
: c.registered
|
|
76
|
-
?
|
|
77
|
-
:
|
|
78
|
-
lines.push(` ${c.displayName.padEnd(
|
|
79
|
-
lines.push(` ${' '.repeat(
|
|
141
|
+
? t.clientRegistered
|
|
142
|
+
: t.clientNotRegistered;
|
|
143
|
+
lines.push(` ${c.displayName.padEnd(20)} ${status}`);
|
|
144
|
+
lines.push(` ${' '.repeat(20)} ${t.clientConfig} ${c.configPath}`);
|
|
80
145
|
}
|
|
81
146
|
lines.push('');
|
|
82
|
-
lines.push(
|
|
147
|
+
lines.push(t.extensionHeader);
|
|
83
148
|
if (r.extension.path) {
|
|
84
149
|
lines.push(` ${symbol(true)} ${r.extension.path}`);
|
|
85
150
|
}
|
|
86
151
|
else {
|
|
87
|
-
lines.push(` ${symbol(false)}
|
|
152
|
+
lines.push(` ${symbol(false)} ${t.extensionNotFound}`);
|
|
88
153
|
}
|
|
89
154
|
lines.push('');
|
|
90
|
-
lines.push(
|
|
91
|
-
lines.push(`
|
|
155
|
+
lines.push(t.mapHeader);
|
|
156
|
+
lines.push(` ${t.mapPath} ${r.map.dbPath}`);
|
|
92
157
|
if (!r.map.exists) {
|
|
93
|
-
lines.push(
|
|
158
|
+
lines.push(t.mapNotCreated);
|
|
94
159
|
}
|
|
95
160
|
else {
|
|
96
|
-
lines.push(`
|
|
97
|
-
lines.push(`
|
|
161
|
+
lines.push(` ${t.mapSize} ${r.map.sizeBytes} bytes`);
|
|
162
|
+
lines.push(` ${t.mapApps} ${r.map.apps}`);
|
|
98
163
|
}
|
|
99
164
|
lines.push('');
|
|
100
|
-
lines.push(
|
|
165
|
+
lines.push(t.processBinding);
|
|
101
166
|
if (r.security.allowedBrowsers.length === 0) {
|
|
102
|
-
lines.push(
|
|
167
|
+
lines.push(t.processBindingNone);
|
|
103
168
|
}
|
|
104
169
|
else {
|
|
105
|
-
lines.push(
|
|
170
|
+
lines.push(t.processBindingOk(r.security.allowedBrowsers.length));
|
|
106
171
|
lines.push(` (${r.security.allowedBrowsers.slice(0, 4).join(', ')}${r.security.allowedBrowsers.length > 4 ? ', …' : ''})`);
|
|
107
172
|
}
|
|
173
|
+
lines.push('');
|
|
174
|
+
lines.push(t.multiAgentHeader);
|
|
175
|
+
lines.push(`${t.multiAgentMode}${r.multiAgent.enabled ? t.on : t.off}`);
|
|
176
|
+
lines.push(`${t.autoReelect}${r.multiAgent.autoReelect ? t.on : t.off}`);
|
|
177
|
+
lines.push(`${t.ipcLine}${r.ipc.listening ? t.ipcListening : t.ipcFree}`);
|
|
108
178
|
return lines.join('\n');
|
|
109
179
|
}
|
|
110
180
|
//# sourceMappingURL=doctor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,MAAM,OAAO,GAAG,KAAK,CAAC;AAOtB,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,SAAS,GAAG,GAAG;IAC5D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,CAAC,SAAkB,EAAE,MAAc,EAAE,EAAE;YACpD,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,SAAS,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9F,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,EAAE,6BAA6B,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;YAClD,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;gBAAE,MAAM,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;;gBACnE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Language } from './welcome.js';
|
|
1
2
|
/**
|
|
2
3
|
* Resolve the absolute path to the Chrome extension assets.
|
|
3
4
|
* Tries the npm-install layout first, then the monorepo dev layout.
|
|
@@ -8,5 +9,5 @@ export interface ExtensionInfo {
|
|
|
8
9
|
path: string | null;
|
|
9
10
|
hints: string;
|
|
10
11
|
}
|
|
11
|
-
export declare function getExtensionInfo(): ExtensionInfo;
|
|
12
|
-
export declare function printExtensionInstructions(): void;
|
|
12
|
+
export declare function getExtensionInfo(language?: Language): ExtensionInfo;
|
|
13
|
+
export declare function printExtensionInstructions(language?: Language): void;
|