@jobshimo/browser-link 0.2.0 → 0.4.1

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.
Files changed (63) hide show
  1. package/README.md +37 -0
  2. package/dist/bridge/client.d.ts +101 -0
  3. package/dist/bridge/client.js +435 -0
  4. package/dist/bridge/client.js.map +1 -0
  5. package/dist/bridge/dispatch.d.ts +29 -0
  6. package/dist/bridge/dispatch.js +39 -0
  7. package/dist/bridge/dispatch.js.map +1 -0
  8. package/dist/bridge/events.d.ts +39 -0
  9. package/dist/bridge/events.js +47 -0
  10. package/dist/bridge/events.js.map +1 -0
  11. package/dist/bridge/protocol.d.ts +80 -0
  12. package/dist/bridge/protocol.js +79 -0
  13. package/dist/bridge/protocol.js.map +1 -0
  14. package/dist/bridge/server.d.ts +42 -0
  15. package/dist/bridge/server.js +336 -0
  16. package/dist/bridge/server.js.map +1 -0
  17. package/dist/bridge/token.d.ts +17 -0
  18. package/dist/bridge/token.js +79 -0
  19. package/dist/bridge/token.js.map +1 -0
  20. package/dist/cli.js +106 -15
  21. package/dist/cli.js.map +1 -1
  22. package/dist/commands/doctor.d.ts +12 -1
  23. package/dist/commands/doctor.js +90 -20
  24. package/dist/commands/doctor.js.map +1 -1
  25. package/dist/commands/extension.d.ts +3 -2
  26. package/dist/commands/extension.js +53 -28
  27. package/dist/commands/extension.js.map +1 -1
  28. package/dist/commands/free-port.d.ts +21 -0
  29. package/dist/commands/free-port.js +146 -0
  30. package/dist/commands/free-port.js.map +1 -0
  31. package/dist/commands/multi-agent.d.ts +7 -0
  32. package/dist/commands/multi-agent.js +109 -0
  33. package/dist/commands/multi-agent.js.map +1 -0
  34. package/dist/commands/tools.d.ts +11 -0
  35. package/dist/commands/tools.js +168 -0
  36. package/dist/commands/tools.js.map +1 -0
  37. package/dist/commands/updates.d.ts +2 -1
  38. package/dist/commands/updates.js +24 -7
  39. package/dist/commands/updates.js.map +1 -1
  40. package/dist/config.d.ts +25 -3
  41. package/dist/config.js +35 -2
  42. package/dist/config.js.map +1 -1
  43. package/dist/messages.d.ts +7 -0
  44. package/dist/permissions.d.ts +37 -0
  45. package/dist/permissions.js +156 -0
  46. package/dist/permissions.js.map +1 -0
  47. package/dist/server.d.ts +7 -3
  48. package/dist/server.js +196 -32
  49. package/dist/server.js.map +1 -1
  50. package/dist/tools/browser-definitions.js +18 -0
  51. package/dist/tools/browser-definitions.js.map +1 -1
  52. package/dist/tools/browser-dispatch.d.ts +7 -0
  53. package/dist/tools/browser-dispatch.js +11 -0
  54. package/dist/tools/browser-dispatch.js.map +1 -1
  55. package/dist/tools/server-instructions.d.ts +1 -1
  56. package/dist/tools/server-instructions.js +4 -0
  57. package/dist/tools/server-instructions.js.map +1 -1
  58. package/dist/ui/app.js +20 -1
  59. package/dist/ui/app.js.map +1 -1
  60. package/dist/ui/screens.d.ts +18 -1
  61. package/dist/ui/screens.js +395 -2
  62. package/dist/ui/screens.js.map +1 -1
  63. package/package.json +4 -3
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Box, Text, useInput } from 'ink';
3
- import { useEffect, useState } from 'react';
3
+ import { useEffect, useMemo, useState } from 'react';
4
4
  import { Frame, Menu } from './components.js';
5
5
  import { I18N_WELCOME } from '../commands/welcome.js';
6
6
  import { I18N_ABOUT } from '../commands/about.js';
@@ -8,7 +8,10 @@ import { INSTALLERS } from '../installers/index.js';
8
8
  import { runDoctor, formatDoctor } from '../commands/doctor.js';
9
9
  import { getExtensionInfo } from '../commands/extension.js';
10
10
  import { checkUpdates } from '../commands/updates.js';
