yoke-mcp 0.1.6 → 0.1.8
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 +4 -4
- package/ROADMAP.md +2 -1
- package/dist/browsers.js +12 -9
- package/dist/browsers.js.map +1 -1
- package/dist/cli.js +94 -83
- package/dist/cli.js.map +1 -1
- package/dist/doctor.js +36 -37
- package/dist/doctor.js.map +1 -1
- package/dist/install.js +2 -2
- package/dist/install.js.map +1 -1
- package/dist/mcp-server.d.ts +1 -1
- package/dist/mcp-server.js +151 -38
- package/dist/mcp-server.js.map +1 -1
- package/dist/native-host.js +27 -10
- package/dist/native-host.js.map +1 -1
- package/dist/socket-path.js +11 -4
- package/dist/socket-path.js.map +1 -1
- package/extension/browser/background.js +15 -14
- package/extension/browser/cdp.js +84 -56
- package/extension/browser/popup.js +3 -3
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ URL fields are reduced to origin and path by default, and `list_tabs` can opt ou
|
|
|
47
47
|
### Small and auditable
|
|
48
48
|
|
|
49
49
|
The package declares zero runtime dependencies and uses Node builtins only. The
|
|
50
|
-
published 0.1.
|
|
50
|
+
published 0.1.7 tarball is 47 files, all first-party.
|
|
51
51
|
|
|
52
52
|
TypeScript throughout with `strict` and `noUncheckedIndexedAccess` on. The wire
|
|
53
53
|
shapes are declared once in `src/protocol.ts` and imported by both halves, so a
|
|
@@ -64,7 +64,7 @@ judge rather than yours to discover.
|
|
|
64
64
|
|
|
65
65
|
The cells describe the verified versions and their defaults. Flags that change an answer are named in the cell or the numbered notes.
|
|
66
66
|
|
|
67
|
-
| Capability | Yoke (npm 0.1.
|
|
67
|
+
| Capability | Yoke (npm 0.1.7) | @playwright/mcp 0.0.79 (2026-08) | chrome-devtools-mcp 1.7.0 (pub. 2026-08-10) | BrowserMCP: server 0.1.3 (2025-04-11), extension 1.3.4 (2025-05-07), unmaintained |
|
|
68
68
|
| --- | --- | --- | --- | --- |
|
|
69
69
|
| Runs in the Chrome profile you are already signed in to | Yes. Chrome spawns the host via `connectNative`; there is no browser-launch code | No by default: its own persistent profile keyed to the client's cwd [1]. Yes with `--extension` | No by default: its own profile at `~/.cache/chrome-devtools-mcp/chrome-profile`. Yes with `--autoConnect` [2] | Yes. A Web Store extension in the running browser |
|
|
70
70
|
| Reaches tabs that were already open | Yes, every tab in every window of every Chrome profile the extension is loaded in [3] | No by default (fresh browser, so those tabs do not exist in it). Yes with `--extension` [4] | No by default. With `--autoConnect`, all windows of one profile [2] | One tab at a time, picked by the human in the popup. No tab listing and no tab creation tool [5] |
|
|
@@ -74,7 +74,7 @@ The cells describe the verified versions and their defaults. Flags that change a
|
|
|
74
74
|
| Runs with your existing cookies and logged-in session | Yes | No by default. Yes with `--extension` [12] | Only with `--autoConnect` [13] | Yes |
|
|
75
75
|
| Marks the tabs it touches | Yes. Any tab it drives or reads joins a visible tab group named "yoke" [14] | No in-tab marker. A separate headed window on its own profile, with automation signals actively suppressed [15] | Nothing added by the server. Chrome's own affordances only, and on `--autoConnect` that is a one-time consent dialog rather than an ongoing marker [16] | Chrome's own debugger infobar, incidental rather than designed, and suppressible [17] |
|
|
76
76
|
| URL redaction on by default | Yes. URL fields are cut to origin plus path; opt out with `full_urls` on `list_tabs` [18] | No. The only mechanism is opt-in substitution of known secret values (`--secrets`) | No, at no setting. Header redaction exists, covers headers only, and is off by default | No. The full page URL is in every snapshot header |
|
|
77
|
-
| Declared runtime dependencies, and install footprint | 0 declared, Node builtins only. The published 0.1.
|
|
77
|
+
| Declared runtime dependencies, and install footprint | 0 declared, Node builtins only. The published 0.1.7 tarball is 47 files, all first-party | 2 declared, both pinned to a 1.63.0 alpha. 19 MB installed. No browser download on the default `chrome` channel | 0 declared, and roughly 14 MB of vendored bundle (puppeteer 25.5.0, lighthouse 13.4.0) [19] | 5 declared, 97 transitive as resolved on 2026-08-24, and rising with no new release [20] |
|
|
78
78
|
|
|
79
79
|
#### Notes, including every place a flag or a version changes the answer
|
|
80
80
|
|
|
@@ -295,7 +295,7 @@ From a checkout that has not been linked, replace `yoke` with `node dist/cli.js`
|
|
|
295
295
|
5. Element references expire after navigation or a page render. Console and network history starts when yoke first attaches to that tab, not before.
|
|
296
296
|
6. Screenshots capture the page viewport, not browser chrome such as the address bar or tab strip.
|
|
297
297
|
7. Two different browsers that both run the extension, such as Chrome and Brave, number their tabs independently. A tab id both report is refused rather than routed, because it cannot be sent to both. Two profiles of the same Chrome never collide.
|
|
298
|
-
8. Chrome's internal pages cannot be read or driven. Neither can the Chrome Web Store or the extensions gallery: Chrome refuses both `chrome.scripting` and `chrome.debugger` there, so no extension can automate them, including this one.
|
|
298
|
+
8. Chrome's internal pages cannot be read or driven. Neither can the Chrome Web Store or the extensions gallery: Chrome refuses both `chrome.scripting` and `chrome.debugger` there, so no extension can automate them, including this one. Editing the store listing is therefore manual. Releases reach the store through its API from CI, as described in `docs/store-listing.md`.
|
|
299
299
|
|
|
300
300
|
## Uninstall
|
|
301
301
|
|
package/ROADMAP.md
CHANGED
|
@@ -40,6 +40,7 @@ Theme: prove the thesis. Built, working end to end, not yet tagged or published.
|
|
|
40
40
|
- An icon, at 16, 32, 48 and 128, drawn on an 8 unit grid so every line lands on a pixel boundary at 16.
|
|
41
41
|
- Offline tests for the MCP surface and the redaction, driven without a browser. CI green on Node 22 and 24 across Linux, macOS and Windows.
|
|
42
42
|
- 0.1.4: one endpoint per Chrome profile, named after an id the extension mints and keeps. `list_browsers` names each connected profile, `list_tabs` covers all of them, tab tools route by tab id, and `open_tab` takes `browser` when there is a choice. Closes the wrong-profile case in #6 and #8, where a single per-user endpoint was won by whichever profile connected first.
|
|
43
|
+
- 0.1.7: store releases come from CI. Every `v*` tag uploads the zip CI built to the Chrome Web Store and submits it for review once a person approves the `chrome-web-store` environment, through [publish-to-chrome-web-store](https://github.com/hamzahamidi/publish-to-chrome-web-store) with a 30 minute Workload Identity token, so the repository still holds no long-lived secret. Nothing in the extension or the host changed.
|
|
43
44
|
- 0.1.6: an endpoint is held only by a host that can serve it. Chrome can leave a host holding a pipe whose service worker is gone, and 0.1.5 let that host claim a socket which then accepted every caller and answered each one with a timeout, counted as a browser with no tabs, and kept the endpoint from the profile that could have served it (#19). A host now claims nothing unless the extension answers, gives the endpoint up when the extension stops answering, and waits for an incumbent to let go rather than unlinking a name a live server still holds.
|
|
44
45
|
- 0.1.5: a profile that loses the host comes back. Chrome stops an idle service worker, which takes the scheduled retry with it, so 0.1.4 could sit disconnected until somebody clicked the icon (#12). Browsing now wakes it, the backoff doubles as it always claimed to rather than staying at two seconds, and the message says to click the icon before it says to reinstall. Recovery on a browser nobody is touching is still open, in #15.
|
|
45
46
|
|
|
@@ -89,7 +90,7 @@ Theme: installable by someone who is not us. Done, inside the 0.1.x line rather
|
|
|
89
90
|
- On the Chrome Web Store as [Yoke](https://chromewebstore.google.com/detail/yoke/mebojgahcmmffbaonhnmmjhmbdbfbamm), with the privacy policy and the permission justifications `debugger` and host access had to defend. Review keeps its own clock, so the listing sits behind a release until it clears.
|
|
90
91
|
- The store does not honour the pinned `key`, which was the bullet that said verify, and the answer was no. A packaged upload may not carry one, so the store mints an id of its own: a store install is `mebojgahcmmffbaonhnmmjhmbdbfbamm` and an unpacked load stays `oceljemfocgfidhhdlbojkbkmlbfclna`. `yoke install` allowlists both, which is the only reason native messaging works either way.
|
|
91
92
|
- `yoke-mcp` is on npm. 0.1.0 went out by hand, because npm will not configure a trusted publisher for a package that does not exist yet. Every version since publishes from a `v*` tag over OIDC with provenance, and a person approves the `npm` environment before anything reaches the registry.
|
|
92
|
-
- The store package is built by CI from the tag and attached to the release with its SHA-256, so the zip
|
|
93
|
+
- The store package is built by CI from the tag and attached to the release with its SHA-256, so the zip that reaches the store is the one CI built and checked. Contents are reproducible: rebuilding 0.1.5 locally gives files byte identical to the release zip. The archive is not, because zip metadata differs, so an audit compares files rather than digests.
|
|
93
94
|
|
|
94
95
|
## v0.5.x: stabilisation
|
|
95
96
|
|
package/dist/browsers.js
CHANGED
|
@@ -50,11 +50,11 @@ async function identify(endpoint) {
|
|
|
50
50
|
const who = await ask(endpoint, 'identify', {}, { timeoutMs: 3_000 });
|
|
51
51
|
return { endpoint, ...who, unidentified: false };
|
|
52
52
|
}
|
|
53
|
-
catch (
|
|
53
|
+
catch (error_) {
|
|
54
54
|
// A dead socket is a corpse and is skipped. A live host whose extension
|
|
55
55
|
// does not know the op is a browser we can still drive, so it is kept under
|
|
56
56
|
// the id the host itself fell back to.
|
|
57
|
-
if (
|
|
57
|
+
if (error_ instanceof ExtensionUnavailable) {
|
|
58
58
|
return undefined;
|
|
59
59
|
}
|
|
60
60
|
return {
|
|
@@ -85,12 +85,12 @@ export async function allTabs() {
|
|
|
85
85
|
const { tabs } = await ask(browser.endpoint, 'listTabs', {}, { timeoutMs: 5_000 });
|
|
86
86
|
return tabs.map((tab) => ({ ...tab, browser }));
|
|
87
87
|
}
|
|
88
|
-
catch (
|
|
88
|
+
catch (error_) {
|
|
89
89
|
// Gone between identify and now. Not an error in the listing.
|
|
90
|
-
if (
|
|
90
|
+
if (error_ instanceof ExtensionUnavailable) {
|
|
91
91
|
return [];
|
|
92
92
|
}
|
|
93
|
-
throw
|
|
93
|
+
throw error_;
|
|
94
94
|
}
|
|
95
95
|
}));
|
|
96
96
|
const tabs = listed.flat();
|
|
@@ -130,7 +130,10 @@ export async function chooseBrowser(selector, tool) {
|
|
|
130
130
|
throw new NoSuchBrowser(`${browsers.length} browsers are connected: ${names}. ${tool} opens a tab in one of them, so pass `
|
|
131
131
|
+ 'browser with an id or label from list_browsers.');
|
|
132
132
|
}
|
|
133
|
-
|
|
133
|
+
if (typeof selector !== 'string') {
|
|
134
|
+
throw new NoSuchBrowser('browser must be an id or label from list_browsers.');
|
|
135
|
+
}
|
|
136
|
+
const wanted = selector;
|
|
134
137
|
const byId = browsers.find((browser) => browser.id === wanted);
|
|
135
138
|
if (byId !== undefined) {
|
|
136
139
|
return byId;
|
|
@@ -219,11 +222,11 @@ export async function askTab(op, args, options = {}) {
|
|
|
219
222
|
try {
|
|
220
223
|
return await ask(endpoint, op, args, options);
|
|
221
224
|
}
|
|
222
|
-
catch (
|
|
225
|
+
catch (error_) {
|
|
223
226
|
// The host may have gone since the tab was placed. Once more from a fresh
|
|
224
227
|
// listing, and after that the failure is the answer.
|
|
225
|
-
if (!(
|
|
226
|
-
throw
|
|
228
|
+
if (!(error_ instanceof ExtensionUnavailable)) {
|
|
229
|
+
throw error_;
|
|
227
230
|
}
|
|
228
231
|
placement.delete(args.tabId);
|
|
229
232
|
return ask(await endpointForTab(args.tabId), op, args, options);
|
package/dist/browsers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browsers.js","sourceRoot":"","sources":["../src/browsers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,iFAAiF;AACjF,2EAA2E;AAC3E,6EAA6E;AAC7E,cAAc;AACd,EAAE;AACF,iFAAiF;AACjF,2EAA2E;AAC3E,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAoB9E,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAU,EAAE,CACtD,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AAEpD,mEAAmE;AACnE,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChB,IAAI,GAAG,WAAW,CAAC;CACtC;AAED,kGAAkG;AAClG,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpB,IAAI,GAAG,eAAe,CAAC;CAC1C;AAED,yEAAyE;AACzE,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC;;;;;;GAMG;AACH,IAAI,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC1C,sFAAsF;AACtF,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,gFAAgF;AAChF,IAAI,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE9C,MAAM,iBAAiB,GAAG,GAAW,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,UAAU,MAAM;IACpB,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,UAAU,GAAG,EAAE,CAAC;IAChB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"browsers.js","sourceRoot":"","sources":["../src/browsers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,iFAAiF;AACjF,2EAA2E;AAC3E,6EAA6E;AAC7E,cAAc;AACd,EAAE;AACF,iFAAiF;AACjF,2EAA2E;AAC3E,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAoB9E,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAU,EAAE,CACtD,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AAEpD,mEAAmE;AACnE,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChB,IAAI,GAAG,WAAW,CAAC;CACtC;AAED,kGAAkG;AAClG,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpB,IAAI,GAAG,eAAe,CAAC;CAC1C;AAED,yEAAyE;AACzE,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC;;;;;;GAMG;AACH,IAAI,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC1C,sFAAsF;AACtF,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,gFAAgF;AAChF,IAAI,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE9C,MAAM,iBAAiB,GAAG,GAAW,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,UAAU,MAAM;IACpB,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,UAAU,GAAG,EAAE,CAAC;IAChB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,wEAAwE;QACxE,4EAA4E;QAC5E,uCAAuC;QACvC,IAAI,MAAM,YAAY,oBAAoB,EAAE,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;QACjE,OAAO;YACL,QAAQ;YACR,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,SAAS;YACvC,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;YACP,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAsB,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AACjF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAa,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,8DAA8D;YAC9D,IAAI,MAAM,YAAY,oBAAoB,EAAE,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAC1D,MAAM,MAAM,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;IACJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACjC,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5C,qEAAqE;YACrE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAiB,EAAE,IAAY;IACjE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvG,MAAM,IAAI,aAAa,CACrB,GAAG,QAAQ,CAAC,MAAM,4BAA4B,KAAK,KAAK,IAAI,uCAAuC;cACjG,iDAAiD,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,aAAa,CAAC,oDAAoD,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC;IACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC/D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACxC,0EAA0E;IAC1E,wEAAwE;IACxE,wBAAwB;IACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACnG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1F,MAAM,IAAI,aAAa,CACrB,GAAG,OAAO,CAAC,MAAM,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,oCAAoC,CAAC,CAAC;IAC7H,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,IAAI,aAAa,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,KAAK,GAAG,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAa;IAChD,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,iBAAiB,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7E,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7F,MAAM,IAAI,SAAS,CACjB,OAAO,KAAK,cAAc,MAAM,CAAC,MAAM,gCAAgC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;cACjG,0FAA0F;cAC1F,yFAAyF,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAAC,OAAO,QAAQ,CAAC;IAAC,CAAC;IAChD,IAAI,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,OAAO,KAAK,yEAAyE,CAAC,CAAC;AAC7G,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAgB;IACpD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,OAAO,KAAK,UAAU,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACrG,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,SAAS,CACjB,SAAS,MAAM,CAAC,MAAM,gBAAgB,QAAQ,CAAC,IAAI,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;UAC7F,oFAAoF,CAAC,CAAC;AAC5F,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,EAAK,EACL,IAAmC,EACnC,UAAkC,EAAE;IAEpC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,0EAA0E;QAC1E,qDAAqD;QACrD,IAAI,CAAC,CAAC,MAAM,YAAY,oBAAoB,CAAC,EAAE,CAAC;YAAC,MAAM,MAAM,CAAC;QAAC,CAAC;QAChE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -24,97 +24,108 @@ Getting set up, once:
|
|
|
24
24
|
args: ["mcp"]
|
|
25
25
|
`;
|
|
26
26
|
const EXIT = { OK: 0, UNAVAILABLE: 3, USAGE: 64 };
|
|
27
|
-
async function
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
async function runMcp() {
|
|
28
|
+
const { main: serve } = await import('./mcp-server.js');
|
|
29
|
+
serve();
|
|
30
|
+
return EXIT.OK;
|
|
31
|
+
}
|
|
32
|
+
function printWindowsRegistration(result) {
|
|
33
|
+
const manifest = result.written[0]?.[1];
|
|
34
|
+
if (manifest === undefined) {
|
|
35
|
+
return EXIT.UNAVAILABLE;
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
if (result.platform === 'win32') {
|
|
45
|
-
const manifest = result.written[0]?.[1];
|
|
46
|
-
if (manifest === undefined) {
|
|
47
|
-
return EXIT.UNAVAILABLE;
|
|
48
|
-
}
|
|
49
|
-
// Windows finds the host through the registry, so the file above is only
|
|
50
|
-
// half the job. These are the exact commands for the manifest that was
|
|
51
|
-
// just written, rather than a sentence about a file the caller has to
|
|
52
|
-
// locate: every browser key points at the same manifest.
|
|
53
|
-
process.stdout.write('\nOn Windows the host is found through the registry. Run these, for each browser you use:\n\n');
|
|
54
|
-
for (const key of [
|
|
55
|
-
'Software\\Google\\Chrome',
|
|
56
|
-
'Software\\Chromium',
|
|
57
|
-
'Software\\Microsoft\\Edge',
|
|
58
|
-
'Software\\BraveSoftware\\Brave-Browser',
|
|
59
|
-
]) {
|
|
60
|
-
process.stdout.write(` reg add "HKCU\\${key}\\NativeMessagingHosts\\${result.hostName}" /ve /t REG_SZ /d "${manifest}" /f\n`);
|
|
61
|
-
}
|
|
62
|
-
process.stdout.write('\nThen load extension\\ at chrome://extensions with Developer mode on.\n');
|
|
63
|
-
process.stdout.write('This path is written but untested: please report what happens.\n');
|
|
64
|
-
return EXIT.OK;
|
|
65
|
-
}
|
|
66
|
-
if (result.written.length === 0) {
|
|
67
|
-
return EXIT.UNAVAILABLE;
|
|
68
|
-
}
|
|
69
|
-
process.stdout.write('\nNow load extension/ at chrome://extensions with Developer mode on.\n');
|
|
70
|
-
process.stdout.write(`It has to keep the id ${result.extensionId}, which the pinned key in its manifest guarantees.\n`);
|
|
71
|
-
return EXIT.OK;
|
|
37
|
+
process.stdout.write('\nOn Windows the host is found through the registry. Run these, for each browser you use:\n\n');
|
|
38
|
+
for (const key of [
|
|
39
|
+
String.raw `Software\Google\Chrome`,
|
|
40
|
+
String.raw `Software\Chromium`,
|
|
41
|
+
String.raw `Software\Microsoft\Edge`,
|
|
42
|
+
String.raw `Software\BraveSoftware\Brave-Browser`,
|
|
43
|
+
]) {
|
|
44
|
+
process.stdout.write(` reg add "HKCU\\${key}\\NativeMessagingHosts\\${result.hostName}" /ve /t REG_SZ /d "${manifest}" /f\n`);
|
|
72
45
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
46
|
+
process.stdout.write('\nThen load extension\\ at chrome://extensions with Developer mode on.\n');
|
|
47
|
+
process.stdout.write('This path is written but untested: please report what happens.\n');
|
|
48
|
+
return EXIT.OK;
|
|
49
|
+
}
|
|
50
|
+
async function runInstall() {
|
|
51
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
52
|
+
const result = install({ hostPath: join(here, 'native-host.js') });
|
|
53
|
+
for (const [browser, file] of result.written) {
|
|
54
|
+
process.stdout.write(`registered for ${browser}: ${file}\n`);
|
|
82
55
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const checks = await doctor();
|
|
86
|
-
process.stdout.write(render(checks));
|
|
87
|
-
return checks.every((check) => check.ok) ? EXIT.OK : EXIT.UNAVAILABLE;
|
|
56
|
+
for (const [browser, reason] of result.skipped) {
|
|
57
|
+
process.stderr.write(`skipped ${browser}: ${reason}\n`);
|
|
88
58
|
}
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
for
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
59
|
+
if (result.platform === 'win32') {
|
|
60
|
+
return printWindowsRegistration(result);
|
|
61
|
+
}
|
|
62
|
+
if (result.written.length === 0) {
|
|
63
|
+
return EXIT.UNAVAILABLE;
|
|
64
|
+
}
|
|
65
|
+
process.stdout.write('\nNow load extension/ at chrome://extensions with Developer mode on.\n');
|
|
66
|
+
process.stdout.write(`It has to keep the id ${result.extensionId}, which the pinned key in its manifest guarantees.\n`);
|
|
67
|
+
return EXIT.OK;
|
|
68
|
+
}
|
|
69
|
+
function runUninstall() {
|
|
70
|
+
const { removed } = uninstall();
|
|
71
|
+
for (const [browser, file] of removed) {
|
|
72
|
+
process.stdout.write(`removed for ${browser}: ${file}\n`);
|
|
73
|
+
}
|
|
74
|
+
if (removed.length === 0) {
|
|
75
|
+
process.stdout.write('nothing was registered\n');
|
|
76
|
+
}
|
|
77
|
+
return EXIT.OK;
|
|
78
|
+
}
|
|
79
|
+
async function runDoctor() {
|
|
80
|
+
const { doctor, render } = await import('./doctor.js');
|
|
81
|
+
const checks = await doctor();
|
|
82
|
+
process.stdout.write(render(checks));
|
|
83
|
+
return checks.every((check) => check.ok) ? EXIT.OK : EXIT.UNAVAILABLE;
|
|
84
|
+
}
|
|
85
|
+
async function runStatus() {
|
|
86
|
+
const { connectedBrowsers } = await import('./browsers.js');
|
|
87
|
+
const browsers = await connectedBrowsers();
|
|
88
|
+
if (browsers.length === 0) {
|
|
89
|
+
process.stdout.write('extension: not reachable\n');
|
|
90
|
+
process.stdout.write(`endpoints: ${endpointDir()}\n`);
|
|
91
|
+
process.stdout.write('\nIf install has run and the extension is loaded, open chrome://extensions and '
|
|
92
|
+
+ 'check its service worker is running. Chrome starts the host on demand.\n');
|
|
93
|
+
return EXIT.UNAVAILABLE;
|
|
94
|
+
}
|
|
95
|
+
// One line per profile, because with two connected "connected" alone is
|
|
96
|
+
// exactly the answer that hid the wrong-profile case.
|
|
97
|
+
process.stdout.write(`extension: connected, ${browsers.length} browser(s)\n`);
|
|
98
|
+
for (const browser of browsers) {
|
|
99
|
+
let label = browser.label === '' ? '(unnamed)' : browser.label;
|
|
100
|
+
if (browser.unidentified) {
|
|
101
|
+
label = '(legacy endpoint; reload the extension so this profile gets its own)';
|
|
108
102
|
}
|
|
109
|
-
|
|
103
|
+
const tabs = browser.unidentified ? 'tabs unknown' : `${browser.tabs} tab(s)`;
|
|
104
|
+
process.stdout.write(` ${browser.id}\t${label}\t${tabs}\t${browser.endpoint}\n`);
|
|
105
|
+
}
|
|
106
|
+
return EXIT.OK;
|
|
107
|
+
}
|
|
108
|
+
async function main() {
|
|
109
|
+
const action = process.argv[2];
|
|
110
|
+
const handlers = {
|
|
111
|
+
mcp: runMcp,
|
|
112
|
+
install: runInstall,
|
|
113
|
+
uninstall: runUninstall,
|
|
114
|
+
doctor: runDoctor,
|
|
115
|
+
status: runStatus,
|
|
116
|
+
};
|
|
117
|
+
const handler = action === undefined ? undefined : handlers[action];
|
|
118
|
+
if (handler !== undefined) {
|
|
119
|
+
return handler();
|
|
110
120
|
}
|
|
111
121
|
process.stdout.write(USAGE);
|
|
112
122
|
return action === undefined || action === '-h' || action === '--help' ? EXIT.OK : EXIT.USAGE;
|
|
113
123
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
124
|
+
try {
|
|
125
|
+
process.exitCode = await main();
|
|
126
|
+
}
|
|
127
|
+
catch (error_) {
|
|
128
|
+
process.stderr.write(`yoke: ${error_ instanceof Error ? error_.message : String(error_)}\n`);
|
|
118
129
|
process.exitCode = EXIT.UNAVAILABLE;
|
|
119
|
-
}
|
|
130
|
+
}
|
|
120
131
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,8EAA8E;AAC9E,gEAAgE;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEF,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAW,CAAC;AAE3D,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.js
CHANGED
|
@@ -28,6 +28,25 @@ function checkBuild() {
|
|
|
28
28
|
? { ok: true, label: 'build', detail: 'the host is built' }
|
|
29
29
|
: { ok: false, label: 'build', detail: `${host} is missing`, fix: 'npm run build' };
|
|
30
30
|
}
|
|
31
|
+
function registrationProblem(browser, manifest) {
|
|
32
|
+
if (!existsSync(manifest.path)) {
|
|
33
|
+
return `${browser}: points at ${manifest.path}, which does not exist`;
|
|
34
|
+
}
|
|
35
|
+
if ((statSync(manifest.path).mode & 0o111) === 0) {
|
|
36
|
+
return `${browser}: its launcher ${manifest.path} is not executable`;
|
|
37
|
+
}
|
|
38
|
+
const launcher = readFileSync(manifest.path, 'utf8');
|
|
39
|
+
const interpreter = /exec "([^"]+)"|"([^"]+)" "/.exec(launcher);
|
|
40
|
+
const node = interpreter?.[1] ?? interpreter?.[2];
|
|
41
|
+
if (node && !existsSync(node)) {
|
|
42
|
+
return `${browser}: its launcher runs ${node}, which no longer exists`;
|
|
43
|
+
}
|
|
44
|
+
const missing = EXTENSION_IDS.filter((id) => !manifest.allowed_origins.includes(`chrome-extension://${id}/`));
|
|
45
|
+
if (missing.length > 0) {
|
|
46
|
+
return `${browser}: allowlists ${manifest.allowed_origins.join(', ')}, which is missing ${missing.join(', ')}`;
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
31
50
|
/**
|
|
32
51
|
* Is the host registered, and does the registration agree with this build?
|
|
33
52
|
*
|
|
@@ -59,29 +78,9 @@ function checkRegistration() {
|
|
|
59
78
|
problems.push(`${browser}: the manifest is not valid JSON`);
|
|
60
79
|
continue;
|
|
61
80
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
// This is the file Chrome executes, so a missing execute bit is fatal and
|
|
67
|
-
// silent: Chrome simply never starts the host.
|
|
68
|
-
if ((statSync(manifest.path).mode & 0o111) === 0) {
|
|
69
|
-
problems.push(`${browser}: its launcher ${manifest.path} is not executable`);
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
// The launcher names an absolute interpreter precisely so Chrome does not
|
|
73
|
-
// need a PATH. If that interpreter has since moved, Chrome fails with
|
|
74
|
-
// nothing but "Native host has exited", so it is checked here instead.
|
|
75
|
-
const launcher = readFileSync(manifest.path, 'utf8');
|
|
76
|
-
const interpreter = /exec "([^"]+)"|"([^"]+)" "/.exec(launcher);
|
|
77
|
-
const node = interpreter?.[1] ?? interpreter?.[2];
|
|
78
|
-
if (node && !existsSync(node)) {
|
|
79
|
-
problems.push(`${browser}: its launcher runs ${node}, which no longer exists`);
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
const missing = EXTENSION_IDS.filter((id) => !manifest.allowed_origins.includes(`chrome-extension://${id}/`));
|
|
83
|
-
if (missing.length > 0) {
|
|
84
|
-
problems.push(`${browser}: allowlists ${manifest.allowed_origins.join(', ')}, which is missing ${missing.join(', ')}`);
|
|
81
|
+
const problem = registrationProblem(browser, manifest);
|
|
82
|
+
if (problem) {
|
|
83
|
+
problems.push(problem);
|
|
85
84
|
continue;
|
|
86
85
|
}
|
|
87
86
|
found.push(browser);
|
|
@@ -171,11 +170,11 @@ async function checkPing(browser, several) {
|
|
|
171
170
|
: `, holding ${held} tab(s): ${attached.join(', ')}. Release them with release_tab.`;
|
|
172
171
|
return { ok: true, label, detail: `answered, version ${extension}${holding}` };
|
|
173
172
|
}
|
|
174
|
-
catch (
|
|
173
|
+
catch (error_) {
|
|
175
174
|
return {
|
|
176
175
|
ok: false,
|
|
177
176
|
label,
|
|
178
|
-
detail:
|
|
177
|
+
detail: error_ instanceof Error ? error_.message : String(error_),
|
|
179
178
|
fix: 'open chrome://extensions and check the service worker is running',
|
|
180
179
|
};
|
|
181
180
|
}
|
|
@@ -197,11 +196,11 @@ async function checkTabs(browser, several) {
|
|
|
197
196
|
detail: `${tabs.length} tab(s), ${ungrouped} of them in no tab group`,
|
|
198
197
|
};
|
|
199
198
|
}
|
|
200
|
-
catch (
|
|
199
|
+
catch (error_) {
|
|
201
200
|
return {
|
|
202
201
|
ok: false,
|
|
203
202
|
label,
|
|
204
|
-
detail:
|
|
203
|
+
detail: error_ instanceof Error ? error_.message : String(error_),
|
|
205
204
|
};
|
|
206
205
|
}
|
|
207
206
|
}
|
|
@@ -218,13 +217,11 @@ export async function doctor() {
|
|
|
218
217
|
// Each connected profile is checked on its own, because "the extension
|
|
219
218
|
// answered" from one says nothing about the other.
|
|
220
219
|
const several = browsers.length > 1;
|
|
221
|
-
|
|
220
|
+
const remoteChecks = await Promise.all(browsers.map(async (browser) => {
|
|
222
221
|
const ping = await checkPing(browser, several);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
}
|
|
222
|
+
return ping.ok ? [ping, await checkTabs(browser, several)] : [ping];
|
|
223
|
+
}));
|
|
224
|
+
checks.push(...remoteChecks.flat());
|
|
228
225
|
return checks;
|
|
229
226
|
}
|
|
230
227
|
export function render(checks) {
|
|
@@ -235,10 +232,12 @@ export function render(checks) {
|
|
|
235
232
|
return `${mark} ${check.label.padEnd(width)} ${check.detail}${fix}`;
|
|
236
233
|
});
|
|
237
234
|
const broken = checks.find((check) => !check.ok);
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
235
|
+
if (broken) {
|
|
236
|
+
lines.push('', `Not working yet. The first thing to fix is "${broken.label}".`);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
lines.push('', 'Working. Every link in the chain answered.');
|
|
240
|
+
}
|
|
242
241
|
return `${lines.join('\n')}\n`;
|
|
243
242
|
}
|
|
244
243
|
//# sourceMappingURL=doctor.js.map
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,+CAA+C;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAgB,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAqB,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAUzC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAExF;;;;;;;;GAQG;AACH,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7E,OAAO,UAAU,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE;QAC3D,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,aAAa,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;AACxF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/install.js
CHANGED
|
@@ -191,8 +191,8 @@ export function install({ hostPath, platform = process.platform, home = homedir(
|
|
|
191
191
|
writeFileSync(file, `${JSON.stringify(manifestFor(launcher), null, 2)}\n`);
|
|
192
192
|
written.push([browser, file]);
|
|
193
193
|
}
|
|
194
|
-
catch (
|
|
195
|
-
skipped.push([browser,
|
|
194
|
+
catch (error_) {
|
|
195
|
+
skipped.push([browser, error_ instanceof Error ? error_.message : String(error_)]);
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
return { written, skipped, extensionId: EXTENSION_ID, hostName: HOST_NAME, platform };
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,kFAAkF;AAClF,iFAAiF;AACjF,sEAAsE;AACtE,gFAAgF;AAChF,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhE,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,+EAA+E;IAC/E,4EAA4E;IAC5E,kCAAkC;IAClC,yEAAyE;IACzE,0EAA0E;IAC1E,kCAAkC;CACnC,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAW,CAAC;AAkBvD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,WAA4B,OAAO,CAAC,QAAQ,EAC5C,OAAe,OAAO,EAAE;IAExB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;QAC7D,OAAO;YACL,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YACrE,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC;YAC/E,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;YAC/D,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;YACjE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;SACnF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,sEAAsE;QACtE,sEAAsE;QACtE,kEAAkE;QAClE,0EAA0E;QAC1E,4DAA4D;QAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1F,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvE,OAAO;QACL,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;QACjE,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;QAC9D,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;QAChE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;KAClF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH;;;;;;;;;GASG;AACH,SAAS,cAAc;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAC/D,MAAM,UAAU,GAAG;QACjB,wBAAwB;QACxB,qBAAqB;QACrB,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;QACxC,eAAe;KAChB,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAAC,OAAO,SAAS,CAAC;YAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,CAAC,QAAyB,EAAU,EAAE,CACzD,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAE5D,MAAM,QAAQ,GAAG,CAAC,QAAyB,EAA4C,EAAE,CACvF,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAElD;;;;;;;;;GASG;AACH,SAAS,aAAa,CACpB,GAAW,EACX,QAAgB,EAChB,QAAyB,EACzB,WAAmB,cAAc,EAAE;IAEnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,QAAQ,MAAM,QAAQ,UAAU,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,aAAa,CAAC,QAAQ,EAAE,oBAAoB,QAAQ,MAAM,QAAQ,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/F,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAgB,EAAE,CAAC,CAAC;IAC9D,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,4BAA4B;IACzC,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC;CACxE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,QAAQ,EACR,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAC3B,IAAI,GAAG,OAAO,EAAE,GACgD;IAChE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC;QAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;IAErF,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,MAAM,OAAO,GAA6B,EAAE,CAAC;IAE7C,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QACzD,6EAA6E;QAC7E,4EAA4E;QAC5E,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,aAAa,GAAG,QAAQ,KAAK,OAAO,CAAC;QAC3C,IAAI,aAAa,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,uEAAuE;YACvE,wEAAwE;YACxE,iCAAiC;YACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;YAC/D,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAC3B,IAAI,GAAG,OAAO,EAAE,MACiC,EAAE;IACnD,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QAClF,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,CAAC;YAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
package/dist/mcp-server.d.ts
CHANGED