From a10617002f9e12e0619d0263b128eac59f4de676 Mon Sep 17 00:00:00 2001 From: Stanislav Publika <10758542+passtas@users.noreply.github.com> Date: Tue, 24 Feb 2026 13:16:27 +0000 Subject: [PATCH] chore: make eval scripts cross-platform compatible (Windows) (#1030) Fixes #1029 ## Summary - Use `pathToFileURL()` from `node:url` for dynamic imports in `eval_gemini.ts` to fix `ERR_UNSUPPORTED_ESM_URL_SCHEME` on Windows - converts absolute paths like `D:\projects\...\console_test.ts` to proper `file:///D:/projects/.../console_test.ts` URLs that the Node.js ESM loader accepts on all platforms - Move `CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS=true` from Unix-only shell env var prefix in `package.json` into `eval_gemini.ts` code, matching the pattern already used in `scripts/test.mjs` - Add `.gitattributes` with `* text=auto eol=lf` to enforce LF line endings on checkout - Windows contributors cloning the repo would otherwise get CRLF endings, which conflicts with the project's Prettier `endOfLine: 'lf'` config and causes spurious diffs or formatting failures --- .gitattributes | 1 + package.json | 2 +- scripts/eval_gemini.ts | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..6313b56c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/package.json b/package.json index 39674586..c3826cb8 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "prepare": "node --experimental-strip-types scripts/prepare.ts", "verify-server-json-version": "node --experimental-strip-types scripts/verify-server-json-version.ts", "verify-npm-package": "node scripts/verify-npm-package.mjs", - "eval": "npm run build && CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS=true node --experimental-strip-types scripts/eval_gemini.ts", + "eval": "npm run build && node --experimental-strip-types scripts/eval_gemini.ts", "count-tokens": "node --experimental-strip-types scripts/count_tokens.ts" }, "files": [ diff --git a/scripts/eval_gemini.ts b/scripts/eval_gemini.ts index dbb30dc4..72640282 100644 --- a/scripts/eval_gemini.ts +++ b/scripts/eval_gemini.ts @@ -6,6 +6,7 @@ import fs from 'node:fs'; import path from 'node:path'; +import {pathToFileURL} from 'node:url'; import {parseArgs} from 'node:util'; import {GoogleGenAI, mcpToTool} from '@google/genai'; @@ -35,7 +36,7 @@ export interface TestScenario { } async function loadScenario(scenarioPath: string): Promise { - const module = await import(scenarioPath); + const module = await import(pathToFileURL(scenarioPath).href); if (!module.scenario) { throw new Error( `Scenario file ${scenarioPath} does not export a 'scenario' object.`, @@ -110,6 +111,7 @@ async function runSingleScenario( env[key] = value; } }); + env['CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS'] = 'true'; const args = [serverPath]; if (!debug) {