@extension.dev/mcp 5.3.1 → 5.5.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 +89 -0
- package/dist/module.js +632 -207
- package/dist/src/lib/cdp-targets.d.ts +15 -0
- package/dist/src/lib/process-manager.d.ts +1 -0
- package/dist/src/lib/session-browser.d.ts +1 -0
- package/dist/src/lib/types.d.ts +6 -1
- package/dist/src/tools/dom-inspect.d.ts +11 -0
- package/dist/src/tools/eval.d.ts +1 -1
- package/dist/src/tools/wait.d.ts +6 -1
- package/package.json +1 -1
- 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.5.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.5.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cezar Augusto",
|
|
7
7
|
"email": "boss@cezaraugusto.net",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,94 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.5.0
|
|
4
|
+
|
|
5
|
+
The debug surfaces learn to point at things: tabs are targetable by
|
|
6
|
+
URL, extensions in lists have names, and eval works on the default
|
|
7
|
+
template by default.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `extension_dom_inspect` targets tabs by `tabUrl` (case-insensitive
|
|
12
|
+
URL substring, title as fallback). Exactly one match inspects it and
|
|
13
|
+
the result names the resolved target; zero or multiple matches return
|
|
14
|
+
the candidate targets instead of guessing. `listTargets: true` lists
|
|
15
|
+
the browser's live CDP page targets (targetId, url, title, type) with
|
|
16
|
+
the standing warning that a CDP targetId is NOT a chrome.tabs id.
|
|
17
|
+
- `extension_list_extensions` names its entries. The dev session's own
|
|
18
|
+
extension resolves to `name`, `version`, and `ownExtension: true`
|
|
19
|
+
(identified by recomputing Chrome's unpacked-extension id from the
|
|
20
|
+
ready contract's distPath) and sorts first; entries that cannot be
|
|
21
|
+
resolved carry a note saying why instead of a silent bare id. Other
|
|
22
|
+
extensions' contexts are never attached to or evaluated in.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- `extension_eval` works on the default template by default. On
|
|
27
|
+
Chromium with an MV3 manifest the default context is now `page` (the
|
|
28
|
+
MV3 service worker CSP blocks background eval), disclosed in the
|
|
29
|
+
result as `defaultedContext` with the reason; explicit
|
|
30
|
+
`context: "background"` is unchanged and keeps its CSP explanation.
|
|
31
|
+
Firefox and MV2 defaults are untouched. A defaulted eval that lands
|
|
32
|
+
on an unreachable active tab returns a hint to navigate or pass
|
|
33
|
+
`url`/`tab`.
|
|
34
|
+
- Error remedies speak tool arguments, never CLI flags: the engine's
|
|
35
|
+
`--context page --tab <id>` prose is rewritten into `context:`/
|
|
36
|
+
`tab:`/`url:` vocabulary, with guards so ordinary prose is never
|
|
37
|
+
garbled by the rewriting.
|
|
38
|
+
- The debugging documentation's headline example now runs on the
|
|
39
|
+
default template (page-context eval); the background variant is
|
|
40
|
+
labeled MV2/Firefox, and the cross-browser matrix states per-context
|
|
41
|
+
eval support honestly with the MV3 CSP footnote.
|
|
42
|
+
|
|
43
|
+
## 5.4.0
|
|
44
|
+
|
|
45
|
+
The DevX swarm's non-blocker friction clusters, cleared: waiting is
|
|
46
|
+
narrated, ports tell the truth, artifacts say where they are, and error
|
|
47
|
+
prose explains the extension instead of the engine.
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- `extension_wait` narrates its budget. `timeoutMs` is a documented
|
|
52
|
+
argument (default 45000, clamped 1000 to 50000; the legacy `timeout`
|
|
53
|
+
spelling stays as a deprecated alias), every result carries `budgetMs`
|
|
54
|
+
and `elapsedMs`, and a timeout says what WAS observed plus a
|
|
55
|
+
call-again hint instead of an opaque failure. The status splits
|
|
56
|
+
`compiled` from `browserAttached`, and a `noBrowser` build-only
|
|
57
|
+
session returns immediately with `buildOnly: true` and a plain
|
|
58
|
+
statement that no browser will ever attach.
|
|
59
|
+
- `extension_build` with `zip: true` returns `zipPath`, the absolute
|
|
60
|
+
path of the file the engine actually wrote (its name sanitizer strips
|
|
61
|
+
punctuation, so the filename rarely matches the project name), and
|
|
62
|
+
`zipSourcePath` for `zipSource: true`. When a zip cannot be located
|
|
63
|
+
after a successful build the result says so in `zipPathNote` instead
|
|
64
|
+
of omitting the field silently.
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- `extension_dev` reports the actually-bound port. The engine's
|
|
69
|
+
ready.json carries the bound port from its first stamp, so dev reads
|
|
70
|
+
it after the health window and re-registers the session with the true
|
|
71
|
+
port; when the stamp has not landed yet, dev claims no port at all
|
|
72
|
+
and says `extension_wait` reports the bound one. dev and wait now
|
|
73
|
+
share one source of truth and cannot disagree about the same session.
|
|
74
|
+
- `extension_build` warns when it writes over a live dev session's
|
|
75
|
+
dist: the dev browser may serve the production artifact until the
|
|
76
|
+
next recompile. The build is never blocked; the clobber is named.
|
|
77
|
+
- `extension_inspect` classifies `.zip` files as archives and excludes
|
|
78
|
+
them from `shippableSize` and the 10MB store gate (the package is not
|
|
79
|
+
payload), with an `archiveNote` explaining the exclusion.
|
|
80
|
+
- `extension_whoami` anchors its identity to the stored token that
|
|
81
|
+
`extension_login` minted: it does not follow the current working
|
|
82
|
+
directory, and the wording now says so.
|
|
83
|
+
- `extension_open` explains a popup-less extension instead of relaying
|
|
84
|
+
the engine error: a manifest pre-check reports that nothing sets
|
|
85
|
+
`action.default_popup`, lists the surfaces the manifest DOES declare,
|
|
86
|
+
and points at the right next verb. Headless popup errors state the
|
|
87
|
+
exact headed path (`extension_dev` with `replace: true` and
|
|
88
|
+
`EXTENSION_HEADLESS=0`).
|
|
89
|
+
- `extension_dev`'s `earlyOutput` drops V8 asm.js verdict lines (pure
|
|
90
|
+
noise); real errors are preserved.
|
|
91
|
+
|
|
3
92
|
## 5.3.1
|
|
4
93
|
|
|
5
94
|
### Added
|