@extension.dev/mcp 5.5.1 → 5.6.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +75 -0
- package/README.md +1 -1
- package/dist/module.js +944 -158
- package/dist/src/lib/bridge-tabs.d.ts +14 -0
- package/dist/src/lib/cdp-port.d.ts +8 -0
- package/dist/src/lib/console-summary.d.ts +5 -0
- package/dist/src/lib/rdp.d.ts +50 -0
- package/dist/src/tools/source-inspect-gecko.d.ts +8 -0
- package/package.json +5 -5
- package/server.json +2 -2
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "extension-mcp",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox.",
|
|
13
|
-
"version": "5.
|
|
13
|
+
"version": "5.6.0",
|
|
14
14
|
"category": "development",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "Cezar Augusto"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "extension-mcp",
|
|
3
3
|
"description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox. Ships /extension, /extension-add, /extension-debug, and /extension-publish commands.",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.6.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cezar Augusto",
|
|
7
7
|
"email": "hello@extension.dev",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,80 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.6.0
|
|
4
|
+
|
|
5
|
+
Firefox reaches full protocol parity: every formerly Chromium-only
|
|
6
|
+
feature now works on Gecko, over RDP or the agent bridge.
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
- `extension_list_extensions` works on Firefox-family sessions. It rides
|
|
11
|
+
the Remote Debugging Protocol root actor's `listAddons` over the
|
|
12
|
+
`rdpPort` the engine stamps into ready.json from extension.js 4.0.15
|
|
13
|
+
on (upstream entry 78). Entries list INSTALLED add-ons regardless of
|
|
14
|
+
live contexts, `temporarilyInstalled` marks temporary loads, and the
|
|
15
|
+
dev session's extension is flagged `ownExtension` by matching the
|
|
16
|
+
ready contract's identity (with a lone temporary install as the
|
|
17
|
+
fallback signal). Add-on targets are never attached to or evaluated
|
|
18
|
+
in; system and hidden add-ons are filtered out. Older engines get a
|
|
19
|
+
hint naming the 4.0.15 requirement instead of a generic failure. A
|
|
20
|
+
minimal RDP client (`src/lib/rdp.ts`) carries the handshake; legacy
|
|
21
|
+
RDP was chosen over WebDriver BiDi on purpose, since BiDi is
|
|
22
|
+
single-session and would block attaching alongside other consumers.
|
|
23
|
+
- `extension_dom_inspect` listTargets works on Firefox: RDP tab
|
|
24
|
+
descriptors as `{actor,url,title,type}`, with the same two-id-space
|
|
25
|
+
warning as the CDP path (an actor id is not a chrome.tabs id).
|
|
26
|
+
Discovery therefore needs no allowControl on Gecko, unlike listTabs.
|
|
27
|
+
- `extension_source_inspect` closes its four Gecko gaps. dom_snapshot
|
|
28
|
+
and extension_roots ride the bridge eval, embedding the same CDP page
|
|
29
|
+
scripts Chromium uses (the bridge html path also gained the
|
|
30
|
+
shadow-aware serializer, so open extension-root shadow content is in
|
|
31
|
+
the markup now). console rides the RDP watcher's cached-resource
|
|
32
|
+
replay (`getWatcher` with server target switching, then
|
|
33
|
+
watchResources; verified live that `getCachedMessages` is a dead end
|
|
34
|
+
on current Firefox), summarized in the same shape as the CDP console
|
|
35
|
+
buffer. deepDom walks CLOSED shadow roots through
|
|
36
|
+
`tabs.executeScript`, where Firefox exposes
|
|
37
|
+
`Element.openOrClosedShadowRoot` to content scripts, so it needs an
|
|
38
|
+
MV2 session with host permissions for the target url; a failed walk
|
|
39
|
+
reports why in `notes` instead of silently dropping the field.
|
|
40
|
+
- MV2 page-eval fallback: the engine's page-context eval needs
|
|
41
|
+
chrome.scripting, an MV3-only API, so Firefox MV2 sessions reported
|
|
42
|
+
every bridge inspection as Unsupported. The inspect expression now
|
|
43
|
+
falls back to compiling in the tab's content-script sandbox via
|
|
44
|
+
`tabs.executeScript`, which reads the identical DOM; callers see the
|
|
45
|
+
same result shape on both paths.
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- Act-verb CLI output over ~8KB no longer truncates. The engine CLI
|
|
50
|
+
exits without draining stdout, and the socketpair pipe Node hands a
|
|
51
|
+
child buffers about 8KB, so any larger `--output json` frame (a DOM
|
|
52
|
+
snapshot, a big html capture) arrived cut mid-JSON and surfaced as
|
|
53
|
+
"CliError: extension exited with code 0". The MCP now hands the child
|
|
54
|
+
file descriptors and reads them after exit, which no pipe buffer can
|
|
55
|
+
truncate. Filed upstream as extension.js ledger entry 79; the
|
|
56
|
+
workaround stays until the engine flushes before exiting.
|
|
57
|
+
|
|
58
|
+
### Known limitation
|
|
59
|
+
|
|
60
|
+
- Firefox MV3 sessions cannot use the bridge extras: the MV3 event page
|
|
61
|
+
CSP blocks the eval the control bridge dispatches through the
|
|
62
|
+
background, exactly like Chromium MV3 service workers. MV2 sessions
|
|
63
|
+
are fully covered via the executeScript fallback. The RDP paths
|
|
64
|
+
(list_extensions, listTargets, console) work on both manifest
|
|
65
|
+
versions.
|
|
66
|
+
|
|
67
|
+
## 5.5.2
|
|
68
|
+
|
|
69
|
+
Honest browser support wording ahead of the Safari lane landing.
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
|
|
73
|
+
- The package description and README now say Safari is coming next
|
|
74
|
+
instead of listing it alongside the browsers that are store-ready
|
|
75
|
+
today. Chrome, Edge, Firefox, and every Chromium- or Gecko-based
|
|
76
|
+
browser remain fully supported; nothing changes functionally.
|
|
77
|
+
|
|
3
78
|
## 5.5.1
|
|
4
79
|
|
|
5
80
|
The store journey stops being write-only after submit, and the token
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ Extensions fail silently: content scripts that never inject, panels that never o
|
|
|
26
26
|
These tools give agents eyes on the live browser, so they debug from evidence instead of guessing:
|
|
27
27
|
|
|
28
28
|
- **Scaffold** from the 60+ template catalog behind [templates.extension.dev](https://templates.extension.dev), or add a popup, sidebar, or content script to an existing project
|
|
29
|
-
- **Run** the dev server with HMR in Chrome, Edge, Firefox,
|
|
29
|
+
- **Run** the dev server with HMR in Chrome, Edge, Firefox, Brave, Opera, Vivaldi, Yandex, Waterfox, LibreWolf, or any Chromium- or Gecko-based binary (Safari coming next), no build config
|
|
30
30
|
- **See** the live DOM, unified logs from every extension context, `chrome.storage` contents, and the loaded-extension list
|
|
31
31
|
- **Act**: evaluate code in any context, trigger the action button and commands, reload the extension, replay events
|
|
32
32
|
- **Ship**: validate the manifest cross-browser, build for production, publish a shareable preview, and promote builds to release channels headlessly
|