11
+ import { runFreePort } from '../commands/free-port.js';
11
12
  import { PACKAGE_NAME } from '../version.js';
13
+ import { loadConfig, saveConfig } from '../config.js';
14
+ import { PRESETS, TOOL_CATALOGUE, sanitizeDisabledTools, } from '../permissions.js';
12
15
  export function WelcomeScreen({ language, hideDismiss, onAccept, onDismiss, onSwapLang, onQuit, }) {
13
16
  const t = I18N_WELCOME[language];
14
17
  const items = [
@@ -54,9 +57,13 @@ const MENU_I18N = {
54
57
  footer: '↑↓ navigate · ↵ select · l language · q quit',
55
58
  options: {
56
59
  register: 'Register browser-link with an MCP client',
60
+ permissions: 'Permissions — pick which MCP tools to expose',
61
+ multiAgent: 'Multi-agent — let multiple MCP clients share one bridge',
57
62
  extension: 'Show Chrome extension install steps',
58
63
  doctor: 'Run doctor (diagnose current setup)',
59
64
  updates: 'Check for updates on npm',
65
+ freePort: 'Free port — stop a stuck browser-link holding 17529',
66
+ language: 'Language — switch between English and Español',
60
67
  welcome: 'Show the welcome screen',
61
68
  about: 'About / Help — what is this and how it works',
62
69
  repo: 'Open the GitHub repository',
@@ -69,9 +76,13 @@ const MENU_I18N = {
69
76
  footer: '↑↓ moverse · ↵ elegir · l idioma · q salir',
70
77
  options: {
71
78
  register: 'Registrar browser-link en un cliente MCP',
79
+ permissions: 'Permisos — elegí qué tools del MCP se exponen',
80
+ multiAgent: 'Multi-agente — varios clientes MCP comparten el mismo puente',
72
81
  extension: 'Ver pasos para instalar la extensión de Chrome',
73
82
  doctor: 'Diagnóstico (estado actual de la instalación)',
74
83
  updates: 'Buscar actualizaciones en npm',
84
+ freePort: 'Liberar puerto — matar el browser-link colgado en 17529',
85
+ language: 'Idioma — cambiar entre English y Español',
75
86
  welcome: 'Mostrar la pantalla de bienvenida',
76
87
  about: 'Información / ayuda — qué es esto y cómo funciona',
77
88
  repo: 'Abrir el repositorio en GitHub',
@@ -81,7 +92,20 @@ const MENU_I18N = {
81
92
  };
82
93
  export function MainMenu({ language, onSelect, onSwapLang, onQuit }) {
83
94
  const t = MENU_I18N[language];
84
- const items = ['register', 'extension', 'doctor', 'updates', 'welcome', 'about', 'repo', 'quit'].map((a) => ({ value: a, label: t.options[a] }));
95
+ const items = [
96
+ 'register',
97
+ 'permissions',
98
+ 'multiAgent',
99
+ 'extension',
100
+ 'doctor',
101
+ 'updates',
102
+ 'freePort',
103
+ 'language',
104
+ 'welcome',
105
+ 'about',
106
+ 'repo',
107
+ 'quit',
108
+ ].map((a) => ({ value: a, label: t.options[a] }));
85
109
  const [idx, setIdx] = useState(0);
86
110
  useInput((input, key) => {
87
111
  if (key.upArrow)
@@ -240,6 +264,135 @@ export function AboutView({ language, onBack }) {
240
264
  function AboutSection({ title, body }) {
241
265
  return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: title }), _jsx(Text, { children: body })] }));
242
266
  }
267
+ /* ── Permissions ───────────────────────────────────────────────────────── */
268
+ const PERM_I18N = {
269
+ en: {
270
+ title: 'Permissions — pick which MCP tools to expose',
271
+ intro: 'Apply a preset (↵) or toggle individual tools (Space). Press s to save.',
272
+ presetsHeader: 'Presets',
273
+ bridgeHeader: 'Browser bridge',
274
+ mapHeader: 'Persistent UI map',
275
+ applyPrefix: 'Apply: ',
276
+ unsaved: '* Unsaved changes — press s to save',
277
+ saved: '✓ Saved.',
278
+ restart: 'Changes take effect the next time your MCP client starts the server.',
279
+ footer: '↑↓ navigate · Space toggle · ↵ apply preset · s save · Esc back',
280
+ },
281
+ es: {
282
+ title: 'Permisos — elegí qué tools del MCP se exponen',
283
+ intro: 'Aplicá un preset (↵) o cambiá tools individuales (Espacio). Apretá s para guardar.',
284
+ presetsHeader: 'Presets',
285
+ bridgeHeader: 'Bridge del browser',
286
+ mapHeader: 'Mapa persistente',
287
+ applyPrefix: 'Aplicar: ',
288
+ unsaved: '* Cambios sin guardar — apretá s para guardar',
289
+ saved: '✓ Guardado.',
290
+ restart: 'Los cambios tienen efecto la próxima vez que el cliente MCP arranque el servidor.',
291
+ footer: '↑↓ moverse · Espacio cambiar · ↵ aplicar preset · s guardar · Esc volver',
292
+ },
293
+ };
294
+ function setsDiffer(a, b) {
295
+ if (a.size !== b.size)
296
+ return true;
297
+ for (const x of a)
298
+ if (!b.has(x))
299
+ return true;
300
+ return false;
301
+ }
302
+ export function PermissionsView({ language, onBack }) {
303
+ const t = PERM_I18N[language];
304
+ const rows = useMemo(() => {
305
+ const r = [];
306
+ for (const preset of PRESETS)
307
+ r.push({ kind: 'preset', preset });
308
+ r.push({ kind: 'header', family: 'bridge' });
309
+ for (const tool of TOOL_CATALOGUE) {
310
+ if (tool.family === 'bridge')
311
+ r.push({ kind: 'tool', tool });
312
+ }
313
+ r.push({ kind: 'header', family: 'map' });
314
+ for (const tool of TOOL_CATALOGUE) {
315
+ if (tool.family === 'map')
316
+ r.push({ kind: 'tool', tool });
317
+ }
318
+ return r;
319
+ }, []);
320
+ const initial = useMemo(() => new Set(loadConfig().disabledTools ?? []), []);
321
+ const [savedDisabled, setSavedDisabled] = useState(initial);
322
+ const [disabled, setDisabled] = useState(initial);
323
+ const firstNonHeader = rows.findIndex((r) => r.kind !== 'header');
324
+ const [cursor, setCursor] = useState(firstNonHeader);
325
+ const [justSaved, setJustSaved] = useState(false);
326
+ const move = (dir) => {
327
+ setCursor((idx) => {
328
+ let i = idx;
329
+ for (let n = 0; n < rows.length; n++) {
330
+ i = (i + dir + rows.length) % rows.length;
331
+ if (rows[i].kind !== 'header')
332
+ return i;
333
+ }
334
+ return idx;
335
+ });
336
+ };
337
+ const toggleTool = (name) => {
338
+ setDisabled((prev) => {
339
+ const next = new Set(prev);
340
+ if (next.has(name))
341
+ next.delete(name);
342
+ else
343
+ next.add(name);
344
+ return next;
345
+ });
346
+ setJustSaved(false);
347
+ };
348
+ const applyPreset = (preset) => {
349
+ setDisabled(new Set(preset.disabled));
350
+ setJustSaved(false);
351
+ };
352
+ const save = () => {
353
+ const list = sanitizeDisabledTools([...disabled]);
354
+ saveConfig({ disabledTools: list });
355
+ setSavedDisabled(new Set(list));
356
+ setJustSaved(true);
357
+ };
358
+ useInput((input, key) => {
359
+ if (key.upArrow)
360
+ move(-1);
361
+ else if (key.downArrow)
362
+ move(1);
363
+ else if (input === ' ') {
364
+ const row = rows[cursor];
365
+ if (row?.kind === 'tool')
366
+ toggleTool(row.tool.name);
367
+ }
368
+ else if (key.return) {
369
+ const row = rows[cursor];
370
+ if (row?.kind === 'preset')
371
+ applyPreset(row.preset);
372
+ }
373
+ else if (input === 's' || input === 'S') {
374
+ save();
375
+ }
376
+ else if (input === 'q' || key.escape)
377
+ onBack();
378
+ });
379
+ const unsaved = setsDiffer(disabled, savedDisabled);
380
+ return (_jsxs(Frame, { title: t.title, footer: t.footer, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "white", children: t.intro }) }), _jsx(Box, { flexDirection: "column", children: rows.map((row, i) => {
381
+ if (row.kind === 'header') {
382
+ const label = row.family === 'bridge' ? t.bridgeHeader : t.mapHeader;
383
+ return (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "cyan", bold: true, children: [label, ":"] }) }, `h-${i}`));
384
+ }
385
+ const isCursor = i === cursor;
386
+ const cursorMark = isCursor ? '❯' : ' ';
387
+ if (row.kind === 'preset') {
388
+ return (_jsxs(Box, { children: [_jsxs(Text, { color: isCursor ? 'cyan' : 'gray', children: [cursorMark, " "] }), _jsxs(Text, { color: isCursor ? 'white' : 'gray', bold: isCursor, children: [t.applyPrefix, row.preset.label] })] }, `p-${row.preset.id}`));
389
+ }
390
+ const isDisabled = disabled.has(row.tool.name);
391
+ const checkbox = isDisabled ? '[ ]' : '[x]';
392
+ const checkboxColor = isDisabled ? 'red' : 'green';
393
+ return (_jsxs(Box, { children: [_jsxs(Text, { color: isCursor ? 'cyan' : 'gray', children: [cursorMark, " "] }), _jsxs(Text, { color: checkboxColor, children: [checkbox, " "] }), _jsx(Text, { color: isCursor ? 'white' : isDisabled ? 'gray' : 'white', bold: isCursor, children: row.tool.name.padEnd(28) }), _jsxs(Text, { color: "gray", dimColor: true, children: [' ', row.tool.summary] })] }, `t-${row.tool.name}`));
394
+ }) }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [unsaved ? (_jsx(Text, { color: "yellow", children: t.unsaved })) : justSaved ? (_jsx(Text, { color: "green", children: t.saved })) : null, _jsx(Text, { color: "gray", italic: true, children: t.restart })] })] }));
395
+ }
243
396
  /* ── Updates ───────────────────────────────────────────────────────────── */
