mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-23 15:08:33 +01:00
* Move the scenario runner out of the MCP server The validate-ui-scenario skill runs `runScenario`, which drives VS Code through `test/automation` and writes an evidence bundle. None of that is MCP: the runner loads no MCP module at runtime, and the SDK import it inherited was type-only, so TypeScript already elided it. It only lived under `test/mcp` because that is where the evidence pipeline was first written. That matters now: deleting the MCP server would take the skill with it. Move the six files that have nothing to do with MCP into a new `test/scenario` package, and leave `test/mcp` as one of its consumers alongside the skill. The MCP evidence tools move to `test/mcp/src/evidenceTools.ts`, where the server-specific schemas belong. Deleting `test/mcp` now removes only MCP code. Drop the step banner along with it. `showOverlay` appended a banner to the DOM of the product under test, which can shift layout and influence focus, so the runner always opted out via VSCODE_EVIDENCE_CLEAN_CAPTURE. With the runner as the only caller that opinion is unanimous, so the overlay and its opt-out both go and the capture is unconditionally faithful. Step titles are still rendered onto the finished recording by renderEvidenceChapters. The new package emits declarations, matching `test/automation`, so the MCP server keeps real types rather than silently degrading to `any`. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: adb443eb-11e5-40a1-8608-7f593fa79485 * Add the lockfile for the new scenario package Registering `test/scenario` in `build/npm/dirs.ts` makes the root install run npm in that directory, and CI uses `npm ci`, which requires a lockfile. Every other package registered there has one, so a clean CI install failed immediately with ENOENT on `test/scenario/package-lock.json` before anything compiled. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: adb443eb-11e5-40a1-8608-7f593fa79485 * Notify on the extracted scenario package `test/mcp/**` notifies @TylerLeonhardt, so moving the runner to `test/scenario` silently dropped notifications for it. Point the new path at the owner of the validate-ui-scenario skill. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: adb443eb-11e5-40a1-8608-7f593fa79485 * Do not re-declare @types/node in the scenario package The root package already declares `@types/node` as a devDependency, so the extracted package inherits it through normal ancestor resolution; declaring it again added a dependency that the OSS license check cannot cover, because `@types/node` ships no LICENSE file and is not in ClearlyDefined or cglicenses.json. Verified against the state CI produces: `npm ci` in `test/scenario` installs no `@types/node`, and both packages still compile, so the types resolve from the repository root as intended. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: adb443eb-11e5-40a1-8608-7f593fa79485 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: adb443eb-11e5-40a1-8608-7f593fa79485
248 lines
8.2 KiB
JSON
248 lines
8.2 KiB
JSON
{
|
|
"name": "vscode-scenario-runner",
|
|
"version": "0.1.0",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"name": "vscode-scenario-runner",
|
|
"version": "0.1.0",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"minimist": "^1.2.8"
|
|
},
|
|
"devDependencies": {
|
|
"npm-run-all2": "^8.0.4"
|
|
}
|
|
},
|
|
"node_modules/ansi-styles": {
|
|
"version": "6.2.3",
|
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
|
|
"integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=12"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
|
}
|
|
},
|
|
"node_modules/cross-spawn": {
|
|
"version": "7.0.6",
|
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
|
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"path-key": "^3.1.0",
|
|
"shebang-command": "^2.0.0",
|
|
"which": "^2.0.1"
|
|
},
|
|
"engines": {
|
|
"node": ">= 8"
|
|
}
|
|
},
|
|
"node_modules/cross-spawn/node_modules/isexe": {
|
|
"version": "2.0.0",
|
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
|
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
|
"dev": true,
|
|
"license": "ISC"
|
|
},
|
|
"node_modules/cross-spawn/node_modules/which": {
|
|
"version": "2.0.2",
|
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
|
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
|
"dev": true,
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"isexe": "^2.0.0"
|
|
},
|
|
"bin": {
|
|
"node-which": "bin/node-which"
|
|
},
|
|
"engines": {
|
|
"node": ">= 8"
|
|
}
|
|
},
|
|
"node_modules/isexe": {
|
|
"version": "3.1.5",
|
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
|
|
"integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
|
|
"dev": true,
|
|
"license": "BlueOak-1.0.0",
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/json-parse-even-better-errors": {
|
|
"version": "4.0.0",
|
|
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz",
|
|
"integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": "^18.17.0 || >=20.5.0"
|
|
}
|
|
},
|
|
"node_modules/memorystream": {
|
|
"version": "0.3.1",
|
|
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
|
|
"integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
|
|
"dev": true,
|
|
"engines": {
|
|
"node": ">= 0.10.0"
|
|
}
|
|
},
|
|
"node_modules/minimist": {
|
|
"version": "1.2.8",
|
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
|
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
|
"license": "MIT",
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/ljharb"
|
|
}
|
|
},
|
|
"node_modules/npm-normalize-package-bin": {
|
|
"version": "4.0.0",
|
|
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz",
|
|
"integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==",
|
|
"dev": true,
|
|
"license": "ISC",
|
|
"engines": {
|
|
"node": "^18.17.0 || >=20.5.0"
|
|
}
|
|
},
|
|
"node_modules/npm-run-all2": {
|
|
"version": "8.0.4",
|
|
"resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-8.0.4.tgz",
|
|
"integrity": "sha512-wdbB5My48XKp2ZfJUlhnLVihzeuA1hgBnqB2J9ahV77wLS+/YAJAlN8I+X3DIFIPZ3m5L7nplmlbhNiFDmXRDA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"ansi-styles": "^6.2.1",
|
|
"cross-spawn": "^7.0.6",
|
|
"memorystream": "^0.3.1",
|
|
"picomatch": "^4.0.2",
|
|
"pidtree": "^0.6.0",
|
|
"read-package-json-fast": "^4.0.0",
|
|
"shell-quote": "^1.7.3",
|
|
"which": "^5.0.0"
|
|
},
|
|
"bin": {
|
|
"npm-run-all": "bin/npm-run-all/index.js",
|
|
"npm-run-all2": "bin/npm-run-all/index.js",
|
|
"run-p": "bin/run-p/index.js",
|
|
"run-s": "bin/run-s/index.js"
|
|
},
|
|
"engines": {
|
|
"node": "^20.5.0 || >=22.0.0",
|
|
"npm": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/path-key": {
|
|
"version": "3.1.1",
|
|
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
|
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=8"
|
|
}
|
|
},
|
|
"node_modules/picomatch": {
|
|
"version": "4.0.5",
|
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
|
|
"integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=12"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/jonschlinkert"
|
|
}
|
|
},
|
|
"node_modules/pidtree": {
|
|
"version": "0.6.1",
|
|
"resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.1.tgz",
|
|
"integrity": "sha512-e0F9AOF1JMrCfBsyJOwU9lNvQ0WtXTq0j/4jk0BQ5JSI9VAybPXmDpPRw/2FQ3e5d3ZFN1mLh7jW99m/jjaptw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"bin": {
|
|
"pidtree": "bin/pidtree.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=0.10"
|
|
}
|
|
},
|
|
"node_modules/read-package-json-fast": {
|
|
"version": "4.0.0",
|
|
"resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz",
|
|
"integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==",
|
|
"dev": true,
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"json-parse-even-better-errors": "^4.0.0",
|
|
"npm-normalize-package-bin": "^4.0.0"
|
|
},
|
|
"engines": {
|
|
"node": "^18.17.0 || >=20.5.0"
|
|
}
|
|
},
|
|
"node_modules/shebang-command": {
|
|
"version": "2.0.0",
|
|
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
|
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"shebang-regex": "^3.0.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=8"
|
|
}
|
|
},
|
|
"node_modules/shebang-regex": {
|
|
"version": "3.0.0",
|
|
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
|
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=8"
|
|
}
|
|
},
|
|
"node_modules/shell-quote": {
|
|
"version": "1.10.0",
|
|
"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz",
|
|
"integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">= 0.4"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/ljharb"
|
|
}
|
|
},
|
|
"node_modules/which": {
|
|
"version": "5.0.0",
|
|
"resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
|
|
"integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
|
|
"dev": true,
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"isexe": "^3.1.1"
|
|
},
|
|
"bin": {
|
|
"node-which": "bin/which.js"
|
|
},
|
|
"engines": {
|
|
"node": "^18.17.0 || >=20.5.0"
|
|
}
|
|
}
|
|
}
|
|
}
|