@extension.dev/mcp 10.10.11 → 10.10.12
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 +11 -0
- package/dist/module.js +60 -3
- package/dist/src/lib/process-identity.d.ts +6 -0
- package/package.json +6 -2
- 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 50+ 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": "10.10.
|
|
13
|
+
"version": "10.10.12",
|
|
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 50+ 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": "10.10.
|
|
4
|
+
"version": "10.10.12",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cezar Augusto",
|
|
7
7
|
"email": "hello@extension.dev",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 10.10.12
|
|
4
|
+
|
|
5
|
+
- `extension_stop` on Windows reads the Windows process table to find what
|
|
6
|
+
is left of a session, so a stop that ended the whole tree says
|
|
7
|
+
`stopped` instead of "survivors were not verified". Before this, every
|
|
8
|
+
Windows stop answered `stopped: false`, and `extension_dev` with
|
|
9
|
+
`replace: true` refused every time. A stop still says unverified when
|
|
10
|
+
the table cannot be read. Measured on a Windows runner.
|
|
11
|
+
- The lockfile raises `proxy-addr`, `source-map-js` and Vue past their
|
|
12
|
+
open advisories.
|
|
13
|
+
|
|
3
14
|
## 10.10.11
|
|
4
15
|
|
|
5
16
|
The rest of the 2026-10-05 audit ledger, apart from the Safari WebDriver
|
package/dist/module.js
CHANGED
|
@@ -247,7 +247,7 @@ __webpack_require__.d(workspace_create_namespaceObject, {
|
|
|
247
247
|
handler: ()=>workspace_create_handler,
|
|
248
248
|
schema: ()=>workspace_create_schema
|
|
249
249
|
});
|
|
250
|
-
var package_namespaceObject = JSON.parse('{"rE":"10.10.
|
|
250
|
+
var package_namespaceObject = JSON.parse('{"rE":"10.10.12","El":{"OP":"4.1.31"}}');
|
|
251
251
|
const ENVELOPE_SCHEMA = 1;
|
|
252
252
|
const collectWarnings = (warnings)=>{
|
|
253
253
|
if (!warnings) return [];
|
|
@@ -4805,7 +4805,53 @@ function listSessions() {
|
|
|
4805
4805
|
return Array.from(process_manager_sessions.values());
|
|
4806
4806
|
}
|
|
4807
4807
|
const PLAUSIBLE_SESSION_BINARY = /chrom|edge|brave|opera|vivaldi|yandex|firefox|waterfox|librewolf|zen|floorp|safari|node|electron|extension/i;
|
|
4808
|
+
function readWindowsProcessTable() {
|
|
4809
|
+
try {
|
|
4810
|
+
const out = execFileSync("powershell", [
|
|
4811
|
+
"-NoProfile",
|
|
4812
|
+
"-NonInteractive",
|
|
4813
|
+
"-Command",
|
|
4814
|
+
"[Console]::OutputEncoding = [Text.Encoding]::UTF8; Get-CimInstance Win32_Process | ForEach-Object { \"$($_.ProcessId)`t$($_.Name)`t$($_.CommandLine)\" }"
|
|
4815
|
+
], {
|
|
4816
|
+
encoding: "utf8",
|
|
4817
|
+
windowsHide: true,
|
|
4818
|
+
maxBuffer: 67108864
|
|
4819
|
+
});
|
|
4820
|
+
const rows = [];
|
|
4821
|
+
for (const line of out.split(/\r?\n/)){
|
|
4822
|
+
const [pidText, name = "", ...rest] = line.split("\t");
|
|
4823
|
+
const pid = Number.parseInt(pidText ?? "", 10);
|
|
4824
|
+
if (Number.isInteger(pid) && pid > 0) rows.push({
|
|
4825
|
+
pid,
|
|
4826
|
+
name,
|
|
4827
|
+
commandLine: rest.join("\t")
|
|
4828
|
+
});
|
|
4829
|
+
}
|
|
4830
|
+
return rows.length ? rows : null;
|
|
4831
|
+
} catch {
|
|
4832
|
+
return null;
|
|
4833
|
+
}
|
|
4834
|
+
}
|
|
4835
|
+
function windowsImageName(pid) {
|
|
4836
|
+
try {
|
|
4837
|
+
const out = execFileSync("tasklist", [
|
|
4838
|
+
"/FI",
|
|
4839
|
+
`PID eq ${pid}`,
|
|
4840
|
+
"/FO",
|
|
4841
|
+
"CSV",
|
|
4842
|
+
"/NH"
|
|
4843
|
+
], {
|
|
4844
|
+
encoding: "utf8",
|
|
4845
|
+
windowsHide: true
|
|
4846
|
+
});
|
|
4847
|
+
const match = /^"([^"]+)","(\d+)"/m.exec(out);
|
|
4848
|
+
return match && Number(match[2]) === pid ? match[1] : "";
|
|
4849
|
+
} catch {
|
|
4850
|
+
return "";
|
|
4851
|
+
}
|
|
4852
|
+
}
|
|
4808
4853
|
function processCommand(pid) {
|
|
4854
|
+
if ("win32" === process.platform) return windowsImageName(pid);
|
|
4809
4855
|
try {
|
|
4810
4856
|
const cmdline = node_fs.readFileSync(`/proc/${pid}/cmdline`, "utf8");
|
|
4811
4857
|
const argv0 = cmdline.split("\0")[0];
|
|
@@ -6763,7 +6809,13 @@ function cleanCarrier(projectPath) {
|
|
|
6763
6809
|
carrierNote: `${removal.note} The carrier is still at ${removal.path}; the engine loads ./extensions, so remove it by hand before the next run.`
|
|
6764
6810
|
} : {};
|
|
6765
6811
|
}
|
|
6766
|
-
function pgrepPids(pattern) {
|
|
6812
|
+
function pgrepPids(pattern, windowsTable) {
|
|
6813
|
+
if ("win32" === process.platform) {
|
|
6814
|
+
const table = windowsTable ? windowsTable() : readWindowsProcessTable();
|
|
6815
|
+
if (!table) return null;
|
|
6816
|
+
const matcher = new RegExp(pattern, "i");
|
|
6817
|
+
return table.filter((row)=>row.pid !== process.pid && matcher.test(row.commandLine)).map((row)=>row.pid);
|
|
6818
|
+
}
|
|
6767
6819
|
try {
|
|
6768
6820
|
const out = execFileSync("pgrep", [
|
|
6769
6821
|
"-f",
|
|
@@ -6816,8 +6868,13 @@ function sessionProcessPids(projectPath, hints = {
|
|
|
6816
6868
|
}) {
|
|
6817
6869
|
const pids = new Set();
|
|
6818
6870
|
let verified = true;
|
|
6871
|
+
let table;
|
|
6872
|
+
const windowsTable = ()=>{
|
|
6873
|
+
if (void 0 === table) table = readWindowsProcessTable();
|
|
6874
|
+
return table;
|
|
6875
|
+
};
|
|
6819
6876
|
const found = (pattern)=>{
|
|
6820
|
-
const hits = pgrepPids(pattern);
|
|
6877
|
+
const hits = pgrepPids(pattern, windowsTable);
|
|
6821
6878
|
if (null === hits) {
|
|
6822
6879
|
verified = false;
|
|
6823
6880
|
return [];
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
export type PidState = "alive" | "dead" | "foreign";
|
|
2
2
|
export declare const PLAUSIBLE_SESSION_BINARY: RegExp;
|
|
3
|
+
export interface WindowsProcessRow {
|
|
4
|
+
pid: number;
|
|
5
|
+
name: string;
|
|
6
|
+
commandLine: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function readWindowsProcessTable(): WindowsProcessRow[] | null;
|
|
3
9
|
export declare function processCommand(pid: number): string;
|
|
4
10
|
export declare function pidState(pid: number): PidState;
|
|
5
11
|
export declare function describeForeignPid(pid: number): string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extension.dev/mcp",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "10.10.
|
|
4
|
+
"version": "10.10.12",
|
|
5
5
|
"description": "MCP server that lets AI agents (Claude Code, Claude Desktop, Cursor, Copilot, Codex) build, run, inspect, and publish browser extensions. 32 tools for scaffolding, live DOM inspection, log streaming, and store-ready builds across Chrome, Edge, Firefox, Safari, and every Chromium- or Gecko-based browser (Brave, Opera, Vivaldi, Yandex, Waterfox, LibreWolf). Powered by extension.dev and Extension.js.",
|
|
6
6
|
"mcpName": "io.github.extensiondev/mcp",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -132,7 +132,11 @@
|
|
|
132
132
|
"brace-expansion@5": "^5.0.12",
|
|
133
133
|
"nanoid@3": "^3.3.19",
|
|
134
134
|
"devalue@5": "^5.9.2",
|
|
135
|
-
"postcss-selector-parser@7": "^7.1.6"
|
|
135
|
+
"postcss-selector-parser@7": "^7.1.6",
|
|
136
|
+
"proxy-addr@2": "^2.0.8",
|
|
137
|
+
"source-map-js@1": "^1.2.2",
|
|
138
|
+
"vue@3": "^3.5.43",
|
|
139
|
+
"@vue/compiler-sfc@3": "^3.5.43"
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
}
|
package/server.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
9
|
"websiteUrl": "https://extension.dev",
|
|
10
|
-
"version": "10.10.
|
|
10
|
+
"version": "10.10.12",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
15
15
|
"identifier": "@extension.dev/mcp",
|
|
16
|
-
"version": "10.10.
|
|
16
|
+
"version": "10.10.12",
|
|
17
17
|
"runtimeHint": "npx",
|
|
18
18
|
"transport": {
|
|
19
19
|
"type": "stdio"
|