244
397
  const UPDATES_I18N = {
245
398
  en: {
@@ -288,4 +441,244 @@ export function UpdatesView({ language, onBack }) {
288
441
  });
289
442
  return (_jsx(Frame, { title: t.title, footer: t.footer, children: info === null ? (_jsx(Text, { color: "gray", children: t.checking })) : info.error || info.latest === null ? (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsxs(Text, { color: "white", children: [t.current, ": "] }), _jsx(Text, { bold: true, children: info.current })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "red", children: [t.error, ": ", info.error ?? 'unknown error'] }) })] })) : (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsxs(Text, { color: "white", children: [t.current, ": "] }), _jsx(Text, { bold: true, children: info.current })] }), _jsxs(Text, { children: [_jsxs(Text, { color: "white", children: [t.latest, ": "] }), _jsx(Text, { bold: true, color: info.newer ? 'yellow' : 'green', children: info.latest })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: info.newer ? 'yellow' : 'green', children: info.newer ? t.available : t.upToDate }) }), info.newer && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", children: t.upgradeCmd }), _jsx(Text, { color: "cyan", children: `npm install -g ${PACKAGE_NAME}@latest` })] }))] })) }));
290
443
  }
444
+ /* ── Language ──────────────────────────────────────────────────────────── */
445
+ const LANG_I18N = {
446
+ en: {
447
+ title: 'Language — switch between English and Español',
448
+ prompt: 'Pick a language',
449
+ saved: '✓ Saved. All output will now use the selected language.',
450
+ footer: '↑↓ navigate · ↵ pick · Esc back',
451
+ },
452
+ es: {
453
+ title: 'Idioma — cambiar entre English y Español',
454
+ prompt: 'Elegí un idioma',
455
+ saved: '✓ Guardado. Todo el output va a usar el idioma elegido.',
456
+ footer: '↑↓ moverse · ↵ elegir · Esc volver',
457
+ },
458
+ };
459
+ export function LanguageView({ language, onPick, onBack }) {
460
+ const t = LANG_I18N[language];
461
+ const items = [
462
+ { value: 'en', label: 'English' },
463
+ { value: 'es', label: 'Español' },
464
+ ];
465
+ const [idx, setIdx] = useState(language === 'es' ? 1 : 0);
466
+ const [saved, setSaved] = useState(false);
467
+ useInput((_input, key) => {
468
+ if (key.upArrow)
469
+ setIdx((i) => (i - 1 + items.length) % items.length);
470
+ else if (key.downArrow)
471
+ setIdx((i) => (i + 1) % items.length);
472
+ else if (key.return) {
473
+ const next = items[idx].value;
474
+ onPick(next);
475
+ setSaved(true);
476
+ }
477
+ else if (key.escape)
478
+ onBack();
479
+ });
480
+ return (_jsxs(Frame, { title: t.title, footer: t.footer, children: [_jsx(Text, { color: "white", bold: true, children: t.prompt }), _jsx(Box, { marginTop: 1, children: _jsx(Menu, { items: items, selectedIndex: idx }) }), saved && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "green", children: t.saved }) }))] }));
481
+ }
482
+ const MULTI_AGENT_I18N = {
483
+ en: {
484
+ title: 'Multi-agent — let multiple MCP clients share one browser-link',
485
+ multiHeader: 'Multi-agent mode',
486
+ multiBody: [
487
+ 'browser-link normally binds 127.0.0.1:17529 from the first MCP',
488
+ 'client that starts it. Other clients (Claude + Copilot + OpenCode at',
489
+ 'the same time) crash with "port in use".',
490
+ '',
491
+ 'When multi-agent is ON, the second instance becomes a proxy that',
492
+ 'forwards MCP requests to the first one over an internal port',
493
+ '(127.0.0.1:17530, kernel-validated like the main one). All agents',
494
+ 'end up sharing the same connected Chrome tabs and the same',
495
+ 'persistent UI map.',
496
+ ].join('\n'),
497
+ multiToggle: 'Enable multi-agent mode',
498
+ reelectHeader: 'Auto-reelect on primary close (advanced)',
499
+ reelectBody: [
500
+ 'When the primary client closes, secondary clients lose the bridge.',
501
+ 'With auto-reelect ON, one of them takes over the primary role',
502
+ 'automatically (race on bind). With it OFF, you relaunch your MCP',
503
+ 'client manually to reconnect.',
504
+ ].join('\n'),
505
+ reelectToggle: 'Auto-reelect when primary closes',
506
+ reelectDisabled: '(enable multi-agent first)',
507
+ unsaved: '* Unsaved changes — press s to save',
508
+ saved: '✓ Saved.',
509
+ restart: 'Restart every MCP client for these changes to take effect.',
510
+ footer: '↑↓ navigate · Space toggle · s save · Esc back',
511
+ },
512
+ es: {
513
+ title: 'Multi-agente — varios clientes MCP comparten el mismo puente',
514
+ multiHeader: 'Modo multi-agente',
515
+ multiBody: [
516
+ 'browser-link normalmente bindea 127.0.0.1:17529 desde el primer',
517
+ 'cliente MCP que lo arranca. Otros clientes (Claude + Copilot +',
518
+ 'OpenCode al mismo tiempo) caen con "port in use".',
519
+ '',
520
+ 'Con multi-agente activado, el segundo proceso se vuelve un proxy',
521
+ 'que reenvía los pedidos MCP al primero por un puerto interno',
522
+ '(127.0.0.1:17530, validado por kernel igual que el principal).',
523
+ 'Todos los agentes terminan viendo las mismas pestañas conectadas',
524
+ 'y el mismo mapa persistente.',
525
+ ].join('\n'),
526
+ multiToggle: 'Activar modo multi-agente',
527
+ reelectHeader: 'Re-elección automática al cerrar el primary (avanzado)',
528
+ reelectBody: [
529
+ 'Cuando el cliente primary cierra, los secundarios pierden el',
530
+ 'puente. Con re-elección automática activada, uno de ellos toma el',
531
+ 'rol de primary automáticamente (race en el bind). Con ella',
532
+ 'desactivada, tenés que relanzar el cliente MCP a mano para',
533
+ 'reconectar.',
534
+ ].join('\n'),
535
+ reelectToggle: 'Re-elegir automáticamente al cerrar el primary',
536
+ reelectDisabled: '(activá primero multi-agente)',
537
+ unsaved: '* Cambios sin guardar — apretá s para guardar',
538
+ saved: '✓ Guardado.',
539
+ restart: 'Reiniciá cada cliente MCP para que los cambios tengan efecto.',
540
+ footer: '↑↓ moverse · Espacio cambiar · s guardar · Esc volver',
541
+ },
542
+ };
543
+ export function MultiAgentView({ language, onBack }) {
544
+ const t = MULTI_AGENT_I18N[language];
545
+ const initialCfg = useMemo(() => loadConfig(), []);
546
+ const [savedMulti, setSavedMulti] = useState(initialCfg.multiAgent === true);
547
+ const [savedReelect, setSavedReelect] = useState(initialCfg.autoReelect === true);
548
+ const [multi, setMulti] = useState(savedMulti);
549
+ const [reelect, setReelect] = useState(savedReelect);
550
+ const [justSaved, setJustSaved] = useState(false);
551
+ // Only the two toggles are navigable.
552
+ const [cursor, setCursor] = useState('multi');
553
+ const move = (dir) => {
554
+ setCursor((c) => {
555
+ if (dir === 1)
556
+ return c === 'multi' ? 'reelect' : 'multi';
557
+ return c === 'reelect' ? 'multi' : 'reelect';
558
+ });
559
+ };
560
+ const toggle = () => {
561
+ if (cursor === 'multi') {
562
+ setMulti((m) => {
563
+ const next = !m;
564
+ // Turning multi off also clears the working reelect state, matching
565
+ // the config normalisation rule (autoReelect implies multiAgent).
566
+ if (!next)
567
+ setReelect(false);
568
+ return next;
569
+ });
570
+ }
571
+ else {
572
+ // Auto-reelect can only be turned on when multi is on.
573
+ if (!multi)
574
+ return;
575
+ setReelect((r) => !r);
576
+ }
577
+ setJustSaved(false);
578
+ };
579
+ const save = () => {
580
+ saveConfig({ multiAgent: multi, autoReelect: multi ? reelect : false });
581
+ setSavedMulti(multi);
582
+ setSavedReelect(multi ? reelect : false);
583
+ setJustSaved(true);
584
+ };
585
+ useInput((input, key) => {
586
+ if (key.upArrow)
587
+ move(-1);
588
+ else if (key.downArrow)
589
+ move(1);
590
+ else if (input === ' ')
591
+ toggle();
592
+ else if (input === 's' || input === 'S')
593
+ save();
594
+ else if (input === 'q' || key.escape)
595
+ onBack();
596
+ });
597
+ const unsaved = multi !== savedMulti || reelect !== savedReelect;
598
+ const checkbox = (on, dim) => {
599
+ if (dim)
600
+ return { mark: '[ ]', color: 'gray' };
601
+ return on ? { mark: '[x]', color: 'green' } : { mark: '[ ]', color: 'red' };
602
+ };
603
+ const multiBox = checkbox(multi, false);
604
+ const reelectBox = checkbox(multi ? reelect : false, !multi);
605
+ return (_jsxs(Frame, { title: t.title, footer: t.footer, children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: t.multiHeader }), _jsx(Text, { children: t.multiBody })] }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: cursor === 'multi' ? 'cyan' : 'gray', children: cursor === 'multi' ? '❯ ' : ' ' }), _jsxs(Text, { color: multiBox.color, children: [multiBox.mark, " "] }), _jsx(Text, { color: cursor === 'multi' ? 'white' : 'gray', bold: cursor === 'multi', children: t.multiToggle })] }), _jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: t.reelectHeader }), _jsx(Text, { children: t.reelectBody })] }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: cursor === 'reelect' ? 'cyan' : 'gray', children: cursor === 'reelect' ? '❯ ' : ' ' }), _jsxs(Text, { color: reelectBox.color, children: [reelectBox.mark, " "] }), _jsxs(Text, { color: !multi ? 'gray' : cursor === 'reelect' ? 'white' : 'gray', bold: cursor === 'reelect' && multi, children: [t.reelectToggle, !multi && (_jsxs(Text, { color: "gray", dimColor: true, children: [' ', t.reelectDisabled] }))] })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [unsaved ? (_jsx(Text, { color: "yellow", children: t.unsaved })) : justSaved ? (_jsx(Text, { color: "green", children: t.saved })) : null, _jsx(Text, { color: "gray", italic: true, children: t.restart })] })] }));
606
+ }
607
+ const FREE_PORT_I18N = {
608
+ en: {
609
+ title: 'Free port 17529',
610
+ intro: [
611
+ 'If an MCP client (Claude / OpenCode / Copilot) was closed without',
612
+ 'shutting down browser-link cleanly, the next client crashes with',
613
+ '"port already in use". This screen finds the process holding',
614
+ '127.0.0.1:17529 and stops it.',
615
+ '',
616
+ 'Safety: only processes whose image starts with "node" are killed.',
617
+ 'Anything else is left alone with an explanation.',
618
+ ].join('\n'),
619
+ confirmPrompt: 'Stop the process holding port 17529?',
620
+ confirmYes: 'Yes — kill it',
621
+ confirmNo: 'No — back to menu',
622
+ running: 'Stopping…',
623
+ footer: '↑↓ navigate · ↵ select · Esc back',
624
+ doneFooter: '↵ / Esc back to menu',
625
+ },
626
+ es: {
627
+ title: 'Liberar puerto 17529',
628
+ intro: [
629
+ 'Si un cliente MCP (Claude / OpenCode / Copilot) cerró sin bajar',
630
+ 'browser-link de forma limpia, el próximo cliente crashea con',
631
+ '"port already in use". Esta pantalla busca el proceso que tiene',
632
+ '127.0.0.1:17529 y lo para.',
633
+ '',
634
+ 'Seguridad: sólo se matan procesos cuyo nombre empieza con "node".',
635
+ 'Cualquier otro se deja vivo con una explicación.',
636
+ ].join('\n'),
637
+ confirmPrompt: '¿Parar el proceso que tiene el puerto 17529?',
638
+ confirmYes: 'Sí — matalo',
639
+ confirmNo: 'No — volver al menú',
640
+ running: 'Parando…',
641
+ footer: '↑↓ moverse · ↵ elegir · Esc volver',
642
+ doneFooter: '↵ / Esc volver al menú',
643
+ },
644
+ };
645
+ export function FreePortView({ language, onBack }) {
646
+ const t = FREE_PORT_I18N[language];
647
+ const [phase, setPhase] = useState('confirm');
648
+ const [result, setResult] = useState(null);
649
+ const items = [
650
+ { value: 'yes', label: t.confirmYes },
651
+ { value: 'no', label: t.confirmNo },
652
+ ];
653
+ const [idx, setIdx] = useState(1);
654
+ useInput((_input, key) => {
655
+ if (phase === 'confirm') {
656
+ if (key.upArrow)
657
+ setIdx((i) => (i - 1 + items.length) % items.length);
658
+ else if (key.downArrow)
659
+ setIdx((i) => (i + 1) % items.length);
660
+ else if (key.return) {
661
+ const v = items[idx].value;
662
+ if (v === 'no')
663
+ onBack();
664
+ else {
665
+ setPhase('running');
666
+ // Defer the synchronous kill so Ink renders the "running" state.
667
+ setTimeout(() => {
668
+ const r = runFreePort(language);
669
+ setResult(r);
670
+ setPhase('done');
671
+ }, 0);
672
+ }
673
+ }
674
+ else if (key.escape)
675
+ onBack();
676
+ }
677
+ else if (phase === 'done') {
678
+ if (key.return || key.escape)
679
+ onBack();
680
+ }
681
+ });
682
+ return (_jsxs(Frame, { title: t.title, footer: phase === 'done' ? t.doneFooter : t.footer, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { children: t.intro }) }), phase === 'confirm' && (_jsxs(_Fragment, { children: [_jsx(Text, { color: "white", bold: true, children: t.confirmPrompt }), _jsx(Box, { marginTop: 1, children: _jsx(Menu, { items: items, selectedIndex: idx }) })] })), phase === 'running' && _jsx(Text, { color: "gray", children: t.running }), phase === 'done' && result && (_jsx(Text, { color: result.ok ? 'green' : 'yellow', children: result.message }))] }));
683
+ }
291
684
  //# sourceMappingURL=screens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/ui/screens.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/ui/screens.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jobshimo/browser-link",
3
- "version": "0.2.0",
4
- "description": "MCP server that bridges Claude Code, OpenCode, GitHub Copilot CLI and other MCP clients to a Chrome tab, with a persistent UI map of selectors, flows and gotchas across sessions.",
3
+ "version": "0.4.1",
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
5
  "keywords": [
6
6
  "mcp",
7
7
  "model-context-protocol",
@@ -12,7 +12,8 @@
12
12
  "copilot-cli",
13
13
  "chrome",
14
14
  "browser-automation",
15
- "ai-tools"
15
+ "ai-tools",
16
+ "permissions"
16
17
  ],
17
18
  "homepage": "https://github.com/jobshimo/browser-link#readme",
18
19
  "bugs": {