@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.
@@ -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.5.1",
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.5.1",
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, Safari, Brave, Opera, Vivaldi, Yandex, Waterfox, LibreWolf, or any Chromium- or Gecko-based binary, no build config
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